[
  {
    "path": ".github/workflows/golangci-lint.yml",
    "content": "name: golangci-lint\n\non:\n  push:\n    tags:\n      - v*\n    branches:\n      - master\n      - main\n  pull_request:\n\npermissions:\n  contents: read\n\njobs:\n  test:\n    name: Test\n    runs-on: ubuntu-latest\n    steps:\n      - uses: actions/checkout@v4\n      - uses: actions/setup-go@v5\n        with:\n          go-version-file: go.mod\n      - name: go mod tidy\n        run: |\n          go mod tidy\n          if [ -n \"$(git status --porcelain)\" ]; then\n            echo \"Run 'go mod tidy' and push it\"\n            exit 1\n          fi\n      - name: golangci-lint\n        uses: golangci/golangci-lint-action@v8\n        with:\n          version: latest\n      - name: Run unit tests\n        run: go test -v ./...\n"
  },
  {
    "path": ".github/workflows/release.yml",
    "content": "name: \"Release a tag\"\n\non:\n  push:\n    tags:\n      - \"*\"\n\npermissions:\n  contents: write\n\njobs:\n  release:\n    runs-on: ubuntu-latest\n    steps:\n      - uses: actions/checkout@v4\n        with:\n          fetch-depth: 0\n\n      - name: Install Go\n        uses: actions/setup-go@v4\n        with:\n          go-version: '>=1.17'\n\n      - name: Create release\n        uses: goreleaser/goreleaser-action@v5\n        with:\n          version: latest\n          args: release --clean\n        env:\n          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}"
  },
  {
    "path": ".gitignore",
    "content": ".vscode\n/termsvg\n*.cast\n*.txt\n.task\ndist\n*.svg\n!examples/*.*\n*.bench\n"
  },
  {
    "path": ".golangci.yml",
    "content": "version: \"2\"\n\nformatters:\n  enable:\n    - goimports\n    - gci\n    - gofumpt\n\nlinters:\n  enable:\n    - asciicheck\n    - bidichk\n    - containedctx\n    - contextcheck\n    - decorder\n    - durationcheck\n    - errchkjson\n    - errname\n    - errorlint\n    - exhaustive\n    - funlen\n    - goconst\n    - gocritic\n    - gocognit\n    - gosec\n    - lll\n    - makezero\n    - misspell\n    - nolintlint\n    - prealloc\n    - revive\n    - thelper\n    - unconvert\n    - wastedassign\n  exclusions:\n    rules:\n      - linters:\n          - revive\n        text: \"exported (type|function|const|method) .* should have comment\"\n      - linters:\n          - revive\n        text: \"should have a package comment\"\n      - linters:\n          - govet\n        text: \"declaration of \\\"err\\\" shadows\"\n      - linters:\n          - errcheck\n        text: \"Error return value of\"\n  settings:\n    errcheck:\n      # report about assignment of errors to blank identifier: `num, _ := strconv.Atoi(numStr)`.\n      check-blank: true\n    govet:\n      enable:\n        - shadow\n    staticcheck:\n      # https://staticcheck.io/docs/options#checks\n      checks: [\"all\", \"-ST1000\"]\n    decorder:\n      disable-dec-order-check: false\n      disable-init-func-first-check: false\n    gocritic:\n      enabled-tags:\n        - performance\n        - style\n        - experimental\n    prealloc:\n      simple: true\n      range-loops: true\n      for-loops: true\n    nolintlint:\n      require-explanation: false\n      require-specific: true\n"
  },
  {
    "path": ".goreleaser.yml",
    "content": "version: 1\n\nproject_name: termsvg\n\nbefore:\n  hooks:\n    - go mod tidy\n\nrelease:\n  github:\n    owner: mrmarble\n    name: termsvg\n\nbuilds:\n  - binary: termsvg\n    env:\n      - CGO_ENABLED=0\n    goos:\n      - linux\n      - darwin\n      - freebsd\n      - windows\n    goarch:\n      - amd64\n      - arm64\n      - arm\n      - \"386\"\n    goarm:\n      - \"6\"\n      - \"7\"\n    ignore:\n      - goos: darwin\n        goarch: \"386\"\n      - goos: freebsd\n        goarch: arm64\n      - goos: windows\n        goarch: arm64\n      - goos: windows\n        goarch: \"arm\"\n      - goos: windows\n        goarch: \"386\"\n\n    flags:\n      - -trimpath\n    ldflags: -s -w -X main.version={{.Version}} -X main.commit={{.ShortCommit}} -X main.date={{.CommitDate}}\n    gcflags:\n      - all=-l -B\n    mod_timestamp: '{{ .CommitTimestamp }}'\n    main: ./cmd/termsvg\n\narchives:\n  - format: tar.gz\n    wrap_in_directory: true\n    format_overrides:\n      - goos: darwin\n        format: zip\n      - goos: windows\n        format: zip\n    name_template: '{{ .ProjectName }}-{{ .Version }}-{{ .Os }}-{{ .Arch }}{{ if .Arm }}v{{ .Arm }}{{ end }}'\n    files:\n      - LICENSE\n      - README.md\n\nchecksum:\n  name_template: '{{ .ProjectName }}-{{ .Version }}-checksums.txt'\n\nsnapshot:\n  name_template: SNAPSHOT-{{ .Commit }}\n\nchangelog:\n  sort: asc\n  filters:\n    exclude:\n      - '^docs:'\n      - '^test:'\n  groups:\n    - title: Features\n      regexp: \"^.*feat[(\\\\w)]*:+.*$\"\n      order: 0\n    - title: 'Bug fixes'\n      regexp: \"^.*fix[(\\\\w)]*:+.*$\"\n      order: 1\n    - title: Others\n      order: 999"
  },
  {
    "path": ".pre-commit-config.yaml",
    "content": "repos:\n    - repo: https://github.com/pre-commit/pre-commit-hooks\n      rev: v3.2.0\n      hooks:\n        - id: trailing-whitespace\n        - id: check-yaml\n        - id: check-added-large-files\n    - repo: https://github.com/compilerla/conventional-pre-commit\n      rev: v1.2.0\n      hooks:\n        - id: conventional-pre-commit\n          stages: [commit-msg]\n    - repo: https://github.com/TekWizely/pre-commit-golang\n      rev: v1.0.0-beta.5\n      hooks:\n        - id: go-fumpt\n        - id: golangci-lint-mod\n        - id: go-test-mod\nexclude: 'examples|testdata'"
  },
  {
    "path": "CONTRIBUTING.md",
    "content": "# Contributing to TermSVG\n\n## Reporting bugs\n\nOpen an issue in GitHub issue tracker.\n\nTell me what's the problem and include steps to reproduce it (reliably).\nIncluding your OS/browser/terminal name and version in the report would be\ngreat.\n\n## Submitting patches with bug fixes\n\nIf you found a bug and made a patch for it:\n\n1. Make sure your changes pass the [pre-commit](https://pre-commit.com/)\n   [hooks](.pre-commit-config.yaml). You can install the hooks in your work\n   tree by running `task setup` in your checked out copy.\n1. Make sure all tests pass. If you add new functionality, add new tests.\n1. Send a pull request, including a description of the fix (referencing an\n   existing issue if there's one).\n\n## Requesting new features\n\nI'm open to ideas.\n\nIf you believe most termsvg users would benefit from implementing your idea\nthen feel free to open a GitHub issue. However, as this is an open-source\nproject maintained by just one person I simply can't implement all\nof them due to limited resources. Please keep that in mind.\n\n## Proposing features/changes (pull requests)\n\nIf you want to propose code change, either introducing a new feature or\nimproving an existing one, please first discuss it first. You\ncan simply open a separate issue for a discussion.\n\n## Asking for help\n\nGitHub issue tracker is not a support forum but I'll do my best.\n"
  },
  {
    "path": "LICENSE",
    "content": "                    GNU GENERAL PUBLIC LICENSE\n                       Version 3, 29 June 2007\n\n Copyright (C) 2007 Free Software Foundation, Inc. <https://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 <https://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<https://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<https://www.gnu.org/licenses/why-not-lgpl.html>.\n"
  },
  {
    "path": "README.md",
    "content": "<div align=\"center\">\n<img src=\"assets/logo.png\" width=\"150\">\n\n### Record, share and export your terminal as a animated SVG image.\n\n</div>\n\n<div align=\"center\">\n</br>\n\n[![golangci-lint](https://github.com/MrMarble/termsvg/actions/workflows/golangci-lint.yml/badge.svg)](https://github.com/MrMarble/termsvg/actions/workflows/golangci-lint.yml)\n[![pre-commit](https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit&logoColor=white)](https://github.com/pre-commit/pre-commit)\n![GitHub release (latest SemVer)](https://img.shields.io/github/v/release/mrmarble/termsvg)\n[![Go Reference](https://pkg.go.dev/badge/github.com/mrmarble/termsvg.svg)](https://pkg.go.dev/github.com/mrmarble/termsvg)\n\n</div>\n\n---\n\n## Overview\n\nTermSVG is an all in one cli tool to record, replay and export your terminal session to svg. It uses the same format as [asciinema](https://asciinema.org) so you can convert asciicast files to SVG or use the asciinema player with a TermSVG recording.\n\n## Installation\n\n### Manually\n\nYou can download a pre compiled binary directly from the [releases](https://github.com/mrmarble/termsvg/releases) for your OS/Architecture.\n\n### Go cli\n\nIf you already have Go in your system you can use `go install`\n\n```sh\ngo install github.com/mrmarble/termsvg/cmd/termsvg@latest # or target a specific version @v0.6.0\n```\n\n### Install script\n\nI made an [installation script](scripts/install-termsvg.sh) that should download the latest available version corresponding to your OS and architecture. `sudo` is needed to copy the binary to `/usr/local/bin`\n\n```sh\ncurl -sL https://raw.githubusercontent.com/MrMarble/termsvg/master/scripts/install-termsvg.sh | sudo -E bash -\n# or with wget\nwget -O - https://raw.githubusercontent.com/MrMarble/termsvg/master/scripts/install-termsvg.sh | sudo -E bash -\n```\n\n> [!NOTE]\n> Windows binary does not have the `rec` command.\n\n---\n\n## Usage\n\ntermsvg is composed of multiple commands, similar to `git`, `docker` or\n`asciinema`.\n\nWhen you run `termsvg` with no arguments help message is displayed, listing\nall available commands with their options.\n\n### `rec <filename>`\n\n**Record terminal session.**\n\nBy running `termsvg rec <filename>` you start a new recording session. The\ncommand (process) that is recorded can be specified with `-c` option (see\nbelow), and defaults to `$SHELL` which is what you want in most cases.\n\nYou can temporarily pause recording of terminal by pressing <kbd>Ctrl+P</kbd>.\nThis is useful when you want to execute some commands during the recording\nsession that should not be captured (e.g. pasting secrets). Resume by pressing\n<kbd>Ctrl+P</kbd> again.\n\nRecording finishes when you exit the shell (hit <kbd>Ctrl+D</kbd> or type\n`exit`). If the recorded process is not a shell then recording finishes when\nthe process exits.\n\nThe resulting recording (called [asciicast](doc/asciicast-v2.md)) is saved to a local file. It can later be\nreplayed with `termsvg play <filename>` and/or exported to svg with `termsvg export -i <filename>`.\n\nAvailable options:\n\n- `-c, --command=<command>` - Specify command to record, defaults to $SHELL\n\n### `play <filename>`\n\n**Replay recorded asciicast in a terminal.**\n\nThis command replays given asciicast (as recorded by `rec` command) directly in\nyour terminal.\n\nPlaying from a local file:\n\n```sh\ntermsvg play /path/to/asciicast.cast\n```\n\nAvailable options:\n\n- `-i, --idle-time-limit=<sec>` - Limit replayed terminal inactivity to max `<sec>` seconds\n- `-s, --speed=<factor>` - Playback speed (can be fractional)\n\n> For the best playback experience it is recommended to run `termsvg play` in\n> a terminal of dimensions not smaller than the one used for recording, as\n> there's no \"transcoding\" of control sequences for new terminal size.\n\n### `export <filename>`\n\n**Export recorded asciicast to svg.**\n\nThis command exports given asciicast (as recorded by `rec` command) to svg.\n\nExporting from a local file:\n\n```sh\ntermsvg export /path/to/asciicast.cast\n```\n\nAvailable options:\n\n- `-o, --output=<file>` - Output svg to be created. Defaults to [input].svg\n- `-m, --minify` - Minify svg using [Minify](https://github.com/tdewolff/minify)\n\n## Example\n\nAsciinema recording [inverted pendulum](https://asciinema.org/a/444816)\n![inverted pendulum](examples/444816.svg)\n\nMore at the [examples](examples) folder\n\n## Contributing\n\nIf you want to contribute to this project check out [CONTRIBUTING.md](CONTRIBUTING.md).\n\n## License\n\nAll code is licensed under the GPL, v3 or later. See [LICENSE](LICENSE) file for details.\n\n## ⭐ Stargazers\n\n<a href=\"https://star-history.com/#mrmarble/termsvg&Date\">\n  <picture>\n    <source media=\"(prefers-color-scheme: dark)\" srcset=\"https://api.star-history.com/svg?repos=mrmarble/termsvg&type=Date&theme=dark\" />\n    <source media=\"(prefers-color-scheme: light)\" srcset=\"https://api.star-history.com/svg?repos=mrmarble/termsvg&type=Date\" />\n    <img alt=\"Star History Chart\" src=\"https://api.star-history.com/svg?repos=mrmarble/termsvg&type=Date\" />\n  </picture>\n</a>\n"
  },
  {
    "path": "Taskfile.yml",
    "content": "# https://taskfile.dev\n\nversion: \"3\"\n\nenv:\n  GO111MODULE: on\n  GOPROXY: https://proxy.golang.org,direct\n\ntasks:\n  setup:\n    desc: Prepare development environment\n    cmds:\n      - go install mvdan.cc/gofumpt@latest\n      - go install github.com/golangci/golangci-lint/cmd/golangci-lint@latest\n      - go install github.com/goreleaser/goreleaser@latest\n      - pre-commit install\n      - pre-commit install --hook-type commit-msg\n      - go mod tidy\n\n  build:\n    desc: Build the binary\n    sources:\n      - ./**/*.go\n    generates:\n      - ./goreleaser\n    cmds:\n      - go build ./cmd/termsvg\n\n  test:\n    desc: Run tests\n    env:\n      LC_ALL: C\n    vars:\n      TEST_OPTIONS: '{{default \"\" .TEST_OPTIONS}}'\n      SOURCE_FILES: '{{default \"./...\" .SOURCE_FILES}}'\n      TEST_PATTERN: '{{default \".\" .TEST_PATTERN}}'\n    cmds:\n      - go test {{.TEST_OPTIONS}} -failfast -race -coverpkg=./... -covermode=atomic -coverprofile=coverage.txt {{.SOURCE_FILES}} -run {{.TEST_PATTERN}} -timeout=5m\n\n  cover:\n    desc: Open the cover tool\n    cmds:\n      - go tool cover -html=coverage.txt\n\n  fmt:\n    desc: gofumpt all code\n    cmds:\n      - gofumpt -w -l .\n\n  lint:\n    desc: Lint the code with golangci-lint\n    cmds:\n      - golangci-lint run --fix ./...\n\n  ci:\n    desc: Run all CI steps\n    cmds:\n      - task: lint\n      - task: test\n      - task: build\n\n  default:\n    desc: Runs the default tasks\n    cmds:\n      - task: ci\n\n  release:\n    desc: Create a new tag\n    vars:\n      NEXT:\n        sh: svu n\n    cmds:\n      - git tag {{.NEXT}}\n      - echo {{.NEXT}}\n      - git push origin --tags\n\n  examples:\n    desc: Regenerate examples\n    deps:\n      - build\n    sources:\n      - ./examples/*.cast\n      - ./termsvg\n    generates:\n      - ./examples/*.svg\n    cmds:\n      - ./termsvg export \"examples/444816.cast\" -m -n -o \"examples/444816_borderless.svg\"\n      - for f in ./examples/*.cast; do ./termsvg export \"$f\" -m -o \"${f%.cast}.svg\"; done\n      - ./scripts/update-filesize.sh\n  goreleaser:\n    desc: Run GoReleaser either in snapshot or release mode\n    deps:\n      - build\n    vars:\n      SNAPSHOT:\n        sh: 'if [[ $GITHUB_REF != refs/tags/v* ]]; then echo \"--snapshot\"; fi'\n    cmds:\n      - goreleaser release --rm-dist {{.SNAPSHOT}}\n\n"
  },
  {
    "path": "cmd/termsvg/export/export.go",
    "content": "package export\n\nimport (\n\t\"bytes\"\n\t\"context\"\n\t\"fmt\"\n\t\"log\"\n\t\"os\"\n\t\"path/filepath\"\n\t\"strings\"\n\t\"time\"\n\n\t\"github.com/mrmarble/termsvg/pkg/asciicast\"\n\t\"github.com/mrmarble/termsvg/pkg/ir\"\n\t\"github.com/mrmarble/termsvg/pkg/progress\"\n\t\"github.com/mrmarble/termsvg/pkg/renderer\"\n\t\"github.com/mrmarble/termsvg/pkg/renderer/gif\"\n\t\"github.com/mrmarble/termsvg/pkg/renderer/svg\"\n\t\"github.com/mrmarble/termsvg/pkg/renderer/webm\"\n\t\"github.com/mrmarble/termsvg/pkg/theme\"\n\t\"github.com/tdewolff/minify/v2\"\n\tmsvg \"github.com/tdewolff/minify/v2/svg\"\n)\n\ntype Cmd struct {\n\tFile     string        `arg:\"\" type:\"existingfile\" help:\"Asciicast file to export\"`\n\tOutput   string        `short:\"o\" type:\"path\" help:\"Output file path (default: <input>.<format>)\"`\n\tFormat   string        `short:\"f\" default:\"svg\" enum:\"svg,gif,webm\" help:\"Output format (svg, gif, webm)\"`\n\tMinify   bool          `short:\"m\" help:\"Minify output (SVG only)\"`\n\tNoWindow bool          `short:\"n\" help:\"Don't render terminal window chrome\"`\n\tNoCursor bool          `short:\"C\" help:\"Don't render cursor\"`\n\tSpeed    float64       `short:\"s\" default:\"1.0\" help:\"Playback speed multiplier\"`\n\tMaxIdle  time.Duration `short:\"i\" default:\"0\" help:\"Cap idle time between frames (0 = unlimited)\"`\n\tCols     int           `short:\"c\" default:\"0\" help:\"Override columns (0 = use original)\"`\n\tRows     int           `short:\"r\" default:\"0\" help:\"Override rows (0 = use original)\"`\n\tDebug    bool          `short:\"d\" help:\"Enable debug logging\"`\n\tTheme    string        `short:\"t\" help:\"Theme name (built-in) or path to theme JSON file\"`\n}\n\n//nolint:funlen,gocognit // sequential export steps are clearer in one function\nfunc (cmd *Cmd) Run() error {\n\tformat := strings.ToLower(cmd.Format)\n\n\toutput := cmd.Output\n\tif output == \"\" {\n\t\toutput = cmd.File + \".\" + format\n\t}\n\n\t// Load cast file\n\tf, err := os.Open(filepath.Clean(cmd.File))\n\tif err != nil {\n\t\treturn err\n\t}\n\tdefer f.Close()\n\n\tcast, err := asciicast.Parse(f)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\t// Override dimensions if specified\n\tif cmd.Cols > 0 {\n\t\tcast.Header.Width = cmd.Cols\n\t}\n\tif cmd.Rows > 0 {\n\t\tcast.Header.Height = cmd.Rows\n\t}\n\n\t// Determine theme to use\n\tselectedTheme := theme.Default()\n\tthemeSource := \"default\"\n\n\tif cmd.Theme != \"\" {\n\t\t// CLI flag takes priority\n\t\tt, err := theme.Load(cmd.Theme)\n\t\tif err != nil {\n\t\t\tfmt.Fprintf(os.Stderr, \"Warning: failed to load theme %q: %v\\n\", cmd.Theme, err)\n\t\t\tfmt.Fprintf(os.Stderr, \"Falling back to default theme\\n\")\n\t\t} else {\n\t\t\tselectedTheme = t\n\t\t\tthemeSource = \"CLI flag\"\n\t\t}\n\t} else if cast.Header.Theme.Fg != \"\" {\n\t\t// Use theme from asciicast header\n\t\tt, err := theme.FromAsciinema(\"asciicast\", cast.Header.Theme.Fg,\n\t\t\tcast.Header.Theme.Bg, cast.Header.Theme.Palette)\n\t\tif err != nil {\n\t\t\tif cmd.Debug {\n\t\t\t\tlog.Printf(\"[Export] Invalid theme in asciicast header: %v\", err)\n\t\t\t}\n\t\t} else {\n\t\t\tselectedTheme = t\n\t\t\tthemeSource = \"asciicast header\"\n\t\t}\n\t}\n\n\tif cmd.Debug {\n\t\tlog.Printf(\"[Export] Using theme from %s: %s\", themeSource, selectedTheme.Name)\n\t}\n\n\t// Create progress reporter\n\treporter, progressCh := progress.New()\n\treporter.Start()\n\n\t// Process through IR\n\tprocConfig := ir.DefaultProcessorConfig()\n\tprocConfig.Speed = cmd.Speed\n\tprocConfig.IdleTimeLimit = cmd.MaxIdle\n\tprocConfig.Theme = selectedTheme\n\tprocConfig.ProgressCh = progressCh\n\n\tproc := ir.NewProcessor(procConfig)\n\trec, err := proc.Process(cast)\n\tif err != nil {\n\t\tclose(progressCh)\n\t\treporter.Wait()\n\t\treturn err\n\t}\n\n\t// Create renderer based on format\n\trenderConfig := renderer.DefaultConfig()\n\trenderConfig.ShowWindow = !cmd.NoWindow\n\trenderConfig.ShowCursor = !cmd.NoCursor\n\trenderConfig.Minify = cmd.Minify\n\trenderConfig.Debug = cmd.Debug\n\trenderConfig.Theme = selectedTheme\n\trenderConfig.ProgressCh = progressCh\n\n\tvar rdr renderer.Renderer\n\tswitch format {\n\tcase \"gif\":\n\t\tgifRenderer, err := gif.New(renderConfig)\n\t\tif err != nil {\n\t\t\treturn fmt.Errorf(\"failed to create GIF renderer: %w\", err)\n\t\t}\n\t\trdr = gifRenderer\n\tcase \"svg\":\n\t\trdr = svg.New(renderConfig)\n\tcase \"webm\":\n\t\twebmRenderer, err := webm.New(renderConfig)\n\t\tif err != nil {\n\t\t\treturn fmt.Errorf(\"failed to create WebM renderer: %w\", err)\n\t\t}\n\t\trdr = webmRenderer\n\tdefault:\n\t\treturn fmt.Errorf(\"unsupported format: %s\", format)\n\t}\n\n\t// Create output file\n\toutFile, err := os.Create(output) //nolint:gosec // output path is from user CLI input\n\tif err != nil {\n\t\treturn err\n\t}\n\tdefer outFile.Close()\n\n\t// Render (with optional minification for SVG)\n\tif cmd.Minify && format == \"svg\" {\n\t\tvar buf bytes.Buffer\n\t\tif err := rdr.Render(context.Background(), rec, &buf); err != nil {\n\t\t\tclose(progressCh)\n\t\t\treporter.Wait()\n\t\t\treturn err\n\t\t}\n\t\tm := minify.New()\n\t\tm.AddFunc(\"image/svg+xml\", msvg.Minify)\n\t\tvar minified bytes.Buffer\n\t\tif err := m.Minify(\"image/svg+xml\", &minified, &buf); err != nil {\n\t\t\tclose(progressCh)\n\t\t\treporter.Wait()\n\t\t\treturn err\n\t\t}\n\t\t// Replace non-breaking spaces back to regular spaces after minification\n\t\tresult := strings.ReplaceAll(minified.String(), \"\\u00A0\", \" \")\n\t\tif _, err := outFile.WriteString(result); err != nil {\n\t\t\tclose(progressCh)\n\t\t\treporter.Wait()\n\t\t\treturn err\n\t\t}\n\t} else {\n\t\tif err := rdr.Render(context.Background(), rec, outFile); err != nil {\n\t\t\tclose(progressCh)\n\t\t\treporter.Wait()\n\t\t\treturn err\n\t\t}\n\t}\n\n\t// Close progress channel and wait for reporter to finish\n\tclose(progressCh)\n\treporter.Wait()\n\n\tfmt.Printf(\"\\nExported: %s\\n\", output)\n\treturn nil\n}\n"
  },
  {
    "path": "cmd/termsvg/main.go",
    "content": "package main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/alecthomas/kong\"\n\t\"github.com/mrmarble/termsvg/cmd/termsvg/export\"\n\t\"github.com/mrmarble/termsvg/cmd/termsvg/play\"\n\t\"github.com/mrmarble/termsvg/cmd/termsvg/record\"\n)\n\ntype VersionFlag string\n\n// Version info (populated by goreleaser)\nvar (\n\tversion = \"dev\"\n\tcommit  = \"none\"\n\tdate    = \"unknown\"\n)\n\nfunc (v VersionFlag) Decode(_ *kong.DecodeContext) error { return nil }\nfunc (v VersionFlag) IsBool() bool                       { return true }\nfunc (v VersionFlag) BeforeApply(app *kong.Kong) error {\n\tfmt.Printf(\"termsvg %s (%s) built on %s\\n\", version, commit, date)\n\tapp.Exit(0)\n\treturn nil\n}\n\nfunc main() {\n\tvar cli struct {\n\t\tVersion VersionFlag `name:\"version\" help:\"Print version information and quit\"`\n\n\t\tRecord record.Cmd `cmd:\"\" help:\"Record a terminal session\"`\n\t\tPlay   play.Cmd   `cmd:\"\" help:\"Play back a recorded terminal session\"`\n\t\tExport export.Cmd `cmd:\"\" help:\"Export asciicast to SVG\"`\n\t}\n\n\tctx := kong.Parse(&cli,\n\t\tkong.Name(\"termsvg\"),\n\t\tkong.Description(\"Record, play, and export terminal sessions as SVG animations\"),\n\t\tkong.UsageOnError(),\n\t)\n\n\terr := ctx.Run()\n\tctx.FatalIfErrorf(err)\n}\n"
  },
  {
    "path": "cmd/termsvg/main_windows.go",
    "content": "//go:build windows\n\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/alecthomas/kong\"\n\t\"github.com/mrmarble/termsvg/cmd/termsvg/export\"\n\t\"github.com/mrmarble/termsvg/cmd/termsvg/play\"\n)\n\n// Version info (populated by goreleaser)\nvar (\n\tversion = \"dev\"\n\tcommit  = \"none\"\n\tdate    = \"unknown\"\n)\n\ntype VersionFlag string\n\nfunc (v VersionFlag) Decode(_ *kong.DecodeContext) error { return nil }\nfunc (v VersionFlag) IsBool() bool                       { return true }\nfunc (v VersionFlag) BeforeApply(app *kong.Kong) error {\n\tfmt.Printf(\"termsvg %s (%s) built on %s\\n\", version, commit, date)\n\tapp.Exit(0)\n\treturn nil\n}\n\nfunc main() {\n\tvar cli struct {\n\t\tVersion VersionFlag `name:\"version\" help:\"Print version information and quit\"`\n\n\t\tPlay   play.Cmd   `cmd:\"\" help:\"Play back a recorded terminal session\"`\n\t\tExport export.Cmd `cmd:\"\" help:\"Export asciicast to SVG\"`\n\t}\n\n\tctx := kong.Parse(&cli,\n\t\tkong.Name(\"termsvg\"),\n\t\tkong.Description(\"Record, play, and export terminal sessions as SVG animations\"),\n\t\tkong.UsageOnError(),\n\t)\n\n\terr := ctx.Run()\n\tctx.FatalIfErrorf(err)\n}\n"
  },
  {
    "path": "cmd/termsvg/play/play.go",
    "content": "package play\n\nimport (\n\t\"fmt\"\n\t\"os\"\n\t\"path/filepath\"\n\t\"time\"\n\n\t\"github.com/mrmarble/termsvg/pkg/asciicast\"\n)\n\ntype Cmd struct {\n\tFile    string        `arg:\"\" type:\"existingfile\" help:\"Asciicast file to play\"`\n\tSpeed   float64       `short:\"s\" default:\"1.0\" help:\"Playback speed multiplier\"`\n\tMaxIdle time.Duration `short:\"i\" default:\"0\" help:\"Cap idle time between frames (0 = unlimited)\"`\n}\n\nfunc (cmd *Cmd) Run() error {\n\tf, err := os.Open(filepath.Clean(cmd.File))\n\tif err != nil {\n\t\treturn err\n\t}\n\tdefer f.Close()\n\n\tcast, err := asciicast.Parse(f)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\treturn playback(cast, cmd.Speed, cmd.MaxIdle)\n}\n\nfunc playback(cast *asciicast.Cast, speed float64, maxIdle time.Duration) error {\n\t// Convert to relative time for idle capping\n\tcast.ToRelativeTime()\n\n\t// Cap idle time if specified\n\tif maxIdle > 0 {\n\t\tcast.CapRelativeTime(maxIdle.Seconds())\n\t}\n\n\t// Convert back to absolute and adjust speed\n\tcast.ToAbsoluteTime()\n\tcast.AdjustSpeed(speed)\n\n\tstartTime := time.Now()\n\n\tfor _, event := range cast.Events {\n\t\ttargetTime := time.Duration(event.Time * float64(time.Second))\n\t\telapsed := time.Since(startTime)\n\n\t\tif delay := targetTime - elapsed; delay > 0 {\n\t\t\ttime.Sleep(delay)\n\t\t}\n\n\t\tfmt.Print(event.EventData)\n\t}\n\n\treturn nil\n}\n"
  },
  {
    "path": "cmd/termsvg/record/record.go",
    "content": "package record\n\nimport (\n\t\"fmt\"\n\t\"io\"\n\t\"os\"\n\t\"os/exec\"\n\t\"os/signal\"\n\t\"strings\"\n\t\"sync/atomic\"\n\t\"syscall\"\n\t\"time\"\n\n\t\"github.com/creack/pty\"\n\t\"github.com/mrmarble/termsvg/pkg/asciicast\"\n\t\"golang.org/x/term\"\n)\n\ntype Cmd struct {\n\tFile          string `arg:\"\" type:\"path\" help:\"Filename/path to save the recording to\"`\n\tCommand       string `short:\"c\" optional:\"\" env:\"SHELL\" help:\"Command to record (default: $SHELL)\"`\n\tSkipFirstLine bool   `short:\"s\" help:\"Skip the first line of recording\"`\n}\n\nconst readSize = 1024\n\nfunc (cmd *Cmd) Run() error {\n\tfmt.Printf(\"Recording to %s\\n\", cmd.File)\n\tfmt.Println(\"Press Ctrl+D or type 'exit' to stop recording.\")\n\tfmt.Println(\"Press Ctrl+P to pause/resume recording.\")\n\n\tif cmd.SkipFirstLine {\n\t\tfmt.Println(\"Note: Skipping the first line of output.\")\n\t}\n\n\tevents, err := cmd.run()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tif err := cmd.save(events); err != nil {\n\t\treturn err\n\t}\n\n\tfmt.Printf(\"Recording saved: %s\\n\", cmd.File)\n\treturn nil\n}\n\nfunc (cmd *Cmd) save(events []asciicast.Event) error {\n\tif len(events) == 0 {\n\t\treturn fmt.Errorf(\"no events recorded\")\n\t}\n\n\tcast := asciicast.New()\n\n\twidth, height, err := term.GetSize(int(os.Stdout.Fd()))\n\tif err != nil {\n\t\treturn fmt.Errorf(\"failed to get terminal size: %w\", err)\n\t}\n\n\tcast.Header.Width = width\n\tcast.Header.Height = height\n\tcast.Header.Duration = events[len(events)-1].Time\n\tcast.Events = events\n\tcast.Compress()\n\n\tdata, err := cast.Marshal()\n\tif err != nil {\n\t\treturn fmt.Errorf(\"failed to marshal cast: %w\", err)\n\t}\n\n\tif err := os.WriteFile(cmd.File, data, 0o600); err != nil {\n\t\treturn fmt.Errorf(\"failed to write file: %w\", err)\n\t}\n\n\treturn nil\n}\n\n//nolint:gocognit,funlen // PTY handling requires sequential state management\nfunc (cmd *Cmd) run() ([]asciicast.Event, error) {\n\t// Create command to run\n\tc := exec.Command(\"sh\", \"-c\", cmd.Command) //nolint:gosec // command is from user CLI input\n\n\t// Start the command with a PTY\n\tptmx, err := pty.Start(c)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"failed to start pty: %w\", err)\n\t}\n\tdefer ptmx.Close()\n\n\t// Handle PTY size changes\n\tch := handlePtySize(ptmx)\n\tdefer func() {\n\t\tsignal.Stop(ch)\n\t\tclose(ch)\n\t}()\n\n\t// Set stdin to raw mode\n\toldState, err := term.MakeRaw(int(os.Stdin.Fd()))\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"failed to set raw mode: %w\", err)\n\t}\n\tdefer term.Restore(int(os.Stdin.Fd()), oldState)\n\n\t// Copy stdin to the PTY with pause support\n\tvar paused atomic.Bool\n\tgo func() {\n\t\tbuf := make([]byte, readSize)\n\t\tfor {\n\t\t\tn, err := os.Stdin.Read(buf)\n\t\t\tif err != nil {\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tfor i := 0; i < n; i++ {\n\t\t\t\t// Check for Ctrl+P (0x10) to toggle pause\n\t\t\t\tif buf[i] == 0x10 {\n\t\t\t\t\tpaused.Store(!paused.Load())\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t\t// Write byte to PTY\n\t\t\t\t_, _ = ptmx.Write(buf[i : i+1])\n\t\t\t}\n\t\t}\n\t}()\n\n\t// Read from PTY and record events\n\tevents := make([]asciicast.Event, 0, 1024)\n\tp := make([]byte, readSize)\n\tbaseTime := time.Now().UnixMicro()\n\n\tstartTriggered := !cmd.SkipFirstLine\n\tpauseStartTime := int64(0)\n\ttotalPausedTime := int64(0)\n\n\tfor {\n\t\tn, err := ptmx.Read(p)\n\t\tif err != nil {\n\t\t\tif err == io.EOF && n > 0 {\n\t\t\t\t_, _ = os.Stdout.Write(p[:n])\n\t\t\t\tif !paused.Load() && startTriggered {\n\t\t\t\t\tevents = append(events, asciicast.Event{\n\t\t\t\t\t\tTime:      float64(time.Now().UnixMicro()-baseTime-totalPausedTime) / float64(time.Millisecond),\n\t\t\t\t\t\tEventType: asciicast.Output,\n\t\t\t\t\t\tEventData: string(p[:n]),\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t}\n\t\t\tbreak\n\t\t}\n\n\t\t// Echo to stdout\n\t\t_, _ = os.Stdout.Write(p[:n])\n\n\t\t// Handle pause state\n\t\tif paused.Load() {\n\t\t\tif pauseStartTime == 0 {\n\t\t\t\tpauseStartTime = time.Now().UnixMicro()\n\t\t\t}\n\t\t\tcontinue\n\t\t} else if pauseStartTime != 0 {\n\t\t\ttotalPausedTime += time.Now().UnixMicro() - pauseStartTime\n\t\t\tpauseStartTime = 0\n\t\t}\n\n\t\t// Skip first line if requested\n\t\tif !startTriggered {\n\t\t\tif strings.Contains(string(p[:n]), \"\\n\") {\n\t\t\t\tstartTriggered = true\n\t\t\t\tbaseTime = time.Now().UnixMicro()\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\n\t\t// Record event\n\t\tevents = append(events, asciicast.Event{\n\t\t\tTime:      float64(time.Now().UnixMicro()-baseTime-totalPausedTime) / float64(time.Millisecond),\n\t\t\tEventType: asciicast.Output,\n\t\t\tEventData: string(p[:n]),\n\t\t})\n\t}\n\n\treturn events, nil\n}\n\nfunc handlePtySize(ptmx *os.File) chan os.Signal {\n\tch := make(chan os.Signal, 1)\n\tsignal.Notify(ch, syscall.SIGWINCH)\n\n\tgo func() {\n\t\tfor range ch {\n\t\t\t_ = pty.InheritSize(os.Stdin, ptmx)\n\t\t}\n\t}()\n\n\t// Initial resize\n\tch <- syscall.SIGWINCH\n\n\treturn ch\n}\n"
  },
  {
    "path": "cmd/themegen/main.go",
    "content": "// Theme generator tool for termsvg.\n// Reads JSON theme files from themes/ directory and generates Go code.\npackage main\n\nimport (\n\t\"encoding/json\"\n\t\"fmt\"\n\t\"os\"\n\t\"path/filepath\"\n\t\"strings\"\n\t\"text/template\"\n\t\"time\"\n\n\t\"golang.org/x/text/cases\"\n\t\"golang.org/x/text/language\"\n)\n\n// ThemeData represents the JSON structure of a theme file.\ntype ThemeData struct {\n\tFg      string `json:\"fg\"`\n\tBg      string `json:\"bg\"`\n\tPalette string `json:\"palette\"`\n}\n\n// ThemeInfo holds parsed theme data for code generation.\ntype ThemeInfo struct {\n\tName             string\n\tVarName          string\n\tFg               string\n\tBg               string\n\tPaletteOverrides string\n\tWindowBg         string\n}\n\n// TemplateData holds data for the builtin theme template.\ntype TemplateData struct {\n\tGeneratedAt string\n\tThemes      []ThemeInfo\n}\n\nconst (\n\tdefaultRGBA      = \"{R: 0, G: 0, B: 0, A: 255}\"\n\tdefaultRGBAPlain = \"R: 0, G: 0, B: 0, A: 255\"\n)\n\nconst builtinTemplate = `// Code generated by themegen. DO NOT EDIT.\n// Generated at: {{ .GeneratedAt }}\n\npackage theme\n\nimport (\n\t\"image/color\"\n\n\ttermcolor \"github.com/mrmarble/termsvg/pkg/color\"\n)\n\n// builtinThemes is a registry of all built-in themes.\nvar builtinThemes = map[string]Theme{\n{{- range .Themes }}\n\t\"{{ .Name }}\": {{ .VarName }},\n{{- end }}\n}\n\n{{ range .Themes }}\n// {{ .VarName }} is the \"{{ .Name }}\" theme.\nvar {{ .VarName }} = Theme{\n\tName:       \"{{ .Name }}\",\n\tForeground: color.RGBA{ {{ .Fg }} },\n\tBackground: color.RGBA{ {{ .Bg }} },\n\tPalette:    {{ .VarName }}Palette,\n\tWindowBackground: color.RGBA{ {{ .WindowBg }} },\n\tWindowButtons: [3]color.RGBA{\n\t\t{R: 255, G: 95, B: 86, A: 255},  // Close\n\t\t{R: 255, G: 189, B: 46, A: 255}, // Minimize\n\t\t{R: 24, G: 193, B: 50, A: 255},  // Maximize\n\t},\n}\n\n// {{ .VarName }}Palette is the color palette for the \"{{ .Name }}\" theme.\n// It extends the standard xterm palette with custom colors for the first 16 ANSI colors.\nvar {{ .VarName }}Palette = func() termcolor.Palette {\n\tp := termcolor.Standard()\n\t{{ .PaletteOverrides }}\n\treturn p\n}()\n{{ end }}\n`\n\n// colorToGo converts a hex color to Go RGBA struct format.\n//\n//nolint:dupl // colorToGo and hexToRGBA have slightly different return formats\nfunc colorToGo(hex string) string {\n\t// Remove # prefix\n\thex = strings.TrimPrefix(hex, \"#\")\n\n\t// Handle short form (RGB -> RRGGBB)\n\tif len(hex) == 3 {\n\t\thex = string(hex[0]) + string(hex[0]) +\n\t\t\tstring(hex[1]) + string(hex[1]) +\n\t\t\tstring(hex[2]) + string(hex[2])\n\t}\n\n\tif len(hex) != 6 {\n\t\treturn defaultRGBA\n\t}\n\n\t// Parse hex components\n\tvar r, g, b int\n\tif _, err := fmt.Sscanf(hex[0:2], \"%x\", &r); err != nil {\n\t\treturn defaultRGBA\n\t}\n\tif _, err := fmt.Sscanf(hex[2:4], \"%x\", &g); err != nil {\n\t\treturn defaultRGBA\n\t}\n\tif _, err := fmt.Sscanf(hex[4:6], \"%x\", &b); err != nil {\n\t\treturn defaultRGBA\n\t}\n\n\treturn fmt.Sprintf(\"{R: %d, G: %d, B: %d, A: 255}\", r, g, b)\n}\n\n//nolint:funlen // sequential theme generation steps are clearer in one function\nfunc main() {\n\t// Find themes directory\n\tthemesDir := \"themes\"\n\tif _, err := os.Stat(themesDir); os.IsNotExist(err) {\n\t\t// Try from pkg/theme directory\n\t\tthemesDir = \"../../themes\"\n\t\tif _, err := os.Stat(themesDir); os.IsNotExist(err) {\n\t\t\tfmt.Fprintf(os.Stderr, \"Error: themes directory not found\\n\")\n\t\t\tos.Exit(1)\n\t\t}\n\t}\n\n\t// Read all theme files\n\tentries, err := os.ReadDir(themesDir)\n\tif err != nil {\n\t\tfmt.Fprintf(os.Stderr, \"Error reading themes directory: %v\\n\", err)\n\t\tos.Exit(1)\n\t}\n\n\tthemes := make([]ThemeInfo, 0, len(entries))\n\tfor _, entry := range entries {\n\t\tif entry.IsDir() || !strings.HasSuffix(entry.Name(), \".json\") {\n\t\t\tcontinue\n\t\t}\n\n\t\ttheme, err := parseThemeFile(filepath.Join(themesDir, entry.Name()))\n\t\tif err != nil {\n\t\t\tfmt.Fprintf(os.Stderr, \"Warning: failed to parse %s: %v\\n\", entry.Name(), err)\n\t\t\tcontinue\n\t\t}\n\n\t\tthemes = append(themes, theme)\n\t}\n\n\tif len(themes) == 0 {\n\t\tfmt.Fprintf(os.Stderr, \"Error: no valid theme files found\\n\")\n\t\tos.Exit(1)\n\t}\n\n\t// Generate output file\n\toutputFile := \"pkg/theme/builtin.go\"\n\tif _, err := os.Stat(\"pkg/theme\"); os.IsNotExist(err) {\n\t\toutputFile = \"builtin.go\"\n\t}\n\n\ttmpl, err := template.New(\"builtin\").Parse(builtinTemplate)\n\tif err != nil {\n\t\tfmt.Fprintf(os.Stderr, \"Error parsing template: %v\\n\", err)\n\t\tos.Exit(1)\n\t}\n\n\tfile, err := os.Create(outputFile)\n\tif err != nil {\n\t\tfmt.Fprintf(os.Stderr, \"Error creating output file: %v\\n\", err)\n\t\tos.Exit(1)\n\t}\n\tdefer file.Close()\n\n\tdata := TemplateData{\n\t\tGeneratedAt: time.Now().Format(time.RFC3339),\n\t\tThemes:      themes,\n\t}\n\n\tif err := tmpl.Execute(file, data); err != nil {\n\t\tfmt.Fprintf(os.Stderr, \"Error executing template: %v\\n\", err)\n\t\t//nolint:gocritic // exitAfterDefer is acceptable here - program is terminating\n\t\tos.Exit(1)\n\t}\n\n\tfmt.Printf(\"Generated %d themes in %s\\n\", len(themes), outputFile)\n}\n\nfunc parseThemeFile(path string) (ThemeInfo, error) {\n\tdata, err := os.ReadFile(path) //nolint:gosec // path is validated theme file\n\tif err != nil {\n\t\treturn ThemeInfo{}, err\n\t}\n\n\tvar themeData ThemeData\n\tif err := json.Unmarshal(data, &themeData); err != nil {\n\t\treturn ThemeInfo{}, err\n\t}\n\n\t// Validate palette has 16 colors\n\tcolors := strings.Split(themeData.Palette, \":\")\n\tif len(colors) != 16 {\n\t\treturn ThemeInfo{}, fmt.Errorf(\"palette must have 16 colors, got %d\", len(colors))\n\t}\n\n\t// Get theme name from filename\n\tname := strings.TrimSuffix(filepath.Base(path), \".json\")\n\n\t// Create variable name (camelCase)\n\tvarName := toVarName(name)\n\n\t// Parse colors (foreground/background use field format)\n\tfg := hexToRGBA(themeData.Fg)\n\tbg := hexToRGBA(themeData.Bg)\n\n\t// Build palette overrides (only first 16 colors)\n\tpaletteOverrides := make([]string, 0, len(colors))\n\tfor i, c := range colors {\n\t\tpaletteOverrides = append(paletteOverrides, fmt.Sprintf(\"p[%d] = color.RGBA%s\", i, colorToGo(c)))\n\t}\n\n\t// Window background uses the theme's bg property (terminal background)\n\twindowBg := bg\n\n\treturn ThemeInfo{\n\t\tName:             name,\n\t\tVarName:          varName,\n\t\tFg:               fg,\n\t\tBg:               bg,\n\t\tPaletteOverrides: strings.Join(paletteOverrides, \"\\n\\t\"),\n\t\tWindowBg:         windowBg,\n\t}, nil\n}\n\nfunc toVarName(name string) string {\n\t// Convert kebab-case to CamelCase\n\tparts := strings.Split(name, \"-\")\n\tcaser := cases.Title(language.English)\n\tfor i, part := range parts {\n\t\tparts[i] = caser.String(part)\n\t}\n\treturn strings.Join(parts, \"\")\n}\n\n//nolint:dupl // hexToRGBA has different return format than colorToGo\nfunc hexToRGBA(hex string) string {\n\t// Remove # prefix\n\thex = strings.TrimPrefix(hex, \"#\")\n\n\t// Handle short form (RGB -> RRGGBB)\n\tif len(hex) == 3 {\n\t\thex = string(hex[0]) + string(hex[0]) +\n\t\t\tstring(hex[1]) + string(hex[1]) +\n\t\t\tstring(hex[2]) + string(hex[2])\n\t}\n\n\tif len(hex) != 6 {\n\t\treturn defaultRGBAPlain\n\t}\n\n\t// Parse hex components\n\tvar r, g, b int\n\tif _, err := fmt.Sscanf(hex[0:2], \"%x\", &r); err != nil {\n\t\treturn defaultRGBAPlain\n\t}\n\tif _, err := fmt.Sscanf(hex[2:4], \"%x\", &g); err != nil {\n\t\treturn defaultRGBAPlain\n\t}\n\tif _, err := fmt.Sscanf(hex[4:6], \"%x\", &b); err != nil {\n\t\treturn defaultRGBAPlain\n\t}\n\n\treturn fmt.Sprintf(\"R: %d, G: %d, B: %d, A: 255\", r, g, b)\n}\n"
  },
  {
    "path": "examples/256colors.cast",
    "content": "{\"version\":2,\"width\":120,\"height\":42,\"timestamp\":1647092161,\"duration\":10.296995,\"env\":{\"SHELL\":\"/usr/bin/zsh\",\"TERM\":\"xterm-256color\"}}\n[0.442473,\"o\",\"\\u001b[1m\\u001b[7m%\\u001b[27m\\u001b[1m\\u001b[0m                                                                                                                       \\r \\r\"]\n[0.442493,\"o\",\"\\u001b]2;mrmarble@founder:~/repos/termsvg\\u0007\"]\n[0.442515,\"o\",\"\\u001b]1;~/repos/termsvg\\u0007\"]\n[0.465364,\"o\",\"\\r\\u001b[0m\\u001b[27m\\u001b[24m\\u001b[J\\u001b[01;32m➜  \\u001b[36mtermsvg\\u001b[00m \\u001b[01;34mgit:(\\u001b[31mmaster\\u001b[34m) \\u001b[33m✗\\u001b[00m \\u001b[K\"]\n[0.465466,\"o\",\"\\u001b[?1h\\u001b=\"]\n[0.465774,\"o\",\"\\u001b[?2004h\"]\n[1.921296,\"o\",\"\\u001b[4mc\\u001b[24m\"]\n[1.922085,\"o\",\"\\u0008\\u001b[4mc\\u001b[24m\\u001b[90md repos/termsvg\\u001b[39m\\u001b[15D\"]\n[2.172367,\"o\",\"\\u0008\\u001b[24m\\u001b[1m\\u001b[31mc\\u001b[1m\\u001b[31mu\\u001b[0m\\u001b[39m\\u001b[39m \\u001b[39m \\u001b[39m \\u001b[39m \\u001b[39m \\u001b[39m \\u001b[39m \\u001b[39m \\u001b[39m \\u001b[39m \\u001b[39m \\u001b[39m \\u001b[39m \\u001b[39m \\u001b[14D\"]\n[2.172859,\"o\",\"\\u001b[90mrl -s https://gist.githubusercontent.com/WoLpH/8b6f697ecc06318004728b8c0127d9b3/raw/colortes\\u001b[90mt\\u001b[90m.py | python3\\u001b[39m\\u001b[K\\u001b[A\\u001b[14C\"]\n[2.722262,\"o\",\"\\u0008\\u0008\\u001b[1m\\u001b[31mc\\u001b[1m\\u001b[31mu\\u001b[1m\\u001b[31mr\\u001b[0m\\u001b[39m\"]\n[2.895835,\"o\",\"\\u0008\\u0008\\u0008\\u001b[0m\\u001b[32mc\\u001b[0m\\u001b[32mu\\u001b[0m\\u001b[32mr\\u001b[32ml\\u001b[39m\"]\n[3.095827,\"o\",\"\\u001b[39m \"]\n[3.446299,\"o\",\"\\u001b[39m-\"]\n[3.846085,\"o\",\"\\u001b[39ms\"]\n[4.947344,\"o\",\"\\u001b[39m \\u001b[39mh\\u001b[39mt\\u001b[39mt\\u001b[39mp\\u001b[39ms\\u001b[39m:\\u001b[39m/\\u001b[39m/\\u001b[39mg\\u001b[39mi\\u001b[39ms\\u001b[39mt\\u001b[39m.\\u001b[39mg\\u001b[39mi\\u001b[39mt\\u001b[39mh\\u001b[39mu\\u001b[39mb\\u001b[39mu\\u001b[39ms\\u001b[39me\\u001b[39mr\\u001b[39mc\\u001b[39mo\\u001b[39mn\\u001b[39mt\\u001b[39me\\u001b[39mn\\u001b[39mt\\u001b[39m.\\u001b[39mc\\u001b[39mo\\u001b[39mm\\u001b[39m/\\u001b[39mW\\u001b[39mo\\u001b[39mL\\u001b[39mp\\u001b[39mH\\u001b[39m/\\u001b[39m8\\u001b[39mb\\u001b[39m6\\u001b[39mf\\u001b[39m6\\u001b[39m9\\u001b[39m7\\u001b[39me\\u001b[39mc\\u001b[39mc\\u001b[39m0\\u001b[39m6\\u001b[39m3\\u001b[39m1\\u001b[39m8\\u001b[39m0\\u001b[39m0\\u001b[39m4\\u001b[39m7\\u001b[39m2\\u001b[39m8\\u001b[39mb\\u001b[39m8\\u001b[39mc\\u001b[39m0\\u001b[39m1\\u001b[39m2\\u001b[39m7\\u001b[39md\\u001b[39m9\\u001b[39mb\\u001b[39m3\\u001b[39m/\\u001b[39mr\\u001b[39ma\\u001b[39mw\\u001b[39m/\\u001b[39mc\\u001b[39mo\\u001b[39ml\\u001b[39mo\\u001b[39mr\\u001b[39mt\\u001b[39me\\u001b[39mst\\u001b[39m.\\u001b[39mp\\u001b[39my\\u001b[39m \\u001b[39m|\\u001b[39m \\u001b[32mp\\u001b[32my\\u001b[32mt\\u001b[32mh\\u001b[32mo\\u001b[32mn\\u001b[32m3\\u001b[39m\"]\n[7.195759,\"o\",\"\\u001b[?1l\\u001b\\u003e\"]\n[7.197583,\"o\",\"\\u001b[?2004l\\r\\r\\n\"]\n[7.197885,\"o\",\"\\u001b]2;curl -s  | python3\\u0007\\u001b]1;curl\\u0007\"]\n[7.262589,\"o\",\"\\u001b[38;5;255m\\u001b[48;5;16m   16  00/00/00   \\u001b[0m \\u001b[38;5;255m\\u001b[48;5;17m   17  00/00/5F   \\u001b[0m \\u001b[38;5;255m\\u001b[48;5;18m   18  00/00/87   \\u001b[0m \\u001b[38;5;255m\\u001b[48;5;19m   19  00/00/AF   \\u001b[0m \\u001b[38;5;0m\\u001b[48;5;20m   20  00/00/D7   \\u001b[0m \\u001b[38;5;0m\\u001b[48;5;21m   21  00/00/FF   \\u001b[0m\\r\\n\\u001b[38;5;255m\\u001b[48;5;22m   22  00/5F/00   \\u001b[0m \\u001b[38;5;255m\\u001b[48;5;23m   23  00/5F/5F   \\u001b[0m \\u001b[38;5;255m\\u001b[48;5;24m   24  00/5F/87   \\u001b[0m \\u001b[38;5;255m\\u001b[48;5;25m   25  00/5F/AF   \\u001b[0m \\u001b[38;5;0m\\u001b[48;5;26m   26  00/5F/D7   \\u001b[0m \\u001b[38;5;0m\\u001b[48;5;27m   27  00/5F/FF   \\u001b[0m\\r\\n\"]\n[7.262671,\"o\",\"\\u001b[38;5;255m\\u001b[48;5;28m   28  00/87/00   \\u001b[0m \\u001b[38;5;255m\\u001b[48;5;29m   29  00/87/5F   \\u001b[0m \\u001b[38;5;255m\\u001b[48;5;30m   30  00/87/87   \\u001b[0m \\u001b[38;5;255m\\u001b[48;5;31m   31  00/87/AF   \\u001b[0m \\u001b[38;5;0m\\u001b[48;5;32m   32  00/87/D7   \\u001b[0m \\u001b[38;5;0m\\u001b[48;5;33m   33  00/87/FF   \\u001b[0m\\r\\n\"]\n[7.262723,\"o\",\"\\u001b[38;5;255m\\u001b[48;5;34m   34  00/AF/00   \\u001b[0m \\u001b[38;5;255m\\u001b[48;5;35m   35  00/AF/5F   \\u001b[0m \\u001b[38;5;255m\\u001b[48;5;36m   36  00/AF/87   \\u001b[0m \\u001b[38;5;255m\\u001b[48;5;37m   37  00/AF/AF   \\u001b[0m \\u001b[38;5;0m\\u001b[48;5;38m   38  00/AF/D7   \\u001b[0m \\u001b[38;5;0m\\u001b[48;5;39m   39  00/AF/FF   \\u001b[0m\\r\\n\\u001b[38;5;0m\\u001b[48;5;40m   40  00/D7/00   \\u001b[0m \\u001b[38;5;0m\\u001b[48;5;41m   41  00/D7/5F   \\u001b[0m \\u001b[38;5;0m\\u001b[48;5;42m   42  00/D7/87   \\u001b[0m \\u001b[38;5;0m\\u001b[48;5;43m   43  00/D7/AF   \\u001b[0m \\u001b[38;5;0m\\u001b[48;5;44m   44  00/D7/D7   \\u001b[0m \\u001b[38;5;0m\\u001b[48;5;45m   45  00/D7/FF   \\u001b[0m\\r\\n\"]\n[7.262792,\"o\",\"\\u001b[38;5;0m\\u001b[48;5;46m   46  00/FF/00   \\u001b[0m \\u001b[38;5;0m\\u001b[48;5;47m   47  00/FF/5F   \\u001b[0m \\u001b[38;5;0m\\u001b[48;5;48m   48  00/FF/87   \\u001b[0m \\u001b[38;5;0m\\u001b[48;5;49m   49  00/FF/AF   \\u001b[0m \\u001b[38;5;0m\\u001b[48;5;50m   50  00/FF/D7   \\u001b[0m \\u001b[38;5;0m\\u001b[48;5;51m   51  00/FF/FF   \\u001b[0m\\r\\n\\u001b[38;5;255m\\u001b[48;5;52m   52  5F/00/00   \\u001b[0m \\u001b[38;5;255m\\u001b[48;5;53m   53  5F/00/5F   \\u001b[0m \\u001b[38;5;255m\\u001b[48;5;54m   54  5F/00/87   \\u001b[0m \\u001b[38;5;255m\\u001b[48;5;55m   55  5F/00/AF   \\u001b[0m \\u001b[38;5;0m\\u001b[48;5;56m   56  5F/00/D7   \\u001b[0m \\u001b[38;5;0m\\u001b[48;5;57m   57  5F/00/FF   \\u001b[0m\\r\\n\"]\n[7.262874,\"o\",\"\\u001b[38;5;255m\\u001b[48;5;58m   58  5F/5F/00   \\u001b[0m \\u001b[38;5;255m\\u001b[48;5;59m   59  5F/5F/5F   \\u001b[0m \\u001b[38;5;255m\\u001b[48;5;60m   60  5F/5F/87   \\u001b[0m \\u001b[38;5;255m\\u001b[48;5;61m   61  5F/5F/AF   \\u001b[0m \\u001b[38;5;0m\\u001b[48;5;62m   62  5F/5F/D7   \\u001b[0m \\u001b[38;5;0m\\u001b[48;5;63m   63  5F/5F/FF   \\u001b[0m\\r\\n\\u001b[38;5;255m\\u001b[48;5;64m   64  5F/87/00   \\u001b[0m \\u001b[38;5;255m\\u001b[48;5;65m   65  5F/87/5F   \\u001b[0m \\u001b[38;5;255m\\u001b[48;5;66m   66  5F/87/87   \\u001b[0m \\u001b[38;5;255m\\u001b[48;5;67m   67  5F/87/AF   \\u001b[0m \\u001b[38;5;0m\\u001b[48;5;68m   68  5F/87/D7   \\u001b[0m \\u001b[38;5;0m\\u001b[48;5;69m   69  5F/87/FF   \\u001b[0m\\r\\n\"]\n[7.262972,\"o\",\"\\u001b[38;5;255m\\u001b[48;5;70m   70  5F/AF/00   \\u001b[0m \\u001b[38;5;255m\\u001b[48;5;71m   71  5F/AF/5F   \\u001b[0m \\u001b[38;5;255m\\u001b[48;5;72m   72  5F/AF/87   \\u001b[0m \\u001b[38;5;255m\\u001b[48;5;73m   73  5F/AF/AF   \\u001b[0m \\u001b[38;5;0m\\u001b[48;5;74m   74  5F/AF/D7   \\u001b[0m \\u001b[38;5;0m\\u001b[48;5;75m   75  5F/AF/FF   \\u001b[0m\\r\\n\"]\n[7.263053,\"o\",\"\\u001b[38;5;0m\\u001b[48;5;76m   76  5F/D7/00   \\u001b[0m \\u001b[38;5;0m\\u001b[48;5;77m   77  5F/D7/5F   \\u001b[0m \\u001b[38;5;0m\\u001b[48;5;78m   78  5F/D7/87   \\u001b[0m \\u001b[38;5;0m\\u001b[48;5;79m   79  5F/D7/AF   \\u001b[0m \\u001b[38;5;0m\\u001b[48;5;80m   80  5F/D7/D7   \\u001b[0m \\u001b[38;5;0m\\u001b[48;5;81m   81  5F/D7/FF   \\u001b[0m\\r\\n\"]\n[7.263107,\"o\",\"\\u001b[38;5;0m\\u001b[48;5;82m   82  5F/FF/00   \\u001b[0m \\u001b[38;5;0m\\u001b[48;5;83m   83  5F/FF/5F   \\u001b[0m \\u001b[38;5;0m\\u001b[48;5;84m   84  5F/FF/87   \\u001b[0m \\u001b[38;5;0m\\u001b[48;5;85m   85  5F/FF/AF   \\u001b[0m \\u001b[38;5;0m\\u001b[48;5;86m   86  5F/FF/D7   \\u001b[0m \\u001b[38;5;0m\\u001b[48;5;87m   87  5F/FF/FF   \\u001b[0m\\r\\n\"]\n[7.263188,\"o\",\"\\u001b[38;5;255m\\u001b[48;5;88m   88  87/00/00   \\u001b[0m \\u001b[38;5;255m\\u001b[48;5;89m   89  87/00/5F   \\u001b[0m \\u001b[38;5;255m\\u001b[48;5;90m   90  87/00/87   \\u001b[0m \\u001b[38;5;255m\\u001b[48;5;91m   91  87/00/AF   \\u001b[0m \\u001b[38;5;0m\\u001b[48;5;92m   92  87/00/D7   \\u001b[0m \\u001b[38;5;0m\\u001b[48;5;93m   93  87/00/FF   \\u001b[0m\\r\\n\\u001b[38;5;255m\\u001b[48;5;94m   94  87/5F/00   \\u001b[0m \\u001b[38;5;255m\\u001b[48;5;95m   95  87/5F/5F   \\u001b[0m \\u001b[38;5;255m\\u001b[48;5;96m   96  87/5F/87   \\u001b[0m \\u001b[38;5;255m\\u001b[48;5;97m   97  87/5F/AF   \\u001b[0m \\u001b[38;5;0m\\u001b[48;5;98m   98  87/5F/D7   \\u001b[0m \\u001b[38;5;0m\\u001b[48;5;99m   99  87/5F/FF   \\u001b[0m\\r\\n\"]\n[7.263279,\"o\",\"\\u001b[38;5;255m\\u001b[48;5;100m   100 87/87/00   \\u001b[0m \\u001b[38;5;255m\\u001b[48;5;101m   101 87/87/5F   \\u001b[0m \\u001b[38;5;255m\\u001b[48;5;102m   102 87/87/87   \\u001b[0m \\u001b[38;5;255m\\u001b[48;5;103m   103 87/87/AF   \\u001b[0m \\u001b[38;5;0m\\u001b[48;5;104m   104 87/87/D7   \\u001b[0m \\u001b[38;5;0m\\u001b[48;5;105m   105 87/87/FF   \\u001b[0m\\r\\n\\u001b[38;5;255m\\u001b[48;5;106m   106 87/AF/00   \\u001b[0m \\u001b[38;5;255m\\u001b[48;5;107m   107 87/AF/5F   \\u001b[0m \\u001b[38;5;255m\\u001b[48;5;108m   108 87/AF/87   \\u001b[0m \\u001b[38;5;255m\\u001b[48;5;109m   109 87/AF/AF   \\u001b[0m \\u001b[38;5;0m\\u001b[48;5;110m   110 87/AF/D7   \\u001b[0m \\u001b[38;5;0m\\u001b[48;5;111m   111 87/AF/FF   \\u001b[0m\\r\\n\"]\n[7.263351,\"o\",\"\\u001b[38;5;0m\\u001b[48;5;112m   112 87/D7/00   \\u001b[0m \\u001b[38;5;0m\\u001b[48;5;113m   113 87/D7/5F   \\u001b[0m \\u001b[38;5;0m\\u001b[48;5;114m   114 87/D7/87   \\u001b[0m \\u001b[38;5;0m\\u001b[48;5;115m   115 87/D7/AF   \\u001b[0m \\u001b[38;5;0m\\u001b[48;5;116m   116 87/D7/D7   \\u001b[0m \\u001b[38;5;0m\\u001b[48;5;117m   117 87/D7/FF   \\u001b[0m\\r\\n\"]\n[7.263362,\"o\",\"\\u001b[38;5;0m\\u001b[48;5;118m   118 87/FF/00   \\u001b[0m \\u001b[38;5;0m\\u001b[48;5;119m   119 87/FF/5F   \\u001b[0m \\u001b[38;5;0m\\u001b[48;5;120m   120 87/FF/87   \\u001b[0m \\u001b[38;5;0m\\u001b[48;5;121m   121 87/FF/AF   \\u001b[0m \\u001b[38;5;0m\\u001b[48;5;122m   122 87/FF/D7   \\u001b[0m \\u001b[38;5;0m\\u001b[48;5;123m   123 87/FF/FF   \\u001b[0m\\r\\n\"]\n[7.263457,\"o\",\"\\u001b[38;5;255m\\u001b[48;5;124m   124 AF/00/00   \\u001b[0m \\u001b[38;5;255m\\u001b[48;5;125m   125 AF/00/5F   \\u001b[0m \\u001b[38;5;255m\\u001b[48;5;126m   126 AF/00/87   \\u001b[0m \\u001b[38;5;255m\\u001b[48;5;127m   127 AF/00/AF   \\u001b[0m \\u001b[38;5;0m\\u001b[48;5;128m   128 AF/00/D7   \\u001b[0m \\u001b[38;5;0m\\u001b[48;5;129m   129 AF/00/FF   \\u001b[0m\\r\\n\"]\n[7.263529,\"o\",\"\\u001b[38;5;255m\\u001b[48;5;130m   130 AF/5F/00   \\u001b[0m \\u001b[38;5;255m\\u001b[48;5;131m   131 AF/5F/5F   \\u001b[0m \\u001b[38;5;255m\\u001b[48;5;132m   132 AF/5F/87   \\u001b[0m \\u001b[38;5;255m\\u001b[48;5;133m   133 AF/5F/AF   \\u001b[0m \\u001b[38;5;0m\\u001b[48;5;134m   134 AF/5F/D7   \\u001b[0m \\u001b[38;5;0m\\u001b[48;5;135m   135 AF/5F/FF   \\u001b[0m\\r\\n\"]\n[7.263542,\"o\",\"\\u001b[38;5;255m\\u001b[48;5;136m   136 AF/87/00   \\u001b[0m \\u001b[38;5;255m\\u001b[48;5;137m   137 AF/87/5F   \\u001b[0m \\u001b[38;5;255m\\u001b[48;5;138m   138 AF/87/87   \\u001b[0m \\u001b[38;5;255m\\u001b[48;5;139m   139 AF/87/AF   \\u001b[0m \\u001b[38;5;0m\\u001b[48;5;140m   140 AF/87/D7   \\u001b[0m \\u001b[38;5;0m\\u001b[48;5;141m   141 AF/87/FF   \\u001b[0m\\r\\n\"]\n[7.263645,\"o\",\"\\u001b[38;5;255m\\u001b[48;5;142m   142 AF/AF/00   \\u001b[0m \\u001b[38;5;255m\\u001b[48;5;143m   143 AF/AF/5F   \\u001b[0m \\u001b[38;5;255m\\u001b[48;5;144m   144 AF/AF/87   \\u001b[0m \\u001b[38;5;255m\\u001b[48;5;145m   145 AF/AF/AF   \\u001b[0m \\u001b[38;5;0m\\u001b[48;5;146m   146 AF/AF/D7   \\u001b[0m \\u001b[38;5;0m\\u001b[48;5;147m   147 AF/AF/FF   \\u001b[0m\\r\\n\"]\n[7.26375,\"o\",\"\\u001b[38;5;0m\\u001b[48;5;148m   148 AF/D7/00   \\u001b[0m \\u001b[38;5;0m\\u001b[48;5;149m   149 AF/D7/5F   \\u001b[0m \\u001b[38;5;0m\\u001b[48;5;150m   150 AF/D7/87   \\u001b[0m \\u001b[38;5;0m\\u001b[48;5;151m   151 AF/D7/AF   \\u001b[0m \\u001b[38;5;0m\\u001b[48;5;152m   152 AF/D7/D7   \\u001b[0m \\u001b[38;5;0m\\u001b[48;5;153m   153 AF/D7/FF   \\u001b[0m\\r\\n\\u001b[38;5;0m\\u001b[48;5;154m   154 AF/FF/00   \\u001b[0m \\u001b[38;5;0m\\u001b[48;5;155m   155 AF/FF/5F   \\u001b[0m \\u001b[38;5;0m\\u001b[48;5;156m   156 AF/FF/87   \\u001b[0m \\u001b[38;5;0m\\u001b[48;5;157m   157 AF/FF/AF   \\u001b[0m \\u001b[38;5;0m\\u001b[48;5;158m   158 AF/FF/D7   \\u001b[0m \\u001b[38;5;0m\\u001b[48;5;159m   159 AF/FF/FF   \\u001b[0m\\r\\n\"]\n[7.263856,\"o\",\"\\u001b[38;5;0m\\u001b[48;5;160m   160 D7/00/00   \\u001b[0m \\u001b[38;5;0m\\u001b[48;5;161m   161 D7/00/5F   \\u001b[0m \\u001b[38;5;0m\\u001b[48;5;162m   162 D7/00/87   \\u001b[0m \\u001b[38;5;0m\\u001b[48;5;163m   163 D7/00/AF   \\u001b[0m \\u001b[38;5;0m\\u001b[48;5;164m   164 D7/00/D7   \\u001b[0m \\u001b[38;5;0m\\u001b[48;5;165m   165 D7/00/FF   \\u001b[0m\\r\\n\\u001b[38;5;0m\\u001b[48;5;166m   166 D7/5F/00   \\u001b[0m \\u001b[38;5;0m\\u001b[48;5;167m   167 D7/5F/5F   \\u001b[0m \\u001b[38;5;0m\\u001b[48;5;168m   168 D7/5F/87   \\u001b[0m \\u001b[38;5;0m\\u001b[48;5;169m   169 D7/5F/AF   \\u001b[0m \\u001b[38;5;0m\\u001b[48;5;170m   170 D7/5F/D7   \\u001b[0m \\u001b[38;5;0m\\u001b[48;5;171m   171 D7/5F/FF   \\u001b[0m\\r\\n\"]\n[7.26396,\"o\",\"\\u001b[38;5;0m\\u001b[48;5;172m   172 D7/87/00   \\u001b[0m \\u001b[38;5;0m\\u001b[48;5;173m   173 D7/87/5F   \\u001b[0m \\u001b[38;5;0m\\u001b[48;5;174m   174 D7/87/87   \\u001b[0m \\u001b[38;5;0m\\u001b[48;5;175m   175 D7/87/AF   \\u001b[0m \\u001b[38;5;0m\\u001b[48;5;176m   176 D7/87/D7   \\u001b[0m \\u001b[38;5;0m\\u001b[48;5;177m   177 D7/87/FF   \\u001b[0m\\r\\n\\u001b[38;5;0m\\u001b[48;5;178m   178 D7/AF/00   \\u001b[0m \\u001b[38;5;0m\\u001b[48;5;179m   179 D7/AF/5F   \\u001b[0m \\u001b[38;5;0m\\u001b[48;5;180m   180 D7/AF/87   \\u001b[0m \\u001b[38;5;0m\\u001b[48;5;181m   181 D7/AF/AF   \\u001b[0m \\u001b[38;5;0m\\u001b[48;5;182m   182 D7/AF/D7   \\u001b[0m \\u001b[38;5;0m\\u001b[48;5;183m   183 D7/AF/FF   \\u001b[0m\\r\\n\"]\n[7.264044,\"o\",\"\\u001b[38;5;0m\\u001b[48;5;184m   184 D7/D7/00   \\u001b[0m \\u001b[38;5;0m\\u001b[48;5;185m   185 D7/D7/5F   \\u001b[0m \\u001b[38;5;0m\\u001b[48;5;186m   186 D7/D7/87   \\u001b[0m \\u001b[38;5;0m\\u001b[48;5;187m   187 D7/D7/AF   \\u001b[0m \\u001b[38;5;0m\\u001b[48;5;188m   188 D7/D7/D7   \\u001b[0m \\u001b[38;5;0m\\u001b[48;5;189m   189 D7/D7/FF   \\u001b[0m\\r\\n\\u001b[38;5;0m\\u001b[48;5;190m   190 D7/FF/00   \\u001b[0m \\u001b[38;5;0m\\u001b[48;5;191m   191 D7/FF/5F   \\u001b[0m \\u001b[38;5;0m\\u001b[48;5;192m   192 D7/FF/87   \\u001b[0m \\u001b[38;5;0m\\u001b[48;5;193m   193 D7/FF/AF   \\u001b[0m \\u001b[38;5;0m\\u001b[48;5;194m   194 D7/FF/D7   \\u001b[0m \\u001b[38;5;0m\\u001b[48;5;195m   195 D7/FF/FF   \\u001b[0m\\r\\n\"]\n[7.264142,\"o\",\"\\u001b[38;5;0m\\u001b[48;5;196m   196 FF/00/00   \\u001b[0m \\u001b[38;5;0m\\u001b[48;5;197m   197 FF/00/5F   \\u001b[0m \\u001b[38;5;0m\\u001b[48;5;198m   198 FF/00/87   \\u001b[0m \\u001b[38;5;0m\\u001b[48;5;199m   199 FF/00/AF   \\u001b[0m \\u001b[38;5;0m\\u001b[48;5;200m   200 FF/00/D7   \\u001b[0m \\u001b[38;5;0m\\u001b[48;5;201m   201 FF/00/FF   \\u001b[0m\\r\\n\"]\n[7.264232,\"o\",\"\\u001b[38;5;0m\\u001b[48;5;202m   202 FF/5F/00   \\u001b[0m \\u001b[38;5;0m\\u001b[48;5;203m   203 FF/5F/5F   \\u001b[0m \\u001b[38;5;0m\\u001b[48;5;204m   204 FF/5F/87   \\u001b[0m \\u001b[38;5;0m\\u001b[48;5;205m   205 FF/5F/AF   \\u001b[0m \\u001b[38;5;0m\\u001b[48;5;206m   206 FF/5F/D7   \\u001b[0m \\u001b[38;5;0m\\u001b[48;5;207m   207 FF/5F/FF   \\u001b[0m\\r\\n\\u001b[38;5;0m\\u001b[48;5;208m   208 FF/87/00   \\u001b[0m \\u001b[38;5;0m\\u001b[48;5;209m   209 FF/87/5F   \\u001b[0m \\u001b[38;5;0m\\u001b[48;5;210m   210 FF/87/87   \\u001b[0m \\u001b[38;5;0m\\u001b[48;5;211m   211 FF/87/AF   \\u001b[0m \\u001b[38;5;0m\\u001b[48;5;212m   212 FF/87/D7   \\u001b[0m \\u001b[38;5;0m\\u001b[48;5;213m   213 FF/87/FF   \\u001b[0m\\r\\n\"]\n[7.2643,\"o\",\"\\u001b[38;5;0m\\u001b[48;5;214m   214 FF/AF/00   \\u001b[0m \\u001b[38;5;0m\\u001b[48;5;215m   215 FF/AF/5F   \\u001b[0m \\u001b[38;5;0m\\u001b[48;5;216m   216 FF/AF/87   \\u001b[0m \\u001b[38;5;0m\\u001b[48;5;217m   217 FF/AF/AF   \\u001b[0m \\u001b[38;5;0m\\u001b[48;5;218m   218 FF/AF/D7   \\u001b[0m \\u001b[38;5;0m\\u001b[48;5;219m   219 FF/AF/FF   \\u001b[0m\\r\\n\"]\n[7.264313,\"o\",\"\\u001b[38;5;0m\\u001b[48;5;220m   220 FF/D7/00   \\u001b[0m \\u001b[38;5;0m\\u001b[48;5;221m   221 FF/D7/5F   \\u001b[0m \\u001b[38;5;0m\\u001b[48;5;222m   222 FF/D7/87   \\u001b[0m \\u001b[38;5;0m\\u001b[48;5;223m   223 FF/D7/AF   \\u001b[0m \\u001b[38;5;0m\\u001b[48;5;224m   224 FF/D7/D7   \\u001b[0m \\u001b[38;5;0m\\u001b[48;5;225m   225 FF/D7/FF   \\u001b[0m\\r\\n\"]\n[7.264407,\"o\",\"\\u001b[38;5;0m\\u001b[48;5;226m   226 FF/FF/00   \\u001b[0m \\u001b[38;5;0m\\u001b[48;5;227m   227 FF/FF/5F   \\u001b[0m \\u001b[38;5;0m\\u001b[48;5;228m   228 FF/FF/87   \\u001b[0m \\u001b[38;5;0m\\u001b[48;5;229m   229 FF/FF/AF   \\u001b[0m \\u001b[38;5;0m\\u001b[48;5;230m   230 FF/FF/D7   \\u001b[0m \\u001b[38;5;0m\\u001b[48;5;231m   231 FF/FF/FF   \\u001b[0m\\r\\n\"]\n[7.264487,\"o\",\"\\u001b[38;5;255m\\u001b[48;5;232m   232 08/08/08   \\u001b[0m \\u001b[38;5;255m\\u001b[48;5;233m   233 12/12/12   \\u001b[0m \\u001b[38;5;255m\\u001b[48;5;234m   234 1C/1C/1C   \\u001b[0m \\u001b[38;5;255m\\u001b[48;5;235m   235 26/26/26   \\u001b[0m \\u001b[38;5;255m\\u001b[48;5;236m   236 30/30/30   \\u001b[0m \\u001b[38;5;255m\\u001b[48;5;237m   237 3A/3A/3A   \\u001b[0m\\r\\n\"]\n[7.264513,\"o\",\"\\u001b[38;5;255m\\u001b[48;5;238m   238 44/44/44   \\u001b[0m \\u001b[38;5;255m\\u001b[48;5;239m   239 4E/4E/4E   \\u001b[0m \\u001b[38;5;255m\\u001b[48;5;240m   240 58/58/58   \\u001b[0m \\u001b[38;5;255m\\u001b[48;5;241m   241 62/62/62   \\u001b[0m \\u001b[38;5;255m\\u001b[48;5;242m   242 6C/6C/6C   \\u001b[0m \\u001b[38;5;255m\\u001b[48;5;243m   243 76/76/76   \\u001b[0m\\r\\n\"]\n[7.26457,\"o\",\"\\u001b[38;5;255m\\u001b[48;5;244m   244 80/80/80   \\u001b[0m \\u001b[38;5;255m\\u001b[48;5;245m   245 8A/8A/8A   \\u001b[0m \\u001b[38;5;255m\\u001b[48;5;246m   246 94/94/94   \\u001b[0m \\u001b[38;5;255m\\u001b[48;5;247m   247 9E/9E/9E   \\u001b[0m \\u001b[38;5;255m\\u001b[48;5;248m   248 A8/A8/A8   \\u001b[0m \\u001b[38;5;255m\\u001b[48;5;249m   249 B2/B2/B2   \\u001b[0m\\r\\n\"]\n[7.264657,\"o\",\"\\u001b[38;5;255m\\u001b[48;5;250m   250 BC/BC/BC   \\u001b[0m \\u001b[38;5;255m\\u001b[48;5;251m   251 C6/C6/C6   \\u001b[0m \\u001b[38;5;0m\\u001b[48;5;252m   252 D0/D0/D0   \\u001b[0m \\u001b[38;5;0m\\u001b[48;5;253m   253 DA/DA/DA   \\u001b[0m \\u001b[38;5;0m\\u001b[48;5;254m   254 E4/E4/E4   \\u001b[0m \\u001b[38;5;0m\\u001b[48;5;255m   255 EE/EE/EE   \\u001b[0m\\r\\n\"]\n[7.267284,\"o\",\"\\u001b[1m\\u001b[7m%\\u001b[27m\\u001b[1m\\u001b[0m                                                                                                                       \\r \\r\"]\n[7.267378,\"o\",\"\\u001b]2;mrmarble@founder:~/repos/termsvg\\u0007\\u001b]1;~/repos/termsvg\\u0007\"]\n[7.287736,\"o\",\"\\r\\u001b[0m\\u001b[27m\\u001b[24m\\u001b[J\\u001b[01;32m➜  \\u001b[36mtermsvg\\u001b[00m \\u001b[01;34mgit:(\\u001b[31mmaster\\u001b[34m) \\u001b[33m✗\\u001b[00m \\u001b[K\"]\n[7.287848,\"o\",\"\\u001b[?1h\\u001b=\"]\n[7.288259,\"o\",\"\\u001b[?2004h\"]\n[9.671749,\"o\",\"\\u001b[4me\\u001b[24m\"]\n[9.672449,\"o\",\"\\u0008\\u001b[4me\\u001b[24m\\u001b[90mxit\\u001b[39m\\u0008\\u0008\\u0008\"]\n[9.845889,\"o\",\"\\u0008\\u001b[24m\\u001b[32me\\u001b[32mx\\u001b[39m\"]\n[9.971578,\"o\",\"\\u0008\\u0008\\u001b[1m\\u001b[31me\\u001b[1m\\u001b[31mx\\u001b[1m\\u001b[31mi\\u001b[0m\\u001b[39m\"]\n[10.096186,\"o\",\"\\u0008\\u0008\\u0008\\u001b[0m\\u001b[32me\\u001b[0m\\u001b[32mx\\u001b[0m\\u001b[32mi\\u001b[32mt\\u001b[39m\"]\n[10.295964,\"o\",\"\\u001b[?1l\\u001b\\u003e\"]\n[10.296633,\"o\",\"\\u001b[?2004l\\r\\r\\n\"]\n[10.296995,\"o\",\"\\u001b]2;exit\\u0007\\u001b]1;exit\\u0007\"]"
  },
  {
    "path": "examples/444816.cast",
    "content": "{\"version\": 2, \"width\": 78, \"height\": 17, \"timestamp\": 1635318110, \"env\": {\"SHELL\": \"/bin/zsh\", \"TERM\": \"xterm-256color\"}}\n[0.007307, \"o\", \"\\u001b[?1049h\\u001b[22;0;0t\\u001b[1;17r\\u001b(B\\u001b[m\\u001b[4l\\u001b[?7h\\u001b[?25l\\u001b[H\\u001b[2J\"]\n[0.00767, \"o\", \"\\u001b[H\\u001b[2Jx=-1.50 m\\u001b[1;63H← to nudge left\\r\\nẋ=0.00 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=0.52 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=-0.00 rad/s\\r\\nu=5.25\\n\\n\\n┌───────┐\\n\\u001b[7G|\\u001b[15G│\\n\\u001b[7G|   M   │\\n\\u001b[7G|   \\\\\\\\  │\\n\\u001b[7G└o---\\\\-o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqq\\u001b(B\\\\\\\\\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H| \\\\\\u001b[21G|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1\\\\\\\\0     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[16;14H\\\\\\n\\b\\b┌───┐\"]\n[0.027879, \"o\", \"\\u001b[H\\u001b[2Jx=-1.50 m\\u001b[1;63H← to nudge left\\r\\nẋ=0.04 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=0.52 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=-0.07 rad/s\\r\\nu=5.25\\n\\n\\n┌───────┐\\n\\u001b[7G|\\u001b[15G│\\n\\u001b[7G|   M   │\\n\\u001b[7G|   \\\\\\\\  │\\n\\u001b[7G└o---\\\\-o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqq\\u001b(B\\\\\\\\\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H| \\\\\\u001b[21G|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1\\\\\\\\0     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[16;14H\\\\\\n\\b\\b┌───┐\"]\n[0.048415, \"o\", \"\\u001b[H\\u001b[2Jx=-1.50 m\\u001b[1;63H← to nudge left\\r\\nẋ=0.07 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=0.52 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=-0.13 rad/s\\r\\nu=5.23\\n\\n\\n┌───────┐\\n\\u001b[7G|\\u001b[15G│\\n\\u001b[7G|   M   │\\n\\u001b[7G|   \\\\\\\\  │\\n\\u001b[7G└o---\\\\-o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqq\\u001b(B\\\\\\\\\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H| \\\\\\u001b[21G|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n \"]\n[0.048481, \"o\", \"-2.00    -1\\\\\\\\0     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[16;14H\\\\\\n\\b\\b┌───┐\"]\n[0.068991, \"o\", \"\\u001b[H\\u001b[2Jx=-1.50 m\\u001b[1;63H← to nudge left\\r\\nẋ=0.11 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=0.52 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=-0.20 rad/s\\r\\nu=5.20\\n\\n\\n┌───────┐\\n\\u001b[7G|\\u001b[15G│\\n\\u001b[7G|   M   │\\n\\u001b[7G|    \\\\  │\\n\\u001b[7G└o---\\\\-o┘\\r\\n\"]\n[0.069044, \"o\", \"\\u001b(0\\u001b[0mqqqqqqqqqqq\\u001b(B\\\\\\\\\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H| \\\\\\u001b[21G|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1\\\\\\\\0     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[16;14H\\\\\\n\\b\\b┌───┐\"]\n[0.089619, \"o\", \"\\u001b[H\\u001b[2Jx=-1.49 m\\u001b[1;63H← to nudge left\\r\\nẋ=0.15 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=0.51 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=-0.26 rad/s\\r\\nu=5.17\\n\\n\\n┌───────┐\\n\\u001b[7G|\\u001b[15G│\\n\\u001b[7G|   M   │\\n\\u001b[7G|    \\\\  │\\n\\u001b[7G└o---\\\\-o┘\\r\\n\"]\n[0.08988, \"o\", \"\\u001b(0\\u001b[0mqqqqqqqqqqq\\u001b(B\\\\\\\\\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H| \\\\\\u001b[21G|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1\\\\\\\\0     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[16;14H\\\\\\n\\b\\b┌───┐\"]\n[0.110293, \"o\", \"\\u001b[H\\u001b[2Jx=-1.49 m\\u001b[1;63H← to nudge left\\r\\nẋ=0.18 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=0.50 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=-0.33 rad/s\\r\\nu=5.12\\n\\n\\n┌───────┐\\n\\u001b[7G|\\u001b[15G\"]\n[0.110478, \"o\", \"│\\n\\u001b[7G|   M   │\\n\\u001b[7G|    \\\\  │\\n\\u001b[7G└o---\\\\-o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqq\\u001b(B\\\\\\\\\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H| \\\\\\u001b[21G|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1\\\\\\\\0     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[16;14H\"]\n[0.110756, \"o\", \"\\\\\\n\\b\\b┌───┐\"]\n[0.131124, \"o\", \"\\u001b[H\\u001b[2Jx=-1.48 m\\u001b[1;63H← to nudge left\\r\\nẋ=0.22 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=0.49 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=-0.39 rad/s\\r\\nu=5.07\\n\\n\\n\"]\n[0.131265, \"o\", \"┌───────┐\\n\\u001b[7G|\\u001b[15G│\\n\\u001b[7G|   M   │\\n\\u001b[7G|    \\\\  │\\n\\u001b[7G└o---\\\\-o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqq\\u001b(B\\\\\\\\\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H| \\\\\\u001b[21G\"]\n[0.131645, \"o\", \"|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1\\\\\\\\0     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[16;14H\\\\\\\\\\n\\b\\b\\b┌───┐\"]\n[0.152103, \"o\", \"\\u001b[H\\u001b[2Jx=-1.48 m\\u001b[1;63H← to nudge left\\r\\nẋ=0.26 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=0.49 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=-0.46 rad/s\\r\\nu=5.01\\n\\n\\n\"]\n[0.152297, \"o\", \"┌───────┐\\n\\u001b[7G|\\u001b[15G│\\n\\u001b[7G|   M   │\\n\\u001b[7G|    \\\\  │\\n\\u001b[7G└o---\\\\-o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqq\\u001b(B\\\\\\\\\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H| \\\\\\\\\\u001b[21G|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n \"]\n[0.152555, \"o\", \"-2.00    -1.\\\\0     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[16;14H\\\\\\\\\\n\\b\\b\\b┌───┐\"]\n[0.173157, \"o\", \"\\u001b[H\\u001b[2Jx=-1.47 m\\u001b[1;63H← to nudge left\\r\\nẋ=0.29 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=0.47 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=-0.52 rad/s\\r\\nu=4.94\\n\\n\\n ┌───────┐\\n\\u001b[8G|\\u001b[16G│\\n\\u001b[8G|   M   │\\n\\u001b[8G\"]\n[0.173545, \"o\", \"|   \\\\   │\\n\\u001b[8G└o--\\\\\\\\-o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqq\\u001b(B\\\\\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H| \\\\\\\\\\u001b[21G|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n \"]\n[0.173685, \"o\", \"-2.00    -1.\\\\0     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[16;14H\\\\\\\\\\n\\b\\b\\b┌───┐\"]\n[0.194271, \"o\", \"\\u001b[H\\u001b[2Jx=-1.47 m\\u001b[1;63H← to nudge left\\r\\nẋ=0.33 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=0.46 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=-0.59 rad/s\\r\\nu=4.87\\n\\n\\n ┌───────┐\\n\\u001b[8G|\\u001b[16G│\\n\\u001b[8G\"]\n[0.194585, \"o\", \"|   M   │\\n\\u001b[8G|   \\\\   │\\n\\u001b[8G└o--\\\\\\\\-o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqq\\u001b(B\\\\\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H| \\\\\\\\\\u001b[21G|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n \"]\n[0.194878, \"o\", \"-2.00    -1.\\\\0     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[16;14H\\\\\\\\\\n\\b\\b\\b┌───┐\"]\n[0.215137, \"o\", \"\\u001b[H\\u001b[2Jx=-1.46 m\\u001b[1;63H← to nudge left\\r\\nẋ=0.36 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=0.45 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=-0.65 rad/s\\r\\nu=4.79\\n\\n\\n ┌───────┐\\n\\u001b[8G\"]\n[0.215256, \"o\", \"|\\u001b[16G│\\n\\u001b[8G|   M   │\\n\\u001b[8G|   \\\\   │\\n\\u001b[8G└o--\\\\\\\\-o┘\\r\\n\"]\n[0.215346, \"o\", \"\\u001b(0\\u001b[0mqqqqqqqqqqqq\\u001b(B\\\\\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H| \\\\\\\\\\u001b[21G|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.\\\\0     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[16;14H\"]\n[0.215774, \"o\", \"\\\\\\\\\\n\\b\\b\\b┌───┐\"]\n[0.236104, \"o\", \"\\u001b[H\\u001b[2Jx=-1.45 m\\u001b[1;63H← to nudge left\\r\\nẋ=0.40 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=0.43 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=-0.71 rad/s\\r\\nu=4.71\\n\\n\\n ┌───────┐\\n\\u001b[8G|\\u001b[16G│\\n\\u001b[8G\"]\n[0.236418, \"o\", \"|   M   │\\n\\u001b[8G|   \\\\   │\\n\\u001b[8G└o--\\\\\\\\-o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqq\\u001b(B\\\\\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H| \\\\\\\\\\u001b[21G|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n \"]\n[0.236601, \"o\", \"-2.00    -1.\\\\0     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[16;14H\\\\\\\\\\n\\b\\b┌───┐\"]\n[0.257114, \"o\", \"\\u001b[H\\u001b[2Jx=-1.44 m\\u001b[1;63H← to nudge left\\r\\nẋ=0.43 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=0.42 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=-0.77 rad/s\\r\\nu=4.63\\n\\n\\n ┌───────┐\\n\\u001b[8G|\\u001b[16G│\\n\\u001b[8G|   M   │\\n\\u001b[8G|   \\\\\\\\  │\\n\\u001b[8G\"]\n[0.257247, \"o\", \"└o---\\\\-o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqq\\u001b(B\\\\\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H| \\\\\\\\\\u001b[21G|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n \"]\n[0.257333, \"o\", \"-2.00    -1.\\\\0     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[16;14H\\\\\\\\\\n\\b\\b┌───┐\"]\n[0.278205, \"o\", \"\\u001b[H\\u001b[2Jx=-1.43 m\\u001b[1;63H← to nudge left\\r\\nẋ=0.46 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=0.40 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=-0.82 rad/s\\r\\nu=4.54\\n\\n\\n ┌───────┐\\n\\u001b[8G|\\u001b[16G│\\n\\u001b[8G|   M   │\\n\\u001b[8G\"]\n[0.278346, \"o\", \"|    \\\\  │\\n\\u001b[8G└o---\\\\-o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqq\\u001b(B\\\\\\\\\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|  \\\\\\u001b[21G|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.\\\\0     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[16;14H\"]\n[0.278758, \"o\", \"\\\\\\\\\\n\\b\\b┌───┐\"]\n[0.299019, \"o\", \"\\u001b[H\\u001b[2Jx=-1.42 m\\u001b[1;63H← to nudge left\\r\\nẋ=0.50 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=0.38 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=-0.88 rad/s\\r\\nu=4.45\\n\\n\\n  ┌───────┐\\u001b[9;9H|\\u001b[17G│\\u001b[10;9H|   M   │\\u001b[11;9H|   \\\\   │\\u001b[12;9H\"]\n[0.299161, \"o\", \"└o--\\\\--o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqq\\u001b(B\\\\\\\\\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|  \\\\\\u001b[21G|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.\\\\\\\\     -1.00    -0.50     0.00     0.50\\u001b[59G\"]\n[0.29925, \"o\", \"1.00     1.50\\u001b[16;15H\\\\\\n\\b\\b┌───┐\"]\n[0.319784, \"o\", \"\\u001b[H\\u001b[2Jx=-1.41 m\\u001b[1;63H← to nudge left\\r\\nẋ=0.53 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=0.36 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=-0.93 rad/s\\r\\nu=4.36\\n\\n\\n  ┌───────┐\\u001b[9;9H|\\u001b[17G│\\u001b[10;9H|   M   │\\u001b[11;9H|   \\\\   │\\u001b[12;9H\"]\n[0.320096, \"o\", \"└o--\\\\--o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqq\\u001b(B\\\\\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|  \\\\\\u001b[21G|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.\\\\\\\\     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[16;15H\"]\n[0.320276, \"o\", \"\\\\\\n\\b\\b┌───┐\"]\n[0.340788, \"o\", \"\\u001b[H\\u001b[2Jx=-1.40 m\\u001b[1;63H← to nudge left\\r\\nẋ=0.56 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=0.34 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=-0.98 rad/s\\r\\n\"]\n[0.341108, \"o\", \"u=4.28\\n\\n\\n  ┌───────┐\\u001b[9;9H|\\u001b[17G│\\u001b[10;9H|   M   │\\u001b[11;9H|   \\\\   │\\u001b[12;9H└o--\\\\\\\\-o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqq\\u001b(B\\\\\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|  \\\\\\u001b[21G|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H\"]\n[0.341332, \"o\", \"|\\r\\n -2.00    -1.\\\\\\\\     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[16;15H\\\\\\n\\b\\\\\\b\\b\"]\n[0.361965, \"o\", \"\\u001b[H\\u001b[2Jx=-1.39 m\\u001b[1;63H← to nudge left\\r\\nẋ=0.59 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=0.32 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=-1.03 rad/s\\r\\nu=4.19\\n\\n\\n  ┌───────┐\\u001b[9;9H|\\u001b[17G│\\u001b[10;9H|   M   │\\u001b[11;9H|   \\\\\\\\  │\\u001b[12;9H\"]\n[0.362279, \"o\", \"└o---\\\\-o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqq\\u001b(B\\\\\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|  \\\\\\u001b[21G|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.5\\\\     -1.00    -0.50     0.00     0.50\\u001b[59G\"]\n[0.362488, \"o\", \"1.00     1.50\\u001b[16;15H\\\\\\n\\b\\\\\\b\\b\"]\n[0.382956, \"o\", \"\\u001b[H\\u001b[2Jx=-1.37 m\\u001b[1;63H← to nudge left\\r\\nẋ=0.62 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=0.30 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=-1.08 rad/s\\r\\nu=4.11\\n\\n\\n  ┌───────┐\\u001b[9;9H|\\u001b[17G│\\u001b[10;9H|   M   │\\u001b[11;9H\"]\n[0.383141, \"o\", \"|    \\\\  │\\u001b[12;9H└o---\\\\-o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqq\\u001b(B\\\\\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|  \\\\\\\\     |\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.5\\\\     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[16;15H\\\\\\n\\b\\\\\\\\\\b\\b\\b\"]\n[0.40385, \"o\", \"\\u001b[H\\u001b[2Jx=-1.36 m\\u001b[1;63H← to nudge left\\r\\nẋ=0.65 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=0.27 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=-1.12 rad/s\\r\\n\"]\n[0.404173, \"o\", \"u=4.04\\n\\n\\n   ┌───────┐\\u001b[9;10H|\\u001b[18G│\\u001b[10;10H|   M   │\\u001b[11;10H|   \\\\   │\\u001b[12;10H└o--\\\\--o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqq\\u001b(B\\\\\\\\\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|   \\\\     |\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H\"]\n[0.404371, \"o\", \"|\\r\\n -2.00    -1.5\\\\     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[16;15H\\\\\\n\\b\\\\\\\\\\b\\b\\b\"]\n[0.424899, \"o\", \"\\u001b[H\\u001b[2Jx=-1.34 m\\u001b[1;63H← to nudge left\\r\\nẋ=0.68 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=0.25 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=-1.16 rad/s\\r\\nu=3.97\\n\\n\\n   ┌───────┐\\u001b[9;10H|\\u001b[18G│\\u001b[10;10H|   M   │\\u001b[11;10H|   \\\\   │\\u001b[12;10H└o--\\\\--o┘\\r\\n\"]\n[0.425197, \"o\", \"\\u001b(0\\u001b[0mqqqqqqqqqqqqq\\u001b(B\\\\\\\\\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|   \\\\     |\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.5\\\\     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[16;15H\\\\\\n\\b\\\\\\\\\\b\\b\\b\"]\n[0.445753, \"o\", \"\\u001b[H\\u001b[2Jx=-1.33 m\\u001b[1;63H← to nudge left\\r\\nẋ=0.70 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=0.22 rad\\u001b[3;63H⮠ to restart\\r\\n\"]\n[0.446112, \"o\", \"ȧ=-1.20 rad/s\\r\\nu=3.91\\n\\n\\n   ┌───────┐\\u001b[9;10H|\\u001b[18G│\\u001b[10;10H|   M   │\\u001b[11;10H|   \\\\   │\\u001b[12;10H└o--\\\\\\\\-o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqq\\u001b(B\\\\\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|   \\\\     |\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H\"]\n[0.446348, \"o\", \"|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.5\\\\     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[16;15H\\\\\\\\\\n\\b\\\\\\b\\b\\b\"]\n[0.466741, \"o\", \"\\u001b[H\\u001b[2Jx=-1.31 m\\u001b[1;63H← to nudge left\\r\\nẋ=0.73 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=0.20 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=-1.23 rad/s\\r\\nu=3.86\\n\\n\\n    ┌───────┐\\u001b[9;11H\"]\n[0.46705, \"o\", \"|\\u001b[19G│\\u001b[10;11H|   M   │\\u001b[11;11H|   \\\\   │\\u001b[12;11H└o--\\\\--o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqq\\u001b(B\\\\\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|   \\\\     |\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n \"]\n[0.467238, \"o\", \"-2.00    -1.5\\\\\\\\    -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[16;16H\\\\\\n\\b\\\\\\b\\b\\b\"]\n[0.487805, \"o\", \"\\u001b[H\\u001b[2Jx=-1.30 m\\u001b[1;63H← to nudge left\\r\\nẋ=0.75 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=0.17 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=-1.27 rad/s\\r\\nu=3.82\\n\\n\\n    ┌───────┐\\u001b[9;11H|\\u001b[19G│\\u001b[10;11H|   M   │\\u001b[11;11H|   \\\\   │\\u001b[12;11H\"]\n[0.48795, \"o\", \"└o--\\\\--o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqq\\u001b(B\\\\\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|   \\\\\\\\    |\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50\\\\    -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[16;16H\"]\n[0.488208, \"o\", \"\\\\\\n\\b\\\\\\b\\b\\b\"]\n[0.508817, \"o\", \"\\u001b[H\\u001b[2Jx=-1.28 m\\u001b[1;63H← to nudge left\\r\\nẋ=0.77 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=0.14 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=-1.29 rad/s\\r\\n\"]\n[0.509221, \"o\", \"u=3.78\\n\\n\\n    ┌───────┐\\u001b[9;11H|\\u001b[19G│\\u001b[10;11H|   M   │\\u001b[11;11H|   \\\\   │\\u001b[12;11H└o--\\\\--o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqq\\u001b(B\\\\\\\\\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|    \\\\    |\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50\\\\    -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[16;16H\\\\\\n\\b\\\\\\b\\b\\b\"]\n[0.529366, \"o\", \"\\u001b[H\\u001b[2Jx=-1.27 m\\u001b[1;63H← to nudge left\\r\\nẋ=0.79 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=0.12 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=-1.32 rad/s\\r\\nu=3.76\\n\\n\\n    ┌───────┐\\u001b[9;11H|\\u001b[19G│\\u001b[10;11H|   M   │\\u001b[11;11H|    \\\\  │\\u001b[12;11H└o---\\\\-o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqq\\u001b(B\\\\\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|    \\\\    |\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50\\\\    -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[16;16H\\\\\\n\\b\\\\\\b\\b\\b\"]\n[0.549919, \"o\", \"\\u001b[H\\u001b[2Jx=-1.25 m\\u001b[1;63H← to nudge left\\r\\nẋ=0.81 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=0.09 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=-1.34 rad/s\\r\\nu=3.75\\u001b[8;12H┌───────┐\\u001b[9;12H|\\u001b[20G│\\u001b[10;12H|   M   │\\u001b[11;12H|   \\\\   │\\u001b[12;12H└o--\\\\--o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqq\\u001b(B\\\\\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|    \\\\    |\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50\\\\    -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[16;16H\\\\\\n\\b\\\\\\b\\b\"]\n[0.570622, \"o\", \"\\u001b[H\\u001b[2Jx=-1.23 m\\u001b[1;63H← to nudge left\\r\\nẋ=0.83 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=0.06 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=-1.36 rad/s\\r\\nu=3.75\\u001b[8;12H┌───────┐\\u001b[9;12H|\\u001b[20G│\\u001b[10;12H|   M   │\\u001b[11;12H|   \\\\   │\\u001b[12;12H└o--\\\\--o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqq\\u001b(B\\\\\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|    \\\\    |\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50\\\\    -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[16;16H\\\\\\n\\b\\\\\\\\\\b\\b\\b\"]\n[0.591366, \"o\", \"\\u001b[H\\u001b[2Jx=-1.22 m\\u001b[1;63H← to nudge left\\r\\nẋ=0.84 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=0.03 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=-1.37 rad/s\\r\\nu=3.76\\u001b[8;12H┌───────┐\\u001b[9;12H\"]\n[0.591549, \"o\", \"|\\u001b[20G│\\u001b[10;12H|   M   │\\u001b[11;12H|   \\\\   │\\u001b[12;12H└o--\\\\--o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqq\\u001b(B\\\\\\\\\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|     \\\\   |\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50 \\\\   -1.00    -0.50     0.00     0.50\\u001b[59G\"]\n[0.591888, \"o\", \"1.00     1.50\\u001b[16;17H\\\\\\n\\b\\\\\\b\\b\\b\"]\n[0.612373, \"o\", \"\\u001b[H\\u001b[2Jx=-1.20 m\\u001b[1;63H← to nudge left\\r\\nẋ=0.86 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=0.00 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=-1.38 rad/s\\r\\nu=3.78\\u001b[8;13H┌───────┐\\u001b[9;13H|\\u001b[21G│\\u001b[10;13H|   M   │\\u001b[11;13H\"]\n[0.612567, \"o\", \"|   \\\\   │\\u001b[12;13H└o--\\\\--o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqq\\u001b(B\\\\\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|     \\\\   |\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50 \\\\   -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[16;17H\\\\\\n\\b\\\\\\b\\b\\b\"]\n[0.633483, \"o\", \"\\u001b[H\\u001b[2Jx=-1.18 m\\u001b[1;63H← to nudge left\\r\\nẋ=0.87 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=-0.02 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=-1.39 rad/s\\r\\nu=3.82\\u001b[8;13H┌───────┐\\u001b[9;13H|\\u001b[21G│\\u001b[10;13H|   M   │\\u001b[11;13H|   /   │\\u001b[12;13H\"]\n[0.633854, \"o\", \"└o--/--o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqq\\u001b(B/\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|     /   |\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50 /   -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[16;17H/\\n\\b/\\b\\b\\b\"]\n[0.654558, \"o\", \"\\u001b[H\\u001b[2Jx=-1.16 m\\u001b[1;63H← to nudge left\\r\\nẋ=0.88 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=-0.05 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=-1.39 rad/s\\r\\nu=3.87\\u001b[8;13H┌───────┐\\u001b[9;13H|\\u001b[21G│\\u001b[10;13H|   M   │\\u001b[11;13H\"]\n[0.654683, \"o\", \"|   /   │\\u001b[12;13H└o--/--o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqq\\u001b(B/\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|     /   |\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50 /   -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[16;17H\"]\n[0.655058, \"o\", \"/\\n\\b/\\b\\b\\b\"]\n[0.675287, \"o\", \"\\u001b[H\\u001b[2Jx=-1.14 m\\u001b[1;63H← to nudge left\\r\\nẋ=0.89 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=-0.08 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=-1.39 rad/s\\r\\nu=3.93\\u001b[8;14H┌───────┐\\u001b[9;14H|\\u001b[22G│\\u001b[10;14H|   M   │\\u001b[11;14H|   /   │\\u001b[12;14H\"]\n[0.675422, \"o\", \"└o--/--o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqq\\u001b(B/\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|     //  |\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50 /   -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[16;17H/\\n\\b\"]\n[0.675782, \"o\", \"/\\b\\b\\b\"]\n[0.696189, \"o\", \"\\u001b[H\\u001b[2Jx=-1.12 m\\u001b[1;63H← to nudge left\\r\\nẋ=0.90 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=-0.11 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=-1.39 rad/s\\r\\nu=4.00\\u001b[8;14H┌───────┐\\u001b[9;14H|\\u001b[22G│\\u001b[10;14H\"]\n[0.696534, \"o\", \"|   M   │\\u001b[11;14H|   /   │\\u001b[12;14H└o--/--o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqq\\u001b(B/\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[18G/  |\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50  /  -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[16;17H//\\n\\b\\b/\\b\\b\\b\"]\n[0.717182, \"o\", \"\\u001b[H\\u001b[2Jx=-1.10 m\\u001b[1;63H← to nudge left\\r\\nẋ=0.90 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=-0.14 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=-1.38 rad/s\\r\\nu=4.09\\u001b[8;15H┌───────┐\\u001b[9;15H|\\u001b[23G│\\u001b[10;15H|   M   │\\u001b[11;15H\"]\n[0.717301, \"o\", \"|  /    │\\u001b[12;15H└o-/---o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqq\\u001b(B/\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[18G/  |\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n \"]\n[0.718009, \"o\", \"-2.00    -1.50  /  -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[16;18H/\\n\\b/\\b\\b\\b\\b\"]\n[0.73823, \"o\", \"\\u001b[H\\u001b[2Jx=-1.09 m\\u001b[1;63H← to nudge left\\r\\nẋ=0.91 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=-0.17 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=-1.37 rad/s\\r\\nu=4.19\\u001b[8;15H┌───────┐\\u001b[9;15H|\\u001b[23G│\\u001b[10;15H|   M   │\\u001b[11;15H|   /   │\\u001b[12;15H\"]\n[0.738357, \"o\", \"└o--/--o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqq\\u001b(B//\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[18G/  |\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n \"]\n[0.73871, \"o\", \"-2.00    -1.50  /  -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[16;18H/\\n\\b/\\b\\b\\b\\b\"]\n[0.759252, \"o\", \"\\u001b[H\\u001b[2Jx=-1.07 m\\u001b[1;63H← to nudge left\\r\\nẋ=0.92 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=-0.20 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=-1.35 rad/s\\r\\nu=4.30\\u001b[8;15H┌───────┐\\u001b[9;15H|\\u001b[23G│\\u001b[10;15H|   M   │\\u001b[11;15H|   /   │\\u001b[12;15H\"]\n[0.759374, \"o\", \"└o--/--o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqq\\u001b(B/\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[18G// |\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50  /  -1.00    -0.50     0.00     0.50\\u001b[59G\"]\n[0.759706, \"o\", \"1.00     1.50\\u001b[16;18H/\\n\\b/\\b\\b\\b\"]\n[0.780316, \"o\", \"\\u001b[H\\u001b[2Jx=-1.05 m\\u001b[1;63H← to nudge left\\r\\nẋ=0.92 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=-0.23 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=-1.33 rad/s\\r\\nu=4.42\\u001b[8;16H┌───────┐\\u001b[9;16H|\\u001b[24G│\\u001b[10;16H|   M   │\\u001b[11;16H|  /    │\\u001b[12;16H└o-/---o┘\\r\\n\"]\n[0.780489, \"o\", \"\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqq\\u001b(B/\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[19G/ |\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50  // -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[16;18H/\\n\\b/\\b\\b\\b\"]\n[0.800723, \"o\", \"\\u001b[H\\u001b[2Jx=-1.03 m\\u001b[1;63H← to nudge left\\r\\nẋ=0.92 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=-0.25 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=-1.31 rad/s\\r\\nu=4.55\\u001b[8;16H┌───────┐\\u001b[9;16H|\\u001b[24G│\\u001b[10;16H|   M   │\\u001b[11;16H|   /   │\\u001b[12;16H└o-//--o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqq\\u001b(B/\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[19G/ |\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50   / -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[16;18H//\\n\\b\\b/\\b\\b\\b\"]\n[0.820997, \"o\", \"\\u001b[H\\u001b[2Jx=-1.01 m\\u001b[1;63H← to nudge left\\r\\nẋ=0.92 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=-0.28 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=-1.29 rad/s\\r\\nu=4.69\\u001b[8;16H┌───────┐\\u001b[9;16H|\\u001b[24G│\\u001b[10;16H|   M   │\\u001b[11;16H|   /   │\\u001b[12;16H└o--/--o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqq\\u001b(B//\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[19G/ |\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50   / -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[16;19H/\\n\\b\\b//\\b\\b\\b\\b\"]\n[0.841282, \"o\", \"\\u001b[H\\u001b[2Jx=-0.99 m\\u001b[1;63H← to nudge left\\r\\nẋ=0.93 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=-0.30 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=-1.26 rad/s\\r\\nu=4.84\\u001b[8;17H┌───────┐\\u001b[9;17H|\\u001b[25G│\\u001b[10;17H|   M   │\\u001b[11;17H|  /    │\\u001b[12;17H└o-/---o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqq\\u001b(B/\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[19G//|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50   / -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[16;19H/\\n\\b\\b//\\b\\b\\b\\b\"]\n[0.861894, \"o\", \"\\u001b[H\\u001b[2Jx=-0.97 m\\u001b[1;63H← to nudge left\\r\\nẋ=0.93 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=-0.33 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=-1.23 rad/s\\r\\nu=4.99\\u001b[8;17H┌───────┐\\u001b[9;17H|\\u001b[25G│\\u001b[10;17H|   M   │\\u001b[11;17H|   /   │\\u001b[12;17H└o-//--o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqq\\u001b(B/\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;20H/|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50   //-1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[16;19H/\\n\\b/\\b\\b\\b\\b\"]\n[0.882459, \"o\", \"\\u001b[H\\u001b[2Jx=-0.95 m\\u001b[1;63H← to nudge left\\r\\nẋ=0.93 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=-0.35 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=-1.20 rad/s\\r\\nu=5.16\\u001b[8;17H┌───────┐\\u001b[9;17H|\\u001b[25G│\\u001b[10;17H|   M   │\\u001b[11;17H|   /   │\\u001b[12;17H└o--/--o┘\\r\\n\"]\n[0.882547, \"o\", \"\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqq\\u001b(B//\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;20H/|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50    /-1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[16;19H//\\n\\u001b[16G┌───┐\"]\n[0.903065, \"o\", \"\\u001b[H\\u001b[2Jx=-0.93 m\\u001b[1;63H← to nudge left\\r\\nẋ=0.93 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=-0.38 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=-1.17 rad/s\\r\\nu=5.32\\u001b[8;18H┌───────┐\\u001b[9;18H\"]\n[0.903234, \"o\", \"|\\u001b[26G│\\u001b[10;18H|   M   │\\u001b[11;18H|  /    │\\u001b[12;18H└o-/---o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqq\\u001b(B/\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;20H//\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n \"]\n[0.903587, \"o\", \"-2.00    -1.50    /-1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[16;19H//\\n\\b\\b\\b\\b┌───┐\"]\n[0.923453, \"o\", \"\\u001b[H\\u001b[2Jx=-0.91 m\\u001b[1;63H← to nudge left\\r\\nẋ=0.93 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=-0.40 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=-1.13 rad/s\\r\\nu=5.50\\u001b[8;18H┌───────┐\\u001b[9;18H|\\u001b[26G│\\u001b[10;18H|   M   │\\u001b[11;18H|   /   │\\u001b[12;18H└o-//--o┘\\r\\n\"]\n[0.92358, \"o\", \"\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqq\\u001b(B/\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;20H//\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50    /-1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[16;20H/\\n\\b\\b\\b\\b┌───┐\"]\n[0.944073, \"o\", \"\\u001b[H\\u001b[2Jx=-0.89 m\\u001b[1;63H← to nudge left\\r\\nẋ=0.93 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=-0.42 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=-1.09 rad/s\\r\\nu=5.67\\u001b[8;19H┌───────┐\\u001b[9;19H|\\u001b[27G│\\u001b[10;19H|   M   │\\u001b[11;19H|  /    │\\u001b[12;19H└o-/---o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqq\\u001b(B//\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H/\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50    //1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[16;20H\"]\n[0.944232, \"o\", \"/\\n\\b\\b\\b\\b┌───┐\"]\n[0.964684, \"o\", \"\\u001b[H\\u001b[2Jx=-0.88 m\\u001b[1;63H← to nudge left\\r\\nẋ=0.93 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=-0.45 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=-1.05 rad/s\\r\\nu=5.85\\u001b[8;19H┌───────┐\\u001b[9;19H|\\u001b[27G│\\u001b[10;19H|   M   │\\u001b[11;19H|  //   │\\u001b[12;19H└o-/---o┘\\r\\n\"]\n[0.965021, \"o\", \"\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqq\\u001b(B//\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H/\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50    //1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[16;20H/\\n\\b\\b\\b\\b┌───┐\"]\n[0.985338, \"o\", \"\\u001b[H\\u001b[2Jx=-0.86 m\\u001b[1;63H← to nudge left\\r\\nẋ=0.93 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=-0.47 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=-1.01 rad/s\\r\\nu=6.03\\u001b[8;19H┌───────┐\\u001b[9;19H|\\u001b[27G│\\u001b[10;19H|   M   │\\u001b[11;19H\"]\n[0.985762, \"o\", \"|   /   │\\u001b[12;19H└o-//--o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqq\\u001b(B/\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H//\\u001b[30G|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     /1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[16;20H//\\n\\u001b[17G┌───┐\"]\n[1.006353, \"o\", \"\\u001b[H\\u001b[2Jx=-0.84 m\\u001b[1;63H← to nudge left\\r\\nẋ=0.93 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=-0.49 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=-0.96 rad/s\\r\\nu=6.21\\u001b[8;20H┌───────┐\\u001b[9;20H|\\u001b[28G│\\u001b[10;20H|   M   │\\u001b[11;20H|  /    │\\u001b[12;20H\"]\n[1.006738, \"o\", \"└o-/---o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqq\\u001b(B//\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H//\\u001b[30G|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     /1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[16;20H//\\n\\b\\b\\b\\b┌───┐\"]\n[1.027127, \"o\", \"\\u001b[H\\u001b[2Jx=-0.82 m\\u001b[1;63H← to nudge left\\r\\nẋ=0.94 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=-0.51 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=-0.91 rad/s\\r\\nu=6.40\\u001b[8;20H┌───────┐\\u001b[9;20H|\\u001b[28G│\\u001b[10;20H\"]\n[1.027491, \"o\", \"|   M   │\\u001b[11;20H|  //   │\\u001b[12;20H└o-/---o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqq\\u001b(B//\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|/\\u001b[30G|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     //.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[16;21H/\\n\\b\\b\\b\\b┌───┐\"]\n[1.04815, \"o\", \"\\u001b[H\\u001b[2Jx=-0.80 m\\u001b[1;63H← to nudge left\\r\\nẋ=0.94 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=-0.52 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=-0.86 rad/s\\r\\nu=6.58\\u001b[8;20H┌───────┐\\u001b[9;20H|\\u001b[28G│\\u001b[10;20H|   M   │\\u001b[11;20H|   /   │\\u001b[12;20H└o-//--o┘\\r\\n\"]\n[1.04854, \"o\", \"\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqq\\u001b(B/\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|//\\u001b[30G|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -/.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[16;21H/\\n\\b\\b\\b\\b┌───┐\"]\n[1.06884, \"o\", \"\\u001b[H\\u001b[2Jx=-0.78 m\\u001b[1;63H← to nudge left\\r\\nẋ=0.94 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=-0.54 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=-0.82 rad/s\\r\\nu=6.75\\u001b[8;21H┌───────┐\\u001b[9;21H|\\u001b[29G│\\u001b[10;21H|   M   │\\u001b[11;21H|  /    │\\u001b[12;21H\"]\n[1.069211, \"o\", \"└o-/---o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqq\\u001b(B/\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|//\\u001b[30G|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -/.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[16;21H//\\n\\u001b[18G┌───┐\"]\n[1.089954, \"o\", \"\\u001b[H\\u001b[2Jx=-0.76 m\\u001b[1;63H← to nudge left\\r\\nẋ=0.95 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=-0.56 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=-0.76 rad/s\\r\\nu=6.92\\u001b[8;21H┌───────┐\\u001b[9;21H|\\u001b[29G│\\u001b[10;21H|   M   │\\u001b[11;21H|   /   │\\u001b[12;21H\"]\n[1.090336, \"o\", \"└o-/---o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqq\\u001b(B//\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H| /\\u001b[30G|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -//00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[16;21H//\\n\\b\\b\\b\\b┌───┐\"]\n[1.110761, \"o\", \"\\u001b[H\\u001b[2Jx=-0.74 m\\u001b[1;63H← to nudge left\\r\\nẋ=0.95 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=-0.57 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=-0.71 rad/s\\r\\nu=7.09\\u001b[8;21H┌───────┐\\u001b[9;21H|\\u001b[29G│\\u001b[10;21H|   M   │\\u001b[11;21H|   /   │\\u001b[12;21H└o-//--o┘\\r\\n\"]\n[1.111117, \"o\", \"\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B/\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H| //     |\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -//00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[16;22H/\\n\\b\\b\\b\\b┌───┐\"]\n[1.131618, \"o\", \"\\u001b[H\\u001b[2Jx=-0.72 m\\u001b[1;63H← to nudge left\\r\\nẋ=0.96 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=-0.59 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=-0.66 rad/s\\r\\nu=7.25\\u001b[8;22H┌───────┐\\u001b[9;22H|\\u001b[30G│\\u001b[10;22H|   M   │\\u001b[11;22H|  /    │\\u001b[12;22H\"]\n[1.131963, \"o\", \"└o-/---o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B/\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H| //     |\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1/00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[16;22H//\\n\\u001b[19G┌───┐\"]\n[1.152469, \"o\", \"\\u001b[H\\u001b[2Jx=-0.70 m\\u001b[1;63H← to nudge left\\r\\nẋ=0.96 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=-0.60 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=-0.60 rad/s\\r\\nu=7.40\\u001b[8;22H┌───────┐\\u001b[9;22H|\\u001b[30G│\\u001b[10;22H|   M   │\\u001b[11;22H\"]\n[1.152844, \"o\", \"|   /   │\\u001b[12;22H└o-//--o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B//\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|  /     |\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1//0    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[16;22H//\\n\\u001b[19G┌───┐\"]\n[1.173436, \"o\", \"\\u001b[H\\u001b[2Jx=-0.68 m\\u001b[1;63H← to nudge left\\r\\nẋ=0.97 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=-0.61 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=-0.55 rad/s\\r\\nu=7.54\\u001b[8;23H┌───────┐\\u001b[9;23H|\\u001b[31G│\\u001b[10;23H|   M   │\\u001b[11;23H\"]\n[1.173842, \"o\", \"|  /    │\\u001b[12;23H└o//---o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B/\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|  /     |\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1//0    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[16;20H┌───┐\\n\\u001b[20G| m |\"]\n[1.194173, \"o\", \"\\u001b[H\\u001b[2Jx=-0.66 m\\u001b[1;63H← to nudge left\\r\\nẋ=0.98 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=-0.62 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=-0.49 rad/s\\r\\nu=7.66\\u001b[8;23H┌───────┐\\u001b[9;23H|\\u001b[31G│\\u001b[10;23H|   M   │\\u001b[11;23H|  //   │\\u001b[12;23H\"]\n[1.194557, \"o\", \"└o-/---o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B//\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|  //    |\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1//0    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[16;20H┌───┐\\n\\u001b[20G| m |\"]\n[1.214937, \"o\", \"\\u001b[H\\u001b[2Jx=-0.64 m\\u001b[1;63H← to nudge left\\r\\nẋ=0.98 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=-0.63 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=-0.44 rad/s\\r\\nu=7.78\\u001b[8;23H┌───────┐\\u001b[9;23H|\\u001b[31G│\\u001b[10;23H|   M   │\\u001b[11;23H|   /   │\\u001b[12;23H\"]\n[1.215325, \"o\", \"└o-//--o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B//\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|  //    |\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1./0    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[16;20H┌───┐\\n\\u001b[20G| m |\"]\n[1.235767, \"o\", \"\\u001b[H\\u001b[2Jx=-0.62 m\\u001b[1;63H← to nudge left\\r\\nẋ=0.99 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=-0.64 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=-0.38 rad/s\\r\\nu=7.88\\u001b[8;24H┌───────┐\\u001b[9;24H|\\u001b[32G│\\u001b[10;24H\"]\n[1.236143, \"o\", \"|   M   │\\u001b[11;24H|  /    │\\u001b[12;24H└o//---o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B/\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|   //   |\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.//    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[16;21H┌───┐\\n\\u001b[21G| m |\"]\n[1.256622, \"o\", \"\\u001b[H\\u001b[2Jx=-0.60 m\\u001b[1;63H← to nudge left\\r\\nẋ=1.00 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=-0.64 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=-0.32 rad/s\\r\\nu=7.98\\u001b[8;24H┌───────┐\\u001b[9;24H|\\u001b[32G│\\u001b[10;24H|   M   │\\u001b[11;24H|  //   │\\u001b[12;24H\"]\n[1.257028, \"o\", \"└o-/---o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B//\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|   //   |\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.//    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[16;21H┌───┐\\n\\u001b[21G| m |\"]\n[1.277553, \"o\", \"\\u001b[H\\u001b[2Jx=-0.57 m\\u001b[1;63H← to nudge left\\r\\nẋ=1.01 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=-0.65 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=-0.27 rad/s\\r\\nu=8.05\\u001b[8;25H┌───────┐\\u001b[9;25H|\\u001b[33G│\\u001b[10;25H|   M   │\\u001b[11;25H|  /    │\\u001b[12;25H└o//---o┘\\r\\n\"]\n[1.277975, \"o\", \"\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B//\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|    /   |\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.0//   -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[16;21H┌───┐\\n\\u001b[21G| m |\"]\n[1.298321, \"o\", \"\\u001b[H\\u001b[2Jx=-0.55 m\\u001b[1;63H← to nudge left\\r\\nẋ=1.02 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=-0.65 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=-0.21 rad/s\\r\\nu=8.12\\u001b[8;25H┌───────┐\\u001b[9;25H\"]\n[1.298682, \"o\", \"|\\u001b[33G│\\u001b[10;25H|   M   │\\u001b[11;25H|  /    │\\u001b[12;25H└o//---o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B/\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|    //  |\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.0//   -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[16;22H┌───┐\\n\\u001b[22G| m |\"]\n[1.31909, \"o\", \"\\u001b[H\\u001b[2Jx=-0.53 m\\u001b[1;63H← to nudge left\\r\\nẋ=1.03 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=-0.66 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=-0.15 rad/s\\r\\nu=8.16\\u001b[8;25H┌───────┐\\u001b[9;25H|\\u001b[33G│\\u001b[10;25H\"]\n[1.319471, \"o\", \"|   M   │\\u001b[11;25H|   /   │\\u001b[12;25H└o-//--o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B//\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|    //  |\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00/   -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[16;22H┌───┐\\n\\u001b[22G| m |\"]\n[1.340229, \"o\", \"\\u001b[H\\u001b[2Jx=-0.51 m\\u001b[1;63H← to nudge left\\r\\nẋ=1.03 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=-0.66 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=-0.09 rad/s\\r\\nu=8.20\\u001b[8;26H┌───────┐\\u001b[9;26H|\\u001b[34G│\\u001b[10;26H|   M   │\\u001b[11;26H|  /    │\\u001b[12;26H\"]\n[1.340617, \"o\", \"└o//---o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B/\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|     /  |\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00//  -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[16;23H┌───┐\\n\\u001b[23G| m |\"]\n[1.361193, \"o\", \"\\u001b[H\\u001b[2Jx=-0.49 m\\u001b[1;63H← to nudge left\\r\\nẋ=1.04 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=-0.66 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=-0.03 rad/s\\r\\nu=8.21\\u001b[8;26H┌───────┐\\u001b[9;26H|\\u001b[34G│\\u001b[10;26H|   M   │\\u001b[11;26H|  //   │\\u001b[12;26H\"]\n[1.361586, \"o\", \"└o-/---o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B//\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|     // |\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00//  -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[16;23H┌───┐\\n\\u001b[23G| m |\"]\n[1.382258, \"o\", \"\\u001b[H\\u001b[2Jx=-0.47 m\\u001b[1;63H← to nudge left\\r\\nẋ=1.05 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=-0.66 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=0.03 rad/s\\r\\nu=8.21\\u001b[8;27H┌───────┐\\u001b[9;27H|\\u001b[35G│\\u001b[10;27H|   M   │\\u001b[11;27H\"]\n[1.382638, \"o\", \"|  /    │\\u001b[12;27H└o//---o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B//\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[28G/ |\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00 // -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[16;23H┌───┐\\n\\u001b[23G| m |\"]\n[1.403305, \"o\", \"\\u001b[H\\u001b[2Jx=-0.45 m\\u001b[1;63H← to nudge left\\r\\nẋ=1.00 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=-0.66 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=0.11 rad/s\\r\\nu=-8.20\\u001b[8;27H┌───────┐\\u001b[9;27H\"]\n[1.403694, \"o\", \"|\\u001b[35G│\\u001b[10;27H|   M   │\\u001b[11;27H|  //   │\\u001b[12;27H└o-/---o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B/\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[28G//|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00 // -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[16;24H┌───┐\\n\\u001b[24G| m |\"]\n[1.424373, \"o\", \"\\u001b[H\\u001b[2Jx=-0.43 m\\u001b[1;63H← to nudge left\\r\\nẋ=0.94 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=-0.65 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=0.20 rad/s\\r\\nu=-8.17\\u001b[8;27H┌───────┐\\u001b[9;27H|\\u001b[35G│\\u001b[10;27H|   M   │\\u001b[11;27H|   /   │\\u001b[12;27H\"]\n[1.424706, \"o\", \"└o-//--o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B//\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[28G//|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00  / -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[16;24H┌───┐\\n\\u001b[24G| m |\"]\n[1.44536, \"o\", \"\\u001b[H\\u001b[2Jx=-0.41 m\\u001b[1;63H← to nudge left\\r\\nẋ=0.89 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=-0.65 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=0.28 rad/s\\r\\nu=-8.12\\u001b[8;28H┌───────┐\\u001b[9;28H|\\u001b[36G│\\u001b[10;28H|   M   │\\u001b[11;28H|  /    │\\u001b[12;28H\"]\n[1.445829, \"o\", \"└o//---o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B/\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[29G/|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00  //-0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[16;25H┌───┐\\n\\u001b[25G| m |\"]\n[1.466315, \"o\", \"\\u001b[H\\u001b[2Jx=-0.39 m\\u001b[1;63H← to nudge left\\r\\nẋ=0.84 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=-0.64 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=0.37 rad/s\\r\\nu=-8.06\\u001b[8;28H┌───────┐\\u001b[9;28H|\\u001b[36G│\\u001b[10;28H|   M   │\\u001b[11;28H\"]\n[1.466703, \"o\", \"|  //   │\\u001b[12;28H└o-/---o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B//\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[29G//\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00  //-0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[16;25H┌───┐\\n\\u001b[25G| m |\"]\n[1.487268, \"o\", \"\\u001b[H\\u001b[2Jx=-0.37 m\\u001b[1;63H← to nudge left\\r\\nẋ=0.78 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=-0.63 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=0.45 rad/s\\r\\nu=-7.99\\u001b[8;28H┌───────┐\\u001b[9;28H|\\u001b[36G│\\u001b[10;28H|   M   │\\u001b[11;28H|   /   │\\u001b[12;28H\"]\n[1.487647, \"o\", \"└o-//--o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B//\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H/\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00   /-0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[16;25H┌───┐\\n\\u001b[25G| m |\"]\n[1.507947, \"o\", \"\\u001b[H\\u001b[2Jx=-0.36 m\\u001b[1;63H← to nudge left\\r\\nẋ=0.73 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=-0.62 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=0.53 rad/s\\r\\nu=-7.90\\u001b[8;29H┌───────┐\\u001b[9;29H|\\u001b[37G│\\u001b[10;29H\"]\n[1.508267, \"o\", \"|   M   │\\u001b[11;29H|  /    │\\u001b[12;29H└o//---o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B/\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H//\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00   //0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[16;26H┌───┐\\n\\u001b[26G| m |\"]\n[1.528609, \"o\", \"\\u001b[H\\u001b[2Jx=-0.34 m\\u001b[1;63H← to nudge left\\r\\nẋ=0.68 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=-0.61 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=0.61 rad/s\\r\\nu=-7.81\\u001b[8;29H┌───────┐\\u001b[9;29H|\\u001b[37G│\\u001b[10;29H\"]\n[1.528883, \"o\", \"|   M   │\\u001b[11;29H|  /    │\\u001b[12;29H└o-/---o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B//\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H//\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    /0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[16;26H┌───┐\\n\\u001b[26G| m |\"]\n[1.549587, \"o\", \"\\u001b[H\\u001b[2Jx=-0.33 m\\u001b[1;63H← to nudge left\\r\\nẋ=0.63 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=-0.59 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=0.69 rad/s\\r\\nu=-7.71\\u001b[8;29H┌───────┐\\u001b[9;29H|\\u001b[37G│\\u001b[10;29H|   M   │\\u001b[11;29H|   /   │\\u001b[12;29H\"]\n[1.549984, \"o\", \"└o-//--o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B//\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|/\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    //.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[16;29H//\\n\\u001b[26G┌───┐\"]\n[1.570636, \"o\", \"\\u001b[H\\u001b[2Jx=-0.32 m\\u001b[1;63H← to nudge left\\r\\nẋ=0.57 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=-0.57 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=0.77 rad/s\\r\\nu=-7.60\\u001b[8;29H┌───────┐\\u001b[9;29H|\\u001b[37G│\\u001b[10;29H|   M   │\\u001b[11;29H|   /   │\\u001b[12;29H\"]\n[1.571023, \"o\", \"└o-//--o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B/\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|/\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    //.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[16;30H/\\n\\b\\b\\b\\b┌───┐\"]\n[1.591549, \"o\", \"\\u001b[H\\u001b[2Jx=-0.31 m\\u001b[1;63H← to nudge left\\r\\nẋ=0.52 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=-0.56 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=0.85 rad/s\\r\\nu=-7.48\\u001b[8;30H┌───────┐\\u001b[9;30H|\\u001b[38G│\\u001b[10;30H|   M   │\\u001b[11;30H|  /    │\\u001b[12;30H\"]\n[1.591929, \"o\", \"└o//---o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B/\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|//\\u001b[40G|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -/.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[16;30H//\\n\\u001b[27G┌───┐\"]\n[1.612511, \"o\", \"\\u001b[H\\u001b[2Jx=-0.30 m\\u001b[1;63H← to nudge left\\r\\nẋ=0.47 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=-0.54 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=0.92 rad/s\\r\\nu=-7.36\\u001b[8;30H┌───────┐\\u001b[9;30H|\\u001b[38G│\\u001b[10;30H|   M   │\\u001b[11;30H\"]\n[1.612895, \"o\", \"|  /    │\\u001b[12;30H└o-/---o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B//\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|//\\u001b[40G|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -/.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[16;30H//\\n\\u001b[27G┌───┐\"]\n[1.633101, \"o\", \"\\u001b[H\\u001b[2Jx=-0.29 m\\u001b[1;63H← to nudge left\\r\\nẋ=0.42 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=-0.52 rad\\u001b[3;63H⮠ to restart\\r\\n\"]\n[1.633326, \"o\", \"ȧ=1.00 rad/s\\r\\nu=-7.23\\u001b[8;30H┌───────┐\\u001b[9;30H|\\u001b[38G│\\u001b[10;30H|   M   │\\u001b[11;30H|  //   │\\u001b[12;30H└o-/---o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B//\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H| /\\u001b[40G|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -//50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[16;31H\"]\n[1.633529, \"o\", \"/\\n\\b\\b\\b\\b┌───┐\"]\n[1.654061, \"o\", \"\\u001b[H\\u001b[2Jx=-0.28 m\\u001b[1;63H← to nudge left\\r\\nẋ=0.37 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=-0.49 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=1.07 rad/s\\r\\nu=-7.11\\u001b[8;30H┌───────┐\\u001b[9;30H|\\u001b[38G│\\u001b[10;30H|   M   │\\u001b[11;30H|   /   │\\u001b[12;30H\"]\n[1.654389, \"o\", \"└o-//--o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B/\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H| /\\u001b[40G|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -//50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[16;31H/\\n\\b\\b\\b\\b┌───┐\"]\n[1.674959, \"o\", \"\\u001b[H\\u001b[2Jx=-0.27 m\\u001b[1;63H← to nudge left\\r\\nẋ=0.32 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=-0.47 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=1.14 rad/s\\r\\nu=-6.99\\u001b[8;30H┌───────┐\\u001b[9;30H|\\u001b[38G│\\u001b[10;30H|   M   │\\u001b[11;30H|   /   │\\u001b[12;30H└o-//--o┘\\r\\n\"]\n[1.675301, \"o\", \"\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B/\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H| //\\u001b[40G|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0/50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[16;31H//\\n\\u001b[28G┌───┐\"]\n[1.696002, \"o\", \"\\u001b[H\\u001b[2Jx=-0.27 m\\u001b[1;63H← to nudge left\\r\\nẋ=0.27 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=-0.45 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=1.21 rad/s\\r\\nu=-6.87\\u001b[8;30H┌───────┐\\u001b[9;30H|\\u001b[38G│\\u001b[10;30H|   M   │\\u001b[11;30H|   /   │\\u001b[12;30H\"]\n[1.696351, \"o\", \"└o-//--o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B/\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H| //\\u001b[40G|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0/50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[16;32H/\\n\\b\\b\\b\\b┌───┐\"]\n[1.717082, \"o\", \"\\u001b[H\\u001b[2Jx=-0.26 m\\u001b[1;63H← to nudge left\\r\\nẋ=0.22 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=-0.42 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=1.27 rad/s\\r\\nu=-6.75\\u001b[8;30H┌───────┐\\u001b[9;30H|\\u001b[38G│\\u001b[10;30H|   M   │\\u001b[11;30H|   /   │\\u001b[12;30H\"]\n[1.717807, \"o\", \"└o--/--o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B//\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|  /\\u001b[40G|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0//0     0.00     0.50\\u001b[59G1.00     1.50\\u001b[16;32H/\\n\\b\\b\\b\\b┌───┐\"]\n[1.738033, \"o\", \"\\u001b[H\\u001b[2Jx=-0.26 m\\u001b[1;63H← to nudge left\\r\\nẋ=0.17 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=-0.39 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=1.34 rad/s\\r\\nu=-6.64\\u001b[8;31H┌───────┐\\u001b[9;31H|\\u001b[39G│\\u001b[10;31H|   M   │\\u001b[11;31H\"]\n[1.738406, \"o\", \"|  /    │\\u001b[12;31H└o-/---o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B//\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|  /\\u001b[40G|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0./0     0.00     0.50\\u001b[59G1.00     1.50\\u001b[16;32H/\\n\\b\\b\\b\\b┌───┐\"]\n[1.758762, \"o\", \"\\u001b[H\\u001b[2Jx=-0.26 m\\u001b[1;63H← to nudge left\\r\\nẋ=0.12 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=-0.36 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=1.40 rad/s\\r\\nu=-6.54\\u001b[8;31H┌───────┐\\u001b[9;31H|\\u001b[39G│\\u001b[10;31H|   M   │\\u001b[11;31H\"]\n[1.759152, \"o\", \"|  /    │\\u001b[12;31H└o-/---o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B//\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|  /\\u001b[40G|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0./0     0.00     0.50\\u001b[59G1.00     1.50\\u001b[16;32H//\\n\\b\\b\\b\\b┌───┐\"]\n[1.779617, \"o\", \"\\u001b[H\\u001b[2Jx=-0.26 m\\u001b[1;63H← to nudge left\\r\\nẋ=0.08 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=-0.33 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=1.46 rad/s\\r\\nu=-6.45\\u001b[8;31H┌───────┐\\u001b[9;31H|\\u001b[39G│\\u001b[10;31H|   M   │\\u001b[11;31H|  /    │\\u001b[12;31H\"]\n[1.780009, \"o\", \"└o-/---o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B/\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|  //     |\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0./0     0.00     0.50\\u001b[59G1.00     1.50\\u001b[16;33H/\\n\\b\\b//\\b\\b\\b\\b\"]\n[1.800307, \"o\", \"\\u001b[H\\u001b[2Jx=-0.26 m\\u001b[1;63H← to nudge left\\r\\nẋ=0.03 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=-0.30 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=1.51 rad/s\\r\\nu=-6.37\\u001b[8;31H┌───────┐\\u001b[9;31H|\\u001b[39G│\\u001b[10;31H\"]\n[1.800682, \"o\", \"|   M   │\\u001b[11;31H|  /    │\\u001b[12;31H└o-/---o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B/\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|  //     |\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0./0     0.00     0.50\\u001b[59G1.00     1.50\\u001b[16;33H/\\n\\b\\b//\\b\\b\\b\\b\"]\n[1.821012, \"o\", \"\\u001b[H\\u001b[2Jx=-0.26 m\\u001b[1;63H← to nudge left\\r\\nẋ=-0.01 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=-0.27 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=1.56 rad/s\\r\\nu=-6.31\\u001b[8;31H┌───────┐\\u001b[9;31H|\\u001b[39G│\\u001b[10;31H\"]\n[1.821117, \"o\", \"|   M   │\\u001b[11;31H|  /    │\\u001b[12;31H└o-/---o┘\\r\\n\"]\n[1.821487, \"o\", \"\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B/\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|   /     |\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.//     0.00     0.50\\u001b[59G1.00     1.50\\u001b[16;33H/\\n\\b/\\b\\b\\b\\b\"]\n[1.841481, \"o\", \"\\u001b[H\\u001b[2Jx=-0.26 m\\u001b[1;63H← to nudge left\\r\\nẋ=-0.05 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=-0.23 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=1.61 rad/s\\r\\nu=-6.27\\u001b[8;31H┌───────┐\\u001b[9;31H|\\u001b[39G\"]\n[1.841647, \"o\", \"│\\u001b[10;31H|   M   │\\u001b[11;31H|  /    │\\u001b[12;31H└o-/---o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B/\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|   /     |\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.//     0.00     0.50\\u001b[59G1.00     1.50\\u001b[16;33H/\\n\\b/\\b\\b\\b\"]\n[1.861814, \"o\", \"\\u001b[H\\u001b[2Jx=-0.26 m\\u001b[1;63H← to nudge left\\r\\nẋ=-0.09 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=-0.20 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=1.65 rad/s\\r\\nu=-6.24\\u001b[8;31H┌───────┐\\u001b[9;31H|\\u001b[39G│\\u001b[10;31H|   M   │\\u001b[11;31H|  /    │\\u001b[12;31H└o-/---o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B/\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|   /     |\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.5/     0.00     0.50\\u001b[59G1.00     1.50\\u001b[16;33H//\\n\\b\\b/\\b\\b\\b\"]\n[1.882163, \"o\", \"\\u001b[H\\u001b[2Jx=-0.26 m\\u001b[1;63H← to nudge left\\r\\nẋ=-0.12 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=-0.17 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=1.69 rad/s\\r\\nu=-6.23\\u001b[8;31H┌───────┐\\u001b[9;31H|\\u001b[39G│\\u001b[10;31H|   M   │\\u001b[11;31H|  /    │\\u001b[12;31H└o-/---o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B/\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|   /     |\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.5/     0.00     0.50\\u001b[59G1.00     1.50\\u001b[16;34H/\\n\\b\\b//\\b\\b\\b\\b\"]\n[1.902429, \"o\", \"\\u001b[H\\u001b[2Jx=-0.26 m\\u001b[1;63H← to nudge left\\r\\nẋ=-0.16 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=-0.13 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=1.72 rad/s\\r\\nu=-6.23\\u001b[8;30H┌───────┐\\u001b[9;30H|\\u001b[38G│\\u001b[10;30H|   M   │\\u001b[11;30H|   /   │\\u001b[12;30H└o--/--o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B/\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|   /     |\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H\"]\n[1.902505, \"o\", \"|\\r\\n -2.00    -1.50     -1.00    -0.5/     0.00     0.50\\u001b[59G1.00     1.50\\u001b[16;34H/\\n\\b/\\b\\b\\b\\b\"]\n[1.922763, \"o\", \"\\u001b[H\\u001b[2Jx=-0.27 m\\u001b[1;63H← to nudge left\\r\\nẋ=-0.19 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=-0.10 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=1.75 rad/s\\r\\nu=-6.26\\u001b[8;30H┌───────┐\\u001b[9;30H|\\u001b[38G│\\u001b[10;30H|   M   │\\u001b[11;30H|   /   │\\u001b[12;30H\"]\n[1.922826, \"o\", \"└o--/--o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B/\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|   /     |\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.5/     0.00     0.50\\u001b[59G1.00     1.50\\u001b[16;34H\"]\n[1.922851, \"o\", \"/\\n\\b/\\b\\b\\b\"]\n[1.943277, \"o\", \"\\u001b[H\\u001b[2Jx=-0.27 m\\u001b[1;63H← to nudge left\\r\\nẋ=-0.22 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=-0.06 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=1.78 rad/s\\r\\nu=-6.31\\u001b[8;30H┌───────┐\\u001b[9;30H|\\u001b[38G│\\u001b[10;30H|   M   │\\u001b[11;30H|   /   │\\u001b[12;30H└o--/--o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B/\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H\"]\n[1.943352, \"o\", \"|   /     |\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.5/     0.00     0.50\\u001b[59G1.00     1.50\\u001b[16;34H/\\n\\b/\\b\\b\\b\"]\n[1.964094, \"o\", \"\\u001b[H\\u001b[2Jx=-0.28 m\\u001b[1;63H← to nudge left\\r\\nẋ=-0.25 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=-0.02 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=1.80 rad/s\\r\\nu=-6.37\\u001b[8;30H┌───────┐\\u001b[9;30H|\\u001b[38G│\\u001b[10;30H|   M   │\\u001b[11;30H|   /   │\\u001b[12;30H\"]\n[1.964217, \"o\", \"└o--/--o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B/\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|   /     |\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.5/     0.00     0.50\\u001b[59G1.00     1.50\\u001b[16;34H\"]\n[1.96455, \"o\", \"/\\n\\b/\\b\\b\\b\"]\n[1.985131, \"o\", \"\\u001b[H\\u001b[2Jx=-0.28 m\\u001b[1;63H← to nudge left\\r\\nẋ=-0.28 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=0.02 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=1.81 rad/s\\r\\nu=-6.46\\u001b[8;30H┌───────┐\\u001b[9;30H|\\u001b[38G│\\u001b[10;30H|   M   │\\u001b[11;30H\"]\n[1.985262, \"o\", \"|   \\\\   │\\u001b[12;30H└o--\\\\--o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\\\\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|   \\\\     |\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.5\\\\     0.00     0.50\\u001b[59G1.00     1.50\\u001b[16;34H\"]\n[1.985588, \"o\", \"\\\\\\n\\b\\\\\\b\\b\\b\"]\n[2.005984, \"o\", \"\\u001b[H\\u001b[2Jx=-0.29 m\\u001b[1;63H← to nudge left\\r\\nẋ=-0.31 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=0.05 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=1.82 rad/s\\r\\nu=-6.57\\u001b[8;30H┌───────┐\\u001b[9;30H|\\u001b[38G│\\u001b[10;30H|   M   │\\u001b[11;30H|   \\\\   │\\u001b[12;30H\"]\n[2.006108, \"o\", \"└o--\\\\--o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\\\\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|   \\\\     |\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n \"]\n[2.006617, \"o\", \"-2.00    -1.50     -1.00    -0.5\\\\     0.00     0.50\\u001b[59G1.00     1.50\\u001b[16;34H\\\\\\n\\b\\\\\\b\\b\\b\"]\n[2.026766, \"o\", \"\\u001b[H\\u001b[2Jx=-0.30 m\\u001b[1;63H← to nudge left\\r\\nẋ=-0.33 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=0.09 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=1.83 rad/s\\r\\nu=-6.70\\u001b[8;30H┌───────┐\\u001b[9;30H|\\u001b[38G│\\u001b[10;30H|   M   │\\u001b[11;30H|   \\\\   │\\u001b[12;30H\"]\n[2.027135, \"o\", \"└o--\\\\--o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\\\\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|   \\\\     |\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.5\\\\     0.00     0.50\\u001b[59G1.00     1.50\\u001b[16;34H\"]\n[2.027443, \"o\", \"\\\\\\n\\b\\\\\\b\\b\"]\n[2.04784, \"o\", \"\\u001b[H\\u001b[2Jx=-0.30 m\\u001b[1;63H← to nudge left\\r\\nẋ=-0.35 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=0.13 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=1.83 rad/s\\r\\nu=-6.86\\u001b[8;30H┌───────┐\\u001b[9;30H|\\u001b[38G│\\u001b[10;30H|   M   │\\u001b[11;30H|   \\\\   │\\u001b[12;30H└o--\\\\--o┘\\r\\n\"]\n[2.048163, \"o\", \"\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\\\\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|   \\\\     |\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.5\\\\     0.00     0.50\\u001b[59G1.00     1.50\\u001b[16;34H\\\\\\n\\b\"]\n[2.048397, \"o\", \"\\\\\\\\\\b\\b\\b\"]\n[2.068527, \"o\", \"\\u001b[H\\u001b[2Jx=-0.31 m\\u001b[1;63H← to nudge left\\r\\nẋ=-0.37 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=0.17 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=1.83 rad/s\\r\\nu=-7.03\\u001b[8;30H┌───────┐\\u001b[9;30H|\\u001b[38G│\\u001b[10;30H|   M   │\\u001b[11;30H\"]\n[2.068655, \"o\", \"|   \\\\   │\\u001b[12;30H└o--\\\\--o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\\\\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|   \\\\     |\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n \"]\n[2.069059, \"o\", \"-2.00    -1.50     -1.00    -0.5\\\\     0.00     0.50\\u001b[59G1.00     1.50\\u001b[16;34H\\\\\\\\\\n\\b\\\\\\b\\b\\b\"]\n[2.089453, \"o\", \"\\u001b[H\\u001b[2Jx=-0.32 m\\u001b[1;63H← to nudge left\\r\\nẋ=-0.39 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=0.21 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=1.82 rad/s\\r\\nu=-7.22\\u001b[8;29H┌───────┐\\u001b[9;29H|\\u001b[37G│\\u001b[10;29H|   M   │\\u001b[11;29H\"]\n[2.089856, \"o\", \"|    \\\\  │\\u001b[12;29H└o---\\\\-o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\\\\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|   \\\\     |\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.5\\\\     0.00     0.50\\u001b[59G1.00     1.50\\u001b[16;34H\\\\\\\\\\n\\b\\\\\\b\\b\\b\"]\n[2.11027, \"o\", \"\\u001b[H\\u001b[2Jx=-0.33 m\\u001b[1;63H← to nudge left\\r\\nẋ=-0.40 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=0.24 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=1.80 rad/s\\r\\nu=-7.44\\u001b[8;29H┌───────┐\\u001b[9;29H\"]\n[2.110383, \"o\", \"|\\u001b[37G│\\u001b[10;29H|   M   │\\u001b[11;29H|   \\\\   │\\u001b[12;29H└o---\\\\-o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\\\\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H\"]\n[2.110677, \"o\", \"|\\u001b[14;30H|   \\\\     |\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.5\\\\     0.00     0.50\\u001b[59G1.00     1.50\\u001b[16;34H\\\\\\\\\\n\\b\\\\\\b\\b\\b\"]\n[2.131279, \"o\", \"\\u001b[H\\u001b[2Jx=-0.34 m\\u001b[1;63H← to nudge left\\r\\nẋ=-0.42 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=0.28 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=1.79 rad/s\\r\\nu=-7.67\\u001b[8;29H┌───────┐\\u001b[9;29H|\\u001b[37G│\\u001b[10;29H|   M   │\\u001b[11;29H|   \\\\   │\\u001b[12;29H\"]\n[2.131635, \"o\", \"└o--\\\\\\\\-o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\\\\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|   \\\\     |\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.5\\\\\\\\    0.00     0.50\\u001b[59G1.00     1.50\\u001b[16;35H\\\\\\n\\b\"]\n[2.131948, \"o\", \"\\\\\\b\\b\\b\"]\n[2.152169, \"o\", \"\\u001b[H\\u001b[2Jx=-0.35 m\\u001b[1;63H← to nudge left\\r\\nẋ=-0.43 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=0.32 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=1.76 rad/s\\r\\nu=-7.92\\u001b[8;29H┌───────┐\\u001b[9;29H|\\u001b[37G\"]\n[2.152292, \"o\", \"│\\u001b[10;29H|   M   │\\u001b[11;29H|   \\\\   │\\u001b[12;29H└o--\\\\\\\\-o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\\\\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|   \\\\     |\\u001b[14;49H\"]\n[2.152373, \"o\", \"|\\u001b[14;59H|\\u001b[14;68H|\\r\\n \"]\n[2.152873, \"o\", \"-2.00    -1.50     -1.00    -0.5\\\\\\\\    0.00     0.50\\u001b[59G1.00     1.50\\u001b[16;35H\\\\\\n\\b\\\\\\b\\b\"]\n[2.172919, \"o\", \"\\u001b[H\\u001b[2Jx=-0.36 m\\u001b[1;63H← to nudge left\\r\\nẋ=-0.44 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=0.35 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=1.74 rad/s\\r\\n\"]\n[2.17305, \"o\", \"u=-8.19\\u001b[8;29H┌───────┐\\u001b[9;29H|\\u001b[37G│\\u001b[10;29H|   M   │\\u001b[11;29H|   \\\\   │\\u001b[12;29H└o--\\\\--o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\\\\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H\"]\n[2.173441, \"o\", \"|\\u001b[14;30H|   \\\\     |\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.5\\\\\\\\    0.00     0.50\\u001b[59G1.00     1.50\\u001b[16;35H\\\\\\n\\b\\b┌───┐\"]\n[2.194128, \"o\", \"\\u001b[H\\u001b[2Jx=-0.37 m\\u001b[1;63H← to nudge left\\r\\nẋ=-0.45 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=0.39 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=1.71 rad/s\\r\\nu=-8.47\\u001b[8;29H\"]\n[2.194254, \"o\", \"┌───────┐\\u001b[9;29H|\\u001b[37G│\\u001b[10;29H|   M   │\\u001b[11;29H|   \\\\   │\\u001b[12;29H└o--\\\\--o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\\\\\\\\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|   \\\\     |\\u001b[14;49H|\\u001b[14;59H\"]\n[2.194663, \"o\", \"|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.5\\\\\\\\    0.00     0.50\\u001b[59G1.00     1.50\\u001b[16;35H\\\\\\n\\b\\b┌───┐\"]\n[2.215276, \"o\", \"\\u001b[H\\u001b[2Jx=-0.38 m\\u001b[1;63H← to nudge left\\r\\nẋ=-0.46 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=0.43 rad\\u001b[3;63H⮠ to restart\\r\\n\"]\n[2.215401, \"o\", \"ȧ=1.67 rad/s\\r\\nu=-8.77\\u001b[8;28H┌───────┐\\u001b[9;28H|\\u001b[36G│\\u001b[10;28H|   M   │\\u001b[11;28H|    \\\\  │\\u001b[12;28H└o---\\\\-o┘\\r\\n\"]\n[2.21569, \"o\", \"\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\\\\\\\\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|   \\\\     |\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.5\\\\\\\\    0.00     0.50\\u001b[59G1.00     1.50\\u001b[16;35H\\\\\\n\\b\\b┌───┐\"]\n[2.236253, \"o\", \"\\u001b[H\\u001b[2Jx=-0.39 m\\u001b[1;63H← to nudge left\\r\\nẋ=-0.47 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=0.46 rad\\u001b[3;63H⮠ to restart\\r\\n\"]\n[2.236377, \"o\", \"ȧ=1.64 rad/s\\r\\nu=-9.09\\u001b[8;28H┌───────┐\\u001b[9;28H|\\u001b[36G│\\u001b[10;28H|   M   │\\u001b[11;28H|    \\\\  │\\u001b[12;28H\"]\n[2.236903, \"o\", \"└o---\\\\-o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\\\\\\\\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|   \\\\     |\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.5\\\\\\\\    0.00     0.50\\u001b[59G1.00     1.50\\u001b[16;35H\\\\\\n\\b\\b┌───┐\"]\n[2.257328, \"o\", \"\\u001b[H\\u001b[2Jx=-0.40 m\\u001b[1;63H← to nudge left\\r\\nẋ=-0.48 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=0.49 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=1.59 rad/s\\r\\n\"]\n[2.257716, \"o\", \"u=-9.42\\u001b[8;28H┌───────┐\\u001b[9;28H|\\u001b[36G│\\u001b[10;28H|   M   │\\u001b[11;28H|   \\\\\\\\  │\\u001b[12;28H└o---\\\\-o┘\\r\\n\"]\n[2.257974, \"o\", \"\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\\\\\\\\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|   \\\\     |\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.5\\\\\\\\    0.00     0.50\\u001b[59G1.00     1.50\\u001b[16;35H\\\\\\n\\b\\b┌───┐\"]\n[2.278289, \"o\", \"\\u001b[H\\u001b[2Jx=-0.41 m\\u001b[1;63H← to nudge left\\r\\nẋ=-0.50 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=0.53 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=1.55 rad/s\\r\\n\"]\n[2.278423, \"o\", \"u=-9.76\\u001b[8;28H┌───────┐\\u001b[9;28H|\\u001b[36G│\\u001b[10;28H|   M   │\\u001b[11;28H|   \\\\   │\\u001b[12;28H└o--\\\\\\\\-o┘\\r\\n\"]\n[2.278778, \"o\", \"\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\\\\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|   \\\\     |\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.5\\\\\\\\    0.00     0.50\\u001b[59G1.00     1.50\\u001b[16;35H\\\\\\n\\b\\b┌───┐\"]\n[2.299424, \"o\", \"\\u001b[H\\u001b[2Jx=-0.42 m\\u001b[1;63H← to nudge left\\r\\nẋ=-0.51 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=0.56 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=1.50 rad/s\\r\\n\"]\n[2.299553, \"o\", \"u=-10.11\\u001b[8;28H┌───────┐\\u001b[9;28H|\\u001b[36G│\\u001b[10;28H|   M   │\\u001b[11;28H|   \\\\   │\\u001b[12;28H└o--\\\\\\\\-o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\\\\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|  \\\\\\\\     |\\u001b[14;49H|\\u001b[14;59H\"]\n[2.299946, \"o\", \"|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.5\\\\\\\\    0.00     0.50\\u001b[59G1.00     1.50\\u001b[16;35H\\\\\\n\\b\\b┌───┐\"]\n[2.320369, \"o\", \"\\u001b[H\\u001b[2Jx=-0.43 m\\u001b[1;63H← to nudge left\\r\\nẋ=-0.52 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=0.59 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=1.46 rad/s\\r\\nu=-10.46\\u001b[8;27H┌───────┐\\u001b[9;27H|\\u001b[35G│\\u001b[10;27H|   M   │\\u001b[11;27H|    \\\\  │\\u001b[12;27H\"]\n[2.32049, \"o\", \"└o---\\\\\\\\o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\\\\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|  \\\\\\\\     |\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.5\\\\\\\\    0.00     0.50\\u001b[59G1.00     1.50\\u001b[16;35H\"]\n[2.320914, \"o\", \"\\\\\\n\\b\\b┌───┐\"]\n[2.341328, \"o\", \"\\u001b[H\\u001b[2Jx=-0.44 m\\u001b[1;63H← to nudge left\\r\\nẋ=-0.53 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=0.62 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=1.40 rad/s\\r\\nu=-10.82\\u001b[8;27H┌───────┐\\u001b[9;27H\"]\n[2.341446, \"o\", \"|\\u001b[35G│\\u001b[10;27H|   M   │\\u001b[11;27H|    \\\\  │\\u001b[12;27H└o---\\\\\\\\o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\\\\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|  \\\\\\\\     |\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H\"]\n[2.341873, \"o\", \"|\\r\\n -2.00    -1.50     -1.00    -0.5\\\\\\\\    0.00     0.50\\u001b[59G1.00     1.50\\u001b[16;34H┌───┐\\n\\u001b[34G| m |\"]\n[2.362329, \"o\", \"\\u001b[H\\u001b[2Jx=-0.45 m\\u001b[1;63H← to nudge left\\r\\nẋ=-0.55 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=0.65 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=1.35 rad/s\\r\\nu=-11.18\\u001b[8;27H┌───────┐\\u001b[9;27H|\\u001b[35G│\\u001b[10;27H|   M   │\\u001b[11;27H|   \\\\\\\\  │\\u001b[12;27H\"]\n[2.362475, \"o\", \"└o---\\\\-o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\\\\\\\\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|  \\\\\\\\     |\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.5\\\\\\\\    0.00     0.50\\u001b[59G1.00     1.50\\u001b[16;34H\"]\n[2.362769, \"o\", \"┌───┐\\n\\u001b[34G| m |\"]\n[2.383338, \"o\", \"\\u001b[H\\u001b[2Jx=-0.46 m\\u001b[1;63H← to nudge left\\r\\nẋ=-0.56 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=0.67 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=1.29 rad/s\\r\\nu=-11.54\\u001b[8;27H┌───────┐\\u001b[9;27H|\\u001b[35G│\\u001b[10;27H|   M   │\\u001b[11;27H|   \\\\\\\\  │\\u001b[12;27H\"]\n[2.383457, \"o\", \"└o---\\\\-o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\\\\\\\\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|  \\\\\\\\     |\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.5\\\\\\\\    0.00     0.50\\u001b[59G\"]\n[2.383887, \"o\", \"1.00     1.50\\u001b[16;34H┌───┐\\n\\u001b[34G| m |\"]\n[2.404307, \"o\", \"\\u001b[H\\u001b[2Jx=-0.47 m\\u001b[1;63H← to nudge left\\r\\nẋ=-0.58 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=0.70 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=1.24 rad/s\\r\\nu=-11.90\\u001b[8;26H┌───────┐\\u001b[9;26H|\\u001b[34G│\\u001b[10;26H|   M   │\\u001b[11;26H\"]\n[2.404433, \"o\", \"|    \\\\  │\\u001b[12;26H└o---\\\\\\\\o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\\\\\\\\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|  \\\\\\\\     |\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n \"]\n[2.404838, \"o\", \"-2.00    -1.50     -1.00    -0.5\\\\\\\\    0.00     0.50\\u001b[59G1.00     1.50\\u001b[16;34H┌───┐\\n\\u001b[34G| m |\"]\n[2.42501, \"o\", \"\\u001b[H\\u001b[2Jx=-0.49 m\\u001b[1;63H← to nudge left\\r\\nẋ=-0.60 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=0.72 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=1.18 rad/s\\r\\nu=-12.26\\u001b[8;26H┌───────┐\\u001b[9;26H|\\u001b[34G│\\u001b[10;26H\"]\n[2.42515, \"o\", \"|   M   │\\u001b[11;26H|    \\\\  │\\u001b[12;26H└o---\\\\\\\\o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\\\\\\\\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|  \\\\\\\\     |\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H\"]\n[2.425452, \"o\", \"|\\r\\n -2.00    -1.50     -1.00    -0.5\\\\\\\\    0.00     0.50\\u001b[59G1.00     1.50\\u001b[16;34H┌───┐\\n\\u001b[34G| m |\"]\n[2.446187, \"o\", \"\\u001b[H\\u001b[2Jx=-0.50 m\\u001b[1;63H← to nudge left\\r\\nẋ=-0.62 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=0.75 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=1.12 rad/s\\r\\nu=-12.60\\u001b[8;26H┌───────┐\\u001b[9;26H|\\u001b[34G│\\u001b[10;26H|   M   │\\u001b[11;26H|    \\\\  │\\u001b[12;26H\"]\n[2.446307, \"o\", \"└o---\\\\\\\\o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\\\\\\\\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|  \\\\\\\\     |\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.5\\\\\\\\    0.00     0.50\\u001b[59G1.00     1.50\\u001b[16;34H\"]\n[2.446724, \"o\", \"┌───┐\\n\\u001b[34G| m |\"]\n[2.467013, \"o\", \"\\u001b[H\\u001b[2Jx=-0.51 m\\u001b[1;63H← to nudge left\\r\\nẋ=-0.64 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=0.77 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=1.06 rad/s\\r\\nu=-12.94\\u001b[8;26H┌───────┐\\u001b[9;26H|\\u001b[34G\"]\n[2.467674, \"o\", \"│\\u001b[10;26H|   M   │\\u001b[11;26H|   \\\\\\\\  │\\u001b[12;26H└o---\\\\\\\\o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\\\\\\\\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|  \\\\\\\\     |\\u001b[14;49H|\\u001b[14;59H\"]\n[2.467791, \"o\", \"|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.5\\\\\\\\    0.00     0.50\\u001b[59G1.00     1.50\\u001b[16;34H┌───┐\\n\\u001b[34G| m |\"]\n[2.487781, \"o\", \"\\u001b[H\\u001b[2Jx=-0.53 m\\u001b[1;63H← to nudge left\\r\\nẋ=-0.67 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=0.79 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=0.99 rad/s\\r\\nu=-13.27\\u001b[8;25H┌───────┐\\u001b[9;25H|\\u001b[33G│\\u001b[10;25H|   M   │\\u001b[11;25H\"]\n[2.487907, \"o\", \"|    \\\\  │\\u001b[12;25H└o----\\\\o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\\\\\\\\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|  \\\\\\u001b[40G|\\u001b[14;49H|\\u001b[14;59H\"]\n[2.488193, \"o\", \"|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.5┌───┐ 0.00     0.50\\u001b[59G1.00     1.50\\u001b[16;34H| m |\\n\\u001b[34G└───┘\"]\n[2.508692, \"o\", \"\\u001b[H\\u001b[2Jx=-0.54 m\\u001b[1;63H← to nudge left\\r\\nẋ=-0.69 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=0.81 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=0.93 rad/s\\r\\nu=-13.58\\u001b[8;25H\"]\n[2.508816, \"o\", \"┌───────┐\\u001b[9;25H|\\u001b[33G│\\u001b[10;25H|   M   │\\u001b[11;25H|    \\\\  │\\u001b[12;25H└o---\\\\\\\\o┘\\r\\n\"]\n[2.509181, \"o\", \"\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\\\\\\\\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H| \\\\\\\\\\u001b[40G|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.┌───┐  0.00     0.50\\u001b[59G1.00     1.50\\u001b[16;33H| m |\\n\\u001b[33G└───┘\"]\n[2.529696, \"o\", \"\\u001b[H\\u001b[2Jx=-0.56 m\\u001b[1;63H← to nudge left\\r\\nẋ=-0.72 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1H\"]\n[2.52982, \"o\", \"a=0.83 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=0.87 rad/s\\r\\nu=-13.88\\u001b[8;25H┌───────┐\\u001b[9;25H|\\u001b[33G│\\u001b[10;25H|   M   │\\u001b[11;25H|    \\\\  │\\u001b[12;25H└o---\\\\\\\\o┘\\r\\n\"]\n[2.530049, \"o\", \"\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\\\\\\\\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H\"]\n[2.53039, \"o\", \"| \\\\\\\\\\u001b[40G|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.┌───┐  0.00     0.50\\u001b[59G1.00     1.50\\u001b[16;33H| m |\\n\\u001b[33G└───┘\"]\n[2.551329, \"o\", \"\\u001b[H\\u001b[2Jx=-0.57 m\\u001b[1;63H← to nudge left\\r\\nẋ=-0.75 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=0.84 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=0.80 rad/s\\r\\nu=-14.17\\u001b[8;25H┌───────┐\\u001b[9;25H|\\u001b[33G\"]\n[2.55145, \"o\", \"│\\u001b[10;25H|   M   │\\u001b[11;25H|   \\\\\\\\  │\\u001b[12;25H└o---\\\\\\\\o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\\\\\\\\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H\"]\n[2.551826, \"o\", \"| \\\\\\\\\\u001b[40G|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.┌───┐  0.00     0.50\\u001b[59G1.00     1.50\\u001b[16;33H| m |\\n\\u001b[33G└───┘\"]\n[2.572312, \"o\", \"\\u001b[H\\u001b[2Jx=-0.59 m\\u001b[1;63H← to nudge left\\r\\nẋ=-0.78 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=0.86 rad\\u001b[3;63H⮠ to restart\\r\\n\"]\n[2.572683, \"o\", \"ȧ=0.73 rad/s\\r\\nu=-14.44\\u001b[8;24H┌───────┐\\u001b[9;24H|\\u001b[32G│\\u001b[10;24H|   M   │\\u001b[11;24H|    \\\\  │\\u001b[12;24H\"]\n[2.572824, \"o\", \"└o----\\\\\\\\┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\\\\\\\\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H| \\\\\\\\\\u001b[40G|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.┌───┐  0.00     0.50\\u001b[59G1.00     1.50\\u001b[16;33H| m |\\n\\u001b[33G└───┘\"]\n[2.593608, \"o\", \"\\u001b[H\\u001b[2Jx=-0.61 m\\u001b[1;63H← to nudge left\\r\\nẋ=-0.81 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=0.87 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=0.66 rad/s\\r\\n\"]\n[2.594076, \"o\", \"u=-14.69\\u001b[8;24H┌───────┐\\u001b[9;24H|\\u001b[32G│\\u001b[10;24H|   M   │\\u001b[11;24H|    \\\\  │\\u001b[12;24H└o---\\\\\\\\o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\\\\\\\\\\\\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H| \\\\\\\\\\u001b[40G|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.┌───┐  0.00     0.50\\u001b[59G1.00     1.50\\u001b[16;33H| m |\\n\\u001b[33G└───┘\"]\n[2.614412, \"o\", \"\\u001b[H\\u001b[2Jx=-0.62 m\\u001b[1;63H← to nudge left\\r\\nẋ=-0.84 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=0.89 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=0.59 rad/s\\r\\nu=-14.92\\u001b[8;24H┌───────┐\\u001b[9;24H|\\u001b[32G\"]\n[2.614557, \"o\", \"│\\u001b[10;24H|   M   │\\u001b[11;24H|   \\\\\\\\  │\\u001b[12;24H└o---\\\\\\\\o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\\\\\\\\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\\\\\\\\\\\\\u001b[40G\"]\n[2.614876, \"o\", \"|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0┌───┐   0.00     0.50\\u001b[59G1.00     1.50\\u001b[16;32H| m |\\n\\u001b[32G└───┘\"]\n[2.63543, \"o\", \"\\u001b[H\\u001b[2Jx=-0.64 m\\u001b[1;63H← to nudge left\\r\\nẋ=-0.87 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=0.90 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=0.52 rad/s\\r\\n\"]\n[2.63556, \"o\", \"u=-15.12\\u001b[8;23H┌───────┐\\u001b[9;23H|\\u001b[31G│\\u001b[10;23H|   M   │\\u001b[11;23H|    \\\\\\\\ │\\u001b[12;23H└o----\\\\\\\\┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\\\\\\\\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H\"]\n[2.635959, \"o\", \"|\\\\\\\\\\u001b[40G|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0┌───┐   0.00     0.50\\u001b[59G1.00     1.50\\u001b[16;32H| m |\\n\\u001b[32G└───┘\"]\n[2.656515, \"o\", \"\\u001b[H\\u001b[2Jx=-0.66 m\\u001b[1;63H← to nudge left\\r\\nẋ=-0.91 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=0.91 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=0.45 rad/s\\r\\nu=-15.30\\u001b[8;23H┌───────┐\\u001b[9;23H|\\u001b[31G│\\u001b[10;23H\"]\n[2.656646, \"o\", \"|   M   │\\u001b[11;23H|    \\\\  │\\u001b[12;23H└o---\\\\\\\\o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\\\\\\\\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\\\\\\\\\u001b[40G\"]\n[2.657092, \"o\", \"|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0┌───┐   0.00     0.50\\u001b[59G1.00     1.50\\u001b[16;32H| m |\\n\\u001b[32G└───┘\"]\n[2.677596, \"o\", \"\\u001b[H\\u001b[2Jx=-0.68 m\\u001b[1;63H← to nudge left\\r\\nẋ=-0.94 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=0.92 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=0.38 rad/s\\r\\n\"]\n[2.677979, \"o\", \"u=-15.46\\u001b[8;23H┌───────┐\\u001b[9;23H|\\u001b[31G│\\u001b[10;23H|   M   │\\u001b[11;23H|   \\\\\\\\  │\\u001b[12;23H└o---\\\\\\\\o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\\\\\\\\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H\\\\\\\\\\\\\\u001b[40G|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -┌───┐    0.00     0.50\\u001b[59G1.00     1.50\\u001b[16;31H| m |\\n\\u001b[31G└───┘\"]\n[2.698413, \"o\", \"\\u001b[H\\u001b[2Jx=-0.70 m\\u001b[1;63H← to nudge left\\r\\nẋ=-0.98 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=0.92 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=0.31 rad/s\\r\\nu=-15.59\\u001b[8;22H┌───────┐\\u001b[9;22H|\\u001b[30G│\\u001b[10;22H\"]\n[2.698533, \"o\", \"|   M   │\\u001b[11;22H|    \\\\  │\\u001b[12;22H└o----\\\\\\\\┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\\\\\\\\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H\\\\\\\\\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H\"]\n[2.698873, \"o\", \"|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -┌───┐    0.00     0.50\\u001b[59G1.00     1.50\\u001b[16;31H| m |\\n\\u001b[31G└───┘\"]\n[2.719258, \"o\", \"\\u001b[H\\u001b[2Jx=-0.72 m\\u001b[1;63H← to nudge left\\r\\nẋ=-1.02 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=0.93 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=0.24 rad/s\\r\\n\"]\n[2.71938, \"o\", \"u=-15.70\\u001b[8;22H┌───────┐\\u001b[9;22H|\\u001b[30G│\\u001b[10;22H|   M   │\\u001b[11;22H|   \\\\\\\\  │\\u001b[12;22H└o---\\\\\\\\o┘\\r\\n\"]\n[2.719746, \"o\", \"\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\\\\\\\\\\\\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H\\\\\\\\\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -┌───┐    0.00     0.50\\u001b[59G1.00     1.50\\u001b[16;31H| m |\\n\\u001b[31G└───┘\"]\n[2.740043, \"o\", \"\\u001b[H\\u001b[2Jx=-0.74 m\\u001b[1;63H← to nudge left\\r\\nẋ=-1.05 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=0.93 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=0.17 rad/s\\r\\n\"]\n[2.740162, \"o\", \"u=-15.78\\u001b[8;21H┌───────┐\\u001b[9;21H|\\u001b[29G│\\u001b[10;21H|   M   │\\u001b[11;21H|    \\\\\\\\ │\\u001b[12;21H└o----\\\\\\\\┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\\\\\\\\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H\"]\n[2.740431, \"o\", \"|\\u001b[29G\\\\\\\\\\\\\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    ┌───┐     0.00     0.50\\u001b[59G1.00     1.50\\u001b[16;30H| m |\\n\\u001b[30G└───┘\"]\n[2.761106, \"o\", \"\\u001b[H\\u001b[2Jx=-0.77 m\\u001b[1;63H← to nudge left\\r\\nẋ=-1.09 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=0.93 rad\\u001b[3;63H⮠ to restart\\r\\n\"]\n[2.761486, \"o\", \"ȧ=0.10 rad/s\\r\\nu=-15.84\\u001b[8;21H┌───────┐\\u001b[9;21H|\\u001b[29G│\\u001b[10;21H|   M   │\\u001b[11;21H|    \\\\  │\\u001b[12;21H└o---\\\\\\\\\\\\┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\\\\\\\\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[29G\\\\\\\\\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    ┌───┐     0.00     0.50\\u001b[59G\"]\n[2.761768, \"o\", \"1.00     1.50\\u001b[16;30H| m |\\n\\u001b[30G└───┘\"]\n[2.78211, \"o\", \"\\u001b[H\\u001b[2Jx=-0.79 m\\u001b[1;63H← to nudge left\\r\\nẋ=-1.13 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=0.93 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=0.03 rad/s\\r\\nu=-15.86\\u001b[8;20H┌───────┐\\u001b[9;20H|\\u001b[28G│\\u001b[10;20H|   M   │\\u001b[11;20H|    \\\\\\\\ │\\u001b[12;20H\"]\n[2.782483, \"o\", \"└o----\\\\\\\\┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\\\\\\\\\\\\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[29G\\\\\\\\\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00   ┌───┐0     0.00     0.50\\u001b[59G1.00     1.50\\u001b[16;29H| m |\\n\\u001b[29G└───┘\"]\n[2.802856, \"o\", \"\\u001b[H\\u001b[2Jx=-0.82 m\\u001b[1;63H← to nudge left\\r\\nẋ=-1.16 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=0.93 rad\\u001b[3;63H\"]\n[2.802993, \"o\", \"⮠ to restart\\r\\nȧ=-0.04 rad/s\\r\\nu=-15.87\\u001b[8;20H┌───────┐\\u001b[9;20H|\\u001b[28G\"]\n[2.803261, \"o\", \"│\\u001b[10;20H|   M   │\\u001b[11;20H|    \\\\  │\\u001b[12;20H└o---\\\\\\\\\\\\┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\\\\\\\\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[28G\\\\\\\\|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H\"]\n[2.803661, \"o\", \"|\\r\\n -2.00    -1.50     -1.00   ┌───┐0     0.00     0.50\\u001b[59G1.00     1.50\\u001b[16;29H| m |\\n\\u001b[29G└───┘\"]\n[2.823593, \"o\", \"\\u001b[H\\u001b[2Jx=-0.84 m\\u001b[1;63H← to nudge left\\r\\nẋ=-1.08 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=0.93 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=-0.15 rad/s\\r\\nu=15.84\\u001b[8;20H┌───────┐\\u001b[9;20H|\\u001b[28G│\\u001b[10;20H|   M   │\\u001b[11;20H|   \\\\\\\\  │\\u001b[12;20H\"]\n[2.82363, \"o\", \"└o---\\\\\\\\o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\\\\\\\\\\\\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[28G\\\\\\\\|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n \"]\n[2.823858, \"o\", \"-2.00    -1.50     -1.00  ┌───┐50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[16;28H| m |\\n\\u001b[28G└───┘\"]\n[2.844033, \"o\", \"\\u001b[H\\u001b[2Jx=-0.86 m\\u001b[1;63H← to nudge left\\r\\nẋ=-1.01 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=0.92 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=-0.25 rad/s\\r\\nu=15.78\\u001b[8;19H┌───────┐\\u001b[9;19H|\\u001b[27G│\\u001b[10;19H|   M   │\\u001b[11;19H|    \\\\  │\\u001b[12;19H└o----\\\\\\\\┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\\\\\\\\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|     \\\\\\\\ |\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00  ┌───┐50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[16;28H| m |\\n\\u001b[28G└───┘\"]\n[2.864479, \"o\", \"\\u001b[H\\u001b[2Jx=-0.88 m\\u001b[1;63H← to nudge left\\r\\nẋ=-0.93 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=0.92 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=-0.35 rad/s\\r\\nu=15.71\\u001b[8;19H┌───────┐\\u001b[9;19H|\\u001b[27G│\\u001b[10;19H|   M   │\\u001b[11;19H|    \\\\  │\\u001b[12;19H└o---\\\\\\\\o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\\\\\\\\\\\\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|     \\\\\\\\ |\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00  ┌───┐50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[16;28H| m |\\n\\u001b[28G└───┘\"]\n[2.88491, \"o\", \"\\u001b[H\\u001b[2Jx=-0.89 m\\u001b[1;63H← to nudge left\\r\\nẋ=-0.85 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=0.91 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=-0.46 rad/s\\r\\nu=15.60\\u001b[8;18H┌───────┐\\u001b[9;18H|\\u001b[26G│\\u001b[10;18H|   M   │\\u001b[11;18H|    \\\\\\\\ │\\u001b[12;18H└o----\\\\\\\\┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\\\\\\\\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|    \\\\\\\\\\\\ |\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00 ┌───┐.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[16;27H\"]\n[2.884968, \"o\", \"| m |\\n\\u001b[27G└───┘\"]\n[2.905442, \"o\", \"\\u001b[H\\u001b[2Jx=-0.91 m\\u001b[1;63H← to nudge left\\r\\nẋ=-0.77 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=0.90 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=-0.56 rad/s\\r\\nu=15.48\\u001b[8;18H┌───────┐\\u001b[9;18H|\\u001b[26G│\\u001b[10;18H|   M   │\\u001b[11;18H|    \\\\  │\\u001b[12;18H└o---\\\\\\\\\\\\┘\\r\\n\"]\n[2.90572, \"o\", \"\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\\\\\\\\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|    \\\\\\\\  |\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00 ┌───┐.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[16;27H| m |\\n\\u001b[27G└───┘\"]\n[2.926099, \"o\", \"\\u001b[H\\u001b[2Jx=-0.92 m\\u001b[1;63H← to nudge left\\r\\nẋ=-0.69 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=0.88 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=-0.66 rad/s\\r\\nu=15.34\\u001b[8;18H┌───────┐\\u001b[9;18H\"]\n[2.926479, \"o\", \"|\\u001b[26G│\\u001b[10;18H|   M   │\\u001b[11;18H|    \\\\  │\\u001b[12;18H└o---\\\\\\\\o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\\\\\\\\\\\\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|    \\\\\\\\  |\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00┌───┐0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[16;26H| m |\\n\\u001b[26G└───┘\"]\n[2.946835, \"o\", \"\\u001b[H\\u001b[2Jx=-0.94 m\\u001b[1;63H← to nudge left\\r\\nẋ=-0.61 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=0.87 rad\\u001b[3;63H⮠ to restart\\r\\n\"]\n[2.946951, \"o\", \"ȧ=-0.77 rad/s\\r\\nu=15.18\\u001b[8;18H┌───────┐\\u001b[9;18H|\\u001b[26G│\\u001b[10;18H|   M   │\\u001b[11;18H|   \\\\\\\\  │\\u001b[12;18H└o---\\\\\\\\o┘\\r\\n\"]\n[2.947035, \"o\", \"\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\\\\\\\\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|   \\\\\\\\   |\\u001b[14;40H|\\u001b[14;49H\"]\n[2.947507, \"o\", \"|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00┌───┐0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[16;26H| m |\\n\\u001b[26G└───┘\"]\n[2.968167, \"o\", \"\\u001b[H\\u001b[2Jx=-0.95 m\\u001b[1;63H← to nudge left\\r\\nẋ=-0.53 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=0.85 rad\\u001b[3;63H⮠ to restart\\r\\n\"]\n[2.968499, \"o\", \"ȧ=-0.87 rad/s\\r\\nu=15.00\\u001b[8;17H┌───────┐\\u001b[9;17H|\\u001b[25G│\\u001b[10;17H|   M   │\\u001b[11;17H|    \\\\\\\\ │\\u001b[12;17H└o----\\\\\\\\┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\\\\\\\\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|   \\\\\\\\   |\\u001b[14;40H\"]\n[2.968805, \"o\", \"|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00┌───┐0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[16;26H| m |\\n\\u001b[26G└───┘\"]\n[2.989158, \"o\", \"\\u001b[H\\u001b[2Jx=-0.96 m\\u001b[1;63H← to nudge left\\r\\nẋ=-0.45 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=0.83 rad\\u001b[3;63H\"]\n[2.989447, \"o\", \"⮠ to restart\\r\\nȧ=-0.98 rad/s\\r\\nu=14.79\\u001b[8;17H┌───────┐\\u001b[9;17H|\\u001b[25G│\\u001b[10;17H|   M   │\\u001b[11;17H|    \\\\  │\\u001b[12;17H\"]\n[2.989716, \"o\", \"└o---\\\\\\\\o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\\\\\\\\\\\\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|   \\\\\\\\   |\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00┌───┐0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[16;26H| m |\\n\\u001b[26G└───┘\"]\n[3.01012, \"o\", \"\\u001b[H\\u001b[2Jx=-0.97 m\\u001b[1;63H← to nudge left\\r\\nẋ=-0.37 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=0.80 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=-1.08 rad/s\\r\\n\"]\n[3.010467, \"o\", \"u=14.58\\u001b[8;17H┌───────┐\\u001b[9;17H|\\u001b[25G│\\u001b[10;17H|   M   │\\u001b[11;17H|    \\\\  │\\u001b[12;17H└o---\\\\\\\\o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\\\\\\\\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\"]\n[3.010799, \"o\", \"\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|  \\\\\\\\    |\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.0┌───┐-0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[16;25H| m |\\n\\u001b[25G└───┘\"]\n[3.030985, \"o\", \"\\u001b[H\\u001b[2Jx=-0.97 m\\u001b[1;63H← to nudge left\\r\\nẋ=-0.29 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=0.78 rad\\u001b[3;63H⮠ to restart\\r\\n\"]\n[3.031112, \"o\", \"ȧ=-1.18 rad/s\\r\\nu=14.36\\u001b[8;17H┌───────┐\\u001b[9;17H|\\u001b[25G│\\u001b[10;17H|   M   │\\u001b[11;17H|    \\\\  │\\u001b[12;17H└o---\\\\\\\\o┘\\r\\n\"]\n[3.031542, \"o\", \"\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\\\\\\\\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|  \\\\\\\\    |\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.0\\\\\\\\   -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[16;25H┌───┐\\n\\u001b[25G| m |\"]\n[3.051914, \"o\", \"\\u001b[H\\u001b[2Jx=-0.98 m\\u001b[1;63H← to nudge left\\r\\nẋ=-0.21 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=0.75 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=-1.28 rad/s\\r\\n\"]\n[3.05205, \"o\", \"u=14.13\\u001b[8;17H┌───────┐\\u001b[9;17H|\\u001b[25G│\\u001b[10;17H|   M   │\\u001b[11;17H|    \\\\  │\\u001b[12;17H└o---\\\\\\\\o┘\\r\\n\"]\n[3.05254, \"o\", \"\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\\\\\\\\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|  \\\\\\\\    |\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.0\\\\\\\\   -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[16;25H┌───┐\\n\\u001b[25G| m |\"]\n[3.072954, \"o\", \"\\u001b[H\\u001b[2Jx=-0.98 m\\u001b[1;63H← to nudge left\\r\\nẋ=-0.13 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=0.72 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=-1.38 rad/s\\r\\nu=13.89\\u001b[8;17H┌───────┐\\u001b[9;17H\"]\n[3.073089, \"o\", \"|\\u001b[25G│\\u001b[10;17H|   M   │\\u001b[11;17H|   \\\\\\\\  │\\u001b[12;17H└o---\\\\\\\\o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\\\\\\\\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|  \\\\     |\\u001b[14;40H|\\u001b[14;49H\"]\n[3.073458, \"o\", \"|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.\\\\\\\\    -0.50     0.00     0.50\\u001b[59G\"]\n[3.073786, \"o\", \"1.00     1.50\\u001b[16;25H┌───┐\\n\\u001b[25G| m |\"]\n[3.093831, \"o\", \"\\u001b[H\\u001b[2Jx=-0.98 m\\u001b[1;63H← to nudge left\\r\\nẋ=-0.05 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=0.69 rad\\u001b[3;63H\"]\n[3.094022, \"o\", \"⮠ to restart\\r\\nȧ=-1.48 rad/s\\r\\nu=13.66\\u001b[8;17H┌───────┐\\u001b[9;17H|\\u001b[25G│\\u001b[10;17H|   M   │\\u001b[11;17H|   \\\\\\\\  │\\u001b[12;17H└o---\\\\\\\\o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\\\\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H\"]\n[3.09443, \"o\", \"|\\u001b[14;21H| \\\\\\\\     |\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.\\\\\\\\    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[16;24H┌───┐\\n\\u001b[24G| m |\"]\n[3.114857, \"o\", \"\\u001b[H\\u001b[2Jx=-0.98 m\\u001b[1;63H← to nudge left\\r\\nẋ=0.03 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=0.66 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=-1.58 rad/s\\r\\nu=13.44\\u001b[8;17H┌───────┐\\u001b[9;17H|\\u001b[25G\"]\n[3.114979, \"o\", \"│\\u001b[10;17H|   M   │\\u001b[11;17H|   \\\\\\\\  │\\u001b[12;17H└o---\\\\-o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\\\\\\\\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H| \\\\\\\\     |\\u001b[14;40H\"]\n[3.115274, \"o\", \"|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.\\\\\\\\    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[16;24H┌───┐\\n\\u001b[24G| m |\"]\n[3.135888, \"o\", \"\\u001b[H\\u001b[2Jx=-0.98 m\\u001b[1;63H← to nudge left\\r\\nẋ=0.12 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=0.63 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=-1.67 rad/s\\r\\n\"]\n[3.136015, \"o\", \"u=13.22\\u001b[8;17H┌───────┐\\u001b[9;17H|\\u001b[25G│\\u001b[10;17H|   M   │\\u001b[11;17H|   \\\\\\\\  │\\u001b[12;17H└o---\\\\-o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\\\\\\\\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H\"]\n[3.136392, \"o\", \"| \\\\\\\\     |\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.\\\\\\\\    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[16;24H┌───┐\\n\\u001b[24G| m |\"]\n[3.156919, \"o\", \"\\u001b[H\\u001b[2Jx=-0.97 m\\u001b[1;63H← to nudge left\\r\\nẋ=0.20 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=0.59 rad\\u001b[3;63H⮠ to restart\\r\\n\"]\n[3.157045, \"o\", \"ȧ=-1.77 rad/s\\r\\nu=13.01\\u001b[8;17H┌───────┐\\u001b[9;17H|\\u001b[25G│\\u001b[10;17H|   M   │\\u001b[11;17H|   \\\\\\\\  │\\u001b[12;17H└o---\\\\-o┘\\r\\n\"]\n[3.15743, \"o\", \"\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\\\\\\\\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H| \\\\\\\\     |\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.\\\\0    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[16;24H\\\\\\\\\\n\\b\\b┌───┐\"]\n[3.177744, \"o\", \"\\u001b[H\\u001b[2Jx=-0.97 m\\u001b[1;63H← to nudge left\\r\\nẋ=0.28 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=0.55 rad\\u001b[3;63H\"]\n[3.178118, \"o\", \"⮠ to restart\\r\\nȧ=-1.86 rad/s\\r\\nu=12.82\\u001b[8;17H┌───────┐\\u001b[9;17H|\\u001b[25G│\\u001b[10;17H|   M   │\\u001b[11;17H|    \\\\  │\\u001b[12;17H\"]\n[3.178474, \"o\", \"└o---\\\\-o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\\\\\\\\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H| \\\\\\\\     |\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.\\\\0    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[16;24H\\\\\\\\\\n\\b\\b┌───┐\"]\n[3.198699, \"o\", \"\\u001b[H\\u001b[2Jx=-0.96 m\\u001b[1;63H← to nudge left\\r\\nẋ=0.36 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=0.51 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=-1.95 rad/s\\r\\n\"]\n[3.198824, \"o\", \"u=12.66\\u001b[8;17H┌───────┐\\u001b[9;17H|\\u001b[25G│\\u001b[10;17H|   M   │\\u001b[11;17H|    \\\\  │\\u001b[12;17H└o---\\\\-o┘\\r\\n\"]\n[3.199322, \"o\", \"\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\\\\\\\\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H| \\\\\\u001b[30G|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1\\\\\\\\0    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[16;24H\\\\\\\\\\n\\b\\b\\b┌───┐\"]\n[3.219743, \"o\", \"\\u001b[H\\u001b[2Jx=-0.95 m\\u001b[1;63H← to nudge left\\r\\nẋ=0.44 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=0.47 rad\\u001b[3;63H\"]\n[3.219867, \"o\", \"⮠ to restart\\r\\nȧ=-2.03 rad/s\\r\\nu=12.53\\u001b[8;17H┌───────┐\\u001b[9;17H|\\u001b[25G│\\u001b[10;17H|   M   │\\u001b[11;17H|    \\\\  │\\u001b[12;17H\"]\n[3.220164, \"o\", \"└o---\\\\-o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\\\\\\\\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H| \\\\\\u001b[30G|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1\\\\\\\\0    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[16;24H\\\\\\n\\b\\b┌───┐\"]\n[3.240769, \"o\", \"\\u001b[H\\u001b[2Jx=-0.94 m\\u001b[1;63H← to nudge left\\r\\nẋ=0.52 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=0.42 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=-2.11 rad/s\\r\\n\"]\n[3.2409, \"o\", \"u=12.42\\u001b[8;18H┌───────┐\\u001b[9;18H|\\u001b[26G│\\u001b[10;18H|   M   │\\u001b[11;18H|   \\\\   │\\u001b[12;18H└o--\\\\\\\\-o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\\\\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H\"]\n[3.241313, \"o\", \"| \\\\\\u001b[30G|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1\\\\\\\\0    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[16;24H\\\\\\n\\b\\b┌───┐\"]\n[3.261639, \"o\", \"\\u001b[H\\u001b[2Jx=-0.93 m\\u001b[1;63H← to nudge left\\r\\nẋ=0.60 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=0.38 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=-2.19 rad/s\\r\\nu=12.35\\u001b[8;18H┌───────┐\\u001b[9;18H|\\u001b[26G│\\u001b[10;18H\"]\n[3.261765, \"o\", \"|   M   │\\u001b[11;18H|   \\\\   │\\u001b[12;18H└o--\\\\\\\\-o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\\\\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H| \\\\\\u001b[30G\"]\n[3.26236, \"o\", \"|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1\\\\\\\\0    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[16;24H\\\\\\n\\b\\b┌───┐\"]\n[3.282543, \"o\", \"\\u001b[H\\u001b[2Jx=-0.91 m\\u001b[1;63H← to nudge left\\r\\nẋ=0.67 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=0.33 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=-2.26 rad/s\\r\\nu=12.32\\u001b[8;18H┌───────┐\\u001b[9;18H|\\u001b[26G│\\u001b[10;18H|   M   │\\u001b[11;18H\"]\n[3.282669, \"o\", \"|   \\\\   │\\u001b[12;18H└o---\\\\-o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\\\\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H| \\\\\\u001b[30G|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H\"]\n[3.283282, \"o\", \"|\\r\\n -2.00    -1.50     -1.\\\\0    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[16;24H\\\\\\n\\b\\\\\\\\\\b\\b\\b\"]\n[3.303447, \"o\", \"\\u001b[H\\u001b[2Jx=-0.90 m\\u001b[1;63H← to nudge left\\r\\nẋ=0.75 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=0.28 rad\\u001b[3;63H\"]\n[3.303592, \"o\", \"⮠ to restart\\r\\nȧ=-2.33 rad/s\\r\\nu=12.33\\u001b[8;18H┌───────┐\\u001b[9;18H|\\u001b[26G│\\u001b[10;18H|   M   │\\u001b[11;18H\"]\n[3.304035, \"o\", \"|    \\\\  │\\u001b[12;18H└o---\\\\-o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\\\\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H| \\\\\\\\     |\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.\\\\0    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[16;24H\\\\\\n\\b\\\\\\b\\b\"]\n[3.324527, \"o\", \"\\u001b[H\\u001b[2Jx=-0.88 m\\u001b[1;63H← to nudge left\\r\\nẋ=0.82 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=0.23 rad\\u001b[3;63H\"]\n[3.324905, \"o\", \"⮠ to restart\\r\\nȧ=-2.39 rad/s\\r\\nu=12.38\\u001b[8;19H┌───────┐\\u001b[9;19H|\\u001b[27G│\\u001b[10;19H|   M   │\\u001b[11;19H|   \\\\   │\\u001b[12;19H└o--\\\\--o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\\\\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H| \\\\\\\\     |\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.\\\\0    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[16;24H\\\\\\n\\b\"]\n[3.32524, \"o\", \"\\\\\\b\\b\"]\n[3.345732, \"o\", \"\\u001b[H\\u001b[2Jx=-0.86 m\\u001b[1;63H← to nudge left\\r\\nẋ=0.89 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=0.18 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=-2.45 rad/s\\r\\nu=12.48\\u001b[8;19H┌───────┐\\u001b[9;19H|\\u001b[27G│\\u001b[10;19H|   M   │\\u001b[11;19H|   \\\\   │\\u001b[12;19H└o--\\\\--o┘\\r\\n\"]\n[3.345855, \"o\", \"\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\\\\\\\\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|  \\\\     |\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.\\\\0    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[16;24H\\\\\\n\\b\"]\n[3.346199, \"o\", \"\\\\\\b\\b\"]\n[3.366413, \"o\", \"\\u001b[H\\u001b[2Jx=-0.84 m\\u001b[1;63H← to nudge left\\r\\nẋ=0.95 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=0.13 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=-2.50 rad/s\\r\\n\"]\n[3.366547, \"o\", \"u=12.62\\u001b[8;20H┌───────┐\\u001b[9;20H|\\u001b[28G│\\u001b[10;20H|   M   │\\u001b[11;20H|   \\\\   │\\u001b[12;20H└o--\\\\--o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\\\\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|  \\\\     |\\u001b[14;40H\"]\n[3.366822, \"o\", \"|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.\\\\0    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[16;24H\"]\n[3.367053, \"o\", \"\\\\\\n\\b\\\\\\b\\b\"]\n[3.387324, \"o\", \"\\u001b[H\\u001b[2Jx=-0.82 m\\u001b[1;63H← to nudge left\\r\\nẋ=1.01 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=0.07 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=-2.54 rad/s\\r\\nu=12.80\\u001b[8;20H┌───────┐\\u001b[9;20H|\\u001b[28G│\\u001b[10;20H|   M   │\\u001b[11;20H|   \\\\   │\\u001b[12;20H\"]\n[3.387451, \"o\", \"└o--\\\\--o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\\\\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|  \\\\     |\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.\\\\0    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[16;24H\"]\n[3.387764, \"o\", \"\\\\\\n\\b\\\\\\b\\b\"]\n[3.40825, \"o\", \"\\u001b[H\\u001b[2Jx=-0.80 m\\u001b[1;63H← to nudge left\\r\\nẋ=1.07 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=0.02 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=-2.58 rad/s\\r\\nu=13.03\\u001b[8;20H┌───────┐\\u001b[9;20H|\\u001b[28G│\\u001b[10;20H|   M   │\\u001b[11;20H|   \\\\   │\\u001b[12;20H\"]\n[3.408379, \"o\", \"└o--\\\\--o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\\\\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|  \\\\     |\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.\\\\0    -0.50     0.00     0.50\\u001b[59G\"]\n[3.408771, \"o\", \"1.00     1.50\\u001b[16;24H\\\\\\n\\b\\\\\\b\\b\\b\"]\n[3.429331, \"o\", \"\\u001b[H\\u001b[2Jx=-0.77 m\\u001b[1;63H← to nudge left\\r\\nẋ=1.12 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=-0.04 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=-2.61 rad/s\\r\\nu=13.30\\u001b[8;21H┌───────┐\\u001b[9;21H|\\u001b[29G│\\u001b[10;21H|   M   │\\u001b[11;21H|   /   │\\u001b[12;21H\"]\n[3.429462, \"o\", \"└o--/--o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B/\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|   /    |\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.0/    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[16;25H/\\n\\b\"]\n[3.430069, \"o\", \"/\\b\\b\\b\\b\"]\n[3.450142, \"o\", \"\\u001b[H\\u001b[2Jx=-0.75 m\\u001b[1;63H← to nudge left\\r\\nẋ=1.17 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=-0.09 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=-2.63 rad/s\\r\\nu=13.62\\u001b[8;21H┌───────┐\\u001b[9;21H|\\u001b[29G│\\u001b[10;21H|   M   │\\u001b[11;21H|   /   │\\u001b[12;21H\"]\n[3.450822, \"o\", \"└o--/--o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B/\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|   /    |\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n \"]\n[3.451061, \"o\", \"-2.00    -1.50     -1.0/    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[16;25H/\\n\\b/\\b\\b\\b\\b\"]\n[3.470995, \"o\", \"\\u001b[H\\u001b[2Jx=-0.72 m\\u001b[1;63H← to nudge left\\r\\nẋ=1.22 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=-0.15 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=-2.64 rad/s\\r\\nu=13.97\\u001b[8;22H┌───────┐\\u001b[9;22H|\\u001b[30G│\\u001b[10;22H|   M   │\\u001b[11;22H\"]\n[3.471138, \"o\", \"|   /   │\\u001b[12;22H└o-//--o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B/\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|   /    |\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H\"]\n[3.471591, \"o\", \"|\\r\\n -2.00    -1.50     -1.0/    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[16;25H/\\n\\b/\\b\\b\\b\\b\"]\n[3.491897, \"o\", \"\\u001b[H\\u001b[2Jx=-0.70 m\\u001b[1;63H← to nudge left\\r\\nẋ=1.26 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=-0.20 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=-2.65 rad/s\\r\\nu=14.36\\u001b[8;22H┌───────┐\\u001b[9;22H|\\u001b[30G│\\u001b[10;22H|   M   │\\u001b[11;22H|   /   │\\u001b[12;22H\"]\n[3.492037, \"o\", \"└o--/--o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B/\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|   //   |\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.0/    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[16;25H\"]\n[3.492439, \"o\", \"/\\n\\b/\\b\\b\\b\"]\n[3.512837, \"o\", \"\\u001b[H\\u001b[2Jx=-0.67 m\\u001b[1;63H← to nudge left\\r\\nẋ=1.29 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=-0.26 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=-2.64 rad/s\\r\\nu=14.79\\u001b[8;23H┌───────┐\\u001b[9;23H|\\u001b[31G│\\u001b[10;23H|   M   │\\u001b[11;23H|  //   │\\u001b[12;23H\"]\n[3.512982, \"o\", \"└o-/---o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B/\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|    /   |\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.0//   -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[16;25H\"]\n[3.513351, \"o\", \"/\\n\\b/\\b\\b\\b\"]\n[3.533651, \"o\", \"\\u001b[H\\u001b[2Jx=-0.64 m\\u001b[1;63H← to nudge left\\r\\nẋ=1.32 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=-0.31 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=-2.63 rad/s\\r\\nu=15.25\\u001b[8;23H┌───────┐\\u001b[9;23H|\\u001b[31G│\\u001b[10;23H|   M   │\\u001b[11;23H|   /   │\\u001b[12;23H\"]\n[3.534333, \"o\", \"└o--/--o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B//\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|    /   |\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00/   -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[16;25H\"]\n[3.53444, \"o\", \"//\\n\\b\\b/\\b\\b\\b\"]\n[3.554867, \"o\", \"\\u001b[H\\u001b[2Jx=-0.62 m\\u001b[1;63H← to nudge left\\r\\nẋ=1.36 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=-0.37 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=-2.62 rad/s\\r\\nu=15.75\\u001b[8;24H┌───────┐\\u001b[9;24H|\\u001b[32G│\\u001b[10;24H|   M   │\\u001b[11;24H|  //   │\\u001b[12;24H└o-/---o┘\\r\\n\"]\n[3.554995, \"o\", \"\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B/\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|    //  |\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00/   -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[16;26H\"]\n[3.555371, \"o\", \"/\\n\\b\\b\\b\\b┌───┐\"]\n[3.575654, \"o\", \"\\u001b[H\\u001b[2Jx=-0.59 m\\u001b[1;63H← to nudge left\\r\\nẋ=1.38 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=-0.42 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=-2.59 rad/s\\r\\n\"]\n[3.575777, \"o\", \"u=16.29\\u001b[8;24H┌───────┐\\u001b[9;24H|\\u001b[32G│\\u001b[10;24H|   M   │\\u001b[11;24H|   /   │\\u001b[12;24H└o-//--o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B/\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H\"]\n[3.576038, \"o\", \"|\\u001b[14;21H|     /  |\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H\"]\n[3.576293, \"o\", \"|\\r\\n -2.00    -1.50     -1.00//  -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[16;26H/\\n\\b\\b\\b\\b┌───┐\"]\n[3.596696, \"o\", \"\\u001b[H\\u001b[2Jx=-0.56 m\\u001b[1;63H← to nudge left\\r\\nẋ=1.41 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=-0.47 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=-2.56 rad/s\\r\\nu=16.85\\u001b[8;25H┌───────┐\\u001b[9;25H|\\u001b[33G│\\u001b[10;25H|   M   │\\u001b[11;25H|  //   │\\u001b[12;25H\"]\n[3.597045, \"o\", \"└o-/---o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B//\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|     /  |\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00//  -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[16;26H/\\n\\b\\b\\b\\b┌───┐\"]\n[3.617934, \"o\", \"\\u001b[H\\u001b[2Jx=-0.53 m\\u001b[1;63H← to nudge left\\r\\nẋ=1.43 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=-0.53 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=-2.52 rad/s\\r\\nu=17.46\\u001b[8;26H\"]\n[3.618056, \"o\", \"┌───────┐\\u001b[9;26H|\\u001b[34G│\\u001b[10;26H|   M   │\\u001b[11;26H|  /    │\\u001b[12;26H└o//---o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B/\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|     // |\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H\"]\n[3.618386, \"o\", \"|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00 /  -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[16;26H//\\n\\u001b[23G┌───┐\"]\n[3.638722, \"o\", \"\\u001b[H\\u001b[2Jx=-0.50 m\\u001b[1;63H← to nudge left\\r\\nẋ=1.46 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=-0.58 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=-2.48 rad/s\\r\\nu=18.09\\u001b[8;26H\"]\n[3.639089, \"o\", \"┌───────┐\\u001b[9;26H|\\u001b[34G│\\u001b[10;26H|   M   │\\u001b[11;26H|  //   │\\u001b[12;26H└o-/---o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B//\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\"]\n[3.639394, \"o\", \"\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|     // |\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00 /  -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[16;26H//\\n\\u001b[23G┌───┐\"]\n[3.659741, \"o\", \"\\u001b[H\\u001b[2Jx=-0.46 m\\u001b[1;63H← to nudge left\\r\\nẋ=1.48 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=-0.63 rad\\u001b[3;63H\"]\n[3.660128, \"o\", \"⮠ to restart\\r\\nȧ=-2.44 rad/s\\r\\nu=18.75\\u001b[8;27H┌───────┐\\u001b[9;27H|\\u001b[35G│\\u001b[10;27H|   M   │\\u001b[11;27H|  /    │\\u001b[12;27H└o//---o┘\\r\\n\"]\n[3.6604, \"o\", \"\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B/\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[28G/ |\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00 // -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[16;24H┌───┐\\n\\u001b[24G| m |\"]\n[3.680793, \"o\", \"\\u001b[H\\u001b[2Jx=-0.43 m\\u001b[1;63H← to nudge left\\r\\nẋ=1.51 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=-0.68 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=-2.39 rad/s\\r\\n\"]\n[3.681118, \"o\", \"u=19.43\\u001b[8;27H┌───────┐\\u001b[9;27H|\\u001b[35G│\\u001b[10;27H|   M   │\\u001b[11;27H|  //   │\\u001b[12;27H└o-/---o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B//\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H\"]\n[3.681368, \"o\", \"|\\u001b[14;21H|\\u001b[28G//|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00 // -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[16;24H┌───┐\\n\\u001b[24G| m |\"]\n[3.701643, \"o\", \"\\u001b[H\\u001b[2Jx=-0.40 m\\u001b[1;63H← to nudge left\\r\\nẋ=1.53 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=-0.73 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=-2.33 rad/s\\r\\nu=20.14\\u001b[8;28H┌───────┐\\u001b[9;28H|\\u001b[36G│\\u001b[10;28H\"]\n[3.701763, \"o\", \"|   M   │\\u001b[11;28H|  /    │\\u001b[12;28H└o//---o┘\\r\\n\"]\n[3.702086, \"o\", \"\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B//\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[28G//|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00 // -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[16;24H┌───┐\\n\\u001b[24G| m |\"]\n[3.722414, \"o\", \"\\u001b[H\\u001b[2Jx=-0.37 m\\u001b[1;63H← to nudge left\\r\\nẋ=1.56 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=-0.78 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=-2.27 rad/s\\r\\n\"]\n[3.722535, \"o\", \"u=20.87\\u001b[8;28H┌───────┐\\u001b[9;28H|\\u001b[36G│\\u001b[10;28H|   M   │\\u001b[11;28H|   /   │\\u001b[12;28H└o-/---o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B/\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[29G\"]\n[3.722643, \"o\", \"//\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00  / -0.50     0.00     0.50\\u001b[59G\"]\n[3.723063, \"o\", \"1.00     1.50\\u001b[16;25H┌───┐\\n\\u001b[25G| m |\"]\n[3.743305, \"o\", \"\\u001b[H\\u001b[2Jx=-0.34 m\\u001b[1;63H← to nudge left\\r\\nẋ=1.59 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=-0.82 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=-2.21 rad/s\\r\\nu=21.60\\u001b[8;29H┌───────┐\\u001b[9;29H|\\u001b[37G\"]\n[3.743694, \"o\", \"│\\u001b[10;29H|   M   │\\u001b[11;29H|  /    │\\u001b[12;29H└o//---o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B//\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[29G\"]\n[3.74382, \"o\", \"//\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.0┌───┐-0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[16;25H| m |\\n\\u001b[25G└───┘\"]\n[3.764527, \"o\", \"\\u001b[H\\u001b[2Jx=-0.30 m\\u001b[1;63H← to nudge left\\r\\nẋ=1.62 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=-0.87 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=-2.15 rad/s\\r\\nu=22.35\\u001b[8;30H┌───────┐\\u001b[9;30H\"]\n[3.764931, \"o\", \"|\\u001b[38G│\\u001b[10;30H|   M   │\\u001b[11;30H|  /    │\\u001b[12;30H└///---o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B//\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\"]\n[3.765214, \"o\", \"\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[29G//\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.0┌───┐-0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[16;25H| m |\\n\\u001b[25G└───┘\"]\n[3.785501, \"o\", \"\\u001b[H\\u001b[2Jx=-0.27 m\\u001b[1;63H← to nudge left\\r\\nẋ=1.66 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=-0.91 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=-2.08 rad/s\\r\\nu=23.12\\u001b[8;30H┌───────┐\\u001b[9;30H|\\u001b[38G\"]\n[3.785903, \"o\", \"│\\u001b[10;30H|   M   │\\u001b[11;30H|  //   │\\u001b[12;30H└o//---o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B//\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[29G///\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00┌───┐0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[16;26H| m |\\n\\u001b[26G└───┘\"]\n[3.806046, \"o\", \"\\u001b[H\\u001b[2Jx=-0.23 m\\u001b[1;63H← to nudge left\\r\\nẋ=1.70 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=-0.95 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=-2.01 rad/s\\r\\nu=23.89\\u001b[8;31H┌───────┐\\u001b[9;31H|\\u001b[39G│\\u001b[10;31H|   M   │\\u001b[11;31H|  /    │\\u001b[12;31H└///---o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B//\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|    ┌───┐/\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00| m |0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[16;26H└───┘\\n\\u001b[26G\"]\n[3.82632, \"o\", \"\\u001b[H\\u001b[2Jx=-0.20 m\\u001b[1;63H← to nudge left\\r\\nẋ=1.74 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=-0.99 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=-1.94 rad/s\\r\\nu=24.65\\u001b[8;32H┌───────┐\\u001b[9;32H|\\u001b[40G│\\u001b[10;32H|   M   │\\u001b[11;32H| //    │\\u001b[12;32H└//----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B///\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|     ┌───┐\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00 | m |.50     0.00     0.50\\u001b[59G\"]\n[3.826457, \"o\", \"1.00     1.50\\u001b[16;27H└───┘\\n\\u001b[27G\"]\n[3.846579, \"o\", \"\\u001b[H\\u001b[2Jx=-0.16 m\\u001b[1;63H← to nudge left\\r\\nẋ=1.79 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=-1.03 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=-1.87 rad/s\\r\\nu=25.38\\u001b[8;32H┌───────┐\\u001b[9;32H|\\u001b[40G│\\u001b[10;32H|   M   │\\u001b[11;32H|  //   │\\u001b[12;32H└///---o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B//\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|     ┌───┐\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00 | m |.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[16;27H└───┘\\n\\u001b[27G\"]\n[3.866949, \"o\", \"\\u001b[H\\u001b[2Jx=-0.12 m\\u001b[1;63H← to nudge left\\r\\nẋ=1.83 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=-1.07 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=-1.80 rad/s\\r\\nu=26.10\\u001b[8;33H┌───────┐\\u001b[9;33H|\\u001b[41G│\\u001b[10;33H|   M   │\\u001b[11;33H| ||    │\\u001b[12;33H└||----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B|||\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[28G┌───┐\\u001b[40G|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00  | m |50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[16;28H└───┘\\n\\u001b[28G\"]\n[3.887354, \"o\", \"\\u001b[H\\u001b[2Jx=-0.08 m\\u001b[1;63H← to nudge left\\r\\nẋ=1.89 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=-1.10 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=-1.73 rad/s\\r\\nu=26.81\\u001b[8;34H┌───────┐\\u001b[9;34H|\\u001b[42G│\\u001b[10;34H|   M   │\\u001b[11;34H| ||    │\\u001b[12;34H|||----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B┌───┐||\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[28G| m |\\u001b[40G|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H\"]\n[3.887419, \"o\", \"|\\r\\n -2.00    -1.50     -1.00  └───┘50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[16;28H\"]\n[3.907897, \"o\", \"\\u001b[H\\u001b[2Jx=-0.04 m\\u001b[1;63H← to nudge left\\r\\nẋ=1.95 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=-1.14 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=-1.65 rad/s\\r\\nu=27.50\\u001b[8;35H┌───────┐\\u001b[9;35H\"]\n[3.908357, \"o\", \"|\\u001b[43G│\\u001b[10;35H|   M   │\\u001b[11;35H||||    │\\u001b[12;34H|||-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B┌───┐|\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[29G| m |\\u001b[40G|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00   └───┘0     0.00     0.50\\u001b[59G1.00     1.50\\u001b[16;29H\"]\n[3.928528, \"o\", \"\\u001b[H\\u001b[2Jx=-0.00 m\\u001b[1;63H← to nudge left\\r\\nẋ=2.01 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=-1.17 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=-1.57 rad/s\\r\\nu=28.18\\u001b[8;35H┌───────┐\\u001b[9;35H|\\u001b[43G│\\u001b[10;35H|   M   │\\u001b[11;35H| |||   │\\u001b[12;35H|||----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B┌───┐|\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H| m |     |\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    └───┘     0.00     0.50\\u001b[59G1.00     1.50\\u001b[16;30H\"]\n[3.94912, \"o\", \"\\u001b[H\\u001b[2Jx=0.04 m\\u001b[1;63H← to nudge left\\r\\nẋ=2.07 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=-1.20 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=-1.49 rad/s\\r\\nu=28.84\\u001b[8;36H┌───────┐\\u001b[9;36H|\\u001b[44G│\\u001b[10;36H|   M   │\\u001b[11;36H| ||    │\\u001b[12;35H||||----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B┌───┐|\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H| m |     |\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    └───┘     0.00     0.50\\u001b[59G\"]\n[3.949195, \"o\", \"1.00     1.50\\u001b[16;30H\"]\n[3.969926, \"o\", \"\\u001b[H\\u001b[2Jx=0.08 m\\u001b[1;63H← to nudge left\\r\\nẋ=2.14 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=-1.23 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=-1.41 rad/s\\r\\nu=29.46\\u001b[8;37H┌───────┐\\u001b[9;37H|\\u001b[45G│\\u001b[10;37H|   M   │\\u001b[11;37H\"]\n[3.970363, \"o\", \"||||    │\\u001b[12;31H┌───┐|||-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B| m |\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|└───┘    |\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[15;31H\"]\n[3.990669, \"o\", \"\\u001b[H\\u001b[2Jx=0.13 m\\u001b[1;63H← to nudge left\\r\\nẋ=2.22 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=-1.26 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=-1.32 rad/s\\r\\nu=30.05\\u001b[8;38H┌───────┐\\u001b[9;38H|\\u001b[46G│\\u001b[10;38H|   M   │\\u001b[11;38H\"]\n[3.9911, \"o\", \"||||    │\\u001b[12;32H┌───┐|||-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B| m |\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H| └───┘   |\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[15;32H\"]\n[4.011606, \"o\", \"\\u001b[H\\u001b[2Jx=0.18 m\\u001b[1;63H← to nudge left\\r\\nẋ=2.30 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=-1.28 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=-1.24 rad/s\\r\\nu=30.62\\u001b[8;39H┌───────┐\\u001b[9;39H|\\u001b[47G│\\u001b[10;39H|   M   │\\u001b[11;39H||||    │\\u001b[12;33H┌───┐||o-----o┘\\r\\n\"]\n[4.012047, \"o\", \"\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B| m |\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|  └───┘  |\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[15;33H\"]\n[4.032453, \"o\", \"\\u001b[H\\u001b[2Jx=0.23 m\\u001b[1;63H← to nudge left\\r\\nẋ=2.38 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=-1.31 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=-1.15 rad/s\\r\\nu=31.15\\u001b[8;40H┌───────┐\\u001b[9;40H|\\u001b[48G│\\u001b[10;40H|   M   │\\u001b[11;40H||||    │\\u001b[12;34H┌───┐||o-----o┘\\r\\n\"]\n[4.032906, \"o\", \"\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B| m |\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|   └───┘ |\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[15;34H\"]\n[4.053175, \"o\", \"\\u001b[H\\u001b[2Jx=0.28 m\\u001b[1;63H← to nudge left\\r\\nẋ=2.46 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=-1.33 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=-1.07 rad/s\\r\\nu=31.64\\u001b[8;41H┌───────┐\\u001b[9;41H|\\u001b[49G│\\u001b[10;41H\"]\n[4.05358, \"o\", \"|   M   │\\u001b[11;41H||||    │\\u001b[12;35H┌───┐||o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B| m |\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|    └───┘|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[15;35H\"]\n[4.074156, \"o\", \"\\u001b[H\\u001b[2Jx=0.33 m\\u001b[1;63H← to nudge left\\r\\nẋ=2.55 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=-1.35 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=-0.98 rad/s\\r\\nu=32.10\\u001b[8;42H┌───────┐\\u001b[9;42H|\\u001b[50G│\\u001b[10;42H|   M   │\\u001b[11;36H┌───┐|||||    │\\u001b[12;36H\"]\n[4.074596, \"o\", \"| m ||└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B└───┘\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[14;36H\"]\n[4.094864, \"o\", \"\\u001b[H\\u001b[2Jx=0.39 m\\u001b[1;63H← to nudge left\\r\\nẋ=2.64 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=-1.37 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=-0.89 rad/s\\r\\nu=32.52\\u001b[8;43H┌───────┐\\u001b[9;43H|\\u001b[51G│\\u001b[10;43H|   M   │\\u001b[11;37H┌───┐|||||    │\\u001b[12;37H| m ||└o-----o┘\\r\\n\"]\n[4.095304, \"o\", \"\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B└───┘\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[14;37H\"]\n[4.115788, \"o\", \"\\u001b[H\\u001b[2Jx=0.44 m\\u001b[1;63H← to nudge left\\r\\nẋ=2.74 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=-1.38 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=-0.80 rad/s\\r\\nu=32.89\\u001b[8;44H┌───────┐\\u001b[9;44H|\\u001b[52G│\\u001b[10;44H|   M   │\\u001b[11;38H┌───┐|||||    │\\u001b[12;38H\"]\n[4.116208, \"o\", \"| m ||└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B└───┘\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[14;38H\"]\n[4.136509, \"o\", \"\\u001b[H\\u001b[2Jx=0.50 m\\u001b[1;63H← to nudge left\\r\\nẋ=2.83 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=-1.40 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=-0.71 rad/s\\r\\nu=33.22\\u001b[8;45H┌───────┐\\u001b[9;45H|\\u001b[53G│\\u001b[10;45H|   M   │\\u001b[11;39H┌───┐|||||    │\\u001b[12;39H\"]\n[4.136937, \"o\", \"| m | └o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B└───┘\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[14;39H\"]\n[4.157623, \"o\", \"\\u001b[H\\u001b[2Jx=0.57 m\\u001b[1;63H← to nudge left\\r\\nẋ=2.93 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=-1.41 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=-0.61 rad/s\\r\\nu=33.51\\u001b[8;46H┌───────┐\\u001b[9;46H|\\u001b[54G│\\u001b[10;46H|   M   │\\u001b[11;40H┌───┐|||||    │\\u001b[12;40H\"]\n[4.158018, \"o\", \"| m | └o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B└───┘\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[14;40H\"]\n[4.178669, \"o\", \"\\u001b[H\\u001b[2Jx=0.63 m\\u001b[1;63H← to nudge left\\r\\nẋ=3.03 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=-1.42 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=-0.52 rad/s\\r\\nu=33.77\\u001b[8;47H┌───────┐\\u001b[9;47H|\\u001b[55G│\\u001b[10;47H|   M   │\\u001b[11;41H┌───┐||||||   │\\u001b[12;41H\"]\n[4.179075, \"o\", \"| m | └o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B└───┘\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[14;41H\"]\n[4.199519, \"o\", \"\\u001b[H\\u001b[2Jx=0.69 m\\u001b[1;63H← to nudge left\\r\\nẋ=3.13 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=-1.43 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=-0.42 rad/s\\r\\nu=33.98\\u001b[8;49H┌───────┐\\u001b[9;49H|\\u001b[57G│\\u001b[10;49H|   M   │\\u001b[11;42H\"]\n[4.1999, \"o\", \"┌───┐||||||    │\\u001b[12;42H| m |  └o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B└───┘\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[14;42H\"]\n[4.220627, \"o\", \"\\u001b[H\\u001b[2Jx=0.76 m\\u001b[1;63H← to nudge left\\r\\nẋ=3.24 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=-1.44 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=-0.33 rad/s\\r\\nu=34.14\\u001b[8;50H┌───────┐\\u001b[9;50H|\\u001b[58G│\\u001b[10;50H|   M   │\\u001b[11;44H┌───┐|||||    │\\u001b[12;44H\"]\n[4.221006, \"o\", \"| m | └o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B└───┘\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[14;44H\"]\n[4.241622, \"o\", \"\\u001b[H\\u001b[2Jx=0.83 m\\u001b[1;63H← to nudge left\\r\\nẋ=3.34 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=-1.44 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=-0.23 rad/s\\r\\nu=34.27\\u001b[8;51H┌───────┐\\u001b[9;51H|\\u001b[59G│\\u001b[10;51H|   M   │\\u001b[11;45H┌───┐|||||    │\\u001b[12;45H\"]\n[4.241981, \"o\", \"| m | └o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B└───┘\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[14;45H\"]\n[4.262329, \"o\", \"\\u001b[H\\u001b[2Jx=0.90 m\\u001b[1;63H← to nudge left\\r\\nẋ=3.44 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=-1.45 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=-0.14 rad/s\\r\\nu=34.35\\u001b[8;53H\"]\n[4.262704, \"o\", \"┌───────┐\\u001b[9;53H|\\u001b[61G│\\u001b[10;53H|   M   │\\u001b[11;46H┌───┐||||||    │\\u001b[12;46H| m |  └o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B└───┘\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[14;46H\"]\n[4.283342, \"o\", \"\\u001b[H\\u001b[2Jx=0.98 m\\u001b[1;63H← to nudge left\\r\\nẋ=3.55 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=-1.45 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=-0.04 rad/s\\r\\nu=34.40\\u001b[8;54H┌───────┐\\u001b[9;54H\"]\n[4.284198, \"o\", \"|\\u001b[62G│\\u001b[10;54H|   M   │\\u001b[11;48H┌───┐|||||    │\\u001b[12;48H| m | └o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B└───┘\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[14;48H\"]\n[4.304389, \"o\", \"\\u001b[H\\u001b[2Jx=1.06 m\\u001b[1;63H← to nudge left\\r\\nẋ=3.65 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=-1.45 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=0.05 rad/s\\r\\nu=34.40\\u001b[8;56H┌───────┐\\u001b[9;56H|\\u001b[64G│\\u001b[10;56H|   M   │\\u001b[11;49H┌───┐||||||    │\\u001b[12;49H\"]\n[4.304807, \"o\", \"| m |  └o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B└───┘\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[14;49H\"]\n[4.325336, \"o\", \"\\u001b[H\\u001b[2Jx=1.13 m\\u001b[1;63H← to nudge left\\r\\nẋ=3.51 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=-1.44 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=0.16 rad/s\\r\\nu=-34.36\\u001b[8;57H┌───────┐\\u001b[9;57H|\\u001b[65G│\\u001b[10;57H|   M   │\\u001b[11;51H\"]\n[4.325795, \"o\", \"┌───┐|||||    │\\u001b[12;51H| m | └o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B└───┘\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[14;51H\"]\n[4.346239, \"o\", \"\\u001b[H\\u001b[2Jx=1.20 m\\u001b[1;63H← to nudge left\\r\\nẋ=3.38 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=-1.44 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=0.27 rad/s\\r\\nu=-34.27\\u001b[8;58H┌───────┐\\u001b[9;58H|\\u001b[66G│\\u001b[10;58H|   M   │\\u001b[11;52H\"]\n[4.346682, \"o\", \"┌───┐|||||    │\\u001b[12;52H| m | └o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B└───┘\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[14;52H\"]\n[4.367495, \"o\", \"\\u001b[H\\u001b[2Jx=1.27 m\\u001b[1;63H← to nudge left\\r\\nẋ=3.24 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=-1.43 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=0.38 rad/s\\r\\nu=-34.15\\u001b[8;60H┌───────┐\\u001b[9;60H|\\u001b[68G│\\u001b[10;60H\"]\n[4.367869, \"o\", \"|   M   │\\u001b[11;53H┌───┐||||||    │\\u001b[12;53H| m |  └o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B└───┘\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[14;53H\"]\n[4.388291, \"o\", \"\\u001b[H\\u001b[2Jx=1.33 m\\u001b[1;63H← to nudge left\\r\\nẋ=3.10 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=-1.42 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=0.50 rad/s\\r\\nu=-33.98\\u001b[8;61H┌───────┐\\u001b[9;61H|\\u001b[69G│\\u001b[10;61H|   M   │\\u001b[11;54H┌───┐||||||    │\\u001b[12;54H\"]\n[4.388736, \"o\", \"| m |  └o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B└───┘\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[14;54H\"]\n[4.409221, \"o\", \"\\u001b[H\\u001b[2Jx=1.40 m\\u001b[1;63H← to nudge left\\r\\nẋ=2.97 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=-1.41 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=0.61 rad/s\\r\\nu=-33.77\\u001b[8;62H┌───────┐\\u001b[9;62H|\\u001b[70G│\\u001b[10;62H|   M   │\\u001b[11;56H┌───┐|||||    │\\u001b[12;56H\"]\n[4.409615, \"o\", \"| m | └o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B└───┘\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[14;56H\"]\n[4.42995, \"o\", \"\\u001b[H\\u001b[2Jx=1.45 m\\u001b[1;63H← to nudge left\\r\\nẋ=2.83 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=-1.39 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=0.72 rad/s\\r\\nu=-33.53\\u001b[8;63H┌───────┐\\u001b[9;63H|\\u001b[71G│\\u001b[10;63H|   M   │\\u001b[11;57H\"]\n[4.430389, \"o\", \"┌───┐|||||    │\\u001b[12;57H| m ||└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B└───┘\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[14;57H\"]\n[4.451123, \"o\", \"\\u001b[H\\u001b[2Jx=1.51 m\\u001b[1;63H← to nudge left\\r\\nẋ=2.70 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=-1.37 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=0.83 rad/s\\r\\nu=-33.25\\u001b[8;64H┌───────┐\\u001b[9;64H|\\u001b[72G│\\u001b[10;64H|   M   │\\u001b[11;58H\"]\n[4.451563, \"o\", \"┌───┐|||||    │\\u001b[12;58H| m ||└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B└───┘\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[14;58H\"]\n[4.472056, \"o\", \"\\u001b[H\\u001b[2Jx=1.56 m\\u001b[1;63H← to nudge left\\r\\nẋ=2.56 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=-1.35 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=0.95 rad/s\\r\\nu=-32.92\\u001b[8;65H┌───────┐\\u001b[9;65H|\\u001b[73G│\\u001b[10;65H|   M   │\\u001b[11;59H┌───┐ ||||    │\\u001b[12;59H\"]\n[4.472502, \"o\", \"| m |||o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B└───┘\\u001b(0\\u001b[0mqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[14;59H\"]\n[4.493067, \"o\", \"\\u001b[H\\u001b[2Jx=1.62 m\\u001b[1;63H← to nudge left\\r\\nẋ=2.42 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=-1.33 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=1.06 rad/s\\r\\nu=-32.57\\u001b[8;66H┌───────┐\\u001b[9;66H|\\u001b[74G│\\u001b[10;66H|   M   │\\u001b[11;66H||||    │\\u001b[12;60H\"]\n[4.493468, \"o\", \"┌───┐||o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B| m |\\u001b(0\\u001b[0mqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|└───┘   |\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[15;60H\"]\n[4.514045, \"o\", \"\\u001b[H\\u001b[2Jx=1.66 m\\u001b[1;63H← to nudge left\\r\\nẋ=2.28 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=-1.31 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=1.18 rad/s\\r\\nu=-32.18\\u001b[8;67H┌───────┐\\u001b[9;67H|\\u001b[75G│\\u001b[10;67H|   M   │\\u001b[11;67H||||    │\\u001b[12;61H\"]\n[4.514538, \"o\", \"┌───┐||o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B| m |\\u001b(0\\u001b[0mqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H| └───┘  |\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[15;61H\"]\n[4.534773, \"o\", \"\\u001b[H\\u001b[2Jx=1.71 m\\u001b[1;63H← to nudge left\\r\\nẋ=2.15 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=-1.28 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=1.29 rad/s\\r\\nu=-31.76\\u001b[8;68H┌───────┐\\u001b[9;68H|\\u001b[76G│\\u001b[10;68H|   M   │\\u001b[11;68H\"]\n[4.535161, \"o\", \"||||    │\\u001b[12;62H┌───┐|||-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B| m |\\u001b(0\\u001b[0mqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|  └───┘ |\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[15;62H\"]\n[4.555701, \"o\", \"\\u001b[H\\u001b[2Jx=1.75 m\\u001b[1;63H← to nudge left\\r\\nẋ=2.01 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=-1.25 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=1.41 rad/s\\r\\nu=-31.32\\u001b[8;69H┌───────┐\\u001b[9;69H|\\u001b[77G│\\u001b[10;69H|   M   │\\u001b[11;69H||||    │\\u001b[12;63H\"]\n[4.556152, \"o\", \"┌───┐|||-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B| m |\\u001b(0\\u001b[0mqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|   └───┘|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[15;63H\"]\n[4.576401, \"o\", \"\\u001b[H\\u001b[2Jx=1.79 m\\u001b[1;63H← to nudge left\\r\\nẋ=1.87 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=-1.22 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=1.53 rad/s\\r\\nu=-30.86\\u001b[8;69H┌───────┐\\u001b[9;69H|\\u001b[77G│\\u001b[10;69H|   M   │\\u001b[11;69H| |||   │\\u001b[12;64H\"]\n[4.576802, \"o\", \"┌───┐|||----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B| m |\\u001b(0\\u001b[0mqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|    └───┘\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[15;64H\"]\n[4.597379, \"o\", \"\\u001b[H\\u001b[2Jx=1.83 m\\u001b[1;63H← to nudge left\\r\\nẋ=1.73 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=-1.18 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=1.65 rad/s\\r\\nu=-30.38\\u001b[8;70H┌───────┐\\u001b[9;70H|\\u001b[78G│\\u001b[10;70H|   M   │\\u001b[11;70H| ||    │\\u001b[12;69H||||----o┘\\u001b[13;1H\"]\n[4.597839, \"o\", \"\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B┌───┐|\\u001b(0\\u001b[0mqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|    | m |\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00 └───┘.50\\u001b[16;64H\"]\n[4.618047, \"o\", \"\\u001b[H\\u001b[2Jx=1.86 m\\u001b[1;63H← to nudge left\\r\\nẋ=1.59 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=-1.15 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=1.77 rad/s\\r\\nu=-29.88\\u001b[8;71H┌───────\\u001b[9;1H\"]\n[4.618506, \"o\", \"┐\\u001b[71G|\\r\\n│\\u001b[71G|   M\\r\\n│\\u001b[71G| ||\\r\\n│\\u001b[12;70H||||----o\\u001b[13;1H┘\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B┌───┐|\\u001b(0\\u001b[0mqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|     | m |\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00  └───┘50\\u001b[16;65H\"]\n[4.638825, \"o\", \"\\u001b[H\\u001b[2Jx=1.89 m\\u001b[1;63H← to nudge left\\r\\nẋ=1.44 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=-1.11 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=1.89 rad/s\\r\\nu=-29.39\\u001b[8;71H┌───────\\u001b[9;1H\"]\n[4.63922, \"o\", \"┐\\u001b[71G|\\r\\n│\\u001b[71G|   M\\r\\n│\\u001b[71G| |||\\r\\n│\\u001b[71G|||----o\\u001b[13;1H┘\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B┌───┐|\\u001b(0\\u001b[0mqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[66G| m |\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00   └───┘0\\n\\u001b[66G\"]\n[4.659978, \"o\", \"\\u001b[H\\u001b[2Jx=1.92 m\\u001b[1;63H← to nudge left\\r\\nẋ=1.29 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=-1.07 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=2.02 rad/s\\r\\nu=-28.89\\u001b[8;72H┌──────\\u001b[9;1H─┐\\u001b[72G|\\r\\n \"]\n[4.66041, \"o\", \"│\\u001b[72G|   M\\r\\n │\\u001b[72G| ||\\r\\n │\\u001b[72G|||----\\u001b[13;1Ho┘\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B||\\u001b(0\\u001b[0mqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[66G┌───┐\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00   | m |0\\n\\u001b[66G└───┘\\n\\u001b[66G\"]\n[4.681029, \"o\", \"\\u001b[H\\u001b[2Jx=1.94 m\\u001b[1;63H← to nudge left\\r\\nẋ=1.14 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=-1.02 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=2.15 rad/s\\r\\nu=-28.39\\u001b[8;72H┌──────\\u001b[9;1H\"]\n[4.681473, \"o\", \"─┐\\u001b[72G|\\r\\n │\\u001b[72G|   M\\r\\n │\\u001b[72G|  //\\r\\n │\\u001b[72G└///---\\u001b[13;1Ho┘\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B///\\u001b(0\\u001b[0mqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[67G┌───┐\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00    | m |\\n\\u001b[67G└───┘\\n\\u001b[67G\"]\n[4.702088, \"o\", \"\\u001b[H\\u001b[2Jx=1.96 m\\u001b[1;63H← to nudge left\\r\\nẋ=0.99 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=-0.97 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=2.27 rad/s\\r\\nu=-27.92\\u001b[8;73H┌─────\\u001b[9;1H\"]\n[4.702565, \"o\", \"──┐\\u001b[73G|\\r\\n  │\\u001b[73G|   M\\r\\n  │\\u001b[73G| //\\r\\n  │\\u001b[73G└//---\\u001b[13;1H-o┘\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B///\\u001b(0\\u001b[0mqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H┌───┐\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     | m |\\n\\u001b[68G└───┘\\n\\u001b[68G\"]\n[4.723182, \"o\", \"\\u001b[H\\u001b[2Jx=1.98 m\\u001b[1;63H← to nudge left\\r\\nẋ=0.84 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=-0.92 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=2.40 rad/s\\r\\nu=-27.47\\u001b[8;73H┌─────\\u001b[9;1H──┐\\u001b[73G\"]\n[4.723618, \"o\", \"|\\r\\n  │\\u001b[73G|   M\\r\\n  │\\u001b[73G|  /\\r\\n  │\\u001b[73G└o//--\\u001b[13;1H-o┘\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B//\\u001b(0\\u001b[0mqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|   //\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     ┌───┐\\n\\u001b[68G| m |\\n\\u001b[68G└───┘\"]\n[4.744447, \"o\", \"\\u001b[H\\u001b[2Jx=1.99 m\\u001b[1;63H← to nudge left\\r\\nẋ=0.68 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=-0.87 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=2.53 rad/s\\r\\nu=-27.06\\u001b[8;73H┌─────\\u001b[9;1H──┐\\u001b[73G|\\r\\n  │\\u001b[73G\"]\n[4.744868, \"o\", \"|   M\\r\\n  │\\u001b[73G|  //\\r\\n  │\\u001b[73G└o//--\\u001b[13;1H-o┘\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B//\\u001b(0\\u001b[0mqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|    //\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1┌───┐\\n\\u001b[69G| m |\\n\\u001b[69G└───┘\"]\n[4.765616, \"o\", \"\\u001b[H\\u001b[2Jx=2.00 m\\u001b[1;63H← to nudge left\\r\\nẋ=0.52 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=-0.81 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=2.66 rad/s\\r\\nu=-26.71\\u001b[8;74H┌────\\u001b[9;1H───┐\\u001b[74G|\\r\\n   \"]\n[4.766037, \"o\", \"│\\u001b[74G|   M\\u001b[11;4H│\\u001b[74G|  /\\r\\n   │\\u001b[74G└//--\\u001b[13;1H--o┘\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B//\\u001b(0\\u001b[0mqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|    //\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1┌───┐\\n\\u001b[69G| m |\\n\\u001b[69G└───┘\"]\n[4.78686, \"o\", \"\\u001b[H\\u001b[2Jx=2.01 m\\u001b[1;63H← to nudge left\\r\\nẋ=0.36 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=-0.75 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=2.80 rad/s\\r\\nu=-26.42\\u001b[8;74H┌────\\u001b[9;1H───┐\\u001b[74G\"]\n[4.787263, \"o\", \"|\\r\\n   │\\u001b[74G|   M\\u001b[11;4H│\\u001b[74G|  /\\r\\n   │\\u001b[74G└o//-\\u001b[13;1H--o┘\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B//\\u001b(0\\u001b[0mqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|     //\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50 //\\n\\u001b[70G┌───┐\\n\\u001b[70G| m |\"]\n[4.807496, \"o\", \"\\u001b[H\\u001b[2Jx=2.02 m\\u001b[1;63H← to nudge left\\r\\nẋ=0.20 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=-0.69 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=2.92 rad/s\\r\\nu=-26.21\\u001b[8;74H┌────\\u001b[9;1H───┐\\u001b[74G|\\r\\n   │\\u001b[74G|   M\\u001b[11;4H│\\u001b[74G|  /\\r\\n   │\\u001b[74G└o//-\\u001b[13;1H--o┘\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B//\\u001b(0\\u001b[0mqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|     //\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50  /\\n\\u001b[70G\"]\n[4.80755, \"o\", \"┌───┐\\n\\u001b[70G| m |\"]\n[4.827746, \"o\", \"\\u001b[H\\u001b[2Jx=2.02 m\\u001b[1;63H← to nudge left\\r\\nẋ=0.04 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=-0.63 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=3.05 rad/s\\r\\nu=-26.10\\u001b[8;74H┌────\\u001b[9;1H───┐\\u001b[74G|\\r\\n   │\\u001b[74G|   M\\u001b[11;4H│\\u001b[74G|  /\\r\\n   │\\u001b[74G└o//-\\u001b[13;1H--o┘\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B/\\u001b(0\\u001b[0mqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H\"]\n[4.827899, \"o\", \"|\\u001b[14;59H|\\u001b[14;68H|\\u001b[75G//\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50  //\\n\\u001b[71G┌───┐\\n\\u001b[71G| m |\"]\n[4.848371, \"o\", \"\\u001b[H\\u001b[2Jx=2.01 m\\u001b[1;63H← to nudge left\\r\\nẋ=-0.12 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=-0.56 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=3.17 rad/s\\r\\nu=-26.09\\u001b[8;74H┌────\\u001b[9;1H───┐\\u001b[74G|\\r\\n   │\\u001b[74G|   M\\u001b[11;4H│\\u001b[74G|  /\\r\\n   │\\u001b[74G└o-/-\\u001b[13;1H--o┘\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B/\\u001b(0\\u001b[0mqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\u001b[75G//\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50   /\\n\\b\\b//\\n\\u001b[71G┌───┐\"]\n[4.86884, \"o\", \"\\u001b[H\\u001b[2Jx=2.01 m\\u001b[1;63H← to nudge left\\r\\nẋ=-0.28 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=-0.50 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=3.29 rad/s\\r\\nu=-26.20\\u001b[8;74H┌────\\u001b[9;1H───┐\\u001b[74G|\\r\\n   │\\u001b[74G|   M\\u001b[11;4H│\\u001b[74G|  /\\r\\n   │\\u001b[74G└o-/-\\u001b[13;1H--o┘\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B//\\u001b(0\\u001b[0mq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\u001b[76G/\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50   /\\n\\b\\b\"]\n[4.868883, \"o\", \"//\\n\\b\\b\\b\\b┌───┐\"]\n[4.889478, \"o\", \"\\u001b[H\\u001b[2Jx=2.00 m\\u001b[1;63H← to nudge left\\r\\nẋ=-0.44 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=-0.43 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=3.41 rad/s\\r\\nu=-26.43\\u001b[8;73H┌─────\\u001b[9;1H──┐\\u001b[73G|\\r\\n  │\\u001b[73G|   M\\r\\n  │\\u001b[73G|   /\\r\\n  │\\u001b[73G└o--/-\\u001b[13;1H-o┘\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B//\\u001b(0\\u001b[0mq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H\"]\n[4.88971, \"o\", \"|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\u001b[76G/\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50   //\\n\\b\\b/\\n\\b\\b\\b\\b┌───┐\"]\n[4.909957, \"o\", \"\\u001b[H\\u001b[2Jx=1.99 m\\u001b[1;63H← to nudge left\\r\\nẋ=-0.60 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=-0.35 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=3.52 rad/s\\r\\nu=-26.79\\u001b[8;73H┌─────\\u001b[9;1H──┐\\u001b[73G|\\r\\n  │\\u001b[73G|   M\\r\\n  │\\u001b[73G\"]\n[4.910245, \"o\", \"|   /\\r\\n  │\\u001b[73G└o--/-\\u001b[13;1H-o┘\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B/\\u001b(0\\u001b[0mqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\u001b[76G/\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50   //\\n\\b\\b/\\n\\b\\b\\b\\b┌───┐\"]\n[4.930651, \"o\", \"\\u001b[H\\u001b[2Jx=1.97 m\\u001b[1;63H← to nudge left\\r\\nẋ=-0.75 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=-0.28 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=3.63 rad/s\\r\\nu=-27.28\\u001b[8;73H┌─────\\u001b[9;1H\"]\n[4.931099, \"o\", \"──┐\\u001b[73G|\\r\\n  │\\u001b[73G|   M\\r\\n  │\\u001b[73G|   /\\r\\n  │\\u001b[73G└o-//-\\u001b[13;1H-o┘\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B/\\u001b(0\\u001b[0mqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\u001b[76G/\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50    /\\n\\b\\b\"]\n[4.93121, \"o\", \"//\\n\\b\\b/\\b\\b\\b\"]\n[4.951632, \"o\", \"\\u001b[H\\u001b[2Jx=1.95 m\\u001b[1;63H← to nudge left\\r\\nẋ=-0.90 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=-0.20 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=3.73 rad/s\\r\\nu=-27.91\\u001b[8;73H┌─────\\u001b[9;1H\"]\n[4.952042, \"o\", \"──┐\\u001b[73G|\\r\\n  │\\u001b[73G|   M\\r\\n  │\\u001b[73G|  /\\r\\n  │\\u001b[73G└o-/--\\u001b[13;1H-o┘\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B/\\u001b(0\\u001b[0mqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\u001b[76G/\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50    /\\n\\b\\b//\\n\\b\\b/\\b\\b\\b\"]\n[4.972785, \"o\", \"\\u001b[H\\u001b[2Jx=1.93 m\\u001b[1;63H← to nudge left\\r\\nẋ=-1.05 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=-0.12 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=3.83 rad/s\\r\\nu=-28.68\\u001b[8;72H┌──────\\u001b[9;1H─┐\\u001b[72G\"]\n[4.973267, \"o\", \"|\\r\\n │\\u001b[72G|   M\\r\\n │\\u001b[72G|   /\\r\\n │\\u001b[72G└o--/--\\u001b[13;1Ho┘\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B/\\u001b(0\\u001b[0mqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\u001b[76G/\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50    /\\n\\b\\b//\\n\\b\\b/\\b\\b\\b\"]\n[4.994008, \"o\", \"\\u001b[H\\u001b[2Jx=1.90 m\\u001b[1;63H← to nudge left\\r\\nẋ=-1.19 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=-0.04 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=3.91 rad/s\\r\\nu=-29.58\\u001b[8;72H┌──────\\u001b[9;1H\"]\n[4.994485, \"o\", \"─┐\\u001b[72G|\\r\\n │\\u001b[72G|   M\\r\\n │\\u001b[72G|   /\\r\\n │\\u001b[72G└o--/--\\u001b[13;1Ho┘\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B/\\u001b(0\\u001b[0mqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\u001b[76G/\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50    /\\n\\b\\b//\\n\\b\\b/\\b\\b\\b\"]\n[5.014985, \"o\", \"\\u001b[H\\u001b[2Jx=1.88 m\\u001b[1;63H← to nudge left\\r\\nẋ=-1.32 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=0.05 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=3.98 rad/s\\r\\nu=-30.60\\u001b[8;71H┌───────\\u001b[9;1H┐\\u001b[71G|\\r\\n\"]\n[5.015482, \"o\", \"│\\u001b[71G|   M\\r\\n│\\u001b[71G|   \\\\\\r\\n│\\u001b[71G└o--\\\\--o\\u001b[13;1H┘\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\\\\\u001b(0\\u001b[0mqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\u001b[75G\\\\\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50   \\\\\\n\\b\\\\\\n\\b\\\\\\b\\b\"]\n[5.036131, \"o\", \"\\u001b[H\\u001b[2Jx=1.85 m\\u001b[1;63H← to nudge left\\r\\nẋ=-1.44 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=0.13 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=4.03 rad/s\\r\\nu=-31.70\\u001b[8;71H┌───────\\u001b[9;1H\"]\n[5.036557, \"o\", \"┐\\u001b[71G|\\r\\n│\\u001b[71G|   M\\r\\n│\\u001b[71G|   \\\\\\r\\n│\\u001b[71G└o--\\\\--o\\u001b[13;1H┘\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\\\\\u001b(0\\u001b[0mqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\u001b[75G\\\\\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50   \\\\\\n\\b\\\\\\n\\b\\\\\\\\\\b\\b\\b\"]\n[5.05729, \"o\", \"\\u001b[H\\u001b[2Jx=1.81 m\\u001b[1;63H← to nudge left\\r\\nẋ=-1.55 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=0.22 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=4.07 rad/s\\r\\nu=-32.88\\u001b[8;70H┌───────┐\\u001b[9;70H|\\u001b[78G│\\u001b[10;70H|   M   │\\u001b[11;70H|   \\\\   │\\u001b[12;70H\"]\n[5.057718, \"o\", \"└o--\\\\--o┘\\u001b[13;1H\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\\\\\\\\\u001b(0\\u001b[0mqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\u001b[75G\\\\\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50   \\\\\\n\\b\\\\\\n\\b\\\\\\\\\\b\\b\\b\"]\n[5.078437, \"o\", \"\\u001b[H\\u001b[2Jx=1.78 m\\u001b[1;63H← to nudge left\\r\\nẋ=-1.65 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=0.30 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=4.10 rad/s\\r\\nu=-34.12\\u001b[8;69H┌───────┐\\u001b[9;69H|\\u001b[77G│\\u001b[10;69H|   M   │\\u001b[11;69H|    \\\\  │\\u001b[12;69H\"]\n[5.07881, \"o\", \"└o---\\\\-o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\\\\\u001b(0\\u001b[0mqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|     \\\\\\\\\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50   \\\\\\n\\b\\\\\\n\\b\\\\\\b\\b\"]\n[5.099382, \"o\", \"\\u001b[H\\u001b[2Jx=1.74 m\\u001b[1;63H← to nudge left\\r\\nẋ=-1.74 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=0.39 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=4.11 rad/s\\r\\nu=-35.41\\u001b[8;69H┌───────┐\\u001b[9;69H\"]\n[5.099782, \"o\", \"|\\u001b[77G│\\u001b[10;69H|   M   │\\u001b[11;69H|   \\\\   │\\u001b[12;69H└o--\\\\--o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\\\\\\\\\u001b(0\\u001b[0mqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|     \\\\\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50  \\\\\\\\\\n\\b\\\\\\n\\b\\b┌───\\u001b[?7l┐\\u001b[?7h\"]\n[5.120263, \"o\", \"\\u001b[H\\u001b[2Jx=1.70 m\\u001b[1;63H← to nudge left\\r\\nẋ=-1.81 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=0.48 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=4.11 rad/s\\r\\nu=-36.73\\u001b[8;68H┌───────┐\\u001b[9;68H|\\u001b[76G│\\u001b[10;68H|   M   │\\u001b[11;68H|   \\\\   │\\u001b[12;68H\"]\n[5.120646, \"o\", \"└o--\\\\\\\\-o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\\\\\u001b(0\\u001b[0mqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|    \\\\\\\\\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50  \\\\\\n\\b\\\\\\\\\\n\\b\\b┌───\\u001b[?7l┐\\u001b[?7h\"]\n[5.141159, \"o\", \"\\u001b[H\\u001b[2Jx=1.67 m\\u001b[1;63H← to nudge left\\r\\nẋ=-1.88 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=0.56 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=4.09 rad/s\\r\\nu=-38.07\\u001b[8;67H┌───────┐\\u001b[9;67H|\\u001b[75G│\\u001b[10;67H|   M   │\\u001b[11;67H|    \\\\  │\\u001b[12;67H\"]\n[5.141546, \"o\", \"└o---\\\\-o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\\\\\\\\\u001b(0\\u001b[0mqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|    \\\\\\\\\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50  \\\\\\n\\b\\\\\\\\\\n\\b\\b┌───\\u001b[?7l┐\\u001b[?7h\"]\n[5.162083, \"o\", \"\\u001b[H\\u001b[2Jx=1.62 m\\u001b[1;63H← to nudge left\\r\\nẋ=-1.94 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=0.65 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=4.06 rad/s\\r\\nu=-39.46\\u001b[8;66H┌───────┐\\u001b[9;66H|\\u001b[74G│\\u001b[10;66H|   M   │\\u001b[11;66H|    \\\\  │\\u001b[12;66H└o---\\\\\\\\o┘\\r\\n\"]\n[5.162483, \"o\", \"\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\\\\\\\\\u001b(0\\u001b[0mqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|    \\\\\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50 \\\\\\\\\\n\\b\\b┌───┐\\n\\u001b[73G| m |\"]\n[5.182924, \"o\", \"\\u001b[H\\u001b[2Jx=1.58 m\\u001b[1;63H← to nudge left\\r\\nẋ=-2.00 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=0.73 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=4.02 rad/s\\r\\nu=-40.88\\u001b[8;66H┌───────┐\\u001b[9;66H|\\u001b[74G│\\u001b[10;66H|   M   │\\u001b[11;66H|   \\\\   │\\u001b[12;66H└o--\\\\\\\\-o┘\\r\\n\"]\n[5.183394, \"o\", \"\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\\\\\\\\\u001b(0\\u001b[0mqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|   \\\\\\\\\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50 \\\\\\\\\\n\\b\\b┌───┐\\n\\u001b[73G| m |\"]\n[5.203948, \"o\", \"\\u001b[H\\u001b[2Jx=1.54 m\\u001b[1;63H← to nudge left\\r\\nẋ=-2.05 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=0.81 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=3.97 rad/s\\r\\nu=-42.33\\u001b[8;65H┌───────┐\\u001b[9;65H|\\u001b[73G│\\u001b[10;65H|   M   │\\u001b[11;65H|   \\\\\\\\  │\\u001b[12;65H\"]\n[5.204385, \"o\", \"└o---\\\\\\\\o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\\\\\\\\\u001b(0\\u001b[0mqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|   \\\\\\\\\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50 ┌───┐\\n\\u001b[73G| m |\\n\\u001b[73G└───┘\"]\n[5.22499, \"o\", \"\\u001b[H\\u001b[2Jx=1.50 m\\u001b[1;63H← to nudge left\\r\\nẋ=-2.10 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=0.90 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=3.92 rad/s\\r\\nu=-43.83\\u001b[8;64H┌───────┐\\u001b[9;64H|\\u001b[72G│\\u001b[10;64H|   M   │\\u001b[11;64H|    \\\\  │\\u001b[12;64H\"]\n[5.22539, \"o\", \"└o---\\\\\\\\o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\\\\\\\\\\\\\u001b(0\\u001b[0mqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|   \\\\\\\\\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50 ┌───┐\\n\\u001b[73G| m |\\n\\u001b[73G└───┘\"]\n[5.246093, \"o\", \"\\u001b[H\\u001b[2Jx=1.45 m\\u001b[1;63H← to nudge left\\r\\nẋ=-2.16 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=0.98 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=3.85 rad/s\\r\\nu=-45.38\\u001b[8;63H┌───────┐\\u001b[9;63H|\\u001b[71G│\\u001b[10;63H|   M   │\\u001b[11;63H|    \\\\\\\\ │\\u001b[12;63H\"]\n[5.246546, \"o\", \"└o----\\\\\\\\┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\\\\\\\\\u001b(0\\u001b[0mqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|   ┌───┐\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50| m |\\n\\u001b[72G└───┘\\n\\u001b[72G\"]\n[5.267568, \"o\", \"\\u001b[H\\u001b[2Jx=1.40 m\\u001b[1;63H← to nudge left\\r\\nẋ=-2.22 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=1.06 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=3.78 rad/s\\r\\nu=-46.95\\u001b[8;62H┌───────┐\\u001b[9;62H|\\u001b[70G│\\u001b[10;62H|   M   │\\u001b[11;62H\"]\n[5.267964, \"o\", \"|    || │\\u001b[12;62H└o----|||\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B||\\u001b(0\\u001b[0mqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|  |┌───┐\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50| m |\\n\\u001b[72G└───┘\\n\\u001b[72G\"]\n[5.288717, \"o\", \"\\u001b[H\\u001b[2Jx=1.35 m\\u001b[1;63H← to nudge left\\r\\nẋ=-2.28 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=1.14 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=3.71 rad/s\\r\\nu=-48.56\\u001b[8;61H┌───────┐\\u001b[9;61H|\\u001b[69G│\\u001b[10;61H|   M   │\\u001b[11;61H|    || │\\u001b[12;61H\"]\n[5.289158, \"o\", \"└o----|||\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B|┌───┐\\u001b(0\\u001b[0mqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|  | m |\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.5└───┘\\n\\u001b[71G\"]\n[5.309457, \"o\", \"\\u001b[H\\u001b[2Jx=1.31 m\\u001b[1;63H← to nudge left\\r\\nẋ=-2.35 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=1.21 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=3.63 rad/s\\r\\nu=-50.20\\u001b[8;60H┌───────┐\\u001b[9;60H\"]\n[5.309941, \"o\", \"|\\u001b[68G│\\u001b[10;60H|   M   │\\u001b[11;60H|    |||│\\u001b[12;60H└o-----|||┌───┐\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B| m |\\u001b(0\\u001b[0mqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H| └───┘\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\b\\b\"]\n[5.330333, \"o\", \"\\u001b[H\\u001b[2Jx=1.26 m\\u001b[1;63H← to nudge left\\r\\nẋ=-2.42 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=1.29 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=3.55 rad/s\\r\\nu=-51.78\\u001b[8;59H┌───────┐\\u001b[9;59H|\\u001b[67G│\\u001b[10;59H\"]\n[5.330706, \"o\", \"|   M   │\\u001b[11;59H|    ||||\\u001b[12;59H└o-----o|||┌───┐\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B| m |\\u001b(0\\u001b[0mqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H| └───┘\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\b\\b\"]\n[5.350973, \"o\", \"\\u001b[H\\u001b[2Jx=1.20 m\\u001b[1;63H← to nudge left\\r\\nẋ=-2.51 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=1.36 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=3.46 rad/s\\r\\nu=-53.35\\u001b[8;58H┌───────┐\\u001b[9;58H|\\u001b[66G│\\u001b[10;58H|   M   │\\u001b[11;58H\"]\n[5.351309, \"o\", \"|    ||||| ┌───┐\\u001b[12;58H└o-----o┘||| m |\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B└───┘\\u001b(0\\u001b[0mqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[A\\b\\b\\b\"]\n[5.371957, \"o\", \"\\u001b[H\\u001b[2Jx=1.15 m\\u001b[1;63H← to nudge left\\r\\nẋ=-2.60 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=1.43 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=3.37 rad/s\\r\\nu=-54.87\\u001b[8;57H┌───────┐\\u001b[9;57H|\\u001b[65G│\\u001b[10;57H|   M   │\\u001b[11;57H|    ||||||┌───┐\\u001b[12;57H\"]\n[5.372353, \"o\", \"└o-----o┘  | m |\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B└───┘\\u001b(0\\u001b[0mqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[A\\b\\b\\b\\b\"]\n[5.392742, \"o\", \"\\u001b[H\\u001b[2Jx=1.09 m\\u001b[1;63H← to nudge left\\r\\nẋ=-2.71 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=1.50 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=3.28 rad/s\\r\\nu=-56.36\\u001b[8;56H┌───────┐\\u001b[9;56H|\\u001b[64G│\\u001b[10;56H|   M   │  ┌───┐\\u001b[11;56H|    ------| m |\\u001b[12;56H\"]\n[5.393134, \"o\", \"└o-----o┘  └───┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[13;67H\"]\n[5.413532, \"o\", \"\\u001b[H\\u001b[2Jx=1.03 m\\u001b[1;63H← to nudge left\\r\\nẋ=-2.82 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=1.56 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=3.18 rad/s\\r\\nu=-57.77\\u001b[8;55H┌───────┐\\u001b[9;55H|\\u001b[63G│\\u001b[10;55H|   M   │  ┌───┐\\u001b[11;55H|    ------| m |\\u001b[12;55H└o-----o┘  └───┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[13;66H\"]\n[5.434065, \"o\", \"\\u001b[H\\u001b[2Jx=0.97 m\\u001b[1;63H← to nudge left\\r\\nẋ=-2.95 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=1.63 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=3.08 rad/s\\r\\nu=-59.12\\u001b[8;54H┌───────┐\\u001b[9;54H|\\u001b[62G│ ┌───┐\\u001b[10;54H|   M-----| m |\\u001b[11;54H|\\u001b[62G│ └───┘\\u001b[12;54H└o-----o┘\\r\\n\"]\n[5.43413, \"o\", \"\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[12;64H\"]\n[5.454561, \"o\", \"\\u001b[H\\u001b[2Jx=0.92 m\\u001b[1;63H← to nudge left\\r\\nẋ=-2.67 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=1.69 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=2.99 rad/s\\r\\nu=60.34\\u001b[8;53H┌───────┐\\u001b[9;53H|\\u001b[61G│ ┌───┐\\u001b[10;53H|   M|||||| m |\\u001b[11;53H|\\u001b[61G│ └───┘\\u001b[12;53H└o-----o┘\\r\\n\"]\n[5.454637, \"o\", \"\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[12;63H\"]\n[5.475401, \"o\", \"\\u001b[H\\u001b[2Jx=0.87 m\\u001b[1;63H← to nudge left\\r\\nẋ=-2.39 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=1.75 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=2.90 rad/s\\r\\nu=61.60\\u001b[8;52H┌───────┐ ┌───┐\\u001b[9;52H|\\u001b[60G│ | m |\\u001b[10;52H|   M|||||└───┘\\u001b[11;52H|\\u001b[60G│\\u001b[12;52H\"]\n[5.475821, \"o\", \"└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[11;62H\"]\n[5.496446, \"o\", \"\\u001b[H\\u001b[2Jx=0.82 m\\u001b[1;63H← to nudge left\\r\\nẋ=-2.11 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=1.81 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=2.83 rad/s\\r\\nu=62.94\\u001b[8;51H┌───────┐ ┌───┐\\u001b[9;51H|\\u001b[59G||| m |\\u001b[10;51H|   M|||| └───┘\\u001b[11;51H|\\u001b[59G│\\u001b[12;51H\"]\n[5.496819, \"o\", \"└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[11;61H\"]\n[5.517682, \"o\", \"\\u001b[H\\u001b[2Jx=0.79 m\\u001b[1;63H← to nudge left\\r\\nẋ=-1.82 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=1.87 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=2.76 rad/s\\r\\n\"]\n[5.518113, \"o\", \"u=64.34\\u001b[7;61H┌───┐\\u001b[8;50H┌───────┐  | m |\\u001b[9;50H|\\u001b[58G|||└───┘\\u001b[10;50H|   M||||\\u001b[11;50H|\\u001b[58G│\\u001b[12;50H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[10;61H\"]\n[5.53872, \"o\", \"\\u001b[H\\u001b[2Jx=0.75 m\\u001b[1;63H← to nudge left\\r\\nẋ=-1.54 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=1.92 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=2.70 rad/s\\r\\nu=65.80\\u001b[7;60H┌───┐\\u001b[8;50H┌───────┐|| m |\\u001b[9;50H|\\u001b[57G|||└───┘\\u001b[10;50H|   M|||│\\u001b[11;50H\"]\n[5.539113, \"o\", \"|\\u001b[58G│\\u001b[12;50H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[10;60H\"]\n[5.559469, \"o\", \"\\u001b[H\\u001b[2Jx=0.73 m\\u001b[1;63H← to nudge left\\r\\nẋ=-1.26 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=1.98 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=2.65 rad/s\\r\\nu=67.28\\u001b[6;59H\"]\n[5.559898, \"o\", \"┌───┐\\n\\u001b[59G| m |\\u001b[8;49H┌───────┐|└───┘\\u001b[9;49H|\\u001b[56G|||\\u001b[10;49H|   M|||│\\u001b[11;49H|\\u001b[57G│\\u001b[12;49H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[9;59H\"]\n[5.580616, \"o\", \"\\u001b[H\\u001b[2Jx=0.71 m\\u001b[1;63H← to nudge left\\r\\nẋ=-0.97 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=2.03 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=2.61 rad/s\\r\\nu=68.78\\u001b[6;59H┌───┐\\n\\u001b[59G| m |\\u001b[8;49H┌───────||└───┘\\u001b[9;49H|     |||\\u001b[10;49H|   M|| │\\u001b[11;49H\"]\n[5.581039, \"o\", \"|\\u001b[57G│\\u001b[12;49H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[9;59H\"]\n[5.601417, \"o\", \"\\u001b[H\\u001b[2Jx=0.69 m\\u001b[1;63H← to nudge left\\r\\nẋ=-0.69 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=2.09 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=2.59 rad/s\\r\\nu=70.34\\u001b[5;58H┌───┐\\n\\u001b[58G| m |\\n\\u001b[58G└───┘\\u001b[8;49H┌──────|||\\u001b[9;49H\"]\n[5.601896, \"o\", \"|    |||│\\u001b[10;49H|   ||  │\\u001b[11;49H|\\u001b[57G│\\u001b[12;49H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[8;58H\"]\n[5.622295, \"o\", \"\\u001b[H\\u001b[2Jx=0.68 m\\u001b[1;63H← to nudge left\\r\\nẋ=-0.40 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=2.14 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=2.57 rad/s\\r\\nu=71.92\\u001b[5;58H┌───┐\\n\\u001b[58G| m |\\n\\u001b[57G|└───┘\\u001b[8;49H┌──────||\\u001b[9;49H\"]\n[5.622751, \"o\", \"|    |||│\\u001b[10;49H|   ||  │\\u001b[11;49H|\\u001b[57G│\\u001b[12;49H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[8;58H\"]\n[5.643199, \"o\", \"\\u001b[H\\u001b[2Jx=0.68 m\\u001b[1;63H← to nudge left\\r\\nẋ=-0.10 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=2.19 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=2.56 rad/s\\r\\nu=73.54\\u001b[5;57H┌───┐\\n\\u001b[57G| m |\\n\\u001b[57G└───┘\\u001b[8;48H\"]\n[5.643604, \"o\", \"┌──────|||\\u001b[9;48H|     ||│\\u001b[10;48H|   M|| │\\u001b[11;48H|\\u001b[56G│\\u001b[12;48H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[8;57H\"]\n[5.664178, \"o\", \"\\u001b[H\\u001b[2Jx=0.69 m\\u001b[1;63H← to nudge left\\r\\nẋ=0.20 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=2.25 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=2.57 rad/s\\u001b[4;57H┌───┐\\r\\nu=75.21\\u001b[5;57H| m |\\n\\u001b[57G└───┘\\n\\u001b[56G|||\\u001b[8;49H┌─────||┐\\u001b[9;49H|    || │\\u001b[10;49H\"]\n[5.664552, \"o\", \"|   ||  │\\u001b[11;49H|\\u001b[57G│\\u001b[12;49H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[7;57H\"]\n[5.685022, \"o\", \"\\u001b[H\\u001b[2Jx=0.69 m\\u001b[1;63H← to nudge left\\r\\nẋ=0.03 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=2.30 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=2.43 rad/s\\u001b[4;57H┌───┐\\r\\nu=-52.61\\u001b[5;57H| m |\\n\\u001b[57G└───┘\\n\\u001b[56G||\\u001b[8;49H\"]\n[5.685413, \"o\", \"┌─────||┐\\u001b[9;49H|    || │\\u001b[10;49H|   ||  │\\u001b[11;49H|\\u001b[57G│\\u001b[12;49H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[7;57H\"]\n[5.706029, \"o\", \"\\u001b[H\\u001b[2Jx=0.68 m\\u001b[1;63H← to nudge left\\r\\nẋ=-0.27 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=2.35 rad\\u001b[3;63H⮠ to restart\\r\\nȧ=2.26 rad/s\\u001b[4;57H┌───┐\\r\\nu=-83.04\\u001b[5;57H| m |\\n\\u001b[57G└───┘\\n\\u001b[56G\"]\n[5.706428, \"o\", \"||\\u001b[8;48H┌──────|┐\\u001b[9;48H|    || │\\u001b[10;48H|   M|  │\\u001b[11;48H|\\u001b[56G│\\u001b[12;48H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[7;57H\"]\n[5.727067, \"o\", \"\\u001b[H\\u001b[2Jx=0.67 m\\u001b[1;63H← to nudge left\\r\\nẋ=-0.66 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=2.39 rad\\u001b[3;56H┌───┐  ⮠ to restart\\r\\nȧ=2.05 rad/s\\u001b[4;56H| m |\\r\\nu=-104.17\\u001b[5;56H└───┘\\n\\u001b[56G||\\n\\b\\b\\b||\\u001b[8;48H┌─────||┐\\u001b[9;48H\"]\n[5.727527, \"o\", \"|    || │\\u001b[10;48H|   M|  │\\u001b[11;48H|\\u001b[56G│\\u001b[12;48H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[6;56H\"]\n[5.748048, \"o\", \"\\u001b[H\\u001b[2Jx=0.64 m\\u001b[1;63H← to nudge left\\r\\nẋ=-1.09 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=2.43 rad\\u001b[3;55H┌───┐   ⮠ to restart\\r\\nȧ=1.82 rad/s\\u001b[4;55H| m |\\r\\nu=-113.75\\u001b[5;55H└───┘\\n\\u001b[55G||\\n\\b\\b\\b||\\u001b[8;48H\"]\n[5.748509, \"o\", \"┌─────|─┐\\u001b[9;48H|    |  │\\u001b[10;48H|   ||  │\\u001b[11;48H|\\u001b[56G│\\u001b[12;48H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[6;55H\"]\n[5.769019, \"o\", \"\\u001b[H\\u001b[2Jx=0.61 m\\u001b[1;63H← to nudge left\\r\\nẋ=-1.52 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=2.46 rad\\u001b[3;54H┌───┐    ⮠ to restart\\r\\nȧ=1.59 rad/s\\u001b[4;54H| m |\\r\\nu=-112.14\\u001b[5;54H└───┘\\n\\u001b[54G||\\n\\b\\b|\\u001b[8;47H┌─────||┐\\u001b[9;47H\"]\n[5.769397, \"o\", \"|    || │\\u001b[10;47H|   M|  │\\u001b[11;47H|\\u001b[55G│\\u001b[12;47H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[6;54H\"]\n[5.790042, \"o\", \"\\u001b[H\\u001b[2Jx=0.57 m\\u001b[1;63H← to nudge left\\r\\nẋ=-1.92 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=2.49 rad\\u001b[3;54H┌───┐    ⮠ to restart\\r\\nȧ=1.37 rad/s\\u001b[4;54H| m |\\r\\nu=-101.62\\u001b[5;54H└───┘\\n\\u001b[53G||\\n\\b\\b|\\u001b[8;46H┌─────||┐\\u001b[9;46H|    || │\\u001b[10;46H\"]\n[5.790499, \"o\", \"|   M|  │\\u001b[11;46H|\\u001b[54G│\\u001b[12;46H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[6;54H\"]\n[5.810738, \"o\", \"\\u001b[H\\u001b[2Jx=0.53 m\\u001b[1;63H← to nudge left\\r\\nẋ=-2.25 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=2.51 rad\\u001b[3;52H┌───┐\\u001b[63G⮠ to restart\\r\\nȧ=1.18 rad/s\\u001b[4;52H| m |\\r\\nu=-85.29\\u001b[5;52H\"]\n[5.811174, \"o\", \"└───┘\\n\\u001b[52G||\\n\\b\\b|\\u001b[8;45H┌─────||┐\\u001b[9;45H|    || │\\u001b[10;45H|   M|  │\\u001b[11;45H|\\u001b[53G│\\u001b[12;45H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[6;52H\"]\n[5.83162, \"o\", \"\\u001b[H\\u001b[2Jx=0.47 m\\u001b[1;63H← to nudge left\\r\\nẋ=-2.51 m/s\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=2.53 rad\\u001b[3;51H┌───┐\\u001b[63G\"]\n[5.831721, \"o\", \"⮠ to restart\\r\\nȧ=1.01 rad/s\\u001b[4;51H| m |\\r\\nu=-66.73\\u001b[5;51H└───┘\\n\\u001b[51G\"]\n[5.831975, \"o\", \"||\\n\\b\\b|\\u001b[8;44H┌─────||┐\\u001b[9;44H|    || │\\u001b[10;44H|   M|  │\\u001b[11;44H|\\u001b[52G│\\u001b[12;44H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H\"]\n[5.832264, \"o\", \"|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[6;51H\"]\n[5.852356, \"o\", \"\\u001b[H\\u001b[2Jx=0.42 m\\u001b[1;63H← to nudge left\\r\\nẋ=-2.71 m/s\\u001b[2;50H┌───┐\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=2.55 rad\\u001b[3;50H| m |\\u001b[3;63H⮠ to restart\\r\\nȧ=0.87 rad/s\\u001b[4;50H└───┘\\r\\nu=-48.05\\u001b[5;51H|\\n\\b\\b||\\n\\b\\b\\b||\\u001b[8;43H┌─────|─┐\\u001b[9;43H|    || │\\u001b[10;43H\"]\n[5.852411, \"o\", \"|   M|  │\\u001b[11;43H|\\u001b[51G│\\u001b[12;43H└o-----o┘\\r\\n\"]\n[5.852428, \"o\", \"\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H\"]\n[5.852443, \"o\", \"|\\r\\n \"]\n[5.852623, \"o\", \"-2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[5;50H\"]\n[5.872731, \"o\", \"\\u001b[H\\u001b[2Jx=0.36 m\\u001b[1;63H← to nudge left\\r\\nẋ=-2.83 m/s\\u001b[2;49H┌───┐\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=2.57 rad\\u001b[3;49H| m |\\u001b[3;63H⮠ to restart\\r\\nȧ=0.77 rad/s\\u001b[4;49H└───┘\\r\\nu=-30.83\\u001b[5;50H|\\n\\b\\b||\\n\\b\\b\\b||\\u001b[8;42H┌─────|─┐\\u001b[9;42H|    || │\\u001b[10;42H|   M|  │\\u001b[11;42H|\\u001b[50G│\\u001b[12;42H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[5;49H\"]\n[5.892994, \"o\", \"\\u001b[H\\u001b[2Jx=0.30 m\\u001b[1;63H← to nudge left\\r\\nẋ=-2.90 m/s\\u001b[2;48H┌───┐\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=2.58 rad\\u001b[3;48H| m |\\u001b[3;63H⮠ to restart\\r\\nȧ=0.69 rad/s\\u001b[4;48H└───┘\\r\\nu=-16.52\\u001b[5;48H||\\n\\b\\b|\\n\\b\\b||\\u001b[8;41H┌────||─┐\\u001b[9;41H|    |  │\\u001b[10;41H|   M|  │\\u001b[11;41H|\\u001b[49G│\\u001b[12;41H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[5;48H\"]\n[5.913224, \"o\", \"\\u001b[H\\u001b[2Jx=0.24 m\\u001b[1;63H← to nudge left\\r\\nẋ=-2.92 m/s\\u001b[2;46H┌───┐\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=2.60 rad\\u001b[3;46H| m |\\u001b[3;63H⮠ to restart\\r\\nȧ=0.62 rad/s\\u001b[4;46H└───┘\\r\\nu=-5.01\\u001b[5;47H||\\n\\b\\b|\\n\\b\\b||\\u001b[8;40H\"]\n[5.913283, \"o\", \"┌────||─┐\\u001b[9;40H|    |  │\\u001b[10;40H|   M|  │\\u001b[11;40H|\\u001b[48G│\\u001b[12;40H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n \"]\n[5.9133, \"o\", \"-2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[5;46H\"]\n[5.934338, \"o\", \"\\u001b[H\\u001b[2Jx=0.18 m\\u001b[1;63H← to nudge left\\r\\nẋ=-2.91 m/s\\u001b[2;45H┌───┐\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=2.61 rad\\u001b[3;45H| m |\\u001b[3;63H⮠ to restart\\r\\nȧ=0.57 rad/s\\u001b[4;45H└───┘\\r\\nu=3.99\\u001b[5;46H|\\n\\b\\b||\\n\\b\\b|\\u001b[8;39H┌────||─┐\\u001b[9;39H|    |  │\\u001b[10;39H|   |   │\\u001b[11;39H|\\u001b[47G│\\u001b[12;39H└o-----o┘\\r\\n\"]\n[5.934431, \"o\", \"\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[5;45H\"]\n[5.954983, \"o\", \"\\u001b[H\\u001b[2Jx=0.12 m\\u001b[1;63H← to nudge left\\r\\nẋ=-2.87 m/s\\u001b[2;44H┌───┐\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=2.62 rad\\u001b[3;44H| m |\\u001b[3;63H⮠ to restart\\r\\nȧ=0.54 rad/s\\u001b[4;44H└───┘\\r\\nu=11.06\\u001b[5;45H|\\n\\b\\b||\\n\\b\\b\"]\n[5.955105, \"o\", \"|\\u001b[8;38H┌────|──┐\\u001b[9;38H|   ||  │\\u001b[10;38H|   |   │\\u001b[11;38H|\\u001b[46G│\\u001b[12;38H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H\"]\n[5.955389, \"o\", \"|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[5;44H\"]\n[5.975922, \"o\", \"\\u001b[H\\u001b[2Jx=0.06 m\\u001b[1;63H← to nudge left\\r\\nẋ=-2.81 m/s\\u001b[2;43H┌───┐\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=2.63 rad\\u001b[3;43H| m |\\u001b[3;63H⮠ to restart\\r\\nȧ=0.51 rad/s\\u001b[4;43H└───┘\\r\\nu=15.95\\u001b[5;44H\"]\n[5.976298, \"o\", \"|\\n\\b\\b|\\n\\b\\b||\\u001b[8;37H┌────|──┐\\u001b[9;37H|   ||  │\\u001b[10;37H|   |   │\\u001b[11;37H|\\u001b[45G│\\u001b[12;37H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[5;43H\"]\n[5.996931, \"o\", \"\\u001b[H\\u001b[2Jx=0.00 m\\u001b[1;63H← to nudge left\\r\\nẋ=-2.74 m/s\\u001b[2;42H┌───┐\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=2.64 rad\\u001b[3;42H| m |\\u001b[3;63H⮠ to restart\\r\\nȧ=0.50 rad/s\\u001b[4;42H└───┘\\r\\nu=19.37\\u001b[5;42H||\\n\\b\\b\"]\n[5.99707, \"o\", \"|\\n\\b\\b||\\u001b[8;36H┌────|──┐\\u001b[9;36H|   ||  │\\u001b[10;36H|   |   │\\u001b[11;36H|\\u001b[44G│\\u001b[12;36H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H\"]\n[5.997338, \"o\", \"|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[5;42H\"]\n[6.017961, \"o\", \"\\u001b[H\\u001b[2Jx=-0.05 m\\u001b[1;63H← to nudge left\\r\\nẋ=-2.65 m/s\\u001b[2;41H┌───┐\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=2.65 rad\\u001b[3;41H| m |\\u001b[3;63H⮠ to restart\\r\\nȧ=0.48 rad/s\\u001b[4;41H└───┘\\r\\nu=21.53\\u001b[5;41H||\\n\\b\\b\"]\n[6.018081, \"o\", \"|\\n\\b\\b||\\u001b[8;35H┌────|──┐\\u001b[9;35H|   ||  │\\u001b[10;35H|   |   │\\u001b[11;35H|\\u001b[43G│\\u001b[12;35H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H\"]\n[6.018369, \"o\", \"|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[5;41H\"]\n[6.038797, \"o\", \"\\u001b[H\\u001b[2Jx=-0.10 m\\u001b[1;63H← to nudge left\\r\\nẋ=-2.57 m/s\\u001b[2;39H┌───┐\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=2.66 rad\\u001b[3;39H| m |\\u001b[3;63H⮠ to restart\\r\\nȧ=0.47 rad/s\\u001b[4;39H└───┘\\r\\nu=22.77\\u001b[5;40H||\\n\\b\\b|\\n\\b\\b\"]\n[6.038924, \"o\", \"||\\u001b[8;34H┌────|──┐\\u001b[9;34H|   ||  │\\u001b[10;34H|   |   │\\u001b[11;34H|\\u001b[42G│\\u001b[12;34H└o-----o┘\\r\\n\"]\n[6.038999, \"o\", \"\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[5;39H\"]\n[6.059863, \"o\", \"\\u001b[H\\u001b[2Jx=-0.16 m\\u001b[1;63H← to nudge left\\r\\nẋ=-2.48 m/s\\u001b[2;38H┌───┐\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=2.67 rad\\u001b[3;38H| m |\\u001b[3;63H⮠ to restart\\r\\nȧ=0.46 rad/s\\u001b[4;38H└───┘\\r\\nu=23.32\\u001b[5;39H||\\n\\b\\b|\\n\\b\\b||\\u001b[8;33H\"]\n[6.059986, \"o\", \"┌────|──┐\\u001b[9;33H|   ||  │\\u001b[10;33H|   |   │\\u001b[11;33H|\\u001b[41G│\\u001b[12;33H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H\"]\n[6.060394, \"o\", \"|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[5;38H\"]\n[6.080742, \"o\", \"\\u001b[H\\u001b[2Jx=-0.21 m\\u001b[1;63H← to nudge left\\r\\nẋ=-2.39 m/s\\u001b[2;37H┌───┐\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=2.68 rad\\u001b[3;37H| m |\\u001b[3;63H⮠ to restart\\r\\nȧ=0.46 rad/s\\u001b[4;37H└───┘\\r\\nu=23.43\\u001b[5;38H||\\n\\b\\b|\\n\\b\\b||\\u001b[8;32H\"]\n[6.080872, \"o\", \"┌────|──┐\\u001b[9;32H|   ||  │\\u001b[10;32H|   |   │\\u001b[11;32H|\\u001b[40G│\\u001b[12;32H└o-----o┘\\r\\n\"]\n[6.081265, \"o\", \"\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[5;37H\"]\n[6.10155, \"o\", \"\\u001b[H\\u001b[2Jx=-0.25 m\\u001b[1;63H← to nudge left\\r\\nẋ=-2.30 m/s\\u001b[2;36H┌───┐\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=2.69 rad\\u001b[3;36H| m |\\u001b[3;63H⮠ to restart\\r\\nȧ=0.45 rad/s\\u001b[4;36H└───┘\\r\\nu=23.23\\u001b[5;37H||\\n\\b\\b|\\n\\b\\b||\\u001b[8;31H\"]\n[6.101723, \"o\", \"┌────|──┐\\u001b[9;31H|   ||  │\\u001b[10;31H|   |   │\\u001b[11;31H|\\u001b[39G│\\u001b[12;31H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H\"]\n[6.102179, \"o\", \"|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[5;36H\"]\n[6.122385, \"o\", \"\\u001b[H\\u001b[2Jx=-0.30 m\\u001b[1;63H← to nudge left\\r\\nẋ=-2.22 m/s\\u001b[2;35H┌───┐\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=2.70 rad\\u001b[3;35H| m |\\u001b[3;63H⮠ to restart\\r\\nȧ=0.44 rad/s\\u001b[4;35H└───┘\\r\\nu=22.84\\u001b[5;36H\"]\n[6.122741, \"o\", \"||\\n\\b\\b|\\n\\b\\b||\\u001b[8;30H┌────|──┐\\u001b[9;30H|   ||  │\\u001b[10;30H|   |   │\\u001b[11;30H|\\u001b[38G│\\u001b[12;30H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[5;35H\"]\n[6.143021, \"o\", \"\\u001b[H\\u001b[2Jx=-0.34 m\\u001b[1;63H← to nudge left\\r\\nẋ=-2.13 m/s\\u001b[2;35H┌───┐\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=2.71 rad\\u001b[3;35H| m |\\u001b[3;63H\"]\n[6.143111, \"o\", \"⮠ to restart\\r\\nȧ=0.44 rad/s\\u001b[4;35H└───┘\\r\\nu=22.35\\u001b[5;35H||\\n\\b\\b|\\n\\b\\b||\\u001b[8;29H┌────|──┐\\u001b[9;29H\"]\n[6.143322, \"o\", \"|   ||  │\\u001b[10;29H|   |   │\\u001b[11;29H|\\u001b[37G│\\u001b[12;29H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[5;35H\"]\n[6.164097, \"o\", \"\\u001b[H\\u001b[2Jx=-0.39 m\\u001b[1;63H← to nudge left\\r\\nẋ=-2.05 m/s\\u001b[2;34H┌───┐\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=2.72 rad\\u001b[3;34H| m |\\u001b[3;63H⮠ to restart\\r\\nȧ=0.43 rad/s\\u001b[4;34H└───┘\\r\\nu=21.79\\u001b[5;34H\"]\n[6.164216, \"o\", \"||\\n\\b\\b|\\n\\b|\\u001b[8;28H┌────|──┐\\u001b[9;28H|    |  │\\u001b[10;28H|   ||  │\\u001b[11;28H|\\u001b[36G│\\u001b[12;28H└o-----o┘\\r\\n\"]\n[6.16459, \"o\", \"\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[5;34H\"]\n[6.184901, \"o\", \"\\u001b[H\\u001b[2Jx=-0.43 m\\u001b[1;63H← to nudge left\\r\\nẋ=-1.97 m/s\\u001b[2;33H┌───┐\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=2.72 rad\\u001b[3;33H| m |\\u001b[3;63H⮠ to restart\\r\\nȧ=0.43 rad/s\\u001b[4;33H└───┘\\r\\nu=21.21\\u001b[5;34H|\\n\\b\\b\"]\n[6.185035, \"o\", \"||\\n\\b\\b|\\u001b[8;27H┌────||─┐\\u001b[9;27H|    |  │\\u001b[10;27H|   M|  │\\u001b[11;27H|\\u001b[35G│\\u001b[12;27H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H\"]\n[6.185401, \"o\", \"|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[5;33H\"]\n[6.205969, \"o\", \"\\u001b[H\\u001b[2Jx=-0.47 m\\u001b[1;63H← to nudge left\\r\\nẋ=-1.89 m/s\\u001b[2;32H┌───┐\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=2.73 rad\\u001b[3;32H| m |\\u001b[3;63H⮠ to restart\\r\\nȧ=0.42 rad/s\\u001b[4;32H└───┘\\r\\nu=20.63\\u001b[5;33H|\\n\\b\\b||\\n\\b\\b\"]\n[6.206092, \"o\", \"|\\n\\u001b[27G┌───||──┐\\u001b[9;27H|   |   │\\u001b[10;27H|   |   │\\u001b[11;27H|\\u001b[35G│\\u001b[12;27H└o-----o┘\\r\\n\"]\n[6.206467, \"o\", \"\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[5;32H\"]\n[6.226821, \"o\", \"\\u001b[H\\u001b[2Jx=-0.51 m\\u001b[1;63H← to nudge left\\r\\nẋ=-1.82 m/s\\u001b[2;31H┌───┐\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=2.74 rad\\u001b[3;31H| m |\\u001b[3;63H⮠ to restart\\r\\nȧ=0.41 rad/s\\u001b[4;31H└───┘\\r\\nu=20.06\\u001b[5;32H|\\n\\b|\\n\\b\\b||\\u001b[8;26H\"]\n[6.226948, \"o\", \"┌────|──┐\\u001b[9;26H|   ||  │\\u001b[10;26H|   |   │\\u001b[11;26H|\\u001b[34G│\\u001b[12;26H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H\"]\n[6.227255, \"o\", \"|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[5;31H\"]\n[6.247509, \"o\", \"\\u001b[H\\u001b[2Jx=-0.54 m\\u001b[1;63H← to nudge left\\r\\nẋ=-1.74 m/s\\u001b[2;30H┌───┐\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=2.75 rad\\u001b[3;30H| m |\\u001b[3;63H⮠ to restart\\r\\nȧ=0.41 rad/s\\u001b[4;30H└───┘\\r\\nu=19.51\\u001b[5;31H\"]\n[6.247612, \"o\", \"||\\n\\b\\b|\\n\\b\\b||\\u001b[8;25H┌────|──┐\\u001b[9;25H|    |  │\\u001b[10;25H|   M|  │\\u001b[11;25H|\\u001b[33G│\\u001b[12;25H└o-----o┘\\r\\n\"]\n[6.247846, \"o\", \"\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[5;30H\"]\n[6.268506, \"o\", \"\\u001b[H\\u001b[2Jx=-0.58 m\\u001b[1;63H← to nudge left\\r\\nẋ=-1.67 m/s\\u001b[2;30H┌───┐\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=2.76 rad\\u001b[3;30H| m |\\u001b[3;63H⮠ to restart\\r\\nȧ=0.40 rad/s\\u001b[4;30H└───┘\\r\\nu=18.99\\u001b[5;31H|\\n\\b\\b||\\n\\b\\b\"]\n[6.268629, \"o\", \"|\\n\\u001b[25G┌───||──┐\\u001b[9;25H|   |   │\\u001b[10;25H|   |   │\\u001b[11;25H|\\u001b[33G│\\u001b[12;25H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H\"]\n[6.269067, \"o\", \"|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[5;30H\"]\n[6.289289, \"o\", \"\\u001b[H\\u001b[2Jx=-0.61 m\\u001b[1;63H← to nudge left\\r\\nẋ=-1.61 m/s\\u001b[2;29H┌───┐\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=2.77 rad\\u001b[3;29H| m |\\u001b[3;63H⮠ to restart\\r\\nȧ=0.39 rad/s\\u001b[4;29H└───┘\\r\\nu=18.48\\u001b[5;30H|\\n\\b\\b||\\n\\b\\b\"]\n[6.289595, \"o\", \"|\\n\\u001b[24G┌────|──┐\\u001b[9;24H|   ||  │\\u001b[10;24H|   |   │\\u001b[11;24H|\\u001b[32G│\\u001b[12;24H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H\"]\n[6.289714, \"o\", \"|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[5;29H\"]\n[6.310101, \"o\", \"\\u001b[H\\u001b[2Jx=-0.64 m\\u001b[1;63H← to nudge left\\r\\nẋ=-1.54 m/s\\u001b[2;28H┌───┐\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=2.77 rad\\u001b[3;28H| m |\\u001b[3;63H⮠ to restart\\r\\nȧ=0.39 rad/s\\u001b[4;28H└───┘\\r\\nu=18.00\\u001b[5;29H\"]\n[6.310519, \"o\", \"||\\n\\b\\b|\\n\\b\\b||\\u001b[8;23H┌────|──┐\\u001b[9;23H|    |  │\\u001b[10;23H|   M|  │\\u001b[11;23H|\\u001b[31G│\\u001b[12;23H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[5;28H\"]\n[6.331167, \"o\", \"\\u001b[H\\u001b[2Jx=-0.67 m\\u001b[1;63H← to nudge left\\r\\nẋ=-1.47 m/s\\u001b[2;28H┌───┐\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=2.78 rad\\u001b[3;28H| m |\\u001b[3;63H⮠ to restart\\r\\nȧ=0.38 rad/s\\u001b[4;28H└───┘\\r\\nu=17.55\\u001b[5;29H|\\n\\b\\b||\\n\\b\\b|\\n\\u001b[23G┌───||──┐\\u001b[9;23H\"]\n[6.331461, \"o\", \"|   |   │\\u001b[10;23H|   |   │\\u001b[11;23H|\\u001b[31G│\\u001b[12;23H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H\"]\n[6.331784, \"o\", \"|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[5;28H\"]\n[6.352134, \"o\", \"\\u001b[H\\u001b[2Jx=-0.70 m\\u001b[1;63H← to nudge left\\r\\nẋ=-1.41 m/s\\u001b[2;27H┌───┐\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=2.79 rad\\u001b[3;27H| m |\\u001b[3;63H⮠ to restart\\r\\nȧ=0.37 rad/s\\u001b[4;27H└───┘\\r\\nu=17.11\\u001b[5;28H|\\n\\b\"]\n[6.352253, \"o\", \"|\\n\\b\\b||\\u001b[8;22H┌────|──┐\\u001b[9;22H|    |  │\\u001b[10;22H|   |   │\\u001b[11;22H|\\u001b[30G│\\u001b[12;22H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H\"]\n[6.352589, \"o\", \"|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[5;27H\"]\n[6.372985, \"o\", \"\\u001b[H\\u001b[2Jx=-0.73 m\\u001b[1;26H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=-1.35 m/s\\u001b[2;26H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=2.80 rad\\u001b[3;26H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=0.37 rad/s\\u001b[4;28H|\\r\\nu=16.68\\u001b[5;27H||\\n\\b\\b|\\n\\b|\\n\\u001b[22G┌───||──┐\\u001b[9;22H|   |   │\\u001b[10;22H|   |   │\\u001b[11;22H|\\u001b[30G│\\u001b[12;22H└o-----o┘\\r\\n\"]\n[6.373027, \"o\", \"\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;26H\"]\n[6.393663, \"o\", \"\\u001b[H\\u001b[2Jx=-0.76 m\\u001b[1;26H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=-1.29 m/s\\u001b[2;26H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=2.81 rad\\u001b[3;26H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=0.36 rad/s\\u001b[4;27H||\\r\\nu=16.28\\u001b[5;27H|\\n\\b\\b||\\n\\b\\b|\\n\\u001b[21G┌────|──┐\\u001b[9;21H|   ||  │\\u001b[10;21H|   |   │\\u001b[11;21H|\\u001b[29G│\\u001b[12;21H└o-----o┘\\r\\n\"]\n[6.393718, \"o\", \"\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;26H\"]\n[6.414444, \"o\", \"\\u001b[H\\u001b[2Jx=-0.78 m\\u001b[1;25H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=-1.23 m/s\\u001b[2;25H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=2.81 rad\\u001b[3;25H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=0.36 rad/s\\u001b[4;27H|\\r\\nu=15.88\\u001b[5;26H||\\n\\b\\b|\\n\\b|\\n\\u001b[21G┌───||──┐\\u001b[9;21H|   |   │\\u001b[10;21H|   |   │\\u001b[11;21H|\\u001b[29G│\\u001b[12;21H\"]\n[6.414521, \"o\", \"└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;25H\"]\n[6.435115, \"o\", \"\\u001b[H\\u001b[2Jx=-0.81 m\\u001b[1;25H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=-1.18 m/s\\u001b[2;25H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=2.82 rad\\u001b[3;25H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=0.35 rad/s\\u001b[4;26H|\\r\\nu=15.51\\u001b[5;26H|\\n\\b\\b||\\n\\b\\b|\\n\\u001b[20G┌────|──┐\\u001b[9;20H\"]\n[6.435233, \"o\", \"|   ||  │\\u001b[10;20H|   |   │\\u001b[11;20H|\\u001b[28G│\\u001b[12;20H└o-----o┘\\r\\n\"]\n[6.43554, \"o\", \"\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;25H\"]\n[6.456078, \"o\", \"\\u001b[H\\u001b[2Jx=-0.83 m\\u001b[1;24H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=-1.12 m/s\\u001b[2;24H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=2.83 rad\\u001b[3;24H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=0.34 rad/s\\u001b[4;26H|\\r\\nu=15.14\\u001b[5;25H||\\n\\b\\b\"]\n[6.456209, \"o\", \"|\\n\\b|\\n\\u001b[20G┌───||──┐\\u001b[9;20H|   |   │\\u001b[10;20H|   |   │\\u001b[11;20H|\\u001b[28G│\\u001b[12;20H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H\"]\n[6.456538, \"o\", \"|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;24H\"]\n[6.477105, \"o\", \"\\u001b[H\\u001b[2Jx=-0.85 m\\u001b[1;24H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=-1.07 m/s\\u001b[2;24H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=2.83 rad\\u001b[3;24H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=0.34 rad/s\\u001b[4;25H|\\r\\nu=14.79\\u001b[5;25H|\\n\\b|\\n\\b\\b\"]\n[6.477249, \"o\", \"||\\u001b[8;19H┌────|──┐\\u001b[9;19H|    |  │\\u001b[10;19H|   M|  │\\u001b[11;19H|\\u001b[27G│\\u001b[12;19H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H\"]\n[6.47767, \"o\", \"|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;24H\"]\n[6.497982, \"o\", \"\\u001b[H\\u001b[2Jx=-0.88 m\\u001b[1;23H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=-1.01 m/s\\u001b[2;23H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=2.84 rad\\u001b[3;23H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=0.33 rad/s\\u001b[4;25H|\\r\\nu=14.45\\u001b[5;24H\"]\n[6.498107, \"o\", \"||\\n\\b\\b|\\n\\b|\\n\\u001b[19G┌───||──┐\\u001b[9;19H|   |   │\\u001b[10;19H|   |   │\\u001b[11;19H|\\u001b[27G│\\u001b[12;19H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\"]\n[6.498541, \"o\", \"\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;23H\"]\n[6.518459, \"o\", \"\\u001b[H\\u001b[2Jx=-0.90 m\\u001b[1;23H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=-0.96 m/s\\u001b[2;23H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=2.85 rad\\u001b[3;23H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=0.33 rad/s\\u001b[4;24H||\\r\\nu=14.11\\u001b[5;24H|\\n\\b|\\n\\b\\b||\\u001b[8;18H┌────|──┐\\u001b[9;18H|    |  │\\u001b[10;18H|   M|  │\\u001b[11;18H|\\u001b[26G│\\u001b[12;18H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;23H\"]\n[6.53883, \"o\", \"\\u001b[H\\u001b[2Jx=-0.91 m\\u001b[1;23H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=-0.92 m/s\\u001b[2;23H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=2.85 rad\\u001b[3;23H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=0.32 rad/s\\u001b[4;24H|\\r\\nu=13.79\\u001b[5;24H|\\n\\b\\b||\\n\\b\\b|\\n\\u001b[18G┌────|──┐\\u001b[9;18H|   ||  │\\u001b[10;18H|   |   │\\u001b[11;18H|\\u001b[26G│\\u001b[12;18H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H\"]\n[6.538882, \"o\", \"|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;23H\"]\n[6.559214, \"o\", \"\\u001b[H\\u001b[2Jx=-0.93 m\\u001b[1;22H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=-0.87 m/s\\u001b[2;22H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=2.86 rad\\u001b[3;22H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=0.31 rad/s\\u001b[4;24H|\\r\\nu=13.47\\u001b[5;23H||\\n\\b\\b|\\n\\b|\\n\\u001b[18G┌───||──┐\\u001b[9;18H|   |   │\\u001b[10;18H|   |   │\\u001b[11;18H|\\u001b[26G\"]\n[6.559288, \"o\", \"│\\u001b[12;18H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G\"]\n[6.559531, \"o\", \"1.00     1.50\\u001b[4;22H\"]\n[6.57997, \"o\", \"\\u001b[H\\u001b[2Jx=-0.95 m\\u001b[1;22H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=-0.82 m/s\\u001b[2;22H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=2.87 rad\\u001b[3;22H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=0.31 rad/s\\u001b[4;23H|\\r\\nu=13.16\\u001b[5;23H|\\n\\b|\\n\\b\\b\"]\n[6.580289, \"o\", \"||\\u001b[8;17H┌────|──┐\\u001b[9;17H|    |  │\\u001b[10;17H|   M|  │\\u001b[11;17H|\\u001b[25G│\\u001b[12;17H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H\"]\n[6.580593, \"o\", \"|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;22H\"]\n[6.601002, \"o\", \"\\u001b[H\\u001b[2Jx=-0.97 m\\u001b[1;21H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=-0.78 m/s\\u001b[2;21H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=2.87 rad\\u001b[3;21H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=0.30 rad/s\\u001b[4;23H|\\r\\nu=12.86\\u001b[5;23H|\\n\\b\\b||\\n\\b\\b\"]\n[6.601131, \"o\", \"|\\n\\u001b[17G┌────|──┐\\u001b[9;17H|   ||  │\\u001b[10;17H|   |   │\\u001b[11;17H|\\u001b[25G│\\u001b[12;17H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H\"]\n[6.601414, \"o\", \"|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;21H\"]\n[6.621988, \"o\", \"\\u001b[H\\u001b[2Jx=-0.98 m\\u001b[1;21H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=-0.73 m/s\\u001b[2;21H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=2.88 rad\\u001b[3;21H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=0.30 rad/s\\u001b[4;22H||\\r\\nu=12.57\\u001b[5;22H|\\n\\b|\\n\\b\"]\n[6.622112, \"o\", \"|\\n\\u001b[17G┌───||──┐\\u001b[9;17H|   |   │\\u001b[10;17H|   |   │\\u001b[11;17H|\\u001b[25G│\\u001b[12;17H└o-----o┘\\r\\n\"]\n[6.622466, \"o\", \"\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;21H\"]\n[6.643083, \"o\", \"\\u001b[H\\u001b[2Jx=-1.00 m\\u001b[1;21H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=-0.69 m/s\\u001b[2;21H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=2.89 rad\\u001b[3;21H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=0.29 rad/s\\u001b[4;22H|\\r\\nu=12.28\\u001b[5;22H|\\n\\b\"]\n[6.643208, \"o\", \"|\\n\\b\\b||\\n\\u001b[17G┌───|───┐\\u001b[9;17H|   |   │\\u001b[10;17H|   |   │\\u001b[11;17H|\\u001b[25G│\\u001b[12;17H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H\"]\n[6.643586, \"o\", \"|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;21H\"]\n[6.664078, \"o\", \"\\u001b[H\\u001b[2Jx=-1.01 m\\u001b[1;20H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=-0.64 m/s\\u001b[2;20H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=2.89 rad\\u001b[3;20H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=0.29 rad/s\\u001b[4;22H|\\r\\nu=11.99\\u001b[5;22H|\\n\\b\\b||\\n\\b\\b\"]\n[6.664217, \"o\", \"|\\n\\u001b[16G┌────|──┐\\u001b[9;16H|    |  │\\u001b[10;16H|   M|  │\\u001b[11;16H|\\u001b[24G│\\u001b[12;16H└o-----o┘\\r\\n\"]\n[6.664513, \"o\", \"\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;20H\"]\n[6.684925, \"o\", \"\\u001b[H\\u001b[2Jx=-1.02 m\\u001b[1;20H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=-0.60 m/s\\u001b[2;20H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=2.90 rad\\u001b[3;20H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=0.28 rad/s\\u001b[4;22H|\\r\\nu=11.71\\u001b[5;21H||\\n\\b\\b|\\n\\b\"]\n[6.685209, \"o\", \"|\\n\\u001b[16G┌────|──┐\\u001b[9;16H|   ||  │\\u001b[10;16H|   |   │\\u001b[11;16H|\\u001b[24G│\\u001b[12;16H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H\"]\n[6.685545, \"o\", \"|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;20H\"]\n[6.706054, \"o\", \"\\u001b[H\\u001b[2Jx=-1.03 m\\u001b[1;20H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=-0.56 m/s\\u001b[2;20H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=2.90 rad\\u001b[3;20H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=0.28 rad/s\\u001b[4;21H||\\r\\nu=11.43\\u001b[5;21H|\\n\\b|\\n\\b|\\n\\u001b[16G\"]\n[6.706182, \"o\", \"┌───||──┐\\u001b[9;16H|   |   │\\u001b[10;16H|   |   │\\u001b[11;16H|\\u001b[24G│\\u001b[12;16H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H\"]\n[6.706582, \"o\", \"|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;20H\"]\n[6.726902, \"o\", \"\\u001b[H\\u001b[2Jx=-1.04 m\\u001b[1;20H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=-0.52 m/s\\u001b[2;20H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=2.91 rad\\u001b[3;20H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=0.27 rad/s\\u001b[4;21H|\\r\\nu=11.16\\u001b[5;21H|\\n\\b\"]\n[6.727195, \"o\", \"|\\n\\b\\b||\\n\\u001b[16G┌───|───┐\\u001b[9;16H|   |   │\\u001b[10;16H|   |   │\\u001b[11;16H|\\u001b[24G│\\u001b[12;16H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H\"]\n[6.727313, \"o\", \"|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;20H\"]\n[6.747977, \"o\", \"\\u001b[H\\u001b[2Jx=-1.05 m\\u001b[1;19H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=-0.48 m/s\\u001b[19G| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=2.92 rad\\u001b[3;19H└───┘\\u001b[3;63H\"]\n[6.748099, \"o\", \"⮠ to restart\\r\\nȧ=0.27 rad/s\\u001b[4;21H|\\r\\nu=10.89\\u001b[5;21H|\\n\\b\\b||\\n\\b\\b|\\n\\u001b[15G┌────|──┐\\u001b[9;15H|    |  │\\u001b[10;15H\"]\n[6.74842, \"o\", \"|   M|  │\\u001b[11;15H|\\u001b[23G│\\u001b[12;15H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;19H\"]\n[6.769047, \"o\", \"\\u001b[H\\u001b[2Jx=-1.06 m\\u001b[1;19H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=-0.45 m/s\\u001b[19G| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=2.92 rad\\u001b[3;19H└───┘\\u001b[3;63H\"]\n[6.769178, \"o\", \"⮠ to restart\\r\\nȧ=0.26 rad/s\\u001b[4;21H|\\r\\nu=10.63\\u001b[5;20H||\\n\\b\\b|\\n\\b|\\n\\u001b[15G┌────|──┐\\u001b[9;15H|    |  │\\u001b[10;15H|   ||  │\\u001b[11;15H\"]\n[6.76953, \"o\", \"|\\u001b[23G│\\u001b[12;15H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;19H\"]\n[6.790237, \"o\", \"\\u001b[H\\u001b[2Jx=-1.07 m\\u001b[1;19H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=-0.41 m/s\\u001b[19G| m |\\u001b[2;63H→ to nudge right\\u001b[3;1H\"]\n[6.790359, \"o\", \"a=2.93 rad\\u001b[3;19H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=0.26 rad/s\\u001b[20G||\\r\\nu=10.38\\u001b[5;20H|\\n\\b\"]\n[6.790707, \"o\", \"|\\n\\b|\\n\\u001b[15G┌────|──┐\\u001b[9;15H|   ||  │\\u001b[10;15H|   |   │\\u001b[11;15H|\\u001b[23G│\\u001b[12;15H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H\"]\n[6.790798, \"o\", \"|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;19H\"]\n[6.811087, \"o\", \"\\u001b[H\\u001b[2Jx=-1.08 m\\u001b[1;19H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=-0.37 m/s\\u001b[19G| m |\\u001b[2;63H\"]\n[6.811439, \"o\", \"→ to nudge right\\u001b[3;1Ha=2.93 rad\\u001b[3;19H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=0.25 rad/s\\u001b[20G|\\r\\nu=10.12\\u001b[5;20H|\\n\\b|\\n\\b|\\n\\u001b[15G┌───||──┐\\u001b[9;15H|   |   │\\u001b[10;15H|   |   │\\u001b[11;15H|\\u001b[23G│\\u001b[12;15H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H\"]\n[6.811738, \"o\", \"|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;19H\"]\n[6.831979, \"o\", \"\\u001b[H\\u001b[2Jx=-1.09 m\\u001b[1;19H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=-0.34 m/s\\u001b[19G| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=2.94 rad\\u001b[3;19H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=0.25 rad/s\\u001b[20G|\\r\\nu=9.87\\u001b[5;20H\"]\n[6.832075, \"o\", \"|\\n\\b|\\n\\b\\b||\\n\\u001b[15G┌───|───┐\\u001b[9;15H|   |   │\\u001b[10;15H|   |   │\\u001b[11;15H|\\u001b[23G│\\u001b[12;15H\"]\n[6.83245, \"o\", \"└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;19H\"]\n[6.852599, \"o\", \"\\u001b[H\\u001b[2Jx=-1.09 m\\u001b[1;18H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=-0.31 m/s\\u001b[18G| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=2.94 rad\\u001b[18G└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=0.24 rad/s\\u001b[20G|\\r\\nu=9.63\\u001b[5;20H|\\n\\b|\\n\\b\\b||\\n\\u001b[15G┌───|───┐\\u001b[9;15H|   |   │\\u001b[10;15H|   |   │\\u001b[11;15H\"]\n[6.852666, \"o\", \"|\\u001b[23G│\\u001b[12;15H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n \"]\n[6.852905, \"o\", \"-2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;18H\"]\n[6.872988, \"o\", \"\\u001b[H\\u001b[2Jx=-1.10 m\\u001b[1;18H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=-0.27 m/s\\u001b[18G| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=2.95 rad\\u001b[18G└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=0.24 rad/s\\u001b[20G|\\r\\nu=9.39\\u001b[5;20H|\\n\\b\\b||\\n\\b\\b|\\n\\u001b[15G┌───|───┐\\u001b[9;15H|   |   │\\u001b[10;15H|   |   │\\u001b[11;15H|\\u001b[23G│\\u001b[12;15H\"]\n[6.873054, \"o\", \"└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;18H\"]\n[6.893326, \"o\", \"\\u001b[H\\u001b[2Jx=-1.10 m\\u001b[1;18H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=-0.24 m/s\\u001b[18G| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=2.95 rad\\u001b[18G└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=0.24 rad/s\\u001b[20G|\\r\\nu=9.16\\u001b[5;19H||\\n\\b\\b|\\n\\b\"]\n[6.893393, \"o\", \"|\\n\\u001b[15G┌───|───┐\\u001b[9;15H|   |   │\\u001b[10;15H|   |   │\\u001b[11;15H|\\u001b[23G│\\u001b[12;15H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H\"]\n[6.89357, \"o\", \"|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;18H\"]\n[6.913744, \"o\", \"\\u001b[H\\u001b[2Jx=-1.11 m\\u001b[1;18H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=-0.21 m/s\\u001b[18G| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=2.96 rad\\u001b[18G└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=0.23 rad/s\\u001b[20G\"]\n[6.913804, \"o\", \"|\\r\\nu=8.93\\u001b[5;19H||\\n\\b\\b|\\n\\b|\\n\\u001b[14G┌────|──┐\\u001b[9;14H|    |  │\\u001b[10;14H\"]\n[6.913997, \"o\", \"|   M|  │\\u001b[11;14H|\\u001b[22G│\\u001b[12;14H\"]\n[6.914133, \"o\", \"└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;18H\"]\n[6.934162, \"o\", \"\\u001b[H\\u001b[2Jx=-1.11 m\\u001b[1;18H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=-0.18 m/s\\u001b[18G| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=2.96 rad\\u001b[18G└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=0.23 rad/s\\u001b[19G||\\r\\nu=8.71\\u001b[5;19H|\\n\\b|\\n\\b\"]\n[6.934218, \"o\", \"|\\n\\u001b[14G┌────|──┐\\u001b[9;14H|    |  │\\u001b[10;14H|   M|  │\\u001b[11;14H|\\u001b[22G│\\u001b[12;14H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H\"]\n[6.934238, \"o\", \"|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G\"]\n[6.934252, \"o\", \"1.00     1.50\\u001b[4;18H\"]\n[6.95464, \"o\", \"\\u001b[H\\u001b[2Jx=-1.12 m\\u001b[1;18H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=-0.16 m/s\\u001b[18G| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=2.97 rad\\u001b[18G└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=0.22 rad/s\\u001b[19G||\\r\\nu=8.49\\u001b[5;19H|\\n\\b|\\n\\b|\\n\\u001b[14G┌────|──┐\\u001b[9;14H|   ||  │\\u001b[10;14H|   |   │\\u001b[11;14H|\\u001b[22G│\\u001b[12;14H\"]\n[6.954827, \"o\", \"└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;18H\"]\n[6.975246, \"o\", \"\\u001b[H\\u001b[2Jx=-1.12 m\\u001b[1;18H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=-0.13 m/s\\u001b[18G| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=2.97 rad\\u001b[18G└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=0.22 rad/s\\u001b[19G|\\r\\nu=8.28\\u001b[5;19H\"]\n[6.975366, \"o\", \"|\\n\\b|\\n\\b|\\n\\u001b[14G┌────|──┐\\u001b[9;14H|   ||  │\\u001b[10;14H|   |   │\\u001b[11;14H|\\u001b[22G│\\u001b[12;14H└o-----o┘\\r\\n\"]\n[6.976105, \"o\", \"\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;18H\"]\n[6.996276, \"o\", \"\\u001b[H\\u001b[2Jx=-1.12 m\\u001b[1;18H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=-0.10 m/s\\u001b[18G| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=2.97 rad\\u001b[18G└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=0.22 rad/s\\u001b[19G|\\r\\nu=8.07\\u001b[5;19H\"]\n[6.996733, \"o\", \"|\\n\\b|\\n\\b|\\n\\u001b[14G┌────|──┐\\u001b[9;14H|   ||  │\\u001b[10;14H|   |   │\\u001b[11;14H|\\u001b[22G│\\u001b[12;14H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;18H\"]\n[7.017666, \"o\", \"\\u001b[H\\u001b[2Jx=-1.12 m\\u001b[1;18H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=-0.07 m/s\\u001b[18G| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=2.98 rad\\u001b[18G└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=0.21 rad/s\\u001b[19G|\\r\\nu=7.86\\u001b[5;19H\"]\n[7.018108, \"o\", \"|\\n\\b|\\n\\b|\\n\\u001b[14G┌────|──┐\\u001b[9;14H|   ||  │\\u001b[10;14H|   |   │\\u001b[11;14H|\\u001b[22G│\\u001b[12;14H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;18H\"]\n[7.038556, \"o\", \"\\u001b[H\\u001b[2Jx=-1.12 m\\u001b[1;18H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=-0.05 m/s\\u001b[18G| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=2.98 rad\\u001b[18G└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=0.21 rad/s\\u001b[19G|\\r\\nu=7.65\\u001b[5;19H\"]\n[7.038684, \"o\", \"|\\n\\b|\\n\\b|\\n\\u001b[14G┌───||──┐\\u001b[9;14H|   |   │\\u001b[10;14H|   |   │\\u001b[11;14H|\\u001b[22G│\\u001b[12;14H└o-----o┘\\r\\n\"]\n[7.039058, \"o\", \"\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;18H\"]\n[7.059592, \"o\", \"\\u001b[H\\u001b[2Jx=-1.12 m\\u001b[17G┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=-0.02 m/s     | m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=2.99 rad\\u001b[17G└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=0.20 rad/s\\u001b[19G|\\r\\nu=7.45\\u001b[5;19H\"]\n[7.059717, \"o\", \"|\\n\\b|\\n\\b|\\n\\u001b[14G┌───||──┐\\u001b[9;14H|   |   │\\u001b[10;14H|   |   │\\u001b[11;14H|\\u001b[22G│\\u001b[12;14H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\"]\n[7.060112, \"o\", \"\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;17H\"]\n[7.080401, \"o\", \"\\u001b[H\\u001b[2Jx=-1.12 m\\u001b[17G┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.00 m/s\\u001b[17G| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=2.99 rad\\u001b[17G└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=0.20 rad/s\\u001b[19G|\\r\\nu=7.24\\u001b[5;19H\"]\n[7.080717, \"o\", \"|\\n\\b|\\n\\b|\\n\\u001b[14G┌───||──┐\\u001b[9;14H|   |   │\\u001b[10;14H|   |   │\\u001b[11;14H|\\u001b[22G│\\u001b[12;14H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H\"]\n[7.081081, \"o\", \"|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;17H\"]\n[7.101278, \"o\", \"\\u001b[H\\u001b[2Jx=-1.12 m\\u001b[17G┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.02 m/s\\u001b[17G| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.00 rad\\u001b[17G└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=0.20 rad/s\\u001b[19G|\\r\\nu=7.05\\u001b[5;19H\"]\n[7.101454, \"o\", \"|\\n\\b|\\n\\b|\\n\\u001b[14G┌───||──┐\\u001b[9;14H|   |   │\\u001b[10;14H|   |   │\\u001b[11;14H|\\u001b[22G│\\u001b[12;14H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H\"]\n[7.101888, \"o\", \"|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;17H\"]\n[7.122298, \"o\", \"\\u001b[H\\u001b[2Jx=-1.12 m\\u001b[17G┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.05 m/s\\u001b[17G| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.00 rad\\u001b[17G└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=0.19 rad/s\\u001b[19G|\\r\\nu=6.85\\u001b[5;19H|\\n\\b|\\n\\b\"]\n[7.122415, \"o\", \"|\\n\\u001b[14G┌───||──┐\\u001b[9;14H|   |   │\\u001b[10;14H|   |   │\\u001b[11;14H|\\u001b[22G│\\u001b[12;14H└o-----o┘\\r\\n\"]\n[7.122794, \"o\", \"\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;17H\"]\n[7.143199, \"o\", \"\\u001b[H\\u001b[2Jx=-1.12 m\\u001b[17G┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.07 m/s\\u001b[17G| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.00 rad\\u001b[17G└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=0.19 rad/s\\u001b[19G|\\r\\nu=6.66\\u001b[5;19H\"]\n[7.143507, \"o\", \"|\\n\\b|\\n\\b|\\n\\u001b[14G┌───||──┐\\u001b[9;14H|   |   │\\u001b[10;14H|   |   │\\u001b[11;14H|\\u001b[22G│\\u001b[12;14H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\"]\n[7.143805, \"o\", \"\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;17H\"]\n[7.164187, \"o\", \"\\u001b[H\\u001b[2Jx=-1.12 m\\u001b[17G┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.09 m/s\\u001b[17G| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.01 rad\\u001b[17G└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=0.19 rad/s\\u001b[19G|\\r\\nu=6.47\\u001b[5;19H\"]\n[7.164572, \"o\", \"|\\n\\b|\\n\\b|\\n\\u001b[14G┌────|──┐\\u001b[9;14H|   ||  │\\u001b[10;14H|   |   │\\u001b[11;14H|\\u001b[22G│\\u001b[12;14H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H\"]\n[7.164859, \"o\", \"|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;17H\"]\n[7.185151, \"o\", \"\\u001b[H\\u001b[2Jx=-1.12 m\\u001b[17G┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.11 m/s\\u001b[17G| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.01 rad\\u001b[17G└───┘\\u001b[3;63H⮠ to restart\\r\\n\"]\n[7.185485, \"o\", \"ȧ=0.18 rad/s\\u001b[19G|\\r\\nu=6.29\\u001b[5;19H|\\n\\b|\\n\\b|\\n\\u001b[14G┌────|──┐\\u001b[9;14H|   ||  │\\u001b[10;14H|   |   │\\u001b[11;14H|\\u001b[22G│\\u001b[12;14H└o-----o┘\\r\\n\"]\n[7.185768, \"o\", \"\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;17H\"]\n[7.206101, \"o\", \"\\u001b[H\\u001b[2Jx=-1.11 m\\u001b[17G┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.13 m/s\\u001b[17G| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.02 rad\\u001b[17G└───┘\\u001b[3;63H\"]\n[7.206223, \"o\", \"⮠ to restart\\r\\nȧ=0.18 rad/s\\u001b[19G|\\r\\nu=6.10\\u001b[5;19H|\\n\\b|\\n\\b|\\n\\u001b[14G┌────|──┐\\u001b[9;14H|   ||  │\\u001b[10;14H\"]\n[7.206305, \"o\", \"|   |   │\\u001b[11;14H|\\u001b[22G│\\u001b[12;14H└o-----o┘\\r\\n\"]\n[7.20657, \"o\", \"\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;17H\"]\n[7.227152, \"o\", \"\\u001b[H\\u001b[2Jx=-1.11 m\\u001b[17G┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.15 m/s\\u001b[17G| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.02 rad\\u001b[17G└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=0.18 rad/s\\u001b[19G|\\r\\nu=5.93\\u001b[5;19H\"]\n[7.227283, \"o\", \"|\\n\\b|\\n\\b|\\n\\u001b[14G┌────|──┐\\u001b[9;14H|    |  │\\u001b[10;14H|   M|  │\\u001b[11;14H|\\u001b[22G│\\u001b[12;14H└o-----o┘\\r\\n\"]\n[7.227724, \"o\", \"\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;17H\"]\n[7.248305, \"o\", \"\\u001b[H\\u001b[2Jx=-1.11 m\\u001b[17G┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.17 m/s\\u001b[17G| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.02 rad\\u001b[17G└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=0.17 rad/s\\u001b[19G\"]\n[7.248633, \"o\", \"|\\r\\nu=5.75\\u001b[5;19H|\\n\\b|\\n\\b|\\n\\u001b[14G┌────|──┐\\u001b[9;14H|    |  │\\u001b[10;14H|   M|  │\\u001b[11;14H|\\u001b[22G│\\u001b[12;14H└o-----o┘\\r\\n\"]\n[7.248927, \"o\", \"\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;17H\"]\n[7.269271, \"o\", \"\\u001b[H\\u001b[2Jx=-1.10 m\\u001b[1;18H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.19 m/s\\u001b[18G| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.03 rad\\u001b[18G└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=0.17 rad/s\\u001b[19G|\\r\\nu=5.58\\u001b[5;19H\"]\n[7.269398, \"o\", \"|\\n\\b|\\n\\b|\\n\\u001b[15G┌───|───┐\\u001b[9;15H|   |   │\\u001b[10;15H|   |   │\\u001b[11;15H|\\u001b[23G│\\u001b[12;15H\"]\n[7.269736, \"o\", \"└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;18H\"]\n[7.290312, \"o\", \"\\u001b[H\\u001b[2Jx=-1.10 m\\u001b[1;18H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.20 m/s\\u001b[18G| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.03 rad\\u001b[18G└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=0.17 rad/s\\u001b[19G|\\r\\nu=5.41\\u001b[5;19H\"]\n[7.290645, \"o\", \"|\\n\\b|\\n\\b|\\n\\u001b[15G┌───|───┐\\u001b[9;15H|   |   │\\u001b[10;15H|   |   │\\u001b[11;15H|\\u001b[23G│\\u001b[12;15H└o-----o┘\\r\\n\"]\n[7.290959, \"o\", \"\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;18H\"]\n[7.311034, \"o\", \"\\u001b[H\\u001b[2Jx=-1.09 m\\u001b[1;18H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.22 m/s\\u001b[18G| m |\\u001b[2;63H\"]\n[7.311182, \"o\", \"→ to nudge right\\u001b[3;1Ha=3.03 rad\\u001b[18G└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=0.16 rad/s\\u001b[19G|\\r\\nu=5.24\\u001b[5;19H|\\n\\b|\\n\\b|\\n\\u001b[15G┌───|───┐\\u001b[9;15H|   |   │\\u001b[10;15H\"]\n[7.311521, \"o\", \"|   |   │\\u001b[11;15H|\\u001b[23G│\\u001b[12;15H└o-----o┘\\r\\n\"]\n[7.31183, \"o\", \"\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;18H\"]\n[7.332133, \"o\", \"\\u001b[H\\u001b[2Jx=-1.09 m\\u001b[1;18H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.24 m/s\\u001b[18G| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.04 rad\\u001b[18G└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=0.16 rad/s\\u001b[19G||\\r\\nu=5.08\\u001b[5;19H\"]\n[7.332253, \"o\", \"|\\n\\b|\\n\\b|\\n\\u001b[15G┌───|───┐\\u001b[9;15H|   |   │\\u001b[10;15H|   |   │\\u001b[11;15H|\\u001b[23G│\\u001b[12;15H└o-----o┘\\r\\n\"]\n[7.332607, \"o\", \"\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;18H\"]\n[7.352816, \"o\", \"\\u001b[H\\u001b[2Jx=-1.08 m\\u001b[1;18H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.25 m/s\\u001b[18G| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.04 rad\\u001b[18G└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=0.16 rad/s\\u001b[20G|\\r\\nu=4.92\\u001b[5;19H||\\n\\b\\b|\\n\\b|\\n\\u001b[15G┌───|───┐\\u001b[9;15H|   |   │\\u001b[10;15H|   |   │\\u001b[11;15H|\\u001b[23G│\\u001b[12;15H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;18H\"]\n[7.373419, \"o\", \"\\u001b[H\\u001b[2Jx=-1.08 m\\u001b[1;18H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.26 m/s\\u001b[18G| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.04 rad\\u001b[18G└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=0.15 rad/s\\u001b[20G|\\r\\nu=4.76\\u001b[5;20H|\\n\\b\\b||\\n\\b\\b|\\n\\u001b[15G┌───|───┐\\u001b[9;15H|   |   │\\u001b[10;15H|   |   │\\u001b[11;15H|\\u001b[23G│\\u001b[12;15H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H\"]\n[7.373481, \"o\", \"|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;18H\"]\n[7.394264, \"o\", \"\\u001b[H\\u001b[2Jx=-1.07 m\\u001b[1;18H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.28 m/s\\u001b[18G| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.05 rad\\u001b[18G└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=0.15 rad/s\\u001b[20G|\\r\\nu=4.61\\u001b[5;20H|\\n\\b|\\n\\b\\b\"]\n[7.394387, \"o\", \"||\\n\\u001b[15G┌───|───┐\\u001b[9;15H|   |   │\\u001b[10;15H|   |   │\\u001b[11;15H|\\u001b[23G│\\u001b[12;15H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n \"]\n[7.394746, \"o\", \"-2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;18H\"]\n[7.415246, \"o\", \"\\u001b[H\\u001b[2Jx=-1.07 m\\u001b[1;18H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.29 m/s\\u001b[18G| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.05 rad\\u001b[18G└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=0.15 rad/s\\u001b[20G|\\r\\nu=4.46\\u001b[5;20H\"]\n[7.415564, \"o\", \"|\\n\\b|\\n\\b|\\n\\u001b[15G┌───||──┐\\u001b[9;15H|   |   │\\u001b[10;15H|   |   │\\u001b[11;15H|\\u001b[23G│\\u001b[12;15H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H\"]\n[7.415923, \"o\", \"|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;18H\"]\n[7.436267, \"o\", \"\\u001b[H\\u001b[2Jx=-1.06 m\\u001b[1;18H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.31 m/s\\u001b[18G| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.05 rad\\u001b[18G└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=0.14 rad/s\\u001b[20G|\\r\\nu=4.31\\u001b[5;20H|\\n\\b\"]\n[7.436603, \"o\", \"|\\n\\b|\\n\\u001b[15G┌────|──┐\\u001b[9;15H|   ||  │\\u001b[10;15H|   |   │\\u001b[11;15H|\\u001b[23G│\\u001b[12;15H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H\"]\n[7.436911, \"o\", \"|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;18H\"]\n[7.457303, \"o\", \"\\u001b[H\\u001b[2Jx=-1.05 m\\u001b[1;18H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.32 m/s\\u001b[18G| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.06 rad\\u001b[18G└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=0.14 rad/s\\u001b[20G|\\r\\nu=4.17\\u001b[5;20H|\\n\\b|\\n\\b\"]\n[7.457743, \"o\", \"|\\n\\u001b[15G┌────|──┐\\u001b[9;15H|    |  │\\u001b[10;15H|   M|  │\\u001b[11;15H|\\u001b[23G│\\u001b[12;15H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H\"]\n[7.45807, \"o\", \"|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;18H\"]\n[7.478306, \"o\", \"\\u001b[H\\u001b[2Jx=-1.05 m\\u001b[1;18H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.33 m/s\\u001b[18G| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.06 rad\\u001b[18G└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=0.14 rad/s\\u001b[20G|\\r\\nu=4.02\\u001b[5;20H|\\n\\b\"]\n[7.478643, \"o\", \"|\\n\\b|\\n\\u001b[16G┌───|───┐\\u001b[9;16H|   |   │\\u001b[10;16H|   |   │\\u001b[11;16H|\\u001b[24G│\\u001b[12;16H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H\"]\n[7.478979, \"o\", \"|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;18H\"]\n[7.499169, \"o\", \"\\u001b[H\\u001b[2Jx=-1.04 m\\u001b[1;18H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.34 m/s\\u001b[18G| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.06 rad\\u001b[18G└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=0.14 rad/s\\u001b[20G|\\r\\nu=3.88\\u001b[5;20H\"]\n[7.499294, \"o\", \"|\\n\\b|\\n\\b|\\n\\u001b[16G┌───|───┐\\u001b[9;16H|   |   │\\u001b[10;16H|   |   │\\u001b[11;16H|\\u001b[24G│\\u001b[12;16H└o-----o┘\\r\\n\"]\n[7.499563, \"o\", \"\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H\"]\n[7.500226, \"o\", \"|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;18H\"]\n[7.52001, \"o\", \"\\u001b[H\\u001b[2Jx=-1.03 m\\u001b[1;19H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.35 m/s\\u001b[2;19H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.06 rad\\u001b[3;19H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=0.13 rad/s\\u001b[20G|\\r\\nu=3.75\\u001b[5;20H|\\n\\b|\\n\\b\"]\n[7.520133, \"o\", \"|\\n\\u001b[16G┌───|───┐\\u001b[9;16H|   |   │\\u001b[10;16H|   |   │\\u001b[11;16H|\\u001b[24G│\\u001b[12;16H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H\"]\n[7.520517, \"o\", \"|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;19H\"]\n[7.540989, \"o\", \"\\u001b[H\\u001b[2Jx=-1.02 m\\u001b[1;19H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.36 m/s\\u001b[2;19H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.07 rad\\u001b[3;19H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=0.13 rad/s\\u001b[20G||\\r\\nu=3.61\\u001b[5;20H\"]\n[7.541111, \"o\", \"|\\n\\b|\\n\\b|\\n\\u001b[16G┌───|───┐\\u001b[9;16H|   |   │\\u001b[10;16H|   |   │\\u001b[11;16H|\\u001b[24G│\\u001b[12;16H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\"]\n[7.541481, \"o\", \"\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;19H\"]\n[7.561924, \"o\", \"\\u001b[H\\u001b[2Jx=-1.02 m\\u001b[1;19H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.37 m/s\\u001b[2;19H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.07 rad\\u001b[3;19H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=0.13 rad/s\\u001b[4;21H|\\r\\nu=3.48\\u001b[5;21H|\\n\\b\\b||\\n\\b\\b\"]\n[7.562047, \"o\", \"|\\n\\u001b[16G┌───|───┐\\u001b[9;16H|   |   │\\u001b[10;16H|   |   │\\u001b[11;16H|\\u001b[24G│\\u001b[12;16H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H\"]\n[7.562423, \"o\", \"|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;19H\"]\n[7.582801, \"o\", \"\\u001b[H\\u001b[2Jx=-1.01 m\\u001b[1;19H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.38 m/s\\u001b[2;19H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.07 rad\\u001b[3;19H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=0.12 rad/s\\u001b[4;21H|\\r\\nu=3.35\\u001b[5;21H|\\n\\b|\\n\\b\"]\n[7.582924, \"o\", \"|\\n\\u001b[16G┌───||──┐\\u001b[9;16H|   |   │\\u001b[10;16H|   |   │\\u001b[11;16H|\\u001b[24G│\\u001b[12;16H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H\"]\n[7.583564, \"o\", \"|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;19H\"]\n[7.603749, \"o\", \"\\u001b[H\\u001b[2Jx=-1.00 m\\u001b[1;19H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.39 m/s\\u001b[2;19H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.07 rad\\u001b[3;19H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=0.12 rad/s\\u001b[4;21H|\\r\\nu=3.23\\u001b[5;21H|\\n\\b\"]\n[7.603884, \"o\", \"|\\n\\b|\\n\\u001b[16G┌────|──┐\\u001b[9;16H|    |  │\\u001b[10;16H|   M|  │\\u001b[11;16H|\\u001b[24G│\\u001b[12;16H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H\"]\n[7.604252, \"o\", \"|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;19H\"]\n[7.624733, \"o\", \"\\u001b[H\\u001b[2Jx=-0.99 m\\u001b[1;19H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.40 m/s\\u001b[2;19H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.08 rad\\u001b[3;19H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=0.12 rad/s\\u001b[4;21H|\\r\\nu=3.10\\u001b[5;21H|\\n\\b\"]\n[7.625081, \"o\", \"|\\n\\b|\\n\\u001b[17G┌───|───┐\\u001b[9;17H|   |   │\\u001b[10;17H|   |   │\\u001b[11;17H|\\u001b[25G│\\u001b[12;17H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;19H\"]\n[7.645742, \"o\", \"\\u001b[H\\u001b[2Jx=-0.98 m\\u001b[1;19H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.41 m/s\\u001b[2;19H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.08 rad\\u001b[3;19H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=0.12 rad/s\\u001b[4;21H\"]\n[7.646079, \"o\", \"|\\r\\nu=2.98\\u001b[5;21H|\\n\\b|\\n\\b|\\n\\u001b[17G┌───|───┐\\u001b[9;17H|   |   │\\u001b[10;17H|   |   │\\u001b[11;17H|\\u001b[25G│\\u001b[12;17H└o-----o┘\\r\\n\"]\n[7.646285, \"o\", \"\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;19H\"]\n[7.667011, \"o\", \"\\u001b[H\\u001b[2Jx=-0.97 m\\u001b[1;19H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.42 m/s\\u001b[2;19H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.08 rad\\u001b[3;19H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=0.11 rad/s\\u001b[4;21H|\\r\\nu=2.86\\u001b[5;21H\"]\n[7.667399, \"o\", \"|\\n\\b|\\n\\b|\\n\\u001b[17G┌───|───┐\\u001b[9;17H|   |   │\\u001b[10;17H|   |   │\\u001b[11;17H|\\u001b[25G│\\u001b[12;17H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;19H\"]\n[7.688001, \"o\", \"\\u001b[H\\u001b[2Jx=-0.97 m\\u001b[1;20H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.42 m/s\\u001b[2;20H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.08 rad\\u001b[3;20H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=0.11 rad/s\\u001b[4;22H|\\r\\nu=2.75\\u001b[5;21H|\\n\\b|\\n\\b\"]\n[7.68813, \"o\", \"|\\n\\u001b[17G┌───|───┐\\u001b[9;17H|   |   │\\u001b[10;17H|   |   │\\u001b[11;17H|\\u001b[25G│\\u001b[12;17H└o-----o┘\\r\\n\"]\n[7.688479, \"o\", \"\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;20H\"]\n[7.708755, \"o\", \"\\u001b[H\\u001b[2Jx=-0.96 m\\u001b[1;20H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.43 m/s\\u001b[2;20H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.09 rad\\u001b[3;20H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=0.11 rad/s\\u001b[4;22H|\\r\\nu=2.63\\u001b[5;22H|\\n\\b|\\n\\b\\b||\\n\\u001b[17G\"]\n[7.709104, \"o\", \"┌───|───┐\\u001b[9;17H|   |   │\\u001b[10;17H|   |   │\\u001b[11;17H|\\u001b[25G│\\u001b[12;17H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;20H\"]\n[7.729802, \"o\", \"\\u001b[H\\u001b[2Jx=-0.95 m\\u001b[1;20H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.44 m/s\\u001b[2;20H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.09 rad\\u001b[3;20H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=0.11 rad/s\\u001b[4;22H|\\r\\nu=2.52\\u001b[5;22H|\\n\\b\"]\n[7.730136, \"o\", \"|\\n\\b|\\n\\u001b[17G┌────|──┐\\u001b[9;17H|    |  │\\u001b[10;17H|   M|  │\\u001b[11;17H|\\u001b[25G│\\u001b[12;17H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;20H\"]\n[7.751041, \"o\", \"\\u001b[H\\u001b[2Jx=-0.94 m\\u001b[1;20H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.44 m/s\\u001b[2;20H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.09 rad\\u001b[3;20H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=0.10 rad/s\\u001b[4;22H|\\r\\nu=2.41\\u001b[5;22H|\\n\\b|\\n\\b\"]\n[7.751413, \"o\", \"|\\n\\u001b[18G┌───|───┐\\u001b[9;18H|   |   │\\u001b[10;18H|   |   │\\u001b[11;18H|\\u001b[26G│\\u001b[12;18H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;20H\"]\n[7.771993, \"o\", \"\\u001b[H\\u001b[2Jx=-0.93 m\\u001b[1;20H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.45 m/s\\u001b[2;20H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.09 rad\\u001b[3;20H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=0.10 rad/s\\u001b[4;22H|\\r\\nu=2.30\\u001b[5;22H|\\n\\b|\\n\\b\"]\n[7.772116, \"o\", \"|\\n\\u001b[18G┌───|───┐\\u001b[9;18H|   |   │\\u001b[10;18H|   |   │\\u001b[11;18H|\\u001b[26G│\\u001b[12;18H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H\"]\n[7.772523, \"o\", \"|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;20H\"]\n[7.792506, \"o\", \"\\u001b[H\\u001b[2Jx=-0.92 m\\u001b[1;20H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.45 m/s\\u001b[2;20H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.10 rad\\u001b[3;20H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=0.10 rad/s\\u001b[4;22H|\\r\\nu=2.20\\u001b[5;22H|\\n\\b|\\n\\b|\\n\\u001b[18G┌───|───┐\\u001b[9;18H|   |   │\\u001b[10;18H|   |   │\\u001b[11;18H|\\u001b[26G│\\u001b[12;18H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;20H\"]\n[7.812745, \"o\", \"\\u001b[H\\u001b[2Jx=-0.91 m\\u001b[1;21H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.46 m/s\\u001b[2;21H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.10 rad\\u001b[3;21H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=0.10 rad/s\\u001b[4;22H||\\r\\nu=2.10\\u001b[5;22H|\\n\\b|\\n\\b|\\n\\u001b[18G┌───|───┐\\u001b[9;18H|   |   │\\u001b[10;18H|   |   │\\u001b[11;18H|\\u001b[26G│\\u001b[12;18H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;21H\"]\n[7.832968, \"o\", \"\\u001b[H\\u001b[2Jx=-0.90 m\\u001b[1;21H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.46 m/s\\u001b[2;21H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.10 rad\\u001b[3;21H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=0.10 rad/s\\u001b[4;23H|\\r\\nu=2.00\\u001b[5;23H|\\n\\b|\\n\\b|\\n\\u001b[18G┌───||──┐\\u001b[9;18H|   |   │\\u001b[10;18H|   |   │\\u001b[11;18H|\\u001b[26G│\\u001b[12;18H└o-----o┘\\r\\n\"]\n[7.833572, \"o\", \"\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;21H\"]\n[7.853218, \"o\", \"\\u001b[H\\u001b[2Jx=-0.89 m\\u001b[1;21H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.47 m/s\\u001b[2;21H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.10 rad\\u001b[3;21H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=0.09 rad/s\\u001b[4;23H|\\r\\nu=1.90\\u001b[5;23H|\\n\\b|\\n\\b|\\n\\u001b[19G┌───|───┐\\u001b[9;19H\"]\n[7.853424, \"o\", \"|   |   │\\u001b[10;19H|   |   │\\u001b[11;19H|\\u001b[27G│\\u001b[12;19H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;21H\"]\n[7.873581, \"o\", \"\\u001b[H\\u001b[2Jx=-0.88 m\\u001b[1;21H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.47 m/s\\u001b[2;21H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.10 rad\\u001b[3;21H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=0.09 rad/s\\u001b[4;23H|\\r\\nu=1.81\\u001b[5;23H|\\n\\b|\\n\\b|\\n\\u001b[19G┌───|───┐\\u001b[9;19H|   |   │\\u001b[10;19H|   |   │\\u001b[11;19H|\\u001b[27G│\\u001b[12;19H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;21H\"]\n[7.893975, \"o\", \"\\u001b[H\\u001b[2Jx=-0.87 m\\u001b[1;21H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.48 m/s\\u001b[2;21H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.10 rad\\u001b[3;21H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=0.09 rad/s\\u001b[4;23H|\\r\\nu=1.72\\u001b[5;23H|\\n\\b|\\n\\b|\\n\\u001b[19G┌───|───┐\\u001b[9;19H|   |   │\\u001b[10;19H|   |   │\\u001b[11;19H|\\u001b[27G│\\u001b[12;19H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;21H\"]\n[7.914253, \"o\", \"\\u001b[H\\u001b[2Jx=-0.86 m\\u001b[1;21H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.48 m/s\\u001b[2;21H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.11 rad\\u001b[3;21H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=0.09 rad/s\\u001b[4;23H|\\r\\nu=1.63\\u001b[5;23H|\\n\\b|\\n\\b|\\n\\u001b[19G┌───|───┐\\u001b[9;19H|   |   │\\u001b[10;19H|   |   │\\u001b[11;19H|\\u001b[27G│\\u001b[12;19H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;21H\"]\n[7.934613, \"o\", \"\\u001b[H\\u001b[2Jx=-0.85 m\\u001b[1;22H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.48 m/s\\u001b[2;22H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.11 rad\\u001b[3;22H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=0.09 rad/s\\u001b[4;24H|\\r\\nu=1.55\\u001b[5;23H||\\n\\b\\b|\\n\\b|\\n\\u001b[19G┌───|───┐\\u001b[9;19H|   |   │\\u001b[10;19H|   |   │\\u001b[11;19H|\\u001b[27G│\\u001b[12;19H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;22H\"]\n[7.954956, \"o\", \"\\u001b[H\\u001b[2Jx=-0.84 m\\u001b[1;22H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.48 m/s\\u001b[2;22H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.11 rad\\u001b[3;22H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=0.08 rad/s\\u001b[4;24H|\\r\\nu=1.46\\u001b[5;24H|\\n\\b|\\n\\b|\\n\\u001b[19G┌────|──┐\\u001b[9;19H|    |  │\\u001b[10;19H|   M|  │\\u001b[11;19H|\\u001b[27G│\\u001b[12;19H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H\"]\n[7.955114, \"o\", \"|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;22H\"]\n[7.97546, \"o\", \"\\u001b[H\\u001b[2Jx=-0.83 m\\u001b[1;22H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.49 m/s\\u001b[2;22H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.11 rad\\u001b[3;22H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=0.08 rad/s\\u001b[4;24H\"]\n[7.975598, \"o\", \"|\\r\\nu=1.38\\u001b[5;24H|\\n\\b|\\n\\b|\\n\\u001b[20G┌───|───┐\\u001b[9;20H|   |   │\\u001b[10;20H|   |   │\\u001b[11;20H|\\u001b[28G│\\u001b[12;20H└o-----o┘\\r\\n\"]\n[7.976355, \"o\", \"\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;22H\"]\n[7.996532, \"o\", \"\\u001b[H\\u001b[2Jx=-0.82 m\\u001b[1;22H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.49 m/s\\u001b[2;22H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.11 rad\\u001b[3;22H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=0.08 rad/s\\u001b[4;24H|\\r\\nu=1.30\\u001b[5;24H|\\n\\b\"]\n[7.996675, \"o\", \"|\\n\\b|\\n\\u001b[20G┌───|───┐\\u001b[9;20H|   |   │\\u001b[10;20H|   |   │\\u001b[11;20H|\\u001b[28G│\\u001b[12;20H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H\"]\n[7.997111, \"o\", \"|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;22H\"]\n[8.017553, \"o\", \"\\u001b[H\\u001b[2Jx=-0.81 m\\u001b[1;22H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.49 m/s\\u001b[2;22H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.11 rad\\u001b[3;22H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=0.08 rad/s\\u001b[4;24H|\\r\\nu=1.22\\u001b[5;24H|\\n\\b\"]\n[8.017907, \"o\", \"|\\n\\b|\\n\\u001b[20G┌───|───┐\\u001b[9;20H|   |   │\\u001b[10;20H|   |   │\\u001b[11;20H|\\u001b[28G│\\u001b[12;20H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H\"]\n[8.018173, \"o\", \"|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;22H\"]\n[8.038439, \"o\", \"\\u001b[H\\u001b[2Jx=-0.80 m\\u001b[1;22H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.49 m/s\\u001b[2;22H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.12 rad\\u001b[3;22H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=0.08 rad/s\\u001b[4;24H|\\r\\nu=1.15\\u001b[5;24H|\\n\\b|\\n\\b\"]\n[8.038567, \"o\", \"|\\n\\u001b[20G┌───|───┐\\u001b[9;20H|   |   │\\u001b[10;20H|   |   │\\u001b[11;20H|\\u001b[28G│\\u001b[12;20H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H\"]\n[8.038948, \"o\", \"|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;22H\"]\n[8.059394, \"o\", \"\\u001b[H\\u001b[2Jx=-0.79 m\\u001b[1;23H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.49 m/s\\u001b[2;23H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.12 rad\\u001b[3;23H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=0.07 rad/s\\u001b[4;25H|\\r\\nu=1.07\\u001b[5;25H\"]\n[8.059521, \"o\", \"|\\n\\b|\\n\\b|\\n\\u001b[20G┌────|──┐\\u001b[9;20H|   ||  │\\u001b[10;20H|   |   │\\u001b[11;20H|\\u001b[28G│\\u001b[12;20H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H\"]\n[8.05999, \"o\", \"|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;23H\"]\n[8.080149, \"o\", \"\\u001b[H\\u001b[2Jx=-0.78 m\\u001b[1;23H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.49 m/s\\u001b[2;23H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.12 rad\\u001b[3;23H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=0.07 rad/s\\u001b[4;25H\"]\n[8.080262, \"o\", \"|\\r\\nu=1.00\\u001b[5;25H|\\n\\b|\\n\\b|\\n\\u001b[21G┌───|───┐\\u001b[9;21H|   |   │\\u001b[10;21H|   |   │\\u001b[11;21H|\\u001b[29G│\\u001b[12;21H└o-----o┘\\r\\n\"]\n[8.080643, \"o\", \"\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;23H\"]\n[8.101071, \"o\", \"\\u001b[H\\u001b[2Jx=-0.77 m\\u001b[1;23H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.50 m/s\\u001b[2;23H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.12 rad\\u001b[3;23H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=0.07 rad/s\\u001b[4;25H|\\r\\nu=0.92\\u001b[5;25H|\\n\\b|\\n\\b\"]\n[8.101191, \"o\", \"|\\n\\u001b[21G┌───|───┐\\u001b[9;21H|   |   │\\u001b[10;21H|   |   │\\u001b[11;21H|\\u001b[29G│\\u001b[12;21H└o-----o┘\\r\\n\"]\n[8.101465, \"o\", \"\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;23H\"]\n[8.122112, \"o\", \"\\u001b[H\\u001b[2Jx=-0.76 m\\u001b[1;23H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.50 m/s\\u001b[2;23H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.12 rad\\u001b[3;23H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=0.07 rad/s\\u001b[4;25H|\\r\\nu=0.85\\u001b[5;25H\"]\n[8.122236, \"o\", \"|\\n\\b|\\n\\b|\\n\\u001b[21G┌───|───┐\\u001b[9;21H|   |   │\\u001b[10;21H|   |   │\\u001b[11;21H|\\u001b[29G│\\u001b[12;21H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\"]\n[8.122637, \"o\", \"\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;23H\"]\n[8.143059, \"o\", \"\\u001b[H\\u001b[2Jx=-0.75 m\\u001b[1;23H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.50 m/s\\u001b[2;23H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.12 rad\\u001b[3;23H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=0.07 rad/s\\u001b[4;25H|\\r\\nu=0.78\\u001b[5;25H|\\n\\b|\\n\\b\"]\n[8.143185, \"o\", \"|\\n\\u001b[21G┌───|───┐\\u001b[9;21H|   |   │\\u001b[10;21H|   |   │\\u001b[11;21H|\\u001b[29G│\\u001b[12;21H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H\"]\n[8.143606, \"o\", \"|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;23H\"]\n[8.164023, \"o\", \"\\u001b[H\\u001b[2Jx=-0.74 m\\u001b[1;24H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.50 m/s\\u001b[2;24H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.13 rad\\u001b[3;24H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=0.06 rad/s\\u001b[4;26H|\\r\\nu=0.72\\u001b[5;26H|\\n\\b\"]\n[8.164336, \"o\", \"|\\n\\b|\\n\\u001b[21G┌───||──┐\\u001b[9;21H|   |   │\\u001b[10;21H|   |   │\\u001b[11;21H|\\u001b[29G│\\u001b[12;21H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H\"]\n[8.16464, \"o\", \"|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;24H\"]\n[8.184906, \"o\", \"\\u001b[H\\u001b[2Jx=-0.73 m\\u001b[1;24H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.50 m/s\\u001b[2;24H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.13 rad\\u001b[3;24H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=0.06 rad/s\\u001b[4;26H|\\r\\nu=0.65\\u001b[5;26H|\\n\\b\"]\n[8.185041, \"o\", \"|\\n\\b|\\n\\u001b[22G┌───|───┐\\u001b[9;22H|   |   │\\u001b[10;22H|   |   │\\u001b[11;22H|\\u001b[30G│\\u001b[12;22H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H\"]\n[8.185522, \"o\", \"|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;24H\"]\n[8.20598, \"o\", \"\\u001b[H\\u001b[2Jx=-0.72 m\\u001b[1;24H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.50 m/s\\u001b[2;24H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.13 rad\\u001b[3;24H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=0.06 rad/s\\u001b[4;26H|\\r\\nu=0.59\\u001b[5;26H|\\n\\b|\\n\\b\"]\n[8.206254, \"o\", \"|\\n\\u001b[22G┌───|───┐\\u001b[9;22H|   |   │\\u001b[10;22H|   |   │\\u001b[11;22H|\\u001b[30G│\\u001b[12;22H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H\"]\n[8.206489, \"o\", \"|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;24H\"]\n[8.227162, \"o\", \"\\u001b[H\\u001b[2Jx=-0.71 m\\u001b[1;24H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.50 m/s\\u001b[2;24H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.13 rad\\u001b[3;24H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=0.06 rad/s\\u001b[4;26H|\\r\\nu=0.53\\u001b[5;26H|\\n\\b|\\n\\b|\\n\\u001b[22G\"]\n[8.227282, \"o\", \"┌───|───┐\\u001b[9;22H|   |   │\\u001b[10;22H|   |   │\\u001b[11;22H|\\u001b[30G│\\u001b[12;22H└o-----o┘\\r\\n\"]\n[8.227526, \"o\", \"\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;24H\"]\n[8.248181, \"o\", \"\\u001b[H\\u001b[2Jx=-0.70 m\\u001b[1;24H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.50 m/s\\u001b[2;24H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.13 rad\\u001b[3;24H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=0.06 rad/s\\u001b[4;26H|\\r\\nu=0.46\\u001b[5;26H|\\n\\b|\\n\\b\"]\n[8.248304, \"o\", \"|\\n\\u001b[22G┌───|───┐\\u001b[9;22H|   |   │\\u001b[10;22H|   |   │\\u001b[11;22H|\\u001b[30G│\\u001b[12;22H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H\"]\n[8.24864, \"o\", \"|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;24H\"]\n[8.269188, \"o\", \"\\u001b[H\\u001b[2Jx=-0.69 m\\u001b[1;25H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.49 m/s\\u001b[2;25H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.13 rad\\u001b[3;25H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=0.06 rad/s\\u001b[4;27H|\\r\\nu=0.41\\u001b[5;26H||\\n\\b\\b|\\n\\b\"]\n[8.269329, \"o\", \"|\\n\\u001b[22G┌───|───┐\\u001b[9;22H|   |   │\\u001b[10;22H|   |   │\\u001b[11;22H|\\u001b[30G│\\u001b[12;22H└o-----o┘\\r\\n\"]\n[8.269749, \"o\", \"\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;25H\"]\n[8.290148, \"o\", \"\\u001b[H\\u001b[2Jx=-0.68 m\\u001b[1;25H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.49 m/s\\u001b[2;25H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.13 rad\\u001b[3;25H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=0.05 rad/s\\u001b[4;27H|\\r\\nu=0.35\\u001b[5;27H|\\n\\b|\\n\\b\"]\n[8.290272, \"o\", \"|\\n\\u001b[23G┌───|───┐\\u001b[9;23H|   |   │\\u001b[10;23H|   |   │\\u001b[11;23H|\\u001b[31G│\\u001b[12;23H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H\"]\n[8.290655, \"o\", \"|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;25H\"]\n[8.310954, \"o\", \"\\u001b[H\\u001b[2Jx=-0.67 m\\u001b[1;25H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.49 m/s\\u001b[2;25H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.13 rad\\u001b[3;25H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=0.05 rad/s\\u001b[4;27H|\\r\\nu=0.29\\u001b[5;27H|\\n\\b|\\n\\b\"]\n[8.311414, \"o\", \"|\\n\\u001b[23G┌───|───┐\\u001b[9;23H|   |   │\\u001b[10;23H|   |   │\\u001b[11;23H|\\u001b[31G│\\u001b[12;23H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;25H\"]\n[8.331914, \"o\", \"\\u001b[H\\u001b[2Jx=-0.66 m\\u001b[1;25H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.49 m/s\\u001b[2;25H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.13 rad\\u001b[3;25H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=0.05 rad/s\\u001b[4;27H|\\r\\nu=0.24\\u001b[5;27H|\\n\\b\"]\n[8.332057, \"o\", \"|\\n\\b|\\n\\u001b[23G┌───|───┐\\u001b[9;23H|   |   │\\u001b[10;23H|   |   │\\u001b[11;23H|\\u001b[31G│\\u001b[12;23H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H\"]\n[8.332504, \"o\", \"|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;25H\"]\n[8.353091, \"o\", \"\\u001b[H\\u001b[2Jx=-0.65 m\\u001b[1;25H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.49 m/s\\u001b[2;25H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.14 rad\\u001b[3;25H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=0.05 rad/s\\u001b[4;27H|\\r\\nu=0.19\\u001b[5;27H|\\n\\b|\\n\\b|\\n\\u001b[23G┌───|───┐\\u001b[9;23H\"]\n[8.353218, \"o\", \"|   |   │\\u001b[10;23H|   |   │\\u001b[11;23H|\\u001b[31G│\\u001b[12;23H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H\"]\n[8.35375, \"o\", \"|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;25H\"]\n[8.374079, \"o\", \"\\u001b[H\\u001b[2Jx=-0.64 m\\u001b[1;25H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.49 m/s\\u001b[2;25H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.14 rad\\u001b[3;25H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=0.05 rad/s\\u001b[4;27H|\\r\\nu=0.14\\u001b[5;27H|\\n\\b|\\n\\b\"]\n[8.374199, \"o\", \"|\\n\\u001b[23G┌───|───┐\\u001b[9;23H|   |   │\\u001b[10;23H|   |   │\\u001b[11;23H|\\u001b[31G│\\u001b[12;23H└o-----o┘\\r\\n\"]\n[8.374488, \"o\", \"\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;25H\"]\n[8.39491, \"o\", \"\\u001b[H\\u001b[2Jx=-0.63 m\\u001b[1;26H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.49 m/s\\u001b[2;26H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.14 rad\\u001b[3;26H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=0.05 rad/s\\u001b[4;28H|\\r\\nu=0.09\\u001b[5;28H|\\n\\b\"]\n[8.395043, \"o\", \"|\\n\\b|\\n\\u001b[24G┌───|───┐\\u001b[9;24H|   |   │\\u001b[10;24H|   |   │\\u001b[11;24H|\\u001b[32G│\\u001b[12;24H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H\"]\n[8.395499, \"o\", \"|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;26H\"]\n[8.415982, \"o\", \"\\u001b[H\\u001b[2Jx=-0.62 m\\u001b[1;26H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.48 m/s\\u001b[2;26H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.14 rad\\u001b[3;26H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=0.05 rad/s\\u001b[4;28H|\\r\\nu=0.04\\u001b[5;28H|\\n\\b\"]\n[8.416104, \"o\", \"|\\n\\b|\\n\\u001b[24G┌───|───┐\\u001b[9;24H|   |   │\\u001b[10;24H|   |   │\\u001b[11;24H|\\u001b[32G│\\u001b[12;24H└o-----o┘\\r\\n\"]\n[8.416738, \"o\", \"\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;26H\"]\n[8.437065, \"o\", \"\\u001b[H\\u001b[2Jx=-0.61 m\\u001b[1;26H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.48 m/s\\u001b[2;26H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.14 rad\\u001b[3;26H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=0.04 rad/s\\u001b[4;28H|\\r\\nu=-0.00\\u001b[5;28H|\\n\\b|\\n\\b|\\n\\u001b[24G\"]\n[8.437192, \"o\", \"┌───|───┐\\u001b[9;24H|   |   │\\u001b[10;24H|   |   │\\u001b[11;24H|\\u001b[32G│\\u001b[12;24H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H\"]\n[8.437614, \"o\", \"|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;26H\"]\n[8.457885, \"o\", \"\\u001b[H\\u001b[2Jx=-0.60 m\\u001b[1;26H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.48 m/s\\u001b[2;26H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.14 rad\\u001b[3;26H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=0.04 rad/s\\u001b[4;28H|\\r\\nu=-0.05\\u001b[5;28H|\\n\\b|\\n\\b\"]\n[8.458196, \"o\", \"|\\n\\u001b[24G┌───|───┐\\u001b[9;24H|   |   │\\u001b[10;24H|   |   │\\u001b[11;24H|\\u001b[32G│\\u001b[12;24H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H\"]\n[8.458478, \"o\", \"|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;26H\"]\n[8.47882, \"o\", \"\\u001b[H\\u001b[2Jx=-0.59 m\\u001b[1;26H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.48 m/s\\u001b[2;26H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.14 rad\\u001b[3;26H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=0.04 rad/s\\u001b[4;28H|\\r\\nu=-0.09\\u001b[5;28H\"]\n[8.478952, \"o\", \"|\\n\\b|\\n\\b|\\n\\u001b[24G┌───|───┐\\u001b[9;24H|   |   │\\u001b[10;24H|   |   │\\u001b[11;24H|\\u001b[32G│\\u001b[12;24H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H\"]\n[8.479411, \"o\", \"|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;26H\"]\n[8.500259, \"o\", \"\\u001b[H\\u001b[2Jx=-0.58 m\\u001b[1;27H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.47 m/s\\u001b[2;27H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.14 rad\\u001b[3;27H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=0.04 rad/s\\u001b[4;29H|\\r\\nu=-0.13\\u001b[5;29H|\\n\\b\"]\n[8.500389, \"o\", \"|\\n\\b|\\n\\u001b[25G┌───|───┐\\u001b[9;25H|   |   │\\u001b[10;25H|   |   │\\u001b[11;25H|\\u001b[33G│\\u001b[12;25H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H\"]\n[8.50081, \"o\", \"|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;27H\"]\n[8.521293, \"o\", \"\\u001b[H\\u001b[2Jx=-0.57 m\\u001b[1;27H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.47 m/s\\u001b[2;27H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.14 rad\\u001b[3;27H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=0.04 rad/s\\u001b[4;29H|\\r\\nu=-0.17\\u001b[5;29H|\\n\\b\"]\n[8.521423, \"o\", \"|\\n\\b|\\n\\u001b[25G┌───|───┐\\u001b[9;25H|   |   │\\u001b[10;25H|   |   │\\u001b[11;25H|\\u001b[33G│\\u001b[12;25H└o-----o┘\\r\\n\"]\n[8.521962, \"o\", \"\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;27H\"]\n[8.54239, \"o\", \"\\u001b[H\\u001b[2Jx=-0.56 m\\u001b[1;27H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.47 m/s\\u001b[2;27H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.14 rad\\u001b[3;27H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=0.04 rad/s\\u001b[4;29H|\\r\\nu=-0.21\\u001b[5;29H|\\n\\b\"]\n[8.542691, \"o\", \"|\\n\\b|\\n\\u001b[25G┌───|───┐\\u001b[9;25H|   |   │\\u001b[10;25H|   |   │\\u001b[11;25H|\\u001b[33G│\\u001b[12;25H└o-----o┘\\r\\n\"]\n[8.543006, \"o\", \"\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;27H\"]\n[8.563304, \"o\", \"\\u001b[H\\u001b[2Jx=-0.55 m\\u001b[1;27H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.47 m/s\\u001b[2;27H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.14 rad\\u001b[3;27H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=0.04 rad/s\\u001b[4;29H|\\r\\nu=-0.25\\u001b[5;29H|\\n\\b|\\n\\b\"]\n[8.563434, \"o\", \"|\\n\\u001b[25G┌───|───┐\\u001b[9;25H|   |   │\\u001b[10;25H|   |   │\\u001b[11;25H|\\u001b[33G│\\u001b[12;25H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H\"]\n[8.563896, \"o\", \"|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;27H\"]\n[8.584083, \"o\", \"\\u001b[H\\u001b[2Jx=-0.54 m\\u001b[1;27H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.46 m/s\\u001b[2;27H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.15 rad\\u001b[3;27H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=0.04 rad/s\\u001b[4;29H|\\r\\nu=-0.29\\u001b[5;29H|\\n\\b|\\n\\b\"]\n[8.584209, \"o\", \"|\\n\\u001b[25G┌───|───┐\\u001b[9;25H|   |   │\\u001b[10;25H|   |   │\\u001b[11;25H|\\u001b[33G│\\u001b[12;25H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H\"]\n[8.584604, \"o\", \"|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;27H\"]\n[8.605164, \"o\", \"\\u001b[H\\u001b[2Jx=-0.53 m\\u001b[1;27H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.46 m/s\\u001b[2;27H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.15 rad\\u001b[3;27H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=0.03 rad/s\\u001b[4;29H|\\r\\nu=-0.32\\u001b[5;29H|\\n\\b|\\n\\b|\\n\\u001b[25G\"]\n[8.605288, \"o\", \"┌───|───┐\\u001b[9;25H|   |   │\\u001b[10;25H|   |   │\\u001b[11;25H|\\u001b[33G│\\u001b[12;25H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H\"]\n[8.605584, \"o\", \"|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n \"]\n[8.605874, \"o\", \"-2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;27H\"]\n[8.626203, \"o\", \"\\u001b[H\\u001b[2Jx=-0.52 m\\u001b[1;28H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.46 m/s\\u001b[2;28H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.15 rad\\u001b[3;28H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=0.03 rad/s\\u001b[4;30H|\\r\\nu=-0.36\\u001b[5;30H|\\n\\b|\\n\\b\"]\n[8.626517, \"o\", \"|\\n\\u001b[26G┌───|───┐\\u001b[9;26H|   |   │\\u001b[10;26H|   |   │\\u001b[11;26H|\\u001b[34G│\\u001b[12;26H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H\"]\n[8.626796, \"o\", \"|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;28H\"]\n[8.647027, \"o\", \"\\u001b[H\\u001b[2Jx=-0.51 m\\u001b[1;28H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.45 m/s\\u001b[2;28H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.15 rad\\u001b[3;28H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=0.03 rad/s\\u001b[4;30H|\\r\\nu=-0.39\\u001b[5;30H|\\n\\b|\\n\\b\"]\n[8.647153, \"o\", \"|\\n\\u001b[26G┌───|───┐\\u001b[9;26H|   |   │\\u001b[10;26H|   |   │\\u001b[11;26H|\\u001b[34G│\\u001b[12;26H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H\"]\n[8.647589, \"o\", \"|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;28H\"]\n[8.668041, \"o\", \"\\u001b[H\\u001b[2Jx=-0.50 m\\u001b[1;28H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.45 m/s\\u001b[2;28H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.15 rad\\u001b[3;28H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=0.03 rad/s\\u001b[4;30H|\\r\\nu=-0.42\\u001b[5;30H|\\n\\b|\\n\\b\"]\n[8.668169, \"o\", \"|\\n\\u001b[26G┌───|───┐\\u001b[9;26H|   |   │\\u001b[10;26H|   |   │\\u001b[11;26H|\\u001b[34G│\\u001b[12;26H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H\"]\n[8.66856, \"o\", \"|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;28H\"]\n[8.688955, \"o\", \"\\u001b[H\\u001b[2Jx=-0.49 m\\u001b[1;28H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.45 m/s\\u001b[2;28H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.15 rad\\u001b[3;28H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=0.03 rad/s\\u001b[4;30H|\\r\\nu=-0.45\\u001b[5;30H|\\n\\b|\\n\\b\"]\n[8.689076, \"o\", \"|\\n\\u001b[26G┌───|───┐\\u001b[9;26H|   |   │\\u001b[10;26H|   |   │\\u001b[11;26H|\\u001b[34G│\\u001b[12;26H└o-----o┘\\r\\n\"]\n[8.689378, \"o\", \"\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;28H\"]\n[8.709925, \"o\", \"\\u001b[H\\u001b[2Jx=-0.48 m\\u001b[1;28H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.44 m/s\\u001b[2;28H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.15 rad\\u001b[3;28H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=0.03 rad/s\\u001b[4;30H|\\r\\nu=-0.48\\u001b[5;30H\"]\n[8.710047, \"o\", \"|\\n\\b|\\n\\b|\\n\\u001b[26G┌───|───┐\\u001b[9;26H|   |   │\\u001b[10;26H|   |   │\\u001b[11;26H|\\u001b[34G│\\u001b[12;26H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\"]\n[8.710425, \"o\", \"\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;28H\"]\n[8.730814, \"o\", \"\\u001b[H\\u001b[2Jx=-0.47 m\\u001b[1;28H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.44 m/s\\u001b[2;28H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.15 rad\\u001b[3;28H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=0.03 rad/s\\u001b[4;31H|\\r\\nu=-0.51\\u001b[5;31H|\\n\\b\"]\n[8.730956, \"o\", \"|\\n\\b|\\n\\u001b[27G┌───|───┐\\u001b[9;27H|   |   │\\u001b[10;27H|   |   │\\u001b[11;27H|\\u001b[35G│\\u001b[12;27H└o-----o┘\\r\\n\"]\n[8.731315, \"o\", \"\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;28H\"]\n[8.751792, \"o\", \"\\u001b[H\\u001b[2Jx=-0.46 m\\u001b[1;29H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.44 m/s\\u001b[2;29H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.15 rad\\u001b[3;29H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=0.03 rad/s\\u001b[4;31H|\\r\\nu=-0.53\\u001b[5;31H|\\n\\b\"]\n[8.752146, \"o\", \"|\\n\\b|\\n\\u001b[27G┌───|───┐\\u001b[9;27H|   |   │\\u001b[10;27H|   |   │\\u001b[11;27H|\\u001b[35G│\\u001b[12;27H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H\"]\n[8.752467, \"o\", \"|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;29H\"]\n[8.772559, \"o\", \"\\u001b[H\\u001b[2Jx=-0.45 m\\u001b[1;29H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.43 m/s\\u001b[2;29H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.15 rad\\u001b[3;29H└───┘\\u001b[3;63H⮠ to restart\\r\\n\"]\n[8.772706, \"o\", \"ȧ=0.03 rad/s\\u001b[4;31H|\\r\\nu=-0.56\\u001b[5;31H|\\n\\b|\\n\\b|\\n\\u001b[27G┌───|───┐\\u001b[9;27H|   |   │\\u001b[10;27H|   |   │\\u001b[11;27H|\\u001b[35G│\\u001b[12;27H\"]\n[8.77304, \"o\", \"└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;29H\"]\n[8.793661, \"o\", \"\\u001b[H\\u001b[2Jx=-0.44 m\\u001b[1;29H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.43 m/s\\u001b[2;29H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.15 rad\\u001b[3;29H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=0.02 rad/s\\u001b[4;31H|\\r\\nu=-0.58\\u001b[5;31H\"]\n[8.793792, \"o\", \"|\\n\\b|\\n\\b|\\n\\u001b[27G┌───|───┐\\u001b[9;27H|   |   │\\u001b[10;27H|   |   │\\u001b[11;27H|\\u001b[35G│\\u001b[12;27H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H\"]\n[8.794256, \"o\", \"|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;29H\"]\n[8.814337, \"o\", \"\\u001b[H\\u001b[2Jx=-0.43 m\\u001b[1;29H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.42 m/s\\u001b[2;29H| m |\\u001b[2;63H\"]\n[8.814631, \"o\", \"→ to nudge right\\u001b[3;1Ha=3.15 rad\\u001b[3;29H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=0.02 rad/s\\u001b[4;31H|\\r\\nu=-0.61\\u001b[5;31H\"]\n[8.814756, \"o\", \"|\\n\\b|\\n\\b|\\n\\u001b[27G┌───|───┐\\u001b[9;27H|   |   │\\u001b[10;27H|   |   │\\u001b[11;27H|\\u001b[35G│\\u001b[12;27H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H\"]\n[8.814981, \"o\", \"|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;29H\"]\n[8.835302, \"o\", \"\\u001b[H\\u001b[2Jx=-0.43 m\\u001b[1;29H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.42 m/s\\u001b[2;29H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.15 rad\\u001b[3;29H└───┘\\u001b[3;63H\"]\n[8.83544, \"o\", \"⮠ to restart\\r\\nȧ=0.02 rad/s\\u001b[4;31H|\\r\\nu=-0.63\\u001b[5;31H\"]\n[8.835543, \"o\", \"|\\n\\b|\\n\\b|\\n\\u001b[27G┌───|───┐\\u001b[9;27H|   |   │\\u001b[10;27H|   |   │\\u001b[11;27H|\\u001b[35G│\\u001b[12;27H\"]\n[8.835925, \"o\", \"└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;29H\"]\n[8.855987, \"o\", \"\\u001b[H\\u001b[2Jx=-0.42 m\\u001b[1;29H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.42 m/s\\u001b[2;29H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.15 rad\\u001b[3;29H\"]\n[8.856051, \"o\", \"└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=0.02 rad/s\\u001b[4;32H|\\r\\nu=-0.65\\u001b[5;32H|\\n\\b|\\n\\b|\\n\\u001b[28G┌───|───┐\\u001b[9;28H|   |   │\\u001b[10;28H|   |   │\\u001b[11;28H\"]\n[8.856221, \"o\", \"|\\u001b[36G│\\u001b[12;28H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;29H\"]\n[8.876455, \"o\", \"\\u001b[H\\u001b[2Jx=-0.41 m\\u001b[1;30H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.41 m/s\\u001b[2;30H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.15 rad\\u001b[3;30H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=0.02 rad/s\\u001b[4;32H|\\r\\nu=-0.67\\u001b[5;32H|\\n\\b\"]\n[8.876506, \"o\", \"|\\n\\b|\\n\\u001b[28G┌───|───┐\\u001b[9;28H|   |   │\\u001b[10;28H|   |   │\\u001b[11;28H|\\u001b[36G│\\u001b[12;28H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H\"]\n[8.876526, \"o\", \"|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;30H\"]\n[8.896808, \"o\", \"\\u001b[H\\u001b[2Jx=-0.40 m\\u001b[1;30H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.41 m/s\\u001b[2;30H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.15 rad\\u001b[3;30H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=0.02 rad/s\\u001b[4;32H|\\r\\nu=-0.69\\u001b[5;32H|\\n\\b|\\n\\b|\\n\\u001b[28G┌───|───┐\\u001b[9;28H|   |   │\\u001b[10;28H|   |   │\\u001b[11;28H|\\u001b[36G│\\u001b[12;28H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;30H\"]\n[8.917079, \"o\", \"\\u001b[H\\u001b[2Jx=-0.39 m\\u001b[1;30H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.40 m/s\\u001b[2;30H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.15 rad\\u001b[3;30H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=0.02 rad/s\\u001b[4;32H|\\r\\nu=-0.71\\u001b[5;32H|\\n\\b|\\n\\b|\\n\\u001b[28G┌───|───┐\\u001b[9;28H|   |   │\\u001b[10;28H|   |   │\\u001b[11;28H|\\u001b[36G│\\u001b[12;28H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n \"]\n[8.917126, \"o\", \"-2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;30H\"]\n[8.937341, \"o\", \"\\u001b[H\\u001b[2Jx=-0.38 m\\u001b[1;30H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.40 m/s\\u001b[2;30H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.15 rad\\u001b[3;30H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=0.02 rad/s\\u001b[4;32H|\\r\\nu=-0.73\\u001b[5;32H|\\n\\b\"]\n[8.937528, \"o\", \"|\\n\\b|\\n\\u001b[28G┌───|───┐\\u001b[9;28H|   |   │\\u001b[10;28H|   |   │\\u001b[11;28H|\\u001b[36G│\\u001b[12;28H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;30H\"]\n[8.958291, \"o\", \"\\u001b[H\\u001b[2Jx=-0.38 m\\u001b[1;30H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.40 m/s\\u001b[2;30H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.15 rad\\u001b[3;30H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=0.02 rad/s\\u001b[4;32H|\\r\\nu=-0.74\\u001b[5;32H\"]\n[8.958714, \"o\", \"|\\n\\b|\\n\\b|\\n\\u001b[28G┌───|───┐\\u001b[9;28H|   |   │\\u001b[10;28H|   |   │\\u001b[11;28H|\\u001b[36G│\\u001b[12;28H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;30H\"]\n[8.979031, \"o\", \"\\u001b[H\\u001b[2Jx=-0.37 m\\u001b[1;30H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.39 m/s\\u001b[2;30H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.15 rad\\u001b[3;30H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=0.02 rad/s\\u001b[4;32H\"]\n[8.979454, \"o\", \"|\\r\\nu=-0.76\\u001b[5;32H|\\n\\b|\\n\\b|\\n\\b\\b\\b\\b┌──|────┐\\u001b[9;29H|  ||   │\\u001b[10;29H|   |   │\\u001b[11;29H|\\u001b[37G│\\u001b[12;29H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;30H\"]\n[9.000492, \"o\", \"\\u001b[H\\u001b[2Jx=-0.36 m\\u001b[1;31H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.39 m/s\\u001b[2;31H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.16 rad\\u001b[3;31H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=0.02 rad/s\\u001b[4;33H|\\r\\nu=-0.77\\u001b[5;33H\"]\n[9.000906, \"o\", \"|\\n\\b|\\n\\b|\\n\\u001b[29G┌───|───┐\\u001b[9;29H|   |   │\\u001b[10;29H|   |   │\\u001b[11;29H|\\u001b[37G│\\u001b[12;29H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;31H\"]\n[9.021537, \"o\", \"\\u001b[H\\u001b[2Jx=-0.35 m\\u001b[1;31H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.38 m/s\\u001b[2;31H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.16 rad\\u001b[3;31H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=0.01 rad/s\\u001b[4;33H|\\r\\nu=-0.79\\u001b[5;33H|\\n\\b\"]\n[9.022046, \"o\", \"|\\n\\b|\\n\\u001b[29G┌───|───┐\\u001b[9;29H|   |   │\\u001b[10;29H|   |   │\\u001b[11;29H|\\u001b[37G│\\u001b[12;29H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;31H\"]\n[9.042419, \"o\", \"\\u001b[H\\u001b[2Jx=-0.34 m\\u001b[1;31H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.38 m/s\\u001b[2;31H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.16 rad\\u001b[3;31H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=0.01 rad/s\\u001b[4;33H|\\r\\nu=-0.80\\u001b[5;33H|\\n\\b\"]\n[9.042839, \"o\", \"|\\n\\b|\\n\\u001b[29G┌───|───┐\\u001b[9;29H|   |   │\\u001b[10;29H|   |   │\\u001b[11;29H|\\u001b[37G│\\u001b[12;29H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;31H\"]\n[9.063403, \"o\", \"\\u001b[H\\u001b[2Jx=-0.34 m\\u001b[1;31H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.37 m/s\\u001b[2;31H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.16 rad\\u001b[3;31H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=0.01 rad/s\\u001b[4;33H|\\r\\nu=-0.81\\u001b[5;33H\"]\n[9.063805, \"o\", \"|\\n\\b|\\n\\b|\\n\\u001b[29G┌───|───┐\\u001b[9;29H|   |   │\\u001b[10;29H|   |   │\\u001b[11;29H|\\u001b[37G│\\u001b[12;29H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;31H\"]\n[9.084492, \"o\", \"\\u001b[H\\u001b[2Jx=-0.33 m\\u001b[1;31H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.37 m/s\\u001b[2;31H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.16 rad\\u001b[3;31H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=0.01 rad/s\\u001b[4;33H|\\r\\nu=-0.83\\u001b[5;33H\"]\n[9.084942, \"o\", \"|\\n\\b|\\n\\b|\\n\\u001b[29G┌───|───┐\\u001b[9;29H|   |   │\\u001b[10;29H|   |   │\\u001b[11;29H|\\u001b[37G│\\u001b[12;29H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;31H\"]\n[9.105591, \"o\", \"\\u001b[H\\u001b[2Jx=-0.32 m\\u001b[1;31H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.36 m/s\\u001b[2;31H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.16 rad\\u001b[3;31H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=0.01 rad/s\\u001b[4;33H|\\r\\nu=-0.84\\u001b[5;33H\"]\n[9.106016, \"o\", \"|\\n\\b|\\n\\b|\\n\\u001b[29G┌───|───┐\\u001b[9;29H|   |   │\\u001b[10;29H|   |   │\\u001b[11;29H|\\u001b[37G│\\u001b[12;29H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;31H\"]\n[9.126427, \"o\", \"\\u001b[H\\u001b[2Jx=-0.31 m\\u001b[1;31H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.36 m/s\\u001b[2;31H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.16 rad\\u001b[3;31H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=0.01 rad/s\\u001b[4;33H|\\r\\nu=-0.85\\u001b[5;33H\"]\n[9.126857, \"o\", \"|\\n\\b||\\n\\b|\\n\\u001b[30G┌───|───┐\\u001b[9;30H|   |   │\\u001b[10;30H|   |   │\\u001b[11;30H|\\u001b[38G│\\u001b[12;30H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;31H\"]\n[9.147444, \"o\", \"\\u001b[H\\u001b[2Jx=-0.31 m\\u001b[1;32H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.36 m/s\\u001b[2;32H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.16 rad\\u001b[3;32H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=0.01 rad/s\\u001b[4;34H|\\r\\nu=-0.86\\u001b[5;34H\"]\n[9.147911, \"o\", \"|\\n\\b|\\n\\b|\\n\\u001b[30G┌───|───┐\\u001b[9;30H|   |   │\\u001b[10;30H|   |   │\\u001b[11;30H|\\u001b[38G│\\u001b[12;30H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;32H\"]\n[9.16853, \"o\", \"\\u001b[H\\u001b[2Jx=-0.30 m\\u001b[1;32H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.35 m/s\\u001b[2;32H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.16 rad\\u001b[3;32H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=0.01 rad/s\\u001b[4;34H|\\r\\nu=-0.87\\u001b[5;34H|\\n\\b\"]\n[9.168998, \"o\", \"|\\n\\b|\\n\\u001b[30G┌───|───┐\\u001b[9;30H|   |   │\\u001b[10;30H|   |   │\\u001b[11;30H|\\u001b[38G│\\u001b[12;30H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;32H\"]\n[9.189508, \"o\", \"\\u001b[H\\u001b[2Jx=-0.29 m\\u001b[1;32H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.35 m/s\\u001b[2;32H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.16 rad\\u001b[3;32H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=0.01 rad/s\\u001b[4;34H\"]\n[9.189978, \"o\", \"|\\r\\nu=-0.88\\u001b[5;34H|\\n\\b|\\n\\b|\\n\\u001b[30G┌───|───┐\\u001b[9;30H|   |   │\\u001b[10;30H|   |   │\\u001b[11;30H|\\u001b[38G│\\u001b[12;30H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;32H\"]\n[9.210417, \"o\", \"\\u001b[H\\u001b[2Jx=-0.28 m\\u001b[1;32H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.34 m/s\\u001b[2;32H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.16 rad\\u001b[3;32H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=0.01 rad/s\\u001b[4;34H|\\r\\nu=-0.88\\u001b[5;34H\"]\n[9.210886, \"o\", \"|\\n\\b|\\n\\b|\\n\\u001b[30G┌───|───┐\\u001b[9;30H|   |   │\\u001b[10;30H|   |   │\\u001b[11;30H|\\u001b[38G│\\u001b[12;30H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;32H\"]\n[9.231605, \"o\", \"\\u001b[H\\u001b[2Jx=-0.28 m\\u001b[1;32H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.34 m/s\\u001b[2;32H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.16 rad\\u001b[3;32H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=0.01 rad/s\\u001b[4;34H\"]\n[9.232035, \"o\", \"|\\r\\nu=-0.89\\u001b[5;34H|\\n\\b|\\n\\b|\\n\\u001b[30G┌───|───┐\\u001b[9;30H|   |   │\\u001b[10;30H|   |   │\\u001b[11;30H|\\u001b[38G│\\u001b[12;30H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;32H\"]\n[9.252731, \"o\", \"\\u001b[H\\u001b[2Jx=-0.27 m\\u001b[1;32H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.33 m/s\\u001b[2;32H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.16 rad\\u001b[3;32H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=0.01 rad/s\\u001b[4;34H\"]\n[9.253168, \"o\", \"|\\r\\nu=-0.90\\u001b[5;34H|\\n\\b|\\n\\b|\\n\\u001b[30G┌───|───┐\\u001b[9;30H|   |   │\\u001b[10;30H|   |   │\\u001b[11;30H|\\u001b[38G│\\u001b[12;30H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;32H\"]\n[9.273892, \"o\", \"\\u001b[H\\u001b[2Jx=-0.26 m\\u001b[1;32H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.33 m/s\\u001b[2;32H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.16 rad\\u001b[3;32H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=0.01 rad/s\\u001b[4;34H|\\r\\nu=-0.90\\u001b[5;34H\"]\n[9.274379, \"o\", \"|\\n\\b|\\n\\b|\\n\\b\\b\\b\\b┌──|────┐\\u001b[9;31H|  ||   │\\u001b[10;31H|   |   │\\u001b[11;31H|\\u001b[39G│\\u001b[12;31H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;32H\"]\n[9.295117, \"o\", \"\\u001b[H\\u001b[2Jx=-0.26 m\\u001b[1;33H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.32 m/s\\u001b[2;33H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.16 rad\\u001b[3;33H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=0.01 rad/s\\u001b[4;35H|\\r\\nu=-0.91\\u001b[5;35H\"]\n[9.295545, \"o\", \"|\\n\\b|\\n\\b|\\n\\u001b[31G┌───|───┐\\u001b[9;31H|   |   │\\u001b[10;31H|   |   │\\u001b[11;31H|\\u001b[39G│\\u001b[12;31H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;33H\"]\n[9.316667, \"o\", \"\\u001b[H\\u001b[2Jx=-0.25 m\\u001b[1;33H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.32 m/s\\u001b[2;33H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.16 rad\\u001b[3;33H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=0.01 rad/s\\u001b[4;35H\"]\n[9.317065, \"o\", \"|\\r\\nu=-0.91\\u001b[5;35H|\\n\\b|\\n\\b|\\n\\u001b[31G┌───|───┐\\u001b[9;31H|   |   │\\u001b[10;31H|   |   │\\u001b[11;31H|\\u001b[39G│\\u001b[12;31H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;33H\"]\n[9.337757, \"o\", \"\\u001b[H\\u001b[2Jx=-0.24 m\\u001b[1;33H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.31 m/s\\u001b[2;33H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.16 rad\\u001b[3;33H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=0.01 rad/s\\u001b[4;35H\"]\n[9.338183, \"o\", \"|\\r\\nu=-0.92\\u001b[5;35H|\\n\\b|\\n\\b|\\n\\u001b[31G┌───|───┐\\u001b[9;31H|   |   │\\u001b[10;31H|   |   │\\u001b[11;31H|\\u001b[39G│\\u001b[12;31H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;33H\"]\n[9.358719, \"o\", \"\\u001b[H\\u001b[2Jx=-0.24 m\\u001b[1;33H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.31 m/s\\u001b[2;33H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.16 rad\\u001b[3;33H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=0.00 rad/s\\u001b[4;35H\"]\n[9.359158, \"o\", \"|\\r\\nu=-0.92\\u001b[5;35H|\\n\\b|\\n\\b|\\n\\u001b[31G┌───|───┐\\u001b[9;31H|   |   │\\u001b[10;31H|   |   │\\u001b[11;31H|\\u001b[39G│\\u001b[12;31H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;33H\"]\n[9.379582, \"o\", \"\\u001b[H\\u001b[2Jx=-0.23 m\\u001b[1;33H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.31 m/s\\u001b[2;33H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.16 rad\\u001b[3;33H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=0.00 rad/s\\u001b[4;35H|\\r\\nu=-0.93\\u001b[5;35H|\\n\\b\"]\n[9.379996, \"o\", \"|\\n\\b|\\n\\u001b[31G┌───|───┐\\u001b[9;31H|   |   │\\u001b[10;31H|   |   │\\u001b[11;31H|\\u001b[39G│\\u001b[12;31H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;33H\"]\n[9.400462, \"o\", \"\\u001b[H\\u001b[2Jx=-0.22 m\\u001b[1;33H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.30 m/s\\u001b[2;33H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.16 rad\\u001b[3;33H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=0.00 rad/s\\u001b[4;35H|\\r\\nu=-0.93\\u001b[5;35H|\\n\\b|\\n\\b\"]\n[9.400878, \"o\", \"|\\n\\u001b[31G┌───|───┐\\u001b[9;31H|   |   │\\u001b[10;31H|   |   │\\u001b[11;31H|\\u001b[39G│\\u001b[12;31H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;33H\"]\n[9.421527, \"o\", \"\\u001b[H\\u001b[2Jx=-0.22 m\\u001b[1;33H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.30 m/s\\u001b[2;33H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.16 rad\\u001b[3;33H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=0.00 rad/s\\u001b[4;35H|\\r\\nu=-0.93\\u001b[5;35H|\\n\\b|\\n\\b\"]\n[9.422, \"o\", \"|\\n\\u001b[31G┌───|───┐\\u001b[9;31H|   |   │\\u001b[10;31H|   |   │\\u001b[11;31H|\\u001b[39G│\\u001b[12;31H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;33H\"]\n[9.442645, \"o\", \"\\u001b[H\\u001b[2Jx=-0.21 m\\u001b[1;33H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.29 m/s\\u001b[2;33H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.16 rad\\u001b[3;33H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=0.00 rad/s\\u001b[4;35H|\\r\\nu=-0.93\\u001b[5;35H|\\n\\b|\\n\\b\"]\n[9.443107, \"o\", \"|\\n\\b\\b\\b\\b┌──|────┐\\u001b[9;32H|  |    │\\u001b[10;32H|  |M   │\\u001b[11;32H|\\u001b[40G│\\u001b[12;32H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;33H\"]\n[9.463724, \"o\", \"\\u001b[H\\u001b[2Jx=-0.20 m\\u001b[1;33H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.29 m/s\\u001b[2;33H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.16 rad\\u001b[3;33H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=0.00 rad/s\\u001b[4;36H|\\r\\nu=-0.93\\u001b[5;36H|\\n\\b|\\n\\b\"]\n[9.464152, \"o\", \"|\\n\\u001b[32G┌───|───┐\\u001b[9;32H|   |   │\\u001b[10;32H|   |   │\\u001b[11;32H|\\u001b[40G│\\u001b[12;32H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;33H\"]\n[9.484672, \"o\", \"\\u001b[H\\u001b[2Jx=-0.20 m\\u001b[1;34H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.28 m/s\\u001b[2;34H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.16 rad\\u001b[3;34H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=0.00 rad/s\\u001b[4;36H|\\r\\nu=-0.93\\u001b[5;36H|\\n\\b|\\n\\b|\\n\\u001b[32G\"]\n[9.485111, \"o\", \"┌───|───┐\\u001b[9;32H|   |   │\\u001b[10;32H|   |   │\\u001b[11;32H|\\u001b[40G│\\u001b[12;32H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;34H\"]\n[9.505706, \"o\", \"\\u001b[H\\u001b[2Jx=-0.19 m\\u001b[1;34H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.28 m/s\\u001b[2;34H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.16 rad\\u001b[3;34H└───┘\\u001b[3;63H\"]\n[9.506095, \"o\", \"⮠ to restart\\r\\nȧ=0.00 rad/s\\u001b[4;36H|\\r\\nu=-0.93\\u001b[5;36H|\\n\\b|\\n\\b|\\n\\u001b[32G┌───|───┐\\u001b[9;32H|   |   │\\u001b[10;32H|   |   │\\u001b[11;32H|\\u001b[40G│\\u001b[12;32H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H\"]\n[9.506161, \"o\", \"|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;34H\"]\n[9.526941, \"o\", \"\\u001b[H\\u001b[2Jx=-0.19 m\\u001b[1;34H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.27 m/s\\u001b[2;34H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.16 rad\\u001b[3;34H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=0.00 rad/s\\u001b[4;36H|\\r\\nu=-0.93\\u001b[5;36H|\\n\\b|\\n\\b\"]\n[9.527406, \"o\", \"|\\n\\u001b[32G┌───|───┐\\u001b[9;32H|   |   │\\u001b[10;32H|   |   │\\u001b[11;32H|\\u001b[40G│\\u001b[12;32H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;34H\"]\n[9.547775, \"o\", \"\\u001b[H\\u001b[2Jx=-0.18 m\\u001b[1;34H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.27 m/s\\u001b[2;34H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.16 rad\\u001b[3;34H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=0.00 rad/s\\u001b[4;36H\"]\n[9.548211, \"o\", \"|\\r\\nu=-0.93\\u001b[5;36H|\\n\\b|\\n\\b|\\n\\u001b[32G┌───|───┐\\u001b[9;32H|   |   │\\u001b[10;32H|   |   │\\u001b[11;32H|\\u001b[40G│\\u001b[12;32H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;34H\"]\n[9.56871, \"o\", \"\\u001b[H\\u001b[2Jx=-0.18 m\\u001b[1;34H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.27 m/s\\u001b[2;34H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.16 rad\\u001b[3;34H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=0.00 rad/s\\u001b[4;36H|\\r\\nu=-0.93\\u001b[5;36H|\\n\\b|\\n\\b|\\n\\u001b[32G┌───|───┐\\u001b[9;32H|   |   │\\u001b[10;32H|   |   │\\u001b[11;32H\"]\n[9.568839, \"o\", \"|\\u001b[40G│\\u001b[12;32H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;34H\"]\n[9.589359, \"o\", \"\\u001b[H\\u001b[2Jx=-0.17 m\\u001b[1;34H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.26 m/s\\u001b[2;34H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.16 rad\\u001b[3;34H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=-0.00 rad/s\\u001b[4;36H|\\r\\nu=-0.93\\u001b[5;36H|\\n\\b|\\n\\b|\\n\\u001b[32G┌───|───┐\\u001b[9;32H|   |   │\\u001b[10;32H|   |   │\\u001b[11;32H|\\u001b[40G│\\u001b[12;32H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H\"]\n[9.589534, \"o\", \"|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;34H\"]\n[9.609996, \"o\", \"\\u001b[H\\u001b[2Jx=-0.16 m\\u001b[1;34H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.26 m/s\\u001b[2;34H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.16 rad\\u001b[3;34H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=-0.00 rad/s\\u001b[4;36H|\\r\\nu=-0.93\\u001b[5;36H|\\n\\b|\\n\\b|\\n\\u001b[32G┌───|───┐\\u001b[9;32H|   |   │\\u001b[10;32H|   |   │\\u001b[11;32H|\\u001b[40G│\\u001b[12;32H└o-----o┘\\r\\n\"]\n[9.610263, \"o\", \"\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;34H\"]\n[9.630745, \"o\", \"\\u001b[H\\u001b[2Jx=-0.16 m\\u001b[1;34H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.25 m/s\\u001b[2;34H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.16 rad\\u001b[3;34H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=-0.00 rad/s\\u001b[4;36H|\\r\\nu=-0.93\\u001b[5;36H|\\n\\b|\\n\\b\"]\n[9.631222, \"o\", \"|\\n\\u001b[32G┌───|───┐\\u001b[9;32H|   |   │\\u001b[10;32H|   |   │\\u001b[11;32H|\\u001b[40G│\\u001b[12;32H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;34H\"]\n[9.65161, \"o\", \"\\u001b[H\\u001b[2Jx=-0.15 m\\u001b[1;34H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.25 m/s\\u001b[2;34H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.16 rad\\u001b[3;34H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=-0.00 rad/s\\u001b[4;36H|\\r\\nu=-0.93\\u001b[5;36H|\\n\\b\"]\n[9.651996, \"o\", \"||\\n\\b|\\n\\u001b[33G┌───|───┐\\u001b[9;33H|   |   │\\u001b[10;33H|   |   │\\u001b[11;33H|\\u001b[41G│\\u001b[12;33H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;34H\"]\n[9.6728, \"o\", \"\\u001b[H\\u001b[2Jx=-0.15 m\\u001b[1;35H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.24 m/s\\u001b[2;35H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.16 rad\\u001b[3;35H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=-0.00 rad/s\\u001b[4;37H|\\r\\nu=-0.92\\u001b[5;37H|\\n\\b|\\n\\b\"]\n[9.673258, \"o\", \"|\\n\\u001b[33G┌───|───┐\\u001b[9;33H|   |   │\\u001b[10;33H|   |   │\\u001b[11;33H|\\u001b[41G│\\u001b[12;33H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;35H\"]\n[9.693876, \"o\", \"\\u001b[H\\u001b[2Jx=-0.14 m\\u001b[1;35H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.24 m/s\\u001b[2;35H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.16 rad\\u001b[3;35H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=-0.00 rad/s\\u001b[4;37H\"]\n[9.6943, \"o\", \"|\\r\\nu=-0.92\\u001b[5;37H|\\n\\b|\\n\\b|\\n\\u001b[33G┌───|───┐\\u001b[9;33H|   |   │\\u001b[10;33H|   |   │\\u001b[11;33H|\\u001b[41G│\\u001b[12;33H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;35H\"]\n[9.714957, \"o\", \"\\u001b[H\\u001b[2Jx=-0.14 m\\u001b[1;35H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.24 m/s\\u001b[2;35H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.16 rad\\u001b[3;35H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=-0.00 rad/s\\u001b[4;37H|\\r\\nu=-0.92\\u001b[5;37H|\\n\\b|\\n\\b\"]\n[9.715381, \"o\", \"|\\n\\u001b[33G┌───|───┐\\u001b[9;33H|   |   │\\u001b[10;33H|   |   │\\u001b[11;33H|\\u001b[41G│\\u001b[12;33H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;35H\"]\n[9.735961, \"o\", \"\\u001b[H\\u001b[2Jx=-0.13 m\\u001b[1;35H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.23 m/s\\u001b[2;35H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.16 rad\\u001b[3;35H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=-0.00 rad/s\\u001b[4;37H|\\r\\nu=-0.92\\u001b[5;37H|\\n\\b\"]\n[9.73632, \"o\", \"|\\n\\b|\\n\\u001b[33G┌───|───┐\\u001b[9;33H|   |   │\\u001b[10;33H|   |   │\\u001b[11;33H|\\u001b[41G│\\u001b[12;33H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;35H\"]\n[9.756894, \"o\", \"\\u001b[H\\u001b[2Jx=-0.13 m\\u001b[1;35H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.23 m/s\\u001b[2;35H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.16 rad\\u001b[3;35H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=-0.00 rad/s\\u001b[4;37H|\\r\\nu=-0.91\\u001b[5;37H\"]\n[9.757373, \"o\", \"|\\n\\b|\\n\\b|\\n\\u001b[33G┌───|───┐\\u001b[9;33H|   |   │\\u001b[10;33H|   |   │\\u001b[11;33H|\\u001b[41G│\\u001b[12;33H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;35H\"]\n[9.77774, \"o\", \"\\u001b[H\\u001b[2Jx=-0.12 m\\u001b[1;35H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.22 m/s\\u001b[2;35H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.16 rad\\u001b[3;35H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=-0.00 rad/s\\u001b[4;37H|\\r\\nu=-0.91\\u001b[5;37H|\\n\\b\"]\n[9.778195, \"o\", \"|\\n\\b|\\n\\u001b[33G┌───|───┐\\u001b[9;33H|   |   │\\u001b[10;33H|   |   │\\u001b[11;33H|\\u001b[41G│\\u001b[12;33H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;35H\"]\n[9.7986, \"o\", \"\\u001b[H\\u001b[2Jx=-0.12 m\\u001b[1;35H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.22 m/s\\u001b[2;35H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.16 rad\\u001b[3;35H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=-0.00 rad/s\\u001b[4;37H\"]\n[9.799039, \"o\", \"|\\r\\nu=-0.90\\u001b[5;37H|\\n\\b|\\n\\b|\\n\\u001b[33G┌───|───┐\\u001b[9;33H|   |   │\\u001b[10;33H|   |   │\\u001b[11;33H|\\u001b[41G│\\u001b[12;33H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;35H\"]\n[9.819232, \"o\", \"\\u001b[H\\u001b[2Jx=-0.12 m\\u001b[1;35H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.22 m/s\\u001b[2;35H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.16 rad\\u001b[3;35H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=-0.00 rad/s\\u001b[4;37H|\\r\\nu=-0.90\\u001b[5;37H|\\n\\b|\\n\\b|\\n\\u001b[33G┌───|───┐\\u001b[9;33H|   |   │\\u001b[10;33H|   |   │\\u001b[11;33H|\\u001b[41G│\\u001b[12;33H└o-----o┘\\r\\n\"]\n[9.819277, \"o\", \"\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;35H\"]\n[9.839526, \"o\", \"\\u001b[H\\u001b[2Jx=-0.11 m\\u001b[1;35H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.21 m/s\\u001b[2;35H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.16 rad\\u001b[3;35H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=-0.00 rad/s\\u001b[4;37H|\\r\\nu=-0.89\\u001b[5;37H|\\n\\b|\\n\\b|\\n\\u001b[33G┌───|───┐\\u001b[9;33H|   |   │\\u001b[10;33H|   |   │\\u001b[11;33H|\\u001b[41G│\\u001b[12;33H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G\"]\n[9.839578, \"o\", \"1.00     1.50\\u001b[4;35H\"]\n[9.860048, \"o\", \"\\u001b[H\\u001b[2Jx=-0.11 m\\u001b[1;35H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.21 m/s\\u001b[2;35H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.16 rad\\u001b[3;35H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=-0.00 rad/s\\u001b[4;37H|\\r\\nu=-0.89\\u001b[5;37H|\\n\\b|\\n\\b|\\n\\u001b[33G┌───|───┐\\u001b[9;33H|   |   │\\u001b[10;33H|   |   │\\u001b[11;33H|\\u001b[41G│\\u001b[12;33H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;35H\"]\n[9.880627, \"o\", \"\\u001b[H\\u001b[2Jx=-0.10 m\\u001b[1;35H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.20 m/s\\u001b[2;35H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.16 rad\\u001b[3;35H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=-0.00 rad/s\\u001b[4;37H|\\r\\nu=-0.88\\u001b[5;37H|\\n\\b|\\n\\b|\\n\\b\\b\\b\\b┌───|───┐\\u001b[9;34H|   |   │\\u001b[10;34H|   |   │\\u001b[11;34H|\\u001b[42G│\\u001b[12;34H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H\"]\n[9.880708, \"o\", \"|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;35H\"]\n[9.90122, \"o\", \"\\u001b[H\\u001b[2Jx=-0.10 m\\u001b[1;35H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.20 m/s\\u001b[2;35H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.16 rad\\u001b[3;35H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=-0.00 rad/s\\u001b[4;38H|\\r\\nu=-0.88\\u001b[5;38H|\\n\\b|\\n\\b|\\n\\u001b[34G\"]\n[9.901493, \"o\", \"┌───|───┐\\u001b[9;34H|   |   │\\u001b[10;34H|   |   │\\u001b[11;34H|\\u001b[42G│\\u001b[12;34H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;35H\"]\n[9.921936, \"o\", \"\\u001b[H\\u001b[2Jx=-0.09 m\\u001b[1;36H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.20 m/s\\u001b[2;36H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.16 rad\\u001b[3;36H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=-0.00 rad/s\\u001b[4;38H|\\r\\nu=-0.87\\u001b[5;38H\"]\n[9.922326, \"o\", \"|\\n\\b|\\n\\b|\\n\\u001b[34G┌───|───┐\\u001b[9;34H|   |   │\\u001b[10;34H|   |   │\\u001b[11;34H|\\u001b[42G│\\u001b[12;34H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;36H\"]\n[9.942415, \"o\", \"\\u001b[H\\u001b[2Jx=-0.09 m\\u001b[1;36H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.19 m/s\\u001b[2;36H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.16 rad\\u001b[3;36H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=-0.00 rad/s\\u001b[4;38H|\\r\\nu=-0.87\\u001b[5;38H|\\n\\b\"]\n[9.942475, \"o\", \"|\\n\\b|\\n\\u001b[34G┌───|───┐\\u001b[9;34H|   |   │\\u001b[10;34H|   |   │\\u001b[11;34H|\\u001b[42G│\\u001b[12;34H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H\"]\n[9.942555, \"o\", \"|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n \"]\n[9.942614, \"o\", \"-2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;36H\"]\n[9.962905, \"o\", \"\\u001b[H\\u001b[2Jx=-0.09 m\\u001b[1;36H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.19 m/s\\u001b[2;36H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.16 rad\\u001b[3;36H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=-0.00 rad/s\\u001b[4;38H|\\r\\nu=-0.86\\u001b[5;38H|\\n\\b|\\n\\b|\\n\\u001b[34G┌───|───┐\\u001b[9;34H|   |   │\\u001b[10;34H|   |   │\\u001b[11;34H|\\u001b[42G│\\u001b[12;34H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H\"]\n[9.962979, \"o\", \"|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;36H\"]\n[9.983868, \"o\", \"\\u001b[H\\u001b[2Jx=-0.08 m\\u001b[1;36H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.19 m/s\\u001b[2;36H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.16 rad\\u001b[3;36H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=-0.01 rad/s\\u001b[4;38H\"]\n[9.984188, \"o\", \"|\\r\\nu=-0.86\\u001b[5;38H|\\n\\b|\\n\\b|\\n\\u001b[34G┌───|───┐\\u001b[9;34H|   |   │\\u001b[10;34H|   |   │\\u001b[11;34H|\\u001b[42G│\\u001b[12;34H└o-----o┘\\r\\n\"]\n[9.984409, \"o\", \"\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;36H\"]\n[10.004895, \"o\", \"\\u001b[H\\u001b[2Jx=-0.08 m\\u001b[1;36H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.18 m/s\\u001b[2;36H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.16 rad\\u001b[3;36H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=-0.01 rad/s\\u001b[4;38H\"]\n[10.005206, \"o\", \"|\\r\\nu=-0.85\\u001b[5;38H|\\n\\b|\\n\\b|\\n\\u001b[34G┌───|───┐\\u001b[9;34H|   |   │\\u001b[10;34H|   |   │\\u001b[11;34H|\\u001b[42G│\\u001b[12;34H└o-----o┘\\r\\n\"]\n[10.005522, \"o\", \"\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;36H\"]\n[10.025939, \"o\", \"\\u001b[H\\u001b[2Jx=-0.08 m\\u001b[1;36H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.18 m/s\\u001b[2;36H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.16 rad\\u001b[3;36H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=-0.01 rad/s\\u001b[4;38H\"]\n[10.026271, \"o\", \"|\\r\\nu=-0.84\\u001b[5;38H|\\n\\b|\\n\\b|\\n\\u001b[34G┌───|───┐\\u001b[9;34H|   |   │\\u001b[10;34H|   |   │\\u001b[11;34H|\\u001b[42G│\\u001b[12;34H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;36H\"]\n[10.046827, \"o\", \"\\u001b[H\\u001b[2Jx=-0.07 m\\u001b[1;36H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.18 m/s\\u001b[2;36H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.16 rad\\u001b[3;36H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=-0.01 rad/s\\u001b[4;38H\"]\n[10.046963, \"o\", \"|\\r\\nu=-0.84\\u001b[5;38H|\\n\\b|\\n\\b|\\n\\u001b[34G┌───|───┐\\u001b[9;34H|   |   │\\u001b[10;34H|   |   │\\u001b[11;34H|\\u001b[42G│\\u001b[12;34H└o-----o┘\\r\\n\"]\n[10.047333, \"o\", \"\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;36H\"]\n[10.067684, \"o\", \"\\u001b[H\\u001b[2Jx=-0.07 m\\u001b[1;36H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.17 m/s\\u001b[2;36H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.16 rad\\u001b[3;36H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=-0.01 rad/s\\u001b[4;38H|\\r\\nu=-0.83\\u001b[5;38H|\\n\\b|\\n\\b|\\n\\u001b[34G\"]\n[10.068101, \"o\", \"┌───|───┐\\u001b[9;34H|   |   │\\u001b[10;34H|   |   │\\u001b[11;34H|\\u001b[42G│\\u001b[12;34H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;36H\"]\n[10.088483, \"o\", \"\\u001b[H\\u001b[2Jx=-0.06 m\\u001b[1;36H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.17 m/s\\u001b[2;36H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.16 rad\\u001b[3;36H└───┘\\u001b[3;63H\"]\n[10.088887, \"o\", \"⮠ to restart\\r\\nȧ=-0.01 rad/s\\u001b[4;38H|\\r\\nu=-0.82\\u001b[5;38H|\\n\\b|\\n\\b|\\n\\u001b[34G┌───|───┐\\u001b[9;34H|   |   │\\u001b[10;34H|   |   │\\u001b[11;34H|\\u001b[42G│\\u001b[12;34H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H\"]\n[10.089175, \"o\", \"|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;36H\"]\n[10.109277, \"o\", \"\\u001b[H\\u001b[2Jx=-0.06 m\\u001b[1;36H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.16 m/s\\u001b[2;36H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1H\"]\n[10.10937, \"o\", \"a=3.16 rad\\u001b[3;36H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=-0.01 rad/s\\u001b[4;38H|\\r\\nu=-0.81\\u001b[5;38H|\\n\\b|\\n\\b|\\n\\u001b[34G┌───|───┐\\u001b[9;34H\"]\n[10.109732, \"o\", \"|   |   │\\u001b[10;34H|   |   │\\u001b[11;34H|\\u001b[42G│\\u001b[12;34H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;36H\"]\n[10.130258, \"o\", \"\\u001b[H\\u001b[2Jx=-0.06 m\\u001b[1;36H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.16 m/s\\u001b[2;36H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.16 rad\\u001b[3;36H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=-0.01 rad/s\\u001b[4;38H|\\r\\nu=-0.81\\u001b[5;38H|\\n\\b|\\n\\b|\\n\\u001b[34G┌───|───┐\\u001b[9;34H|   |   │\\u001b[10;34H|   |   │\\u001b[11;34H\"]\n[10.130375, \"o\", \"|\\u001b[42G│\\u001b[12;34H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;36H\"]\n[10.150848, \"o\", \"\\u001b[H\\u001b[2Jx=-0.05 m\\u001b[1;36H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.16 m/s\\u001b[2;36H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.16 rad\\u001b[3;36H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=-0.01 rad/s\\u001b[4;38H|\\r\\nu=-0.80\\u001b[5;38H|\\n\\b|\\n\\b|\\n\\u001b[34G┌───|───┐\\u001b[9;34H|   |   │\\u001b[10;34H\"]\n[10.150959, \"o\", \"|   |   │\\u001b[11;34H|\\u001b[42G│\\u001b[12;34H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G\"]\n[10.151294, \"o\", \"1.00     1.50\\u001b[4;36H\"]\n[10.171403, \"o\", \"\\u001b[H\\u001b[2Jx=-0.05 m\\u001b[1;36H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.15 m/s\\u001b[2;36H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.16 rad\\u001b[3;36H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=-0.01 rad/s\\u001b[4;38H\"]\n[10.171738, \"o\", \"|\\r\\nu=-0.79\\u001b[5;38H|\\n\\b|\\n\\b|\\n\\b\\b\\b\\b┌──|────┐\\u001b[9;35H|  ||   │\\u001b[10;35H|   |   │\\u001b[11;35H|\\u001b[43G│\\u001b[12;35H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;36H\"]\n[10.192172, \"o\", \"\\u001b[H\\u001b[2Jx=-0.05 m\\u001b[1;36H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.15 m/s\\u001b[2;36H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.16 rad\\u001b[3;36H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=-0.01 rad/s\\u001b[4;38H|\\r\\nu=-0.79\\u001b[5;38H||\\n\\b|\\n\\b\"]\n[10.192526, \"o\", \"|\\n\\u001b[35G┌───|───┐\\u001b[9;35H|   |   │\\u001b[10;35H|   |   │\\u001b[11;35H|\\u001b[43G│\\u001b[12;35H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;36H\"]\n[10.212946, \"o\", \"\\u001b[H\\u001b[2Jx=-0.04 m\\u001b[1;37H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.15 m/s\\u001b[2;37H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.16 rad\\u001b[3;37H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=-0.01 rad/s\\u001b[4;39H|\\r\\nu=-0.78\\u001b[5;39H|\\n\\b|\\n\\b|\\n\\u001b[35G┌───|───┐\\u001b[9;35H|   |   │\\u001b[10;35H|   |   │\\u001b[11;35H|\\u001b[43G│\\u001b[12;35H\"]\n[10.213262, \"o\", \"└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;37H\"]\n[10.233704, \"o\", \"\\u001b[H\\u001b[2Jx=-0.04 m\\u001b[1;37H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.14 m/s\\u001b[2;37H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.16 rad\\u001b[3;37H\"]\n[10.233971, \"o\", \"└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=-0.01 rad/s\\u001b[4;39H|\\r\\nu=-0.77\\u001b[5;39H|\\n\\b|\\n\\b|\\n\\u001b[35G┌───|───┐\\u001b[9;35H|   |   │\\u001b[10;35H|   |   │\\u001b[11;35H|\\u001b[43G│\\u001b[12;35H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;37H\"]\n[10.254371, \"o\", \"\\u001b[H\\u001b[2Jx=-0.04 m\\u001b[1;37H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.14 m/s\\u001b[2;37H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.16 rad\\u001b[3;37H└───┘\\u001b[3;63H\"]\n[10.254465, \"o\", \"⮠ to restart\\r\\nȧ=-0.01 rad/s\\u001b[4;39H|\\r\\nu=-0.76\\u001b[5;39H|\\n\\b|\\n\\b|\\n\\u001b[35G┌───|───┐\\u001b[9;35H|   |   │\\u001b[10;35H|   |   │\\u001b[11;35H\"]\n[10.254803, \"o\", \"|\\u001b[43G│\\u001b[12;35H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;37H\"]\n[10.275062, \"o\", \"\\u001b[H\\u001b[2Jx=-0.04 m\\u001b[1;37H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.14 m/s\\u001b[2;37H\"]\n[10.27517, \"o\", \"| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.16 rad\\u001b[3;37H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=-0.01 rad/s\\u001b[4;39H|\\r\\nu=-0.75\\u001b[5;39H|\\n\\b|\\n\\b|\\n\\u001b[35G\"]\n[10.275479, \"o\", \"┌───|───┐\\u001b[9;35H|   |   │\\u001b[10;35H|   |   │\\u001b[11;35H|\\u001b[43G│\\u001b[12;35H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;37H\"]\n[10.295878, \"o\", \"\\u001b[H\\u001b[2Jx=-0.03 m\\u001b[1;37H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.14 m/s\\u001b[2;37H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.16 rad\\u001b[3;37H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=-0.01 rad/s\\u001b[4;39H|\\r\\n\"]\n[10.295975, \"o\", \"u=-0.75\\u001b[5;39H|\\n\\b|\\n\\b|\\n\\u001b[35G┌───|───┐\\u001b[9;35H|   |   │\\u001b[10;35H|   |   │\\u001b[11;35H|\\u001b[43G│\\u001b[12;35H\"]\n[10.296308, \"o\", \"└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;37H\"]\n[10.317053, \"o\", \"\\u001b[H\\u001b[2Jx=-0.03 m\\u001b[1;37H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.13 m/s\\u001b[2;37H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.16 rad\\u001b[3;37H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=-0.01 rad/s\\u001b[4;39H|\\r\\nu=-0.74\\u001b[5;39H|\\n\\b|\\n\\b\"]\n[10.317145, \"o\", \"|\\n\\u001b[35G┌───|───┐\\u001b[9;35H|   |   │\\u001b[10;35H|   |   │\\u001b[11;35H|\\u001b[43G│\\u001b[12;35H└o-----o┘\\r\\n\"]\n[10.317352, \"o\", \"\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;37H\"]\n[10.337672, \"o\", \"\\u001b[H\\u001b[2Jx=-0.03 m\\u001b[1;37H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.13 m/s\\u001b[2;37H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.16 rad\\u001b[3;37H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=-0.01 rad/s\\u001b[4;39H\"]\n[10.337778, \"o\", \"|\\r\\nu=-0.73\\u001b[5;39H|\\n\\b|\\n\\b|\\n\\u001b[35G┌───|───┐\\u001b[9;35H|   |   │\\u001b[10;35H|   |   │\\u001b[11;35H\"]\n[10.338105, \"o\", \"|\\u001b[43G│\\u001b[12;35H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;37H\"]\n[10.358448, \"o\", \"\\u001b[H\\u001b[2Jx=-0.03 m\\u001b[1;37H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.13 m/s\\u001b[2;37H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.16 rad\\u001b[3;37H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=-0.01 rad/s\\u001b[4;39H|\\r\\nu=-0.72\\u001b[5;39H|\\n\\b|\\n\\b|\\n\\u001b[35G\"]\n[10.358562, \"o\", \"┌───|───┐\\u001b[9;35H|   |   │\\u001b[10;35H|   |   │\\u001b[11;35H|\\u001b[43G│\\u001b[12;35H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G\"]\n[10.358978, \"o\", \"1.00     1.50\\u001b[4;37H\"]\n[10.379172, \"o\", \"\\u001b[H\\u001b[2Jx=-0.02 m\\u001b[1;37H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.12 m/s\\u001b[2;37H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.16 rad\\u001b[3;37H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=-0.01 rad/s\\u001b[4;39H|\\r\\nu=-0.71\\u001b[5;39H|\\n\\b|\\n\\b|\\n\\u001b[35G┌───|───┐\\u001b[9;35H|   |   │\\u001b[10;35H|   |   │\\u001b[11;35H|\\u001b[43G│\\u001b[12;35H\"]\n[10.379537, \"o\", \"└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;37H\"]\n[10.400288, \"o\", \"\\u001b[H\\u001b[2Jx=-0.02 m\\u001b[1;37H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.12 m/s\\u001b[2;37H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.16 rad\\u001b[3;37H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=-0.01 rad/s\\u001b[4;39H|\\r\\nu=-0.71\\u001b[5;39H|\\n\\b|\\n\\b|\\n\\u001b[35G┌───|───┐\\u001b[9;35H|   |   │\\u001b[10;35H|   |   │\\u001b[11;35H|\\u001b[43G│\\u001b[12;35H└o-----o┘\\r\\n\"]\n[10.400595, \"o\", \"\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;37H\"]\n[10.420916, \"o\", \"\\u001b[H\\u001b[2Jx=-0.02 m\\u001b[1;37H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.12 m/s\\u001b[2;37H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.15 rad\\u001b[3;37H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=-0.01 rad/s\\u001b[4;39H\"]\n[10.421015, \"o\", \"|\\r\\nu=-0.70\\u001b[5;39H|\\n\\b|\\n\\b|\\n\\u001b[35G┌───|───┐\\u001b[9;35H|   |   │\\u001b[10;35H|   |   │\\u001b[11;35H\"]\n[10.421321, \"o\", \"|\\u001b[43G│\\u001b[12;35H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;37H\"]\n[10.441655, \"o\", \"\\u001b[H\\u001b[2Jx=-0.02 m\\u001b[1;37H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.11 m/s\\u001b[2;37H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.15 rad\\u001b[3;37H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=-0.01 rad/s\\u001b[4;39H|\\r\\nu=-0.69\\u001b[5;39H|\\n\\b|\\n\\b|\\n\\u001b[35G┌───|───┐\\u001b[9;35H\"]\n[10.441958, \"o\", \"|   |   │\\u001b[10;35H|   |   │\\u001b[11;35H|\\u001b[43G│\\u001b[12;35H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;37H\"]\n[10.462236, \"o\", \"\\u001b[H\\u001b[2Jx=-0.01 m\\u001b[1;37H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.11 m/s\\u001b[2;37H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.15 rad\\u001b[3;37H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=-0.01 rad/s\\u001b[4;39H|\\r\\nu=-0.68\\u001b[5;39H|\\n\\b|\\n\\b|\\n\\u001b[35G┌───|───┐\\u001b[9;35H|   |   │\\u001b[10;35H|   |   │\\u001b[11;35H|\\u001b[43G│\\u001b[12;35H\"]\n[10.462353, \"o\", \"└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;37H\"]\n[10.483265, \"o\", \"\\u001b[H\\u001b[2Jx=-0.01 m\\u001b[1;37H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.11 m/s\\u001b[2;37H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.15 rad\\u001b[3;37H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=-0.01 rad/s\\u001b[4;39H|\\r\\nu=-0.67\\u001b[5;39H|\\n\\b|\\n\\b|\\n\\u001b[35G┌───|───┐\\u001b[9;35H|   |   │\\u001b[10;35H|   |   │\\u001b[11;35H|\\u001b[43G│\\u001b[12;35H\"]\n[10.483565, \"o\", \"└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;37H\"]\n[10.503847, \"o\", \"\\u001b[H\\u001b[2Jx=-0.01 m\\u001b[1;37H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.11 m/s\\u001b[2;37H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.15 rad\\u001b[3;37H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=-0.01 rad/s\\u001b[4;39H|\\r\\nu=-0.66\\u001b[5;39H\"]\n[10.504202, \"o\", \"|\\n\\b|\\n\\b|\\n\\u001b[35G┌───|───┐\\u001b[9;35H|   |   │\\u001b[10;35H|   |   │\\u001b[11;35H|\\u001b[43G│\\u001b[12;35H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;37H\"]\n[10.524868, \"o\", \"\\u001b[H\\u001b[2Jx=-0.01 m\\u001b[1;37H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.10 m/s\\u001b[2;37H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.15 rad\\u001b[3;37H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=-0.01 rad/s\\u001b[4;39H|\\r\\nu=-0.66\\u001b[5;39H|\\n\\b|\\n\\b\"]\n[10.525274, \"o\", \"|\\n\\u001b[35G┌───|───┐\\u001b[9;35H|   |   │\\u001b[10;35H|   |   │\\u001b[11;35H|\\u001b[43G│\\u001b[12;35H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;37H\"]\n[10.545869, \"o\", \"\\u001b[H\\u001b[2Jx=-0.00 m\\u001b[1;37H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.10 m/s\\u001b[2;37H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.15 rad\\u001b[3;37H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=-0.01 rad/s\\u001b[4;39H|\\r\\nu=-0.65\\u001b[5;39H|\\n\\b\"]\n[10.546249, \"o\", \"|\\n\\b|\\n\\u001b[35G┌───|───┐\\u001b[9;35H|   |   │\\u001b[10;35H|   |   │\\u001b[11;35H|\\u001b[43G│\\u001b[12;35H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\"]\n[10.546363, \"o\", \"\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;37H\"]\n[10.567294, \"o\", \"\\u001b[H\\u001b[2Jx=-0.00 m\\u001b[1;37H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.10 m/s\\u001b[2;37H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.15 rad\\u001b[3;37H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=-0.01 rad/s\\u001b[4;39H\"]\n[10.567415, \"o\", \"|\\r\\nu=-0.64\\u001b[5;39H|\\n\\b|\\n\\b|\\n\\u001b[35G┌───|───┐\\u001b[9;35H\"]\n[10.567853, \"o\", \"|   |   │\\u001b[10;35H|   |   │\\u001b[11;35H|\\u001b[43G│\\u001b[12;35H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;37H\"]\n[10.58847, \"o\", \"\\u001b[H\\u001b[2Jx=-0.00 m\\u001b[1;37H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.10 m/s\\u001b[2;37H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.15 rad\\u001b[3;37H\"]\n[10.588595, \"o\", \"└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=-0.01 rad/s\\u001b[4;39H|\\r\\nu=-0.63\\u001b[5;39H|\\n\\b|\\n\\b|\\n\\u001b[35G\"]\n[10.589048, \"o\", \"┌───|───┐\\u001b[9;35H|   |   │\\u001b[10;35H|   |   │\\u001b[11;35H|\\u001b[43G│\\u001b[12;35H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;37H\"]\n[10.609679, \"o\", \"\\u001b[H\\u001b[2Jx=0.00 m\\u001b[1;37H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.09 m/s\\u001b[2;37H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.15 rad\\u001b[3;37H└───┘\\u001b[3;63H\"]\n[10.610036, \"o\", \"⮠ to restart\\r\\nȧ=-0.01 rad/s\\u001b[4;39H|\\r\\nu=-0.62\\u001b[5;39H|\\n\\b|\\n\\b||\\n\\u001b[36G┌───|───┐\\u001b[9;36H|   |   │\\u001b[10;36H|   |   │\\u001b[11;36H|\\u001b[44G│\\u001b[12;36H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;37H\"]\n[10.630458, \"o\", \"\\u001b[H\\u001b[2Jx=0.00 m\\u001b[1;37H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.09 m/s\\u001b[2;37H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.15 rad\\u001b[3;37H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=-0.01 rad/s\\u001b[4;39H||\\r\\nu=-0.61\\u001b[5;40H|\\n\\b\"]\n[10.630826, \"o\", \"|\\n\\b|\\n\\u001b[36G┌───|───┐\\u001b[9;36H|   |   │\\u001b[10;36H|   |   │\\u001b[11;36H|\\u001b[44G│\\u001b[12;36H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;37H\"]\n[10.651237, \"o\", \"\\u001b[H\\u001b[2Jx=0.01 m\\u001b[1;38H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.09 m/s\\u001b[2;38H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.15 rad\\u001b[3;38H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=-0.01 rad/s\\u001b[4;40H|\\r\\nu=-0.61\\u001b[5;40H\"]\n[10.65162, \"o\", \"|\\n\\b|\\n\\b|\\n\\u001b[36G┌───|───┐\\u001b[9;36H|   |   │\\u001b[10;36H|   |   │\\u001b[11;36H|\\u001b[44G│\\u001b[12;36H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;38H\"]\n[10.672346, \"o\", \"\\u001b[H\\u001b[2Jx=0.01 m\\u001b[1;38H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.09 m/s\\u001b[2;38H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.15 rad\\u001b[3;38H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=-0.01 rad/s\\u001b[4;40H|\\r\\nu=-0.60\\u001b[5;40H|\\n\\b|\\n\\b\"]\n[10.672711, \"o\", \"|\\n\\u001b[36G┌───|───┐\\u001b[9;36H|   |   │\\u001b[10;36H|   |   │\\u001b[11;36H|\\u001b[44G│\\u001b[12;36H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;38H\"]\n[10.693346, \"o\", \"\\u001b[H\\u001b[2Jx=0.01 m\\u001b[1;38H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.08 m/s\\u001b[2;38H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.15 rad\\u001b[3;38H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=-0.01 rad/s\\u001b[4;40H|\\r\\nu=-0.59\\u001b[5;40H|\\n\\b|\\n\\b\"]\n[10.693755, \"o\", \"|\\n\\u001b[36G┌───|───┐\\u001b[9;36H|   |   │\\u001b[10;36H|   |   │\\u001b[11;36H|\\u001b[44G│\\u001b[12;36H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;38H\"]\n[10.714307, \"o\", \"\\u001b[H\\u001b[2Jx=0.01 m\\u001b[1;38H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.08 m/s\\u001b[2;38H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.15 rad\\u001b[3;38H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=-0.01 rad/s\\u001b[4;40H|\\r\\nu=-0.58\\u001b[5;40H|\\n\\b|\\n\\b\"]\n[10.714695, \"o\", \"|\\n\\u001b[36G┌───|───┐\\u001b[9;36H|   |   │\\u001b[10;36H|   |   │\\u001b[11;36H|\\u001b[44G│\\u001b[12;36H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;38H\"]\n[10.735122, \"o\", \"\\u001b[H\\u001b[2Jx=0.01 m\\u001b[1;38H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.08 m/s\\u001b[2;38H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.15 rad\\u001b[3;38H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=-0.01 rad/s\\u001b[4;40H|\\r\\nu=-0.57\\u001b[5;40H|\\n\\b\"]\n[10.735494, \"o\", \"|\\n\\b|\\n\\u001b[36G┌───|───┐\\u001b[9;36H|   |   │\\u001b[10;36H|   |   │\\u001b[11;36H|\\u001b[44G│\\u001b[12;36H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;38H\"]\n[10.756056, \"o\", \"\\u001b[H\\u001b[2Jx=0.01 m\\u001b[1;38H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.08 m/s\\u001b[2;38H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.15 rad\\u001b[3;38H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=-0.01 rad/s\\u001b[4;40H|\\r\\nu=-0.56\\u001b[5;40H|\\n\\b|\\n\\b\"]\n[10.756438, \"o\", \"|\\n\\u001b[36G┌───|───┐\\u001b[9;36H|   |   │\\u001b[10;36H|   |   │\\u001b[11;36H|\\u001b[44G│\\u001b[12;36H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;38H\"]\n[10.77708, \"o\", \"\\u001b[H\\u001b[2Jx=0.02 m\\u001b[1;38H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.07 m/s\\u001b[2;38H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.15 rad\\u001b[3;38H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=-0.01 rad/s\\u001b[4;40H|\\r\\nu=-0.55\\u001b[5;40H|\\n\\b|\\n\\b\"]\n[10.777422, \"o\", \"|\\n\\u001b[36G┌───|───┐\\u001b[9;36H|   |   │\\u001b[10;36H|   |   │\\u001b[11;36H|\\u001b[44G│\\u001b[12;36H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;38H\"]\n[10.798001, \"o\", \"\\u001b[H\\u001b[2Jx=0.02 m\\u001b[1;38H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.07 m/s\\u001b[2;38H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.15 rad\\u001b[3;38H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=-0.01 rad/s\\u001b[4;40H|\\r\\nu=-0.55\\u001b[5;40H|\\n\\b|\\n\\b\"]\n[10.79839, \"o\", \"|\\n\\u001b[36G┌───|───┐\\u001b[9;36H|   |   │\\u001b[10;36H|   |   │\\u001b[11;36H|\\u001b[44G│\\u001b[12;36H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;38H\"]\n[10.81849, \"o\", \"\\u001b[H\\u001b[2Jx=0.02 m\\u001b[1;38H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.07 m/s\\u001b[2;38H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.15 rad\\u001b[3;38H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=-0.01 rad/s\\u001b[4;40H|\\r\\nu=-0.54\\u001b[5;40H|\\n\\b|\\n\\b|\\n\\u001b[36G┌───|───┐\\u001b[9;36H|   |   │\\u001b[10;36H|   |   │\\u001b[11;36H|\\u001b[44G│\\u001b[12;36H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;38H\"]\n[10.838698, \"o\", \"\\u001b[H\\u001b[2Jx=0.02 m\\u001b[1;38H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.07 m/s\\u001b[2;38H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.15 rad\\u001b[3;38H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=-0.01 rad/s\\u001b[4;40H|\\r\\nu=-0.53\\u001b[5;40H|\\n\\b|\\n\\b|\\n\\u001b[36G┌───|───┐\\u001b[9;36H|   |   │\\u001b[10;36H|   |   │\\u001b[11;36H|\\u001b[44G│\\u001b[12;36H└o-----o┘\\r\\n\"]\n[10.838761, \"o\", \"\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;38H\"]\n[10.859104, \"o\", \"\\u001b[H\\u001b[2Jx=0.02 m\\u001b[1;38H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.07 m/s\\u001b[2;38H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.15 rad\\u001b[3;38H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=-0.01 rad/s\\u001b[4;40H|\\r\\nu=-0.52\\u001b[5;40H|\\n\\b|\\n\\b|\\n\\u001b[36G┌───|───┐\\u001b[9;36H|   |   │\\u001b[10;36H|   |   │\\u001b[11;36H|\\u001b[44G│\\u001b[12;36H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;38H\"]\n[10.879689, \"o\", \"\\u001b[H\\u001b[2Jx=0.02 m\\u001b[1;38H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.06 m/s\\u001b[2;38H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.15 rad\\u001b[3;38H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=-0.01 rad/s\\u001b[4;40H|\\r\\nu=-0.51\\u001b[5;40H|\\n\\b|\\n\\b|\\n\\u001b[36G┌───|───┐\\u001b[9;36H|   |   │\\u001b[10;36H|   |   │\\u001b[11;36H|\\u001b[44G│\\u001b[12;36H└o-----o┘\\r\\n\"]\n[10.879757, \"o\", \"\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;38H\"]\n[10.90025, \"o\", \"\\u001b[H\\u001b[2Jx=0.02 m\\u001b[1;38H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.06 m/s\\u001b[2;38H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.15 rad\\u001b[3;38H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=-0.01 rad/s\\u001b[4;40H|\\r\\nu=-0.51\\u001b[5;40H|\\n\\b|\\n\\b|\\n\\u001b[36G\"]\n[10.900361, \"o\", \"┌───|───┐\\u001b[9;36H|   |   │\\u001b[10;36H|   |   │\\u001b[11;36H|\\u001b[44G│\\u001b[12;36H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H\"]\n[10.900673, \"o\", \"|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;38H\"]\n[10.920938, \"o\", \"\\u001b[H\\u001b[2Jx=0.03 m\\u001b[1;38H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.06 m/s\\u001b[2;38H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.15 rad\\u001b[3;38H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=-0.01 rad/s\\u001b[4;40H|\\r\\nu=-0.50\\u001b[5;40H\"]\n[10.921389, \"o\", \"|\\n\\b|\\n\\b|\\n\\u001b[36G┌───|───┐\\u001b[9;36H|   |   │\\u001b[10;36H|   |   │\\u001b[11;36H|\\u001b[44G│\\u001b[12;36H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;38H\"]\n[10.941741, \"o\", \"\\u001b[H\\u001b[2Jx=0.03 m\\u001b[1;38H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.06 m/s\\u001b[2;38H| m |\\u001b[2;63H\"]\n[10.942086, \"o\", \"→ to nudge right\\u001b[3;1Ha=3.15 rad\\u001b[3;38H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=-0.01 rad/s\\u001b[4;40H|\\r\\nu=-0.49\\u001b[5;40H|\\n\\b|\\n\\b|\\n\\u001b[36G┌───|───┐\\u001b[9;36H|   |   │\\u001b[10;36H|   |   │\\u001b[11;36H|\\u001b[44G│\\u001b[12;36H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H\"]\n[10.942421, \"o\", \"|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;38H\"]\n[10.96265, \"o\", \"\\u001b[H\\u001b[2Jx=0.03 m\\u001b[1;38H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.06 m/s\\u001b[2;38H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.15 rad\\u001b[3;38H└───┘\\u001b[3;63H\"]\n[10.963029, \"o\", \"⮠ to restart\\r\\nȧ=-0.01 rad/s\\u001b[4;40H|\\r\\nu=-0.48\\u001b[5;40H|\\n\\b|\\n\\b|\\n\\u001b[36G┌───|───┐\\u001b[9;36H|   |   │\\u001b[10;36H|   |   │\\u001b[11;36H|\\u001b[44G│\\u001b[12;36H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n \"]\n[10.963239, \"o\", \"-2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;38H\"]\n[10.983376, \"o\", \"\\u001b[H\\u001b[2Jx=0.03 m\\u001b[1;38H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.06 m/s\\u001b[2;38H| m |\\u001b[2;63H\"]\n[10.983509, \"o\", \"→ to nudge right\\u001b[3;1Ha=3.15 rad\\u001b[3;38H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=-0.01 rad/s\\u001b[4;40H|\\r\\nu=-0.47\\u001b[5;40H|\\n\\b\"]\n[10.983883, \"o\", \"|\\n\\b|\\n\\u001b[36G┌───|───┐\\u001b[9;36H|   |   │\\u001b[10;36H|   |   │\\u001b[11;36H|\\u001b[44G│\\u001b[12;36H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;38H\"]\n[11.004575, \"o\", \"\\u001b[H\\u001b[2Jx=0.03 m\\u001b[1;38H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.05 m/s\\u001b[2;38H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.15 rad\\u001b[3;38H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=-0.01 rad/s\\u001b[4;40H\"]\n[11.004724, \"o\", \"|\\r\\nu=-0.47\\u001b[5;40H|\\n\\b|\\n\\b|\\n\\u001b[36G┌───|───┐\\u001b[9;36H|   |   │\\u001b[10;36H|   |   │\\u001b[11;36H|\\u001b[44G\"]\n[11.004835, \"o\", \"│\\u001b[12;36H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H\"]\n[11.005275, \"o\", \"|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n \"]\n[11.005476, \"o\", \"-2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;38H\"]\n[11.02572, \"o\", \"\\u001b[H\\u001b[2Jx=0.03 m\\u001b[1;38H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.05 m/s\\u001b[2;38H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.15 rad\\u001b[3;38H└───┘\\u001b[3;63H\"]\n[11.026086, \"o\", \"⮠ to restart\\r\\nȧ=-0.01 rad/s\\u001b[4;40H|\\r\\nu=-0.46\\u001b[5;40H|\\n\\b|\\n\\b|\\n\\u001b[36G┌───|───┐\\u001b[9;36H|   |   │\\u001b[10;36H|   |   │\\u001b[11;36H|\\u001b[44G│\\u001b[12;36H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G\"]\n[11.026364, \"o\", \"1.00     1.50\\u001b[4;38H\"]\n[11.046693, \"o\", \"\\u001b[H\\u001b[2Jx=0.03 m\\u001b[1;38H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.05 m/s\\u001b[2;38H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.15 rad\\u001b[3;38H└───┘\\u001b[3;63H⮠ to restart\\r\\n\"]\n[11.047062, \"o\", \"ȧ=-0.01 rad/s\\u001b[4;40H|\\r\\nu=-0.45\\u001b[5;40H|\\n\\b|\\n\\b|\\n\\u001b[36G┌───|───┐\\u001b[9;36H|   |   │\\u001b[10;36H|   |   │\\u001b[11;36H|\\u001b[44G│\\u001b[12;36H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n \"]\n[11.047311, \"o\", \"-2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;38H\"]\n[11.067774, \"o\", \"\\u001b[H\\u001b[2Jx=0.03 m\\u001b[1;38H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.05 m/s\\u001b[2;38H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.15 rad\\u001b[3;38H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=-0.01 rad/s\\u001b[4;40H\"]\n[11.06819, \"o\", \"|\\r\\nu=-0.44\\u001b[5;40H|\\n\\b|\\n\\b|\\n\\u001b[36G┌───|───┐\\u001b[9;36H|   |   │\\u001b[10;36H|   |   │\\u001b[11;36H|\\u001b[44G│\\u001b[12;36H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;38H\"]\n[11.088813, \"o\", \"\\u001b[H\\u001b[2Jx=0.03 m\\u001b[1;38H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.05 m/s\\u001b[2;38H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.15 rad\\u001b[3;38H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=-0.01 rad/s\\u001b[4;40H\"]\n[11.089241, \"o\", \"|\\r\\nu=-0.43\\u001b[5;40H|\\n\\b|\\n\\b|\\n\\u001b[36G┌───|───┐\\u001b[9;36H|   |   │\\u001b[10;36H|   |   │\\u001b[11;36H|\\u001b[44G│\\u001b[12;36H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n \"]\n[11.089324, \"o\", \"-2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;38H\"]\n[11.11007, \"o\", \"\\u001b[H\\u001b[2Jx=0.04 m\\u001b[1;38H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.04 m/s\\u001b[2;38H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.15 rad\\u001b[3;38H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=-0.01 rad/s\\u001b[4;40H\"]\n[11.110556, \"o\", \"|\\r\\nu=-0.43\\u001b[5;40H|\\n\\b|\\n\\b|\\n\\u001b[36G┌───|───┐\\u001b[9;36H|   |   │\\u001b[10;36H|   |   │\\u001b[11;36H|\\u001b[44G│\\u001b[12;36H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;38H\"]\n[11.131048, \"o\", \"\\u001b[H\\u001b[2Jx=0.04 m\\u001b[1;38H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.04 m/s\\u001b[2;38H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.15 rad\\u001b[3;38H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=-0.01 rad/s\\u001b[4;40H|\\r\\n\"]\n[11.131406, \"o\", \"u=-0.42\\u001b[5;40H|\\n\\b|\\n\\b|\\n\\u001b[36G┌───|───┐\\u001b[9;36H|   |   │\\u001b[10;36H|   |   │\\u001b[11;36H|\\u001b[44G\"]\n[11.13165, \"o\", \"│\\u001b[12;36H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;38H\"]\n[11.152159, \"o\", \"\\u001b[H\\u001b[2Jx=0.04 m\\u001b[1;38H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.04 m/s\\u001b[2;38H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.15 rad\\u001b[3;38H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=-0.01 rad/s\\u001b[4;40H\"]\n[11.152506, \"o\", \"|\\r\\nu=-0.41\\u001b[5;40H|\\n\\b|\\n\\b|\\n\\u001b[36G┌───|───┐\\u001b[9;36H|   |   │\\u001b[10;36H\"]\n[11.152744, \"o\", \"|   |   │\\u001b[11;36H|\\u001b[44G│\\u001b[12;36H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;38H\"]\n[11.173387, \"o\", \"\\u001b[H\\u001b[2Jx=0.04 m\\u001b[1;38H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.04 m/s\\u001b[2;38H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.15 rad\\u001b[3;38H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=-0.01 rad/s\\u001b[4;40H\"]\n[11.173846, \"o\", \"|\\r\\nu=-0.40\\u001b[5;40H|\\n\\b|\\n\\b|\\n\\u001b[36G┌───|───┐\\u001b[9;36H|   |   │\\u001b[10;36H|   |   │\\u001b[11;36H|\\u001b[44G│\\u001b[12;36H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;38H\"]\n[11.194393, \"o\", \"\\u001b[H\\u001b[2Jx=0.04 m\\u001b[1;38H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.04 m/s\\u001b[2;38H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.15 rad\\u001b[3;38H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=-0.01 rad/s\\u001b[4;40H\"]\n[11.194732, \"o\", \"|\\r\\nu=-0.40\\u001b[5;40H|\\n\\b|\\n\\b|\\n\\u001b[36G┌───|───┐\\u001b[9;36H|   |   │\\u001b[10;36H|   |   │\\u001b[11;36H|\\u001b[44G\"]\n[11.19498, \"o\", \"│\\u001b[12;36H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;38H\"]\n[11.215503, \"o\", \"\\u001b[H\\u001b[2Jx=0.04 m\\u001b[1;38H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.04 m/s\\u001b[2;38H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.15 rad\\u001b[3;38H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=-0.01 rad/s\\u001b[4;40H\"]\n[11.216239, \"o\", \"|\\r\\nu=-0.39\\u001b[5;40H|\\n\\b|\\n\\b|\\n\\u001b[36G┌───|───┐\\u001b[9;36H|   |   │\\u001b[10;36H|   |   │\\u001b[11;36H\"]\n[11.216485, \"o\", \"|\\u001b[44G│\\u001b[12;36H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;38H\"]\n[11.236869, \"o\", \"\\u001b[H\\u001b[2Jx=0.04 m\\u001b[1;38H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.04 m/s\\u001b[2;38H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.15 rad\\u001b[3;38H└───┘\\u001b[3;63H⮠ to restart\\r\\n\"]\n[11.23727, \"o\", \"ȧ=-0.01 rad/s\\u001b[4;40H|\\r\\nu=-0.38\\u001b[5;40H|\\n\\b|\\n\\b|\\n\\u001b[36G┌───|───┐\\u001b[9;36H|   |   │\\u001b[10;36H|   |   │\\u001b[11;36H|\\u001b[44G│\\u001b[12;36H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;38H\"]\n[11.257996, \"o\", \"\\u001b[H\\u001b[2Jx=0.04 m\\u001b[1;38H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.03 m/s\\u001b[2;38H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.15 rad\\u001b[3;38H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=-0.01 rad/s\\u001b[4;40H\"]\n[11.258432, \"o\", \"|\\r\\nu=-0.37\\u001b[5;40H|\\n\\b|\\n\\b|\\n\\u001b[36G┌───|───┐\\u001b[9;36H|   |   │\\u001b[10;36H|   |   │\\u001b[11;36H|\\u001b[44G│\\u001b[12;36H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;38H\"]\n[11.279263, \"o\", \"\\u001b[H\\u001b[2Jx=0.04 m\\u001b[1;38H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.03 m/s\\u001b[2;38H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.15 rad\\u001b[3;38H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=-0.01 rad/s\\u001b[4;40H\"]\n[11.279752, \"o\", \"|\\r\\nu=-0.37\\u001b[5;40H|\\n\\b|\\n\\b|\\n\\u001b[36G┌───|───┐\\u001b[9;36H|   |   │\\u001b[10;36H|   |   │\\u001b[11;36H|\\u001b[44G│\\u001b[12;36H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;38H\"]\n[11.300117, \"o\", \"\\u001b[H\\u001b[2Jx=0.04 m\\u001b[1;38H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.03 m/s\\u001b[2;38H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.15 rad\\u001b[3;38H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=-0.01 rad/s\\u001b[4;40H\"]\n[11.300537, \"o\", \"|\\r\\nu=-0.36\\u001b[5;40H|\\n\\b|\\n\\b|\\n\\u001b[36G┌───|───┐\\u001b[9;36H|   |   │\\u001b[10;36H|   |   │\\u001b[11;36H|\\u001b[44G│\\u001b[12;36H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;38H\"]\n[11.321298, \"o\", \"\\u001b[H\\u001b[2Jx=0.04 m\\u001b[1;38H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.03 m/s\\u001b[2;38H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.15 rad\\u001b[3;38H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=-0.01 rad/s\\u001b[4;40H\"]\n[11.321762, \"o\", \"|\\r\\nu=-0.35\\u001b[5;40H|\\n\\b|\\n\\b|\\n\\u001b[36G┌───|───┐\\u001b[9;36H|   |   │\\u001b[10;36H|   |   │\\u001b[11;36H|\\u001b[44G│\\u001b[12;36H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;38H\"]\n[11.342604, \"o\", \"\\u001b[H\\u001b[2Jx=0.04 m\\u001b[1;38H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.03 m/s\\u001b[2;38H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.15 rad\\u001b[3;38H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=-0.01 rad/s\\u001b[4;40H\"]\n[11.343014, \"o\", \"|\\r\\nu=-0.35\\u001b[5;40H|\\n\\b|\\n\\b|\\n\\u001b[36G┌───|───┐\\u001b[9;36H|   |   │\\u001b[10;36H|   |   │\\u001b[11;36H|\\u001b[44G│\\u001b[12;36H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;38H\"]\n[11.363733, \"o\", \"\\u001b[H\\u001b[2Jx=0.04 m\\u001b[1;38H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.03 m/s\\u001b[2;38H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.15 rad\\u001b[3;38H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=-0.01 rad/s\\u001b[4;40H\"]\n[11.364148, \"o\", \"|\\r\\nu=-0.34\\u001b[5;40H|\\n\\b|\\n\\b|\\n\\u001b[36G┌───|───┐\\u001b[9;36H|   |   │\\u001b[10;36H|   |   │\\u001b[11;36H|\\u001b[44G│\\u001b[12;36H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;38H\"]\n[11.384774, \"o\", \"\\u001b[H\\u001b[2Jx=0.04 m\\u001b[1;38H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.03 m/s\\u001b[2;38H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.15 rad\\u001b[3;38H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=-0.01 rad/s\\u001b[4;40H\"]\n[11.385195, \"o\", \"|\\r\\nu=-0.33\\u001b[5;40H|\\n\\b|\\n\\b|\\n\\u001b[36G┌───|───┐\\u001b[9;36H|   |   │\\u001b[10;36H|   |   │\\u001b[11;36H|\\u001b[44G│\\u001b[12;36H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;38H\"]\n[11.405925, \"o\", \"\\u001b[H\\u001b[2Jx=0.05 m\\u001b[1;38H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.03 m/s\\u001b[2;38H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.15 rad\\u001b[3;38H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=-0.01 rad/s\\u001b[4;40H\"]\n[11.406331, \"o\", \"|\\r\\nu=-0.33\\u001b[5;40H|\\n\\b|\\n\\b|\\n\\u001b[36G┌───|───┐\\u001b[9;36H|   |   │\\u001b[10;36H|   |   │\\u001b[11;36H|\\u001b[44G│\\u001b[12;36H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;38H\"]\n[11.427159, \"o\", \"\\u001b[H\\u001b[2Jx=0.05 m\\u001b[1;38H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.02 m/s\\u001b[2;38H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.15 rad\\u001b[3;38H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=-0.01 rad/s\\u001b[4;40H|\\r\\nu=-0.32\\u001b[5;40H\"]\n[11.427548, \"o\", \"|\\n\\b|\\n\\b|\\n\\u001b[36G┌───|───┐\\u001b[9;36H|   |   │\\u001b[10;36H|   |   │\\u001b[11;36H|\\u001b[44G│\\u001b[12;36H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;38H\"]\n[11.44837, \"o\", \"\\u001b[H\\u001b[2Jx=0.05 m\\u001b[1;38H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.02 m/s\\u001b[2;38H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.15 rad\\u001b[3;38H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=-0.01 rad/s\\u001b[4;40H|\\r\\nu=-0.31\\u001b[5;40H\"]\n[11.448761, \"o\", \"|\\n\\b|\\n\\b|\\n\\u001b[36G┌───|───┐\\u001b[9;36H|   |   │\\u001b[10;36H|   |   │\\u001b[11;36H|\\u001b[44G│\\u001b[12;36H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;38H\"]\n[11.469447, \"o\", \"\\u001b[H\\u001b[2Jx=0.05 m\\u001b[1;38H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.02 m/s\\u001b[2;38H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.15 rad\\u001b[3;38H└───┘\\u001b[3;63H\"]\n[11.469905, \"o\", \"⮠ to restart\\r\\nȧ=-0.01 rad/s\\u001b[4;40H|\\r\\nu=-0.31\\u001b[5;40H|\\n\\b|\\n\\b|\\n\\u001b[36G┌───|───┐\\u001b[9;36H|   |   │\\u001b[10;36H|   |   │\\u001b[11;36H|\\u001b[44G│\\u001b[12;36H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n \"]\n[11.470147, \"o\", \"-2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;38H\"]\n[11.490545, \"o\", \"\\u001b[H\\u001b[2Jx=0.05 m\\u001b[1;38H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.02 m/s\\u001b[2;38H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.15 rad\\u001b[3;38H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=-0.01 rad/s\\u001b[4;40H\"]\n[11.491025, \"o\", \"|\\r\\nu=-0.30\\u001b[5;40H|\\n\\b|\\n\\b|\\n\\u001b[36G┌───|───┐\\u001b[9;36H|   |   │\\u001b[10;36H|   |   │\\u001b[11;36H|\\u001b[44G│\\u001b[12;36H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n \"]\n[11.491271, \"o\", \"-2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;38H\"]\n[11.511366, \"o\", \"\\u001b[H\\u001b[2Jx=0.05 m\\u001b[1;38H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.02 m/s\\u001b[2;38H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.15 rad\\u001b[3;38H└───┘\\u001b[3;63H\"]\n[11.511715, \"o\", \"⮠ to restart\\r\\nȧ=-0.01 rad/s\\u001b[4;40H|\\r\\nu=-0.29\\u001b[5;40H|\\n\\b|\\n\\b|\\n\\u001b[36G┌───|───┐\\u001b[9;36H|   |   │\\u001b[10;36H\"]\n[11.51197, \"o\", \"|   |   │\\u001b[11;36H|\\u001b[44G│\\u001b[12;36H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;38H\"]\n[11.531999, \"o\", \"\\u001b[H\\u001b[2Jx=0.05 m\\u001b[1;38H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.02 m/s\\u001b[2;38H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.15 rad\\u001b[3;38H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=-0.01 rad/s\\u001b[4;40H|\\r\\nu=-0.29\\u001b[5;40H|\\n\\b|\\n\\b|\\n\\u001b[36G┌───|───┐\\u001b[9;36H|   |   │\\u001b[10;36H|   |   │\\u001b[11;36H\"]\n[11.532134, \"o\", \"|\\u001b[44G│\\u001b[12;36H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;38H\"]\n[11.552639, \"o\", \"\\u001b[H\\u001b[2Jx=0.05 m\\u001b[1;38H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.02 m/s\\u001b[2;38H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.15 rad\\u001b[3;38H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=-0.01 rad/s\\u001b[4;40H|\\r\\nu=-0.28\\u001b[5;40H|\\n\\b|\\n\\b\"]\n[11.552725, \"o\", \"|\\n\\u001b[36G┌───|───┐\\u001b[9;36H|   |   │\\u001b[10;36H|   |   │\\u001b[11;36H|\\u001b[44G│\\u001b[12;36H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H\"]\n[11.552916, \"o\", \"|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;38H\"]\n[11.573472, \"o\", \"\\u001b[H\\u001b[2Jx=0.05 m\\u001b[1;38H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.02 m/s\\u001b[2;38H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.15 rad\\u001b[3;38H└───┘\\u001b[3;63H⮠ to restart\\r\\n\"]\n[11.573822, \"o\", \"ȧ=-0.01 rad/s\\u001b[4;40H|\\r\\nu=-0.27\\u001b[5;40H|\\n\\b|\\n\\b|\\n\\u001b[36G┌───|───┐\\u001b[9;36H|   |   │\\u001b[10;36H|   |   │\\u001b[11;36H|\\u001b[44G│\\u001b[12;36H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;38H\"]\n[11.594306, \"o\", \"\\u001b[H\\u001b[2Jx=0.05 m\\u001b[1;38H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.02 m/s\\u001b[2;38H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.15 rad\\u001b[3;38H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=-0.01 rad/s\\u001b[4;40H\"]\n[11.594709, \"o\", \"|\\r\\nu=-0.27\\u001b[5;40H|\\n\\b|\\n\\b|\\n\\u001b[36G┌───|───┐\\u001b[9;36H|   |   │\\u001b[10;36H|   |   │\\u001b[11;36H|\\u001b[44G│\\u001b[12;36H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;38H\"]\n[11.615305, \"o\", \"\\u001b[H\\u001b[2Jx=0.05 m\\u001b[1;38H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.01 m/s\\u001b[2;38H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.15 rad\\u001b[3;38H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=-0.01 rad/s\\u001b[4;40H\"]\n[11.615644, \"o\", \"|\\r\\nu=-0.26\\u001b[5;40H|\\n\\b|\\n\\b|\\n\\u001b[36G┌───|───┐\\u001b[9;36H|   |   │\\u001b[10;36H\"]\n[11.616252, \"o\", \"|   |   │\\u001b[11;36H|\\u001b[44G│\\u001b[12;36H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;38H\"]\n[11.636429, \"o\", \"\\u001b[H\\u001b[2Jx=0.05 m\\u001b[1;38H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.01 m/s\\u001b[2;38H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.15 rad\\u001b[3;38H└───┘\\u001b[3;63H⮠ to restart\\r\\n\"]\n[11.636768, \"o\", \"ȧ=-0.01 rad/s\\u001b[4;40H|\\r\\nu=-0.26\\u001b[5;40H|\\n\\b|\\n\\b\"]\n[11.637036, \"o\", \"|\\n\\u001b[36G┌───|───┐\\u001b[9;36H|   |   │\\u001b[10;36H|   |   │\\u001b[11;36H|\\u001b[44G│\\u001b[12;36H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;38H\"]\n[11.65761, \"o\", \"\\u001b[H\\u001b[2Jx=0.05 m\\u001b[1;38H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.01 m/s\\u001b[2;38H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.15 rad\\u001b[3;38H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=-0.01 rad/s\\u001b[4;40H\"]\n[11.65794, \"o\", \"|\\r\\nu=-0.25\\u001b[5;40H|\\n\\b|\\n\\b|\\n\\u001b[36G┌───|───┐\\u001b[9;36H|   |   │\\u001b[10;36H|   |   │\\u001b[11;36H\"]\n[11.658195, \"o\", \"|\\u001b[44G│\\u001b[12;36H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;38H\"]\n[11.67885, \"o\", \"\\u001b[H\\u001b[2Jx=0.05 m\\u001b[1;38H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.01 m/s\\u001b[2;38H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.15 rad\\u001b[3;38H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=-0.01 rad/s\\u001b[4;40H|\\r\\nu=-0.24\\u001b[5;40H\"]\n[11.679281, \"o\", \"|\\n\\b|\\n\\b|\\n\\u001b[36G┌───|───┐\\u001b[9;36H|   |   │\\u001b[10;36H|   |   │\\u001b[11;36H|\\u001b[44G│\\u001b[12;36H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;38H\"]\n[11.700227, \"o\", \"\\u001b[H\\u001b[2Jx=0.05 m\\u001b[1;38H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.01 m/s\\u001b[2;38H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.15 rad\\u001b[3;38H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=-0.01 rad/s\\u001b[4;40H\"]\n[11.700633, \"o\", \"|\\r\\nu=-0.24\\u001b[5;40H|\\n\\b|\\n\\b|\\n\\u001b[36G┌───|───┐\\u001b[9;36H|   |   │\\u001b[10;36H|   |   │\\u001b[11;36H|\\u001b[44G│\\u001b[12;36H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;38H\"]\n[11.721345, \"o\", \"\\u001b[H\\u001b[2Jx=0.05 m\\u001b[1;38H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.01 m/s\\u001b[2;38H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.15 rad\\u001b[3;38H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=-0.01 rad/s\\u001b[4;40H|\\r\\n\"]\n[11.721846, \"o\", \"u=-0.23\\u001b[5;40H|\\n\\b|\\n\\b|\\n\\u001b[36G┌───|───┐\\u001b[9;36H|   |   │\\u001b[10;36H|   |   │\\u001b[11;36H|\\u001b[44G│\\u001b[12;36H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;38H\"]\n[11.742271, \"o\", \"\\u001b[H\\u001b[2Jx=0.05 m\\u001b[1;38H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.01 m/s\\u001b[2;38H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.15 rad\\u001b[3;38H└───┘\\u001b[3;63H⮠ to restart\\r\\n\"]\n[11.742606, \"o\", \"ȧ=-0.01 rad/s\\u001b[4;40H|\\r\\nu=-0.23\\u001b[5;40H|\\n\\b|\\n\\b|\\n\\u001b[36G┌───|───┐\\u001b[9;36H|   |   │\\u001b[10;36H\"]\n[11.742867, \"o\", \"|   |   │\\u001b[11;36H|\\u001b[44G│\\u001b[12;36H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;38H\"]\n[11.763299, \"o\", \"\\u001b[H\\u001b[2Jx=0.05 m\\u001b[1;38H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.01 m/s\\u001b[2;38H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.15 rad\\u001b[3;38H└───┘\\u001b[3;63H\"]\n[11.763701, \"o\", \"⮠ to restart\\r\\nȧ=-0.00 rad/s\\u001b[4;40H|\\r\\nu=-0.22\\u001b[5;40H|\\n\\b|\\n\\b|\\n\\u001b[36G┌───|───┐\\u001b[9;36H|   |   │\\u001b[10;36H|   |   │\\u001b[11;36H|\\u001b[44G│\\u001b[12;36H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H\"]\n[11.763946, \"o\", \"|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;38H\"]\n[11.784442, \"o\", \"\\u001b[H\\u001b[2Jx=0.05 m\\u001b[1;38H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.01 m/s\\u001b[2;38H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.15 rad\\u001b[3;38H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=-0.00 rad/s\\u001b[4;40H\"]\n[11.784851, \"o\", \"|\\r\\nu=-0.22\\u001b[5;40H|\\n\\b|\\n\\b|\\n\\u001b[36G┌───|───┐\\u001b[9;36H|   |   │\\u001b[10;36H|   |   │\\u001b[11;36H|\\u001b[44G│\\u001b[12;36H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;38H\"]\n[11.805359, \"o\", \"\\u001b[H\\u001b[2Jx=0.05 m\\u001b[1;38H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.01 m/s\\u001b[2;38H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.15 rad\\u001b[3;38H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=-0.00 rad/s\\u001b[4;40H|\\r\\nu=-0.21\\u001b[5;40H|\\n\\b\"]\n[11.80575, \"o\", \"|\\n\\b|\\n\\u001b[36G┌───|───┐\\u001b[9;36H|   |   │\\u001b[10;36H|   |   │\\u001b[11;36H|\\u001b[44G│\\u001b[12;36H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;38H\"]\n[11.825796, \"o\", \"\\u001b[H\\u001b[2Jx=0.05 m\\u001b[1;38H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.01 m/s\\u001b[2;38H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.15 rad\\u001b[3;38H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=-0.00 rad/s\\u001b[4;40H|\\r\\nu=-0.21\\u001b[5;40H|\\n\\b|\\n\\b|\\n\\u001b[36G┌───|───┐\\u001b[9;36H|   |   │\\u001b[10;36H|   |   │\\u001b[11;36H|\\u001b[44G│\\u001b[12;36H└o-----o┘\\r\\n\"]\n[11.825848, \"o\", \"\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;38H\"]\n[11.846072, \"o\", \"\\u001b[H\\u001b[2Jx=0.05 m\\u001b[1;38H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.01 m/s\\u001b[2;38H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.15 rad\\u001b[3;38H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=-0.00 rad/s\\u001b[4;40H|\\r\\nu=-0.20\\u001b[5;40H|\\n\\b|\\n\\b|\\n\\u001b[36G┌───|───┐\\u001b[9;36H|   |   │\\u001b[10;36H|   |   │\\u001b[11;36H|\\u001b[44G│\\u001b[12;36H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;38H\"]\n[11.866366, \"o\", \"\\u001b[H\\u001b[2Jx=0.05 m\\u001b[1;38H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.00 m/s\\u001b[2;38H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.15 rad\\u001b[3;38H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=-0.00 rad/s\\u001b[4;40H|\\r\\nu=-0.20\\u001b[5;40H|\\n\\b|\\n\\b|\\n\\u001b[36G┌───|───┐\\u001b[9;36H|   |   │\\u001b[10;36H|   |   │\\u001b[11;36H|\\u001b[44G│\\u001b[12;36H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;38H\"]\n[11.886761, \"o\", \"\\u001b[H\\u001b[2Jx=0.05 m\\u001b[1;38H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.00 m/s\\u001b[2;38H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.15 rad\\u001b[3;38H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=-0.00 rad/s\\u001b[4;40H|\\r\\nu=-0.19\\u001b[5;40H|\\n\\b|\\n\\b|\\n\\u001b[36G┌───|───┐\\u001b[9;36H|   |   │\\u001b[10;36H|   |   │\\u001b[11;36H|\\u001b[44G│\\u001b[12;36H└o-----o┘\\r\\n\"]\n[11.886825, \"o\", \"\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;38H\"]\n[11.907327, \"o\", \"\\u001b[H\\u001b[2Jx=0.05 m\\u001b[1;38H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.00 m/s\\u001b[2;38H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.15 rad\\u001b[3;38H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=-0.00 rad/s\\u001b[4;40H|\\r\\nu=-0.19\\u001b[5;40H|\\n\\b|\\n\\b|\\n\\u001b[36G\"]\n[11.90766, \"o\", \"┌───|───┐\\u001b[9;36H|   |   │\\u001b[10;36H|   |   │\\u001b[11;36H|\\u001b[44G│\\u001b[12;36H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;38H\"]\n[11.928002, \"o\", \"\\u001b[H\\u001b[2Jx=0.05 m\\u001b[1;38H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.00 m/s\\u001b[2;38H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.15 rad\\u001b[3;38H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=-0.00 rad/s\\u001b[4;40H\"]\n[11.928377, \"o\", \"|\\r\\nu=-0.18\\u001b[5;40H|\\n\\b|\\n\\b|\\n\\u001b[36G┌───|───┐\\u001b[9;36H|   |   │\\u001b[10;36H|   |   │\\u001b[11;36H|\\u001b[44G│\\u001b[12;36H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;38H\"]\n[11.948887, \"o\", \"\\u001b[H\\u001b[2Jx=0.05 m\\u001b[1;38H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.00 m/s\\u001b[2;38H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.15 rad\\u001b[3;38H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=-0.00 rad/s\\u001b[4;40H|\\r\\nu=-0.18\\u001b[5;40H\"]\n[11.949743, \"o\", \"|\\n\\b|\\n\\b|\\n\\u001b[36G┌───|───┐\\u001b[9;36H|   |   │\\u001b[10;36H|   |   │\\u001b[11;36H|\\u001b[44G│\\u001b[12;36H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;38H\"]\n[11.970026, \"o\", \"\\u001b[H\\u001b[2Jx=0.05 m\\u001b[1;38H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.00 m/s\\u001b[2;38H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.15 rad\\u001b[3;38H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=-0.00 rad/s\\u001b[4;40H|\\r\\nu=-0.17\\u001b[5;40H\"]\n[11.970143, \"o\", \"|\\n\\b|\\n\\b|\\n\\u001b[36G┌───|───┐\\u001b[9;36H|   |   │\\u001b[10;36H|   |   │\\u001b[11;36H|\\u001b[44G│\\u001b[12;36H└o-----o┘\\r\\n\"]\n[11.970628, \"o\", \"\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;38H\"]\n[11.990839, \"o\", \"\\u001b[H\\u001b[2Jx=0.05 m\\u001b[1;38H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.00 m/s\\u001b[2;38H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.14 rad\\u001b[3;38H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=-0.00 rad/s\\u001b[4;40H|\\r\\nu=-0.17\\u001b[5;40H|\\n\\b|\\n\\b|\\n\\u001b[36G\"]\n[11.990943, \"o\", \"┌───|───┐\\u001b[9;36H|   |   │\\u001b[10;36H|   |   │\\u001b[11;36H|\\u001b[44G│\\u001b[12;36H└o-----o┘\\r\\n\"]\n[11.991277, \"o\", \"\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;38H\"]\n[12.011548, \"o\", \"\\u001b[H\\u001b[2Jx=0.05 m\\u001b[1;38H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.00 m/s\\u001b[2;38H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.14 rad\\u001b[3;38H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=-0.00 rad/s\\u001b[4;40H|\\r\\nu=-0.16\\u001b[5;40H\"]\n[12.011934, \"o\", \"|\\n\\b|\\n\\b|\\n\\u001b[36G┌───|───┐\\u001b[9;36H|   |   │\\u001b[10;36H|   |   │\\u001b[11;36H|\\u001b[44G│\\u001b[12;36H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;38H\"]\n[12.032917, \"o\", \"\\u001b[H\\u001b[2Jx=0.05 m\\u001b[1;38H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=0.00 m/s\\u001b[2;38H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.14 rad\\u001b[3;38H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=-0.00 rad/s\\u001b[4;40H|\\r\\nu=-0.16\\u001b[5;40H|\\n\\b|\\n\\b\"]\n[12.033305, \"o\", \"|\\n\\u001b[36G┌───|───┐\\u001b[9;36H|   |   │\\u001b[10;36H|   |   │\\u001b[11;36H|\\u001b[44G│\\u001b[12;36H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;38H\"]\n[12.053977, \"o\", \"\\u001b[H\\u001b[2Jx=0.05 m\\u001b[1;38H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=-0.00 m/s\\u001b[2;38H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.14 rad\\u001b[3;38H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=-0.00 rad/s\\u001b[4;40H|\\r\\nu=-0.15\\u001b[5;40H\"]\n[12.054346, \"o\", \"|\\n\\b|\\n\\b|\\n\\u001b[36G┌───|───┐\\u001b[9;36H|   |   │\\u001b[10;36H|   |   │\\u001b[11;36H|\\u001b[44G│\\u001b[12;36H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\"]\n[12.054652, \"o\", \"\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;38H\"]\n[12.074824, \"o\", \"\\u001b[H\\u001b[2Jx=0.05 m\\u001b[1;38H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=-0.00 m/s\\u001b[2;38H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.14 rad\\u001b[3;38H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=-0.00 rad/s\\u001b[4;40H|\\r\\nu=-0.15\\u001b[5;40H|\\n\\b|\\n\\b\"]\n[12.075237, \"o\", \"|\\n\\u001b[36G┌───|───┐\\u001b[9;36H|   |   │\\u001b[10;36H|   |   │\\u001b[11;36H|\\u001b[44G│\\u001b[12;36H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;38H\"]\n[12.095916, \"o\", \"\\u001b[H\\u001b[2Jx=0.05 m\\u001b[1;38H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=-0.00 m/s\\u001b[2;38H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.14 rad\\u001b[3;38H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=-0.00 rad/s\\u001b[4;40H|\\r\\nu=-0.15\\u001b[5;40H|\\n\\b|\\n\\b\"]\n[12.096308, \"o\", \"|\\n\\u001b[36G┌───|───┐\\u001b[9;36H|   |   │\\u001b[10;36H|   |   │\\u001b[11;36H|\\u001b[44G│\\u001b[12;36H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;38H\"]\n[12.116705, \"o\", \"\\u001b[H\\u001b[2Jx=0.05 m\\u001b[1;38H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=-0.00 m/s\\u001b[2;38H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.14 rad\\u001b[3;38H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=-0.00 rad/s\\u001b[4;40H|\\r\\nu=-0.14\\u001b[5;40H\"]\n[12.116842, \"o\", \"|\\n\\b|\\n\\b|\\n\\u001b[36G┌───|───┐\\u001b[9;36H|   |   │\\u001b[10;36H|   |   │\\u001b[11;36H|\\u001b[44G│\\u001b[12;36H└o-----o┘\\r\\n\"]\n[12.117234, \"o\", \"\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;38H\"]\n[12.137715, \"o\", \"\\u001b[H\\u001b[2Jx=0.05 m\\u001b[1;38H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=-0.00 m/s\\u001b[2;38H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.14 rad\\u001b[3;38H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=-0.00 rad/s\\u001b[4;40H|\\r\\nu=-0.14\\u001b[5;40H\"]\n[12.138094, \"o\", \"|\\n\\b|\\n\\b|\\n\\u001b[36G┌───|───┐\\u001b[9;36H|   |   │\\u001b[10;36H|   |   │\\u001b[11;36H|\\u001b[44G│\\u001b[12;36H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;38H\"]\n[12.158887, \"o\", \"\\u001b[H\\u001b[2Jx=0.05 m\\u001b[1;38H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=-0.00 m/s\\u001b[2;38H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.14 rad\\u001b[3;38H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=-0.00 rad/s\\u001b[4;40H|\\r\\nu=-0.13\\u001b[5;40H\"]\n[12.159293, \"o\", \"|\\n\\b|\\n\\b|\\n\\u001b[36G┌───|───┐\\u001b[9;36H|   |   │\\u001b[10;36H|   |   │\\u001b[11;36H|\\u001b[44G│\\u001b[12;36H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;38H\"]\n[12.179636, \"o\", \"\\u001b[H\\u001b[2Jx=0.05 m\\u001b[1;38H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=-0.00 m/s\\u001b[2;38H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.14 rad\\u001b[3;38H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=-0.00 rad/s\\u001b[4;40H|\\r\\nu=-0.13\\u001b[5;40H\"]\n[12.179956, \"o\", \"|\\n\\b|\\n\\b|\\n\\u001b[36G┌───|───┐\\u001b[9;36H|   |   │\\u001b[10;36H|   |   │\\u001b[11;36H|\\u001b[44G│\\u001b[12;36H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;38H\"]\n[12.200461, \"o\", \"\\u001b[H\\u001b[2Jx=0.05 m\\u001b[1;38H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=-0.00 m/s\\u001b[2;38H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.14 rad\\u001b[3;38H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=-0.00 rad/s\\u001b[4;40H|\\r\\nu=-0.13\\u001b[5;40H|\\n\\b\"]\n[12.200583, \"o\", \"|\\n\\b|\\n\\u001b[36G┌───|───┐\\u001b[9;36H|   |   │\\u001b[10;36H|   |   │\\u001b[11;36H|\\u001b[44G│\\u001b[12;36H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H\"]\n[12.200878, \"o\", \"|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;38H\"]\n[12.221507, \"o\", \"\\u001b[H\\u001b[2Jx=0.05 m\\u001b[1;38H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=-0.00 m/s\\u001b[2;38H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.14 rad\\u001b[3;38H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=-0.00 rad/s\\u001b[4;40H|\\r\\nu=-0.12\\u001b[5;40H|\\n\\b|\\n\\b|\\n\\u001b[36G┌───|───┐\\u001b[9;36H\"]\n[12.221912, \"o\", \"|   |   │\\u001b[10;36H|   |   │\\u001b[11;36H|\\u001b[44G│\\u001b[12;36H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;38H\"]\n[12.242261, \"o\", \"\\u001b[H\\u001b[2Jx=0.05 m\\u001b[1;38H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=-0.00 m/s\\u001b[2;38H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.14 rad\\u001b[3;38H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=-0.00 rad/s\\u001b[4;40H|\\r\\nu=-0.12\\u001b[5;40H|\\n\\b|\\n\\b\"]\n[12.242633, \"o\", \"|\\n\\u001b[36G┌───|───┐\\u001b[9;36H|   |   │\\u001b[10;36H|   |   │\\u001b[11;36H|\\u001b[44G│\\u001b[12;36H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;38H\"]\n[12.263216, \"o\", \"\\u001b[H\\u001b[2Jx=0.05 m\\u001b[1;38H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=-0.00 m/s\\u001b[2;38H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.14 rad\\u001b[3;38H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=-0.00 rad/s\\u001b[4;40H\"]\n[12.263623, \"o\", \"|\\r\\nu=-0.12\\u001b[5;40H|\\n\\b|\\n\\b|\\n\\u001b[36G┌───|───┐\\u001b[9;36H|   |   │\\u001b[10;36H|   |   │\\u001b[11;36H|\\u001b[44G│\\u001b[12;36H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;38H\"]\n[12.284223, \"o\", \"\\u001b[H\\u001b[2Jx=0.05 m\\u001b[1;38H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=-0.01 m/s\\u001b[2;38H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.14 rad\\u001b[3;38H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=-0.00 rad/s\\u001b[4;40H|\\r\\nu=-0.11\\u001b[5;40H\"]\n[12.284361, \"o\", \"|\\n\\b|\\n\\b|\\n\\u001b[36G┌───|───┐\\u001b[9;36H|   |   │\\u001b[10;36H|   |   │\\u001b[11;36H|\\u001b[44G│\\u001b[12;36H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H\"]\n[12.284718, \"o\", \"|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;38H\"]\n[12.30518, \"o\", \"\\u001b[H\\u001b[2Jx=0.05 m\\u001b[1;38H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=-0.01 m/s\\u001b[2;38H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.14 rad\\u001b[3;38H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=-0.00 rad/s\\u001b[4;40H|\\r\\nu=-0.11\\u001b[5;40H|\\n\\b|\\n\\b\"]\n[12.305524, \"o\", \"|\\n\\u001b[36G┌───|───┐\\u001b[9;36H|   |   │\\u001b[10;36H|   |   │\\u001b[11;36H|\\u001b[44G│\\u001b[12;36H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;38H\"]\n[12.326157, \"o\", \"\\u001b[H\\u001b[2Jx=0.05 m\\u001b[1;38H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=-0.01 m/s\\u001b[2;38H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.14 rad\\u001b[3;38H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=-0.00 rad/s\\u001b[4;40H|\\r\\nu=-0.10\\u001b[5;40H\"]\n[12.326463, \"o\", \"|\\n\\b|\\n\\b|\\n\\u001b[36G┌───|───┐\\u001b[9;36H|   |   │\\u001b[10;36H|   |   │\\u001b[11;36H|\\u001b[44G│\\u001b[12;36H└o-----o┘\\r\\n\"]\n[12.326549, \"o\", \"\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;38H\"]\n[12.34691, \"o\", \"\\u001b[H\\u001b[2Jx=0.05 m\\u001b[1;38H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=-0.01 m/s\\u001b[2;38H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.14 rad\\u001b[3;38H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=-0.00 rad/s\\u001b[4;40H|\\r\\nu=-0.10\\u001b[5;40H|\\n\\b|\\n\\b\"]\n[12.347294, \"o\", \"|\\n\\u001b[36G┌───|───┐\\u001b[9;36H|   |   │\\u001b[10;36H|   |   │\\u001b[11;36H|\\u001b[44G│\\u001b[12;36H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;38H\"]\n[12.367854, \"o\", \"\\u001b[H\\u001b[2Jx=0.05 m\\u001b[1;38H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=-0.01 m/s\\u001b[2;38H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.14 rad\\u001b[3;38H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=-0.00 rad/s\\u001b[4;40H|\\r\\nu=-0.10\\u001b[5;40H\"]\n[12.367985, \"o\", \"|\\n\\b|\\n\\b|\\n\\u001b[36G┌───|───┐\\u001b[9;36H|   |   │\\u001b[10;36H|   |   │\\u001b[11;36H|\\u001b[44G│\\u001b[12;36H└o-----o┘\\r\\n\"]\n[12.368336, \"o\", \"\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;38H\"]\n[12.389039, \"o\", \"\\u001b[H\\u001b[2Jx=0.05 m\\u001b[1;38H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=-0.01 m/s\\u001b[2;38H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.14 rad\\u001b[3;38H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=-0.00 rad/s\\u001b[4;40H|\\r\\nu=-0.09\\u001b[5;40H|\\n\\b\"]\n[12.389167, \"o\", \"|\\n\\b|\\n\\u001b[36G┌───|───┐\\u001b[9;36H|   |   │\\u001b[10;36H|   |   │\\u001b[11;36H|\\u001b[44G│\\u001b[12;36H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\"]\n[12.389551, \"o\", \"\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;38H\"]\n[12.409826, \"o\", \"\\u001b[H\\u001b[2Jx=0.05 m\\u001b[1;38H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=-0.01 m/s\\u001b[2;38H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.14 rad\\u001b[3;38H└───┘\\u001b[3;63H\"]\n[12.410185, \"o\", \"⮠ to restart\\r\\nȧ=-0.00 rad/s\\u001b[4;40H|\\r\\nu=-0.09\\u001b[5;40H|\\n\\b|\\n\\b|\\n\\u001b[36G┌───|───┐\\u001b[9;36H|   |   │\\u001b[10;36H|   |   │\\u001b[11;36H|\\u001b[44G│\\u001b[12;36H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;38H\"]\n[12.430706, \"o\", \"\\u001b[H\\u001b[2Jx=0.05 m\\u001b[1;38H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=-0.01 m/s\\u001b[2;38H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.14 rad\\u001b[3;38H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=-0.00 rad/s\\u001b[4;40H|\\r\\nu=-0.09\\u001b[5;40H|\\n\\b|\\n\\b\"]\n[12.431012, \"o\", \"|\\n\\u001b[36G┌───|───┐\\u001b[9;36H|   |   │\\u001b[10;36H|   |   │\\u001b[11;36H|\\u001b[44G│\\u001b[12;36H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H\"]\n[12.431238, \"o\", \"|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;38H\"]\n[12.451765, \"o\", \"\\u001b[H\\u001b[2Jx=0.05 m\\u001b[1;38H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=-0.01 m/s\\u001b[2;38H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.14 rad\\u001b[3;38H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=-0.00 rad/s\\u001b[4;40H|\\r\\nu=-0.08\\u001b[5;40H\"]\n[12.452123, \"o\", \"|\\n\\b|\\n\\b|\\n\\u001b[36G┌───|───┐\\u001b[9;36H|   |   │\\u001b[10;36H|   |   │\\u001b[11;36H|\\u001b[44G│\\u001b[12;36H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;38H\"]\n[12.472613, \"o\", \"\\u001b[H\\u001b[2Jx=0.05 m\\u001b[1;38H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=-0.01 m/s\\u001b[2;38H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.14 rad\\u001b[3;38H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=-0.00 rad/s\\u001b[4;40H|\\r\\nu=-0.08\\u001b[5;40H|\\n\\b\"]\n[12.472992, \"o\", \"|\\n\\b|\\n\\u001b[36G┌───|───┐\\u001b[9;36H|   |   │\\u001b[10;36H|   |   │\\u001b[11;36H|\\u001b[44G│\\u001b[12;36H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;38H\"]\n[12.49366, \"o\", \"\\u001b[H\\u001b[2Jx=0.05 m\\u001b[1;38H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=-0.01 m/s\\u001b[2;38H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.14 rad\\u001b[3;38H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=-0.00 rad/s\\u001b[4;40H|\\r\\nu=-0.08\\u001b[5;40H|\\n\\b|\\n\\b\"]\n[12.493786, \"o\", \"|\\n\\u001b[36G┌───|───┐\\u001b[9;36H|   |   │\\u001b[10;36H|   |   │\\u001b[11;36H|\\u001b[44G│\\u001b[12;36H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H\"]\n[12.494153, \"o\", \"|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;38H\"]\n[12.514708, \"o\", \"\\u001b[H\\u001b[2Jx=0.05 m\\u001b[1;38H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=-0.01 m/s\\u001b[2;38H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.14 rad\\u001b[3;38H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=-0.00 rad/s\\u001b[4;40H|\\r\\nu=-0.08\\u001b[5;40H|\\n\\b\"]\n[12.515078, \"o\", \"|\\n\\b|\\n\\u001b[36G┌───|───┐\\u001b[9;36H|   |   │\\u001b[10;36H|   |   │\\u001b[11;36H|\\u001b[44G│\\u001b[12;36H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;38H\"]\n[12.535701, \"o\", \"\\u001b[H\\u001b[2Jx=0.05 m\\u001b[1;38H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=-0.01 m/s\\u001b[2;38H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.14 rad\\u001b[3;38H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=-0.00 rad/s\\u001b[4;40H|\\r\\nu=-0.07\\u001b[5;40H|\\n\\b\"]\n[12.536108, \"o\", \"|\\n\\b|\\n\\u001b[36G┌───|───┐\\u001b[9;36H|   |   │\\u001b[10;36H|   |   │\\u001b[11;36H|\\u001b[44G│\\u001b[12;36H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;38H\"]\n[12.556526, \"o\", \"\\u001b[H\\u001b[2Jx=0.05 m\\u001b[1;38H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=-0.01 m/s\\u001b[2;38H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.14 rad\\u001b[3;38H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=-0.00 rad/s\\u001b[4;40H|\\r\\nu=-0.07\\u001b[5;40H\"]\n[12.556883, \"o\", \"|\\n\\b|\\n\\b|\\n\\u001b[36G┌───|───┐\\u001b[9;36H|   |   │\\u001b[10;36H|   |   │\\u001b[11;36H|\\u001b[44G│\\u001b[12;36H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H\"]\n[12.557201, \"o\", \"|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;38H\"]\n[12.577479, \"o\", \"\\u001b[H\\u001b[2Jx=0.05 m\\u001b[1;38H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=-0.01 m/s\\u001b[2;38H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.14 rad\\u001b[3;38H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=-0.00 rad/s\\u001b[4;40H|\\r\\nu=-0.07\\u001b[5;40H\"]\n[12.577939, \"o\", \"|\\n\\b|\\n\\b|\\n\\u001b[36G┌───|───┐\\u001b[9;36H|   |   │\\u001b[10;36H|   |   │\\u001b[11;36H|\\u001b[44G│\\u001b[12;36H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;38H\"]\n[12.598301, \"o\", \"\\u001b[H\\u001b[2Jx=0.05 m\\u001b[1;38H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=-0.01 m/s\\u001b[2;38H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.14 rad\\u001b[3;38H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=-0.00 rad/s\\u001b[4;40H|\\r\\nu=-0.07\\u001b[5;40H|\\n\\b|\\n\\b\"]\n[12.598699, \"o\", \"|\\n\\u001b[36G┌───|───┐\\u001b[9;36H|   |   │\\u001b[10;36H|   |   │\\u001b[11;36H|\\u001b[44G│\\u001b[12;36H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;38H\"]\n[12.619249, \"o\", \"\\u001b[H\\u001b[2Jx=0.05 m\\u001b[1;38H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=-0.01 m/s\\u001b[2;38H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.14 rad\\u001b[3;38H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=-0.00 rad/s\\u001b[4;40H|\\r\\nu=-0.06\\u001b[5;40H\"]\n[12.61964, \"o\", \"|\\n\\b|\\n\\b|\\n\\u001b[36G┌───|───┐\\u001b[9;36H|   |   │\\u001b[10;36H|   |   │\\u001b[11;36H|\\u001b[44G│\\u001b[12;36H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;38H\"]\n[12.640235, \"o\", \"\\u001b[H\\u001b[2Jx=0.05 m\\u001b[1;38H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=-0.01 m/s\\u001b[2;38H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.14 rad\\u001b[3;38H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=-0.00 rad/s\\u001b[4;40H|\\r\\nu=-0.06\\u001b[5;40H\"]\n[12.64062, \"o\", \"|\\n\\b|\\n\\b|\\n\\u001b[36G┌───|───┐\\u001b[9;36H|   |   │\\u001b[10;36H|   |   │\\u001b[11;36H|\\u001b[44G│\\u001b[12;36H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;38H\"]\n[12.66139, \"o\", \"\\u001b[H\\u001b[2Jx=0.05 m\\u001b[1;38H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=-0.01 m/s\\u001b[2;38H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.14 rad\\u001b[3;38H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=-0.00 rad/s\\u001b[4;40H|\\r\\nu=-0.06\\u001b[5;40H|\\n\\b|\\n\\b\"]\n[12.661515, \"o\", \"|\\n\\u001b[36G┌───|───┐\\u001b[9;36H|   |   │\\u001b[10;36H|   |   │\\u001b[11;36H|\\u001b[44G│\\u001b[12;36H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H\"]\n[12.661935, \"o\", \"|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;38H\"]\n[12.682684, \"o\", \"\\u001b[H\\u001b[2Jx=0.05 m\\u001b[1;38H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=-0.01 m/s\\u001b[2;38H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.14 rad\\u001b[3;38H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=-0.00 rad/s\\u001b[4;40H|\\r\\nu=-0.05\\u001b[5;40H|\\n\\b\"]\n[12.683009, \"o\", \"|\\n\\b|\\n\\u001b[36G┌───|───┐\\u001b[9;36H|   |   │\\u001b[10;36H|   |   │\\u001b[11;36H|\\u001b[44G│\\u001b[12;36H└o-----o┘\\r\\n\"]\n[12.683292, \"o\", \"\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;38H\"]\n[12.703641, \"o\", \"\\u001b[H\\u001b[2Jx=0.05 m\\u001b[1;38H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=-0.01 m/s\\u001b[2;38H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.14 rad\\u001b[3;38H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=-0.00 rad/s\\u001b[4;40H|\\r\\nu=-0.05\\u001b[5;40H|\\n\\b|\\n\\b\"]\n[12.703768, \"o\", \"|\\n\\u001b[36G┌───|───┐\\u001b[9;36H|   |   │\\u001b[10;36H|   |   │\\u001b[11;36H|\\u001b[44G│\\u001b[12;36H└o-----o┘\\r\\n\"]\n[12.70414, \"o\", \"\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;38H\"]\n[12.724607, \"o\", \"\\u001b[H\\u001b[2Jx=0.05 m\\u001b[1;38H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=-0.01 m/s\\u001b[2;38H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.14 rad\\u001b[3;38H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=-0.00 rad/s\\u001b[4;40H|\\r\\nu=-0.05\\u001b[5;40H\"]\n[12.724734, \"o\", \"|\\n\\b|\\n\\b|\\n\\u001b[36G┌───|───┐\\u001b[9;36H|   |   │\\u001b[10;36H|   |   │\\u001b[11;36H|\\u001b[44G│\\u001b[12;36H└o-----o┘\\r\\n\"]\n[12.725111, \"o\", \"\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;38H\"]\n[12.745654, \"o\", \"\\u001b[H\\u001b[2Jx=0.05 m\\u001b[1;38H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=-0.01 m/s\\u001b[2;38H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.14 rad\\u001b[3;38H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=-0.00 rad/s\\u001b[4;40H|\\r\\nu=-0.05\\u001b[5;40H\"]\n[12.746026, \"o\", \"|\\n\\b|\\n\\b|\\n\\u001b[36G┌───|───┐\\u001b[9;36H|   |   │\\u001b[10;36H|   |   │\\u001b[11;36H|\\u001b[44G│\\u001b[12;36H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;38H\"]\n[12.766553, \"o\", \"\\u001b[H\\u001b[2Jx=0.05 m\\u001b[1;38H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=-0.01 m/s\\u001b[2;38H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.14 rad\\u001b[3;38H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=-0.00 rad/s\\u001b[4;40H|\\r\\nu=-0.05\\u001b[5;40H|\\n\\b|\\n\\b\"]\n[12.766678, \"o\", \"|\\n\\u001b[36G┌───|───┐\\u001b[9;36H|   |   │\\u001b[10;36H|   |   │\\u001b[11;36H|\\u001b[44G│\\u001b[12;36H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H\"]\n[12.766969, \"o\", \"|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;38H\"]\n[12.787495, \"o\", \"\\u001b[H\\u001b[2Jx=0.05 m\\u001b[1;38H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=-0.01 m/s\\u001b[2;38H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.14 rad\\u001b[3;38H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=-0.00 rad/s\\u001b[4;40H|\\r\\nu=-0.04\\u001b[5;40H|\\n\\b|\\n\\b\"]\n[12.787898, \"o\", \"|\\n\\u001b[36G┌───|───┐\\u001b[9;36H|   |   │\\u001b[10;36H|   |   │\\u001b[11;36H|\\u001b[44G│\\u001b[12;36H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;38H\"]\n[12.808209, \"o\", \"\\u001b[H\\u001b[2Jx=0.05 m\\u001b[1;38H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=-0.01 m/s\\u001b[2;38H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.14 rad\\u001b[3;38H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=-0.00 rad/s\\u001b[4;40H|\\r\\nu=-0.04\\u001b[5;40H\"]\n[12.808668, \"o\", \"|\\n\\b|\\n\\b|\\n\\u001b[36G┌───|───┐\\u001b[9;36H|   |   │\\u001b[10;36H|   |   │\\u001b[11;36H|\\u001b[44G│\\u001b[12;36H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;38H\"]\n[12.828723, \"o\", \"\\u001b[H\\u001b[2Jx=0.05 m\\u001b[1;38H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=-0.01 m/s\\u001b[2;38H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.14 rad\\u001b[3;38H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=-0.00 rad/s\\u001b[4;40H|\\r\\nu=-0.04\\u001b[5;40H|\\n\\b|\\n\\b|\\n\\u001b[36G┌───|───┐\\u001b[9;36H|   |   │\\u001b[10;36H|   |   │\\u001b[11;36H|\\u001b[44G│\\u001b[12;36H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n \"]\n[12.828768, \"o\", \"-2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;38H\"]\n[12.84924, \"o\", \"\\u001b[H\\u001b[2Jx=0.05 m\\u001b[1;38H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=-0.01 m/s\\u001b[2;38H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.14 rad\\u001b[3;38H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=-0.00 rad/s\\u001b[4;40H|\\r\\nu=-0.04\\u001b[5;40H|\\n\\b|\\n\\b|\\n\\u001b[36G┌───|───┐\\u001b[9;36H|   |   │\\u001b[10;36H|   |   │\\u001b[11;36H|\\u001b[44G│\\u001b[12;36H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;38H\"]\n[12.869846, \"o\", \"\\u001b[H\\u001b[2Jx=0.05 m\\u001b[1;38H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=-0.01 m/s\\u001b[2;38H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.14 rad\\u001b[3;38H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=-0.00 rad/s\\u001b[4;40H|\\r\\nu=-0.04\\u001b[5;40H|\\n\\b|\\n\\b|\\n\\u001b[36G┌───|───┐\\u001b[9;36H|   |   │\\u001b[10;36H|   |   │\\u001b[11;36H|\\u001b[44G│\\u001b[12;36H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;38H\"]\n[12.890119, \"o\", \"\\u001b[H\\u001b[2Jx=0.05 m\\u001b[1;38H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=-0.01 m/s\\u001b[2;38H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.14 rad\\u001b[3;38H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=-0.00 rad/s\\u001b[4;40H|\\r\\nu=-0.03\\u001b[5;40H|\\n\\b|\\n\\b|\\n\\u001b[36G┌───|───┐\\u001b[9;36H|   |   │\\u001b[10;36H|   |   │\\u001b[11;36H|\\u001b[44G│\\u001b[12;36H└o-----o┘\\r\\n\"]\n[12.890173, \"o\", \"\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;38H\"]\n[12.910615, \"o\", \"\\u001b[H\\u001b[2Jx=0.05 m\\u001b[1;38H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=-0.01 m/s\\u001b[2;38H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.14 rad\\u001b[3;38H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=-0.00 rad/s\\u001b[4;40H|\\r\\nu=-0.03\\u001b[5;40H|\\n\\b|\\n\\b|\\n\\u001b[36G┌───|───┐\\u001b[9;36H|   |   │\\u001b[10;36H|   |   │\\u001b[11;36H\"]\n[12.910705, \"o\", \"|\\u001b[44G│\\u001b[12;36H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n \"]\n[12.911007, \"o\", \"-2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;38H\"]\n[12.930956, \"o\", \"\\u001b[H\\u001b[2Jx=0.05 m\\u001b[1;38H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=-0.01 m/s\\u001b[2;38H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.14 rad\\u001b[3;38H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=-0.00 rad/s\\u001b[4;40H|\\r\\nu=-0.03\\u001b[5;40H|\\n\\b|\\n\\b|\\n\\u001b[36G┌───|───┐\\u001b[9;36H|   |   │\\u001b[10;36H|   |   │\\u001b[11;36H|\\u001b[44G│\\u001b[12;36H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n \"]\n[12.930995, \"o\", \"-2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;38H\"]\n[12.951313, \"o\", \"\\u001b[H\\u001b[2Jx=0.05 m\\u001b[1;38H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=-0.01 m/s\\u001b[2;38H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.14 rad\\u001b[3;38H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=-0.00 rad/s\\u001b[4;40H|\\r\\nu=-0.03\\u001b[5;40H|\\n\\b|\\n\\b|\\n\\u001b[36G┌───|───┐\\u001b[9;36H|   |   │\\u001b[10;36H|   |   │\\u001b[11;36H|\\u001b[44G│\\u001b[12;36H└o-----o┘\\r\\n\"]\n[12.951362, \"o\", \"\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;38H\"]\n[12.9719, \"o\", \"\\u001b[H\\u001b[2Jx=0.04 m\\u001b[1;38H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=-0.01 m/s\\u001b[2;38H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.14 rad\\u001b[3;38H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=-0.00 rad/s\\u001b[4;40H|\\r\\nu=-0.03\\u001b[5;40H|\\n\\b|\\n\\b|\\n\\u001b[36G┌───|───┐\\u001b[9;36H|   |   │\\u001b[10;36H|   |   │\\u001b[11;36H|\\u001b[44G│\\u001b[12;36H\"]\n[12.971995, \"o\", \"└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;38H\"]\n[12.992774, \"o\", \"\\u001b[H\\u001b[2Jx=0.04 m\\u001b[1;38H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=-0.01 m/s\\u001b[2;38H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.14 rad\\u001b[3;38H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=-0.00 rad/s\\u001b[4;40H|\\r\\nu=-0.02\\u001b[5;40H|\\n\\b|\\n\\b\"]\n[12.993188, \"o\", \"|\\n\\u001b[36G┌───|───┐\\u001b[9;36H|   |   │\\u001b[10;36H|   |   │\\u001b[11;36H|\\u001b[44G│\\u001b[12;36H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H\"]\n[12.993472, \"o\", \"|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;38H\"]\n[13.013804, \"o\", \"\\u001b[H\\u001b[2Jx=0.04 m\\u001b[1;38H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=-0.01 m/s\\u001b[2;38H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.14 rad\\u001b[3;38H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=-0.00 rad/s\\u001b[4;40H|\\r\\nu=-0.02\\u001b[5;40H\"]\n[13.013925, \"o\", \"|\\n\\b|\\n\\b|\\n\\u001b[36G┌───|───┐\\u001b[9;36H|   |   │\\u001b[10;36H|   |   │\\u001b[11;36H|\\u001b[44G│\\u001b[12;36H└o-----o┘\\r\\n\"]\n[13.014396, \"o\", \"\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;38H\"]\n[13.034633, \"o\", \"\\u001b[H\\u001b[2Jx=0.04 m\\u001b[1;38H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=-0.01 m/s\\u001b[2;38H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.14 rad\\u001b[3;38H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=-0.00 rad/s\\u001b[4;40H|\\r\\nu=-0.02\\u001b[5;40H|\\n\\b\"]\n[13.03507, \"o\", \"|\\n\\b|\\n\\u001b[36G┌───|───┐\\u001b[9;36H|   |   │\\u001b[10;36H|   |   │\\u001b[11;36H|\\u001b[44G│\\u001b[12;36H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;38H\"]\n[13.055419, \"o\", \"\\u001b[H\\u001b[2Jx=0.04 m\\u001b[1;38H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=-0.01 m/s\\u001b[2;38H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.14 rad\\u001b[3;38H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=-0.00 rad/s\\u001b[4;40H|\\r\\nu=-0.02\\u001b[5;40H|\\n\\b\"]\n[13.055546, \"o\", \"|\\n\\b|\\n\\u001b[36G┌───|───┐\\u001b[9;36H|   |   │\\u001b[10;36H|   |   │\\u001b[11;36H|\\u001b[44G│\\u001b[12;36H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H\"]\n[13.055989, \"o\", \"|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;38H\"]\n[13.076423, \"o\", \"\\u001b[H\\u001b[2Jx=0.04 m\\u001b[1;38H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=-0.01 m/s\\u001b[2;38H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.14 rad\\u001b[3;38H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=-0.00 rad/s\\u001b[4;40H|\\r\\nu=-0.02\\u001b[5;40H|\\n\\b|\\n\\b\"]\n[13.076559, \"o\", \"|\\n\\u001b[36G┌───|───┐\\u001b[9;36H|   |   │\\u001b[10;36H|   |   │\\u001b[11;36H|\\u001b[44G│\\u001b[12;36H└o-----o┘\\r\\n\"]\n[13.076825, \"o\", \"\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;38H\"]\n[13.097425, \"o\", \"\\u001b[H\\u001b[2Jx=0.04 m\\u001b[1;38H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=-0.01 m/s\\u001b[2;38H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.14 rad\\u001b[3;38H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=-0.00 rad/s\\u001b[4;40H|\\r\\nu=-0.02\\u001b[5;40H|\\n\\b|\\n\\b|\\n\\u001b[36G┌───|───┐\\u001b[9;36H|   |   │\\u001b[10;36H\"]\n[13.097738, \"o\", \"|   |   │\\u001b[11;36H|\\u001b[44G│\\u001b[12;36H└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H\"]\n[13.098042, \"o\", \"|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;38H\"]\n[13.118369, \"o\", \"\\u001b[H\\u001b[2Jx=0.04 m\\u001b[1;38H┌───┐\\u001b[1;63H← to nudge left\\r\\nẋ=-0.01 m/s\\u001b[2;38H| m |\\u001b[2;63H→ to nudge right\\u001b[3;1Ha=3.14 rad\\u001b[3;38H└───┘\\u001b[3;63H⮠ to restart\\r\\nȧ=-0.00 rad/s\\u001b[4;40H\"]\n[13.118492, \"o\", \"|\\r\\nu=-0.02\\u001b[5;40H|\\n\\b|\\n\\b|\\n\\u001b[36G┌───|───┐\\u001b[9;36H|   |   │\\u001b[10;36H|   |   │\\u001b[11;36H|\\u001b[44G│\\u001b[12;36H\"]\n[13.118908, \"o\", \"└o-----o┘\\r\\n\\u001b(0\\u001b[0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\\u001b(B\\u001b[14;2H\\u001b(0\\u001b[0m\\u001b(B|\\u001b[14;11H|\\u001b[14;21H|\\u001b[14;30H|\\u001b[14;40H|\\u001b[14;49H|\\u001b[14;59H|\\u001b[14;68H|\\r\\n -2.00    -1.50     -1.00    -0.50     0.00     0.50\\u001b[59G1.00     1.50\\u001b[4;38H\"]\n[13.139121, \"o\", \"q\"]\n[13.139559, \"o\", \"\\u001b[17;1H\\u001b[?12l\\u001b[?25h\\u001b[?1049l\\u001b[23;0;0t\\r\\u001b[?1l\\u001b>\"]"
  },
  {
    "path": "examples/README.md",
    "content": "# Examples\n\nThis folder contains some examples of recordings and exports.\nIt's intended to be used as a demonstration of features and also to track the file size.\n\n| Example                                    | Description                                                                              |\n| ------------------------------------------ | ---------------------------------------------------------------------------------------- |\n| [256colors](256colors.svg)                 | script to print the 256 xterm colors as background and foreground                        |\n| [htop](htop.svg)                           | running htop to see progress bars, headers and pagination                                |\n| [session](session.svg)                     | simple terminal session running various commands like ls and cat                         |\n| [444816](444816.svg)                       | Asciicast recording of an equilibrium pendulum to see compatibility with asciinema files |\n| [444816 borderless](444816_borderless.svg) | Same as 444816 but without a terminal window                                             |\n| [rgb](rgb.svg)                             | Sample of rgb output                                                                     |\n\n> Files are not embedded here to alleviate loading\n\n## Sizes\n\nThis table tracks size changes between the first release of the example and the last one as examples are updated on each code change to reflect new features and optimizations.\n\n<!--SIZES_START-->\n| File | Iterations | First Size | Current Size | Variation |\n|------|:----------:|------------|--------------|-----------|\n| 256colors.svg | 9 | 954.73kB | 498.81kB | 62.7300% |\n| 444816_borderless.svg | 3 | 3.11MB | 2.10MB | 38.9400% |\n| 444816.svg | 10 | 3.42MB | 2.10MB | 47.9700% |\n| htop.svg | 8 | 74.15kB | 47.20kB | 44.4200% |\n| rgb.svg | 6 | 95.53kB | 99.08kB | -3.6500% |\n| session.svg | 9 | 462.64kB | 281.41kB | 48.7100% |\n\n<!--SIZES_END-->\n\n> Table generated using [update-filesize.sh](/scripts/update-filesize.sh) script\n"
  },
  {
    "path": "examples/htop.cast",
    "content": "{\"version\":2,\"width\":120,\"height\":30,\"timestamp\":1646522098,\"duration\":7.439,\"env\":{\"SHELL\":\"/usr/bin/zsh\",\"TERM\":\"xterm-256color\"}}\n[0.499,\"o\",\"\\u001b[1m\\u001b[7m%\\u001b[27m\\u001b[1m\\u001b[0m                                                                                                                       \\r \\r\\u001b]2;mrmarble@founder:~/repos/termsvg\\u0007\\u001b]1;~/repos/termsvg\\u0007\"]\n[0.524,\"o\",\"\\r\\u001b[0m\\u001b[27m\\u001b[24m\\u001b[J\\u001b[01;32m➜  \\u001b[36mtermsvg\\u001b[00m \\u001b[01;34mgit:(\\u001b[31mmaster\\u001b[34m) \\u001b[33m✗\\u001b[00m \\u001b[K\\u001b[?1h\\u001b=\"]\n[0.525,\"o\",\"\\u001b[?2004h\"]\n[1.486,\"o\",\"\\u001b[1m\\u001b[31mh\\u001b[0m\\u001b[39m\\u0008\\u001b[1m\\u001b[31mh\\u001b[0m\\u001b[39m\\u001b[90mtop\\u001b[39m\\u0008\\u0008\\u0008\"]\n[1.629,\"o\",\"\\u0008\\u001b[1m\\u001b[31mh\\u001b[1m\\u001b[31mt\\u001b[0m\\u001b[39m\"]\n[1.74,\"o\",\"\\u0008\\u0008\\u001b[1m\\u001b[31mh\\u001b[1m\\u001b[31mt\\u001b[1m\\u001b[31mo\\u001b[0m\\u001b[39m\"]\n[1.815,\"o\",\"\\u0008\\u0008\\u0008\\u001b[0m\\u001b[32mh\\u001b[0m\\u001b[32mt\\u001b[0m\\u001b[32mo\\u001b[32mp\\u001b[39m\"]\n[2.489,\"o\",\"\\u001b[?1l\\u001b\\u003e\"]\n[2.49,\"o\",\"\\u001b[?2004l\\r\\r\\n\\u001b]2;htop\\u0007\\u001b]1;htop\\u0007\"]\n[2.501,\"o\",\"\\u001b[?1049h\\u001b[22;0;0t\\u001b[1;30r\\u001b(B\\u001b[m\\u001b[4l\\u001b[?7h\\u001b[?1h\\u001b=\\u001b[?25l\\u001b[39;49m\\u001b[?1000h\"]\n[2.594,\"o\",\"\\u001b[39;49m\\u001b(B\\u001b[m\\u001b[H\\u001b[2J\\u001b[2d  \\u001b[36m1  \\u001b[39m\\u001b(B\\u001b[0;1m[\\u001b[90m\\u001b[17X\\u001b[2;24H0.0%\\u001b[39m]\\u001b(B\\u001b[m   \\u001b[36m7  \\u001b[39m\\u001b(B\\u001b[0;1m[\\u001b[90m\\u001b[17X\\u001b[2;53H0.0%\\u001b[39m]\\u001b(B\\u001b[m   \\u001b[36m13 \\u001b[39m\\u001b(B\\u001b[0;1m[\\u001b[90m\\u001b[17X\\u001b[2;82H0.0%\\u001b[39m]\\u001b(B\\u001b[m   \\u001b[36m19 \\u001b[39m\\u001b(B\\u001b[0;1m[\\u001b[90m\\u001b[17X\\u001b[2;111H0.0%\\u001b[39m]\\u001b[3;3H\\u001b(B\\u001b[0m\\u001b[36m2  \\u001b[39m\\u001b(B\\u001b[0;1m[\\u001b[90m\\u001b[17X\\u001b[3;24H0.0%\\u001b[39m]\\u001b(B\\u001b[m   \\u001b[36m8  \\u001b[39m\\u001b(B\\u001b[0;1m[\\u001b[90m\\u001b[17X\\u001b[3;53H0.0%\\u001b[39m]\\u001b(B\\u001b[m   \\u001b[36m14 \\u001b[39m\\u001b(B\\u001b[0;1m[\\u001b[90m\\u001b[17X\\u001b[3;82H0.0%\\u001b[39m]\\u001b(B\\u001b[m   \\u001b[36m20 \\u001b[39m\\u001b(B\\u001b[0;1m[\\u001b(B\\u001b[0m\\u001b[31m|||||||||||||||100.0%\\u001b[39m\\u001b(B\\u001b[0;1m]\\u001b[4;3H\\u001b(B\\u001b[0m\\u001b[36m3  \\u001b[39m\\u001b(B\\u001b[0;1m[\\u001b[90m\\u001b[17X\\u001b[4;24H0.0%\\u001b[39m]\\u001b(B\\u001b[m   \\u001b[36m9  \\u001b[39m\\u001b(B\\u001b[0;1m[\\u001b[90m\\u001b[17X\\u001b[4;53H0.0%\\u001b[39m]\\u001b(B\\u001b[m   \\u001b[36m15 \\u001b[39m\\u001b(B\\u001b[0;1m[\\u001b[90m\\u001b[17X\\u001b[4;82H0.0%\\u001b[39m]\\u001b(B\\u001b[m   \\u001b[36m21 \\u001b[39m\\u001b(B\\u001b[0;1m[\\u001b[90m\\u001b[17X\\u001b[4;111H0.0%\\u001b[39m]\\u001b[5;3H\\u001b(B\\u001b[0m\\u001b[36m4  \\u001b[39m\\u001b(B\\u001b[0;1m[\\u001b[90m\\u001b[17X\\u001b[5;24H0.0%\\u001b[39m]\\u001b(B\\u001b[m   \\u001b[36m10 \\u001b[39m\\u001b(B\\u001b[0;1m[\\u001b[90m\\u001b[17X\\u001b[5;53H0.0%\\u001b[39m]\\u001b(B\\u001b[m   \\u001b[36m16 \\u001b[39m\\u001b(B\\u001b[0;1m[\\u001b[90m\\u001b[17X\\u001b[5;82H0.0%\\u001b[39m]\\u001b(B\\u001b[m   \\u001b[36m22 \\u001b[39m\\u001b(B\\u001b[0;1m[\\u001b[90m\\u001b[17X\\u001b[5;111H0.0%\\u001b[39m]\\u001b[6;3H\\u001b(B\\u001b[0m\\u001b[36m5  \\u001b[39m\\u001b(B\\u001b[0;1m[\\u001b[90m\\u001b[17X\\u001b[6;24H0.0%\\u001b[39m]\\u001b(B\\u001b[m   \\u001b[36m11 \\u001b[39m\\u001b(B\\u001b[0;1m[\\u001b[90m\\u001b[17X\\u001b[6;53H0.0%\\u001b[39m]\\u001b(B\\u001b[m   \\u001b[36m17 \\u001b[39m\\u001b(B\\u001b[0;1m[\\u001b[90m\\u001b[17X\\u001b[6;82H0.0%\\u001b[39m]\\u001b(B\\u001b[m   \\u001b[36m23 \\u001b[39m\\u001b(B\\u001b[0;1m[\\u001b[90m\\u001b[17X\\u001b[6;111H0.0%\\u001b[39m]\\u001b[7;3H\\u001b(B\\u001b[0m\\u001b[36m6  \\u001b[39m\\u001b(B\\u001b[0;1m[\\u001b[90m\\u001b[17X\\u001b[7;24H0.0%\\u001b[39m]\\u001b(B\\u001b[m   \\u001b[36m12 \\u001b[39m\\u001b(B\\u001b[0;1m[\\u001b[90m\\u001b[17X\\u001b[7;53H0.0%\\u001b[39m]\\u001b(B\\u001b[m   \\u001b[36m18 \\u001b[39m\\u001b(B\\u001b[0;1m[\\u001b[90m\\u001b[17X\\u001b[7;82H0.0%\\u001b[39m]\\u001b(B\\u001b[m   \\u001b[36m24 \\u001b[39m\\u001b(B\\u001b[0;1m[\\u001b[90m\\u001b[17X\\u001b[7;111H0.0%\\u001b[39m]\\u001b[8;3H\\u001b(B\\u001b[0m\\u001b[36mMem\\u001b[39m\\u001b(B\\u001b[0;1m[\\u001b(B\\u001b[0m\\u001b[32m|||||||||||||\\u001b[34m||||\\u001b[33m||||||||||||||||\\u001b(B\\u001b[0;1m\\u001b[90m      2.00G/7.72G\\u001b[39m]\\u001b(B\\u001b[m   \\u001b[36mTasks: \\u001b(B\\u001b[0;1m\\u001b[36m41\\u001b(B\\u001b[0m\\u001b[36m, \\u001b(B\\u001b[0;1m\\u001b[32m211\\u001b(B\\u001b[0m\\u001b[32m thr\\u001b[36m; \\u001b(B\\u001b[0;1m\\u001b[32m1\\u001b(B\\u001b[0m\\u001b[36m running\\u001b[9;3HSwp\\u001b[39m\\u001b(B\\u001b[0;1m[\\u001b[90m\\u001b[42X\\u001b[9;49H0K/2.00G\\u001b[39m]\\u001b(B\\u001b[m   \\u001b[36mLoad average: \\u001b[39m\\u001b(B\\u001b[0;1m0.00 \\u001b[36m0.08 \\u001b(B\\u001b[0m\\u001b[36m0.17 \\u001b[10;61HUptime: \\u001b(B\\u001b[0;1m\\u001b[36m13:54:53\\r\\u001b[12d\\u001b(B\\u001b[0m\\u001b[30m\\u001b[42m  PID USER      PRI  NI  VIRT   RES   SHR S \\u001b[30m\\u001b[46mCPU% \\u001b[30m\\u001b[42mMEM%   TIME+  Command\\u001b[K\\r\\u001b[13d\\u001b[30m\\u001b[46m 4385 mrmarble   20   0  8284  3688  3028 R 342.  0.0  0:00.01 htop\\u001b[K\\u001b[14;5H\\u001b[39;49m\\u001b(B\\u001b[m5 \\u001b(B\\u001b[0;1m\\u001b[90mroot      \\u001b[39m\\u001b(B\\u001b[m 20   0 \\u001b[36m 2\\u001b[39m\\u001b(B\\u001b[m424 \\u001b[36m 1\\u001b[39m\\u001b(B\\u001b[m524 \\u001b[36m 1\\u001b[39m\\u001b(B\\u001b[m020 S  0.0  0.0  0:00.26 \\u001b[32m/init\\u001b[15;5H\\u001b[39m\\u001b(B\\u001b[m6 \\u001b(B\\u001b[0;1m\\u001b[90mroot      \\u001b[39m\\u001b(B\\u001b[m 20   0 \\u001b[36m 2\\u001b[39m\\u001b(B\\u001b[m424 \\u001b[36m 1\\u001b[39m\\u001b(B\\u001b[m524 \\u001b[36m 1\\u001b[39m\\u001b(B\\u001b[m020 S  0.0  0.0  0:00.00 \\u001b[32m/init\\u001b[16;5H\\u001b[39m\\u001b(B\\u001b[m1 \\u001b(B\\u001b[0;1m\\u001b[90mroot      \\u001b[39m\\u001b(B\\u001b[m 20   0 \\u001b[36m 2\\u001b[39m\\u001b(B\\u001b[m424 \\u001b[36m 1\\u001b[39m\\u001b(B\\u001b[m524 \\u001b[36m 1\\u001b[39m\\u001b(B\\u001b[m020 S  0.0  0.0  0:00.94 /init\\u001b[17;4H11 \\u001b(B\\u001b[0;1m\\u001b[90mroot      \\u001b[39m\\u001b(B\\u001b[m 20   0 \\u001b[36m 1\\u001b[39m\\u001b(B\\u001b[m752    72     0 S  0.0  0.0  0:00.00 /init\\u001b[18;4H12 \\u001b(B\\u001b[0;1m\\u001b[90mroot      \\u001b[39m\\u001b(B\\u001b[m 20   0 \\u001b[36m 1\\u001b[39m\\u001b(B\\u001b[m752    80     0 S  0.0  0.0  0:00.07 /init\\u001b[19;4H13 mrmarble   20   0 \\u001b[36m 2\\u001b[39m\\u001b(B\\u001b[m612   600   532 S  0.0  0.0  0:00.00 sh -c \\\"$VSCODE_WSL_EXT_LOCATION/scripts/wslServer.sh\\\" b52\\u001b[20;4H14 mrmarble   20   0 \\u001b[36m 2\\u001b[39m\\u001b(B\\u001b[m612 \\u001b[36m 1\\u001b[39m\\u001b(B\\u001b[m676 \\u001b[36m 1\\u001b[39m\\u001b(B\\u001b[m560 S  0.0  0.0  0:00.00 sh /mnt/c/Users/alv_t/.vscode/extensions/ms-vscode-remote\\u001b[21;4H39 mrmarble   20   0 \\u001b[36m 2\\u001b[39m\\u001b(B\\u001b[m612   600   532 S  0.0  0.0  0:00.00 sh /home/mrmarble/.vscode-server/bin/b5205cc8eb4fbaa72683\\u001b[22;4H44 mrmarble   20   0 \\u001b[36m 919M 91\\u001b[39m\\u001b(B\\u001b[m708 \\u001b[36m32\\u001b[39m\\u001b(B\\u001b[m760 S  0.0  1.1  0:00.00 \\u001b[32m/home/mrmarble/.vscode-server/bin/b5205cc8eb4fbaa72683553\\u001b[23;4H\\u001b[39m\\u001b(B\\u001b[m45 mrmarble   20   0 \\u001b[36m 919M 91\\u001b[39m\\u001b(B\\u001b[m708 \\u001b[36m32\\u001b[39m\\u001b(B\\u001b[m760 S  0.0  1.1  0:03.82 \\u001b[32m/home/mrmarble/.vscode-server/bin/b5205cc8eb4fbaa72683553\\u001b[24;4H\\u001b[39m\\u001b(B\\u001b[m46 mrmarble   20   0 \\u001b[36m 919M 91\\u001b[39m\\u001b(B\\u001b[m708 \\u001b[36m32\\u001b[39m\\u001b(B\\u001b[m760 S  0.0  1.1  0:03.75 \\u001b[32m/home/mrmarble/.vscode-server/bin/b5205cc8eb4fbaa72683553\\u001b[25;4H\\u001b[39m\\u001b(B\\u001b[m47 mrmarble   20   0 \\u001b[36m 919M 91\\u001b[39m\\u001b(B\\u001b[m708 \\u001b[36m32\\u001b[39m\\u001b(B\\u001b[m760 S  0.0  1.1  0:03.76 \\u001b[32m/home/mrmarble/.vscode-server/bin/b5205cc8eb4fbaa72683553\\u001b[26;4H\\u001b[39m\\u001b(B\\u001b[m48 mrmarble   20   0 \\u001b[36m 919M 91\\u001b[39m\\u001b(B\\u001b[m708 \\u001b[36m32\\u001b[39m\\u001b(B\\u001b[m760 S  0.0  1.1  0:03.69 \\u001b[32m/home/mrmarble/.vscode-server/bin/b5205cc8eb4fbaa72683553\\u001b[27;4H\\u001b[39m\\u001b(B\\u001b[m49 mrmarble   20   0 \\u001b[36m 919M 91\\u001b[39m\\u001b(B\\u001b[m708 \\u001b[36m32\\u001b[39m\\u001b(B\\u001b[m760 S  0.0  1.1  0:00.00 \\u001b[32m/home/mrmarble/.vscode-server/bin/b5205cc8eb4fbaa72683553\\u001b[28;4H\\u001b[39m\\u001b(B\\u001b[m50 mrmarble   20   0 \\u001b[36m 919M 91\\u001b[39m\\u001b(B\\u001b[m708 \\u001b[36m32\\u001b[39m\\u001b(B\\u001b[m760 S  0.0  1.1  0:02.70 \\u001b[32m/home/mrmarble/.vscode-server/bin/b5205cc8eb4fbaa72683553\\u001b[29;4H\\u001b[39m\\u001b(B\\u001b[m51 mrmarble   20   0 \\u001b[36m 919M 91\\u001b[39m\\u001b(B\\u001b[m708 \\u001b[36m32\\u001b[39m\\u001b(B\\u001b[m760 S  0.0  1.1  0:02.70 \\u001b[32m/home/mrmarble/.vscode-server/bin/b5205cc8eb4fbaa72683553\\u001b[30;1H\\u001b[39m\\u001b(B\\u001b[mF1\\u001b[30m\\u001b[46mHelp  \\u001b[39;49m\\u001b(B\\u001b[mF2\\u001b[30m\\u001b[46mSetup \\u001b[39;49m\\u001b(B\\u001b[mF3\\u001b[30m\\u001b[46mSearch\\u001b[39;49m\\u001b(B\\u001b[mF4\\u001b[30m\\u001b[46mFilter\\u001b[39;49m\\u001b(B\\u001b[mF5\\u001b[30m\\u001b[46mTree  \\u001b[39;49m\\u001b(B\\u001b[mF6\\u001b[30m\\u001b[46mSortBy\\u001b[39;49m\\u001b(B\\u001b[mF7\\u001b[30m\\u001b[46mNice -\\u001b[39;49m\\u001b(B\\u001b[mF8\\u001b[30m\\u001b[46mNice +\\u001b[39;49m\\u001b(B\\u001b[mF9\\u001b[30m\\u001b[46mKill  \\u001b[39;49m\\u001b(B\\u001b[mF10\\u001b[30m\\u001b[46mQuit\\u001b[K\\u001b[H\\u001b[39;49m\\u001b(B\\u001b[m\"]\n[4.099,\"o\",\"\\u001b[14;29r\\u001b[14;1H\\u001b[4T\\u001b[1;30r\\u001b[3;94H\\u001b(B\\u001b[0;1m\\u001b[90m\\u001b[17X\\u001b[3;111H0.0%\\u001b[10;76H\\u001b[36m5\\u001b[13;2H\\u001b(B\\u001b[0m\\u001b[30m\\u001b[46m3192\\u001b[13;25H1484M  9476  2880 S  2.0  0.1\\u001b[61G15 ./../swatch/swatch examples/session.svg\\u001b[14;2H\\u001b[39;49m\\u001b(B\\u001b[m3198 mrmarble   20   0 \\u001b[36m1484M  9\\u001b[39m\\u001b(B\\u001b[m476 \\u001b[36m 2\\u001b[39m\\u001b(B\\u001b[m880 S  0.7  0.1  0:00.02 \\u001b[32m./../swatch/swatch examples/session.svg\\u001b[15;2H\\u001b[39m\\u001b(B\\u001b[m3374 mrmarble   20   0 \\u001b[36m1484M  9\\u001b[39m\\u001b(B\\u001b[m476 \\u001b[36m 2\\u001b[39m\\u001b(B\\u001b[m880 S  0.7  0.1  0:00.01 \\u001b[32m./../swatch/swatch examples/session.svg\\u001b[16;2H\\u001b[39m\\u001b(B\\u001b[m3557 \\u001b(B\\u001b[0;1m\\u001b[90mroot      \\u001b[39m\\u001b(B\\u001b[m 20   0 \\u001b[36m 2\\u001b[39m\\u001b(B\\u001b[m512   560     0 S  0.7  0.0  0:00.01 /init\\r\\u001b[17d 4385 mrmarble   20   0 \\u001b[36m 8\\u001b[39m\\u001b(B\\u001b[m284 \\u001b[36m 3\\u001b[39m\\u001b(B\\u001b[m688 \\u001b[36m 3\\u001b[39m\\u001b(B\\u001b[m028 \\u001b[32mR \\u001b[39m\\u001b(B\\u001b[m 0.0  0.0  0:00.01 htop\\u001b[H\"]\n[5.603,\"o\",\"\\u001b[3;94H\\u001b[31m|\\u001b[113G\\u001b(B\\u001b[0;1m\\u001b[90m7\\u001b[10;76H\\u001b[36m6\\u001b[13;46H\\u001b(B\\u001b[0m\\u001b[30m\\u001b[46m0\\u001b[14;48H\\u001b[39;49m\\u001b(B\\u001b[m0\\u001b[15d\\u00080\\u001b[16d\\u00080\\u001b[H\"]\n[6.153,\"o\",\"\\u001b[?1000l\\u001b[30;1H\\u001b[?12l\\u001b[?25h\\u001b[?1049l\\u001b[23;0;0t\\r\\u001b[?1l\\u001b\\u003e\"]\n[6.154,\"o\",\"\\u001b[1m\\u001b[7m%\\u001b[27m\\u001b[1m\\u001b[0m                                                                                                                       \\r \\r\\u001b]2;mrmarble@founder:~/repos/termsvg\\u0007\\u001b]1;~/repos/termsvg\\u0007\"]\n[6.175,\"o\",\"\\r\\u001b[0m\\u001b[27m\\u001b[24m\\u001b[J\\u001b[01;31m➜  \\u001b[36mtermsvg\\u001b[00m \\u001b[01;34mgit:(\\u001b[31mmaster\\u001b[34m) \\u001b[33m✗\\u001b[00m \\u001b[K\\u001b[?1h\\u001b=\\u001b[?2004h\"]\n[6.805,\"o\",\"\\u001b[4me\\u001b[24m\\u0008\\u001b[4me\\u001b[24m\\u001b[90mxit\\u001b[39m\\u0008\\u0008\\u0008\"]\n[6.989,\"o\",\"\\u0008\\u001b[24m\\u001b[32me\\u001b[32mx\\u001b[39m\"]\n[7.12,\"o\",\"\\u0008\\u0008\\u001b[1m\\u001b[31me\\u001b[1m\\u001b[31mx\\u001b[1m\\u001b[31mi\\u001b[0m\\u001b[39m\"]\n[7.214,\"o\",\"\\u0008\\u0008\\u0008\\u001b[0m\\u001b[32me\\u001b[0m\\u001b[32mx\\u001b[0m\\u001b[32mi\\u001b[32mt\\u001b[39m\"]\n[7.438,\"o\",\"\\u001b[?1l\\u001b\\u003e\"]\n[7.439,\"o\",\"\\u001b[?2004l\\r\\r\\n\\u001b]2;exit\\u0007\\u001b]1;exit\\u0007\"]"
  },
  {
    "path": "examples/rgb.cast",
    "content": "{\"version\":2,\"width\":94,\"height\":33,\"timestamp\":1752315249,\"duration\":3.54579,\"env\":{\"SHELL\":\"/bin/bash\",\"TERM\":\"xterm-256color\"}}\n[0.246977,\"o\",\"\\u001b[?2004h\"]\n[0.247113,\"o\",\"\\u001b]0;alv_t@founder: ~/repos/go/termsvg\\u0007\\u001b[01;32malv_t@founder\\u001b[00m:\\u001b[01;34m~/repos/go/termsvg\\u001b[00m$ \"]\n[0.50785,\"o\",\".\"]\n[0.691627,\"o\",\"/\"]\n[0.826325,\"o\",\"s\"]\n[1.20804,\"o\",\"c\"]\n[1.516782,\"o\",\"ripts/\"]\n[1.784562,\"o\",\"r\"]\n[2.023614,\"o\",\"gb_chart.sh \"]\n[2.370966,\"o\",\"\\r\\n\\u001b[?2004l\\r\"]\n[2.375934,\"o\",\"\\u001b[38;2;0;0;0m██\\u001b[0m\\u001b[38;2;0;0;70m██\\u001b[0m\\u001b[38;2;0;0;140m██\\u001b[0m\\u001b[38;2;0;0;210m██\\u001b[0m\"]\n[2.376964,\"o\",\"\\u001b[38;2;0;70;0m██\\u001b[0m\\u001b[38;2;0;70;70m██\\u001b[0m\\u001b[38;2;0;70;140m██\\u001b[0m\"]\n[2.377,\"o\",\"\\u001b[38;2;0;70;210m██\\u001b[0m\"]\n[2.378292,\"o\",\"\\u001b[38;2;0;140;0m██\\u001b[0m\\u001b[38;2;0;140;70m██\\u001b[0m\"]\n[2.378306,\"o\",\"\\u001b[38;2;0;140;140m██\\u001b[0m\"]\n[2.378363,\"o\",\"\\u001b[38;2;0;140;210m██\\u001b[0m\"]\n[2.3794,\"o\",\"\\u001b[38;2;0;210;0m██\\u001b[0m\\u001b[38;2;0;210;70m██\\u001b[0m\"]\n[2.379435,\"o\",\"\\u001b[38;2;0;210;140m██\\u001b[0m\"]\n[2.37948,\"o\",\"\\u001b[38;2;0;210;210m██\\u001b[0m\"]\n[2.381646,\"o\",\"\\u001b[38;2;70;0;0m██\\u001b[0m\\u001b[38;2;70;0;70m██\\u001b[0m\"]\n[2.381719,\"o\",\"\\u001b[38;2;70;0;140m██\\u001b[0m\\u001b[38;2;70;0;210m██\\u001b[0m\"]\n[2.382816,\"o\",\"\\u001b[38;2;70;70;0m██\\u001b[0m\\u001b[38;2;70;70;70m██\\u001b[0m\"]\n[2.382841,\"o\",\"\\u001b[38;2;70;70;140m██\\u001b[0m\"]\n[2.382899,\"o\",\"\\u001b[38;2;70;70;210m██\\u001b[0m\"]\n[2.383948,\"o\",\"\\u001b[38;2;70;140;0m██\\u001b[0m\\u001b[38;2;70;140;70m██\\u001b[0m\\u001b[38;2;70;140;140m██\\u001b[0m\"]\n[2.384027,\"o\",\"\\u001b[38;2;70;140;210m██\\u001b[0m\"]\n[2.385153,\"o\",\"\\u001b[38;2;70;210;0m██\\u001b[0m\\u001b[38;2;70;210;70m██\\u001b[0m\"]\n[2.385195,\"o\",\"\\u001b[38;2;70;210;140m██\\u001b[0m\"]\n[2.385228,\"o\",\"\\u001b[38;2;70;210;210m██\\u001b[0m\"]\n[2.387406,\"o\",\"\\u001b[38;2;140;0;0m██\\u001b[0m\\u001b[38;2;140;0;70m██\\u001b[0m\"]\n[2.387414,\"o\",\"\\u001b[38;2;140;0;140m██\\u001b[0m\"]\n[2.38749,\"o\",\"\\u001b[38;2;140;0;210m██\\u001b[0m\"]\n[2.388685,\"o\",\"\\u001b[38;2;140;70;0m██\\u001b[0m\\u001b[38;2;140;70;70m██\\u001b[0m\"]\n[2.388703,\"o\",\"\\u001b[38;2;140;70;140m██\\u001b[0m\"]\n[2.38878,\"o\",\"\\u001b[38;2;140;70;210m██\\u001b[0m\"]\n[2.389786,\"o\",\"\\u001b[38;2;140;140;0m██\\u001b[0m\\u001b[38;2;140;140;70m██\\u001b[0m\"]\n[2.389811,\"o\",\"\\u001b[38;2;140;140;140m██\\u001b[0m\"]\n[2.389863,\"o\",\"\\u001b[38;2;140;140;210m██\\u001b[0m\"]\n[2.391025,\"o\",\"\\u001b[38;2;140;210;0m██\\u001b[0m\\u001b[38;2;140;210;70m██\\u001b[0m\"]\n[2.391101,\"o\",\"\\u001b[38;2;140;210;140m██\\u001b[0m\\u001b[38;2;140;210;210m██\\u001b[0m\"]\n[2.393288,\"o\",\"\\u001b[38;2;210;0;0m██\\u001b[0m\\u001b[38;2;210;0;70m██\\u001b[0m\"]\n[2.393478,\"o\",\"\\u001b[38;2;210;0;140m██\\u001b[0m\\u001b[38;2;210;0;210m██\\u001b[0m\"]\n[2.394442,\"o\",\"\\u001b[38;2;210;70;0m██\\u001b[0m\\u001b[38;2;210;70;70m██\\u001b[0m\"]\n[2.394522,\"o\",\"\\u001b[38;2;210;70;140m██\\u001b[0m\\u001b[38;2;210;70;210m██\\u001b[0m\"]\n[2.395635,\"o\",\"\\u001b[38;2;210;140;0m██\\u001b[0m\\u001b[38;2;210;140;70m██\\u001b[0m\"]\n[2.395673,\"o\",\"\\u001b[38;2;210;140;140m██\\u001b[0m\\u001b[38;2;210;140;210m██\\u001b[0m\"]\n[2.396962,\"o\",\"\\u001b[38;2;210;210;0m██\\u001b[0m\\u001b[38;2;210;210;70m██\\u001b[0m\\u001b[38;2;210;210;140m██\\u001b[0m\"]\n[2.397039,\"o\",\"\\u001b[38;2;210;210;210m██\\u001b[0m\\r\\n\"]\n[2.415483,\"o\",\"\\u001b[?2004h\\u001b]0;alv_t@founder: ~/repos/go/termsvg\\u0007\\u001b[01;32malv_t@founder\\u001b[00m:\\u001b[01;34m~/repos/go/termsvg\\u001b[00m$ \"]\n[2.718767,\"o\",\"e\"]\n[2.911637,\"o\",\"x\"]\n[3.095297,\"o\",\"i\"]\n[3.224075,\"o\",\"t\"]\n[3.545682,\"o\",\"\\r\\n\\u001b[?2004l\\r\"]\n[3.54579,\"o\",\"exit\\r\\n\"]"
  },
  {
    "path": "examples/session.cast",
    "content": "{\"version\":2,\"width\":120,\"height\":30,\"timestamp\":1646492752,\"duration\":34.765,\"env\":{\"SHELL\":\"/usr/bin/zsh\",\"TERM\":\"xterm-256color\"}}\n[0.444,\"o\",\"\\u001b[1m\\u001b[7m%\\u001b[27m\\u001b[1m\\u001b[0m                                                                                                                       \\r \\r\\u001b]2;mrmarble@founder:~/repos/termsvg\\u0007\\u001b]1;~/repos/termsvg\\u0007\"]\n[0.467,\"o\",\"\\r\\u001b[0m\\u001b[27m\\u001b[24m\\u001b[J\\u001b[01;32m➜  \\u001b[36mtermsvg\\u001b[00m \\u001b[01;34mgit:(\\u001b[31mmaster\\u001b[34m) \\u001b[33m✗\\u001b[00m \\u001b[K\\u001b[?1h\\u001b=\"]\n[0.468,\"o\",\"\\u001b[?2004h\"]\n[4.534,\"o\",\"\\u001b[32ml\\u001b[39m\\u0008\\u001b[32ml\\u001b[39m\\u001b[90ms\\u001b[39m\\u0008\"]\n[4.615,\"o\",\"\\u0008\\u001b[32ml\\u001b[32ml\\u001b[39m\"]\n[5.56,\"o\",\" \"]\n[5.561,\"o\",\"\\u001b[90mscripts\\u001b[39m\\u0008\\u0008\\u0008\\u0008\\u0008\\u0008\\u0008\"]\n[6.057,\"o\",\"\\u001b[39m|\\u001b[39m \\u001b[39m \\u001b[39m \\u001b[39m \\u001b[39m \\u001b[39m \\u0008\\u0008\\u0008\\u0008\\u0008\\u0008\"]\n[6.671,\"o\",\" \"]\n[7.227,\"o\",\"\\u001b[32ml\\u001b[39m\"]\n[7.355,\"o\",\"\\u0008\\u001b[1m\\u001b[31ml\\u001b[1m\\u001b[31mo\\u001b[0m\\u001b[39m\"]\n[7.595,\"o\",\"\\u0008\\u001b[1m\\u001b[31mo\\u001b[1m\\u001b[31ml\\u001b[0m\\u001b[39m\"]\n[7.64,\"o\",\"\\u0008\\u001b[1m\\u001b[31ml\\u001b[1m\\u001b[31mc\\u001b[0m\\u001b[39m\"]\n[7.79,\"o\",\"\\u0008\\u001b[1m\\u001b[31mc\\u001b[1m\\u001b[31ma\\u001b[0m\\u001b[39m\"]\n[7.975,\"o\",\"\\u0008\\u0008\\u0008\\u0008\\u0008\\u001b[0m\\u001b[32ml\\u001b[0m\\u001b[32mo\\u001b[0m\\u001b[32ml\\u001b[0m\\u001b[32mc\\u001b[0m\\u001b[32ma\\u001b[32mt\\u001b[39m\"]\n[8.469,\"o\",\"\\u001b[?1l\\u001b\\u003e\"]\n[8.471,\"o\",\"\\u001b[?2004l\\r\\r\\n\\u001b]2;ls --color=tty -lh | lolcat\\u0007\\u001b]1;ll\\u0007\"]\n[8.518,\"o\",\"\\u001b[38;5;48mt\\u001b[0m\\u001b[38;5;84mo\\u001b[0m\\u001b[38;5;83mt\\u001b[0m\\u001b[38;5;83ma\\u001b[0m\\u001b[38;5;83ml\\u001b[0m\\u001b[38;5;83m \\u001b[0m\\u001b[38;5;83m2\\u001b[0m\\u001b[38;5;83m2\\u001b[0m\\u001b[38;5;83mM\\u001b[0m\\r\\n\\u001b[38;5;83m-\\u001b[0m\\u001b[38;5;83mr\\u001b[0m\\u001b[38;5;83mw\\u001b[0m\\u001b[38;5;83m-\\u001b[0m\\u001b[38;5;83mr\\u001b[0m\\u001b[38;5;83m-\\u001b[0m\\u001b[38;5;83m-\\u001b[0m\\u001b[38;5;83mr\\u001b[0m\\u001b[38;5;83m-\\u001b[0m\\u001b[38;5;83m-\\u001b[0m\\u001b[38;5;119m \\u001b[0m\\u001b[38;5;118m1\\u001b[0m\\u001b[38;5;118m \\u001b[0m\\u001b[38;5;118mm\\u001b[0m\\u001b[38;5;118mr\\u001b[0m\\u001b[38;5;118mm\\u001b[0m\\u001b[38;5;118ma\\u001b[0m\\u001b[38;5;118mr\\u001b[0m\\u001b[38;5;118mb\\u001b[0m\\u001b[38;5;118ml\\u001b[0m\\u001b[38;5;154me\\u001b[0m\\u001b[38;5;154m \\u001b[0m\\u001b[38;5;154mm\\u001b[0m\\u001b[38;5;154mr\\u001b[0m\\u001b[38;5;154mm\\u001b[0m\"]\n[8.519,\"o\",\"\\u001b[38;5;154ma\\u001b[0m\\u001b[38;5;154mr\\u001b[0m\\u001b[38;5;154mb\\u001b[0m\\u001b[38;5;154ml\\u001b[0m\\u001b[38;5;148me\\u001b[0m\\u001b[38;5;184m \\u001b[0m\\u001b[38;5;184m1\\u001b[0m\\u001b[38;5;184m.\\u001b[0m\\u001b[38;5;184m1\\u001b[0m\\u001b[38;5;184mK\\u001b[0m\\u001b[38;5;184m \\u001b[0m\\u001b[38;5;184mF\\u001b[0m\\u001b[38;5;184me\\u001b[0m\\u001b[38;5;184mb\\u001b[0m\\u001b[38;5;184m \\u001b[0m\\u001b[38;5;184m2\\u001b[0m\\u001b[38;5;178m5\\u001b[0m\\u001b[38;5;214m \\u001b[0m\\u001b[38;5;214m1\\u001b[0m\\u001b[38;5;214m3\\u001b[0m\\u001b[38;5;214m:\\u001b[0m\\u001b[38;5;214m4\\u001b[0m\\u001b[38;5;214m2\\u001b[0m\\u001b[38;5;214m \\u001b[0m\\u001b[38;5;214mL\\u001b[0m\\u001b[38;5;214mI\\u001b[0m\\u001b[38;5;208mC\\u001b[0m\\u001b[38;5;208mE\\u001b[0m\\u001b[38;5;208mN\\u001b[0m\\u001b[38;5;208mS\\u001b[0m\\u001b[38;5;208mE\\u001b[0m\\r\\n\\u001b[38;5;83m-\\u001b[0m\\u001b[38;5;83mr\\u001b[0m\\u001b[38;5;83mw\\u001b[0m\\u001b[38;5;83m-\\u001b[0m\\u001b[38;5;83mr\\u001b[0m\\u001b[38;5;83m-\\u001b[0m\\u001b[38;5;83m-\\u001b[0m\\u001b[38;5;119mr\\u001b[0m\\u001b[38;5;118m-\\u001b[0m\\u001b[38;5;118m-\\u001b[0m\\u001b[38;5;118m \\u001b[0m\\u001b[38;5;118m1\\u001b[0m\\u001b[38;5;118m \\u001b[0m\\u001b[38;5;118mm\\u001b[0m\\u001b[38;5;118mr\\u001b[0m\\u001b[38;5;118mm\\u001b[0m\\u001b[38;5;118ma\\u001b[0m\\u001b[38;5;154mr\\u001b[0m\\u001b[38;5;154mb\\u001b[0m\\u001b[38;5;154ml\\u001b[0m\"]\n[8.52,\"o\",\"\\u001b[38;5;154me\\u001b[0m\\u001b[38;5;154m \\u001b[0m\\u001b[38;5;154mm\\u001b[0m\\u001b[38;5;154mr\\u001b[0m\\u001b[38;5;154mm\\u001b[0m\\u001b[38;5;154ma\\u001b[0m\\u001b[38;5;148mr\\u001b[0m\\u001b[38;5;184mb\\u001b[0m\\u001b[38;5;184ml\\u001b[0m\\u001b[38;5;184me\\u001b[0m\\u001b[38;5;184m \\u001b[0m\\u001b[38;5;184m \\u001b[0m\\u001b[38;5;184m \\u001b[0m\\u001b[38;5;184m \\u001b[0m\\u001b[38;5;184m9\\u001b[0m\\u001b[38;5;184m \\u001b[0m\\u001b[38;5;184mF\\u001b[0m\\u001b[38;5;184me\\u001b[0m\\u001b[38;5;178mb\\u001b[0m\\u001b[38;5;214m \\u001b[0m\\u001b[38;5;214m2\\u001b[0m\\u001b[38;5;214m5\\u001b[0m\\u001b[38;5;214m \\u001b[0m\\u001b[38;5;214m1\\u001b[0m\\u001b[38;5;214m3\\u001b[0m\\u001b[38;5;214m:\\u001b[0m\\u001b[38;5;214m4\\u001b[0m\\u001b[38;5;214m2\\u001b[0m\\u001b[38;5;208m \\u001b[0m\\u001b[38;5;208mR\\u001b[0m\\u001b[38;5;208mE\\u001b[0m\\u001b[38;5;208mA\\u001b[0m\\u001b[38;5;208mD\\u001b[0m\\u001b[38;5;208mM\\u001b[0m\\u001b[38;5;208mE\\u001b[0m\\u001b[38;5;208m.\\u001b[0m\\u001b[38;5;208mm\\u001b[0m\\u001b[38;5;208md\\u001b[0m\\r\\n\\u001b[38;5;83m-\\u001b[0m\\u001b[38;5;83mr\\u001b[0m\\u001b[38;5;83mw\\u001b[0m\\u001b[38;5;83m-\\u001b[0m\\u001b[38;5;119mr\\u001b[0m\\u001b[38;5;118m-\\u001b[0m\"]\n[8.521,\"o\",\"\\u001b[38;5;118m-\\u001b[0m\\u001b[38;5;118mr\\u001b[0m\\u001b[38;5;118m-\\u001b[0m\\u001b[38;5;118m-\\u001b[0m\\u001b[38;5;118m \\u001b[0m\\u001b[38;5;118m1\\u001b[0m\\u001b[38;5;118m \\u001b[0m\\u001b[38;5;118mm\\u001b[0m\\u001b[38;5;154mr\\u001b[0m\\u001b[38;5;154mm\\u001b[0m\\u001b[38;5;154ma\\u001b[0m\\u001b[38;5;154mr\\u001b[0m\\u001b[38;5;154mb\\u001b[0m\\u001b[38;5;154ml\\u001b[0m\\u001b[38;5;154me\\u001b[0m\\u001b[38;5;154m \\u001b[0m\\u001b[38;5;154mm\\u001b[0m\\u001b[38;5;148mr\\u001b[0m\\u001b[38;5;184mm\\u001b[0m\\u001b[38;5;184ma\\u001b[0m\\u001b[38;5;184mr\\u001b[0m\\u001b[38;5;184mb\\u001b[0m\\u001b[38;5;184ml\\u001b[0m\\u001b[38;5;184me\\u001b[0m\\u001b[38;5;184m \\u001b[0m\\u001b[38;5;184m2\\u001b[0m\\u001b[38;5;184m.\\u001b[0m\\u001b[38;5;184m0\\u001b[0m\\u001b[38;5;184mK\\u001b[0m\\u001b[38;5;178m \\u001b[0m\\u001b[38;5;214mM\\u001b[0m\\u001b[38;5;214ma\\u001b[0m\\u001b[38;5;214mr\\u001b[0m\\u001b[38;5;214m \\u001b[0m\\u001b[38;5;214m \\u001b[0m\\u001b[38;5;214m5\\u001b[0m\\u001b[38;5;214m \\u001b[0m\\u001b[38;5;214m1\\u001b[0m\\u001b[38;5;214m5\\u001b[0m\\u001b[38;5;208m:\\u001b[0m\\u001b[38;5;208m5\\u001b[0m\\u001b[38;5;208m5\\u001b[0m\"]\n[8.522,\"o\",\"\\u001b[38;5;208m \\u001b[0m\\u001b[38;5;208mT\\u001b[0m\\u001b[38;5;208ma\\u001b[0m\\u001b[38;5;208ms\\u001b[0m\\u001b[38;5;208mk\\u001b[0m\\u001b[38;5;208mf\\u001b[0m\\u001b[38;5;208mi\\u001b[0m\\u001b[38;5;209ml\\u001b[0m\\u001b[38;5;203me\\u001b[0m\\u001b[38;5;203m.\\u001b[0m\\u001b[38;5;203my\\u001b[0m\\u001b[38;5;203mm\\u001b[0m\\u001b[38;5;203ml\\u001b[0m\\r\\n\\u001b[38;5;83md\\u001b[0m\\u001b[38;5;119mr\\u001b[0m\\u001b[38;5;118mw\\u001b[0m\\u001b[38;5;118mx\\u001b[0m\\u001b[38;5;118mr\\u001b[0m\\u001b[38;5;118m-\\u001b[0m\\u001b[38;5;118mx\\u001b[0m\\u001b[38;5;118mr\\u001b[0m\\u001b[38;5;118m-\\u001b[0m\\u001b[38;5;118mx\\u001b[0m\\u001b[38;5;118m \\u001b[0m\\u001b[38;5;154m3\\u001b[0m\\u001b[38;5;154m \\u001b[0m\\u001b[38;5;154mm\\u001b[0m\\u001b[38;5;154mr\\u001b[0m\\u001b[38;5;154mm\\u001b[0m\\u001b[38;5;154ma\\u001b[0m\\u001b[38;5;154mr\\u001b[0m\\u001b[38;5;154mb\\u001b[0m\"]\n[8.523,\"o\",\"\\u001b[38;5;154ml\\u001b[0m\\u001b[38;5;148me\\u001b[0m\\u001b[38;5;184m \\u001b[0m\\u001b[38;5;184mm\\u001b[0m\\u001b[38;5;184mr\\u001b[0m\\u001b[38;5;184mm\\u001b[0m\\u001b[38;5;184ma\\u001b[0m\\u001b[38;5;184mr\\u001b[0m\\u001b[38;5;184mb\\u001b[0m\\u001b[38;5;184ml\\u001b[0m\\u001b[38;5;184me\\u001b[0m\\u001b[38;5;184m \\u001b[0m\\u001b[38;5;184m4\\u001b[0m\\u001b[38;5;178m.\\u001b[0m\\u001b[38;5;214m0\\u001b[0m\\u001b[38;5;214mK\\u001b[0m\\u001b[38;5;214m \\u001b[0m\\u001b[38;5;214mF\\u001b[0m\\u001b[38;5;214me\\u001b[0m\\u001b[38;5;214mb\\u001b[0m\\u001b[38;5;214m \\u001b[0m\\u001b[38;5;214m1\\u001b[0m\\u001b[38;5;214m6\\u001b[0m\\u001b[38;5;208m \\u001b[0m\\u001b[38;5;208m1\\u001b[0m\\u001b[38;5;208m0\\u001b[0m\\u001b[38;5;208m:\\u001b[0m\\u001b[38;5;208m5\\u001b[0m\\u001b[38;5;208m2\\u001b[0m\\u001b[38;5;208m \\u001b[0m\\u001b[38;5;208mc\\u001b[0m\\u001b[38;5;208mm\\u001b[0m\\u001b[38;5;208md\\u001b[0m\\r\\n\\u001b[38;5;118m-\\u001b[0m\\u001b[38;5;118mr\\u001b[0m\\u001b[38;5;118mw\\u001b[0m\\u001b[38;5;118m-\\u001b[0m\\u001b[38;5;118mr\\u001b[0m\\u001b[38;5;118m-\\u001b[0m\\u001b[38;5;118m-\\u001b[0m\\u001b[38;5;118mr\\u001b[0m\\u001b[38;5;154m-\\u001b[0m\\u001b[38;5;154m-\\u001b[0m\\u001b[38;5;154m \\u001b[0m\\u001b[38;5;154m1\\u001b[0m\"]\n[8.524,\"o\",\"\\u001b[38;5;154m \\u001b[0m\\u001b[38;5;154mm\\u001b[0m\\u001b[38;5;154mr\\u001b[0m\\u001b[38;5;154mm\\u001b[0m\\u001b[38;5;154ma\\u001b[0m\\u001b[38;5;148mr\\u001b[0m\\u001b[38;5;184mb\\u001b[0m\\u001b[38;5;184ml\\u001b[0m\\u001b[38;5;184me\\u001b[0m\\u001b[38;5;184m \\u001b[0m\\u001b[38;5;184mm\\u001b[0m\\u001b[38;5;184mr\\u001b[0m\\u001b[38;5;184mm\\u001b[0m\\u001b[38;5;184ma\\u001b[0m\\u001b[38;5;184mr\\u001b[0m\\u001b[38;5;184mb\\u001b[0m\\u001b[38;5;184ml\\u001b[0m\\u001b[38;5;178me\\u001b[0m\\u001b[38;5;214m \\u001b[0m\\u001b[38;5;214m \\u001b[0m\\u001b[38;5;214m1\\u001b[0m\\u001b[38;5;214m8\\u001b[0m\\u001b[38;5;214mK\\u001b[0m\\u001b[38;5;214m \\u001b[0m\\u001b[38;5;214mM\\u001b[0m\\u001b[38;5;214ma\\u001b[0m\\u001b[38;5;214mr\\u001b[0m\\u001b[38;5;208m \\u001b[0m\\u001b[38;5;208m \\u001b[0m\\u001b[38;5;208m5\\u001b[0m\\u001b[38;5;208m \\u001b[0m\\u001b[38;5;208m1\\u001b[0m\\u001b[38;5;208m5\\u001b[0m\\u001b[38;5;208m:\\u001b[0m\\u001b[38;5;208m5\\u001b[0m\\u001b[38;5;208m2\\u001b[0m\\u001b[38;5;208m \\u001b[0m\\u001b[38;5;209mc\\u001b[0m\\u001b[38;5;203mo\\u001b[0m\\u001b[38;5;203mv\\u001b[0m\\u001b[38;5;203me\\u001b[0m\\u001b[38;5;203mr\\u001b[0m\\u001b[38;5;203ma\\u001b[0m\\u001b[38;5;203mg\\u001b[0m\\u001b[38;5;203me\\u001b[0m\\u001b[38;5;203m.\\u001b[0m\\u001b[38;5;203mt\\u001b[0m\\u001b[38;5;203mx\\u001b[0m\\u001b[38;5;203mt\\u001b[0m\\r\\n\"]\n[8.525,\"o\",\"\\u001b[38;5;118md\\u001b[0m\\u001b[38;5;118mr\\u001b[0m\\u001b[38;5;118mw\\u001b[0m\\u001b[38;5;118mx\\u001b[0m\\u001b[38;5;118mr\\u001b[0m\\u001b[38;5;154m-\\u001b[0m\\u001b[38;5;154mx\\u001b[0m\\u001b[38;5;154mr\\u001b[0m\\u001b[38;5;154m-\\u001b[0m\\u001b[38;5;154mx\\u001b[0m\\u001b[38;5;154m \\u001b[0m\\u001b[38;5;154m7\\u001b[0m\\u001b[38;5;154m \\u001b[0m\\u001b[38;5;154mm\\u001b[0m\\u001b[38;5;148mr\\u001b[0m\\u001b[38;5;184mm\\u001b[0m\\u001b[38;5;184ma\\u001b[0m\\u001b[38;5;184mr\\u001b[0m\\u001b[38;5;184mb\\u001b[0m\\u001b[38;5;184ml\\u001b[0m\\u001b[38;5;184me\\u001b[0m\\u001b[38;5;184m \\u001b[0m\\u001b[38;5;184mm\\u001b[0m\\u001b[38;5;184mr\\u001b[0m\\u001b[38;5;184mm\\u001b[0m\\u001b[38;5;184ma\\u001b[0m\\u001b[38;5;178mr\\u001b[0m\\u001b[38;5;214mb\\u001b[0m\\u001b[38;5;214ml\\u001b[0m\\u001b[38;5;214me\\u001b[0m\\u001b[38;5;214m \\u001b[0m\\u001b[38;5;214m4\\u001b[0m\\u001b[38;5;214m.\\u001b[0m\\u001b[38;5;214m0\\u001b[0m\\u001b[38;5;214mK\\u001b[0m\\u001b[38;5;214m \\u001b[0m\\u001b[38;5;208mF\\u001b[0m\\u001b[38;5;208me\\u001b[0m\\u001b[38;5;208mb\\u001b[0m\"]\n[8.526,\"o\",\"\\u001b[38;5;208m \\u001b[0m\\u001b[38;5;208m2\\u001b[0m\\u001b[38;5;208m5\\u001b[0m\\u001b[38;5;208m \\u001b[0m\\u001b[38;5;208m1\\u001b[0m\\u001b[38;5;208m3\\u001b[0m\\u001b[38;5;208m:\\u001b[0m\\u001b[38;5;209m4\\u001b[0m\\u001b[38;5;203m3\\u001b[0m\\u001b[38;5;203m \\u001b[0m\\u001b[38;5;203md\\u001b[0m\\u001b[38;5;203mi\\u001b[0m\\u001b[38;5;203ms\\u001b[0m\\u001b[38;5;203mt\\u001b[0m\\r\\n\\u001b[38;5;118m-\\u001b[0m\\u001b[38;5;118mr\\u001b[0m\\u001b[38;5;154mw\\u001b[0m\\u001b[38;5;154m-\\u001b[0m\\u001b[38;5;154mr\\u001b[0m\\u001b[38;5;154m-\\u001b[0m\\u001b[38;5;154m-\\u001b[0m\\u001b[38;5;154mr\\u001b[0m\\u001b[38;5;154m-\\u001b[0m\\u001b[38;5;154m-\\u001b[0m\\u001b[38;5;154m \\u001b[0m\\u001b[38;5;148m1\\u001b[0m\\u001b[38;5;184m \\u001b[0m\\u001b[38;5;184mm\\u001b[0m\\u001b[38;5;184mr\\u001b[0m\\u001b[38;5;184mm\\u001b[0m\\u001b[38;5;184ma\\u001b[0m\\u001b[38;5;184mr\\u001b[0m\\u001b[38;5;184mb\\u001b[0m\\u001b[38;5;184ml\\u001b[0m\\u001b[38;5;184me\\u001b[0m\\u001b[38;5;184m \\u001b[0m\\u001b[38;5;184mm\\u001b[0m\\u001b[38;5;178mr\\u001b[0m\\u001b[38;5;214mm\\u001b[0m\"]\n[8.527,\"o\",\"\\u001b[38;5;214ma\\u001b[0m\\u001b[38;5;214mr\\u001b[0m\\u001b[38;5;214mb\\u001b[0m\\u001b[38;5;214ml\\u001b[0m\\u001b[38;5;214me\\u001b[0m\\u001b[38;5;214m \\u001b[0m\\u001b[38;5;214m \\u001b[0m\\u001b[38;5;214m6\\u001b[0m\\u001b[38;5;208m2\\u001b[0m\\u001b[38;5;208m6\\u001b[0m\\u001b[38;5;208m \\u001b[0m\\u001b[38;5;208mM\\u001b[0m\\u001b[38;5;208ma\\u001b[0m\\u001b[38;5;208mr\\u001b[0m\\u001b[38;5;208m \\u001b[0m\\u001b[38;5;208m \\u001b[0m\\u001b[38;5;208m4\\u001b[0m\\u001b[38;5;208m \\u001b[0m\\u001b[38;5;209m2\\u001b[0m\\u001b[38;5;203m2\\u001b[0m\\u001b[38;5;203m:\\u001b[0m\\u001b[38;5;203m3\\u001b[0m\\u001b[38;5;203m9\\u001b[0m\\u001b[38;5;203m \\u001b[0m\\u001b[38;5;203mg\\u001b[0m\\u001b[38;5;203mo\\u001b[0m\\u001b[38;5;203m.\\u001b[0m\\u001b[38;5;203mm\\u001b[0m\\u001b[38;5;203mo\\u001b[0m\\u001b[38;5;203md\\u001b[0m\\r\\n\"]\n[8.528,\"o\",\"\\u001b[38;5;154m-\\u001b[0m\\u001b[38;5;154mr\\u001b[0m\\u001b[38;5;154mw\\u001b[0m\\u001b[38;5;154m-\\u001b[0m\\u001b[38;5;154mr\\u001b[0m\\u001b[38;5;154m-\\u001b[0m\\u001b[38;5;154m-\\u001b[0m\\u001b[38;5;154mr\\u001b[0m\\u001b[38;5;148m-\\u001b[0m\\u001b[38;5;184m-\\u001b[0m\\u001b[38;5;184m \\u001b[0m\\u001b[38;5;184m1\\u001b[0m\\u001b[38;5;184m \\u001b[0m\\u001b[38;5;184mm\\u001b[0m\\u001b[38;5;184mr\\u001b[0m\\u001b[38;5;184mm\\u001b[0m\\u001b[38;5;184ma\\u001b[0m\\u001b[38;5;184mr\\u001b[0m\\u001b[38;5;184mb\\u001b[0m\\u001b[38;5;184ml\\u001b[0m\\u001b[38;5;178me\\u001b[0m\\u001b[38;5;214m \\u001b[0m\\u001b[38;5;214mm\\u001b[0m\\u001b[38;5;214mr\\u001b[0m\\u001b[38;5;214mm\\u001b[0m\\u001b[38;5;214ma\\u001b[0m\\u001b[38;5;214mr\\u001b[0m\\u001b[38;5;214mb\\u001b[0m\\u001b[38;5;214ml\\u001b[0m\\u001b[38;5;214me\\u001b[0m\\u001b[38;5;208m \\u001b[0m\\u001b[38;5;208m8\\u001b[0m\\u001b[38;5;208m.\\u001b[0m\\u001b[38;5;208m2\\u001b[0m\\u001b[38;5;208mK\\u001b[0m\\u001b[38;5;208m \\u001b[0m\\u001b[38;5;208mM\\u001b[0m\\u001b[38;5;208ma\\u001b[0m\\u001b[38;5;208mr\\u001b[0m\"]\n[8.529,\"o\",\"\\u001b[38;5;208m \\u001b[0m\\u001b[38;5;209m \\u001b[0m\\u001b[38;5;203m4\\u001b[0m\\u001b[38;5;203m \\u001b[0m\\u001b[38;5;203m2\\u001b[0m\\u001b[38;5;203m2\\u001b[0m\\u001b[38;5;203m:\\u001b[0m\\u001b[38;5;203m3\\u001b[0m\\u001b[38;5;203m9\\u001b[0m\\u001b[38;5;203m \\u001b[0m\\u001b[38;5;203mg\\u001b[0m\\u001b[38;5;203mo\\u001b[0m\\u001b[38;5;203m.\\u001b[0m\\u001b[38;5;198ms\\u001b[0m\\u001b[38;5;198mu\\u001b[0m\\u001b[38;5;198mm\\u001b[0m\\r\\n\\u001b[38;5;154m-\\u001b[0m\\u001b[38;5;154mr\\u001b[0m\\u001b[38;5;154mw\\u001b[0m\\u001b[38;5;154m-\\u001b[0m\\u001b[38;5;154mr\\u001b[0m\\u001b[38;5;148m-\\u001b[0m\\u001b[38;5;184m-\\u001b[0m\\u001b[38;5;184mr\\u001b[0m\\u001b[38;5;184m-\\u001b[0m\\u001b[38;5;184m-\\u001b[0m\\u001b[38;5;184m \\u001b[0m\\u001b[38;5;184m1\\u001b[0m\\u001b[38;5;184m \\u001b[0m\\u001b[38;5;184mm\\u001b[0m\\u001b[38;5;184mr\\u001b[0m\\u001b[38;5;184mm\\u001b[0m\\u001b[38;5;184ma\\u001b[0m\\u001b[38;5;178mr\\u001b[0m\\u001b[38;5;214mb\\u001b[0m\\u001b[38;5;214ml\\u001b[0m\\u001b[38;5;214me\\u001b[0m\\u001b[38;5;214m \\u001b[0m\\u001b[38;5;214mm\\u001b[0m\\u001b[38;5;214mr\\u001b[0m\\u001b[38;5;214mm\\u001b[0m\\u001b[38;5;214ma\\u001b[0m\\u001b[38;5;214mr\\u001b[0m\\u001b[38;5;208mb\\u001b[0m\\u001b[38;5;208ml\\u001b[0m\\u001b[38;5;208me\\u001b[0m\\u001b[38;5;208m \\u001b[0m\\u001b[38;5;208m \\u001b[0m\\u001b[38;5;208m8\\u001b[0m\\u001b[38;5;208m9\\u001b[0m\\u001b[38;5;208m0\\u001b[0m\"]\n[8.53,\"o\",\"\\u001b[38;5;208m \\u001b[0m\\u001b[38;5;208mF\\u001b[0m\\u001b[38;5;209me\\u001b[0m\\u001b[38;5;203mb\\u001b[0m\\u001b[38;5;203m \\u001b[0m\\u001b[38;5;203m2\\u001b[0m\\u001b[38;5;203m5\\u001b[0m\\u001b[38;5;203m \\u001b[0m\\u001b[38;5;203m1\\u001b[0m\\u001b[38;5;203m3\\u001b[0m\\u001b[38;5;203m:\\u001b[0m\\u001b[38;5;203m4\\u001b[0m\\u001b[38;5;203m1\\u001b[0m\\u001b[38;5;203m \\u001b[0m\\u001b[38;5;198mg\\u001b[0m\\u001b[38;5;198mo\\u001b[0m\\u001b[38;5;198mr\\u001b[0m\\u001b[38;5;198me\\u001b[0m\\u001b[38;5;198ml\\u001b[0m\\u001b[38;5;198me\\u001b[0m\\u001b[38;5;198ma\\u001b[0m\\u001b[38;5;198ms\\u001b[0m\\u001b[38;5;198me\\u001b[0m\\u001b[38;5;198mr\\u001b[0m\\u001b[38;5;199m.\\u001b[0m\\u001b[38;5;199my\\u001b[0m\\u001b[38;5;199mm\\u001b[0m\\u001b[38;5;199ml\\u001b[0m\\r\\n\\u001b[38;5;154m-\\u001b[0m\\u001b[38;5;154mr\\u001b[0m\\u001b[38;5;148mw\\u001b[0m\\u001b[38;5;184m-\\u001b[0m\\u001b[38;5;184mr\\u001b[0m\\u001b[38;5;184m-\\u001b[0m\\u001b[38;5;184m-\\u001b[0m\\u001b[38;5;184mr\\u001b[0m\\u001b[38;5;184m-\\u001b[0m\\u001b[38;5;184m-\\u001b[0m\\u001b[38;5;184m \\u001b[0m\\u001b[38;5;184m1\\u001b[0m\\u001b[38;5;184m \\u001b[0m\\u001b[38;5;184mm\\u001b[0m\\u001b[38;5;178mr\\u001b[0m\"]\n[8.531,\"o\",\"\\u001b[38;5;214mm\\u001b[0m\\u001b[38;5;214ma\\u001b[0m\\u001b[38;5;214mr\\u001b[0m\\u001b[38;5;214mb\\u001b[0m\\u001b[38;5;214ml\\u001b[0m\\u001b[38;5;214me\\u001b[0m\\u001b[38;5;214m \\u001b[0m\\u001b[38;5;214mm\\u001b[0m\\u001b[38;5;214mr\\u001b[0m\\u001b[38;5;208mm\\u001b[0m\\u001b[38;5;208ma\\u001b[0m\\u001b[38;5;208mr\\u001b[0m\\u001b[38;5;208mb\\u001b[0m\\u001b[38;5;208ml\\u001b[0m\\u001b[38;5;208me\\u001b[0m\\u001b[38;5;208m \\u001b[0m\\u001b[38;5;208m \\u001b[0m\\u001b[38;5;208m1\\u001b[0m\\u001b[38;5;208m7\\u001b[0m\\u001b[38;5;209mM\\u001b[0m\\u001b[38;5;203m \\u001b[0m\\u001b[38;5;203mM\\u001b[0m\\u001b[38;5;203ma\\u001b[0m\\u001b[38;5;203mr\\u001b[0m\\u001b[38;5;203m \\u001b[0m\\u001b[38;5;203m \\u001b[0m\\u001b[38;5;203m5\\u001b[0m\\u001b[38;5;203m \\u001b[0m\\u001b[38;5;203m1\\u001b[0m\\u001b[38;5;203m6\\u001b[0m\\u001b[38;5;203m:\\u001b[0m\\u001b[38;5;198m0\\u001b[0m\\u001b[38;5;198m2\\u001b[0m\\u001b[38;5;198m \\u001b[0m\\u001b[38;5;198mp\\u001b[0m\\u001b[38;5;198mi\\u001b[0m\\u001b[38;5;198mp\\u001b[0m\\u001b[38;5;198me\\u001b[0m\\u001b[38;5;198ms\\u001b[0m\\u001b[38;5;198m.\\u001b[0m\\u001b[38;5;198mc\\u001b[0m\"]\n[8.532,\"o\",\"\\u001b[38;5;199ma\\u001b[0m\\u001b[38;5;199ms\\u001b[0m\\u001b[38;5;199mt\\u001b[0m\\u001b[38;5;199m.\\u001b[0m\\u001b[38;5;199ms\\u001b[0m\\u001b[38;5;199mv\\u001b[0m\\u001b[38;5;199mg\\u001b[0m\\r\\n\\u001b[38;5;184md\\u001b[0m\\u001b[38;5;184mr\\u001b[0m\\u001b[38;5;184mw\\u001b[0m\\u001b[38;5;184mx\\u001b[0m\\u001b[38;5;184mr\\u001b[0m\\u001b[38;5;184m-\\u001b[0m\\u001b[38;5;184mx\\u001b[0m\\u001b[38;5;184mr\\u001b[0m\\u001b[38;5;184m-\\u001b[0m\\u001b[38;5;184mx\\u001b[0m\\u001b[38;5;184m \\u001b[0m\\u001b[38;5;178m6\\u001b[0m\\u001b[38;5;214m \\u001b[0m\\u001b[38;5;214mm\\u001b[0m\\u001b[38;5;214mr\\u001b[0m\\u001b[38;5;214mm\\u001b[0m\\u001b[38;5;214ma\\u001b[0m\\u001b[38;5;214mr\\u001b[0m\\u001b[38;5;214mb\\u001b[0m\\u001b[38;5;214ml\\u001b[0m\\u001b[38;5;214me\\u001b[0m\\u001b[38;5;208m \\u001b[0m\\u001b[38;5;208mm\\u001b[0m\\u001b[38;5;208mr\\u001b[0m\\u001b[38;5;208mm\\u001b[0m\\u001b[38;5;208ma\\u001b[0m\\u001b[38;5;208mr\\u001b[0m\\u001b[38;5;208mb\\u001b[0m\\u001b[38;5;208ml\\u001b[0m\\u001b[38;5;208me\\u001b[0m\\u001b[38;5;208m \\u001b[0m\\u001b[38;5;209m4\\u001b[0m\"]\n[8.533,\"o\",\"\\u001b[38;5;203m.\\u001b[0m\\u001b[38;5;203m0\\u001b[0m\\u001b[38;5;203mK\\u001b[0m\\u001b[38;5;203m \\u001b[0m\\u001b[38;5;203mM\\u001b[0m\\u001b[38;5;203ma\\u001b[0m\\u001b[38;5;203mr\\u001b[0m\\u001b[38;5;203m \\u001b[0m\\u001b[38;5;203m \\u001b[0m\\u001b[38;5;203m5\\u001b[0m\\u001b[38;5;203m \\u001b[0m\\u001b[38;5;198m1\\u001b[0m\\u001b[38;5;198m4\\u001b[0m\\u001b[38;5;198m:\\u001b[0m\\u001b[38;5;198m5\\u001b[0m\\u001b[38;5;198m7\\u001b[0m\\u001b[38;5;198m \\u001b[0m\\u001b[38;5;198mp\\u001b[0m\\u001b[38;5;198mk\\u001b[0m\\u001b[38;5;198mg\\u001b[0m\\r\\n\\u001b[38;5;184m-\\u001b[0m\\u001b[38;5;184mr\\u001b[0m\\u001b[38;5;184mw\\u001b[0m\\u001b[38;5;184mx\\u001b[0m\\u001b[38;5;184mr\\u001b[0m\\u001b[38;5;184m-\\u001b[0m\\u001b[38;5;184mx\\u001b[0m\\u001b[38;5;184mr\\u001b[0m\\u001b[38;5;178m-\\u001b[0m\\u001b[38;5;214mx\\u001b[0m\\u001b[38;5;214m \\u001b[0m\\u001b[38;5;214m1\\u001b[0m\\u001b[38;5;214m \\u001b[0m\\u001b[38;5;214mm\\u001b[0m\\u001b[38;5;214mr\\u001b[0m\\u001b[38;5;214mm\\u001b[0m\\u001b[38;5;214ma\\u001b[0m\\u001b[38;5;214mr\\u001b[0m\\u001b[38;5;208mb\\u001b[0m\\u001b[38;5;208ml\\u001b[0m\\u001b[38;5;208me\\u001b[0m\\u001b[38;5;208m \\u001b[0m\\u001b[38;5;208mm\\u001b[0m\\u001b[38;5;208mr\\u001b[0m\\u001b[38;5;208mm\\u001b[0m\\u001b[38;5;208ma\\u001b[0m\\u001b[38;5;208mr\\u001b[0m\"]\n[8.534,\"o\",\"\\u001b[38;5;208mb\\u001b[0m\\u001b[38;5;209ml\\u001b[0m\\u001b[38;5;203me\\u001b[0m\\u001b[38;5;203m \\u001b[0m\\u001b[38;5;203m3\\u001b[0m\\u001b[38;5;203m.\\u001b[0m\\u001b[38;5;203m6\\u001b[0m\\u001b[38;5;203mK\\u001b[0m\\u001b[38;5;203m \\u001b[0m\\u001b[38;5;203mM\\u001b[0m\\u001b[38;5;203ma\\u001b[0m\\u001b[38;5;203mr\\u001b[0m\\u001b[38;5;203m \\u001b[0m\\u001b[38;5;198m \\u001b[0m\\u001b[38;5;198m5\\u001b[0m\\u001b[38;5;198m \\u001b[0m\\u001b[38;5;198m1\\u001b[0m\\u001b[38;5;198m5\\u001b[0m\\u001b[38;5;198m:\\u001b[0m\\u001b[38;5;198m5\\u001b[0m\\u001b[38;5;198m7\\u001b[0m\\u001b[38;5;198m \\u001b[0m\\u001b[38;5;198ms\\u001b[0m\\u001b[38;5;199me\\u001b[0m\\u001b[38;5;199ms\\u001b[0m\\u001b[38;5;199ms\\u001b[0m\\u001b[38;5;199mi\\u001b[0m\\u001b[38;5;199mo\\u001b[0m\\u001b[38;5;199mn\\u001b[0m\\u001b[38;5;199m.\\u001b[0m\\u001b[38;5;199mc\\u001b[0m\\u001b[38;5;199ma\\u001b[0m\\u001b[38;5;163ms\\u001b[0m\\u001b[38;5;164mt\\u001b[0m\\r\\n\\u001b[38;5;184m-\\u001b[0m\\u001b[38;5;184mr\\u001b[0m\\u001b[38;5;184mw\\u001b[0m\\u001b[38;5;184mx\\u001b[0m\\u001b[38;5;184mr\\u001b[0m\\u001b[38;5;178m-\\u001b[0m\"]\n[8.535,\"o\",\"\\u001b[38;5;214mx\\u001b[0m\\u001b[38;5;214mr\\u001b[0m\\u001b[38;5;214m-\\u001b[0m\\u001b[38;5;214mx\\u001b[0m\\u001b[38;5;214m \\u001b[0m\\u001b[38;5;214m1\\u001b[0m\\u001b[38;5;214m \\u001b[0m\\u001b[38;5;214mm\\u001b[0m\\u001b[38;5;214mr\\u001b[0m\\u001b[38;5;208mm\\u001b[0m\\u001b[38;5;208ma\\u001b[0m\\u001b[38;5;208mr\\u001b[0m\\u001b[38;5;208mb\\u001b[0m\\u001b[38;5;208ml\\u001b[0m\\u001b[38;5;208me\\u001b[0m\\u001b[38;5;208m \\u001b[0m\\u001b[38;5;208mm\\u001b[0m\\u001b[38;5;208mr\\u001b[0m\\u001b[38;5;208mm\\u001b[0m\\u001b[38;5;209ma\\u001b[0m\\u001b[38;5;203mr\\u001b[0m\\u001b[38;5;203mb\\u001b[0m\\u001b[38;5;203ml\\u001b[0m\\u001b[38;5;203me\\u001b[0m\\u001b[38;5;203m \\u001b[0m\\u001b[38;5;203m4\\u001b[0m\\u001b[38;5;203m.\\u001b[0m\\u001b[38;5;203m7\\u001b[0m\\u001b[38;5;203mM\\u001b[0m\\u001b[38;5;203m \\u001b[0m\\u001b[38;5;203mM\\u001b[0m\\u001b[38;5;198ma\\u001b[0m\\u001b[38;5;198mr\\u001b[0m\\u001b[38;5;198m \\u001b[0m\\u001b[38;5;198m \\u001b[0m\\u001b[38;5;198m5\\u001b[0m\\u001b[38;5;198m \\u001b[0m\\u001b[38;5;198m1\\u001b[0m\\u001b[38;5;198m5\\u001b[0m\\u001b[38;5;198m:\\u001b[0m\\u001b[38;5;198m5\\u001b[0m\\u001b[38;5;199m2\\u001b[0m\\u001b[38;5;199m \\u001b[0m\\u001b[38;5;199mt\\u001b[0m\\u001b[38;5;199me\\u001b[0m\\u001b[38;5;199mr\\u001b[0m\\u001b[38;5;199mm\\u001b[0m\\u001b[38;5;199ms\\u001b[0m\\u001b[38;5;199mv\\u001b[0m\\u001b[38;5;199mg\\u001b[0m\\r\\n\"]\n[8.537,\"o\",\"\\u001b[1m\\u001b[7m%\\u001b[27m\\u001b[1m\\u001b[0m                                                                                                                       \\r \\r\\u001b]2;mrmarble@founder:~/repos/termsvg\\u0007\\u001b]1;~/repos/termsvg\\u0007\"]\n[8.557,\"o\",\"\\r\\u001b[0m\\u001b[27m\\u001b[24m\\u001b[J\\u001b[01;32m➜  \\u001b[36mtermsvg\\u001b[00m \\u001b[01;34mgit:(\\u001b[31mmaster\\u001b[34m) \\u001b[33m✗\\u001b[00m \\u001b[K\"]\n[8.558,\"o\",\"\\u001b[?1h\\u001b=\\u001b[?2004h\"]\n[15.904,\"o\",\"\\u001b[4mc\\u001b[24m\"]\n[15.905,\"o\",\"\\u0008\\u001b[4mc\\u001b[24m\\u001b[90mlear\\u001b[39m\\u0008\\u0008\\u0008\\u0008\"]\n[16.069,\"o\",\"\\u0008\\u001b[24m\\u001b[1m\\u001b[31mc\\u001b[1m\\u001b[31ma\\u001b[0m\\u001b[39m\\u001b[39m \\u001b[39m \\u001b[39m \\u0008\\u0008\\u0008\"]\n[16.07,\"o\",\"\\u001b[90mt go.mod\\u001b[39m\\u001b[8D\"]\n[16.3,\"o\",\"\\u0008\\u0008\\u001b[0m\\u001b[32mc\\u001b[0m\\u001b[32ma\\u001b[32mt\\u001b[39m\"]\n[17.994,\"o\",\"\\u001b[39m \"]\n[19.074,\"o\",\"\\u001b[39m\\u001b[4mg\\u001b[39m\\u001b[4mo\\u001b[39m\\u001b[4m.\\u001b[39m\\u001b[4mm\\u001b[39m\\u001b[4mo\\u001b[39m\\u001b[4md\\u001b[24m\"]\n[19.704,\"o\",\"\\u001b[?1l\\u001b\\u003e\"]\n[19.705,\"o\",\"\\u001b[?2004l\\r\\r\\n\\u001b]2;cat go.mod\\u0007\\u001b]1;cat\\u0007\"]\n[19.706,\"o\",\"module github.com/mrmarble/termsvg\\r\\n\\r\\ngo 1.17\\r\\n\\r\\nrequire (\\r\\n\\tgithub.com/ajstarks/svgo v0.0.0-20211024235047-1546f124cd8b\\r\\n\\tgithub.com/creack/pty v1.1.17\\r\\n\\tgithub.com/hinshun/vt10x v0.0.0-20220301184237-5011da428d02\\r\\n\\tgolang.org/x/term v0.0.0-20210927222741-03fcf44c2211\\r\\n)\\r\\n\\r\\nrequire (\\r\\n\\tgithub.com/mattn/go-colorable v0.1.9 // indirect\\r\\n\\tgithub.com/mattn/go-isatty v0.0.14 // indirect\\r\\n\\tgithub.com/pkg/errors v0.9.1 // indirect\\r\\n)\\r\\n\\r\\nrequire (\\r\\n\\tgithub.com/alecthomas/kong v0.4.1\\r\\n\\tgithub.com/fatih/color v1.13.0\\r\\n\\tgithub.com/google/go-cmp v0.5.7\\r\\n\\tgithub.com/rs/zerolog v1.26.1\\r\\n\\tgolang.org/x/sys v0.0.0-20210809222454-d867a43fc93e // indirect\\r\\n)\\r\\n\\u001b[1m\\u001b[7m%\\u001b[27m\\u001b[1m\\u001b[0m                                                                                                                       \\r \\r\"]\n[19.707,\"o\",\"\\u001b]2;mrmarble@founder:~/repos/termsvg\\u0007\\u001b]1;~/repos/termsvg\\u0007\"]\n[19.728,\"o\",\"\\r\\u001b[0m\\u001b[27m\\u001b[24m\\u001b[J\\u001b[01;32m➜  \\u001b[36mtermsvg\\u001b[00m \\u001b[01;34mgit:(\\u001b[31mmaster\\u001b[34m) \\u001b[33m✗\\u001b[00m \\u001b[K\\u001b[?1h\\u001b=\\u001b[?2004h\"]\n[26.764,\"o\",\"\\u001b[4mp\\u001b[24m\\u0008\\u001b[4mp\\u001b[24m\\u001b[90mipes.sh\\u001b[39m\\u0008\\u0008\\u0008\\u0008\\u0008\\u0008\\u0008\"]\n[26.974,\"o\",\"\\u0008\\u001b[24m\\u001b[1m\\u001b[31mp\\u001b[1m\\u001b[31mi\\u001b[0m\\u001b[39m\"]\n[27.185,\"o\",\"\\u0008\\u0008\\u001b[1m\\u001b[31mp\\u001b[1m\\u001b[31mi\\u001b[1m\\u001b[31mn\\u001b[0m\\u001b[39m\\u001b[39m \\u001b[39m \\u001b[39m \\u001b[39m \\u001b[39m \\u0008\\u0008\\u0008\\u0008\\u0008\"]\n[27.186,\"o\",\"\\u001b[90mg elite\\u001b[39m\\u0008\\u0008\\u0008\\u0008\\u0008\\u0008\\u0008\"]\n[27.294,\"o\",\"\\u0008\\u0008\\u0008\\u001b[0m\\u001b[32mp\\u001b[0m\\u001b[32mi\\u001b[0m\\u001b[32mn\\u001b[32mg\\u001b[39m\"]\n[27.684,\"o\",\"\\u001b[39m \"]\n[28,\"o\",\"\\u001b[39ml\\u001b[39m \\u001b[39m \\u001b[39m \\u001b[39m \\u0008\\u0008\\u0008\\u0008\"]\n[28.12,\"o\",\"o\"]\n[28.212,\"o\",\"c\"]\n[28.375,\"o\",\"a\"]\n[28.69,\"o\",\"l\"]\n[28.885,\"o\",\"h\"]\n[28.945,\"o\",\"o\"]\n[29.051,\"o\",\"s\"]\n[29.169,\"o\",\"t\"]\n[29.381,\"o\",\"\\u001b[?1l\\u001b\\u003e\"]\n[29.382,\"o\",\"\\u001b[?2004l\\r\\r\\n\\u001b]2;ping localhost\\u0007\\u001b]1;ping\\u0007\"]\n[29.39,\"o\",\"PING localhost (127.0.0.1) 56(84) bytes of data.\\r\\n\"]\n[29.391,\"o\",\"64 bytes from localhost (127.0.0.1): icmp_seq=1 ttl=64 time=0.191 ms\\r\\n\"]\n[30.435,\"o\",\"64 bytes from localhost (127.0.0.1): icmp_seq=2 ttl=64 time=0.031 ms\\r\\n\"]\n[31.475,\"o\",\"64 bytes from localhost (127.0.0.1): icmp_seq=3 ttl=64 time=0.032 ms\\r\\n\"]\n[32.515,\"o\",\"64 bytes from localhost (127.0.0.1): icmp_seq=4 ttl=64 time=0.035 ms\\r\\n\"]\n[32.858,\"o\",\"^C\\r\\n--- localhost ping statistics ---\\r\\n4 packets transmitted, 4 received, 0% packet loss, time 3125ms\\r\\nrtt min/avg/max/mdev = 0.031/0.072/0.191/0.068 ms\\r\\n\"]\n[32.859,\"o\",\"\\u001b[1m\\u001b[7m%\\u001b[27m\\u001b[1m\\u001b[0m                                                                                                                       \\r \\r\\u001b]2;mrmarble@founder:~/repos/termsvg\\u0007\\u001b]1;~/repos/termsvg\\u0007\"]\n[32.879,\"o\",\"\\r\\u001b[0m\\u001b[27m\\u001b[24m\\u001b[J\\u001b[01;32m➜  \\u001b[36mtermsvg\\u001b[00m \\u001b[01;34mgit:(\\u001b[31mmaster\\u001b[34m) \\u001b[33m✗\\u001b[00m \\u001b[K\\u001b[?1h\\u001b=\"]\n[32.88,\"o\",\"\\u001b[?2004h\"]\n[33.785,\"o\",\"\\u001b[1m\\u001b[31me\\u001b[0m\\u001b[39m\\u0008\\u001b[1m\\u001b[31me\\u001b[0m\\u001b[39m\\u001b[90mxplorer.exe .\\u001b[39m\\u001b[13D\"]\n[34.029,\"o\",\"\\u0008\\u001b[0m\\u001b[32me\\u001b[32mx\\u001b[39m\"]\n[34.22,\"o\",\"\\u0008\\u0008\\u001b[1m\\u001b[31me\\u001b[1m\\u001b[31mx\\u001b[1m\\u001b[31mi\\u001b[0m\\u001b[39m\\u001b[39m \\u001b[39m \\u001b[39m \\u001b[39m \\u001b[39m \\u001b[39m \\u001b[39m \\u001b[39m \\u001b[39m \\u001b[39m \\u001b[39m \\u001b[11D\"]\n[34.221,\"o\",\"\\u001b[90mt\\u001b[39m\\u0008\"]\n[34.315,\"o\",\"\\u0008\\u0008\\u0008\\u001b[0m\\u001b[32me\\u001b[0m\\u001b[32mx\\u001b[0m\\u001b[32mi\\u001b[32mt\\u001b[39m\"]\n[34.764,\"o\",\"\\u001b[?1l\\u001b\\u003e\"]\n[34.765,\"o\",\"\\u001b[?2004l\\r\\r\\n\\u001b]2;exit\\u0007\\u001b]1;exit\\u0007\"]"
  },
  {
    "path": "go.mod",
    "content": "module github.com/mrmarble/termsvg\n\ngo 1.25.6\n\nrequire (\n\tgithub.com/alecthomas/kong v1.12.0\n\tgithub.com/creack/pty v1.1.24\n\tgithub.com/hinshun/vt10x v0.0.0-20220301184237-5011da428d02\n\tgithub.com/tdewolff/minify/v2 v2.23.8\n\tgolang.org/x/image v0.35.0\n\tgolang.org/x/term v0.39.0\n\tgolang.org/x/text v0.33.0\n)\n\nrequire (\n\tgithub.com/mitchellh/colorstring v0.0.0-20190213212951-d06e56a500db // indirect\n\tgithub.com/rivo/uniseg v0.4.7 // indirect\n\tgithub.com/schollz/progressbar/v3 v3.19.0 // indirect\n\tgithub.com/tdewolff/parse/v2 v2.8.1 // indirect\n\tgolang.org/x/sys v0.40.0 // indirect\n)\n"
  },
  {
    "path": "go.sum",
    "content": "github.com/alecthomas/assert/v2 v2.11.0 h1:2Q9r3ki8+JYXvGsDyBXwH3LcJ+WK5D0gc5E8vS6K3D0=\ngithub.com/alecthomas/assert/v2 v2.11.0/go.mod h1:Bze95FyfUr7x34QZrjL+XP+0qgp/zg8yS+TtBj1WA3k=\ngithub.com/alecthomas/kong v1.12.0 h1:oKd/0fHSdajj5PfGDd3ScvEvpVJf9mT2mb5r9xYadYM=\ngithub.com/alecthomas/kong v1.12.0/go.mod h1:p2vqieVMeTAnaC83txKtXe8FLke2X07aruPWXyMPQrU=\ngithub.com/alecthomas/repr v0.4.0 h1:GhI2A8MACjfegCPVq9f1FLvIBS+DrQ2KQBFZP1iFzXc=\ngithub.com/alecthomas/repr v0.4.0/go.mod h1:Fr0507jx4eOXV7AlPV6AVZLYrLIuIeSOWtW57eE/O/4=\ngithub.com/creack/pty v1.1.24 h1:bJrF4RRfyJnbTJqzRLHzcGaZK1NeM5kTC9jGgovnR1s=\ngithub.com/creack/pty v1.1.24/go.mod h1:08sCNb52WyoAwi2QDyzUCTgcvVFhUzewun7wtTfvcwE=\ngithub.com/hexops/gotextdiff v1.0.3 h1:gitA9+qJrrTCsiCl7+kh75nPqQt1cx4ZkudSTLoUqJM=\ngithub.com/hexops/gotextdiff v1.0.3/go.mod h1:pSWU5MAI3yDq+fZBTazCSJysOMbxWL1BSow5/V2vxeg=\ngithub.com/hinshun/vt10x v0.0.0-20220301184237-5011da428d02 h1:AgcIVYPa6XJnU3phs104wLj8l5GEththEw6+F79YsIY=\ngithub.com/hinshun/vt10x v0.0.0-20220301184237-5011da428d02/go.mod h1:Q48J4R4DvxnHolD5P8pOtXigYlRuPLGl6moFx3ulM68=\ngithub.com/mitchellh/colorstring v0.0.0-20190213212951-d06e56a500db h1:62I3jR2EmQ4l5rM/4FEfDWcRD+abF5XlKShorW5LRoQ=\ngithub.com/mitchellh/colorstring v0.0.0-20190213212951-d06e56a500db/go.mod h1:l0dey0ia/Uv7NcFFVbCLtqEBQbrT4OCwCSKTEv6enCw=\ngithub.com/rivo/uniseg v0.4.7 h1:WUdvkW8uEhrYfLC4ZzdpI2ztxP1I582+49Oc5Mq64VQ=\ngithub.com/rivo/uniseg v0.4.7/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88=\ngithub.com/schollz/progressbar/v3 v3.19.0 h1:Ea18xuIRQXLAUidVDox3AbwfUhD0/1IvohyTutOIFoc=\ngithub.com/schollz/progressbar/v3 v3.19.0/go.mod h1:IsO3lpbaGuzh8zIMzgY3+J8l4C8GjO0Y9S69eFvNsec=\ngithub.com/tdewolff/minify/v2 v2.23.8 h1:tvjHzRer46kwOfpdCBCWsDblCw3QtnLJRd61pTVkyZ8=\ngithub.com/tdewolff/minify/v2 v2.23.8/go.mod h1:VW3ISUd3gDOZuQ/jwZr4sCzsuX+Qvsx87FDMjk6Rvno=\ngithub.com/tdewolff/parse/v2 v2.8.1 h1:J5GSHru6o3jF1uLlEKVXkDxxcVx6yzOlIVIotK4w2po=\ngithub.com/tdewolff/parse/v2 v2.8.1/go.mod h1:Hwlni2tiVNKyzR1o6nUs4FOF07URA+JLBLd6dlIXYqo=\ngithub.com/tdewolff/test v1.0.11 h1:FdLbwQVHxqG16SlkGveC0JVyrJN62COWTRyUFzfbtBE=\ngithub.com/tdewolff/test v1.0.11/go.mod h1:XPuWBzvdUzhCuxWO1ojpXsyzsA5bFoS3tO/Q3kFuTG8=\ngolang.org/x/image v0.35.0 h1:LKjiHdgMtO8z7Fh18nGY6KDcoEtVfsgLDPeLyguqb7I=\ngolang.org/x/image v0.35.0/go.mod h1:MwPLTVgvxSASsxdLzKrl8BRFuyqMyGhLwmC+TO1Sybk=\ngolang.org/x/sys v0.40.0 h1:DBZZqJ2Rkml6QMQsZywtnjnnGvHza6BTfYFWY9kjEWQ=\ngolang.org/x/sys v0.40.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks=\ngolang.org/x/term v0.39.0 h1:RclSuaJf32jOqZz74CkPA9qFuVTX7vhLlpfj/IGWlqY=\ngolang.org/x/term v0.39.0/go.mod h1:yxzUCTP/U+FzoxfdKmLaA0RV1WgE0VY7hXBwKtY/4ww=\ngolang.org/x/text v0.33.0 h1:B3njUFyqtHDUI5jMn1YIr5B0IE2U0qck04r6d4KPAxE=\ngolang.org/x/text v0.33.0/go.mod h1:LuMebE6+rBincTi9+xWTY8TztLzKHc/9C1uBCG27+q8=\n"
  },
  {
    "path": "mise.toml",
    "content": "[tools]\ngo = \"latest\"\ngofumpt = \"latest\"\ngolangci-lint = \"latest\"\ntask = \"latest\"\n"
  },
  {
    "path": "pkg/asciicast/asciicast.go",
    "content": "// Package asciicast provides methods for working\n// with asciinema's file format asciicast v2.\n//\n// Refer to the official documentation about asciicast v2 format here:\n// https://github.com/asciinema/asciinema/blob/develop/doc/asciicast-v2.md\npackage asciicast\n\nimport (\n\t\"encoding/json\"\n\t\"io\"\n\t\"math\"\n\t\"os\"\n\t\"strings\"\n\t\"time\"\n)\n\n// ThemeInfo represents the theme configuration in asciicast v2 format.\ntype ThemeInfo struct {\n\tFg      string `json:\"fg,omitempty\"`      // Foreground color (e.g., \"#d0d0d0\")\n\tBg      string `json:\"bg,omitempty\"`      // Background color (e.g., \"#212121\")\n\tPalette string `json:\"palette,omitempty\"` // 16 colon-separated ANSI colors\n}\n\n// Header is JSON-encoded object containing recording meta-data.\n// fields with 'omitempty' are optional by asciicast v2 format\ntype Header struct {\n\tVersion       int               `json:\"version\"`\n\tWidth         int               `json:\"width\"`\n\tHeight        int               `json:\"height\"`\n\tTimestamp     int64             `json:\"timestamp,omitempty\"`\n\tDuration      float64           `json:\"duration,omitempty\"`\n\tIdleTimeLimit float64           `json:\"idle_time_limit,omitempty\"`\n\tCommand       string            `json:\"command,omitempty\"`\n\tTitle         string            `json:\"title,omitempty\"`\n\tEnv           map[string]string `json:\"env,omitempty\"`\n\tTheme         ThemeInfo         `json:\"theme,omitempty\"`\n}\n\n// Cast contains asciicast file data\ntype Cast struct {\n\tHeader Header\n\tEvents []Event\n}\n\n// New will instantiate new Cast with basic medatada (version, timestamp and environment).\nfunc New() *Cast {\n\tconst version = 2\n\n\tcast := &Cast{\n\t\tHeader: Header{\n\t\t\tVersion:   version,\n\t\t\tTimestamp: time.Now().Unix(),\n\t\t},\n\t\tEvents: []Event{},\n\t}\n\n\tcast.Header.CaptureEnv()\n\n\treturn cast\n}\n\n// CaptureEnv stores the environment variables 'shell' and 'term'.\nfunc (h *Header) CaptureEnv() {\n\th.Env = map[string]string{\n\t\t\"TERM\":  os.Getenv(\"TERM\"),\n\t\t\"SHELL\": os.Getenv(\"SHELL\"),\n\t}\n}\n\n// Marshal returns the JSON-like encoding of v.\nfunc (c *Cast) Marshal() ([]byte, error) {\n\theader, err := json.Marshal(&c.Header)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tfor i := range c.Events {\n\t\theader = append(header, '\\n')\n\n\t\tjs, err := json.Marshal(&c.Events[i])\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\theader = append(header, js...)\n\t}\n\n\treturn header, nil\n}\n\n// Unmarshal parses the JSON-encoded data into a Cast struct.\nfunc Unmarshal(data []byte) (*Cast, error) {\n\tvar cast Cast\n\n\terr := cast.fromJSON(string(data))\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\t// Duration field isn't required as v2 documentation but is needed for exporting purposes.\n\tif cast.Header.Duration == 0 {\n\t\tcast.Header.Duration = cast.Events[len(cast.Events)-1].Time\n\t}\n\n\treturn &cast, nil\n}\n\n// ToRelativeTime converts event time to the difference between each event.\nfunc (c *Cast) ToRelativeTime() {\n\tprev := 0.\n\n\tfor i, frame := range c.Events {\n\t\tdelay := frame.Time - prev\n\t\tprev = frame.Time\n\t\tc.Events[i].Time = delay\n\t}\n}\n\n// CapRelativeTime limits the amount of time between each event\nfunc (c *Cast) CapRelativeTime(limit float64) {\n\tif limit > 0 {\n\t\tfor i, frame := range c.Events {\n\t\t\tc.Events[i].Time = math.Min(frame.Time, limit)\n\t\t}\n\t}\n}\n\n// ToAbsoluteTime converts event time to the absolute difference from the start.\n// This is the default time format.\nfunc (c *Cast) ToAbsoluteTime() {\n\tabsTime := 0.\n\n\tfor i, frame := range c.Events {\n\t\tabsTime += frame.Time\n\t\tc.Events[i].Time = absTime\n\t}\n}\n\n// AdjustSpeed changes the time of each event.\n// Slower < 1.0 > Faster.\nfunc (c *Cast) AdjustSpeed(speed float64) {\n\tfor i := range c.Events {\n\t\tc.Events[i].Time /= speed\n\t}\n}\n\n// Compress chains together events with the same time.\nfunc (c *Cast) Compress() {\n\tvar events []Event\n\n\tfor i, event := range c.Events {\n\t\tif i == 0 {\n\t\t\tevents = append(events, event)\n\t\t\tcontinue\n\t\t}\n\n\t\tif event.Time == events[len(events)-1].Time {\n\t\t\tevents[len(events)-1].EventData += event.EventData\n\t\t} else {\n\t\t\tevents = append(events, event)\n\t\t}\n\n\t}\n\n\tc.Events = events\n}\n\n// Asciicast format is not valid JSON so json.Unmarshal returns an error.\n// This function parses the file line by line to circumvent that.\nfunc (c *Cast) fromJSON(data string) error {\n\tlines := strings.Split(data, \"\\n\")\n\tif lines[0][0] == '{' {\n\t\terr := json.Unmarshal([]byte(lines[0]), &c.Header)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\tlines = lines[1:]\n\t}\n\n\tfor _, line := range lines {\n\t\tif line == \"\" {\n\t\t\tcontinue\n\t\t}\n\t\tvar event Event\n\n\t\terr := json.Unmarshal([]byte(line), &event)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\tc.Events = append(c.Events, event)\n\t}\n\n\treturn nil\n}\n\nfunc Parse(r io.Reader) (*Cast, error) {\n\tdata, err := io.ReadAll(r)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn Unmarshal(data)\n}\n\nfunc (c *Cast) WriteTo(w io.Writer) (int64, error) {\n\tdata, err := c.Marshal()\n\tif err != nil {\n\t\treturn 0, err\n\t}\n\n\tn, err := w.Write(data)\n\treturn int64(n), err\n}\n"
  },
  {
    "path": "pkg/asciicast/event.go",
    "content": "package asciicast\n\nimport (\n\t\"encoding/json\"\n\t\"fmt\"\n)\n\ntype EventType string\n\n// Event is a 3-tuple encoded as JSON array.\ntype Event struct {\n\tTime      float64   `json:\"time\"`\n\tEventType EventType `json:\"event-type\"`\n\tEventData string    `json:\"event-data\"`\n}\n\nconst (\n\tInput  EventType = \"i\" // Data read from stdin.\n\tOutput EventType = \"o\" // Data writed to stdout.\n)\n\n// UnmarshalJSON reads json list as Event fields.\nfunc (e *Event) UnmarshalJSON(data []byte) error {\n\tvar v []interface{}\n\tif err := json.Unmarshal(data, &v); err != nil {\n\t\treturn err\n\t}\n\n\tif len(v) != 3 {\n\t\treturn fmt.Errorf(\"event requires 3 elements, got %d\", len(v))\n\t}\n\n\ttime, ok := v[0].(float64)\n\tif !ok {\n\t\treturn fmt.Errorf(\"event time must be a float\")\n\t}\n\n\teventType, ok := v[1].(string)\n\tif !ok {\n\t\treturn fmt.Errorf(\"event type must be a string\")\n\t}\n\teventData, ok := v[2].(string)\n\tif !ok {\n\t\treturn fmt.Errorf(\"event data must be a string\")\n\t}\n\n\te.Time = time\n\te.EventType = EventType(eventType)\n\te.EventData = eventData\n\n\treturn nil\n}\n\n// MarshalJSON reads json list as Event fields.\nfunc (e *Event) MarshalJSON() ([]byte, error) {\n\tdata := [...]interface{}{e.Time, string(e.EventType), e.EventData}\n\n\tv, err := json.Marshal(data)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn v, nil\n}\n"
  },
  {
    "path": "pkg/asciicast/testdata/TestMarshal.golden",
    "content": "{\"version\":2,\"width\":0,\"height\":0,\"timestamp\":1337,\"env\":{\"SHELL\":\"TEST_SHELL\",\"TERM\":\"TEST_TERM\"}}\n[1,\"o\",\"First\"]\n[2,\"o\",\"Second\"]\n[3,\"i\",\"Third\"]"
  },
  {
    "path": "pkg/asciicast/testdata/TestUnmarshal.golden",
    "content": "{\"version\": 2, \"width\": 213, \"height\": 58, \"timestamp\": 1598646467, \"env\": {\"SHELL\": \"/usr/bin/zsh\", \"TERM\": \"alacritty\"}}\n[2.677085, \"o\", \"h\"]\n[2.76064, \"o\", \"e\"]\n[2.944434, \"o\", \"l\"]\n[3.111831, \"o\", \"l\"]\n[3.354445, \"o\", \"o\"]"
  },
  {
    "path": "pkg/color/catalog.go",
    "content": "package color\n\nimport (\n\t\"image/color\"\n)\n\n// ID is a unique identifier for a color in the catalog.\n// Value 0 represents \"default\" (no explicit color set).\ntype ID uint16\n\n// Catalog maps unique colors to stable IDs for efficient referencing.\n// It deduplicates colors and provides CSS class name generation.\ntype Catalog struct {\n\t// colors maps ID to the resolved RGBA value\n\tcolors map[ID]color.RGBA\n\n\t// lookup maps color key to ID for deduplication\n\tlookup map[colorKey]ID\n\n\t// nextID is the next available ID\n\tnextID ID\n\n\t// defaultFG and defaultBG are the theme defaults\n\tdefaultFG color.RGBA\n\tdefaultBG color.RGBA\n}\n\n// colorKey is used for deduplication - represents the unique identity of a color.\ntype colorKey struct {\n\tr, g, b uint8\n}\n\n// idGenerator produces CSS class names: a, b, ..., z, aa, ab, ...\ntype idGenerator struct {\n\tcurrent []byte\n}\n\n// DefaultID represents the default/unset color.\nconst DefaultID ID = 0\n\n// NewCatalog creates a color catalog with the given default colors.\nfunc NewCatalog(defaultFG, defaultBG color.RGBA) *Catalog {\n\treturn &Catalog{\n\t\tcolors:    make(map[ID]color.RGBA),\n\t\tlookup:    make(map[colorKey]ID),\n\t\tnextID:    1, // 0 is reserved for DefaultID\n\t\tdefaultFG: defaultFG,\n\t\tdefaultBG: defaultBG,\n\t}\n}\n\n// Register adds a color to the catalog and returns its ID.\n// If the color already exists, returns the existing ID.\n// Default colors return DefaultID.\nfunc (c *Catalog) Register(col Color, palette *Palette) ID {\n\t// Default colors get the special ID\n\tif col.Type == Default {\n\t\treturn DefaultID\n\t}\n\n\t// Resolve to RGBA\n\trgba := col.ToRGBA(palette)\n\tkey := colorKey{r: rgba.R, g: rgba.G, b: rgba.B}\n\n\t// Check if already registered\n\tif id, exists := c.lookup[key]; exists {\n\t\treturn id\n\t}\n\n\t// Register new color\n\tid := c.nextID\n\tc.nextID++\n\tc.colors[id] = rgba\n\tc.lookup[key] = id\n\n\treturn id\n}\n\n// Resolved returns the RGBA value for an ID.\n// For DefaultID, returns a zero RGBA (caller should use theme default).\nfunc (c *Catalog) Resolved(id ID) color.RGBA {\n\tif id == DefaultID {\n\t\treturn color.RGBA{}\n\t}\n\treturn c.colors[id]\n}\n\n// IsDefault checks if the ID represents a default color.\nfunc (c *Catalog) IsDefault(id ID) bool {\n\treturn id == DefaultID\n}\n\n// All returns all color entries for iteration (e.g., generating CSS classes).\nfunc (c *Catalog) All() map[ID]color.RGBA {\n\treturn c.colors\n}\n\n// Count returns the number of unique colors (excluding default).\nfunc (c *Catalog) Count() int {\n\treturn len(c.colors)\n}\n\n// DefaultForeground returns the default foreground color.\nfunc (c *Catalog) DefaultForeground() color.RGBA {\n\treturn c.defaultFG\n}\n\n// DefaultBackground returns the default background color.\nfunc (c *Catalog) DefaultBackground() color.RGBA {\n\treturn c.defaultBG\n}\n\n// GenerateClassNames creates CSS class names for all colors.\n// Returns a map from ID to class name (a, b, ..., z, aa, ab...).\nfunc (c *Catalog) GenerateClassNames() map[ID]string {\n\tnames := make(map[ID]string)\n\tgen := newIDGenerator()\n\n\t// Generate names in ID order for deterministic output\n\tfor id := ID(1); id < c.nextID; id++ {\n\t\tnames[id] = gen.Next()\n\t}\n\n\treturn names\n}\n\nfunc newIDGenerator() *idGenerator {\n\treturn &idGenerator{current: []byte{'a' - 1}}\n}\n\nfunc (gen *idGenerator) Next() string {\n\tfor i := len(gen.current) - 1; i >= 0; i-- {\n\t\tif gen.current[i] < 'z' {\n\t\t\tgen.current[i]++\n\t\t\treturn string(gen.current)\n\t\t}\n\t\tgen.current[i] = 'a'\n\t}\n\tgen.current = append([]byte{'a'}, gen.current...)\n\treturn string(gen.current)\n}\n"
  },
  {
    "path": "pkg/color/catalog_test.go",
    "content": "package color\n\nimport (\n\t\"image/color\"\n\t\"testing\"\n)\n\nfunc TestCatalog_Register(t *testing.T) {\n\tcatalog := NewCatalog(color.RGBA{255, 255, 255, 255}, color.RGBA{0, 0, 0, 255})\n\tpalette := Standard()\n\n\t// Default colors should return DefaultID\n\tdefaultColor := Color{Type: Default}\n\tid := catalog.Register(defaultColor, &palette)\n\tif id != DefaultID {\n\t\tt.Errorf(\"Default color should return DefaultID, got %d\", id)\n\t}\n\n\t// First non-default color should get ID 1\n\tred := FromANSI(1)\n\tid1 := catalog.Register(red, &palette)\n\tif id1 != 1 {\n\t\tt.Errorf(\"First color should get ID 1, got %d\", id1)\n\t}\n\n\t// Same color should return same ID (deduplication)\n\tid1Again := catalog.Register(red, &palette)\n\tif id1Again != id1 {\n\t\tt.Errorf(\"Same color should return same ID, got %d vs %d\", id1Again, id1)\n\t}\n\n\t// Different color should get different ID\n\tblue := FromANSI(4)\n\tid2 := catalog.Register(blue, &palette)\n\tif id2 == id1 {\n\t\tt.Errorf(\"Different color should get different ID, both got %d\", id2)\n\t}\n\n\t// Count should reflect unique colors\n\tif catalog.Count() != 2 {\n\t\tt.Errorf(\"Count should be 2, got %d\", catalog.Count())\n\t}\n}\n\nfunc TestCatalog_Resolved(t *testing.T) {\n\tcatalog := NewCatalog(color.RGBA{255, 255, 255, 255}, color.RGBA{0, 0, 0, 255})\n\tpalette := Standard()\n\n\t// Register a color\n\tred := FromANSI(1)\n\tid := catalog.Register(red, &palette)\n\n\t// Resolve should return the RGBA\n\tresolved := catalog.Resolved(id)\n\texpected := red.ToRGBA(&palette)\n\tif resolved != expected {\n\t\tt.Errorf(\"Resolved color mismatch: got %v, want %v\", resolved, expected)\n\t}\n\n\t// DefaultID should return zero RGBA\n\tdefaultResolved := catalog.Resolved(DefaultID)\n\tif defaultResolved != (color.RGBA{}) {\n\t\tt.Errorf(\"Default should resolve to zero RGBA, got %v\", defaultResolved)\n\t}\n}\n\nfunc TestCatalog_GenerateClassNames(t *testing.T) {\n\tcatalog := NewCatalog(color.RGBA{255, 255, 255, 255}, color.RGBA{0, 0, 0, 255})\n\tpalette := Standard()\n\n\t// Register multiple colors (16 unique ANSI colors)\n\tfor i := uint8(0); i < 16; i++ {\n\t\tcatalog.Register(FromANSI(i), &palette)\n\t}\n\n\tnames := catalog.GenerateClassNames()\n\n\t// First color should be \"a\"\n\tif names[1] != \"a\" {\n\t\tt.Errorf(\"First class name should be 'a', got %q\", names[1])\n\t}\n\n\t// Check sequence\n\texpectedNames := map[ID]string{\n\t\t1:  \"a\",\n\t\t2:  \"b\",\n\t\t16: \"p\",\n\t}\n\n\tfor id, expected := range expectedNames {\n\t\tif names[id] != expected {\n\t\t\tt.Errorf(\"ID %d should have name %q, got %q\", id, expected, names[id])\n\t\t}\n\t}\n}\n\nfunc TestCatalog_DefaultColors(t *testing.T) {\n\tfg := color.RGBA{200, 200, 200, 255}\n\tbg := color.RGBA{30, 30, 30, 255}\n\tcatalog := NewCatalog(fg, bg)\n\n\tif catalog.DefaultForeground() != fg {\n\t\tt.Errorf(\"DefaultForeground mismatch: got %v, want %v\", catalog.DefaultForeground(), fg)\n\t}\n\tif catalog.DefaultBackground() != bg {\n\t\tt.Errorf(\"DefaultBackground mismatch: got %v, want %v\", catalog.DefaultBackground(), bg)\n\t}\n}\n\nfunc TestCatalog_IsDefault(t *testing.T) {\n\tcatalog := NewCatalog(color.RGBA{}, color.RGBA{})\n\tpalette := Standard()\n\n\tred := FromANSI(1)\n\tid := catalog.Register(red, &palette)\n\n\tif catalog.IsDefault(id) {\n\t\tt.Error(\"Non-default color should not be default\")\n\t}\n\tif !catalog.IsDefault(DefaultID) {\n\t\tt.Error(\"DefaultID should be default\")\n\t}\n}\n\nfunc TestIDGenerator_Sequence(t *testing.T) {\n\tgen := newIDGenerator()\n\n\texpected := []string{\n\t\t\"a\", \"b\", \"c\", \"d\", \"e\", \"f\", \"g\", \"h\", \"i\", \"j\",\n\t\t\"k\", \"l\", \"m\", \"n\", \"o\", \"p\", \"q\", \"r\", \"s\", \"t\",\n\t\t\"u\", \"v\", \"w\", \"x\", \"y\", \"z\",\n\t\t\"aa\", \"ab\", \"ac\",\n\t}\n\n\tfor i, want := range expected {\n\t\tgot := gen.Next()\n\t\tif got != want {\n\t\t\tt.Errorf(\"Position %d: got %q, want %q\", i, got, want)\n\t\t}\n\t}\n}\n\nfunc TestIDGenerator_LongSequence(t *testing.T) {\n\tgen := newIDGenerator()\n\n\t// Generate 702 names (26 + 26*26) to test rollover to \"aaa\"\n\tfor i := 0; i < 702; i++ {\n\t\tgen.Next()\n\t}\n\n\t// Next should be \"aaa\"\n\tgot := gen.Next()\n\tif got != \"aaa\" {\n\t\tt.Errorf(\"After 702 names, expected 'aaa', got %q\", got)\n\t}\n}\n"
  },
  {
    "path": "pkg/color/color.go",
    "content": "package color\n\nimport (\n\t\"fmt\"\n\t\"image/color\"\n)\n\n// Type indicates how to interpret the color.\ntype Type uint8\n\n// Color represents a terminal color.\ntype Color struct {\n\tType  Type\n\tIndex uint8      // For ANSI/Extended (0-255) colors\n\tRGB   color.RGBA // For TrueColor colors\n}\n\nconst (\n\tDefault Type = iota\n\tANSI\n\tExtended\n\tTrueColor\n)\n\nfunc FromANSI(index uint8) Color {\n\treturn Color{Type: ANSI, Index: index}\n}\n\nfunc FromExtended(index uint8) Color {\n\treturn Color{Type: Extended, Index: index}\n}\n\nfunc FromRGB(r, g, b uint8) Color {\n\treturn Color{Type: TrueColor, RGB: color.RGBA{R: r, G: g, B: b, A: 255}}\n}\n\n// ToRGBA converts the Color to an RGBA value using the palette.\nfunc (c Color) ToRGBA(palette *Palette) color.RGBA {\n\tswitch c.Type {\n\tcase ANSI, Extended:\n\t\treturn palette.At(c.Index)\n\tcase TrueColor:\n\t\treturn c.RGB\n\tcase Default:\n\t\treturn color.RGBA{0, 0, 0, 0} // Transparent\n\tdefault:\n\t\treturn color.RGBA{0, 0, 0, 0} // Transparent for unknown types\n\t}\n}\n\n// ToHex returns the color as a hex string (e.g., \"#RRGGBB\").\nfunc (c Color) ToHex(palette *Palette) string {\n\trgba := c.ToRGBA(palette)\n\treturn RGBAtoHex(rgba)\n}\n\nfunc RGBAtoHex(rgba color.RGBA) string {\n\treturn fmt.Sprintf(\"#%02X%02X%02X\", rgba.R, rgba.G, rgba.B)\n}\n"
  },
  {
    "path": "pkg/color/colors.go",
    "content": "// Code generated by go generate; DO NOT EDIT.\n// This file was generated by robots at\n// 2022-03-12 13:34:58.775992569 +0100 CET m=+0.003176029\npackage color\n\nvar colors = []string{\n\t// ANSI colors\n\t0:  \"#000000\",\n\t1:  \"#cd0000\",\n\t2:  \"#00cd00\",\n\t3:  \"#cdcd00\",\n\t4:  \"#0000ee\",\n\t5:  \"#cd00cd\",\n\t6:  \"#00cdcd\",\n\t7:  \"#e5e5e5\",\n\t8:  \"#7f7f7f\",\n\t9:  \"#ff0000\",\n\t10: \"#00ff00\",\n\t11: \"#ffff00\",\n\t12: \"#5c5cff\",\n\t13: \"#ff00ff\",\n\t14: \"#00ffff\",\n\t15: \"#ffffff\",\n\n\t// XTERM colors\n\t16:  \"#000000\",\n\t17:  \"#00005f\",\n\t18:  \"#000087\",\n\t19:  \"#0000af\",\n\t20:  \"#0000d7\",\n\t21:  \"#0000ff\",\n\t22:  \"#005f00\",\n\t23:  \"#005f5f\",\n\t24:  \"#005f87\",\n\t25:  \"#005faf\",\n\t26:  \"#005fd7\",\n\t27:  \"#005fff\",\n\t28:  \"#008700\",\n\t29:  \"#00875f\",\n\t30:  \"#008787\",\n\t31:  \"#0087af\",\n\t32:  \"#0087d7\",\n\t33:  \"#0087ff\",\n\t34:  \"#00af00\",\n\t35:  \"#00af5f\",\n\t36:  \"#00af87\",\n\t37:  \"#00afaf\",\n\t38:  \"#00afd7\",\n\t39:  \"#00afff\",\n\t40:  \"#00d700\",\n\t41:  \"#00d75f\",\n\t42:  \"#00d787\",\n\t43:  \"#00d7af\",\n\t44:  \"#00d7d7\",\n\t45:  \"#00d7ff\",\n\t46:  \"#00ff00\",\n\t47:  \"#00ff5f\",\n\t48:  \"#00ff87\",\n\t49:  \"#00ffaf\",\n\t50:  \"#00ffd7\",\n\t51:  \"#00ffff\",\n\t52:  \"#5f0000\",\n\t53:  \"#5f005f\",\n\t54:  \"#5f0087\",\n\t55:  \"#5f00af\",\n\t56:  \"#5f00d7\",\n\t57:  \"#5f00ff\",\n\t58:  \"#5f5f00\",\n\t59:  \"#5f5f5f\",\n\t60:  \"#5f5f87\",\n\t61:  \"#5f5faf\",\n\t62:  \"#5f5fd7\",\n\t63:  \"#5f5fff\",\n\t64:  \"#5f8700\",\n\t65:  \"#5f875f\",\n\t66:  \"#5f8787\",\n\t67:  \"#5f87af\",\n\t68:  \"#5f87d7\",\n\t69:  \"#5f87ff\",\n\t70:  \"#5faf00\",\n\t71:  \"#5faf5f\",\n\t72:  \"#5faf87\",\n\t73:  \"#5fafaf\",\n\t74:  \"#5fafd7\",\n\t75:  \"#5fafff\",\n\t76:  \"#5fd700\",\n\t77:  \"#5fd75f\",\n\t78:  \"#5fd787\",\n\t79:  \"#5fd7af\",\n\t80:  \"#5fd7d7\",\n\t81:  \"#5fd7ff\",\n\t82:  \"#5fff00\",\n\t83:  \"#5fff5f\",\n\t84:  \"#5fff87\",\n\t85:  \"#5fffaf\",\n\t86:  \"#5fffd7\",\n\t87:  \"#5fffff\",\n\t88:  \"#870000\",\n\t89:  \"#87005f\",\n\t90:  \"#870087\",\n\t91:  \"#8700af\",\n\t92:  \"#8700d7\",\n\t93:  \"#8700ff\",\n\t94:  \"#875f00\",\n\t95:  \"#875f5f\",\n\t96:  \"#875f87\",\n\t97:  \"#875faf\",\n\t98:  \"#875fd7\",\n\t99:  \"#875fff\",\n\t100: \"#878700\",\n\t101: \"#87875f\",\n\t102: \"#878787\",\n\t103: \"#8787af\",\n\t104: \"#8787d7\",\n\t105: \"#8787ff\",\n\t106: \"#87af00\",\n\t107: \"#87af5f\",\n\t108: \"#87af87\",\n\t109: \"#87afaf\",\n\t110: \"#87afd7\",\n\t111: \"#87afff\",\n\t112: \"#87d700\",\n\t113: \"#87d75f\",\n\t114: \"#87d787\",\n\t115: \"#87d7af\",\n\t116: \"#87d7d7\",\n\t117: \"#87d7ff\",\n\t118: \"#87ff00\",\n\t119: \"#87ff5f\",\n\t120: \"#87ff87\",\n\t121: \"#87ffaf\",\n\t122: \"#87ffd7\",\n\t123: \"#87ffff\",\n\t124: \"#af0000\",\n\t125: \"#af005f\",\n\t126: \"#af0087\",\n\t127: \"#af00af\",\n\t128: \"#af00d7\",\n\t129: \"#af00ff\",\n\t130: \"#af5f00\",\n\t131: \"#af5f5f\",\n\t132: \"#af5f87\",\n\t133: \"#af5faf\",\n\t134: \"#af5fd7\",\n\t135: \"#af5fff\",\n\t136: \"#af8700\",\n\t137: \"#af875f\",\n\t138: \"#af8787\",\n\t139: \"#af87af\",\n\t140: \"#af87d7\",\n\t141: \"#af87ff\",\n\t142: \"#afaf00\",\n\t143: \"#afaf5f\",\n\t144: \"#afaf87\",\n\t145: \"#afafaf\",\n\t146: \"#afafd7\",\n\t147: \"#afafff\",\n\t148: \"#afd700\",\n\t149: \"#afd75f\",\n\t150: \"#afd787\",\n\t151: \"#afd7af\",\n\t152: \"#afd7d7\",\n\t153: \"#afd7ff\",\n\t154: \"#afff00\",\n\t155: \"#afff5f\",\n\t156: \"#afff87\",\n\t157: \"#afffaf\",\n\t158: \"#afffd7\",\n\t159: \"#afffff\",\n\t160: \"#d70000\",\n\t161: \"#d7005f\",\n\t162: \"#d70087\",\n\t163: \"#d700af\",\n\t164: \"#d700d7\",\n\t165: \"#d700ff\",\n\t166: \"#d75f00\",\n\t167: \"#d75f5f\",\n\t168: \"#d75f87\",\n\t169: \"#d75faf\",\n\t170: \"#d75fd7\",\n\t171: \"#d75fff\",\n\t172: \"#d78700\",\n\t173: \"#d7875f\",\n\t174: \"#d78787\",\n\t175: \"#d787af\",\n\t176: \"#d787d7\",\n\t177: \"#d787ff\",\n\t178: \"#d7af00\",\n\t179: \"#d7af5f\",\n\t180: \"#d7af87\",\n\t181: \"#d7afaf\",\n\t182: \"#d7afd7\",\n\t183: \"#d7afff\",\n\t184: \"#d7d700\",\n\t185: \"#d7d75f\",\n\t186: \"#d7d787\",\n\t187: \"#d7d7af\",\n\t188: \"#d7d7d7\",\n\t189: \"#d7d7ff\",\n\t190: \"#d7ff00\",\n\t191: \"#d7ff5f\",\n\t192: \"#d7ff87\",\n\t193: \"#d7ffaf\",\n\t194: \"#d7ffd7\",\n\t195: \"#d7ffff\",\n\t196: \"#ff0000\",\n\t197: \"#ff005f\",\n\t198: \"#ff0087\",\n\t199: \"#ff00af\",\n\t200: \"#ff00d7\",\n\t201: \"#ff00ff\",\n\t202: \"#ff5f00\",\n\t203: \"#ff5f5f\",\n\t204: \"#ff5f87\",\n\t205: \"#ff5faf\",\n\t206: \"#ff5fd7\",\n\t207: \"#ff5fff\",\n\t208: \"#ff8700\",\n\t209: \"#ff875f\",\n\t210: \"#ff8787\",\n\t211: \"#ff87af\",\n\t212: \"#ff87d7\",\n\t213: \"#ff87ff\",\n\t214: \"#ffaf00\",\n\t215: \"#ffaf5f\",\n\t216: \"#ffaf87\",\n\t217: \"#ffafaf\",\n\t218: \"#ffafd7\",\n\t219: \"#ffafff\",\n\t220: \"#ffd700\",\n\t221: \"#ffd75f\",\n\t222: \"#ffd787\",\n\t223: \"#ffd7af\",\n\t224: \"#ffd7d7\",\n\t225: \"#ffd7ff\",\n\t226: \"#ffff00\",\n\t227: \"#ffff5f\",\n\t228: \"#ffff87\",\n\t229: \"#ffffaf\",\n\t230: \"#ffffd7\",\n\t231: \"#ffffff\",\n\t232: \"#080808\",\n\t233: \"#121212\",\n\t234: \"#1c1c1c\",\n\t235: \"#262626\",\n\t236: \"#303030\",\n\t237: \"#3a3a3a\",\n\t238: \"#444444\",\n\t239: \"#4e4e4e\",\n\t240: \"#585858\",\n\t241: \"#626262\",\n\t242: \"#6c6c6c\",\n\t243: \"#767676\",\n\t244: \"#808080\",\n\t245: \"#8a8a8a\",\n\t246: \"#949494\",\n\t247: \"#9e9e9e\",\n\t248: \"#a8a8a8\",\n\t249: \"#b2b2b2\",\n\t250: \"#bcbcbc\",\n\t251: \"#c6c6c6\",\n\t252: \"#d0d0d0\",\n\t253: \"#dadada\",\n\t254: \"#e4e4e4\",\n\t255: \"#eeeeee\",\n}\n"
  },
  {
    "path": "pkg/color/colorsgen.go",
    "content": "// The following directive is necessary to make the package coherent:\n\n//go:build ignore\n// +build ignore\n\n// This program generates xtermcolors.go. It can be invoked by running\n// go generate\npackage main\n\nimport (\n\t\"fmt\"\n\t\"image/color\"\n\t\"log\"\n\t\"os\"\n\t\"strconv\"\n\t\"text/template\"\n\t\"time\"\n)\n\nvar customFuncs = template.FuncMap{\n\t\"inc\": func(i int) int {\n\t\treturn i + 16\n\t},\n\t\"hex\": func(c color.Color) string {\n\t\tr, g, b, _ := c.RGBA()\n\t\treturn fmt.Sprintf(\"#%02x%02x%02x\", uint8(r), uint8(g), uint8(b))\n\t},\n\t\"colon\": func(i int) string {\n\t\treturn strconv.Itoa(i) + \":\"\n\t},\n}\n\nvar packageTemplate = template.Must(template.New(\"\").Funcs(customFuncs).Parse(`// Code generated by go generate; DO NOT EDIT.\n// This file was generated by robots at\n// {{ .Timestamp }}\npackage color\n\nvar colors = []string{\n\t// ANSI colors\n{{- range $index, $element := .AnsiColors }}\n\t{{ printf \"%-4s%q\" (colon $index) (hex $element)}},\n{{- end }}\n\n\t// XTERM colors\n{{- range $index, $element := .XtermColors }}\n\t{{ printf \"%-5s%q\" (colon (inc $index)) $element}},\n{{- end }}\n}\n`))\n\nvar ansiColors = []color.Color{\n\tcolor.Black,                              // Black\n\tcolor.RGBA{0x00CD, 0x00, 0x00, 0x00},     // Red\n\tcolor.RGBA{0x00, 0x00CD, 0x00, 0x00},     // Green\n\tcolor.RGBA{0x00CD, 0x00CD, 0x00, 0x00},   // Yellow\n\tcolor.RGBA{0x00, 0x00, 0x00EE, 0x00},     // Blue\n\tcolor.RGBA{0x00CD, 0x00, 0x00CD, 0x00},   // Magent\n\tcolor.RGBA{0x00, 0x00CD, 0x00CD, 0x00},   // Cyan\n\tcolor.RGBA{0x00E5, 0x00E5, 0x00E5, 0x00}, // Grey\n\n\tcolor.RGBA{0x007F, 0x007F, 0x007F, 0x00}, // Dark Grey\n\tcolor.RGBA{0x00FF, 0x00, 0x00, 0x00},     // Light Red\n\tcolor.RGBA{0x00, 0x00FF, 0x00, 0x00},     // Light Green\n\tcolor.RGBA{0x00FF, 0x00FF, 0x00, 0x00},   // Light Yellow\n\tcolor.RGBA{0x005C, 0x005C, 0x00FF, 0x00}, // Light Blue\n\tcolor.RGBA{0x00FF, 0x00, 0x00FF, 0x00},   // Light Magent\n\tcolor.RGBA{0x00, 0x00FF, 0x00FF, 0x00},   // Light Cyan\n\tcolor.White,                              // White\n}\n\nfunc main() {\n\tf, err := os.Create(\"colors.go\")\n\tif err != nil {\n\t\tlog.Fatal(err)\n\t}\n\tdefer f.Close()\n\n\tcolored := []int{0}\n\tfor i := 95; i < 256; i += 40 {\n\t\tcolored = append(colored, i)\n\t}\n\n\tcolorPalette := []string{}\n\n\tfor _, r := range colored {\n\t\tfor _, g := range colored {\n\t\t\tfor _, b := range colored {\n\t\t\t\tcolorPalette = append(colorPalette, fmt.Sprintf(\"#%02x%02x%02x\", r, g, b))\n\t\t\t}\n\t\t}\n\t}\n\n\tgrayscale := []int{}\n\tfor i := 8; i < 240; i += 10 {\n\t\tgrayscale = append(grayscale, i)\n\t}\n\n\tgrayscalePalette := []string{}\n\tfor _, rgb := range grayscale {\n\t\tgrayscalePalette = append(grayscalePalette, fmt.Sprintf(\"#%02x%02x%02x\", rgb, rgb, rgb))\n\t}\n\n\tcolors := append(colorPalette, grayscalePalette...)\n\n\tpackageTemplate.Execute(f, struct {\n\t\tTimestamp   time.Time\n\t\tXtermColors []string\n\t\tAnsiColors  []color.Color\n\t}{\n\t\tTimestamp:   time.Now(),\n\t\tXtermColors: colors,\n\t\tAnsiColors:  ansiColors,\n\t})\n}\n"
  },
  {
    "path": "pkg/color/palette.go",
    "content": "package color\n\nimport \"image/color\"\n\n// Palette holds the 256 terminal colors.\ntype Palette [256]color.RGBA\n\n// At returns the color at the given index.\nfunc (p *Palette) At(index uint8) color.RGBA {\n\treturn p[index]\n}\n\n// Standard returns the standard xterm 256-color palette.\nfunc Standard() Palette {\n\tpalette := Palette{\n\t\t// 0-15: Standard colors\n\t\t{0, 0, 0, 255},       // 0: Black\n\t\t{128, 0, 0, 255},     // 1: Red\n\t\t{0, 128, 0, 255},     // 2: Green\n\t\t{128, 128, 0, 255},   // 3: Yellow\n\t\t{0, 0, 128, 255},     // 4: Blue\n\t\t{128, 0, 128, 255},   // 5: Magenta\n\t\t{0, 128, 128, 255},   // 6: Cyan\n\t\t{192, 192, 192, 255}, // 7: White\n\t\t{128, 128, 128, 255}, // 8: Bright Black (Gray)\n\t\t{255, 0, 0, 255},     // 9: Bright Red\n\t\t{0, 255, 0, 255},     // 10: Bright Green\n\t\t{255, 255, 0, 255},   // 11: Bright Yellow\n\t\t{0, 0, 255, 255},     // 12: Bright Blue\n\t\t{255, 0, 255, 255},   // 13: Bright Magenta\n\t\t{0, 255, 255, 255},   // 14: Bright Cyan\n\t\t{255, 255, 255, 255}, // 15: Bright White\n\t}\n\t// 16-231: 6x6x6 Color Cube\n\tcubeValue := func(i int) uint8 {\n\t\tif i == 0 {\n\t\t\treturn 0\n\t\t}\n\t\treturn uint8(55 + i*40) //nolint:gosec // i is in range [1,5], result fits in uint8\n\t}\n\tidx := 16\n\tfor r := range 6 {\n\t\tfor g := range 6 {\n\t\t\tfor b := range 6 {\n\t\t\t\tpalette[idx] = color.RGBA{\n\t\t\t\t\tR: cubeValue(r),\n\t\t\t\t\tG: cubeValue(g),\n\t\t\t\t\tB: cubeValue(b),\n\t\t\t\t\tA: 255,\n\t\t\t\t}\n\t\t\t\tidx++\n\t\t\t}\n\t\t}\n\t}\n\t// 232-255: Grayscale Ramp\n\tfor i := range 24 {\n\t\tgray := uint8(8 + i*10) //nolint:gosec // i is in range [0,23], result fits in uint8\n\t\tpalette[idx] = color.RGBA{R: gray, G: gray, B: gray, A: 255}\n\t\tidx++\n\t}\n\treturn palette\n}\n"
  },
  {
    "path": "pkg/ir/ir.go",
    "content": "// Package ir provides an intermediate representation for terminal recordings.\n// It decouples terminal emulation from rendering, allowing multiple output\n// formats (SVG, GIF, etc.) to consume the same pre-processed frame data.\npackage ir\n\nimport (\n\t\"time\"\n\n\t\"github.com/mrmarble/termsvg/pkg/color\"\n)\n\n// Recording represents the complete intermediate representation of a terminal recording.\n// This is the main output of processing and input for all renderers.\ntype Recording struct {\n\t// Metadata from the original cast\n\tWidth    int\n\tHeight   int\n\tDuration time.Duration\n\tTitle    string\n\n\t// Processed data\n\tFrames []Frame\n\tColors *color.Catalog\n\n\t// Statistics for renderer optimization\n\tStats Stats\n}\n\n// Stats holds aggregate information about the recording.\n// Renderers can use this to skip generating unused CSS classes.\ntype Stats struct {\n\tTotalFrames   int\n\tUniqueColors  int\n\tMaxRunsPerRow int // Helps renderers pre-allocate\n\tHasBold       bool\n\tHasItalic     bool\n\tHasUnderline  bool\n\tHasDim        bool\n\tHasTrueColor  bool\n}\n\n// Cursor represents the cursor state at a point in time.\ntype Cursor struct {\n\tCol     int\n\tRow     int\n\tVisible bool\n}\n\n// Frame represents terminal state at a specific point in time.\ntype Frame struct {\n\t// Time is the absolute timestamp from recording start\n\tTime time.Duration\n\n\t// Delay is the time since the previous frame (useful for animation)\n\tDelay time.Duration\n\n\t// Index is the frame number (0-indexed)\n\tIndex int\n\n\t// Rows contains the processed row data with text runs\n\tRows []Row\n\n\t// Cursor holds the cursor position and visibility\n\tCursor Cursor\n}\n\n// Row represents a single line of terminal output.\ntype Row struct {\n\t// Y is the row index (0-indexed)\n\tY int\n\n\t// Runs are groups of consecutive cells with the same attributes\n\tRuns []TextRun\n}\n\n// TextRun is a group of consecutive characters sharing the same attributes.\n// This is a key optimization - instead of per-cell data, cells are grouped.\ntype TextRun struct {\n\t// Text is the concatenated characters in this run\n\tText string\n\n\t// StartCol is the starting column (0-indexed)\n\tStartCol int\n\n\t// Attrs holds the visual attributes for this run\n\tAttrs CellAttrs\n}\n\n// CellAttrs holds the visual attributes for a cell or run.\ntype CellAttrs struct {\n\t// FG and BG are color catalog IDs (not raw colors).\n\t// Using IDs enables efficient CSS class generation and color deduplication.\n\tFG color.ID\n\tBG color.ID\n\n\t// Text styling flags\n\tBold      bool\n\tItalic    bool\n\tUnderline bool\n\tDim       bool\n}\n"
  },
  {
    "path": "pkg/ir/ir_test.go",
    "content": "package ir\n\nimport (\n\t\"testing\"\n\t\"time\"\n\n\t\"github.com/mrmarble/termsvg/pkg/asciicast\"\n)\n\nfunc TestProcessor_Process(t *testing.T) {\n\tcast := &asciicast.Cast{\n\t\tHeader: asciicast.Header{\n\t\t\tVersion: 2,\n\t\t\tWidth:   80,\n\t\t\tHeight:  24,\n\t\t\tTitle:   \"Test Recording\",\n\t\t},\n\t\tEvents: []asciicast.Event{\n\t\t\t{Time: 0.0, EventType: asciicast.Output, EventData: \"Hello\"},\n\t\t\t{Time: 0.5, EventType: asciicast.Output, EventData: \" World\"},\n\t\t\t{Time: 1.0, EventType: asciicast.Output, EventData: \"!\"},\n\t\t},\n\t}\n\n\tprocessor := NewProcessor(DefaultProcessorConfig())\n\trecording, err := processor.Process(cast)\n\tif err != nil {\n\t\tt.Fatalf(\"Process failed: %v\", err)\n\t}\n\n\t// Check metadata\n\tif recording.Width != 80 {\n\t\tt.Errorf(\"Width should be 80, got %d\", recording.Width)\n\t}\n\tif recording.Height != 24 {\n\t\tt.Errorf(\"Height should be 24, got %d\", recording.Height)\n\t}\n\tif recording.Title != \"Test Recording\" {\n\t\tt.Errorf(\"Title should be 'Test Recording', got %q\", recording.Title)\n\t}\n\n\t// Check frames\n\tif len(recording.Frames) != 3 {\n\t\tt.Errorf(\"Should have 3 frames, got %d\", len(recording.Frames))\n\t}\n\n\t// Check frame timing\n\tif recording.Frames[0].Time != 0 {\n\t\tt.Errorf(\"First frame time should be 0, got %v\", recording.Frames[0].Time)\n\t}\n\tif recording.Frames[1].Time != 500*time.Millisecond {\n\t\tt.Errorf(\"Second frame time should be 500ms, got %v\", recording.Frames[1].Time)\n\t}\n\tif recording.Frames[2].Time != 1*time.Second {\n\t\tt.Errorf(\"Third frame time should be 1s, got %v\", recording.Frames[2].Time)\n\t}\n\n\t// Check stats\n\tif recording.Stats.TotalFrames != 3 {\n\t\tt.Errorf(\"Stats.TotalFrames should be 3, got %d\", recording.Stats.TotalFrames)\n\t}\n}\n\nfunc TestProcessor_Compression(t *testing.T) {\n\tcast := &asciicast.Cast{\n\t\tHeader: asciicast.Header{\n\t\t\tVersion: 2,\n\t\t\tWidth:   80,\n\t\t\tHeight:  24,\n\t\t},\n\t\tEvents: []asciicast.Event{\n\t\t\t{Time: 0.0, EventType: asciicast.Output, EventData: \"A\"},\n\t\t\t{Time: 0.0, EventType: asciicast.Output, EventData: \"B\"},\n\t\t\t{Time: 0.0, EventType: asciicast.Output, EventData: \"C\"},\n\t\t\t{Time: 1.0, EventType: asciicast.Output, EventData: \"D\"},\n\t\t},\n\t}\n\n\tconfig := DefaultProcessorConfig()\n\tconfig.Compress = true\n\tprocessor := NewProcessor(config)\n\n\trecording, err := processor.Process(cast)\n\tif err != nil {\n\t\tt.Fatalf(\"Process failed: %v\", err)\n\t}\n\n\t// Should compress to 2 frames (ABC at 0.0, D at 1.0)\n\tif len(recording.Frames) != 2 {\n\t\tt.Errorf(\"Should have 2 compressed frames, got %d\", len(recording.Frames))\n\t}\n}\n\nfunc TestProcessor_SpeedAdjustment(t *testing.T) {\n\tcast := &asciicast.Cast{\n\t\tHeader: asciicast.Header{\n\t\t\tVersion: 2,\n\t\t\tWidth:   80,\n\t\t\tHeight:  24,\n\t\t},\n\t\tEvents: []asciicast.Event{\n\t\t\t{Time: 0.0, EventType: asciicast.Output, EventData: \"A\"},\n\t\t\t{Time: 2.0, EventType: asciicast.Output, EventData: \"B\"},\n\t\t},\n\t}\n\n\tconfig := DefaultProcessorConfig()\n\tconfig.Speed = 2.0 // 2x speed\n\tprocessor := NewProcessor(config)\n\n\trecording, err := processor.Process(cast)\n\tif err != nil {\n\t\tt.Fatalf(\"Process failed: %v\", err)\n\t}\n\n\t// At 2x speed, 2.0s becomes 1.0s\n\tif recording.Frames[1].Time != 1*time.Second {\n\t\tt.Errorf(\"At 2x speed, 2s should become 1s, got %v\", recording.Frames[1].Time)\n\t}\n}\n\nfunc TestProcessor_IdleTimeCap(t *testing.T) {\n\tcast := &asciicast.Cast{\n\t\tHeader: asciicast.Header{\n\t\t\tVersion: 2,\n\t\t\tWidth:   80,\n\t\t\tHeight:  24,\n\t\t},\n\t\tEvents: []asciicast.Event{\n\t\t\t{Time: 0.0, EventType: asciicast.Output, EventData: \"A\"},\n\t\t\t{Time: 10.0, EventType: asciicast.Output, EventData: \"B\"}, // 10s gap\n\t\t\t{Time: 11.0, EventType: asciicast.Output, EventData: \"C\"}, // 1s gap\n\t\t},\n\t}\n\n\tconfig := DefaultProcessorConfig()\n\tconfig.IdleTimeLimit = 2 * time.Second // Cap to 2s\n\tprocessor := NewProcessor(config)\n\n\trecording, err := processor.Process(cast)\n\tif err != nil {\n\t\tt.Fatalf(\"Process failed: %v\", err)\n\t}\n\n\t// First gap should be capped from 10s to 2s\n\t// Second frame should be at 2s (not 10s)\n\tif recording.Frames[1].Time != 2*time.Second {\n\t\tt.Errorf(\"Second frame should be at 2s after capping, got %v\", recording.Frames[1].Time)\n\t}\n\n\t// Third frame should be at 3s (2s + 1s)\n\tif recording.Frames[2].Time != 3*time.Second {\n\t\tt.Errorf(\"Third frame should be at 3s, got %v\", recording.Frames[2].Time)\n\t}\n}\n\nfunc TestTextRunGrouping(t *testing.T) {\n\tcast := &asciicast.Cast{\n\t\tHeader: asciicast.Header{\n\t\t\tVersion: 2,\n\t\t\tWidth:   10,\n\t\t\tHeight:  1,\n\t\t},\n\t\tEvents: []asciicast.Event{\n\t\t\t// Write some text - all same attributes, should be one run\n\t\t\t{Time: 0.0, EventType: asciicast.Output, EventData: \"Hello\"},\n\t\t},\n\t}\n\n\tprocessor := NewProcessor(DefaultProcessorConfig())\n\trecording, err := processor.Process(cast)\n\tif err != nil {\n\t\tt.Fatalf(\"Process failed: %v\", err)\n\t}\n\n\t// First row should have runs that group consecutive same-attribute cells\n\trow := recording.Frames[0].Rows[0]\n\tif len(row.Runs) == 0 {\n\t\tt.Fatal(\"Should have at least one run\")\n\t}\n\n\t// The \"Hello\" text should be in the first run (or grouped somehow)\n\tfoundHello := false\n\tfor _, run := range row.Runs {\n\t\tif len(run.Text) >= 5 && run.Text[:5] == \"Hello\" {\n\t\t\tfoundHello = true\n\t\t\tbreak\n\t\t}\n\t}\n\tif !foundHello {\n\t\tt.Errorf(\"Should find 'Hello' in first run, got runs: %+v\", row.Runs)\n\t}\n}\n\nfunc TestAttrsEqual(t *testing.T) {\n\ta := CellAttrs{FG: 1, BG: 2, Bold: true}\n\tb := CellAttrs{FG: 1, BG: 2, Bold: true}\n\tc := CellAttrs{FG: 1, BG: 2, Bold: false}\n\n\tif !attrsEqual(a, b) {\n\t\tt.Error(\"Same attrs should be equal\")\n\t}\n\tif attrsEqual(a, c) {\n\t\tt.Error(\"Different attrs should not be equal\")\n\t}\n}\n"
  },
  {
    "path": "pkg/ir/processor.go",
    "content": "package ir\n\nimport (\n\t\"time\"\n\n\t\"github.com/mrmarble/termsvg/pkg/asciicast\"\n\t\"github.com/mrmarble/termsvg/pkg/color\"\n\t\"github.com/mrmarble/termsvg/pkg/progress\"\n\t\"github.com/mrmarble/termsvg/pkg/terminal\"\n\t\"github.com/mrmarble/termsvg/pkg/theme\"\n)\n\n// ProcessorConfig holds options for IR generation.\ntype ProcessorConfig struct {\n\tTheme         theme.Theme\n\tIdleTimeLimit time.Duration          // Cap idle time (0 = no cap)\n\tSpeed         float64                // Playback speed multiplier (1.0 = normal)\n\tCompress      bool                   // Merge events with same timestamp\n\tProgressCh    chan<- progress.Update // Channel for progress updates (optional)\n}\n\n// Processor transforms an asciicast into IR.\ntype Processor struct {\n\tconfig ProcessorConfig\n}\n\n// DefaultProcessorConfig returns sensible defaults.\nfunc DefaultProcessorConfig() *ProcessorConfig {\n\treturn &ProcessorConfig{\n\t\tTheme:         theme.Default(),\n\t\tIdleTimeLimit: 0,\n\t\tSpeed:         1.0,\n\t\tCompress:      true,\n\t}\n}\n\n// NewProcessor creates a new IR processor.\nfunc NewProcessor(config *ProcessorConfig) *Processor {\n\treturn &Processor{config: *config}\n}\n\n// Process transforms a Cast into a Recording (the IR).\nfunc (p *Processor) Process(cast *asciicast.Cast) (*Recording, error) {\n\t// 1. Pre-process the cast (compress, adjust timing)\n\tevents := p.preprocessEvents(cast)\n\ttotalEvents := len(events)\n\n\t// Send initial progress\n\tif p.config.ProgressCh != nil {\n\t\tp.config.ProgressCh <- progress.Update{\n\t\t\tPhase:   \"IR Processing\",\n\t\t\tCurrent: 0,\n\t\t\tTotal:   totalEvents,\n\t\t}\n\t}\n\n\t// 2. Initialize terminal emulator\n\tterm := terminal.New(cast.Header.Width, cast.Header.Height)\n\n\t// 3. Initialize color catalog with theme defaults\n\tcatalog := color.NewCatalog(p.config.Theme.Foreground, p.config.Theme.Background)\n\n\t// 4. Process each event into a frame\n\tframes := make([]Frame, 0, len(events))\n\tstats := Stats{}\n\n\tvar prevTime time.Duration\n\tfor i, event := range events {\n\t\t// Write to terminal emulator\n\t\t_, _ = term.Write([]byte(event.EventData))\n\n\t\t// Capture frame\n\t\tframeTime := floatSecondsToDuration(event.Time)\n\t\tframe := p.captureFrame(term, catalog, i, frameTime, frameTime-prevTime, &stats)\n\t\tframes = append(frames, frame)\n\n\t\t// Send progress update every 10 events or on last event\n\t\tif p.config.ProgressCh != nil && (i%10 == 0 || i == totalEvents-1) {\n\t\t\tp.config.ProgressCh <- progress.Update{\n\t\t\t\tPhase:   \"IR Processing\",\n\t\t\t\tCurrent: i + 1,\n\t\t\t\tTotal:   totalEvents,\n\t\t\t}\n\t\t}\n\n\t\tprevTime = frameTime\n\t}\n\n\t// 5. Deduplicate consecutive identical frames\n\tframes = deduplicateFrames(frames)\n\n\t// 6. Finalize statistics\n\tstats.TotalFrames = len(frames)\n\tstats.UniqueColors = catalog.Count()\n\n\t// 6. Calculate duration\n\tvar duration time.Duration\n\tif len(frames) > 0 {\n\t\tduration = frames[len(frames)-1].Time\n\t}\n\n\treturn &Recording{\n\t\tWidth:    cast.Header.Width,\n\t\tHeight:   cast.Header.Height,\n\t\tDuration: duration,\n\t\tTitle:    cast.Header.Title,\n\t\tFrames:   frames,\n\t\tColors:   catalog,\n\t\tStats:    stats,\n\t}, nil\n}\n\n// captureFrame extracts the current terminal state into a Frame.\nfunc (p *Processor) captureFrame(\n\tterm *terminal.Emulator,\n\tcatalog *color.Catalog,\n\tindex int,\n\tabsTime, delay time.Duration,\n\tstats *Stats,\n) Frame {\n\trows := make([]Row, term.Height())\n\n\tfor y := 0; y < term.Height(); y++ {\n\t\trows[y] = p.captureRow(term, catalog, y, stats)\n\t}\n\n\t// Capture cursor state\n\tcursorCol, cursorRow := term.Cursor()\n\tcursor := Cursor{\n\t\tCol:     cursorCol,\n\t\tRow:     cursorRow,\n\t\tVisible: term.CursorVisible(),\n\t}\n\n\treturn Frame{\n\t\tTime:   absTime,\n\t\tDelay:  delay,\n\t\tIndex:  index,\n\t\tRows:   rows,\n\t\tCursor: cursor,\n\t}\n}\n\n// captureRow extracts a single row, grouping cells into TextRuns.\nfunc (p *Processor) captureRow(\n\tterm *terminal.Emulator,\n\tcatalog *color.Catalog,\n\ty int,\n\tstats *Stats,\n) Row {\n\truns := make([]TextRun, 0, 8) // Pre-allocate for typical case\n\n\ttype runBuilder struct {\n\t\tchars  []rune\n\t\tstartX int\n\t\tattrs  CellAttrs\n\t}\n\n\tvar current *runBuilder\n\n\tfor x := 0; x < term.Width(); x++ {\n\t\tcell := term.Cell(x, y)\n\t\tattrs := p.cellToAttrs(cell, catalog, stats)\n\n\t\t// Check if we can extend the current run\n\t\tif current != nil && attrsEqual(current.attrs, attrs) {\n\t\t\tcurrent.chars = append(current.chars, cell.Char)\n\t\t} else {\n\t\t\t// Finalize the previous run if exists\n\t\t\tif current != nil {\n\t\t\t\truns = append(runs, TextRun{\n\t\t\t\t\tText:     string(current.chars),\n\t\t\t\t\tStartCol: current.startX,\n\t\t\t\t\tAttrs:    current.attrs,\n\t\t\t\t})\n\t\t\t}\n\t\t\t// Start a new run\n\t\t\tcurrent = &runBuilder{\n\t\t\t\tchars:  []rune{cell.Char},\n\t\t\t\tstartX: x,\n\t\t\t\tattrs:  attrs,\n\t\t\t}\n\t\t}\n\t}\n\n\t// Don't forget the last run\n\tif current != nil {\n\t\truns = append(runs, TextRun{\n\t\t\tText:     string(current.chars),\n\t\t\tStartCol: current.startX,\n\t\t\tAttrs:    current.attrs,\n\t\t})\n\t}\n\n\t// Track statistics\n\tif len(runs) > stats.MaxRunsPerRow {\n\t\tstats.MaxRunsPerRow = len(runs)\n\t}\n\n\treturn Row{Y: y, Runs: runs}\n}\n\n// cellToAttrs converts a terminal cell to IR attributes.\nfunc (p *Processor) cellToAttrs(\n\tcell terminal.Cell,\n\tcatalog *color.Catalog,\n\tstats *Stats,\n) CellAttrs {\n\t// Register colors and get IDs\n\tfgID := catalog.Register(cell.Foreground, &p.config.Theme.Palette)\n\tbgID := catalog.Register(cell.Background, &p.config.Theme.Palette)\n\n\t// Track attribute usage\n\tif cell.Bold {\n\t\tstats.HasBold = true\n\t}\n\tif cell.Italic {\n\t\tstats.HasItalic = true\n\t}\n\tif cell.Underline {\n\t\tstats.HasUnderline = true\n\t}\n\tif cell.Dim {\n\t\tstats.HasDim = true\n\t}\n\tif cell.Foreground.Type == color.TrueColor || cell.Background.Type == color.TrueColor {\n\t\tstats.HasTrueColor = true\n\t}\n\n\treturn CellAttrs{\n\t\tFG:        fgID,\n\t\tBG:        bgID,\n\t\tBold:      cell.Bold,\n\t\tItalic:    cell.Italic,\n\t\tUnderline: cell.Underline,\n\t\tDim:       cell.Dim,\n\t}\n}\n\n// preprocessEvents applies timing adjustments and compression.\nfunc (p *Processor) preprocessEvents(cast *asciicast.Cast) []asciicast.Event {\n\t// Work with a copy to avoid mutating input\n\tevents := make([]asciicast.Event, len(cast.Events))\n\tcopy(events, cast.Events)\n\n\t// Apply speed adjustment\n\tif p.config.Speed != 1.0 && p.config.Speed > 0 {\n\t\tfor i := range events {\n\t\t\tevents[i].Time /= p.config.Speed\n\t\t}\n\t}\n\n\t// Cap idle time (requires conversion to relative, cap, convert back)\n\tif p.config.IdleTimeLimit > 0 {\n\t\tlimit := p.config.IdleTimeLimit.Seconds()\n\t\tprev := 0.0\n\t\tfor i := range events {\n\t\t\tdelay := events[i].Time - prev\n\t\t\tif delay > limit {\n\t\t\t\t// Reduce by the excess\n\t\t\t\treduction := delay - limit\n\t\t\t\t// Shift this and all subsequent events\n\t\t\t\tfor j := i; j < len(events); j++ {\n\t\t\t\t\tevents[j].Time -= reduction\n\t\t\t\t}\n\t\t\t}\n\t\t\tprev = events[i].Time\n\t\t}\n\t}\n\n\t// Compress events with same timestamp\n\tif p.config.Compress {\n\t\tcompressed := make([]asciicast.Event, 0, len(events))\n\t\tfor i, event := range events {\n\t\t\tif i == 0 {\n\t\t\t\tcompressed = append(compressed, event)\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tlast := &compressed[len(compressed)-1]\n\t\t\tif event.Time == last.Time {\n\t\t\t\tlast.EventData += event.EventData\n\t\t\t} else {\n\t\t\t\tcompressed = append(compressed, event)\n\t\t\t}\n\t\t}\n\t\tevents = compressed\n\t}\n\n\treturn events\n}\n\n// attrsEqual compares two CellAttrs for equality.\nfunc attrsEqual(a, b CellAttrs) bool {\n\treturn a.FG == b.FG &&\n\t\ta.BG == b.BG &&\n\t\ta.Bold == b.Bold &&\n\t\ta.Italic == b.Italic &&\n\t\ta.Underline == b.Underline &&\n\t\ta.Dim == b.Dim\n}\n\nfunc floatSecondsToDuration(seconds float64) time.Duration {\n\treturn time.Duration(seconds * float64(time.Second))\n}\n\n// deduplicateFrames removes consecutive identical frames and consolidates their delays.\n// This optimizes the recording by eliminating redundant frames.\nfunc deduplicateFrames(frames []Frame) []Frame {\n\tif len(frames) <= 1 {\n\t\treturn frames\n\t}\n\n\tdeduped := make([]Frame, 0, len(frames))\n\tvar prevFrame *Frame\n\n\tfor i, frame := range frames {\n\t\tif i == 0 {\n\t\t\t// First frame always kept\n\t\t\tdeduped = append(deduped, frame)\n\t\t\tprevFrame = &deduped[len(deduped)-1]\n\t\t\tcontinue\n\t\t}\n\n\t\t// Check if frame is identical to previous\n\t\tif framesEqual(prevFrame, &frame) {\n\t\t\t// Duplicate: add delay to previous frame\n\t\t\tprevFrame.Delay += frame.Delay\n\t\t\t// Update absolute time to match the duplicate\n\t\t\tprevFrame.Time = frame.Time\n\t\t} else {\n\t\t\t// New unique frame: add it\n\t\t\tdeduped = append(deduped, frame)\n\t\t\tprevFrame = &deduped[len(deduped)-1]\n\t\t}\n\t}\n\n\t// Renumber frame indices to be sequential\n\tfor i := range deduped {\n\t\tdeduped[i].Index = i\n\t}\n\n\treturn deduped\n}\n\n// framesEqual compares two frames for equality (content only, not timing).\nfunc framesEqual(a, b *Frame) bool {\n\t// Compare cursor state\n\tif a.Cursor != b.Cursor {\n\t\treturn false\n\t}\n\n\t// Compare row count\n\tif len(a.Rows) != len(b.Rows) {\n\t\treturn false\n\t}\n\n\t// Compare each row\n\tfor i := range a.Rows {\n\t\tif !rowsEqual(&a.Rows[i], &b.Rows[i]) {\n\t\t\treturn false\n\t\t}\n\t}\n\n\treturn true\n}\n\n// rowsEqual compares two rows for equality.\nfunc rowsEqual(a, b *Row) bool {\n\tif a.Y != b.Y {\n\t\treturn false\n\t}\n\n\tif len(a.Runs) != len(b.Runs) {\n\t\treturn false\n\t}\n\n\tfor i := range a.Runs {\n\t\tif !textRunsEqual(&a.Runs[i], &b.Runs[i]) {\n\t\t\treturn false\n\t\t}\n\t}\n\n\treturn true\n}\n\n// textRunsEqual compares two text runs for equality.\nfunc textRunsEqual(a, b *TextRun) bool {\n\treturn a.Text == b.Text &&\n\t\ta.StartCol == b.StartCol &&\n\t\ta.Attrs == b.Attrs\n}\n"
  },
  {
    "path": "pkg/progress/progress.go",
    "content": "// Package progress provides progress reporting for export operations.\n// It uses channels for thread-safe updates, making it easy to transition\n// to concurrent operations later.\npackage progress\n\nimport (\n\t\"fmt\"\n\t\"os\"\n\n\t\"github.com/schollz/progressbar/v3\"\n)\n\n// Update represents a progress update from a processing phase.\ntype Update struct {\n\tPhase   string // Phase name: \"IR Processing\", \"Rasterizing\", \"Encoding\"\n\tCurrent int    // Current item number (1-indexed)\n\tTotal   int    // Total items in this phase\n}\n\n// Reporter manages progress bars for each phase.\ntype Reporter struct {\n\tupdates      <-chan Update\n\tdone         chan struct{}\n\tcurrentPhase string\n}\n\n// Start begins listening for updates and creating bars for each phase.\nfunc (r *Reporter) Start() {\n\tgo func() {\n\t\tvar currentBar *progressbar.ProgressBar\n\n\t\tfor update := range r.updates {\n\t\t\t// If phase changed, finish the previous bar\n\t\t\tif update.Phase != r.currentPhase {\n\t\t\t\tif currentBar != nil {\n\t\t\t\t\t_ = currentBar.Finish()\n\t\t\t\t\tfmt.Println() // New line after each phase\n\t\t\t\t}\n\t\t\t\tr.currentPhase = update.Phase\n\t\t\t\tcurrentBar = newBar(update.Total, update.Phase)\n\t\t\t}\n\n\t\t\t// Update current bar\n\t\t\tif currentBar != nil {\n\t\t\t\tcurrentBar.Describe(fmt.Sprintf(\"%s... %d/%d\", update.Phase, update.Current, update.Total))\n\t\t\t\t_ = currentBar.Set(update.Current)\n\t\t\t}\n\t\t}\n\n\t\t// Finish the last bar\n\t\tif currentBar != nil {\n\t\t\t_ = currentBar.Finish()\n\t\t\tfmt.Println()\n\t\t}\n\n\t\tclose(r.done)\n\t}()\n}\n\n// Wait blocks until the reporter finishes (channel is closed).\nfunc (r *Reporter) Wait() {\n\t<-r.done\n}\n\n// newBar creates a new progress bar with consistent settings.\nfunc newBar(total int, description string) *progressbar.ProgressBar {\n\treturn progressbar.NewOptions(total,\n\t\tprogressbar.OptionSetDescription(description+\"...\"),\n\t\tprogressbar.OptionShowCount(),\n\t\tprogressbar.OptionSetWidth(40),\n\t\tprogressbar.OptionSetWriter(os.Stderr),\n\t)\n}\n\n// New creates a reporter with a channel for updates.\n// Returns the reporter and the send-only channel.\nfunc New() (reporter *Reporter, progressCh chan<- Update) {\n\tch := make(chan Update, 100) // Buffered to prevent blocking\n\treturn &Reporter{\n\t\tupdates:      ch,\n\t\tdone:         make(chan struct{}),\n\t\tcurrentPhase: \"\",\n\t}, ch\n}\n"
  },
  {
    "path": "pkg/raster/draw.go",
    "content": "package raster\n\nimport (\n\t\"image\"\n\t\"image/color\"\n\t\"image/draw\"\n\t\"unicode/utf8\"\n\n\ttermcolor \"github.com/mrmarble/termsvg/pkg/color\"\n\t\"github.com/mrmarble/termsvg/pkg/ir\"\n\t\"golang.org/x/image/font\"\n\t\"golang.org/x/image/math/fixed\"\n)\n\n// textRunColors extracts the foreground and background colors for a text run.\ntype textRunColors struct {\n\tfg, bg    color.RGBA\n\ttextWidth int\n\tx, y      int\n}\n\n// Rendering constants for text positioning and styling.\nconst (\n\t// baselineOffset is the distance from the bottom of a row to the text baseline.\n\t// Text is drawn above the baseline, so we subtract this from row bottom.\n\tbaselineOffset = 5\n\n\t// underlineOffset is the distance from the bottom of a row to the underline.\n\tunderlineOffset = 2\n\n\t// windowCornerRadius is the radius for rounded window corners.\n\twindowCornerRadius = 5\n\n\t// windowButtonSpacing is the horizontal spacing between window buttons.\n\twindowButtonSpacing = 20\n\n\t// windowButtonRadius is the radius of window control buttons (close, minimize, maximize).\n\twindowButtonRadius = 6\n)\n\n// computeTextRunColors calculates the positioning and colors for a text run.\nfunc (r *Rasterizer) computeTextRunColors(run ir.TextRun, rowY int, catalog *termcolor.Catalog) textRunColors {\n\tcontentX := r.config.Padding\n\tcontentY := r.contentOffsetY()\n\n\tx := contentX + run.StartCol*r.config.ColWidth\n\ty := contentY + rowY*r.config.RowHeight\n\n\t// Get background color - use catalog default background for unset cells\n\tvar bgColor color.RGBA\n\tif catalog.IsDefault(run.Attrs.BG) {\n\t\tbgColor = catalog.DefaultBackground()\n\t} else {\n\t\tbgColor = catalog.Resolved(run.Attrs.BG)\n\t}\n\n\t// Get foreground color - use terminal foreground for default\n\tvar fgColor color.RGBA\n\tif catalog.IsDefault(run.Attrs.FG) {\n\t\tfgColor = catalog.DefaultForeground()\n\t} else {\n\t\tfgColor = catalog.Resolved(run.Attrs.FG)\n\t}\n\n\t// Apply dim effect by reducing color intensity\n\tif run.Attrs.Dim {\n\t\tfgColor = dimColor(fgColor)\n\t}\n\n\t// Calculate text width in columns (handle multi-byte characters)\n\ttextWidth := utf8.RuneCountInString(run.Text) * r.config.ColWidth\n\n\treturn textRunColors{\n\t\tfg:        fgColor,\n\t\tbg:        bgColor,\n\t\ttextWidth: textWidth,\n\t\tx:         x,\n\t\ty:         y,\n\t}\n}\n\n// drawTextRunWithFace draws a text run using the specified font face.\n// This allows for thread-safe parallel rendering with per-goroutine font faces.\n//\n//nolint:dupl // drawTextRunWithFace and drawTextRunToPaletted handle different image types\nfunc (r *Rasterizer) drawTextRunWithFace(\n\timg *image.RGBA, run ir.TextRun, rowY int, face font.Face, catalog *termcolor.Catalog,\n) {\n\tif run.Text == \"\" {\n\t\treturn\n\t}\n\n\tcolors := r.computeTextRunColors(run, rowY, catalog)\n\n\t// Draw background rectangle only if it's not the default color\n\tif !catalog.IsDefault(run.Attrs.BG) {\n\t\tdraw.Draw(img,\n\t\t\timage.Rect(colors.x, colors.y, colors.x+colors.textWidth, colors.y+r.config.RowHeight),\n\t\t\t&image.Uniform{colors.bg},\n\t\t\timage.Point{},\n\t\t\tdraw.Src)\n\t}\n\n\t// Draw text\n\tdrawer := &font.Drawer{\n\t\tDst:  img,\n\t\tSrc:  &image.Uniform{colors.fg},\n\t\tFace: face,\n\t\tDot:  fixed.P(colors.x, colors.y+r.config.RowHeight-baselineOffset), // baseline offset\n\t}\n\tdrawer.DrawString(run.Text)\n\n\t// Draw underline if needed\n\tif run.Attrs.Underline {\n\t\tunderlineY := colors.y + r.config.RowHeight - underlineOffset\n\t\tfor px := colors.x; px < colors.x+colors.textWidth; px++ {\n\t\t\timg.Set(px, underlineY, colors.fg)\n\t\t}\n\t}\n}\n\n// drawCursor draws the cursor as a filled block.\nfunc (r *Rasterizer) drawCursor(img *image.RGBA, cursor ir.Cursor, catalog *termcolor.Catalog) {\n\tcontentX := r.config.Padding\n\tcontentY := r.contentOffsetY()\n\n\tx := contentX + cursor.Col*r.config.ColWidth\n\ty := contentY + cursor.Row*r.config.RowHeight\n\n\t// Get cursor color (same as default foreground)\n\tcursorColor := catalog.DefaultForeground()\n\n\t// Draw cursor as a block\n\tdraw.Draw(img,\n\t\timage.Rect(x, y, x+r.config.ColWidth, y+r.config.RowHeight),\n\t\t&image.Uniform{cursorColor},\n\t\timage.Point{},\n\t\tdraw.Src)\n}\n\n// drawWindow draws the window chrome including background and buttons.\nfunc (r *Rasterizer) drawWindow(img *image.RGBA) {\n\ttheme := r.config.Theme\n\tbounds := img.Bounds()\n\n\t// Window background with rounded corners\n\tr.drawRoundedRect(img, bounds, windowCornerRadius, theme.WindowBackground)\n\n\t// Window buttons (close, minimize, maximize)\n\tbuttonY := r.config.Padding\n\n\tfor i, btnColor := range theme.WindowButtons {\n\t\tx := r.config.Padding + i*windowButtonSpacing\n\t\tr.drawCircle(img, x, buttonY, windowButtonRadius, btnColor)\n\t}\n}\n\n// drawBackground draws a plain background without window chrome.\nfunc (r *Rasterizer) drawBackground(img *image.RGBA) {\n\tbgColor := r.config.Theme.Background\n\tdraw.Draw(img, img.Bounds(), &image.Uniform{bgColor}, image.Point{}, draw.Src)\n}\n\n// drawTerminalBackground draws the terminal content area background.\n// Uses the theme's WindowBackground color to match the window chrome,\n// creating a seamless appearance while maintaining full opacity for GIF performance.\nfunc (r *Rasterizer) drawTerminalBackground(img *image.RGBA, width, height int) {\n\tcontentX := r.config.Padding\n\tcontentY := r.contentOffsetY()\n\t// Use WindowBackground to match the window chrome color\n\ttermBg := r.config.Theme.WindowBackground\n\n\tdraw.Draw(img,\n\t\timage.Rect(contentX, contentY, contentX+width, contentY+height),\n\t\t&image.Uniform{termBg},\n\t\timage.Point{},\n\t\tdraw.Src)\n}\n\n// drawRoundedRect draws a rounded rectangle on the image.\n// For simplicity, this draws a regular rectangle (visual difference is minimal at small radii).\nfunc (r *Rasterizer) drawRoundedRect(img *image.RGBA, bounds image.Rectangle, radius int, c color.RGBA) {\n\t// Fill the main rectangle\n\tdraw.Draw(img, bounds, &image.Uniform{c}, image.Point{}, draw.Src)\n\n\t// Note: A full implementation would use proper corner rounding algorithms.\n\t// The visual difference is minimal at small radii, so we use a simple rectangle.\n\t_ = radius // reserved for future implementation\n}\n\n// drawCircle draws a filled circle on the image.\nfunc (r *Rasterizer) drawCircle(img *image.RGBA, cx, cy, radius int, c color.RGBA) {\n\tfor y := -radius; y <= radius; y++ {\n\t\tfor x := -radius; x <= radius; x++ {\n\t\t\tif x*x+y*y <= radius*radius {\n\t\t\t\timg.Set(cx+x, cy+y, c)\n\t\t\t}\n\t\t}\n\t}\n}\n\n// contentOffsetY returns the Y offset for the terminal content area.\nfunc (r *Rasterizer) contentOffsetY() int {\n\tif r.config.ShowWindow {\n\t\treturn r.config.Padding * r.config.HeaderSize\n\t}\n\treturn r.config.Padding\n}\n\n// contentWidth calculates the width of the terminal content area.\nfunc (r *Rasterizer) contentWidth(cols int) int {\n\treturn cols * r.config.ColWidth\n}\n\n// contentHeight calculates the height of the terminal content area.\nfunc (r *Rasterizer) contentHeight(rows int) int {\n\treturn rows * r.config.RowHeight\n}\n\n// paddedWidth calculates the total image width including padding.\nfunc (r *Rasterizer) paddedWidth(cols int) int {\n\treturn r.contentWidth(cols) + 2*r.config.Padding\n}\n\n// paddedHeight calculates the total image height including padding.\nfunc (r *Rasterizer) paddedHeight(rows int) int {\n\tif r.config.ShowWindow {\n\t\treturn r.contentHeight(rows) + r.config.Padding*r.config.HeaderSize + r.config.Padding\n\t}\n\treturn r.contentHeight(rows) + 2*r.config.Padding\n}\n\n// dimColor reduces the intensity of a color for the dim effect.\n// Unlike alpha blending, this modifies the RGB values directly.\nfunc dimColor(c color.RGBA) color.RGBA {\n\treturn color.RGBA{\n\t\tR: c.R / 2,\n\t\tG: c.G / 2,\n\t\tB: c.B / 2,\n\t\tA: c.A,\n\t}\n}\n\n// drawTextRunToPaletted draws a text run directly to a paletted image.\n// This avoids the RGBA to Paletted conversion step for GIF rendering.\n//\n//nolint:dupl // drawTextRunToPaletted is similar to drawTextRunWithFace but uses Paletted images\nfunc (r *Rasterizer) drawTextRunToPaletted(\n\timg *image.Paletted, run ir.TextRun, rowY int, face font.Face, catalog *termcolor.Catalog,\n) {\n\tif run.Text == \"\" {\n\t\treturn\n\t}\n\n\tcolors := r.computeTextRunColors(run, rowY, catalog)\n\n\t// Draw background rectangle only if it's not the default color\n\tif !catalog.IsDefault(run.Attrs.BG) {\n\t\tdraw.Draw(img,\n\t\t\timage.Rect(colors.x, colors.y, colors.x+colors.textWidth, colors.y+r.config.RowHeight),\n\t\t\t&image.Uniform{colors.bg},\n\t\t\timage.Point{},\n\t\t\tdraw.Src)\n\t}\n\n\t// Draw text directly to paletted image\n\tdrawer := &font.Drawer{\n\t\tDst:  img,\n\t\tSrc:  &image.Uniform{colors.fg},\n\t\tFace: face,\n\t\tDot:  fixed.P(colors.x, colors.y+r.config.RowHeight-baselineOffset), // baseline offset\n\t}\n\tdrawer.DrawString(run.Text)\n\n\t// Draw underline if needed\n\tif run.Attrs.Underline {\n\t\tunderlineY := colors.y + r.config.RowHeight - underlineOffset\n\t\tfor px := colors.x; px < colors.x+colors.textWidth; px++ {\n\t\t\timg.Set(px, underlineY, colors.fg)\n\t\t}\n\t}\n}\n\n// drawCursorToPaletted draws the cursor as a filled block directly to a paletted image.\nfunc (r *Rasterizer) drawCursorToPaletted(img *image.Paletted, cursor ir.Cursor, catalog *termcolor.Catalog) {\n\tcontentX := r.config.Padding\n\tcontentY := r.contentOffsetY()\n\n\tx := contentX + cursor.Col*r.config.ColWidth\n\ty := contentY + cursor.Row*r.config.RowHeight\n\n\t// Get cursor color (same as default foreground)\n\tcursorColor := catalog.DefaultForeground()\n\n\t// Draw cursor as a block\n\tdraw.Draw(img,\n\t\timage.Rect(x, y, x+r.config.ColWidth, y+r.config.RowHeight),\n\t\t&image.Uniform{cursorColor},\n\t\timage.Point{},\n\t\tdraw.Src)\n}\n"
  },
  {
    "path": "pkg/raster/font.go",
    "content": "package raster\n\nimport (\n\t_ \"embed\"\n\n\t\"golang.org/x/image/font\"\n\t\"golang.org/x/image/font/opentype\"\n)\n\n//go:embed JetBrainsMono-Regular.ttf\nvar jetBrainsMonoTTF []byte\n\n// loadFontFace loads the embedded JetBrains Mono font at the given size.\nfunc loadFontFace(size float64) (font.Face, error) {\n\tf, err := opentype.Parse(jetBrainsMonoTTF)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tface, err := opentype.NewFace(f, &opentype.FaceOptions{\n\t\tSize:    size,\n\t\tDPI:     72,\n\t\tHinting: font.HintingFull,\n\t})\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn face, nil\n}\n"
  },
  {
    "path": "pkg/raster/paletted.go",
    "content": "package raster\n\nimport (\n\t\"image\"\n\t\"image/color\"\n\t\"image/draw\"\n\t\"runtime\"\n\t\"sync\"\n\t\"time\"\n\n\t\"github.com/mrmarble/termsvg/pkg/ir\"\n\t\"github.com/mrmarble/termsvg/pkg/progress\"\n\t\"golang.org/x/image/font\"\n)\n\n// palettedFrameRenderer handles the parallel rendering of frames to paletted images.\ntype palettedFrameRenderer struct {\n\trasterizer *Rasterizer\n\trec        *ir.Recording\n\tpalette    color.Palette\n}\n\n// render performs parallel frame rendering using a worker pool.\n// Note: IR-level deduplication is handled during IR generation, not here.\n//\n//nolint:dupl // render methods for RGBA and Paletted are similar but use different image types\nfunc (fr *palettedFrameRenderer) render() ([]PalettedFrame, error) {\n\tframes := fr.rec.Frames\n\tresults := make([]PalettedFrame, len(frames))\n\ttotalFrames := len(frames)\n\n\t// Calculate image dimensions\n\twidth := fr.rasterizer.paddedWidth(fr.rec.Width)\n\theight := fr.rasterizer.paddedHeight(fr.rec.Height)\n\tcontentWidth := fr.rasterizer.contentWidth(fr.rec.Width)\n\tcontentHeight := fr.rasterizer.contentHeight(fr.rec.Height)\n\n\t// Pre-render the static base image (window chrome + terminal background) as paletted\n\tbaseImg := fr.createPalettedBaseImage(width, height, contentWidth, contentHeight)\n\n\t// Send initial progress\n\tif fr.rasterizer.config.ProgressCh != nil {\n\t\tfr.rasterizer.config.ProgressCh <- progress.Update{\n\t\t\tPhase:   \"Rasterizing\",\n\t\t\tCurrent: 0,\n\t\t\tTotal:   totalFrames,\n\t\t}\n\t}\n\n\t// Worker pool setup\n\tnumWorkers := runtime.NumCPU()\n\tjobs := make(chan int, totalFrames)\n\tvar wg sync.WaitGroup\n\n\t// Start workers - each worker creates its own font face\n\tfor w := 0; w < numWorkers; w++ {\n\t\twg.Add(1)\n\t\tgo func() {\n\t\t\tdefer wg.Done()\n\n\t\t\t// Create own font face for this worker\n\t\t\tface, err := loadFontFace(float64(fr.rasterizer.config.FontSize))\n\t\t\tif err != nil {\n\t\t\t\t// If font loading fails, use the shared one as fallback\n\t\t\t\tface = fr.rasterizer.fontFace\n\t\t\t}\n\n\t\t\tfor idx := range jobs {\n\t\t\t\tresults[idx] = fr.renderSingleFrame(idx, frames[idx], frames[idx].Delay, baseImg, face)\n\n\t\t\t\t// Send progress update\n\t\t\t\tif fr.rasterizer.config.ProgressCh != nil {\n\t\t\t\t\tfr.rasterizer.config.ProgressCh <- progress.Update{\n\t\t\t\t\t\tPhase:   \"Rasterizing\",\n\t\t\t\t\t\tCurrent: idx + 1,\n\t\t\t\t\t\tTotal:   totalFrames,\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}()\n\t}\n\n\t// Send jobs (frame indices)\n\tfor i := range frames {\n\t\tjobs <- i\n\t}\n\tclose(jobs)\n\n\t// Wait for all workers to complete\n\twg.Wait()\n\n\treturn results, nil\n}\n\n// renderSingleFrame renders a single frame to a paletted image.\nfunc (fr *palettedFrameRenderer) renderSingleFrame(\n\tidx int,\n\tframe ir.Frame,\n\tdelay time.Duration,\n\tbaseImg *image.Paletted,\n\tface font.Face,\n) PalettedFrame {\n\t// Create a copy of the base paletted image for this frame\n\timg := fr.copyPalettedBaseImage(baseImg)\n\n\t// Draw the frame content directly to paletted using the worker's font face\n\tfr.drawFrameContentToPaletted(img, frame, face)\n\n\treturn PalettedFrame{\n\t\tImage: img,\n\t\tDelay: delay,\n\t\tIndex: idx,\n\t}\n}\n\n// createPalettedBaseImage creates the static base image with window chrome and terminal background.\n// Uses WindowBackground color for the terminal area to match window chrome,\n// ensuring full opacity for optimal GIF delta encoding performance.\nfunc (fr *palettedFrameRenderer) createPalettedBaseImage(\n\twidth, height, contentWidth, contentHeight int,\n) *image.Paletted {\n\t// First create RGBA base image\n\trgbaImg := image.NewRGBA(image.Rect(0, 0, width, height))\n\n\t// Draw window chrome or plain background\n\tif fr.rasterizer.config.ShowWindow {\n\t\tfr.rasterizer.drawWindow(rgbaImg)\n\t} else {\n\t\tfr.rasterizer.drawBackground(rgbaImg)\n\t}\n\n\t// Draw terminal content background using WindowBackground color\n\t// This ensures full opacity for GIF delta encoding while maintaining\n\t// visual consistency with the window chrome\n\tfr.rasterizer.drawTerminalBackground(rgbaImg, contentWidth, contentHeight)\n\n\t// Convert to paletted once (this is done only once per recording, not per frame)\n\tpalettedImg := image.NewPaletted(rgbaImg.Bounds(), fr.palette)\n\tdraw.Draw(palettedImg, rgbaImg.Bounds(), rgbaImg, image.Point{}, draw.Src)\n\n\treturn palettedImg\n}\n\n// copyPalettedBaseImage creates a deep copy of the base paletted image.\nfunc (fr *palettedFrameRenderer) copyPalettedBaseImage(base *image.Paletted) *image.Paletted {\n\tbounds := base.Bounds()\n\timg := image.NewPaletted(bounds, fr.palette)\n\tcopy(img.Pix, base.Pix)\n\treturn img\n}\n\n// drawFrameContentToPaletted draws the dynamic content (text runs and cursor) to a paletted image.\nfunc (fr *palettedFrameRenderer) drawFrameContentToPaletted(img *image.Paletted, frame ir.Frame, face font.Face) {\n\t// Draw all text runs\n\tfor _, row := range frame.Rows {\n\t\tfor _, run := range row.Runs {\n\t\t\tfr.rasterizer.drawTextRunToPaletted(img, run, row.Y, face, fr.rec.Colors)\n\t\t}\n\t}\n\n\t// Draw cursor if visible and cursor rendering is enabled\n\tif fr.rasterizer.config.ShowCursor && frame.Cursor.Visible {\n\t\tfr.rasterizer.drawCursorToPaletted(img, frame.Cursor, fr.rec.Colors)\n\t}\n}\n"
  },
  {
    "path": "pkg/raster/raster.go",
    "content": "// Package raster transforms terminal recordings (IR) into RGBA images.\n// It provides parallel frame rendering with IR-level deduplication,\n// supporting both window chrome and plain terminal output.\npackage raster\n\nimport (\n\t\"fmt\"\n\t\"image\"\n\t\"image/color\"\n\t\"time\"\n\n\t\"github.com/mrmarble/termsvg/pkg/ir\"\n\t\"github.com/mrmarble/termsvg/pkg/progress\"\n\t\"github.com/mrmarble/termsvg/pkg/theme\"\n\t\"golang.org/x/image/font\"\n)\n\n// RasterFrame represents a single rendered frame with timing metadata.\n//\n// RasterFrame represents a single rendered frame with timing metadata.\n//\n//nolint:revive // RasterFrame naming is intentional to distinguish from IR frames\ntype RasterFrame struct {\n\t// Image is the rendered RGBA image for this frame\n\tImage *image.RGBA\n\n\t// Delay is the time to display this frame\n\tDelay time.Duration\n\n\t// Index is the frame number (0-indexed, sequential after deduplication)\n\tIndex int\n}\n\n// Config holds configuration options for the rasterizer.\ntype Config struct {\n\t// Theme defines the color scheme for rendering\n\tTheme theme.Theme\n\n\t// ShowWindow enables window chrome rendering (macOS-style buttons)\n\tShowWindow bool\n\n\t// ShowCursor enables cursor rendering\n\tShowCursor bool\n\n\t// FontSize is the font size in points\n\tFontSize int\n\n\t// Layout constants (can be overridden, but defaults are provided)\n\tRowHeight  int // pixels per row (default: 25)\n\tColWidth   int // pixels per column (default: 12)\n\tPadding    int // padding around content (default: 20)\n\tHeaderSize int // multiplier for header area (default: 2)\n\n\t// ProgressCh is an optional channel for progress updates\n\tProgressCh chan<- progress.Update\n}\n\n// Rasterizer transforms IR recordings into RGBA images.\ntype Rasterizer struct {\n\tconfig   Config\n\tfontFace font.Face\n}\n\n// PalettedFrame represents a single rendered frame as a paletted image with timing metadata.\ntype PalettedFrame struct {\n\t// Image is the rendered paletted image for this frame\n\tImage *image.Paletted\n\n\t// Delay is the time to display this frame\n\tDelay time.Duration\n\n\t// Index is the frame number (0-indexed, sequential after deduplication)\n\tIndex int\n}\n\n// Layout constants for rendering (matching SVG renderer for consistency)\nconst (\n\tRowHeight  = 25 // pixels per row\n\tColWidth   = 12 // pixels per column\n\tPadding    = 20 // padding around content\n\tHeaderSize = 2  // multiplier for header area (window buttons)\n)\n\n// DefaultConfig returns a Config with sensible defaults.\nfunc DefaultConfig() Config {\n\treturn Config{\n\t\tTheme:      theme.Default(),\n\t\tShowWindow: true,\n\t\tShowCursor: true,\n\t\tFontSize:   20,\n\t\tRowHeight:  RowHeight,\n\t\tColWidth:   ColWidth,\n\t\tPadding:    Padding,\n\t\tHeaderSize: HeaderSize,\n\t}\n}\n\n// New creates a new Rasterizer with the given configuration.\nfunc New(config *Config) (*Rasterizer, error) {\n\tface, err := loadFontFace(float64(config.FontSize))\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"failed to load font: %w\", err)\n\t}\n\n\treturn &Rasterizer{\n\t\tconfig:   *config,\n\t\tfontFace: face,\n\t}, nil\n}\n\n// Close releases resources held by the rasterizer.\nfunc (r *Rasterizer) Close() error {\n\t// font.Face doesn't have a Close method\n\t// Resource cleanup can be added here if needed in the future\n\treturn nil\n}\n\n// Rasterize transforms a terminal recording into a series of RGBA images.\n// It performs IR-level deduplication to avoid rendering identical frames.\n// The returned slice contains all frames with their timing metadata.\nfunc (r *Rasterizer) Rasterize(rec *ir.Recording) ([]RasterFrame, error) {\n\tif len(rec.Frames) == 0 {\n\t\treturn nil, fmt.Errorf(\"recording has no frames\")\n\t}\n\n\trenderer := &frameRenderer{\n\t\trasterizer: r,\n\t\trec:        rec,\n\t}\n\n\treturn renderer.render()\n}\n\n// RasterizeWithPalette transforms a terminal recording into a series of paletted images.\n// It renders directly to paletted images using the provided palette, avoiding the\n// expensive RGBA to Paletted conversion step. This is optimal for GIF generation.\n// It performs IR-level deduplication to avoid rendering identical frames.\nfunc (r *Rasterizer) RasterizeWithPalette(rec *ir.Recording, palette color.Palette) ([]PalettedFrame, error) {\n\tif len(rec.Frames) == 0 {\n\t\treturn nil, fmt.Errorf(\"recording has no frames\")\n\t}\n\n\trenderer := &palettedFrameRenderer{\n\t\trasterizer: r,\n\t\trec:        rec,\n\t\tpalette:    palette,\n\t}\n\n\treturn renderer.render()\n}\n"
  },
  {
    "path": "pkg/raster/raster_test.go",
    "content": "package raster\n\nimport (\n\t\"image/color\"\n\t\"testing\"\n\t\"time\"\n\n\ttermcolor \"github.com/mrmarble/termsvg/pkg/color\"\n\t\"github.com/mrmarble/termsvg/pkg/ir\"\n)\n\nfunc TestNew(t *testing.T) {\n\tconfig := DefaultConfig()\n\tr, err := New(&config)\n\tif err != nil {\n\t\tt.Fatalf(\"New() error = %v\", err)\n\t}\n\tdefer r.Close()\n\n\tif r.config.FontSize != config.FontSize {\n\t\tt.Errorf(\"FontSize = %v, want %v\", r.config.FontSize, config.FontSize)\n\t}\n\tif r.fontFace == nil {\n\t\tt.Error(\"fontFace is nil\")\n\t}\n}\n\nfunc TestRasterize_EmptyRecording(t *testing.T) {\n\tconfig := DefaultConfig()\n\tr, err := New(&config)\n\tif err != nil {\n\t\tt.Fatalf(\"New() error = %v\", err)\n\t}\n\tdefer r.Close()\n\n\trec := &ir.Recording{\n\t\tFrames: []ir.Frame{},\n\t}\n\n\t_, err = r.Rasterize(rec)\n\tif err == nil {\n\t\tt.Error(\"expected error for empty recording\")\n\t}\n}\n\n//nolint:funlen // test setup requires multiple test cases\nfunc TestRasterize_SingleFrame(t *testing.T) {\n\tconfig := DefaultConfig()\n\tr, err := New(&config)\n\tif err != nil {\n\t\tt.Fatalf(\"New() error = %v\", err)\n\t}\n\tdefer r.Close()\n\n\tcolors := termcolor.NewCatalog(\n\t\tcolor.RGBA{R: 192, G: 192, B: 192, A: 255},\n\t\tcolor.RGBA{R: 0, G: 0, B: 0, A: 255},\n\t)\n\n\trec := &ir.Recording{\n\t\tWidth:    80,\n\t\tHeight:   24,\n\t\tDuration: 1 * time.Second,\n\t\tFrames: []ir.Frame{\n\t\t\t{\n\t\t\t\tTime:  0,\n\t\t\t\tDelay: 0,\n\t\t\t\tIndex: 0,\n\t\t\t\tRows: []ir.Row{\n\t\t\t\t\t{\n\t\t\t\t\t\tY: 0,\n\t\t\t\t\t\tRuns: []ir.TextRun{\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tText:     \"Hello, World!\",\n\t\t\t\t\t\t\t\tStartCol: 0,\n\t\t\t\t\t\t\t\tAttrs:    ir.CellAttrs{},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tCursor: ir.Cursor{Col: 13, Row: 0, Visible: true},\n\t\t\t},\n\t\t},\n\t\tColors: colors,\n\t\tStats:  ir.Stats{TotalFrames: 1},\n\t}\n\n\tframes, err := r.Rasterize(rec)\n\tif err != nil {\n\t\tt.Fatalf(\"Rasterize() error = %v\", err)\n\t}\n\n\tif len(frames) != 1 {\n\t\tt.Errorf(\"expected 1 frame, got %d\", len(frames))\n\t}\n\n\tif frames[0].Image == nil {\n\t\tt.Error(\"frame.Image is nil\")\n\t}\n\n\tif frames[0].Delay != 0 {\n\t\tt.Errorf(\"Delay = %v, want 0\", frames[0].Delay)\n\t}\n\n\tif frames[0].Index != 0 {\n\t\tt.Errorf(\"Index = %v, want 0\", frames[0].Index)\n\t}\n\n\t// Verify image dimensions\n\texpectedWidth := config.Padding*2 + rec.Width*config.ColWidth\n\texpectedHeight := config.Padding*config.HeaderSize + config.Padding + rec.Height*config.RowHeight\n\tbounds := frames[0].Image.Bounds()\n\tif bounds.Dx() != expectedWidth {\n\t\tt.Errorf(\"image width = %d, want %d\", bounds.Dx(), expectedWidth)\n\t}\n\tif bounds.Dy() != expectedHeight {\n\t\tt.Errorf(\"image height = %d, want %d\", bounds.Dy(), expectedHeight)\n\t}\n}\n\nfunc TestRasterize_MultipleFrames(t *testing.T) {\n\tconfig := DefaultConfig()\n\tr, err := New(&config)\n\tif err != nil {\n\t\tt.Fatalf(\"New() error = %v\", err)\n\t}\n\tdefer r.Close()\n\n\tcolors := termcolor.NewCatalog(\n\t\tcolor.RGBA{R: 192, G: 192, B: 192, A: 255},\n\t\tcolor.RGBA{R: 0, G: 0, B: 0, A: 255},\n\t)\n\n\trec := &ir.Recording{\n\t\tWidth:    80,\n\t\tHeight:   24,\n\t\tDuration: 2 * time.Second,\n\t\tFrames: []ir.Frame{\n\t\t\t{\n\t\t\t\tTime:  0,\n\t\t\t\tDelay: 0,\n\t\t\t\tIndex: 0,\n\t\t\t\tRows: []ir.Row{\n\t\t\t\t\t{Y: 0, Runs: []ir.TextRun{{Text: \"Frame 1\", StartCol: 0}}},\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\tTime:  1 * time.Second,\n\t\t\t\tDelay: 1 * time.Second,\n\t\t\t\tIndex: 1,\n\t\t\t\tRows: []ir.Row{\n\t\t\t\t\t{Y: 0, Runs: []ir.TextRun{{Text: \"Frame 2\", StartCol: 0}}},\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\tColors: colors,\n\t\tStats:  ir.Stats{TotalFrames: 2},\n\t}\n\n\tframes, err := r.Rasterize(rec)\n\tif err != nil {\n\t\tt.Fatalf(\"Rasterize() error = %v\", err)\n\t}\n\n\tif len(frames) != 2 {\n\t\tt.Errorf(\"expected 2 frames, got %d\", len(frames))\n\t}\n\n\t// Check delays\n\tif frames[0].Delay != 0 {\n\t\tt.Errorf(\"frame 0 delay = %v, want 0\", frames[0].Delay)\n\t}\n\tif frames[1].Delay != 1*time.Second {\n\t\tt.Errorf(\"frame 1 delay = %v, want 1s\", frames[1].Delay)\n\t}\n\n\t// Check indices\n\tif frames[0].Index != 0 {\n\t\tt.Errorf(\"frame 0 index = %v, want 0\", frames[0].Index)\n\t}\n\tif frames[1].Index != 1 {\n\t\tt.Errorf(\"frame 1 index = %v, want 1\", frames[1].Index)\n\t}\n}\n\nfunc TestRasterize_WithWindow(t *testing.T) {\n\tconfig := DefaultConfig()\n\tconfig.ShowWindow = true\n\n\tr, err := New(&config)\n\tif err != nil {\n\t\tt.Fatalf(\"New() error = %v\", err)\n\t}\n\tdefer r.Close()\n\n\tcolors := termcolor.NewCatalog(\n\t\tcolor.RGBA{R: 192, G: 192, B: 192, A: 255},\n\t\tcolor.RGBA{R: 0, G: 0, B: 0, A: 255},\n\t)\n\n\trec := &ir.Recording{\n\t\tWidth:    40,\n\t\tHeight:   10,\n\t\tDuration: 1 * time.Second,\n\t\tFrames: []ir.Frame{\n\t\t\t{\n\t\t\t\tTime:  0,\n\t\t\t\tDelay: 0,\n\t\t\t\tIndex: 0,\n\t\t\t\tRows:  []ir.Row{},\n\t\t\t},\n\t\t},\n\t\tColors: colors,\n\t}\n\n\tframes, err := r.Rasterize(rec)\n\tif err != nil {\n\t\tt.Fatalf(\"Rasterize() error = %v\", err)\n\t}\n\n\t// With window: height = content + header + padding\n\t// content = 10 * 25 = 250\n\t// header = 20 * 2 = 40\n\t// padding = 20\n\t// total = 310\n\texpectedHeight := 10*config.RowHeight + config.Padding*config.HeaderSize + config.Padding\n\tbounds := frames[0].Image.Bounds()\n\tif bounds.Dy() != expectedHeight {\n\t\tt.Errorf(\"expected height %d, got %d\", expectedHeight, bounds.Dy())\n\t}\n}\n\nfunc TestRasterize_WithoutWindow(t *testing.T) {\n\tconfig := DefaultConfig()\n\tconfig.ShowWindow = false\n\n\tr, err := New(&config)\n\tif err != nil {\n\t\tt.Fatalf(\"New() error = %v\", err)\n\t}\n\tdefer r.Close()\n\n\tcolors := termcolor.NewCatalog(\n\t\tcolor.RGBA{R: 192, G: 192, B: 192, A: 255},\n\t\tcolor.RGBA{R: 0, G: 0, B: 0, A: 255},\n\t)\n\n\trec := &ir.Recording{\n\t\tWidth:    40,\n\t\tHeight:   10,\n\t\tDuration: 1 * time.Second,\n\t\tFrames: []ir.Frame{\n\t\t\t{\n\t\t\t\tTime:  0,\n\t\t\t\tDelay: 0,\n\t\t\t\tIndex: 0,\n\t\t\t\tRows:  []ir.Row{},\n\t\t\t},\n\t\t},\n\t\tColors: colors,\n\t}\n\n\tframes, err := r.Rasterize(rec)\n\tif err != nil {\n\t\tt.Fatalf(\"Rasterize() error = %v\", err)\n\t}\n\n\t// Without window: height = content + 2*padding\n\texpectedHeight := 10*config.RowHeight + 2*config.Padding\n\tbounds := frames[0].Image.Bounds()\n\tif bounds.Dy() != expectedHeight {\n\t\tt.Errorf(\"expected height %d, got %d\", expectedHeight, bounds.Dy())\n\t}\n}\n\n//nolint:funlen // test requires comprehensive frame rendering scenario\nfunc TestRasterize_MultipleUniqueFrames(t *testing.T) {\n\tconfig := DefaultConfig()\n\tr, err := New(&config)\n\tif err != nil {\n\t\tt.Fatalf(\"New() error = %v\", err)\n\t}\n\tdefer r.Close()\n\n\tcolors := termcolor.NewCatalog(\n\t\tcolor.RGBA{R: 192, G: 192, B: 192, A: 255},\n\t\tcolor.RGBA{R: 0, G: 0, B: 0, A: 255},\n\t)\n\n\t// Create 4 unique frames - rasterizer no longer handles deduplication\n\t// (that's done at the IR processing stage)\n\trec := &ir.Recording{\n\t\tWidth:    40,\n\t\tHeight:   10,\n\t\tDuration: 4 * time.Second,\n\t\tFrames: []ir.Frame{\n\t\t\t{\n\t\t\t\tTime:  0,\n\t\t\t\tDelay: 100 * time.Millisecond,\n\t\t\t\tIndex: 0,\n\t\t\t\tRows: []ir.Row{\n\t\t\t\t\t{Y: 0, Runs: []ir.TextRun{{Text: \"A\", StartCol: 0}}},\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\tTime:  1 * time.Second,\n\t\t\t\tDelay: 100 * time.Millisecond,\n\t\t\t\tIndex: 1,\n\t\t\t\tRows: []ir.Row{\n\t\t\t\t\t{Y: 0, Runs: []ir.TextRun{{Text: \"A\", StartCol: 0}}},\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\tTime:  2 * time.Second,\n\t\t\t\tDelay: 100 * time.Millisecond,\n\t\t\t\tIndex: 2,\n\t\t\t\tRows: []ir.Row{\n\t\t\t\t\t{Y: 0, Runs: []ir.TextRun{{Text: \"B\", StartCol: 0}}},\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\tTime:  3 * time.Second,\n\t\t\t\tDelay: 100 * time.Millisecond,\n\t\t\t\tIndex: 3,\n\t\t\t\tRows: []ir.Row{\n\t\t\t\t\t{Y: 0, Runs: []ir.TextRun{{Text: \"B\", StartCol: 0}}},\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\tColors: colors,\n\t}\n\n\tframes, err := r.Rasterize(rec)\n\tif err != nil {\n\t\tt.Fatalf(\"Rasterize() error = %v\", err)\n\t}\n\n\t// All 4 frames should be rendered (no deduplication at raster level)\n\tif len(frames) != 4 {\n\t\tt.Errorf(\"expected 4 frames, got %d\", len(frames))\n\t}\n\n\t// All frames should have images (no duplicates marked at raster level)\n\tfor i, frame := range frames {\n\t\tif frame.Image == nil {\n\t\t\tt.Errorf(\"frame %d image should not be nil\", i)\n\t\t}\n\t\tif frame.Index != i {\n\t\t\tt.Errorf(\"frame %d index = %d, want %d\", i, frame.Index, i)\n\t\t}\n\t}\n}\n\n//nolint:funlen // test requires multiple styling scenarios\nfunc TestRasterize_WithStyling(t *testing.T) {\n\tconfig := DefaultConfig()\n\tr, err := New(&config)\n\tif err != nil {\n\t\tt.Fatalf(\"New() error = %v\", err)\n\t}\n\tdefer r.Close()\n\n\tcolors := termcolor.NewCatalog(\n\t\tcolor.RGBA{R: 192, G: 192, B: 192, A: 255},\n\t\tcolor.RGBA{R: 0, G: 0, B: 0, A: 255},\n\t)\n\n\trec := &ir.Recording{\n\t\tWidth:    80,\n\t\tHeight:   24,\n\t\tDuration: 1 * time.Second,\n\t\tFrames: []ir.Frame{\n\t\t\t{\n\t\t\t\tTime:  0,\n\t\t\t\tDelay: 0,\n\t\t\t\tIndex: 0,\n\t\t\t\tRows: []ir.Row{\n\t\t\t\t\t{\n\t\t\t\t\t\tY: 0,\n\t\t\t\t\t\tRuns: []ir.TextRun{\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tText:     \"Bold\",\n\t\t\t\t\t\t\t\tStartCol: 0,\n\t\t\t\t\t\t\t\tAttrs:    ir.CellAttrs{Bold: true},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tText:     \"Italic\",\n\t\t\t\t\t\t\t\tStartCol: 5,\n\t\t\t\t\t\t\t\tAttrs:    ir.CellAttrs{Italic: true},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tText:     \"Underline\",\n\t\t\t\t\t\t\t\tStartCol: 12,\n\t\t\t\t\t\t\t\tAttrs:    ir.CellAttrs{Underline: true},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tText:     \"Dim\",\n\t\t\t\t\t\t\t\tStartCol: 22,\n\t\t\t\t\t\t\t\tAttrs:    ir.CellAttrs{Dim: true},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tCursor: ir.Cursor{Visible: false},\n\t\t\t},\n\t\t},\n\t\tColors: colors,\n\t}\n\n\tframes, err := r.Rasterize(rec)\n\tif err != nil {\n\t\tt.Fatalf(\"Rasterize() error = %v\", err)\n\t}\n\n\tif len(frames) != 1 {\n\t\tt.Errorf(\"expected 1 frame, got %d\", len(frames))\n\t}\n\n\tif frames[0].Image == nil {\n\t\tt.Error(\"frame.Image is nil\")\n\t}\n}\n\nfunc TestRasterize_WithCursor(t *testing.T) {\n\tconfig := DefaultConfig()\n\tr, err := New(&config)\n\tif err != nil {\n\t\tt.Fatalf(\"New() error = %v\", err)\n\t}\n\tdefer r.Close()\n\n\tcolors := termcolor.NewCatalog(\n\t\tcolor.RGBA{R: 192, G: 192, B: 192, A: 255},\n\t\tcolor.RGBA{R: 0, G: 0, B: 0, A: 255},\n\t)\n\n\trec := &ir.Recording{\n\t\tWidth:    80,\n\t\tHeight:   24,\n\t\tDuration: 1 * time.Second,\n\t\tFrames: []ir.Frame{\n\t\t\t{\n\t\t\t\tTime:  0,\n\t\t\t\tDelay: 0,\n\t\t\t\tIndex: 0,\n\t\t\t\tRows: []ir.Row{\n\t\t\t\t\t{Y: 0, Runs: []ir.TextRun{{Text: \"Hello\", StartCol: 0}}},\n\t\t\t\t},\n\t\t\t\tCursor: ir.Cursor{Col: 5, Row: 0, Visible: true},\n\t\t\t},\n\t\t},\n\t\tColors: colors,\n\t}\n\n\tframes, err := r.Rasterize(rec)\n\tif err != nil {\n\t\tt.Fatalf(\"Rasterize() error = %v\", err)\n\t}\n\n\tif len(frames) != 1 {\n\t\tt.Errorf(\"expected 1 frame, got %d\", len(frames))\n\t}\n\n\tif frames[0].Image == nil {\n\t\tt.Error(\"frame.Image is nil\")\n\t}\n}\n\nfunc TestRasterize_MultipleRows(t *testing.T) {\n\tconfig := DefaultConfig()\n\tr, err := New(&config)\n\tif err != nil {\n\t\tt.Fatalf(\"New() error = %v\", err)\n\t}\n\tdefer r.Close()\n\n\tcolors := termcolor.NewCatalog(\n\t\tcolor.RGBA{R: 192, G: 192, B: 192, A: 255},\n\t\tcolor.RGBA{R: 0, G: 0, B: 0, A: 255},\n\t)\n\n\trec := &ir.Recording{\n\t\tWidth:    80,\n\t\tHeight:   24,\n\t\tDuration: 1 * time.Second,\n\t\tFrames: []ir.Frame{\n\t\t\t{\n\t\t\t\tTime:  0,\n\t\t\t\tDelay: 0,\n\t\t\t\tIndex: 0,\n\t\t\t\tRows: []ir.Row{\n\t\t\t\t\t{Y: 0, Runs: []ir.TextRun{{Text: \"Line 1\", StartCol: 0}}},\n\t\t\t\t\t{Y: 1, Runs: []ir.TextRun{{Text: \"Line 2\", StartCol: 0}}},\n\t\t\t\t\t{Y: 2, Runs: []ir.TextRun{{Text: \"Line 3\", StartCol: 0}}},\n\t\t\t\t},\n\t\t\t\tCursor: ir.Cursor{Visible: false},\n\t\t\t},\n\t\t},\n\t\tColors: colors,\n\t}\n\n\tframes, err := r.Rasterize(rec)\n\tif err != nil {\n\t\tt.Fatalf(\"Rasterize() error = %v\", err)\n\t}\n\n\tif len(frames) != 1 {\n\t\tt.Errorf(\"expected 1 frame, got %d\", len(frames))\n\t}\n\n\tif frames[0].Image == nil {\n\t\tt.Error(\"frame.Image is nil\")\n\t}\n}\n\nfunc TestDefaultConfig(t *testing.T) {\n\tconfig := DefaultConfig()\n\n\tif config.FontSize != 20 {\n\t\tt.Errorf(\"FontSize = %v, want 20\", config.FontSize)\n\t}\n\tif !config.ShowWindow {\n\t\tt.Error(\"ShowWindow should be true by default\")\n\t}\n\tif config.RowHeight != RowHeight {\n\t\tt.Errorf(\"RowHeight = %v, want %v\", config.RowHeight, RowHeight)\n\t}\n\tif config.ColWidth != ColWidth {\n\t\tt.Errorf(\"ColWidth = %v, want %v\", config.ColWidth, ColWidth)\n\t}\n\tif config.Padding != Padding {\n\t\tt.Errorf(\"Padding = %v, want %v\", config.Padding, Padding)\n\t}\n\tif config.HeaderSize != HeaderSize {\n\t\tt.Errorf(\"HeaderSize = %v, want %v\", config.HeaderSize, HeaderSize)\n\t}\n}\n\nfunc TestDimColor(t *testing.T) {\n\ttests := []struct {\n\t\tinput    color.RGBA\n\t\texpected color.RGBA\n\t}{\n\t\t{\n\t\t\tinput:    color.RGBA{R: 255, G: 255, B: 255, A: 255},\n\t\t\texpected: color.RGBA{R: 127, G: 127, B: 127, A: 255},\n\t\t},\n\t\t{\n\t\t\tinput:    color.RGBA{R: 0, G: 0, B: 0, A: 255},\n\t\t\texpected: color.RGBA{R: 0, G: 0, B: 0, A: 255},\n\t\t},\n\t\t{\n\t\t\tinput:    color.RGBA{R: 100, G: 150, B: 200, A: 255},\n\t\t\texpected: color.RGBA{R: 50, G: 75, B: 100, A: 255},\n\t\t},\n\t}\n\n\tfor _, tt := range tests {\n\t\tresult := dimColor(tt.input)\n\t\tif result != tt.expected {\n\t\t\tt.Errorf(\"dimColor(%v) = %v, want %v\", tt.input, result, tt.expected)\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "pkg/raster/renderer.go",
    "content": "package raster\n\nimport (\n\t\"image\"\n\t\"runtime\"\n\t\"sync\"\n\t\"time\"\n\n\t\"github.com/mrmarble/termsvg/pkg/ir\"\n\t\"github.com/mrmarble/termsvg/pkg/progress\"\n\t\"golang.org/x/image/font\"\n)\n\n// frameRenderer handles the parallel rendering of frames.\ntype frameRenderer struct {\n\trasterizer *Rasterizer\n\trec        *ir.Recording\n}\n\n// render performs parallel frame rendering using a worker pool.\n// Note: IR-level deduplication is handled during IR generation, not here.\n//\n//nolint:dupl // render methods for RGBA and Paletted are similar but use different types\nfunc (fr *frameRenderer) render() ([]RasterFrame, error) {\n\tframes := fr.rec.Frames\n\tresults := make([]RasterFrame, len(frames))\n\ttotalFrames := len(frames)\n\n\t// Calculate image dimensions\n\twidth := fr.rasterizer.paddedWidth(fr.rec.Width)\n\theight := fr.rasterizer.paddedHeight(fr.rec.Height)\n\tcontentWidth := fr.rasterizer.contentWidth(fr.rec.Width)\n\tcontentHeight := fr.rasterizer.contentHeight(fr.rec.Height)\n\n\t// Pre-render the static base image (window chrome + terminal background)\n\tbaseImg := fr.createBaseImage(width, height, contentWidth, contentHeight)\n\n\t// Send initial progress\n\tif fr.rasterizer.config.ProgressCh != nil {\n\t\tfr.rasterizer.config.ProgressCh <- progress.Update{\n\t\t\tPhase:   \"Rasterizing\",\n\t\t\tCurrent: 0,\n\t\t\tTotal:   totalFrames,\n\t\t}\n\t}\n\n\t// Worker pool setup\n\tnumWorkers := runtime.NumCPU()\n\tjobs := make(chan int, totalFrames)\n\tvar wg sync.WaitGroup\n\n\t// Start workers - each worker creates its own font face\n\tfor w := 0; w < numWorkers; w++ {\n\t\twg.Add(1)\n\t\tgo func() {\n\t\t\tdefer wg.Done()\n\n\t\t\t// Create own font face for this worker\n\t\t\tface, err := loadFontFace(float64(fr.rasterizer.config.FontSize))\n\t\t\tif err != nil {\n\t\t\t\t// If font loading fails, use the shared one as fallback\n\t\t\t\tface = fr.rasterizer.fontFace\n\t\t\t}\n\n\t\t\tfor idx := range jobs {\n\t\t\t\tresults[idx] = fr.renderSingleFrame(idx, frames[idx], frames[idx].Delay, baseImg, face)\n\n\t\t\t\t// Send progress update\n\t\t\t\tif fr.rasterizer.config.ProgressCh != nil {\n\t\t\t\t\tfr.rasterizer.config.ProgressCh <- progress.Update{\n\t\t\t\t\t\tPhase:   \"Rasterizing\",\n\t\t\t\t\t\tCurrent: idx + 1,\n\t\t\t\t\t\tTotal:   totalFrames,\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}()\n\t}\n\n\t// Send jobs (frame indices)\n\tfor i := range frames {\n\t\tjobs <- i\n\t}\n\tclose(jobs)\n\n\t// Wait for all workers to complete\n\twg.Wait()\n\n\treturn results, nil\n}\n\n// renderSingleFrame renders a single frame to an RGBA image.\nfunc (fr *frameRenderer) renderSingleFrame(\n\tidx int,\n\tframe ir.Frame,\n\tdelay time.Duration,\n\tbaseImg *image.RGBA,\n\tface font.Face,\n) RasterFrame {\n\t// Create a copy of the base image for this frame\n\timg := fr.copyBaseImage(baseImg)\n\n\t// Draw the frame content using the worker's font face\n\tfr.drawFrameContent(img, frame, face)\n\n\treturn RasterFrame{\n\t\tImage: img,\n\t\tDelay: delay,\n\t\tIndex: idx,\n\t}\n}\n\n// createBaseImage creates the static base image with window chrome and terminal background.\n// Uses WindowBackground color for the terminal area to match window chrome,\n// ensuring full opacity for optimal GIF delta encoding performance.\nfunc (fr *frameRenderer) createBaseImage(width, height, contentWidth, contentHeight int) *image.RGBA {\n\timg := image.NewRGBA(image.Rect(0, 0, width, height))\n\n\t// Draw window chrome or plain background\n\tif fr.rasterizer.config.ShowWindow {\n\t\tfr.rasterizer.drawWindow(img)\n\t} else {\n\t\tfr.rasterizer.drawBackground(img)\n\t}\n\n\t// Draw terminal content background using WindowBackground color\n\t// This ensures full opacity for GIF delta encoding while maintaining\n\t// visual consistency with the window chrome\n\tfr.rasterizer.drawTerminalBackground(img, contentWidth, contentHeight)\n\n\treturn img\n}\n\n// copyBaseImage creates a deep copy of the base image.\nfunc (fr *frameRenderer) copyBaseImage(base *image.RGBA) *image.RGBA {\n\tbounds := base.Bounds()\n\timg := image.NewRGBA(bounds)\n\tcopy(img.Pix, base.Pix)\n\treturn img\n}\n\n// drawFrameContent draws the dynamic content (text runs and cursor) to an image.\nfunc (fr *frameRenderer) drawFrameContent(img *image.RGBA, frame ir.Frame, face font.Face) {\n\t// Draw all text runs\n\tfor _, row := range frame.Rows {\n\t\tfor _, run := range row.Runs {\n\t\t\tfr.rasterizer.drawTextRunWithFace(img, run, row.Y, face, fr.rec.Colors)\n\t\t}\n\t}\n\n\t// Draw cursor if visible and cursor rendering is enabled\n\tif fr.rasterizer.config.ShowCursor && frame.Cursor.Visible {\n\t\tfr.rasterizer.drawCursor(img, frame.Cursor, fr.rec.Colors)\n\t}\n}\n"
  },
  {
    "path": "pkg/raster/renderer_bench_test.go",
    "content": "package raster\n\nimport (\n\t\"image/color\"\n\t\"testing\"\n\t\"time\"\n\n\tirColor \"github.com/mrmarble/termsvg/pkg/color\"\n\t\"github.com/mrmarble/termsvg/pkg/ir\"\n\t\"github.com/mrmarble/termsvg/pkg/theme\"\n)\n\n// createBenchmarkRecording creates a recording with the specified number of frames\n// for benchmarking purposes.\nfunc createBenchmarkRecording(numFrames, width, height int) *ir.Recording {\n\tframes := make([]ir.Frame, numFrames)\n\tfor i := range frames {\n\t\tframes[i] = ir.Frame{\n\t\t\tIndex: i,\n\t\t\tDelay: 100 * time.Millisecond,\n\t\t\tRows: []ir.Row{\n\t\t\t\t{\n\t\t\t\t\tY: 0,\n\t\t\t\t\tRuns: []ir.TextRun{\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tText:     \"Benchmark test content for frame rendering performance\",\n\t\t\t\t\t\t\tStartCol: 0,\n\t\t\t\t\t\t\tAttrs: ir.CellAttrs{\n\t\t\t\t\t\t\t\tFG: 7, // White\n\t\t\t\t\t\t\t\tBG: 0, // Black\n\t\t\t\t\t\t\t},\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\tCursor: ir.Cursor{\n\t\t\t\tVisible: true,\n\t\t\t\tCol:     10,\n\t\t\t\tRow:     0,\n\t\t\t},\n\t\t}\n\t}\n\n\treturn &ir.Recording{\n\t\tWidth:  width,\n\t\tHeight: height,\n\t\tFrames: frames,\n\t\tColors: irColor.NewCatalog(color.RGBA{255, 255, 255, 255}, color.RGBA{0, 0, 0, 255}),\n\t}\n}\n\n// BenchmarkRasterize_10Frames benchmarks rendering 10 frames.\nfunc BenchmarkRasterize_10Frames(b *testing.B) {\n\trec := createBenchmarkRecording(10, 80, 24)\n\tconfig := Config{\n\t\tTheme:      theme.Default(),\n\t\tShowWindow: false,\n\t\tShowCursor: true,\n\t\tFontSize:   14,\n\t}\n\tr, err := New(&config)\n\tif err != nil {\n\t\tb.Fatalf(\"failed to create rasterizer: %v\", err)\n\t}\n\n\tb.ResetTimer()\n\tfor i := 0; i < b.N; i++ {\n\t\t_, _ = r.Rasterize(rec)\n\t}\n}\n\n// BenchmarkRasterize_50Frames benchmarks rendering 50 frames.\nfunc BenchmarkRasterize_50Frames(b *testing.B) {\n\trec := createBenchmarkRecording(50, 80, 24)\n\tconfig := Config{\n\t\tTheme:      theme.Default(),\n\t\tShowWindow: false,\n\t\tShowCursor: true,\n\t\tFontSize:   14,\n\t}\n\tr, err := New(&config)\n\tif err != nil {\n\t\tb.Fatalf(\"failed to create rasterizer: %v\", err)\n\t}\n\n\tb.ResetTimer()\n\tfor i := 0; i < b.N; i++ {\n\t\t_, _ = r.Rasterize(rec)\n\t}\n}\n\n// BenchmarkRasterize_100Frames benchmarks rendering 100 frames.\nfunc BenchmarkRasterize_100Frames(b *testing.B) {\n\trec := createBenchmarkRecording(100, 80, 24)\n\tconfig := Config{\n\t\tTheme:      theme.Default(),\n\t\tShowWindow: false,\n\t\tShowCursor: true,\n\t\tFontSize:   14,\n\t}\n\tr, err := New(&config)\n\tif err != nil {\n\t\tb.Fatalf(\"failed to create rasterizer: %v\", err)\n\t}\n\n\tb.ResetTimer()\n\tfor i := 0; i < b.N; i++ {\n\t\t_, _ = r.Rasterize(rec)\n\t}\n}\n\n// BenchmarkRasterize_200Frames benchmarks rendering 200 frames.\nfunc BenchmarkRasterize_200Frames(b *testing.B) {\n\trec := createBenchmarkRecording(200, 80, 24)\n\tconfig := Config{\n\t\tTheme:      theme.Default(),\n\t\tShowWindow: false,\n\t\tShowCursor: true,\n\t\tFontSize:   14,\n\t}\n\tr, err := New(&config)\n\tif err != nil {\n\t\tb.Fatalf(\"failed to create rasterizer: %v\", err)\n\t}\n\n\tb.ResetTimer()\n\tfor i := 0; i < b.N; i++ {\n\t\t_, _ = r.Rasterize(rec)\n\t}\n}\n\n// BenchmarkRasterize_WithWindow benchmarks rendering with window chrome.\nfunc BenchmarkRasterize_WithWindow(b *testing.B) {\n\trec := createBenchmarkRecording(50, 80, 24)\n\tconfig := Config{\n\t\tTheme:      theme.Default(),\n\t\tShowWindow: true,\n\t\tShowCursor: true,\n\t\tFontSize:   14,\n\t}\n\tr, err := New(&config)\n\tif err != nil {\n\t\tb.Fatalf(\"failed to create rasterizer: %v\", err)\n\t}\n\n\tb.ResetTimer()\n\tfor i := 0; i < b.N; i++ {\n\t\t_, _ = r.Rasterize(rec)\n\t}\n}\n"
  },
  {
    "path": "pkg/renderer/gif/renderer.go",
    "content": "// Package gif provides a GIF renderer for terminal recordings.\n// It generates animated GIFs by rasterizing the terminal state frame by frame.\npackage gif\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\t\"image\"\n\t\"image/color\"\n\t\"image/gif\"\n\t\"io\"\n\t\"log\"\n\t\"time\"\n\n\t\"github.com/mrmarble/termsvg/pkg/ir\"\n\t\"github.com/mrmarble/termsvg/pkg/progress\"\n\t\"github.com/mrmarble/termsvg/pkg/raster\"\n\t\"github.com/mrmarble/termsvg/pkg/renderer\"\n)\n\n// Renderer implements the renderer.Renderer interface for GIF output.\ntype Renderer struct {\n\tconfig     renderer.Config\n\trasterizer *raster.Rasterizer\n}\n\n// gifTimings holds timing measurements for GIF encoding.\ntype gifTimings struct {\n\tframesEqualTime   time.Duration\n\tcomputeDeltaTime  time.Duration\n\tframesEqualCalls  int\n\tcomputeDeltaCalls int\n}\n\n// GIF timing constants.\nconst (\n\t// gifTimeUnit is the GIF delay time unit in milliseconds (10ms per unit).\n\tgifTimeUnit = 10\n\n\t// minGifDelay is the minimum delay value to avoid browser clamping.\n\t// Browsers clamp delays < 20ms to 100ms, so we use 2 units = 20ms.\n\tminGifDelay = 2\n)\n\n// New creates a new GIF renderer with the given configuration.\nfunc New(config *renderer.Config) (*Renderer, error) {\n\trasterizer, err := renderer.NewRasterizer(config)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn &Renderer{\n\t\tconfig:     *config,\n\t\trasterizer: rasterizer,\n\t}, nil\n}\n\n// Format returns the output format name.\nfunc (r *Renderer) Format() string {\n\treturn \"gif\"\n}\n\n// FileExtension returns the file extension for GIF files.\nfunc (r *Renderer) FileExtension() string {\n\treturn \".gif\"\n}\n\n// Render generates an animated GIF from the recording.\nfunc (r *Renderer) Render(ctx context.Context, rec *ir.Recording, w io.Writer) error {\n\tif len(rec.Frames) == 0 {\n\t\treturn fmt.Errorf(\"recording has no frames\")\n\t}\n\n\tstartTime := time.Now()\n\tif r.config.Debug {\n\t\tlog.Printf(\"[GIF] Starting GIF generation for %d frames\", len(rec.Frames))\n\t}\n\n\t// Phase 1: Build the color palette for the GIF (needed before rendering)\n\tpaletteStart := time.Now()\n\tpalette := r.buildPalette(rec)\n\tif r.config.Debug {\n\t\tlog.Printf(\"[GIF] Phase 1 - Palette building: %v (%d colors)\", time.Since(paletteStart), len(palette))\n\t}\n\n\t// Phase 2: Use the raster package to render all frames directly to paletted images\n\t// This avoids the expensive RGBA -> Paletted conversion\n\trasterStart := time.Now()\n\tpalettedFrames, err := r.rasterizer.RasterizeWithPalette(rec, palette)\n\tif err != nil {\n\t\treturn fmt.Errorf(\"failed to rasterize frames: %w\", err)\n\t}\n\trasterDuration := time.Since(rasterStart)\n\n\tif r.config.Debug {\n\t\tlog.Printf(\"[GIF] Phase 2 - IR rasterization: %v (%d frames)\",\n\t\t\trasterDuration, len(palettedFrames))\n\t}\n\n\t// Check for cancellation after rendering\n\tselect {\n\tcase <-ctx.Done():\n\t\treturn ctx.Err()\n\tdefault:\n\t}\n\n\t// Phase 3: Assemble the GIF from paletted frames\n\tassembleStart := time.Now()\n\terr = r.assembleGIF(palettedFrames, w)\n\tif err != nil {\n\t\treturn err\n\t}\n\tif r.config.Debug {\n\t\tlog.Printf(\"[GIF] Phase 3 - GIF assembly: %v\", time.Since(assembleStart))\n\t\tlog.Printf(\"[GIF] Total time: %v\", time.Since(startTime))\n\t}\n\n\treturn nil\n}\n\nfunc (r *Renderer) sendProgress(current, total int) {\n\tif r.config.ProgressCh != nil {\n\t\tr.config.ProgressCh <- progress.Update{\n\t\t\tPhase:   \"Encoding\",\n\t\t\tCurrent: current,\n\t\t\tTotal:   total,\n\t\t}\n\t}\n}\n\n// assembleGIF creates the final GIF from rendered paletted frames using delta encoding.\n// GIF assembly requires multiple sequential steps for delta encoding.\n//\n\nfunc (r *Renderer) assembleGIF(frames []raster.PalettedFrame, w io.Writer) error {\n\tg := &gif.GIF{\n\t\tLoopCount: r.config.LoopCount,\n\t}\n\n\tvar prevPaletted *image.Paletted\n\ttotalFrames := len(frames)\n\n\tr.sendProgress(0, totalFrames)\n\n\ttimings := &gifTimings{}\n\n\tfor i, rf := range frames {\n\t\tdelay := r.calculateDelay(rf.Delay, i, len(frames))\n\n\t\tif r.processFrame(g, prevPaletted, rf.Image, delay, timings) {\n\t\t\tcontinue\n\t\t}\n\n\t\tprevPaletted = rf.Image\n\t\tr.sendProgress(i+1, totalFrames)\n\t}\n\n\treturn r.encodeAndLog(g, w, timings)\n}\n\nfunc (r *Renderer) calculateDelay(delay time.Duration, frameIdx, totalFrames int) int {\n\td := int(delay.Milliseconds() / gifTimeUnit)\n\tif d < minGifDelay && frameIdx < totalFrames-1 {\n\t\treturn minGifDelay\n\t}\n\treturn d\n}\n\nfunc (r *Renderer) processFrame(g *gif.GIF, prev, curr *image.Paletted, delay int, t *gifTimings) bool {\n\tif prev != nil {\n\t\tfeStart := time.Now()\n\t\tisEqual := framesEqual(prev, curr)\n\t\tif r.config.Debug {\n\t\t\tt.framesEqualTime += time.Since(feStart)\n\t\t\tt.framesEqualCalls++\n\t\t}\n\t\tif isEqual {\n\t\t\tg.Delay[len(g.Delay)-1] += delay\n\t\t\treturn true\n\t\t}\n\n\t\tcdStart := time.Now()\n\t\tdelta := computeDelta(prev, curr, 0)\n\t\tif r.config.Debug {\n\t\t\tt.computeDeltaTime += time.Since(cdStart)\n\t\t\tt.computeDeltaCalls++\n\t\t}\n\t\tg.Image = append(g.Image, delta)\n\t\tg.Disposal = append(g.Disposal, gif.DisposalNone)\n\t} else {\n\t\tg.Image = append(g.Image, curr)\n\t\tg.Disposal = append(g.Disposal, gif.DisposalNone)\n\t}\n\n\tg.Delay = append(g.Delay, delay)\n\treturn false\n}\n\nfunc (r *Renderer) encodeAndLog(g *gif.GIF, w io.Writer, t *gifTimings) error {\n\tencodeStart := time.Now()\n\terr := gif.EncodeAll(w, g)\n\tencodeTime := time.Since(encodeStart)\n\n\tif r.config.Debug {\n\t\totherTime := time.Since(time.Now().Add(-encodeTime)) - t.framesEqualTime - t.computeDeltaTime - encodeTime\n\t\tlog.Printf(\"[GIF] Phase 3 - GIF assembly breakdown:\")\n\t\tlog.Printf(\"[GIF]   - framesEqual: %v (%d calls)\", t.framesEqualTime, t.framesEqualCalls)\n\t\tlog.Printf(\"[GIF]   - computeDelta: %v (%d calls)\", t.computeDeltaTime, t.computeDeltaCalls)\n\t\tlog.Printf(\"[GIF]   - gif.EncodeAll: %v\", encodeTime)\n\t\tlog.Printf(\"[GIF]   - other (loop overhead): %v\", otherTime)\n\t}\n\n\treturn err\n}\n\n// framesEqual checks if two paletted images are identical\nfunc framesEqual(a, b *image.Paletted) bool {\n\tif a.Bounds() != b.Bounds() {\n\t\treturn false\n\t}\n\tfor i := range a.Pix {\n\t\tif a.Pix[i] != b.Pix[i] {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n\n// computeDelta creates a delta frame containing only pixels that changed\n// Unchanged pixels are set to the transparent color index\nfunc computeDelta(prev, curr *image.Paletted, transparentIdx uint8) *image.Paletted {\n\tbounds := curr.Bounds()\n\tdelta := image.NewPaletted(bounds, curr.Palette)\n\n\t// Fill with transparent initially\n\tfor i := range delta.Pix {\n\t\tdelta.Pix[i] = transparentIdx\n\t}\n\n\t// Copy only changed pixels\n\tfor i := range curr.Pix {\n\t\tif prev.Pix[i] != curr.Pix[i] {\n\t\t\tdelta.Pix[i] = curr.Pix[i]\n\t\t}\n\t}\n\n\treturn delta\n}\n\n// buildPalette creates a color palette from the recording's colors\nfunc (r *Renderer) buildPalette(rec *ir.Recording) color.Palette {\n\t// Collect all unique colors\n\tcolorSet := make(map[color.RGBA]bool)\n\n\t// Add theme colors\n\tcolorSet[r.config.Theme.Background] = true\n\tcolorSet[r.config.Theme.WindowBackground] = true\n\tcolorSet[r.config.Theme.Foreground] = true\n\tfor _, btnColor := range r.config.Theme.WindowButtons {\n\t\tcolorSet[btnColor] = true\n\t}\n\n\t// Add colors from the color catalog\n\tcolorSet[rec.Colors.DefaultForeground()] = true\n\tcolorSet[rec.Colors.DefaultBackground()] = true\n\tfor _, rgba := range rec.Colors.All() {\n\t\tcolorSet[rgba] = true\n\t}\n\n\t// Convert to palette\n\tpalette := make(color.Palette, 0, len(colorSet)+1)\n\n\t// Add transparent color first (for potential optimization)\n\tpalette = append(palette, color.RGBA{0, 0, 0, 0})\n\n\tfor c := range colorSet {\n\t\tpalette = append(palette, c)\n\t}\n\n\t// If palette is too small, pad with black\n\tfor len(palette) < 2 {\n\t\tpalette = append(palette, color.RGBA{0, 0, 0, 255})\n\t}\n\n\t// GIF supports max 256 colors - if we have more, the quantizer will handle it\n\tif len(palette) > 256 {\n\t\tpalette = palette[:256]\n\t}\n\n\treturn palette\n}\n"
  },
  {
    "path": "pkg/renderer/gif/renderer_test.go",
    "content": "package gif\n\nimport (\n\t\"bytes\"\n\t\"context\"\n\t\"errors\"\n\t\"image/color\"\n\t\"image/gif\"\n\t\"testing\"\n\t\"time\"\n\n\ttermcolor \"github.com/mrmarble/termsvg/pkg/color\"\n\t\"github.com/mrmarble/termsvg/pkg/ir\"\n\t\"github.com/mrmarble/termsvg/pkg/raster\"\n\t\"github.com/mrmarble/termsvg/pkg/renderer\"\n)\n\nfunc TestRenderer_Format(t *testing.T) {\n\tr, err := New(renderer.DefaultConfig())\n\tif err != nil {\n\t\tt.Fatalf(\"New() error = %v\", err)\n\t}\n\n\tif got := r.Format(); got != \"gif\" {\n\t\tt.Errorf(\"Format() = %v, want %v\", got, \"gif\")\n\t}\n}\n\nfunc TestRenderer_FileExtension(t *testing.T) {\n\tr, err := New(renderer.DefaultConfig())\n\tif err != nil {\n\t\tt.Fatalf(\"New() error = %v\", err)\n\t}\n\n\tif got := r.FileExtension(); got != \".gif\" {\n\t\tt.Errorf(\"FileExtension() = %v, want %v\", got, \".gif\")\n\t}\n}\n\nfunc TestRenderer_Render_EmptyRecording(t *testing.T) {\n\tr, err := New(renderer.DefaultConfig())\n\tif err != nil {\n\t\tt.Fatalf(\"New() error = %v\", err)\n\t}\n\n\trec := &ir.Recording{\n\t\tFrames: []ir.Frame{},\n\t}\n\n\tvar buf bytes.Buffer\n\terr = r.Render(context.Background(), rec, &buf)\n\tif err == nil {\n\t\tt.Error(\"expected error for empty recording\")\n\t}\n}\n\nfunc TestRenderer_Render_SingleFrame(t *testing.T) {\n\tr, err := New(renderer.DefaultConfig())\n\tif err != nil {\n\t\tt.Fatalf(\"New() error = %v\", err)\n\t}\n\n\tcolors := termcolor.NewCatalog(\n\t\tcolor.RGBA{R: 192, G: 192, B: 192, A: 255},\n\t\tcolor.RGBA{R: 0, G: 0, B: 0, A: 255},\n\t)\n\n\trec := &ir.Recording{\n\t\tWidth:    80,\n\t\tHeight:   24,\n\t\tDuration: 1 * time.Second,\n\t\tFrames: []ir.Frame{\n\t\t\t{\n\t\t\t\tTime:  0,\n\t\t\t\tDelay: 0,\n\t\t\t\tIndex: 0,\n\t\t\t\tRows: []ir.Row{\n\t\t\t\t\t{\n\t\t\t\t\t\tY: 0,\n\t\t\t\t\t\tRuns: []ir.TextRun{\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tText:     \"Hello, World!\",\n\t\t\t\t\t\t\t\tStartCol: 0,\n\t\t\t\t\t\t\t\tAttrs:    ir.CellAttrs{},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tCursor: ir.Cursor{Col: 13, Row: 0, Visible: true},\n\t\t\t},\n\t\t},\n\t\tColors: colors,\n\t\tStats:  ir.Stats{TotalFrames: 1},\n\t}\n\n\tvar buf bytes.Buffer\n\terr = r.Render(context.Background(), rec, &buf)\n\tif err != nil {\n\t\tt.Fatalf(\"Render() error = %v\", err)\n\t}\n\n\t// Verify it's a valid GIF\n\tg, err := gif.DecodeAll(&buf)\n\tif err != nil {\n\t\tt.Fatalf(\"failed to decode GIF: %v\", err)\n\t}\n\n\tif len(g.Image) != 1 {\n\t\tt.Errorf(\"expected 1 frame, got %d\", len(g.Image))\n\t}\n}\n\nfunc TestRenderer_Render_MultipleFrames(t *testing.T) {\n\tr, err := New(renderer.DefaultConfig())\n\tif err != nil {\n\t\tt.Fatalf(\"New() error = %v\", err)\n\t}\n\n\tcolors := termcolor.NewCatalog(\n\t\tcolor.RGBA{R: 192, G: 192, B: 192, A: 255},\n\t\tcolor.RGBA{R: 0, G: 0, B: 0, A: 255},\n\t)\n\n\trec := &ir.Recording{\n\t\tWidth:    80,\n\t\tHeight:   24,\n\t\tDuration: 2 * time.Second,\n\t\tFrames: []ir.Frame{\n\t\t\t{\n\t\t\t\tTime:  0,\n\t\t\t\tDelay: 0,\n\t\t\t\tIndex: 0,\n\t\t\t\tRows: []ir.Row{\n\t\t\t\t\t{Y: 0, Runs: []ir.TextRun{{Text: \"Frame 1\", StartCol: 0}}},\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\tTime:  1 * time.Second,\n\t\t\t\tDelay: 1 * time.Second,\n\t\t\t\tIndex: 1,\n\t\t\t\tRows: []ir.Row{\n\t\t\t\t\t{Y: 0, Runs: []ir.TextRun{{Text: \"Frame 2\", StartCol: 0}}},\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\tColors: colors,\n\t\tStats:  ir.Stats{TotalFrames: 2},\n\t}\n\n\tvar buf bytes.Buffer\n\terr = r.Render(context.Background(), rec, &buf)\n\tif err != nil {\n\t\tt.Fatalf(\"Render() error = %v\", err)\n\t}\n\n\tg, err := gif.DecodeAll(&buf)\n\tif err != nil {\n\t\tt.Fatalf(\"failed to decode GIF: %v\", err)\n\t}\n\n\tif len(g.Image) != 2 {\n\t\tt.Errorf(\"expected 2 frames, got %d\", len(g.Image))\n\t}\n\n\t// Check frame delay (1 second = 100 units of 10ms)\n\tif g.Delay[1] != 100 {\n\t\tt.Errorf(\"expected delay of 100 (1s), got %d\", g.Delay[1])\n\t}\n}\n\nfunc TestRenderer_Render_WithWindow(t *testing.T) {\n\tconfig := renderer.DefaultConfig()\n\tconfig.ShowWindow = true\n\n\tr, err := New(config)\n\tif err != nil {\n\t\tt.Fatalf(\"New() error = %v\", err)\n\t}\n\n\tcolors := termcolor.NewCatalog(\n\t\tcolor.RGBA{R: 192, G: 192, B: 192, A: 255},\n\t\tcolor.RGBA{R: 0, G: 0, B: 0, A: 255},\n\t)\n\n\trec := &ir.Recording{\n\t\tWidth:    40,\n\t\tHeight:   10,\n\t\tDuration: 1 * time.Second,\n\t\tFrames: []ir.Frame{\n\t\t\t{\n\t\t\t\tTime:  0,\n\t\t\t\tDelay: 0,\n\t\t\t\tIndex: 0,\n\t\t\t\tRows:  []ir.Row{},\n\t\t\t},\n\t\t},\n\t\tColors: colors,\n\t}\n\n\tvar buf bytes.Buffer\n\terr = r.Render(context.Background(), rec, &buf)\n\tif err != nil {\n\t\tt.Fatalf(\"Render() error = %v\", err)\n\t}\n\n\tg, err := gif.DecodeAll(&buf)\n\tif err != nil {\n\t\tt.Fatalf(\"failed to decode GIF: %v\", err)\n\t}\n\n\t// With window: height = content + header + padding\n\t// content = 10 * 25 = 250\n\t// header = 20 * 2 = 40\n\t// padding = 20\n\t// total = 310\n\texpectedHeight := 10*raster.RowHeight + raster.Padding*raster.HeaderSize + raster.Padding\n\tif g.Image[0].Bounds().Dy() != expectedHeight {\n\t\tt.Errorf(\"expected height %d, got %d\", expectedHeight, g.Image[0].Bounds().Dy())\n\t}\n}\n\nfunc TestRenderer_Render_WithoutWindow(t *testing.T) {\n\tconfig := renderer.DefaultConfig()\n\tconfig.ShowWindow = false\n\n\tr, err := New(config)\n\tif err != nil {\n\t\tt.Fatalf(\"New() error = %v\", err)\n\t}\n\n\tcolors := termcolor.NewCatalog(\n\t\tcolor.RGBA{R: 192, G: 192, B: 192, A: 255},\n\t\tcolor.RGBA{R: 0, G: 0, B: 0, A: 255},\n\t)\n\n\trec := &ir.Recording{\n\t\tWidth:    40,\n\t\tHeight:   10,\n\t\tDuration: 1 * time.Second,\n\t\tFrames: []ir.Frame{\n\t\t\t{\n\t\t\t\tTime:  0,\n\t\t\t\tDelay: 0,\n\t\t\t\tIndex: 0,\n\t\t\t\tRows:  []ir.Row{},\n\t\t\t},\n\t\t},\n\t\tColors: colors,\n\t}\n\n\tvar buf bytes.Buffer\n\terr = r.Render(context.Background(), rec, &buf)\n\tif err != nil {\n\t\tt.Fatalf(\"Render() error = %v\", err)\n\t}\n\n\tg, err := gif.DecodeAll(&buf)\n\tif err != nil {\n\t\tt.Fatalf(\"failed to decode GIF: %v\", err)\n\t}\n\n\t// Without window: height = content + 2*padding\n\texpectedHeight := 10*raster.RowHeight + 2*raster.Padding\n\tif g.Image[0].Bounds().Dy() != expectedHeight {\n\t\tt.Errorf(\"expected height %d, got %d\", expectedHeight, g.Image[0].Bounds().Dy())\n\t}\n}\n\nfunc TestRenderer_Render_ContextCancellation(t *testing.T) {\n\tr, err := New(renderer.DefaultConfig())\n\tif err != nil {\n\t\tt.Fatalf(\"New() error = %v\", err)\n\t}\n\n\tcolors := termcolor.NewCatalog(\n\t\tcolor.RGBA{R: 192, G: 192, B: 192, A: 255},\n\t\tcolor.RGBA{R: 0, G: 0, B: 0, A: 255},\n\t)\n\n\t// Create a recording with many frames\n\tframes := make([]ir.Frame, 100)\n\tfor i := range frames {\n\t\tframes[i] = ir.Frame{\n\t\t\tTime:  time.Duration(i) * 100 * time.Millisecond,\n\t\t\tDelay: 100 * time.Millisecond,\n\t\t\tIndex: i,\n\t\t\tRows:  []ir.Row{},\n\t\t}\n\t}\n\n\trec := &ir.Recording{\n\t\tWidth:    80,\n\t\tHeight:   24,\n\t\tDuration: 10 * time.Second,\n\t\tFrames:   frames,\n\t\tColors:   colors,\n\t}\n\n\t// Create already-cancelled context\n\tctx, cancel := context.WithCancel(context.Background())\n\tcancel()\n\n\tvar buf bytes.Buffer\n\terr = r.Render(ctx, rec, &buf)\n\tif !errors.Is(err, context.Canceled) {\n\t\tt.Errorf(\"expected context.Canceled error, got %v\", err)\n\t}\n}\n"
  },
  {
    "path": "pkg/renderer/renderer.go",
    "content": "package renderer\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\t\"io\"\n\n\t\"github.com/mrmarble/termsvg/pkg/ir\"\n\t\"github.com/mrmarble/termsvg/pkg/progress\"\n\t\"github.com/mrmarble/termsvg/pkg/raster\"\n\t\"github.com/mrmarble/termsvg/pkg/theme\"\n)\n\n// Renderer defines the interface for output formats\ntype Renderer interface {\n\tRender(ctx context.Context, rec *ir.Recording, w io.Writer) error\n\tFormat() string\n\tFileExtension() string\n}\n\n// Config holds renderer options\ntype Config struct {\n\tTheme      theme.Theme\n\tShowWindow bool\n\tShowCursor bool // Enable cursor rendering (default: true)\n\tFontFamily string\n\tFontSize   int\n\tLoopCount  int // 0 = infinite, -1 = no loop\n\tMinify     bool\n\tDebug      bool // Enable debug logging\n\n\t// Video encoding options (for WebM/MP4 formats)\n\tVideoBitrate int // Video bitrate in kbps (0 = use default)\n\tFrameRate    int // Target frame rate in FPS (0 = auto-calculate)\n\n\t// ProgressCh is an optional channel for progress updates\n\tProgressCh chan<- progress.Update\n}\n\n// DefaultConfig returns a Config with sensible defaults.\nfunc DefaultConfig() *Config {\n\treturn &Config{\n\t\tTheme:      theme.Default(),\n\t\tShowWindow: true,\n\t\tShowCursor: true,\n\t\tFontFamily: \"Monaco,Consolas,'Courier New',monospace\",\n\t\tFontSize:   20,\n\t\tLoopCount:  0,\n\t\tMinify:     false,\n\t}\n}\n\n// NewRasterizer creates a raster.Rasterizer from renderer configuration.\n// This helper reduces duplication between renderers that need rasterization.\nfunc NewRasterizer(config *Config) (*raster.Rasterizer, error) {\n\trasterConfig := raster.Config{\n\t\tTheme:      config.Theme,\n\t\tShowWindow: config.ShowWindow,\n\t\tShowCursor: config.ShowCursor,\n\t\tFontSize:   config.FontSize,\n\t\tRowHeight:  raster.RowHeight,\n\t\tColWidth:   raster.ColWidth,\n\t\tPadding:    raster.Padding,\n\t\tHeaderSize: raster.HeaderSize,\n\t\tProgressCh: config.ProgressCh,\n\t}\n\n\trasterizer, err := raster.New(&rasterConfig)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"failed to create rasterizer: %w\", err)\n\t}\n\n\treturn rasterizer, nil\n}\n"
  },
  {
    "path": "pkg/renderer/svg/renderer.go",
    "content": "// Package svg provides an SVG renderer for terminal recordings.\n// It generates animated SVGs using CSS keyframes to translate between frames.\npackage svg\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\t\"html\"\n\t\"io\"\n\t\"strings\"\n\n\t\"github.com/mrmarble/termsvg/pkg/color\"\n\t\"github.com/mrmarble/termsvg/pkg/ir\"\n\t\"github.com/mrmarble/termsvg/pkg/renderer\"\n)\n\n// Renderer implements the renderer.Renderer interface for SVG output.\ntype Renderer struct {\n\tconfig renderer.Config\n}\n\n// canvas holds rendering state\ntype canvas struct {\n\tw          io.Writer\n\trec        *ir.Recording\n\tconfig     renderer.Config\n\tclassNames map[color.ID]string\n}\n\n// Layout constants for SVG rendering\nconst (\n\tRowHeight  = 25 // pixels per row\n\tColWidth   = 12 // pixels per column\n\tPadding    = 20 // padding around content\n\tHeaderSize = 2  // multiplier for header area (window buttons)\n\n\t// windowCornerRadius is the radius for rounded window corners.\n\twindowCornerRadius = 5\n\n\t// windowButtonSpacing is the horizontal spacing between window buttons.\n\twindowButtonSpacing = 20\n\n\t// windowButtonRadius is the radius of window control buttons.\n\twindowButtonRadius = 6\n)\n\n// New creates a new SVG renderer with the given configuration.\nfunc New(config *renderer.Config) *Renderer {\n\treturn &Renderer{config: *config}\n}\n\n// Format returns the output format name.\nfunc (r *Renderer) Format() string {\n\treturn \"svg\"\n}\n\n// FileExtension returns the file extension for SVG files.\nfunc (r *Renderer) FileExtension() string {\n\treturn \".svg\"\n}\n\n// Render generates an animated SVG from the recording.\nfunc (r *Renderer) Render(ctx context.Context, rec *ir.Recording, w io.Writer) error {\n\tif len(rec.Frames) == 0 {\n\t\treturn fmt.Errorf(\"recording has no frames\")\n\t}\n\n\tc := &canvas{\n\t\tw:          w,\n\t\trec:        rec,\n\t\tconfig:     r.config,\n\t\tclassNames: rec.Colors.GenerateClassNames(),\n\t}\n\n\treturn c.render(ctx)\n}\n\nfunc (c *canvas) contentWidth() int {\n\treturn c.rec.Width * ColWidth\n}\n\nfunc (c *canvas) contentHeight() int {\n\treturn c.rec.Height * RowHeight\n}\n\nfunc (c *canvas) paddedWidth() int {\n\treturn c.contentWidth() + 2*Padding\n}\n\nfunc (c *canvas) paddedHeight() int {\n\tif c.config.ShowWindow {\n\t\treturn c.contentHeight() + Padding*HeaderSize + Padding\n\t}\n\treturn c.contentHeight() + 2*Padding\n}\n\nfunc (c *canvas) render(ctx context.Context) error {\n\t// Check for cancellation\n\tselect {\n\tcase <-ctx.Done():\n\t\treturn ctx.Err()\n\tdefault:\n\t}\n\n\t// SVG header\n\twidth := c.paddedWidth()\n\theight := c.paddedHeight()\n\tfmt.Fprintf(c.w, `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"%d\" height=\"%d\">`, width, height)\n\n\tif c.config.ShowWindow {\n\t\tc.writeWindow()\n\t} else {\n\t\tc.writeBackground()\n\t}\n\n\t// Content group with clipping\n\tcontentY := Padding\n\tif c.config.ShowWindow {\n\t\tcontentY = Padding * HeaderSize\n\t}\n\n\tfmt.Fprintf(c.w, `<defs><clipPath id=\"clip\"><rect width=\"%d\" height=\"%d\"/></clipPath></defs>`,\n\t\tc.contentWidth(), c.contentHeight())\n\n\tfmt.Fprintf(c.w, `<g transform=\"translate(%d,%d)\" clip-path=\"url(#clip)\">`, Padding, contentY)\n\n\tc.writeStyles()\n\tc.writeBGFilters()\n\n\t// Animation group\n\tduration := c.rec.Duration.Seconds()\n\tloopAttr := \"infinite\"\n\tif c.config.LoopCount == -1 {\n\t\tloopAttr = \"1\"\n\t} else if c.config.LoopCount > 0 {\n\t\tloopAttr = fmt.Sprintf(\"%d\", c.config.LoopCount)\n\t}\n\n\tfmt.Fprintf(c.w, `<g style=\"animation:k %.3fs %s steps(1,end)\">`, duration, loopAttr)\n\n\tc.writeFrames()\n\n\tfmt.Fprint(c.w, `</g></g></svg>`)\n\n\treturn nil\n}\n\nfunc (c *canvas) writeBackground() {\n\tbgHex := color.RGBAtoHex(c.config.Theme.WindowBackground)\n\tfmt.Fprintf(c.w, `<rect width=\"100%%\" height=\"100%%\" fill=\"%s\"/>`, bgHex)\n}\n\nfunc (c *canvas) writeWindow() {\n\ttheme := c.config.Theme\n\n\t// Window background with rounded corners\n\tbgHex := color.RGBAtoHex(theme.WindowBackground)\n\tfmt.Fprintf(c.w, `<rect rx=\"%d\" width=\"100%%\" height=\"100%%\" fill=\"%s\"/>`, windowCornerRadius, bgHex)\n\n\t// Window buttons (close, minimize, maximize)\n\tbuttonY := Padding\n\tfor i, btnColor := range theme.WindowButtons {\n\t\tbtnHex := color.RGBAtoHex(btnColor)\n\t\tx := Padding + i*windowButtonSpacing\n\t\tfmt.Fprintf(c.w, `<circle cx=\"%d\" cy=\"%d\" r=\"%d\" fill=\"%s\"/>`, x, buttonY, windowButtonRadius, btnHex)\n\t}\n}\n\nfunc (c *canvas) writeStyles() {\n\tvar sb strings.Builder\n\tsb.WriteString(\"<style>\")\n\n\t// Keyframes animation\n\tsb.WriteString(c.generateKeyframes())\n\n\t// Cursor blink animation\n\tsb.WriteString(\"@keyframes blink{0%,50%{opacity:1}50.01%,100%{opacity:0}}\")\n\n\t// Default text style (white-space:pre preserves spaces, survives minification)\n\tfgHex := color.RGBAtoHex(c.rec.Colors.DefaultForeground())\n\tfmt.Fprintf(&sb, \"text{font-family:%s;font-size:%dpx;fill:%s;white-space:pre}\",\n\t\tc.config.FontFamily, c.config.FontSize, fgHex)\n\n\t// Cursor style\n\tfmt.Fprintf(&sb, \".cursor{fill:%s;animation:blink 1s step-end infinite}\", fgHex)\n\n\t// Color classes\n\tfor id, rgba := range c.rec.Colors.All() {\n\t\tclassName := c.classNames[id]\n\t\thex := color.RGBAtoHex(rgba)\n\t\tfmt.Fprintf(&sb, \".%s{fill:%s}\", className, hex)\n\t}\n\n\t// Attribute classes (only if used)\n\tif c.rec.Stats.HasBold {\n\t\tsb.WriteString(\".bold{font-weight:bold}\")\n\t}\n\tif c.rec.Stats.HasItalic {\n\t\tsb.WriteString(\".italic{font-style:italic}\")\n\t}\n\tif c.rec.Stats.HasUnderline {\n\t\tsb.WriteString(\".underline{text-decoration:underline}\")\n\t}\n\tif c.rec.Stats.HasDim {\n\t\tsb.WriteString(\".dim{opacity:0.5}\")\n\t}\n\n\tsb.WriteString(\"</style>\")\n\tfmt.Fprint(c.w, sb.String())\n}\n\nfunc (c *canvas) generateKeyframes() string {\n\tif len(c.rec.Frames) <= 1 {\n\t\treturn \"@keyframes k{0%{transform:translateX(0)}}\"\n\t}\n\n\tvar sb strings.Builder\n\tsb.WriteString(\"@keyframes k{\")\n\n\tduration := c.rec.Duration.Seconds()\n\tpw := c.paddedWidth()\n\n\tfor i, frame := range c.rec.Frames {\n\t\tpct := frame.Time.Seconds() / duration * 100\n\t\toffset := -pw * i\n\t\tfmt.Fprintf(&sb, \"%.3f%%{transform:translateX(%dpx)}\", pct, offset)\n\t}\n\n\tsb.WriteString(\"}\")\n\treturn sb.String()\n}\n\nfunc (c *canvas) writeBGFilters() {\n\t// Collect unique background colors used in frames\n\tbgColors := make(map[color.ID]bool)\n\tfor _, frame := range c.rec.Frames {\n\t\tfor _, row := range frame.Rows {\n\t\t\tfor _, run := range row.Runs {\n\t\t\t\tif !c.rec.Colors.IsDefault(run.Attrs.BG) {\n\t\t\t\t\tbgColors[run.Attrs.BG] = true\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tif len(bgColors) == 0 {\n\t\treturn\n\t}\n\n\tfmt.Fprint(c.w, \"<defs>\")\n\tfor id := range bgColors {\n\t\trgba := c.rec.Colors.Resolved(id)\n\t\thex := color.RGBAtoHex(rgba)\n\t\tfmt.Fprintf(c.w, `<filter id=\"bg_%d\" x=\"0\" y=\"0\" width=\"1\" height=\"1\">`, id)\n\t\tfmt.Fprintf(c.w, `<feFlood flood-color=\"%s\"/><feComposite in=\"SourceGraphic\" operator=\"over\"/>`, hex)\n\t\tfmt.Fprint(c.w, `</filter>`)\n\t}\n\tfmt.Fprint(c.w, \"</defs>\")\n}\n\nfunc (c *canvas) writeFrames() {\n\tpw := c.paddedWidth()\n\tfor i, frame := range c.rec.Frames {\n\t\toffset := pw * i\n\t\tfmt.Fprintf(c.w, `<g transform=\"translate(%d,0)\">`, offset)\n\t\tc.writeFrame(frame)\n\t\tfmt.Fprint(c.w, \"</g>\")\n\t}\n}\n\nfunc (c *canvas) writeFrame(frame ir.Frame) {\n\tfor _, row := range frame.Rows {\n\t\tfor _, run := range row.Runs {\n\t\t\tc.writeTextRun(run, row.Y)\n\t\t}\n\t}\n\n\t// Render cursor if visible and cursor rendering is enabled\n\tif c.config.ShowCursor && frame.Cursor.Visible {\n\t\tc.writeCursor(frame.Cursor)\n\t}\n}\n\nfunc (c *canvas) writeCursor(cursor ir.Cursor) {\n\tx := cursor.Col * ColWidth\n\ty := cursor.Row * RowHeight\n\n\t// Render cursor as a rectangle (block cursor)\n\tfmt.Fprintf(c.w, `<rect class=\"cursor\" x=\"%d\" y=\"%d\" width=\"%d\" height=\"%d\"/>`,\n\t\tx, y, ColWidth, RowHeight)\n}\n\nfunc (c *canvas) writeTextRun(run ir.TextRun, rowY int) {\n\tif run.Text == \"\" {\n\t\treturn\n\t}\n\n\t// Skip whitespace-only runs with default background - nothing visible to render\n\tif strings.TrimSpace(run.Text) == \"\" && c.rec.Colors.IsDefault(run.Attrs.BG) {\n\t\treturn\n\t}\n\n\t// Replace spaces with non-breaking spaces to survive minification\n\t// Only needed when minifying, as the minifier strips regular spaces\n\ttext := run.Text\n\tif c.config.Minify {\n\t\ttext = strings.ReplaceAll(text, \" \", \"\\u00A0\")\n\t}\n\n\tx := run.StartCol * ColWidth\n\ty := (rowY*RowHeight + RowHeight) - 5 // baseline offset\n\n\t// Build class list\n\tvar classes []string\n\tif !c.rec.Colors.IsDefault(run.Attrs.FG) {\n\t\tclasses = append(classes, c.classNames[run.Attrs.FG])\n\t}\n\tif run.Attrs.Bold {\n\t\tclasses = append(classes, \"bold\")\n\t}\n\tif run.Attrs.Italic {\n\t\tclasses = append(classes, \"italic\")\n\t}\n\tif run.Attrs.Underline {\n\t\tclasses = append(classes, \"underline\")\n\t}\n\tif run.Attrs.Dim {\n\t\tclasses = append(classes, \"dim\")\n\t}\n\n\t// Build attributes\n\tclassAttr := \"\"\n\tif len(classes) > 0 {\n\t\tclassAttr = fmt.Sprintf(\" class=%q\", strings.Join(classes, \" \"))\n\t}\n\n\tfilterAttr := \"\"\n\tif !c.rec.Colors.IsDefault(run.Attrs.BG) {\n\t\tfilterAttr = fmt.Sprintf(` filter=\"url(#bg_%d)\"`, run.Attrs.BG)\n\t}\n\n\tfmt.Fprintf(c.w, `<text x=\"%d\" y=\"%d\" xml:space=\"preserve\"%s%s>%s</text>`,\n\t\tx, y, classAttr, filterAttr, html.EscapeString(text))\n}\n"
  },
  {
    "path": "pkg/renderer/svg/renderer_test.go",
    "content": "package svg\n\nimport (\n\t\"bytes\"\n\t\"context\"\n\t\"errors\"\n\t\"image/color\"\n\t\"os\"\n\t\"path/filepath\"\n\t\"strings\"\n\t\"testing\"\n\t\"time\"\n\n\t\"github.com/mrmarble/termsvg/pkg/asciicast\"\n\ttermcolor \"github.com/mrmarble/termsvg/pkg/color\"\n\t\"github.com/mrmarble/termsvg/pkg/ir\"\n\t\"github.com/mrmarble/termsvg/pkg/renderer\"\n)\n\nfunc TestNew(t *testing.T) {\n\tconfig := renderer.DefaultConfig()\n\tr := New(config)\n\n\tif r == nil {\n\t\tt.Fatal(\"New() returned nil\")\n\t}\n\tif r.Format() != \"svg\" {\n\t\tt.Errorf(\"Format() = %q, want %q\", r.Format(), \"svg\")\n\t}\n\tif r.FileExtension() != \".svg\" {\n\t\tt.Errorf(\"FileExtension() = %q, want %q\", r.FileExtension(), \".svg\")\n\t}\n}\n\nfunc TestRender_EmptyRecording(t *testing.T) {\n\tr := New(renderer.DefaultConfig())\n\trec := &ir.Recording{\n\t\tWidth:  80,\n\t\tHeight: 24,\n\t\tFrames: []ir.Frame{},\n\t\tColors: termcolor.NewCatalog(\n\t\t\tcolor.RGBA{R: 255, G: 255, B: 255, A: 255},\n\t\t\tcolor.RGBA{R: 0, G: 0, B: 0, A: 255},\n\t\t),\n\t}\n\n\tvar buf bytes.Buffer\n\terr := r.Render(context.Background(), rec, &buf)\n\n\tif err == nil {\n\t\tt.Error(\"expected error for empty recording, got nil\")\n\t}\n}\n\nfunc TestRender_BasicStructure(t *testing.T) {\n\tr := New(renderer.DefaultConfig())\n\trec := createTestRecording()\n\n\tvar buf bytes.Buffer\n\terr := r.Render(context.Background(), rec, &buf)\n\tif err != nil {\n\t\tt.Fatalf(\"Render() error = %v\", err)\n\t}\n\n\tsvg := buf.String()\n\n\t// Check basic SVG structure\n\tchecks := []string{\n\t\t`<svg xmlns=\"http://www.w3.org/2000/svg\"`,\n\t\t`</svg>`,\n\t\t`<style>`,\n\t\t`</style>`,\n\t\t`@keyframes k`,\n\t\t`<text`,\n\t}\n\n\tfor _, check := range checks {\n\t\tif !strings.Contains(svg, check) {\n\t\t\tt.Errorf(\"SVG missing expected element: %q\", check)\n\t\t}\n\t}\n}\n\nfunc TestRender_WindowChrome(t *testing.T) {\n\tconfig := renderer.DefaultConfig()\n\tconfig.ShowWindow = true\n\tr := New(config)\n\trec := createTestRecording()\n\n\tvar buf bytes.Buffer\n\terr := r.Render(context.Background(), rec, &buf)\n\tif err != nil {\n\t\tt.Fatalf(\"Render() error = %v\", err)\n\t}\n\n\tsvg := buf.String()\n\n\t// Should have rounded rect for window\n\tif !strings.Contains(svg, `rx=\"5\"`) {\n\t\tt.Error(\"SVG missing window rounded corners\")\n\t}\n\n\t// Should have window buttons (circles)\n\tif !strings.Contains(svg, `<circle`) {\n\t\tt.Error(\"SVG missing window buttons\")\n\t}\n}\n\nfunc TestRender_NoWindowChrome(t *testing.T) {\n\tconfig := renderer.DefaultConfig()\n\tconfig.ShowWindow = false\n\tr := New(config)\n\trec := createTestRecording()\n\n\tvar buf bytes.Buffer\n\terr := r.Render(context.Background(), rec, &buf)\n\tif err != nil {\n\t\tt.Fatalf(\"Render() error = %v\", err)\n\t}\n\n\tsvg := buf.String()\n\n\t// Should not have window buttons\n\tif strings.Contains(svg, `<circle`) {\n\t\tt.Error(\"SVG should not have window buttons when ShowWindow=false\")\n\t}\n}\n\nfunc TestRender_Keyframes(t *testing.T) {\n\tr := New(renderer.DefaultConfig())\n\trec := createTestRecording()\n\n\tvar buf bytes.Buffer\n\terr := r.Render(context.Background(), rec, &buf)\n\tif err != nil {\n\t\tt.Fatalf(\"Render() error = %v\", err)\n\t}\n\n\tsvg := buf.String()\n\n\t// Check keyframes exist\n\tif !strings.Contains(svg, \"@keyframes k{\") {\n\t\tt.Error(\"SVG missing keyframes animation\")\n\t}\n\n\t// Check animation is applied\n\tif !strings.Contains(svg, \"animation:k\") {\n\t\tt.Error(\"SVG missing animation style\")\n\t}\n}\n\nfunc TestRender_ColorClasses(t *testing.T) {\n\tr := New(renderer.DefaultConfig())\n\trec := createTestRecording()\n\n\t// Register a specific color\n\tpalette := termcolor.Standard()\n\tredID := rec.Colors.Register(termcolor.FromRGB(255, 0, 0), &palette)\n\n\t// Add a frame with that color\n\trec.Frames = append(rec.Frames, ir.Frame{\n\t\tTime:  2 * time.Second,\n\t\tDelay: time.Second,\n\t\tIndex: 2,\n\t\tRows: []ir.Row{\n\t\t\t{Y: 0, Runs: []ir.TextRun{\n\t\t\t\t{Text: \"Red\", StartCol: 0, Attrs: ir.CellAttrs{FG: redID}},\n\t\t\t}},\n\t\t},\n\t})\n\trec.Duration = 2 * time.Second\n\n\tvar buf bytes.Buffer\n\terr := r.Render(context.Background(), rec, &buf)\n\tif err != nil {\n\t\tt.Fatalf(\"Render() error = %v\", err)\n\t}\n\n\tsvg := buf.String()\n\n\t// Should have color class definition\n\tif !strings.Contains(svg, \"#FF0000\") {\n\t\tt.Error(\"SVG missing red color definition\")\n\t}\n\n\t// Should have class applied to text\n\tif !strings.Contains(svg, `class=\"`) {\n\t\tt.Error(\"SVG missing class attribute on text\")\n\t}\n}\n\nfunc TestRender_TextAttributes(t *testing.T) {\n\tconfig := renderer.DefaultConfig()\n\tr := New(config)\n\n\trec := &ir.Recording{\n\t\tWidth:    80,\n\t\tHeight:   24,\n\t\tDuration: time.Second,\n\t\tColors: termcolor.NewCatalog(\n\t\t\tcolor.RGBA{R: 255, G: 255, B: 255, A: 255},\n\t\t\tcolor.RGBA{R: 0, G: 0, B: 0, A: 255},\n\t\t),\n\t\tFrames: []ir.Frame{\n\t\t\t{\n\t\t\t\tTime:  0,\n\t\t\t\tIndex: 0,\n\t\t\t\tRows: []ir.Row{\n\t\t\t\t\t{Y: 0, Runs: []ir.TextRun{\n\t\t\t\t\t\t{Text: \"Bold\", StartCol: 0, Attrs: ir.CellAttrs{Bold: true}},\n\t\t\t\t\t\t{Text: \"Italic\", StartCol: 5, Attrs: ir.CellAttrs{Italic: true}},\n\t\t\t\t\t\t{Text: \"Underline\", StartCol: 12, Attrs: ir.CellAttrs{Underline: true}},\n\t\t\t\t\t\t{Text: \"Dim\", StartCol: 22, Attrs: ir.CellAttrs{Dim: true}},\n\t\t\t\t\t}},\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\tStats: ir.Stats{\n\t\t\tHasBold:      true,\n\t\t\tHasItalic:    true,\n\t\t\tHasUnderline: true,\n\t\t\tHasDim:       true,\n\t\t},\n\t}\n\n\tvar buf bytes.Buffer\n\terr := r.Render(context.Background(), rec, &buf)\n\tif err != nil {\n\t\tt.Fatalf(\"Render() error = %v\", err)\n\t}\n\n\tsvg := buf.String()\n\n\t// Check attribute classes exist\n\tif !strings.Contains(svg, \".bold{font-weight:bold}\") {\n\t\tt.Error(\"SVG missing bold class\")\n\t}\n\tif !strings.Contains(svg, \".italic{font-style:italic}\") {\n\t\tt.Error(\"SVG missing italic class\")\n\t}\n\tif !strings.Contains(svg, \".underline{text-decoration:underline}\") {\n\t\tt.Error(\"SVG missing underline class\")\n\t}\n\tif !strings.Contains(svg, \".dim{opacity:0.5}\") {\n\t\tt.Error(\"SVG missing dim class\")\n\t}\n\n\t// Check classes are applied to text\n\tif !strings.Contains(svg, `class=\"bold\"`) {\n\t\tt.Error(\"SVG missing bold class on text\")\n\t}\n}\n\nfunc TestRender_BackgroundFilters(t *testing.T) {\n\tconfig := renderer.DefaultConfig()\n\tr := New(config)\n\n\trec := &ir.Recording{\n\t\tWidth:    80,\n\t\tHeight:   24,\n\t\tDuration: time.Second,\n\t\tColors: termcolor.NewCatalog(\n\t\t\tcolor.RGBA{R: 255, G: 255, B: 255, A: 255},\n\t\t\tcolor.RGBA{R: 0, G: 0, B: 0, A: 255},\n\t\t),\n\t\tFrames: []ir.Frame{},\n\t}\n\n\t// Register a background color\n\tbgPalette := termcolor.Standard()\n\tbgID := rec.Colors.Register(termcolor.FromRGB(0, 0, 255), &bgPalette)\n\n\trec.Frames = []ir.Frame{\n\t\t{\n\t\t\tTime:  0,\n\t\t\tIndex: 0,\n\t\t\tRows: []ir.Row{\n\t\t\t\t{Y: 0, Runs: []ir.TextRun{\n\t\t\t\t\t{Text: \"WithBG\", StartCol: 0, Attrs: ir.CellAttrs{BG: bgID}},\n\t\t\t\t}},\n\t\t\t},\n\t\t},\n\t}\n\n\tvar buf bytes.Buffer\n\terr := r.Render(context.Background(), rec, &buf)\n\tif err != nil {\n\t\tt.Fatalf(\"Render() error = %v\", err)\n\t}\n\n\tsvg := buf.String()\n\n\t// Check filter is defined\n\tif !strings.Contains(svg, `<filter id=\"bg_`) {\n\t\tt.Error(\"SVG missing background filter definition\")\n\t}\n\tif !strings.Contains(svg, `feFlood`) {\n\t\tt.Error(\"SVG missing feFlood in filter\")\n\t}\n\n\t// Check filter is applied\n\tif !strings.Contains(svg, `filter=\"url(#bg_`) {\n\t\tt.Error(\"SVG missing filter reference on text\")\n\t}\n}\n\nfunc TestRender_HTMLEscaping(t *testing.T) {\n\tr := New(renderer.DefaultConfig())\n\n\trec := &ir.Recording{\n\t\tWidth:    80,\n\t\tHeight:   24,\n\t\tDuration: time.Second,\n\t\tColors: termcolor.NewCatalog(\n\t\t\tcolor.RGBA{R: 255, G: 255, B: 255, A: 255},\n\t\t\tcolor.RGBA{R: 0, G: 0, B: 0, A: 255},\n\t\t),\n\t\tFrames: []ir.Frame{\n\t\t\t{\n\t\t\t\tTime:  0,\n\t\t\t\tIndex: 0,\n\t\t\t\tRows: []ir.Row{\n\t\t\t\t\t{Y: 0, Runs: []ir.TextRun{\n\t\t\t\t\t\t{Text: \"<script>alert('xss')</script>\", StartCol: 0},\n\t\t\t\t\t}},\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t}\n\n\tvar buf bytes.Buffer\n\terr := r.Render(context.Background(), rec, &buf)\n\tif err != nil {\n\t\tt.Fatalf(\"Render() error = %v\", err)\n\t}\n\n\tsvg := buf.String()\n\n\t// Should escape HTML\n\tif strings.Contains(svg, \"<script>\") {\n\t\tt.Error(\"SVG contains unescaped script tag\")\n\t}\n\tif !strings.Contains(svg, \"&lt;script&gt;\") {\n\t\tt.Error(\"SVG missing escaped script tag\")\n\t}\n}\n\nfunc TestRender_LoopCount(t *testing.T) {\n\ttests := []struct {\n\t\tname      string\n\t\tloopCount int\n\t\twant      string\n\t}{\n\t\t{\"infinite\", 0, \"infinite\"},\n\t\t{\"no loop\", -1, \"1\"},\n\t\t{\"specific count\", 3, \"3\"},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tconfig := renderer.DefaultConfig()\n\t\t\tconfig.LoopCount = tt.loopCount\n\t\t\tr := New(config)\n\t\t\trec := createTestRecording()\n\n\t\t\tvar buf bytes.Buffer\n\t\t\terr := r.Render(context.Background(), rec, &buf)\n\t\t\tif err != nil {\n\t\t\t\tt.Fatalf(\"Render() error = %v\", err)\n\t\t\t}\n\n\t\t\tsvg := buf.String()\n\t\t\texpected := tt.want + \" steps(1,end)\"\n\t\t\tif !strings.Contains(svg, expected) {\n\t\t\t\tt.Errorf(\"SVG missing loop count %q\", expected)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestRender_ContextCancellation(t *testing.T) {\n\tr := New(renderer.DefaultConfig())\n\trec := createTestRecording()\n\n\tctx, cancel := context.WithCancel(context.Background())\n\tcancel() // Cancel immediately\n\n\tvar buf bytes.Buffer\n\terr := r.Render(ctx, rec, &buf)\n\n\tif !errors.Is(err, context.Canceled) {\n\t\tt.Errorf(\"expected context.Canceled error, got %v\", err)\n\t}\n}\n\nfunc TestCanvas_Dimensions(t *testing.T) {\n\tconfig := renderer.DefaultConfig()\n\trec := &ir.Recording{\n\t\tWidth:  80,\n\t\tHeight: 24,\n\t\tColors: termcolor.NewCatalog(\n\t\t\tcolor.RGBA{R: 255, G: 255, B: 255, A: 255},\n\t\t\tcolor.RGBA{R: 0, G: 0, B: 0, A: 255},\n\t\t),\n\t}\n\n\tc := &canvas{\n\t\trec:    rec,\n\t\tconfig: *config,\n\t}\n\n\t// Content dimensions\n\tif c.contentWidth() != 80*ColWidth {\n\t\tt.Errorf(\"contentWidth() = %d, want %d\", c.contentWidth(), 80*ColWidth)\n\t}\n\tif c.contentHeight() != 24*RowHeight {\n\t\tt.Errorf(\"contentHeight() = %d, want %d\", c.contentHeight(), 24*RowHeight)\n\t}\n\n\t// Padded dimensions with window\n\tconfig.ShowWindow = true\n\tc.config = *config\n\texpectedPaddedHeight := c.contentHeight() + Padding*HeaderSize + Padding // header + bottom padding\n\tif c.paddedHeight() != expectedPaddedHeight {\n\t\tt.Errorf(\"paddedHeight() with window = %d, want %d\", c.paddedHeight(), expectedPaddedHeight)\n\t}\n\n\t// Padded dimensions without window\n\tconfig.ShowWindow = false\n\tc.config = *config\n\texpectedPaddedHeight = c.contentHeight() + 2*Padding\n\tif c.paddedHeight() != expectedPaddedHeight {\n\t\tt.Errorf(\"paddedHeight() without window = %d, want %d\", c.paddedHeight(), expectedPaddedHeight)\n\t}\n}\n\n// createTestRecording creates a simple recording for testing\nfunc createTestRecording() *ir.Recording {\n\tcolors := termcolor.NewCatalog(\n\t\tcolor.RGBA{R: 255, G: 255, B: 255, A: 255},\n\t\tcolor.RGBA{R: 0, G: 0, B: 0, A: 255},\n\t)\n\n\treturn &ir.Recording{\n\t\tWidth:    80,\n\t\tHeight:   24,\n\t\tDuration: time.Second,\n\t\tTitle:    \"Test Recording\",\n\t\tColors:   colors,\n\t\tFrames: []ir.Frame{\n\t\t\t{\n\t\t\t\tTime:  0,\n\t\t\t\tDelay: 0,\n\t\t\t\tIndex: 0,\n\t\t\t\tRows: []ir.Row{\n\t\t\t\t\t{\n\t\t\t\t\t\tY: 0,\n\t\t\t\t\t\tRuns: []ir.TextRun{\n\t\t\t\t\t\t\t{Text: \"Hello\", StartCol: 0},\n\t\t\t\t\t\t\t{Text: \"World\", StartCol: 6},\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{\n\t\t\t\tTime:  500 * time.Millisecond,\n\t\t\t\tDelay: 500 * time.Millisecond,\n\t\t\t\tIndex: 1,\n\t\t\t\tRows: []ir.Row{\n\t\t\t\t\t{\n\t\t\t\t\t\tY: 0,\n\t\t\t\t\t\tRuns: []ir.TextRun{\n\t\t\t\t\t\t\t{Text: \"Goodbye\", StartCol: 0},\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},\n\t\tStats: ir.Stats{\n\t\t\tTotalFrames: 2,\n\t\t},\n\t}\n}\n\n// Integration tests using example files\n\n//nolint:funlen // integration test requires multiple setup and verification steps\nfunc TestIntegration_256Colors(t *testing.T) {\n\t// Find the examples directory (relative to this test file)\n\texamplesDir := filepath.Join(\"..\", \"..\", \"..\", \"examples\")\n\tcastPath := filepath.Join(examplesDir, \"256colors.cast\")\n\n\t// Skip if example file doesn't exist\n\tif _, err := os.Stat(castPath); os.IsNotExist(err) {\n\t\tt.Skipf(\"Example file not found: %s\", castPath)\n\t}\n\n\t// Load the cast file\n\tf, err := os.Open(castPath) //nolint:gosec // test file path\n\tif err != nil {\n\t\tt.Fatalf(\"Failed to open cast file: %v\", err)\n\t}\n\tdefer f.Close()\n\n\tcast, err := asciicast.Parse(f)\n\tif err != nil {\n\t\tt.Fatalf(\"Failed to parse cast file: %v\", err)\n\t}\n\n\t// Process through IR\n\tproc := ir.NewProcessor(ir.DefaultProcessorConfig())\n\trec, err := proc.Process(cast)\n\tif err != nil {\n\t\tt.Fatalf(\"Failed to process cast: %v\", err)\n\t}\n\n\t// Verify IR was generated correctly\n\tif rec.Width != 120 {\n\t\tt.Errorf(\"Recording width = %d, want 120\", rec.Width)\n\t}\n\tif rec.Height != 42 {\n\t\tt.Errorf(\"Recording height = %d, want 42\", rec.Height)\n\t}\n\tif len(rec.Frames) == 0 {\n\t\tt.Error(\"Recording has no frames\")\n\t}\n\n\t// Render to SVG\n\tr := New(renderer.DefaultConfig())\n\tvar buf bytes.Buffer\n\terr = r.Render(context.Background(), rec, &buf)\n\tif err != nil {\n\t\tt.Fatalf(\"Failed to render SVG: %v\", err)\n\t}\n\n\tsvg := buf.String()\n\n\t// Verify SVG structure\n\tif !strings.HasPrefix(svg, \"<svg\") {\n\t\tt.Error(\"Output doesn't start with <svg\")\n\t}\n\tif !strings.HasSuffix(svg, \"</svg>\") {\n\t\tt.Error(\"Output doesn't end with </svg>\")\n\t}\n\n\t// Verify it contains expected elements for 256 color test\n\tif !strings.Contains(svg, \"@keyframes\") {\n\t\tt.Error(\"SVG missing keyframes animation\")\n\t}\n\tif !strings.Contains(svg, \"<style>\") {\n\t\tt.Error(\"SVG missing style element\")\n\t}\n\tif !strings.Contains(svg, \"<text\") {\n\t\tt.Error(\"SVG missing text elements\")\n\t}\n\n\t// Verify multiple color classes were generated (256 color demo should have many)\n\tif rec.Stats.UniqueColors < 10 {\n\t\tt.Errorf(\"Expected many unique colors for 256color demo, got %d\", rec.Stats.UniqueColors)\n\t}\n\n\t// Verify background filters exist (256 color demo uses background colors)\n\tif !strings.Contains(svg, `<filter id=\"bg_`) {\n\t\tt.Error(\"SVG missing background filters for 256 color demo\")\n\t}\n\n\tt.Logf(\"Generated SVG: %d bytes, %d frames, %d unique colors\",\n\t\tlen(svg), rec.Stats.TotalFrames, rec.Stats.UniqueColors)\n\n\toutPath := filepath.Join(examplesDir, \"256colors.svg\")\n\t//nolint:gosec // test output file needs to be readable\n\tf, err = os.OpenFile(outPath, os.O_CREATE|os.O_WRONLY|os.O_TRUNC, 0o644)\n\tif err != nil {\n\t\tt.Fatalf(\"Failed to create output SVG file: %v\", err)\n\t}\n\tdefer f.Close()\n\t_, err = f.WriteString(svg)\n\tif err != nil {\n\t\tt.Fatalf(\"Failed to write SVG to file: %v\", err)\n\t}\n}\n"
  },
  {
    "path": "pkg/renderer/webm/renderer.go",
    "content": "// Package webm provides a WebM video renderer for terminal recordings.\n// It generates WebM video files using FFmpeg for VP9 encoding.\npackage webm\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\t\"io\"\n\t\"log\"\n\t\"os/exec\"\n\t\"time\"\n\n\t\"github.com/mrmarble/termsvg/pkg/ir\"\n\t\"github.com/mrmarble/termsvg/pkg/progress\"\n\t\"github.com/mrmarble/termsvg/pkg/raster\"\n\t\"github.com/mrmarble/termsvg/pkg/renderer\"\n)\n\n// Renderer implements the renderer.Renderer interface for WebM output.\ntype Renderer struct {\n\tconfig     renderer.Config\n\trasterizer *raster.Rasterizer\n}\n\n// New creates a new WebM renderer with the given configuration.\nfunc New(config *renderer.Config) (*Renderer, error) {\n\t// Check if FFmpeg is installed\n\tif _, err := exec.LookPath(\"ffmpeg\"); err != nil {\n\t\treturn nil, fmt.Errorf(\"ffmpeg is not installed. Install it from: https://ffmpeg.org\")\n\t}\n\n\trasterizer, err := renderer.NewRasterizer(config)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn &Renderer{\n\t\tconfig:     *config,\n\t\trasterizer: rasterizer,\n\t}, nil\n}\n\n// Format returns the output format name.\nfunc (r *Renderer) Format() string {\n\treturn \"webm\"\n}\n\n// FileExtension returns the file extension for WebM files.\nfunc (r *Renderer) FileExtension() string {\n\treturn \".webm\"\n}\n\n// Render generates a WebM video from the recording.\nfunc (r *Renderer) Render(ctx context.Context, rec *ir.Recording, w io.Writer) error {\n\tif len(rec.Frames) == 0 {\n\t\treturn fmt.Errorf(\"recording has no frames\")\n\t}\n\n\tstartTime := time.Now()\n\tif r.config.Debug {\n\t\tlog.Printf(\"[WebM] Starting WebM generation for %d frames\", len(rec.Frames))\n\t}\n\n\t// Phase 1: Rasterize frames to RGBA images\n\trasterStart := time.Now()\n\trgbaFrames, err := r.rasterizer.Rasterize(rec)\n\tif err != nil {\n\t\treturn fmt.Errorf(\"failed to rasterize frames: %w\", err)\n\t}\n\trasterDuration := time.Since(rasterStart)\n\n\tif r.config.Debug {\n\t\tlog.Printf(\"[WebM] Phase 1 - IR rasterization: %v (%d frames)\", rasterDuration, len(rgbaFrames))\n\t}\n\n\t// Check for cancellation after rendering\n\tselect {\n\tcase <-ctx.Done():\n\t\treturn ctx.Err()\n\tdefault:\n\t}\n\n\t// Phase 2: Encode to WebM using FFmpeg\n\tencodeStart := time.Now()\n\tif err := r.encodeToWebM(rgbaFrames, w); err != nil {\n\t\treturn fmt.Errorf(\"failed to encode WebM: %w\", err)\n\t}\n\n\tif r.config.Debug {\n\t\tlog.Printf(\"[WebM] Phase 2 - FFmpeg encoding: %v\", time.Since(encodeStart))\n\t\tlog.Printf(\"[WebM] Total time: %v\", time.Since(startTime))\n\t}\n\n\treturn nil\n}\n\n// encodeToWebM encodes RGBA frames to WebM format using FFmpeg.\n// Uses fixed 30 FPS with frame filtering to skip rapid events.\n//\n//nolint:gocognit,funlen // WebM encoding with FFmpeg requires complex frame handling\nfunc (r *Renderer) encodeToWebM(frames []raster.RasterFrame, w io.Writer) error {\n\tif len(frames) == 0 {\n\t\treturn fmt.Errorf(\"no frames to encode\")\n\t}\n\n\t// Filter frames to skip rapid events (similar to GIF deduplication)\n\t// At 30 FPS, minimum display time is ~33ms\n\tfilteredFrames := r.filterFrames(frames)\n\n\tif r.config.Debug {\n\t\t// Calculate total frames after duplication\n\t\tconst frameDuration = time.Second / 30\n\t\ttotalDuplicatedFrames := 0\n\t\tfor _, frame := range filteredFrames {\n\t\t\tif frame.Image != nil {\n\t\t\t\tcount := int(frame.Delay / frameDuration)\n\t\t\t\tif count < 1 {\n\t\t\t\t\tcount = 1\n\t\t\t\t}\n\t\t\t\ttotalDuplicatedFrames += count\n\t\t\t}\n\t\t}\n\t\tlog.Printf(\"[WebM] Filtered %d frames -> %d frames (skipped %d rapid frames)\",\n\t\t\tlen(frames), len(filteredFrames), len(frames)-len(filteredFrames))\n\t\tlog.Printf(\"[WebM] Total video frames after duplication: %d\", totalDuplicatedFrames)\n\t}\n\n\tif len(filteredFrames) == 0 {\n\t\treturn fmt.Errorf(\"no valid frames after filtering\")\n\t}\n\n\t// Get frame dimensions from first frame\n\tfirstFrame := filteredFrames[0].Image\n\tif firstFrame == nil {\n\t\treturn fmt.Errorf(\"no valid frames to encode\")\n\t}\n\n\tbounds := firstFrame.Bounds()\n\twidth := bounds.Dx()\n\theight := bounds.Dy()\n\n\t// Use fixed 30 FPS for consistent playback\n\tconst frameRate = 30.0\n\n\t// Build FFmpeg command\n\t// Input: raw RGBA frames from stdin\n\t// Output: WebM with VP9 codec\n\targs := []string{\n\t\t\"-y\", // Overwrite output\n\t\t\"-f\", \"rawvideo\",\n\t\t\"-vcodec\", \"rawvideo\",\n\t\t\"-pix_fmt\", \"rgba\",\n\t\t\"-s\", fmt.Sprintf(\"%dx%d\", width, height),\n\t\t\"-r\", fmt.Sprintf(\"%f\", frameRate),\n\t\t\"-i\", \"-\", // Read from stdin\n\t\t\"-c:v\", \"libvpx-vp9\",\n\t\t\"-pix_fmt\", \"yuv420p\",\n\t\t\"-deadline\", \"good\",\n\t\t\"-cpu-used\", \"5\",\n\t\t\"-row-mt\", \"1\",\n\t\t\"-f\", \"webm\",\n\t\t\"pipe:1\", // Write to stdout\n\t}\n\n\t// Add bitrate if specified\n\tif r.config.VideoBitrate > 0 {\n\t\targs = append(args, \"-b:v\", fmt.Sprintf(\"%dk\", r.config.VideoBitrate))\n\t}\n\n\tcmd := exec.Command(\"ffmpeg\", args...) //nolint:gosec // args are constructed from validated config\n\n\t// Get stdin pipe for writing frames\n\tstdin, err := cmd.StdinPipe()\n\tif err != nil {\n\t\treturn fmt.Errorf(\"failed to create stdin pipe: %w\", err)\n\t}\n\n\t// Get stdout pipe for reading output\n\tstdout, err := cmd.StdoutPipe()\n\tif err != nil {\n\t\treturn fmt.Errorf(\"failed to create stdout pipe: %w\", err)\n\t}\n\n\t// Start FFmpeg\n\tif err := cmd.Start(); err != nil {\n\t\treturn fmt.Errorf(\"failed to start ffmpeg: %w\", err)\n\t}\n\n\t// Write frames to FFmpeg in a goroutine\n\t// Each frame is duplicated based on its delay to respect recording timing\n\tgo func() {\n\t\tdefer stdin.Close()\n\n\t\tconst frameDuration = time.Second / 30 // ~33.33ms per frame at 30 FPS\n\t\tencodedFrames := 0\n\t\ttotalFrames := len(filteredFrames)\n\n\t\t// Send initial progress\n\t\tif r.config.ProgressCh != nil {\n\t\t\tr.config.ProgressCh <- progress.Update{\n\t\t\t\tPhase:   \"Encoding\",\n\t\t\t\tCurrent: 0,\n\t\t\t\tTotal:   totalFrames,\n\t\t\t}\n\t\t}\n\n\t\tfor _, frame := range filteredFrames {\n\t\t\tif frame.Image == nil {\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\t// Calculate how many times to duplicate this frame based on its delay\n\t\t\t// At 30 FPS, each frame is 33.33ms, so a 500ms delay = 15 frames\n\t\t\tframeCount := int(frame.Delay / frameDuration)\n\t\t\tif frameCount < 1 {\n\t\t\t\tframeCount = 1 // Minimum 1 frame\n\t\t\t}\n\n\t\t\t// Write the frame multiple times to match the delay\n\t\t\tfor i := 0; i < frameCount; i++ {\n\t\t\t\t_, err := stdin.Write(frame.Image.Pix)\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Send progress update\n\t\t\tencodedFrames++\n\t\t\tif r.config.ProgressCh != nil {\n\t\t\t\tr.config.ProgressCh <- progress.Update{\n\t\t\t\t\tPhase:   \"Encoding\",\n\t\t\t\t\tCurrent: encodedFrames,\n\t\t\t\t\tTotal:   totalFrames,\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}()\n\n\t// Copy FFmpeg output to writer\n\tbuf := make([]byte, 32*1024)\n\tfor {\n\t\tn, err := stdout.Read(buf)\n\t\tif n > 0 {\n\t\t\tif _, writeErr := w.Write(buf[:n]); writeErr != nil {\n\t\t\t\treturn fmt.Errorf(\"failed to write output: %w\", writeErr)\n\t\t\t}\n\t\t}\n\t\tif err != nil {\n\t\t\tbreak\n\t\t}\n\t}\n\n\t// Wait for FFmpeg to finish\n\tif err := cmd.Wait(); err != nil {\n\t\treturn fmt.Errorf(\"ffmpeg encoding failed: %w\", err)\n\t}\n\n\treturn nil\n}\n\n// filterFrames filters frames to skip rapid events.\n// At 30 FPS, each frame displays for ~33ms. Frames with shorter delays are skipped\n// and their delay is accumulated to the next frame.\nfunc (r *Renderer) filterFrames(frames []raster.RasterFrame) []raster.RasterFrame {\n\tconst minDelay = 33 * time.Millisecond // Minimum display time at 30 FPS\n\n\tfiltered := make([]raster.RasterFrame, 0, len(frames))\n\tvar accumulatedDelay time.Duration\n\n\tfor i, frame := range frames {\n\t\t// Skip nil frames\n\t\tif frame.Image == nil {\n\t\t\taccumulatedDelay += frame.Delay\n\t\t\tcontinue\n\t\t}\n\n\t\ttotalDelay := frame.Delay + accumulatedDelay\n\n\t\t// If this is not the last frame and total delay is below minimum, skip it\n\t\tif totalDelay < minDelay && i < len(frames)-1 {\n\t\t\taccumulatedDelay = totalDelay\n\t\t\tcontinue\n\t\t}\n\n\t\t// Create a new frame with accumulated delay\n\t\tfilteredFrame := raster.RasterFrame{\n\t\t\tImage: frame.Image,\n\t\t\tDelay: totalDelay,\n\t\t\tIndex: frame.Index,\n\t\t}\n\t\tfiltered = append(filtered, filteredFrame)\n\t\taccumulatedDelay = 0\n\t}\n\n\treturn filtered\n}\n"
  },
  {
    "path": "pkg/renderer/webm/renderer_test.go",
    "content": "package webm\n\nimport (\n\t\"bytes\"\n\t\"context\"\n\t\"image/color\"\n\t\"testing\"\n\t\"time\"\n\n\ttermcolor \"github.com/mrmarble/termsvg/pkg/color\"\n\t\"github.com/mrmarble/termsvg/pkg/ir\"\n\t\"github.com/mrmarble/termsvg/pkg/renderer\"\n)\n\nfunc TestRenderer_Format(t *testing.T) {\n\tr, err := New(renderer.DefaultConfig())\n\tif err != nil {\n\t\t// FFmpeg might not be installed, skip test\n\t\tt.Skipf(\"FFmpeg not installed: %v\", err)\n\t}\n\n\tif got := r.Format(); got != \"webm\" {\n\t\tt.Errorf(\"Format() = %v, want %v\", got, \"webm\")\n\t}\n}\n\nfunc TestRenderer_FileExtension(t *testing.T) {\n\tr, err := New(renderer.DefaultConfig())\n\tif err != nil {\n\t\t// FFmpeg might not be installed, skip test\n\t\tt.Skipf(\"FFmpeg not installed: %v\", err)\n\t}\n\n\tif got := r.FileExtension(); got != \".webm\" {\n\t\tt.Errorf(\"FileExtension() = %v, want %v\", got, \".webm\")\n\t}\n}\n\nfunc TestRenderer_Render_EmptyRecording(t *testing.T) {\n\tr, err := New(renderer.DefaultConfig())\n\tif err != nil {\n\t\t// FFmpeg might not be installed, skip test\n\t\tt.Skipf(\"FFmpeg not installed: %v\", err)\n\t}\n\n\trec := &ir.Recording{\n\t\tFrames: []ir.Frame{},\n\t}\n\n\tvar buf bytes.Buffer\n\terr = r.Render(context.Background(), rec, &buf)\n\tif err == nil {\n\t\tt.Error(\"expected error for empty recording\")\n\t}\n}\n\nfunc TestRenderer_Render_SingleFrame(t *testing.T) {\n\tr, err := New(renderer.DefaultConfig())\n\tif err != nil {\n\t\t// FFmpeg might not be installed, skip test\n\t\tt.Skipf(\"FFmpeg not installed: %v\", err)\n\t}\n\n\tcolors := termcolor.NewCatalog(\n\t\tcolor.RGBA{R: 192, G: 192, B: 192, A: 255},\n\t\tcolor.RGBA{R: 0, G: 0, B: 0, A: 255},\n\t)\n\n\trec := &ir.Recording{\n\t\tWidth:    80,\n\t\tHeight:   24,\n\t\tDuration: 1 * time.Second,\n\t\tFrames: []ir.Frame{\n\t\t\t{\n\t\t\t\tTime:  0,\n\t\t\t\tDelay: 0,\n\t\t\t\tIndex: 0,\n\t\t\t\tRows: []ir.Row{\n\t\t\t\t\t{\n\t\t\t\t\t\tY: 0,\n\t\t\t\t\t\tRuns: []ir.TextRun{\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tText:     \"Hello, World!\",\n\t\t\t\t\t\t\t\tStartCol: 0,\n\t\t\t\t\t\t\t\tAttrs:    ir.CellAttrs{},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tCursor: ir.Cursor{Col: 13, Row: 0, Visible: true},\n\t\t\t},\n\t\t},\n\t\tColors: colors,\n\t\tStats:  ir.Stats{TotalFrames: 1},\n\t}\n\n\tvar buf bytes.Buffer\n\terr = r.Render(context.Background(), rec, &buf)\n\tif err != nil {\n\t\tt.Fatalf(\"Render() error = %v\", err)\n\t}\n\n\t// WebM files start with specific bytes (EBML header)\n\t// Check that we got some output\n\tif buf.Len() == 0 {\n\t\tt.Error(\"expected non-empty output\")\n\t}\n\n\t// WebM files start with 0x1A 0x45 0xDF 0xA3 (EBML ID)\n\tdata := buf.Bytes()\n\tif len(data) < 4 {\n\t\tt.Error(\"output too short\")\n\t\treturn\n\t}\n\n\t// Check for EBML header signature\n\tif data[0] != 0x1A || data[1] != 0x45 || data[2] != 0xDF || data[3] != 0xA3 {\n\t\tt.Errorf(\"output does not appear to be a valid WebM file (missing EBML header)\")\n\t}\n}\n\nfunc TestRenderer_Render_MultipleFrames(t *testing.T) {\n\tr, err := New(renderer.DefaultConfig())\n\tif err != nil {\n\t\t// FFmpeg might not be installed, skip test\n\t\tt.Skipf(\"FFmpeg not installed: %v\", err)\n\t}\n\n\tcolors := termcolor.NewCatalog(\n\t\tcolor.RGBA{R: 192, G: 192, B: 192, A: 255},\n\t\tcolor.RGBA{R: 0, G: 0, B: 0, A: 255},\n\t)\n\n\trec := &ir.Recording{\n\t\tWidth:    40,\n\t\tHeight:   10,\n\t\tDuration: 2 * time.Second,\n\t\tFrames: []ir.Frame{\n\t\t\t{\n\t\t\t\tTime:  0,\n\t\t\t\tDelay: 500 * time.Millisecond,\n\t\t\t\tIndex: 0,\n\t\t\t\tRows: []ir.Row{\n\t\t\t\t\t{Y: 0, Runs: []ir.TextRun{{Text: \"Frame 1\", StartCol: 0}}},\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\tTime:  500 * time.Millisecond,\n\t\t\t\tDelay: 500 * time.Millisecond,\n\t\t\t\tIndex: 1,\n\t\t\t\tRows: []ir.Row{\n\t\t\t\t\t{Y: 0, Runs: []ir.TextRun{{Text: \"Frame 2\", StartCol: 0}}},\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\tTime:  1 * time.Second,\n\t\t\t\tDelay: 500 * time.Millisecond,\n\t\t\t\tIndex: 2,\n\t\t\t\tRows: []ir.Row{\n\t\t\t\t\t{Y: 0, Runs: []ir.TextRun{{Text: \"Frame 3\", StartCol: 0}}},\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\tColors: colors,\n\t\tStats:  ir.Stats{TotalFrames: 3},\n\t}\n\n\tvar buf bytes.Buffer\n\terr = r.Render(context.Background(), rec, &buf)\n\tif err != nil {\n\t\tt.Fatalf(\"Render() error = %v\", err)\n\t}\n\n\tif buf.Len() == 0 {\n\t\tt.Error(\"expected non-empty output\")\n\t}\n}\n\nfunc TestRenderer_Render_WithDebug(t *testing.T) {\n\tconfig := renderer.DefaultConfig()\n\tconfig.Debug = true\n\n\tr, err := New(config)\n\tif err != nil {\n\t\t// FFmpeg might not be installed, skip test\n\t\tt.Skipf(\"FFmpeg not installed: %v\", err)\n\t}\n\n\tcolors := termcolor.NewCatalog(\n\t\tcolor.RGBA{R: 192, G: 192, B: 192, A: 255},\n\t\tcolor.RGBA{R: 0, G: 0, B: 0, A: 255},\n\t)\n\n\trec := &ir.Recording{\n\t\tWidth:    40,\n\t\tHeight:   10,\n\t\tDuration: 1 * time.Second,\n\t\tFrames: []ir.Frame{\n\t\t\t{\n\t\t\t\tTime:  0,\n\t\t\t\tDelay: 0,\n\t\t\t\tIndex: 0,\n\t\t\t\tRows: []ir.Row{\n\t\t\t\t\t{Y: 0, Runs: []ir.TextRun{{Text: \"Test\", StartCol: 0}}},\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\tColors: colors,\n\t}\n\n\tvar buf bytes.Buffer\n\terr = r.Render(context.Background(), rec, &buf)\n\tif err != nil {\n\t\tt.Fatalf(\"Render() error = %v\", err)\n\t}\n\n\tif buf.Len() == 0 {\n\t\tt.Error(\"expected non-empty output\")\n\t}\n}\n\nfunc TestNew_WithoutFFmpeg(t *testing.T) {\n\t// This test verifies that New() returns an error when FFmpeg is not installed\n\t// Since we can't uninstall FFmpeg during the test, we just verify the error message format\n\t// by checking that the error mentions FFmpeg\n\n\t// If FFmpeg IS installed, this test should skip\n\t// If FFmpeg is NOT installed, this documents the expected behavior\n\t_, err := New(renderer.DefaultConfig())\n\tif err != nil {\n\t\t// FFmpeg is not installed, verify error message\n\t\tif err.Error() != \"ffmpeg is not installed. Install it from: https://ffmpeg.org\" {\n\t\t\tt.Errorf(\"unexpected error message: %v\", err)\n\t\t}\n\t}\n\t// If no error, FFmpeg is installed and we can't test the error case\n}\n"
  },
  {
    "path": "pkg/terminal/terminal.go",
    "content": "package terminal\n\nimport (\n\t\"github.com/hinshun/vt10x\"\n\t\"github.com/mrmarble/termsvg/pkg/color\"\n)\n\n// Cell represents a single terminal cell\ntype Cell struct {\n\tChar       rune\n\tForeground color.Color\n\tBackground color.Color\n\tBold       bool\n\tItalic     bool\n\tUnderline  bool\n\tDim        bool\n}\n\n// State represents terminal state at a given time\ntype State interface {\n\tWidth() int\n\tHeight() int\n\tCell(col, row int) Cell\n}\n\n// Emulator wraps vt10x\ntype Emulator struct {\n\tterm vt10x.Terminal\n}\n\nfunc New(width, height int) *Emulator {\n\treturn &Emulator{\n\t\tterm: vt10x.New(\n\t\t\tvt10x.WithSize(width, height),\n\t\t),\n\t}\n}\n\n// Write writes data to the terminal emulator\nfunc (e *Emulator) Write(data []byte) (int, error) {\n\treturn e.term.Write(data)\n}\n\n// Width returns terminal width\nfunc (e *Emulator) Width() int {\n\tw, _ := e.term.Size()\n\treturn w\n}\n\n// Height returns terminal height\nfunc (e *Emulator) Height() int {\n\t_, h := e.term.Size()\n\treturn h\n}\n\n// Cell returns the cell at the given column and row\nfunc (e *Emulator) Cell(col, row int) Cell {\n\tc := e.term.Cell(col, row)\n\treturn Cell{\n\t\tChar:       c.Char,\n\t\tForeground: convertColor(c.FG),\n\t\tBackground: convertColor(c.BG),\n\t\tBold:       c.Mode&4 != 0,\n\t\tItalic:     c.Mode&16 != 0,\n\t\tUnderline:  c.Mode&2 != 0,\n\t\tDim:        c.Mode&1 != 0,\n\t}\n}\n\n// Cursor returns the current cursor position (col, row)\nfunc (e *Emulator) Cursor() (col, row int) {\n\tc := e.term.Cursor()\n\treturn c.X, c.Y\n}\n\n// CursorVisible returns whether the cursor is visible\nfunc (e *Emulator) CursorVisible() bool {\n\treturn e.term.CursorVisible()\n}\n\n// convertColor translates vt10x.Color to color.Color\nfunc convertColor(c vt10x.Color) color.Color {\n\tswitch {\n\tcase c == vt10x.DefaultFG || c == vt10x.DefaultBG:\n\t\treturn color.Color{Type: color.Default}\n\tcase c < 16:\n\t\treturn color.FromANSI(uint8(c & 0xFF)) //nolint:gosec // c is already < 16, safe to convert\n\tcase c < 256:\n\t\treturn color.FromExtended(uint8(c & 0xFF)) //nolint:gosec // c is already < 256, safe to convert\n\tdefault:\n\t\tr := uint8((c >> 16) & 0xFF) //nolint:gosec // masking ensures value fits in uint8\n\t\tg := uint8((c >> 8) & 0xFF)  //nolint:gosec // masking ensures value fits in uint8\n\t\tb := uint8(c & 0xFF)         //nolint:gosec // masking ensures value fits in uint8\n\t\treturn color.FromRGB(r, g, b)\n\t}\n}\n"
  },
  {
    "path": "pkg/theme/builtin.go",
    "content": "// Code generated by themegen. DO NOT EDIT.\n// Generated at: 2026-01-31T09:42:02+01:00\n\npackage theme\n\nimport (\n\t\"image/color\"\n\n\ttermcolor \"github.com/mrmarble/termsvg/pkg/color\"\n)\n\n// builtinThemes is a registry of all built-in themes.\nvar builtinThemes = map[string]Theme{\n\t\"dracula\":         Dracula,\n\t\"frappe\":          Frappe,\n\t\"gruvbox-dark\":    GruvboxDark,\n\t\"gruvbox-light\":   GruvboxLight,\n\t\"latte\":           Latte,\n\t\"macchiato\":       Macchiato,\n\t\"mocha\":           Mocha,\n\t\"monokai\":         Monokai,\n\t\"nord\":            Nord,\n\t\"solarized-dark\":  SolarizedDark,\n\t\"solarized-light\": SolarizedLight,\n}\n\n// Dracula is the \"dracula\" theme.\nvar Dracula = Theme{\n\tName:             \"dracula\",\n\tForeground:       color.RGBA{R: 248, G: 248, B: 242, A: 255},\n\tBackground:       color.RGBA{R: 40, G: 42, B: 54, A: 255},\n\tPalette:          DraculaPalette,\n\tWindowBackground: color.RGBA{R: 40, G: 42, B: 54, A: 255},\n\tWindowButtons: [3]color.RGBA{\n\t\t{R: 255, G: 95, B: 86, A: 255},  // Close\n\t\t{R: 255, G: 189, B: 46, A: 255}, // Minimize\n\t\t{R: 24, G: 193, B: 50, A: 255},  // Maximize\n\t},\n}\n\n// DraculaPalette is the color palette for the \"dracula\" theme.\n// It extends the standard xterm palette with custom colors for the first 16 ANSI colors.\nvar DraculaPalette = func() termcolor.Palette {\n\tp := termcolor.Standard()\n\tp[0] = color.RGBA{R: 33, G: 34, B: 44, A: 255}\n\tp[1] = color.RGBA{R: 255, G: 85, B: 85, A: 255}\n\tp[2] = color.RGBA{R: 80, G: 250, B: 123, A: 255}\n\tp[3] = color.RGBA{R: 241, G: 250, B: 140, A: 255}\n\tp[4] = color.RGBA{R: 189, G: 147, B: 249, A: 255}\n\tp[5] = color.RGBA{R: 255, G: 121, B: 198, A: 255}\n\tp[6] = color.RGBA{R: 139, G: 233, B: 253, A: 255}\n\tp[7] = color.RGBA{R: 248, G: 248, B: 242, A: 255}\n\tp[8] = color.RGBA{R: 98, G: 114, B: 164, A: 255}\n\tp[9] = color.RGBA{R: 255, G: 110, B: 110, A: 255}\n\tp[10] = color.RGBA{R: 105, G: 255, B: 148, A: 255}\n\tp[11] = color.RGBA{R: 255, G: 255, B: 165, A: 255}\n\tp[12] = color.RGBA{R: 214, G: 172, B: 255, A: 255}\n\tp[13] = color.RGBA{R: 255, G: 146, B: 223, A: 255}\n\tp[14] = color.RGBA{R: 164, G: 255, B: 255, A: 255}\n\tp[15] = color.RGBA{R: 255, G: 255, B: 255, A: 255}\n\treturn p\n}()\n\n// Frappe is the \"frappe\" theme.\nvar Frappe = Theme{\n\tName:             \"frappe\",\n\tForeground:       color.RGBA{R: 198, G: 208, B: 245, A: 255},\n\tBackground:       color.RGBA{R: 48, G: 52, B: 70, A: 255},\n\tPalette:          FrappePalette,\n\tWindowBackground: color.RGBA{R: 48, G: 52, B: 70, A: 255},\n\tWindowButtons: [3]color.RGBA{\n\t\t{R: 255, G: 95, B: 86, A: 255},  // Close\n\t\t{R: 255, G: 189, B: 46, A: 255}, // Minimize\n\t\t{R: 24, G: 193, B: 50, A: 255},  // Maximize\n\t},\n}\n\n// FrappePalette is the color palette for the \"frappe\" theme.\n// It extends the standard xterm palette with custom colors for the first 16 ANSI colors.\nvar FrappePalette = func() termcolor.Palette {\n\tp := termcolor.Standard()\n\tp[0] = color.RGBA{R: 81, G: 87, B: 109, A: 255}\n\tp[1] = color.RGBA{R: 231, G: 130, B: 132, A: 255}\n\tp[2] = color.RGBA{R: 166, G: 209, B: 137, A: 255}\n\tp[3] = color.RGBA{R: 229, G: 200, B: 144, A: 255}\n\tp[4] = color.RGBA{R: 140, G: 170, B: 238, A: 255}\n\tp[5] = color.RGBA{R: 244, G: 184, B: 228, A: 255}\n\tp[6] = color.RGBA{R: 129, G: 200, B: 190, A: 255}\n\tp[7] = color.RGBA{R: 181, G: 191, B: 226, A: 255}\n\tp[8] = color.RGBA{R: 98, G: 104, B: 128, A: 255}\n\tp[9] = color.RGBA{R: 231, G: 130, B: 132, A: 255}\n\tp[10] = color.RGBA{R: 166, G: 209, B: 137, A: 255}\n\tp[11] = color.RGBA{R: 229, G: 200, B: 144, A: 255}\n\tp[12] = color.RGBA{R: 140, G: 170, B: 238, A: 255}\n\tp[13] = color.RGBA{R: 244, G: 184, B: 228, A: 255}\n\tp[14] = color.RGBA{R: 129, G: 200, B: 190, A: 255}\n\tp[15] = color.RGBA{R: 165, G: 173, B: 206, A: 255}\n\treturn p\n}()\n\n// GruvboxDark is the \"gruvbox-dark\" theme.\nvar GruvboxDark = Theme{\n\tName:             \"gruvbox-dark\",\n\tForeground:       color.RGBA{R: 235, G: 219, B: 178, A: 255},\n\tBackground:       color.RGBA{R: 40, G: 40, B: 40, A: 255},\n\tPalette:          GruvboxDarkPalette,\n\tWindowBackground: color.RGBA{R: 40, G: 40, B: 40, A: 255},\n\tWindowButtons: [3]color.RGBA{\n\t\t{R: 255, G: 95, B: 86, A: 255},  // Close\n\t\t{R: 255, G: 189, B: 46, A: 255}, // Minimize\n\t\t{R: 24, G: 193, B: 50, A: 255},  // Maximize\n\t},\n}\n\n// GruvboxDarkPalette is the color palette for the \"gruvbox-dark\" theme.\n// It extends the standard xterm palette with custom colors for the first 16 ANSI colors.\nvar GruvboxDarkPalette = func() termcolor.Palette {\n\tp := termcolor.Standard()\n\tp[0] = color.RGBA{R: 40, G: 40, B: 40, A: 255}\n\tp[1] = color.RGBA{R: 204, G: 36, B: 29, A: 255}\n\tp[2] = color.RGBA{R: 152, G: 151, B: 26, A: 255}\n\tp[3] = color.RGBA{R: 215, G: 153, B: 33, A: 255}\n\tp[4] = color.RGBA{R: 69, G: 133, B: 136, A: 255}\n\tp[5] = color.RGBA{R: 177, G: 98, B: 134, A: 255}\n\tp[6] = color.RGBA{R: 104, G: 157, B: 106, A: 255}\n\tp[7] = color.RGBA{R: 168, G: 153, B: 132, A: 255}\n\tp[8] = color.RGBA{R: 146, G: 131, B: 116, A: 255}\n\tp[9] = color.RGBA{R: 251, G: 73, B: 52, A: 255}\n\tp[10] = color.RGBA{R: 184, G: 187, B: 38, A: 255}\n\tp[11] = color.RGBA{R: 250, G: 189, B: 47, A: 255}\n\tp[12] = color.RGBA{R: 131, G: 165, B: 152, A: 255}\n\tp[13] = color.RGBA{R: 211, G: 134, B: 155, A: 255}\n\tp[14] = color.RGBA{R: 142, G: 192, B: 124, A: 255}\n\tp[15] = color.RGBA{R: 235, G: 219, B: 178, A: 255}\n\treturn p\n}()\n\n// GruvboxLight is the \"gruvbox-light\" theme.\nvar GruvboxLight = Theme{\n\tName:             \"gruvbox-light\",\n\tForeground:       color.RGBA{R: 60, G: 56, B: 54, A: 255},\n\tBackground:       color.RGBA{R: 251, G: 241, B: 199, A: 255},\n\tPalette:          GruvboxLightPalette,\n\tWindowBackground: color.RGBA{R: 251, G: 241, B: 199, A: 255},\n\tWindowButtons: [3]color.RGBA{\n\t\t{R: 255, G: 95, B: 86, A: 255},  // Close\n\t\t{R: 255, G: 189, B: 46, A: 255}, // Minimize\n\t\t{R: 24, G: 193, B: 50, A: 255},  // Maximize\n\t},\n}\n\n// GruvboxLightPalette is the color palette for the \"gruvbox-light\" theme.\n// It extends the standard xterm palette with custom colors for the first 16 ANSI colors.\nvar GruvboxLightPalette = func() termcolor.Palette {\n\tp := termcolor.Standard()\n\tp[0] = color.RGBA{R: 251, G: 241, B: 199, A: 255}\n\tp[1] = color.RGBA{R: 204, G: 36, B: 29, A: 255}\n\tp[2] = color.RGBA{R: 152, G: 151, B: 26, A: 255}\n\tp[3] = color.RGBA{R: 215, G: 153, B: 33, A: 255}\n\tp[4] = color.RGBA{R: 69, G: 133, B: 136, A: 255}\n\tp[5] = color.RGBA{R: 177, G: 98, B: 134, A: 255}\n\tp[6] = color.RGBA{R: 104, G: 157, B: 106, A: 255}\n\tp[7] = color.RGBA{R: 124, G: 111, B: 100, A: 255}\n\tp[8] = color.RGBA{R: 146, G: 131, B: 116, A: 255}\n\tp[9] = color.RGBA{R: 157, G: 0, B: 6, A: 255}\n\tp[10] = color.RGBA{R: 121, G: 116, B: 14, A: 255}\n\tp[11] = color.RGBA{R: 181, G: 118, B: 20, A: 255}\n\tp[12] = color.RGBA{R: 7, G: 102, B: 120, A: 255}\n\tp[13] = color.RGBA{R: 143, G: 63, B: 113, A: 255}\n\tp[14] = color.RGBA{R: 66, G: 123, B: 88, A: 255}\n\tp[15] = color.RGBA{R: 60, G: 56, B: 54, A: 255}\n\treturn p\n}()\n\n// Latte is the \"latte\" theme.\nvar Latte = Theme{\n\tName:             \"latte\",\n\tForeground:       color.RGBA{R: 76, G: 79, B: 105, A: 255},\n\tBackground:       color.RGBA{R: 239, G: 241, B: 245, A: 255},\n\tPalette:          LattePalette,\n\tWindowBackground: color.RGBA{R: 239, G: 241, B: 245, A: 255},\n\tWindowButtons: [3]color.RGBA{\n\t\t{R: 255, G: 95, B: 86, A: 255},  // Close\n\t\t{R: 255, G: 189, B: 46, A: 255}, // Minimize\n\t\t{R: 24, G: 193, B: 50, A: 255},  // Maximize\n\t},\n}\n\n// LattePalette is the color palette for the \"latte\" theme.\n// It extends the standard xterm palette with custom colors for the first 16 ANSI colors.\nvar LattePalette = func() termcolor.Palette {\n\tp := termcolor.Standard()\n\tp[0] = color.RGBA{R: 92, G: 95, B: 119, A: 255}\n\tp[1] = color.RGBA{R: 210, G: 15, B: 57, A: 255}\n\tp[2] = color.RGBA{R: 64, G: 160, B: 43, A: 255}\n\tp[3] = color.RGBA{R: 223, G: 142, B: 29, A: 255}\n\tp[4] = color.RGBA{R: 30, G: 102, B: 245, A: 255}\n\tp[5] = color.RGBA{R: 234, G: 118, B: 203, A: 255}\n\tp[6] = color.RGBA{R: 23, G: 146, B: 153, A: 255}\n\tp[7] = color.RGBA{R: 172, G: 176, B: 190, A: 255}\n\tp[8] = color.RGBA{R: 108, G: 111, B: 133, A: 255}\n\tp[9] = color.RGBA{R: 210, G: 15, B: 57, A: 255}\n\tp[10] = color.RGBA{R: 64, G: 160, B: 43, A: 255}\n\tp[11] = color.RGBA{R: 223, G: 142, B: 29, A: 255}\n\tp[12] = color.RGBA{R: 30, G: 102, B: 245, A: 255}\n\tp[13] = color.RGBA{R: 234, G: 118, B: 203, A: 255}\n\tp[14] = color.RGBA{R: 23, G: 146, B: 153, A: 255}\n\tp[15] = color.RGBA{R: 188, G: 192, B: 204, A: 255}\n\treturn p\n}()\n\n// Macchiato is the \"macchiato\" theme.\nvar Macchiato = Theme{\n\tName:             \"macchiato\",\n\tForeground:       color.RGBA{R: 202, G: 211, B: 245, A: 255},\n\tBackground:       color.RGBA{R: 36, G: 39, B: 58, A: 255},\n\tPalette:          MacchiatoPalette,\n\tWindowBackground: color.RGBA{R: 36, G: 39, B: 58, A: 255},\n\tWindowButtons: [3]color.RGBA{\n\t\t{R: 255, G: 95, B: 86, A: 255},  // Close\n\t\t{R: 255, G: 189, B: 46, A: 255}, // Minimize\n\t\t{R: 24, G: 193, B: 50, A: 255},  // Maximize\n\t},\n}\n\n// MacchiatoPalette is the color palette for the \"macchiato\" theme.\n// It extends the standard xterm palette with custom colors for the first 16 ANSI colors.\nvar MacchiatoPalette = func() termcolor.Palette {\n\tp := termcolor.Standard()\n\tp[0] = color.RGBA{R: 73, G: 77, B: 100, A: 255}\n\tp[1] = color.RGBA{R: 237, G: 135, B: 150, A: 255}\n\tp[2] = color.RGBA{R: 166, G: 218, B: 149, A: 255}\n\tp[3] = color.RGBA{R: 238, G: 212, B: 159, A: 255}\n\tp[4] = color.RGBA{R: 138, G: 173, B: 244, A: 255}\n\tp[5] = color.RGBA{R: 245, G: 189, B: 230, A: 255}\n\tp[6] = color.RGBA{R: 139, G: 213, B: 202, A: 255}\n\tp[7] = color.RGBA{R: 184, G: 192, B: 224, A: 255}\n\tp[8] = color.RGBA{R: 91, G: 96, B: 120, A: 255}\n\tp[9] = color.RGBA{R: 237, G: 135, B: 150, A: 255}\n\tp[10] = color.RGBA{R: 166, G: 218, B: 149, A: 255}\n\tp[11] = color.RGBA{R: 238, G: 212, B: 159, A: 255}\n\tp[12] = color.RGBA{R: 138, G: 173, B: 244, A: 255}\n\tp[13] = color.RGBA{R: 245, G: 189, B: 230, A: 255}\n\tp[14] = color.RGBA{R: 139, G: 213, B: 202, A: 255}\n\tp[15] = color.RGBA{R: 165, G: 173, B: 203, A: 255}\n\treturn p\n}()\n\n// Mocha is the \"mocha\" theme.\nvar Mocha = Theme{\n\tName:             \"mocha\",\n\tForeground:       color.RGBA{R: 205, G: 214, B: 244, A: 255},\n\tBackground:       color.RGBA{R: 30, G: 30, B: 46, A: 255},\n\tPalette:          MochaPalette,\n\tWindowBackground: color.RGBA{R: 30, G: 30, B: 46, A: 255},\n\tWindowButtons: [3]color.RGBA{\n\t\t{R: 255, G: 95, B: 86, A: 255},  // Close\n\t\t{R: 255, G: 189, B: 46, A: 255}, // Minimize\n\t\t{R: 24, G: 193, B: 50, A: 255},  // Maximize\n\t},\n}\n\n// MochaPalette is the color palette for the \"mocha\" theme.\n// It extends the standard xterm palette with custom colors for the first 16 ANSI colors.\nvar MochaPalette = func() termcolor.Palette {\n\tp := termcolor.Standard()\n\tp[0] = color.RGBA{R: 69, G: 71, B: 90, A: 255}\n\tp[1] = color.RGBA{R: 243, G: 139, B: 168, A: 255}\n\tp[2] = color.RGBA{R: 166, G: 227, B: 161, A: 255}\n\tp[3] = color.RGBA{R: 249, G: 226, B: 175, A: 255}\n\tp[4] = color.RGBA{R: 137, G: 180, B: 250, A: 255}\n\tp[5] = color.RGBA{R: 245, G: 194, B: 231, A: 255}\n\tp[6] = color.RGBA{R: 148, G: 226, B: 213, A: 255}\n\tp[7] = color.RGBA{R: 186, G: 194, B: 222, A: 255}\n\tp[8] = color.RGBA{R: 88, G: 91, B: 112, A: 255}\n\tp[9] = color.RGBA{R: 243, G: 139, B: 168, A: 255}\n\tp[10] = color.RGBA{R: 166, G: 227, B: 161, A: 255}\n\tp[11] = color.RGBA{R: 249, G: 226, B: 175, A: 255}\n\tp[12] = color.RGBA{R: 137, G: 180, B: 250, A: 255}\n\tp[13] = color.RGBA{R: 245, G: 194, B: 231, A: 255}\n\tp[14] = color.RGBA{R: 148, G: 226, B: 213, A: 255}\n\tp[15] = color.RGBA{R: 166, G: 173, B: 200, A: 255}\n\treturn p\n}()\n\n// Monokai is the \"monokai\" theme.\nvar Monokai = Theme{\n\tName:             \"monokai\",\n\tForeground:       color.RGBA{R: 248, G: 248, B: 242, A: 255},\n\tBackground:       color.RGBA{R: 39, G: 40, B: 34, A: 255},\n\tPalette:          MonokaiPalette,\n\tWindowBackground: color.RGBA{R: 39, G: 40, B: 34, A: 255},\n\tWindowButtons: [3]color.RGBA{\n\t\t{R: 255, G: 95, B: 86, A: 255},  // Close\n\t\t{R: 255, G: 189, B: 46, A: 255}, // Minimize\n\t\t{R: 24, G: 193, B: 50, A: 255},  // Maximize\n\t},\n}\n\n// MonokaiPalette is the color palette for the \"monokai\" theme.\n// It extends the standard xterm palette with custom colors for the first 16 ANSI colors.\nvar MonokaiPalette = func() termcolor.Palette {\n\tp := termcolor.Standard()\n\tp[0] = color.RGBA{R: 39, G: 40, B: 34, A: 255}\n\tp[1] = color.RGBA{R: 249, G: 38, B: 114, A: 255}\n\tp[2] = color.RGBA{R: 166, G: 226, B: 46, A: 255}\n\tp[3] = color.RGBA{R: 244, G: 191, B: 117, A: 255}\n\tp[4] = color.RGBA{R: 102, G: 217, B: 239, A: 255}\n\tp[5] = color.RGBA{R: 174, G: 129, B: 255, A: 255}\n\tp[6] = color.RGBA{R: 161, G: 239, B: 228, A: 255}\n\tp[7] = color.RGBA{R: 248, G: 248, B: 242, A: 255}\n\tp[8] = color.RGBA{R: 117, G: 113, B: 94, A: 255}\n\tp[9] = color.RGBA{R: 249, G: 38, B: 114, A: 255}\n\tp[10] = color.RGBA{R: 166, G: 226, B: 46, A: 255}\n\tp[11] = color.RGBA{R: 244, G: 191, B: 117, A: 255}\n\tp[12] = color.RGBA{R: 102, G: 217, B: 239, A: 255}\n\tp[13] = color.RGBA{R: 174, G: 129, B: 255, A: 255}\n\tp[14] = color.RGBA{R: 161, G: 239, B: 228, A: 255}\n\tp[15] = color.RGBA{R: 249, G: 248, B: 245, A: 255}\n\treturn p\n}()\n\n// Nord is the \"nord\" theme.\nvar Nord = Theme{\n\tName:             \"nord\",\n\tForeground:       color.RGBA{R: 236, G: 239, B: 244, A: 255},\n\tBackground:       color.RGBA{R: 46, G: 52, B: 64, A: 255},\n\tPalette:          NordPalette,\n\tWindowBackground: color.RGBA{R: 46, G: 52, B: 64, A: 255},\n\tWindowButtons: [3]color.RGBA{\n\t\t{R: 255, G: 95, B: 86, A: 255},  // Close\n\t\t{R: 255, G: 189, B: 46, A: 255}, // Minimize\n\t\t{R: 24, G: 193, B: 50, A: 255},  // Maximize\n\t},\n}\n\n// NordPalette is the color palette for the \"nord\" theme.\n// It extends the standard xterm palette with custom colors for the first 16 ANSI colors.\nvar NordPalette = func() termcolor.Palette {\n\tp := termcolor.Standard()\n\tp[0] = color.RGBA{R: 59, G: 66, B: 82, A: 255}\n\tp[1] = color.RGBA{R: 191, G: 97, B: 106, A: 255}\n\tp[2] = color.RGBA{R: 163, G: 190, B: 140, A: 255}\n\tp[3] = color.RGBA{R: 235, G: 203, B: 139, A: 255}\n\tp[4] = color.RGBA{R: 129, G: 161, B: 193, A: 255}\n\tp[5] = color.RGBA{R: 180, G: 142, B: 173, A: 255}\n\tp[6] = color.RGBA{R: 136, G: 192, B: 208, A: 255}\n\tp[7] = color.RGBA{R: 236, G: 239, B: 244, A: 255}\n\tp[8] = color.RGBA{R: 76, G: 86, B: 106, A: 255}\n\tp[9] = color.RGBA{R: 191, G: 97, B: 106, A: 255}\n\tp[10] = color.RGBA{R: 163, G: 190, B: 140, A: 255}\n\tp[11] = color.RGBA{R: 235, G: 203, B: 139, A: 255}\n\tp[12] = color.RGBA{R: 129, G: 161, B: 193, A: 255}\n\tp[13] = color.RGBA{R: 180, G: 142, B: 173, A: 255}\n\tp[14] = color.RGBA{R: 136, G: 192, B: 208, A: 255}\n\tp[15] = color.RGBA{R: 236, G: 239, B: 244, A: 255}\n\treturn p\n}()\n\n// SolarizedDark is the \"solarized-dark\" theme.\nvar SolarizedDark = Theme{\n\tName:             \"solarized-dark\",\n\tForeground:       color.RGBA{R: 131, G: 148, B: 150, A: 255},\n\tBackground:       color.RGBA{R: 0, G: 43, B: 54, A: 255},\n\tPalette:          SolarizedDarkPalette,\n\tWindowBackground: color.RGBA{R: 0, G: 43, B: 54, A: 255},\n\tWindowButtons: [3]color.RGBA{\n\t\t{R: 255, G: 95, B: 86, A: 255},  // Close\n\t\t{R: 255, G: 189, B: 46, A: 255}, // Minimize\n\t\t{R: 24, G: 193, B: 50, A: 255},  // Maximize\n\t},\n}\n\n// SolarizedDarkPalette is the color palette for the \"solarized-dark\" theme.\n// It extends the standard xterm palette with custom colors for the first 16 ANSI colors.\nvar SolarizedDarkPalette = func() termcolor.Palette {\n\tp := termcolor.Standard()\n\tp[0] = color.RGBA{R: 7, G: 54, B: 66, A: 255}\n\tp[1] = color.RGBA{R: 220, G: 50, B: 47, A: 255}\n\tp[2] = color.RGBA{R: 133, G: 153, B: 0, A: 255}\n\tp[3] = color.RGBA{R: 181, G: 137, B: 0, A: 255}\n\tp[4] = color.RGBA{R: 38, G: 139, B: 210, A: 255}\n\tp[5] = color.RGBA{R: 211, G: 54, B: 130, A: 255}\n\tp[6] = color.RGBA{R: 42, G: 161, B: 152, A: 255}\n\tp[7] = color.RGBA{R: 238, G: 232, B: 213, A: 255}\n\tp[8] = color.RGBA{R: 0, G: 43, B: 54, A: 255}\n\tp[9] = color.RGBA{R: 203, G: 75, B: 22, A: 255}\n\tp[10] = color.RGBA{R: 88, G: 110, B: 117, A: 255}\n\tp[11] = color.RGBA{R: 101, G: 123, B: 131, A: 255}\n\tp[12] = color.RGBA{R: 131, G: 148, B: 150, A: 255}\n\tp[13] = color.RGBA{R: 108, G: 113, B: 196, A: 255}\n\tp[14] = color.RGBA{R: 147, G: 161, B: 161, A: 255}\n\tp[15] = color.RGBA{R: 253, G: 246, B: 227, A: 255}\n\treturn p\n}()\n\n// SolarizedLight is the \"solarized-light\" theme.\nvar SolarizedLight = Theme{\n\tName:             \"solarized-light\",\n\tForeground:       color.RGBA{R: 101, G: 123, B: 131, A: 255},\n\tBackground:       color.RGBA{R: 253, G: 246, B: 227, A: 255},\n\tPalette:          SolarizedLightPalette,\n\tWindowBackground: color.RGBA{R: 253, G: 246, B: 227, A: 255},\n\tWindowButtons: [3]color.RGBA{\n\t\t{R: 255, G: 95, B: 86, A: 255},  // Close\n\t\t{R: 255, G: 189, B: 46, A: 255}, // Minimize\n\t\t{R: 24, G: 193, B: 50, A: 255},  // Maximize\n\t},\n}\n\n// SolarizedLightPalette is the color palette for the \"solarized-light\" theme.\n// It extends the standard xterm palette with custom colors for the first 16 ANSI colors.\nvar SolarizedLightPalette = func() termcolor.Palette {\n\tp := termcolor.Standard()\n\tp[0] = color.RGBA{R: 7, G: 54, B: 66, A: 255}\n\tp[1] = color.RGBA{R: 220, G: 50, B: 47, A: 255}\n\tp[2] = color.RGBA{R: 133, G: 153, B: 0, A: 255}\n\tp[3] = color.RGBA{R: 181, G: 137, B: 0, A: 255}\n\tp[4] = color.RGBA{R: 38, G: 139, B: 210, A: 255}\n\tp[5] = color.RGBA{R: 211, G: 54, B: 130, A: 255}\n\tp[6] = color.RGBA{R: 42, G: 161, B: 152, A: 255}\n\tp[7] = color.RGBA{R: 238, G: 232, B: 213, A: 255}\n\tp[8] = color.RGBA{R: 0, G: 43, B: 54, A: 255}\n\tp[9] = color.RGBA{R: 203, G: 75, B: 22, A: 255}\n\tp[10] = color.RGBA{R: 88, G: 110, B: 117, A: 255}\n\tp[11] = color.RGBA{R: 101, G: 123, B: 131, A: 255}\n\tp[12] = color.RGBA{R: 131, G: 148, B: 150, A: 255}\n\tp[13] = color.RGBA{R: 108, G: 113, B: 196, A: 255}\n\tp[14] = color.RGBA{R: 147, G: 161, B: 161, A: 255}\n\tp[15] = color.RGBA{R: 253, G: 246, B: 227, A: 255}\n\treturn p\n}()\n"
  },
  {
    "path": "pkg/theme/generate.go",
    "content": "//go:generate go run ../../cmd/themegen\n\npackage theme\n\n// This file contains the go:generate directive for theme code generation.\n// Run `go generate ./pkg/theme/` to regenerate built-in themes from JSON files.\n//\n// The generator reads all .json files from the themes/ directory and generates\n// pkg/theme/builtin.go with theme constants and a registry map.\n"
  },
  {
    "path": "pkg/theme/loader.go",
    "content": "package theme\n\nimport (\n\t\"encoding/json\"\n\t\"fmt\"\n\t\"os\"\n\t\"path/filepath\"\n\t\"strings\"\n)\n\n// Load loads a theme by name (built-in) or path (file).\n// It checks if the input is a file path (contains \"/\" or ends with \".json\")\n// and dispatches to the appropriate loader.\nfunc Load(nameOrPath string) (Theme, error) {\n\t// Check if it's a file path\n\tif strings.Contains(nameOrPath, \"/\") || strings.HasSuffix(nameOrPath, \".json\") {\n\t\treturn LoadFromFile(nameOrPath)\n\t}\n\t// Otherwise load built-in theme\n\treturn LoadBuiltin(nameOrPath)\n}\n\n// LoadFromFile loads a theme from a JSON file.\n// It searches in the following order:\n// 1. Direct path (absolute or relative)\n// 2. TERMSVG_THEME_PATH environment variable directories\nfunc LoadFromFile(path string) (Theme, error) {\n\t// Try direct path first\n\tif _, err := os.Stat(path); err == nil {\n\t\treturn loadThemeFile(path)\n\t}\n\n\t// Try TERMSVG_THEME_PATH directories\n\tthemePath := os.Getenv(\"TERMSVG_THEME_PATH\")\n\tif themePath != \"\" {\n\t\tdirs := strings.Split(themePath, string(os.PathListSeparator))\n\t\tfor _, dir := range dirs {\n\t\t\tfullPath := filepath.Join(dir, path)\n\t\t\tif _, err := os.Stat(fullPath); err == nil {\n\t\t\t\treturn loadThemeFile(fullPath)\n\t\t\t}\n\t\t\t// Also try with .json extension\n\t\t\tif !strings.HasSuffix(path, \".json\") {\n\t\t\t\tfullPath = filepath.Join(dir, path+\".json\")\n\t\t\t\tif _, err := os.Stat(fullPath); err == nil {\n\t\t\t\t\treturn loadThemeFile(fullPath)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn Theme{}, fmt.Errorf(\"theme file not found: %s\", path)\n}\n\n// loadThemeFile reads and parses a theme JSON file.\nfunc loadThemeFile(path string) (Theme, error) {\n\tdata, err := os.ReadFile(path) //nolint:gosec // theme file path is user-provided\n\tif err != nil {\n\t\treturn Theme{}, fmt.Errorf(\"failed to read theme file: %w\", err)\n\t}\n\n\tvar themeData struct {\n\t\tFg      string `json:\"fg\"`\n\t\tBg      string `json:\"bg\"`\n\t\tPalette string `json:\"palette\"`\n\t}\n\n\tif err := json.Unmarshal(data, &themeData); err != nil {\n\t\treturn Theme{}, fmt.Errorf(\"failed to parse theme file: %w\", err)\n\t}\n\n\t// Use filename as theme name (without extension)\n\tname := strings.TrimSuffix(filepath.Base(path), \".json\")\n\n\treturn FromAsciinema(name, themeData.Fg, themeData.Bg, themeData.Palette)\n}\n\n// LoadBuiltin loads a built-in theme by name.\nfunc LoadBuiltin(name string) (Theme, error) {\n\t// Normalize name (lowercase, replace spaces with dashes)\n\tname = strings.ToLower(strings.ReplaceAll(name, \" \", \"-\"))\n\n\t// Check if theme exists in built-in registry\n\tif theme, ok := builtinThemes[name]; ok {\n\t\treturn theme, nil\n\t}\n\n\treturn Theme{}, fmt.Errorf(\"built-in theme not found: %s\", name)\n}\n\n// IsBuiltin checks if a theme name is a built-in theme.\nfunc IsBuiltin(name string) bool {\n\tname = strings.ToLower(strings.ReplaceAll(name, \" \", \"-\"))\n\t_, ok := builtinThemes[name]\n\treturn ok\n}\n\n// ListBuiltin returns a list of available built-in theme names.\nfunc ListBuiltin() []string {\n\tnames := make([]string, 0, len(builtinThemes))\n\tfor name := range builtinThemes {\n\t\tnames = append(names, name)\n\t}\n\treturn names\n}\n"
  },
  {
    "path": "pkg/theme/theme.go",
    "content": "package theme\n\nimport (\n\t\"fmt\"\n\t\"image/color\"\n\t\"strconv\"\n\t\"strings\"\n\n\ttermcolor \"github.com/mrmarble/termsvg/pkg/color\"\n)\n\n// Theme defines the colorscheme for rendering.\ntype Theme struct {\n\tName             string\n\tPalette          termcolor.Palette\n\tForeground       color.RGBA    // Default text color\n\tBackground       color.RGBA    // Default background color\n\tWindowBackground color.RGBA    // Window background color\n\tWindowButtons    [3]color.RGBA // Close, Minimize, Maximize button colors\n}\n\n// Default returns the default theme.\nfunc Default() Theme {\n\tpalette := termcolor.Standard()\n\treturn Theme{\n\t\tName:             \"default\",\n\t\tPalette:          palette,\n\t\tForeground:       termcolor.FromANSI(7).ToRGBA(&palette),\n\t\tBackground:       color.RGBA{R: 0, G: 0, B: 0, A: 255},\n\t\tWindowBackground: color.RGBA{R: 40, G: 45, B: 53, A: 255}, // #282d35\n\t\tWindowButtons: [3]color.RGBA{\n\t\t\t{R: 255, G: 95, B: 86, A: 255},  // Close - #FF5F58\n\t\t\t{R: 255, G: 189, B: 46, A: 255}, // Minimize - #FFBD2E\n\t\t\t{R: 24, G: 193, B: 50, A: 255},  // Maximize - #18c132\n\t\t},\n\t}\n}\n\n// FromAsciinema creates a Theme from asciinema format (fg, bg, palette string).\n// The palette must contain exactly 16 colon-separated hex colors.\n// Returns an error if the palette doesn't have exactly 16 colors.\nfunc FromAsciinema(name, fg, bg, palette string) (Theme, error) {\n\t// Parse foreground and background colors\n\tfgColor, err := ParseHexColor(fg)\n\tif err != nil {\n\t\treturn Theme{}, fmt.Errorf(\"invalid foreground color %q: %w\", fg, err)\n\t}\n\n\tbgColor, err := ParseHexColor(bg)\n\tif err != nil {\n\t\treturn Theme{}, fmt.Errorf(\"invalid background color %q: %w\", bg, err)\n\t}\n\n\t// Parse the 16-color palette\n\tpaletteColors := strings.Split(palette, \":\")\n\tif len(paletteColors) != 16 {\n\t\treturn Theme{}, fmt.Errorf(\"palette must have exactly 16 colors, got %d\", len(paletteColors))\n\t}\n\n\t// Build 256-color palette: start with standard, override first 16 colors\n\tfullPalette := termcolor.Standard()\n\tfor i, hex := range paletteColors {\n\t\tc, err := ParseHexColor(hex)\n\t\tif err != nil {\n\t\t\treturn Theme{}, fmt.Errorf(\"invalid palette color %d %q: %w\", i, hex, err)\n\t\t}\n\t\tfullPalette[i] = c\n\t}\n\n\t// Start with default theme and override asciinema-specific properties\n\ttheme := Default()\n\ttheme.Name = name\n\ttheme.Palette = fullPalette\n\ttheme.Foreground = fgColor\n\ttheme.Background = bgColor\n\ttheme.WindowBackground = bgColor // Use asciinema bg for window background too\n\n\treturn theme, nil\n}\n\n// ParseHexColor parses a hex color string (e.g., \"#ff5733\" or \"#f53\") into color.RGBA.\nfunc ParseHexColor(hex string) (color.RGBA, error) {\n\t// Remove # prefix if present\n\thex = strings.TrimPrefix(hex, \"#\")\n\n\tvar r, g, b uint64\n\tvar err error\n\n\tswitch len(hex) {\n\tcase 3:\n\t\t// Short form: RGB -> RRGGBB\n\t\tr, err = strconv.ParseUint(hex[0:1]+hex[0:1], 16, 8)\n\t\tif err != nil {\n\t\t\treturn color.RGBA{}, fmt.Errorf(\"invalid red component: %w\", err)\n\t\t}\n\t\tg, err = strconv.ParseUint(hex[1:2]+hex[1:2], 16, 8)\n\t\tif err != nil {\n\t\t\treturn color.RGBA{}, fmt.Errorf(\"invalid green component: %w\", err)\n\t\t}\n\t\tb, err = strconv.ParseUint(hex[2:3]+hex[2:3], 16, 8)\n\t\tif err != nil {\n\t\t\treturn color.RGBA{}, fmt.Errorf(\"invalid blue component: %w\", err)\n\t\t}\n\tcase 6:\n\t\t// Long form: RRGGBB\n\t\tr, err = strconv.ParseUint(hex[0:2], 16, 8)\n\t\tif err != nil {\n\t\t\treturn color.RGBA{}, fmt.Errorf(\"invalid red component: %w\", err)\n\t\t}\n\t\tg, err = strconv.ParseUint(hex[2:4], 16, 8)\n\t\tif err != nil {\n\t\t\treturn color.RGBA{}, fmt.Errorf(\"invalid green component: %w\", err)\n\t\t}\n\t\tb, err = strconv.ParseUint(hex[4:6], 16, 8)\n\t\tif err != nil {\n\t\t\treturn color.RGBA{}, fmt.Errorf(\"invalid blue component: %w\", err)\n\t\t}\n\tdefault:\n\t\treturn color.RGBA{}, fmt.Errorf(\"hex color must be 3 or 6 characters, got %d\", len(hex))\n\t}\n\n\treturn color.RGBA{R: uint8(r), G: uint8(g), B: uint8(b), A: 255}, nil\n}\n"
  },
  {
    "path": "scripts/install-termsvg.sh",
    "content": "#!/usr/bin/env bash\n\nfunction get_termsvg() {\n  local DIST=\"\"\n  local EXT=\"\"\n  local FILENAME=\"\"\n  local KERNEL=\"\"\n  local MACHINE=\"\"\n  local TMP_DIR=\"\"\n  local URL=\"\"\n  local TAG=\"\"\n  local VER=\"\"\n\n  # Get the current released tag_name\n  TAG=$(curl -sL https://api.github.com/repos/mrmarble/termsvg/releases \\\n        | grep tag_name | head -n1 | cut -d'\"' -f4)\n\n  if [ -n \"${TAG}\" ]; then\n    URL=\"https://github.com/MrMarble/termsvg/releases/download/${TAG}\"\n    VER=\"${TAG:1}\"\n  else\n    echo \"ERROR! Could not retrieve the current termsvg version number.\"\n    exit 1\n  fi\n\n  # Get kernel name and machine architecture.\n  KERNEL=$(uname -s)\n  MACHINE=$(uname -m)\n\n  # Determine the target distrubution\n  if [ \"${KERNEL}\" == \"Linux\" ]; then\n    EXT=\"tar.gz\"\n    if [ \"${MACHINE}\" == \"i386\" ]; then\n      DIST=\"linux-386\"\n    elif [ \"${MACHINE}\" == \"x86_64\" ]; then\n      DIST=\"linux-amd64\"\n    elif [ \"${MACHINE}\" == \"armv6l\" ]; then\n      DIST=\"linux-armv6\"\n    elif [ \"${MACHINE}\" == \"armv7l\" ]; then\n      DIST=\"linux-armv7\"\n    elif [ \"${MACHINE}\" == \"aarch64\" ]; then\n      DIST=\"linux-arm64\"\n    fi\n  elif [ \"${KERNEL}\" == \"Darwin\" ]; then\n    EXT=\"zip\"\n    if [ \"${MACHINE}\" == \"x86_64\" ]; then\n      DIST=\"darwin-amd64\"\n    elif [ \"${MACHINE}\" == \"arm64\" ]; then\n      DIST=\"darwin-arm64\"\n    fi\n  elif [ \"${KERNEL}\" == \"FreeBSD\" ]; then\n    EXT=\"tar.gz\"\n    if [ \"${MACHINE}\" == \"i386\" ]; then\n      DIST=\"freebsd-386\"\n    elif [ \"${MACHINE}\" == \"x86_64\" ]; then\n      DIST=\"freebsd-amd64\"\n    elif [ \"${MACHINE}\" == \"armv6l\" ]; then\n      DIST=\"freebsd-armv6\"\n    elif [ \"${MACHINE}\" == \"armv7l\" ]; then\n      DIST=\"freebsd-armv7\"\n    fi\n  else\n    echo \"ERROR! ${KERNEL} is not a supported platform.\"\n    exit 1\n  fi\n\n  # Was a known distribution detected?\n  if [ -z \"${DIST}\" ]; then\n    echo \"ERROR! ${MACHINE} is not a supported architecture.\"\n    exit 1\n  fi\n\n  # Derive the filename\n  FILENAME=\"termsvg-${VER}-${DIST}.${EXT}\"\n\n  echo \" - Downloading ${URL}/${FILENAME}\"\n  TMP_DIR=$(mktemp -d -t termsvg-install-XXXX)\n  curl -sLo \"${TMP_DIR}/${FILENAME}\" \"${URL}/${FILENAME}\"\n\n  echo \" - Unpacking ${FILENAME}\"\n  if [ \"${EXT}\" == \"zip\" ]; then\n    unzip -qq -o \"${TMP_DIR}/${FILENAME}\" -d \"${TMP_DIR}\"\n  elif [ \"${EXT}\" == \"tar.gz\" ]; then\n    tar -xf \"${TMP_DIR}/${FILENAME}\" --directory \"${TMP_DIR}\"\n  else\n    echo \"ERROR! Unexpected file extension.\"\n    exit 1\n  fi\n\n  # /usr/local/bin should be present on Linux and macOS hosts. Just be sure.\n  if [ -d /usr/local/bin ]; then\n    echo \" - Placing termsvg in /usr/local/bin\"\n    mv \"${TMP_DIR}/termsvg-${VER}-${DIST}/termsvg\" /usr/local/bin/\n    chmod +x /usr/local/bin/termsvg\n\n    echo \" - Cleaning up\"\n    rm -rf \"${TMP_DIR}\"\n    echo -en \" - \"\n    termsvg --version\n  else\n    echo \"ERROR! /usr/local/bin is not present. Install aborted.\"\n    rm -rf \"${TMP_DIR}\"\n    exit 1\n  fi\n\n}\n\necho \"termsvg scripted install\"\n\nif [ \"$(id -u)\" -ne 0 ]; then\n  echo \"ERROR! You must run this script as root.\"\n  exit 1\nfi\n\nget_termsvg\n"
  },
  {
    "path": "scripts/update-filesize.sh",
    "content": "#!/usr/bin/env bash\n\n# Root folder using git\nBASE_PATH=$(git rev-parse --show-toplevel)\n\nEXAMPLES_FOLDER=\"$BASE_PATH/examples\"\nSVG_FILES=\"$EXAMPLES_FOLDER/*.svg\"\n\n# Markdown table header\nread -r -d '' TABLE << EOS\n| File | Iterations | First Size | Current Size | Variation |\n|------|:----------:|------------|--------------|-----------|\\n\nEOS\n\n\nfor filepath in $SVG_FILES; do\n    filename=$(basename $filepath)\n\n    # Get git commit hash history for file\n    blobs=$(git log --all --format=%H --diff-filter=d -- examples/$filename)\n\n    formated_sizes=()\n    raw_sizes=()\n    for blob in $blobs; do\n        # Join commit hash with file path\n        gittag=\"$blob:examples/$filename\"\n\n        # Obtain file size history in bytes\n        bytes=$(git cat-file -s $gittag)\n        raw_sizes+=($bytes)\n\n        # Format bytes to human readable sizes\n        formated_sizes+=($(numfmt --to=si --suffix=B --format=%.2f $bytes))\n    done\n\n    first=${raw_sizes[-1]}\n    current=$(stat --printf=\"%s\" \"$filepath\")\n    current_formatted=$(numfmt --to=si --suffix=B --format=%.2f $current)\n\n    # Calculate variation percent using bc to suport floating point\n    variation=`echo \"scale=4; (($first-$current)/(($first+$current)/2))*100\" | bc`\n\n    # Append row to table\n    TABLE+=\"| $filename | ${#formated_sizes[@]} | ${formated_sizes[-1]} | $current_formatted | $variation% |\\n\"\ndone\n\nlead='<!--SIZES_START-->'\ntail='<!--SIZES_END-->'\n\n# Replace markers with table\nnew_readme=$(sed -n \"/$lead/{p;:a;N;/$tail/!ba;s/.*\\n/${TABLE//$'\\n'/\\\\n}\\n/};p\" $EXAMPLES_FOLDER/README.md)\necho \"$new_readme\" > $EXAMPLES_FOLDER/README.md\n"
  },
  {
    "path": "themes/dracula.json",
    "content": "{\n  \"fg\": \"#f8f8f2\",\n  \"bg\": \"#282a36\",\n  \"palette\": \"#21222c:#ff5555:#50fa7b:#f1fa8c:#bd93f9:#ff79c6:#8be9fd:#f8f8f2:#6272a4:#ff6e6e:#69ff94:#ffffa5:#d6acff:#ff92df:#a4ffff:#ffffff\"\n}"
  },
  {
    "path": "themes/frappe.json",
    "content": "{\n  \"fg\": \"#c6d0f5\",\n  \"bg\": \"#303446\",\n  \"palette\": \"#51576d:#e78284:#a6d189:#e5c890:#8caaee:#f4b8e4:#81c8be:#b5bfe2:#626880:#e78284:#a6d189:#e5c890:#8caaee:#f4b8e4:#81c8be:#a5adce\"\n}"
  },
  {
    "path": "themes/gruvbox-dark.json",
    "content": "{\n  \"fg\": \"#ebdbb2\",\n  \"bg\": \"#282828\",\n  \"palette\": \"#282828:#cc241d:#98971a:#d79921:#458588:#b16286:#689d6a:#a89984:#928374:#fb4934:#b8bb26:#fabd2f:#83a598:#d3869b:#8ec07c:#ebdbb2\"\n}"
  },
  {
    "path": "themes/gruvbox-light.json",
    "content": "{\n  \"fg\": \"#3c3836\",\n  \"bg\": \"#fbf1c7\",\n  \"palette\": \"#fbf1c7:#cc241d:#98971a:#d79921:#458588:#b16286:#689d6a:#7c6f64:#928374:#9d0006:#79740e:#b57614:#076678:#8f3f71:#427b58:#3c3836\"\n}"
  },
  {
    "path": "themes/latte.json",
    "content": "{\n  \"fg\": \"#4c4f69\",\n  \"bg\": \"#eff1f5\",\n  \"palette\": \"#5c5f77:#d20f39:#40a02b:#df8e1d:#1e66f5:#ea76cb:#179299:#acb0be:#6c6f85:#d20f39:#40a02b:#df8e1d:#1e66f5:#ea76cb:#179299:#bcc0cc\"\n}"
  },
  {
    "path": "themes/macchiato.json",
    "content": "{\n  \"fg\": \"#cad3f5\",\n  \"bg\": \"#24273a\",\n  \"palette\": \"#494d64:#ed8796:#a6da95:#eed49f:#8aadf4:#f5bde6:#8bd5ca:#b8c0e0:#5b6078:#ed8796:#a6da95:#eed49f:#8aadf4:#f5bde6:#8bd5ca:#a5adcb\"\n}"
  },
  {
    "path": "themes/mocha.json",
    "content": "{\n  \"fg\": \"#cdd6f4\",\n  \"bg\": \"#1e1e2e\",\n  \"palette\": \"#45475a:#f38ba8:#a6e3a1:#f9e2af:#89b4fa:#f5c2e7:#94e2d5:#bac2de:#585b70:#f38ba8:#a6e3a1:#f9e2af:#89b4fa:#f5c2e7:#94e2d5:#a6adc8\"\n}"
  },
  {
    "path": "themes/monokai.json",
    "content": "{\n  \"fg\": \"#f8f8f2\",\n  \"bg\": \"#272822\",\n  \"palette\": \"#272822:#f92672:#a6e22e:#f4bf75:#66d9ef:#ae81ff:#a1efe4:#f8f8f2:#75715e:#f92672:#a6e22e:#f4bf75:#66d9ef:#ae81ff:#a1efe4:#f9f8f5\"\n}"
  },
  {
    "path": "themes/nord.json",
    "content": "{\n  \"fg\": \"#eceff4\",\n  \"bg\": \"#2e3440\",\n  \"palette\": \"#3b4252:#bf616a:#a3be8c:#ebcb8b:#81a1c1:#b48ead:#88c0d0:#eceff4:#4c566a:#bf616a:#a3be8c:#ebcb8b:#81a1c1:#b48ead:#88c0d0:#eceff4\"\n}"
  },
  {
    "path": "themes/solarized-dark.json",
    "content": "{\n  \"fg\": \"#839496\",\n  \"bg\": \"#002b36\",\n  \"palette\": \"#073642:#dc322f:#859900:#b58900:#268bd2:#d33682:#2aa198:#eee8d5:#002b36:#cb4b16:#586e75:#657b83:#839496:#6c71c4:#93a1a1:#fdf6e3\"\n}"
  },
  {
    "path": "themes/solarized-light.json",
    "content": "{\n  \"fg\": \"#657b83\",\n  \"bg\": \"#fdf6e3\",\n  \"palette\": \"#073642:#dc322f:#859900:#b58900:#268bd2:#d33682:#2aa198:#eee8d5:#002b36:#cb4b16:#586e75:#657b83:#839496:#6c71c4:#93a1a1:#fdf6e3\"\n}"
  }
]