From 38f115694552944042261d35ffe1184958e33931 Mon Sep 17 00:00:00 2001 From: JarbasAi Date: Fri, 15 Sep 2023 20:54:51 +0100 Subject: [PATCH] gh-pages --- .github/FUNDING.yml | 1 - .github/workflows/build_tests.yml | 25 --- .github/workflows/dev2master.yml | 18 -- .github/workflows/publish_alpha.yml | 72 -------- .github/workflows/publish_build.yml | 76 -------- .github/workflows/publish_major.yml | 76 -------- .github/workflows/publish_minor.yml | 76 -------- .gitignore | 160 ----------------- CHANGELOG.md | 21 --- LICENSE.md | 211 ---------------------- README.md | 17 -- hivemind_ggwave/__init__.py | 262 ---------------------------- hivemind_ggwave/version.py | 7 - index.html | 99 +++++++++++ js/ggwave.js | 21 +++ requirements.txt | 4 - scripts/bump_alpha.py | 18 -- scripts/bump_build.py | 21 --- scripts/bump_major.py | 27 --- scripts/bump_minor.py | 24 --- scripts/remove_alpha.py | 13 -- setup.py | 54 ------ 22 files changed, 120 insertions(+), 1183 deletions(-) delete mode 100644 .github/FUNDING.yml delete mode 100644 .github/workflows/build_tests.yml delete mode 100644 .github/workflows/dev2master.yml delete mode 100644 .github/workflows/publish_alpha.yml delete mode 100644 .github/workflows/publish_build.yml delete mode 100644 .github/workflows/publish_major.yml delete mode 100644 .github/workflows/publish_minor.yml delete mode 100644 .gitignore delete mode 100644 CHANGELOG.md delete mode 100644 LICENSE.md delete mode 100644 README.md delete mode 100644 hivemind_ggwave/__init__.py delete mode 100644 hivemind_ggwave/version.py create mode 100644 index.html create mode 100644 js/ggwave.js delete mode 100644 requirements.txt delete mode 100644 scripts/bump_alpha.py delete mode 100644 scripts/bump_build.py delete mode 100644 scripts/bump_major.py delete mode 100644 scripts/bump_minor.py delete mode 100644 scripts/remove_alpha.py delete mode 100644 setup.py diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml deleted file mode 100644 index 01ecd10..0000000 --- a/.github/FUNDING.yml +++ /dev/null @@ -1 +0,0 @@ -liberapay: jarbasAI diff --git a/.github/workflows/build_tests.yml b/.github/workflows/build_tests.yml deleted file mode 100644 index c982751..0000000 --- a/.github/workflows/build_tests.yml +++ /dev/null @@ -1,25 +0,0 @@ -name: Run Build Tests -on: - push: - workflow_dispatch: - -jobs: - build_tests: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - with: - ref: ${{ github.head_ref }} - - name: Setup Python - uses: actions/setup-python@v1 - with: - python-version: 3.8 - - name: Install Build Tools - run: | - python -m pip install build wheel - - name: Build Distribution Packages - run: | - python setup.py bdist_wheel - - name: Install package - run: | - pip install . diff --git a/.github/workflows/dev2master.yml b/.github/workflows/dev2master.yml deleted file mode 100644 index 5363b5e..0000000 --- a/.github/workflows/dev2master.yml +++ /dev/null @@ -1,18 +0,0 @@ -name: Push dev -> master -on: - workflow_dispatch: - -jobs: - build_and_publish: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - with: - fetch-depth: 0 # otherwise, there would be errors pushing refs to the destination repository. - ref: dev - - name: Push dev -> master - uses: ad-m/github-push-action@master - - with: - github_token: ${{ secrets.GITHUB_TOKEN }} - branch: master \ No newline at end of file diff --git a/.github/workflows/publish_alpha.yml b/.github/workflows/publish_alpha.yml deleted file mode 100644 index cbc9c9d..0000000 --- a/.github/workflows/publish_alpha.yml +++ /dev/null @@ -1,72 +0,0 @@ -# This workflow will generate a distribution and upload it to PyPI - -name: Publish Alpha Build ...aX -on: - push: - branches: - - dev - paths-ignore: - - 'hivemind_ggwave/version.py' - - 'test/**' - - 'examples/**' - - '.github/**' - - '.gitignore' - - 'LICENSE' - - 'CHANGELOG.md' - - 'MANIFEST.in' - - 'readme.md' - - 'scripts/**' - workflow_dispatch: - -jobs: - build_and_publish: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - with: - ref: dev - fetch-depth: 0 # otherwise, there would be errors pushing refs to the destination repository. - - name: Setup Python - uses: actions/setup-python@v1 - with: - python-version: 3.8 - - name: Install Build Tools - run: | - python -m pip install build wheel - - name: Increment Version - run: | - VER=$(python setup.py --version) - python scripts/bump_alpha.py - - name: "Generate release changelog" - uses: heinrichreimer/github-changelog-generator-action@v2.3 - with: - token: ${{ secrets.GITHUB_TOKEN }} - id: changelog - - name: Commit to dev - uses: stefanzweifel/git-auto-commit-action@v4 - with: - commit_message: Increment Version - branch: dev - - name: version - run: echo "::set-output name=version::$(python setup.py --version)" - id: version - - name: Create Release - id: create_release - uses: actions/create-release@v1 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # This token is provided by Actions, you do not need to create your own token - with: - tag_name: V${{ steps.version.outputs.version }} - release_name: Release ${{ steps.version.outputs.version }} - body: | - Changes in this Release - ${{ steps.changelog.outputs.changelog }} - draft: false - prerelease: true - - name: Build Distribution Packages - run: | - python setup.py bdist_wheel - - name: Publish to Test PyPI - uses: pypa/gh-action-pypi-publish@master - with: - password: ${{secrets.PYPI_TOKEN}} \ No newline at end of file diff --git a/.github/workflows/publish_build.yml b/.github/workflows/publish_build.yml deleted file mode 100644 index 9fdcd30..0000000 --- a/.github/workflows/publish_build.yml +++ /dev/null @@ -1,76 +0,0 @@ -# This workflow will generate a distribution and upload it to PyPI - -name: Publish Build Release ..X -on: - workflow_dispatch: - -jobs: - build_and_publish: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - with: - ref: dev - fetch-depth: 0 # otherwise, there would be errors pushing refs to the destination repository. - - name: Setup Python - uses: actions/setup-python@v1 - with: - python-version: 3.8 - - name: Install Build Tools - run: | - python -m pip install build wheel - - name: Remove alpha (declare stable) - run: | - VER=$(python setup.py --version) - python scripts/remove_alpha.py - - name: "Generate release changelog" - uses: heinrichreimer/github-changelog-generator-action@v2.3 - with: - token: ${{ secrets.GITHUB_TOKEN }} - id: changelog - - name: Commit to dev - uses: stefanzweifel/git-auto-commit-action@v4 - with: - commit_message: Declare alpha stable - branch: dev - - name: Push dev -> master - uses: ad-m/github-push-action@master - with: - github_token: ${{ secrets.GITHUB_TOKEN }} - branch: master - force: true - - name: version - run: echo "::set-output name=version::$(python setup.py --version)" - id: version - - name: Create Release - id: create_release - uses: actions/create-release@v1 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # This token is provided by Actions, you do not need to create your own token - with: - tag_name: V${{ steps.version.outputs.version }} - release_name: Release ${{ steps.version.outputs.version }} - body: | - Changes in this Release - ${{ steps.changelog.outputs.changelog }} - draft: false - prerelease: false - - name: Build Distribution Packages - run: | - python setup.py bdist_wheel - - name: Prepare next Build version - run: echo "::set-output name=version::$(python setup.py --version)" - id: alpha - - name: Increment Version ${{ steps.alpha.outputs.version }}Alpha0 - run: | - VER=$(python setup.py --version) - python scripts/bump_build.py - - name: Commit to dev - uses: stefanzweifel/git-auto-commit-action@v4 - with: - commit_message: Prepare Next Version - branch: dev - - name: Publish to Test PyPI - uses: pypa/gh-action-pypi-publish@master - with: - password: ${{secrets.PYPI_TOKEN}} \ No newline at end of file diff --git a/.github/workflows/publish_major.yml b/.github/workflows/publish_major.yml deleted file mode 100644 index 87cee86..0000000 --- a/.github/workflows/publish_major.yml +++ /dev/null @@ -1,76 +0,0 @@ -# This workflow will generate a distribution and upload it to PyPI - -name: Publish Major Release X.0.0 -on: - workflow_dispatch: - -jobs: - build_and_publish: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - with: - ref: dev - fetch-depth: 0 # otherwise, there would be errors pushing refs to the destination repository. - - name: Setup Python - uses: actions/setup-python@v1 - with: - python-version: 3.8 - - name: Install Build Tools - run: | - python -m pip install build wheel - - name: Remove alpha (declare stable) - run: | - VER=$(python setup.py --version) - python scripts/remove_alpha.py - - name: "Generate release changelog" - uses: heinrichreimer/github-changelog-generator-action@v2.3 - with: - token: ${{ secrets.GITHUB_TOKEN }} - id: changelog - - name: Commit to dev - uses: stefanzweifel/git-auto-commit-action@v4 - with: - commit_message: Declare alpha stable - branch: dev - - name: Push dev -> master - uses: ad-m/github-push-action@master - with: - github_token: ${{ secrets.GITHUB_TOKEN }} - branch: master - force: true - - name: version - run: echo "::set-output name=version::$(python setup.py --version)" - id: version - - name: Create Release - id: create_release - uses: actions/create-release@v1 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # This token is provided by Actions, you do not need to create your own token - with: - tag_name: V${{ steps.version.outputs.version }} - release_name: Release ${{ steps.version.outputs.version }} - body: | - Changes in this Release - ${{ steps.changelog.outputs.changelog }} - draft: false - prerelease: false - - name: Build Distribution Packages - run: | - python setup.py bdist_wheel - - name: Prepare next Major version - run: echo "::set-output name=version::$(python setup.py --version)" - id: alpha - - name: Increment Version ${{ steps.alpha.outputs.version }}Alpha0 - run: | - VER=$(python setup.py --version) - python scripts/bump_major.py - - name: Commit to dev - uses: stefanzweifel/git-auto-commit-action@v4 - with: - commit_message: Prepare Next Version - branch: dev - - name: Publish to Test PyPI - uses: pypa/gh-action-pypi-publish@master - with: - password: ${{secrets.PYPI_TOKEN}} \ No newline at end of file diff --git a/.github/workflows/publish_minor.yml b/.github/workflows/publish_minor.yml deleted file mode 100644 index 4e8b231..0000000 --- a/.github/workflows/publish_minor.yml +++ /dev/null @@ -1,76 +0,0 @@ -# This workflow will generate a distribution and upload it to PyPI - -name: Publish Minor Release .X.0 -on: - workflow_dispatch: - -jobs: - build_and_publish: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - with: - ref: dev - fetch-depth: 0 # otherwise, there would be errors pushing refs to the destination repository. - - name: Setup Python - uses: actions/setup-python@v1 - with: - python-version: 3.8 - - name: Install Build Tools - run: | - python -m pip install build wheel - - name: Remove alpha (declare stable) - run: | - VER=$(python setup.py --version) - python scripts/remove_alpha.py - - name: "Generate release changelog" - uses: heinrichreimer/github-changelog-generator-action@v2.3 - with: - token: ${{ secrets.GITHUB_TOKEN }} - id: changelog - - name: Commit to dev - uses: stefanzweifel/git-auto-commit-action@v4 - with: - commit_message: Declare alpha stable - branch: dev - - name: Push dev -> master - uses: ad-m/github-push-action@master - with: - github_token: ${{ secrets.GITHUB_TOKEN }} - branch: master - force: true - - name: version - run: echo "::set-output name=version::$(python setup.py --version)" - id: version - - name: Create Release - id: create_release - uses: actions/create-release@v1 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # This token is provided by Actions, you do not need to create your own token - with: - tag_name: V${{ steps.version.outputs.version }} - release_name: Release ${{ steps.version.outputs.version }} - body: | - Changes in this Release - ${{ steps.changelog.outputs.changelog }} - draft: false - prerelease: false - - name: Build Distribution Packages - run: | - python setup.py bdist_wheel - - name: Prepare next Minor version - run: echo "::set-output name=version::$(python setup.py --version)" - id: alpha - - name: Increment Version ${{ steps.alpha.outputs.version }}Alpha0 - run: | - VER=$(python setup.py --version) - python scripts/bump_minor.py - - name: Commit to dev - uses: stefanzweifel/git-auto-commit-action@v4 - with: - commit_message: Prepare Next Version - branch: dev - - name: Publish to Test PyPI - uses: pypa/gh-action-pypi-publish@master - with: - password: ${{secrets.PYPI_TOKEN}} \ No newline at end of file diff --git a/.gitignore b/.gitignore deleted file mode 100644 index 6769e21..0000000 --- a/.gitignore +++ /dev/null @@ -1,160 +0,0 @@ -# Byte-compiled / optimized / DLL files -__pycache__/ -*.py[cod] -*$py.class - -# C extensions -*.so - -# Distribution / packaging -.Python -build/ -develop-eggs/ -dist/ -downloads/ -eggs/ -.eggs/ -lib/ -lib64/ -parts/ -sdist/ -var/ -wheels/ -share/python-wheels/ -*.egg-info/ -.installed.cfg -*.egg -MANIFEST - -# PyInstaller -# Usually these files are written by a python script from a template -# before PyInstaller builds the exe, so as to inject date/other infos into it. -*.manifest -*.spec - -# Installer logs -pip-log.txt -pip-delete-this-directory.txt - -# Unit test / coverage reports -htmlcov/ -.tox/ -.nox/ -.coverage -.coverage.* -.cache -nosetests.xml -coverage.xml -*.cover -*.py,cover -.hypothesis/ -.pytest_cache/ -cover/ - -# Translations -*.mo -*.pot - -# Django stuff: -*.log -local_settings.py -db.sqlite3 -db.sqlite3-journal - -# Flask stuff: -instance/ -.webassets-cache - -# Scrapy stuff: -.scrapy - -# Sphinx documentation -docs/_build/ - -# PyBuilder -.pybuilder/ -target/ - -# Jupyter Notebook -.ipynb_checkpoints - -# IPython -profile_default/ -ipython_config.py - -# pyenv -# For a library or package, you might want to ignore these files since the code is -# intended to run in multiple environments; otherwise, check them in: -# .python-version - -# pipenv -# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control. -# However, in case of collaboration, if having platform-specific dependencies or dependencies -# having no cross-platform support, pipenv may install dependencies that don't work, or not -# install all needed dependencies. -#Pipfile.lock - -# poetry -# Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control. -# This is especially recommended for binary packages to ensure reproducibility, and is more -# commonly ignored for libraries. -# https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control -#poetry.lock - -# pdm -# Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control. -#pdm.lock -# pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it -# in version control. -# https://pdm.fming.dev/#use-with-ide -.pdm.toml - -# PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm -__pypackages__/ - -# Celery stuff -celerybeat-schedule -celerybeat.pid - -# SageMath parsed files -*.sage.py - -# Environments -.env -.venv -env/ -venv/ -ENV/ -env.bak/ -venv.bak/ - -# Spyder project settings -.spyderproject -.spyproject - -# Rope project settings -.ropeproject - -# mkdocs documentation -/site - -# mypy -.mypy_cache/ -.dmypy.json -dmypy.json - -# Pyre type checker -.pyre/ - -# pytype static type analyzer -.pytype/ - -# Cython debug symbols -cython_debug/ - -# PyCharm -# JetBrains specific template is maintained in a separate JetBrains.gitignore that can -# be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore -# and can be added to the global gitignore or merged into this file. For a more nuclear -# option (not recommended) you can uncomment the following to ignore the entire idea folder. -#.idea/ \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md deleted file mode 100644 index 9f74c32..0000000 --- a/CHANGELOG.md +++ /dev/null @@ -1,21 +0,0 @@ -# Changelog - -## [V0.0.0a0](https://github.com/JarbasHiveMind/hivemind-ggwave/tree/V0.0.0a0) (2023-09-15) - -[Full Changelog](https://github.com/JarbasHiveMind/hivemind-ggwave/compare/V0.0.0a4...V0.0.0a0) - -## [V0.0.0a4](https://github.com/JarbasHiveMind/hivemind-ggwave/tree/V0.0.0a4) (2023-09-15) - -[Full Changelog](https://github.com/JarbasHiveMind/hivemind-ggwave/compare/V0.0.0a3...V0.0.0a4) - -## [V0.0.0a3](https://github.com/JarbasHiveMind/hivemind-ggwave/tree/V0.0.0a3) (2023-09-15) - -[Full Changelog](https://github.com/JarbasHiveMind/hivemind-ggwave/compare/V0.0.0a2...V0.0.0a3) - -## [V0.0.0a2](https://github.com/JarbasHiveMind/hivemind-ggwave/tree/V0.0.0a2) (2023-09-15) - -[Full Changelog](https://github.com/JarbasHiveMind/hivemind-ggwave/compare/8f4d9e4d03de58e502ae3c94c4def9514a5ec5af...V0.0.0a2) - - - -\* *This Changelog was automatically generated by [github_changelog_generator](https://github.com/github-changelog-generator/github-changelog-generator)* diff --git a/LICENSE.md b/LICENSE.md deleted file mode 100644 index cda0a4a..0000000 --- a/LICENSE.md +++ /dev/null @@ -1,211 +0,0 @@ - - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright 2023 Casimiro Ferreira - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - -======================================================================= - -Component licenses for mycroft-core: - -The mycroft-core software references various Python Packages (via PIP), -each of which has a separate license. All are compatible with the -Apache 2.0 license. See the referenced packages listed in the -"requirements/requirements.txt" file for specific terms and conditions. diff --git a/README.md b/README.md deleted file mode 100644 index f935272..0000000 --- a/README.md +++ /dev/null @@ -1,17 +0,0 @@ -# HiveMind GGWave - -Data over sound for HiveMind - -## Enrolling clients - -- master emits a password via ggwave (periodically until an access key is received) -- devices wanting to connect grab password, generate an access key and send it via ggwave -- master adds a client with key + password, send an ack (containing host) via ggwave -- slave devices get the ack then connect to received host - -## out of band password emit - -set password manually and enable silent mode (if silent mode is disabled the pswd is emitted evey 3 seconds) - -- manually exchanged string [via browser](https://ggwave-js.ggerganov.com/) -- with a [talking button](https://github.com/ggerganov/ggwave/discussions/27) diff --git a/hivemind_ggwave/__init__.py b/hivemind_ggwave/__init__.py deleted file mode 100644 index 918e391..0000000 --- a/hivemind_ggwave/__init__.py +++ /dev/null @@ -1,262 +0,0 @@ -import os -import time -import wave -from distutils.spawn import find_executable -from os.path import isfile, expanduser -from threading import Thread - -import pexpect -import requests -from hivemind_bus_client.identity import NodeIdentity -from ovos_utils.file_utils import get_temp_path -from ovos_utils.log import LOG -from ovos_utils.messagebus import FakeBus, Message -from ovos_utils.network_utils import get_ip -from ovos_utils.sound import play_audio - - -class GGWave(Thread): - """ - - master emits a password via ggwave (periodically until an access key is received) - - devices wanting to connect grab password, generate an access key and send it via ggwave - - master adds a client with key + password, send an ack (containing host) via ggwave - - slave devices keep emitting message until they get the ack (then connect to received host) - """ - - def __init__(self, config=None, callbacks=None, debug=False): - super().__init__(daemon=True) - self.config = config or {} - self.debug = debug - self.rx = self.config.get("ggwave-rx") or \ - find_executable("ggwave-rx") or \ - expanduser("~/.local/bin/ggwave-rx") - self.tx = self.config.get("ggwave-cli") or \ - find_executable("ggwave-cli") or \ - expanduser("~/.local/bin/ggwave-cli") - if not isfile(self.rx): - raise ValueError(f"ggwave-rx not found in {self.rx}, " - f"please install from https://github.com/ggerganov/ggwave") - - self.OPCODES = callbacks or {} - - self.running = False - self.remote = self.config.get("remote", False) - if not isfile(self.tx): - LOG.warning("ggwave-cli not found, forcing remote usage") - self.remote = True - - def stop(self): - self.running = False - - def run(self): - self.running = True - child = pexpect.spawn(self.rx) - marker = "Received sound data successfully: " - while self.running: - try: - txt = child.readline().decode("utf-8").strip() - if self.debug and txt in ["Receiving sound data ...", - "Analyzing captured data .."]: - LOG.debug(txt) - if txt.startswith(marker): - payload = txt.split(marker)[-1][1:-1] - for opcode, handler in self.OPCODES.items(): - if payload.startswith(opcode): - p = payload.split(opcode, 1)[-1] - if self.debug: - LOG.debug(f"OPCODE: {opcode} PAYLOAD: {p}") - handler(p) - break - else: - LOG.error(f"invalid ggwave payload: {payload}") - except pexpect.exceptions.EOF: - # exited - LOG.debug("Exited ggwave-rx process") - break - except pexpect.exceptions.TIMEOUT: - # nothing happened for a while - pass - except KeyboardInterrupt: - break - child.close(True) - - def handle_host(self, payload): - pass - - def handle_key(self, payload): - pass - - def handle_pswd(self, payload): - pass - - def emit(self, payload): - if self.remote: - tmp = get_temp_path("ggwave") - wav = self.encode2wave(payload, - f'{tmp}/{payload.replace(":", "_").replace("/", "_")}.wav') - play_audio(wav).wait() - else: - p = pexpect.spawn(f"{self.tx}") - p.expect("Enter text:") - p.sendline(payload + "\n") - p.expect("Enter text:") - time.sleep(5) - p.close(True) - - def encode2wave(self, message: str, - wav_path: str, - protocolId: int = 1, - sampleRate: float = 48000, - volume: int = 50, - payloadLength: int = -1, - useDSS: int = 0): - url = 'https://ggwave-to-file.ggerganov.com/' - params = { - 'm': message, # message to encode - 'p': protocolId, # transmission protocol to use - 's': sampleRate, # output sample rate - 'v': volume, # output volume - 'l': payloadLength, # if positive - use fixed-length encoding - 'd': useDSS, # if positive - use DSS - } - - response = requests.get(url, params=params) - if response == '' or b'Usage: ggwave-to-file' in response.content: - raise SyntaxError('Request failed') - - with wave.open(wav_path, 'wb') as f: - f.setnchannels(1) - f.setframerate(sampleRate) - f.setsampwidth(2) - f.writeframes(response.content) - return wav_path - - -class GGWaveMaster(Thread): - """ run on hivemind-core device - when loading this class share self.bus to react to events if needed - eg, start/stop on demand - - if in silent mode the password is assumed to be transmited out of band - might be a string emitted by the user with another ggwave implementation - """ - - def __init__(self, bus=None, pswd=None, host=None, silent_mode=False, config=None): - super().__init__(daemon=True) - self.bus = bus or FakeBus() - self.host = host - self.pswd = pswd - - callbacks = { - "HMKEY:": self.handle_key - } - - self.ggwave = GGWave(config, callbacks) - self.ggwave.handle_key = self.handle_key - - # if in silent mode the password is assumed to be transmited out of band - # might be a string emited by the user with another ggwave implementation - self.silent_mode = silent_mode - - def add_client(self, access_key): - - from hivemind_core.database import ClientDatabase - - key = os.urandom(8).hex() - - with ClientDatabase() as db: - name = f"HiveMind-Node-{db.total_clients()}" - db.add_client(name, access_key, crypto_key=key, password=self.pswd) - - # verify - user = db.get_client_by_api_key(access_key) - node_id = db.get_item_id(user) - - LOG.info(f"Credentials added to database! {access_key}") - - self.bus.emit(Message("hm.ggwave.client_registered", - {"key": access_key, - "pswd": self.pswd, - "id": node_id, - "name": name})) - - def run(self): - self.ggwave.start() - LOG.info("ggwave activated") - self.pswd = self.pswd or os.urandom(8).hex() - self.host = self.host or get_ip() - self.bus.emit(Message("hm.ggwave.activated")) - if self.silent_mode: - LOG.info(f"to enrol a new device using ggwave emit the code HMPSWD:{self.pswd}") - while self.ggwave.running: - time.sleep(5) - if not self.silent_mode: - LOG.info("broadcasting password") - self.ggwave.emit(f"HMPSWD:{self.pswd}") - self.bus.emit(Message("hm.ggwave.pswd_emitted")) - - def stop(self): - self.ggwave.stop() - self.bus.emit(Message("hm.ggwave.deactivated")) - LOG.info("ggwave deactivated") - - def handle_key(self, payload): - if self.ggwave.running: - self.bus.emit(Message("hm.ggwave.key_received")) - self.add_client(payload) - self.ggwave.emit(f"HMHOST:{self.host}") - self.bus.emit(Message("hm.ggwave.host_emitted")) - - -class GGWaveSlave: - """ run on satellite devices - when loading this class share self.bus to react to events if needed, - eg connect once entity created """ - - def __init__(self, key=None, bus=None, config=None): - self.bus = bus or FakeBus() - self.pswd = None - self.key = key or os.urandom(8).hex() - callbacks = { - "HMPSWD:": self.handle_pswd, - "HMHOST:": self.handle_host - } - self.ggwave = GGWave(config, callbacks) - - def start(self): - self.ggwave.start() - self.bus.emit(Message("hm.ggwave.activated")) - LOG.info("ggwave activated") - - def stop(self): - self.ggwave.stop() - self.pswd = None - self.key = None - self.bus.emit(Message("hm.ggwave.deactivated")) - LOG.info("ggwave deactivated") - - def handle_pswd(self, payload): - LOG.info(f"ggwave password received: {payload}") - if self.ggwave.running: - #LOG.info(f"ggwave password received: {payload}") - self.pswd = payload - self.bus.emit(Message("hm.ggwave.pswd_received")) - self.ggwave.emit(f"HMKEY:{self.key}") - self.bus.emit(Message("hm.ggwave.key_emitted")) - - def handle_host(self, payload): - if self.ggwave.running: - host = payload - LOG.info(f"ggwave host received: {payload}") - self.bus.emit(Message("hm.ggwave.host_received")) - if host and self.pswd and self.key: - identity = NodeIdentity() - identity.password = self.pswd - identity.access_key = self.key - if not host.startswith("ws://") and not host.startswith("wss://"): - host = "ws://" + host - identity.default_master = host - identity.save() - LOG.info(f"identity saved: {identity.IDENTITY_FILE.path}") - self.bus.emit(Message("hm.ggwave.identity_updated")) - self.stop() diff --git a/hivemind_ggwave/version.py b/hivemind_ggwave/version.py deleted file mode 100644 index 8d95a28..0000000 --- a/hivemind_ggwave/version.py +++ /dev/null @@ -1,7 +0,0 @@ -# The following lines are replaced during the release process. -# START_VERSION_BLOCK -VERSION_MAJOR = 0 -VERSION_MINOR = 0 -VERSION_BUILD = 1 -VERSION_ALPHA = 1 -# END_VERSION_BLOCK diff --git a/index.html b/index.html new file mode 100644 index 0000000..df2a18f --- /dev/null +++ b/index.html @@ -0,0 +1,99 @@ + + + + Hey HiveMind + + + + +
+

+ + + + +

+ + Hey HiveMind, pair a satellite device! + +

+ + +
+ + + +
+

+
+ + + + + + + + \ No newline at end of file diff --git a/js/ggwave.js b/js/ggwave.js new file mode 100644 index 0000000..c02c3ee --- /dev/null +++ b/js/ggwave.js @@ -0,0 +1,21 @@ + +var ggwave_factory = (() => { + var _scriptDir = typeof document !== 'undefined' && document.currentScript ? document.currentScript.src : undefined; + if (typeof __filename !== 'undefined') _scriptDir = _scriptDir || __filename; + return ( +function(ggwave_factory) { + ggwave_factory = ggwave_factory || {}; + +var Module=typeof ggwave_factory!=="undefined"?ggwave_factory:{};var objAssign=Object.assign;var readyPromiseResolve,readyPromiseReject;Module["ready"]=new Promise(function(resolve,reject){readyPromiseResolve=resolve;readyPromiseReject=reject});var moduleOverrides=objAssign({},Module);var arguments_=[];var thisProgram="./this.program";var quit_=(status,toThrow)=>{throw toThrow};var ENVIRONMENT_IS_WEB=typeof window==="object";var ENVIRONMENT_IS_WORKER=typeof importScripts==="function";var ENVIRONMENT_IS_NODE=typeof process==="object"&&typeof process.versions==="object"&&typeof process.versions.node==="string";var scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;function logExceptionOnExit(e){if(e instanceof ExitStatus)return;let toLog=e;err("exiting due to exception: "+toLog)}var fs;var nodePath;var requireNodeFS;if(ENVIRONMENT_IS_NODE){if(ENVIRONMENT_IS_WORKER){scriptDirectory=require("path").dirname(scriptDirectory)+"/"}else{scriptDirectory=__dirname+"/"}requireNodeFS=(()=>{if(!nodePath){fs=require("fs");nodePath=require("path")}});read_=function shell_read(filename,binary){var ret=tryParseAsDataURI(filename);if(ret){return binary?ret:ret.toString()}requireNodeFS();filename=nodePath["normalize"](filename);return fs.readFileSync(filename,binary?null:"utf8")};readBinary=(filename=>{var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}return ret});readAsync=((filename,onload,onerror)=>{var ret=tryParseAsDataURI(filename);if(ret){onload(ret)}requireNodeFS();filename=nodePath["normalize"](filename);fs.readFile(filename,function(err,data){if(err)onerror(err);else onload(data.buffer)})});if(process["argv"].length>1){thisProgram=process["argv"][1].replace(/\\/g,"/")}arguments_=process["argv"].slice(2);process["on"]("uncaughtException",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process["on"]("unhandledRejection",function(reason){throw reason});quit_=((status,toThrow)=>{if(keepRuntimeAlive()){process["exitCode"]=status;throw toThrow}logExceptionOnExit(toThrow);process["exit"](status)});Module["inspect"]=function(){return"[Emscripten Module object]"}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!=="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(_scriptDir){scriptDirectory=_scriptDir}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.replace(/[?#].*/,"").lastIndexOf("/")+1)}else{scriptDirectory=""}{read_=(url=>{try{var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText}catch(err){var data=tryParseAsDataURI(url);if(data){return intArrayToString(data)}throw err}});if(ENVIRONMENT_IS_WORKER){readBinary=(url=>{try{var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}catch(err){var data=tryParseAsDataURI(url);if(data){return data}throw err}})}readAsync=((url,onload,onerror)=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=(()=>{if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}var data=tryParseAsDataURI(url);if(data){onload(data.buffer);return}onerror()});xhr.onerror=onerror;xhr.send(null)})}setWindowTitle=(title=>document.title=title)}else{}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.warn.bind(console);objAssign(Module,moduleOverrides);moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];var tempRet0=0;var setTempRet0=value=>{tempRet0=value};var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];var noExitRuntime=Module["noExitRuntime"]||true;if(typeof WebAssembly!=="object"){abort("no native wasm support detected")}var wasmMemory;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort(text)}}var UTF8Decoder=typeof TextDecoder!=="undefined"?new TextDecoder("utf8"):undefined;function UTF8ArrayToString(heap,idx,maxBytesToRead){var endIdx=idx+maxBytesToRead;var endPtr=idx;while(heap[endPtr]&&!(endPtr>=endIdx))++endPtr;if(endPtr-idx>16&&heap.subarray&&UTF8Decoder){return UTF8Decoder.decode(heap.subarray(idx,endPtr))}else{var str="";while(idx>10,56320|ch&1023)}}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127)++len;else if(u<=2047)len+=2;else if(u<=65535)len+=3;else len+=4}return len}var UTF16Decoder=typeof TextDecoder!=="undefined"?new TextDecoder("utf-16le"):undefined;function UTF16ToString(ptr,maxBytesToRead){var endPtr=ptr;var idx=endPtr>>1;var maxIdx=idx+maxBytesToRead/2;while(!(idx>=maxIdx)&&HEAPU16[idx])++idx;endPtr=idx<<1;if(endPtr-ptr>32&&UTF16Decoder){return UTF16Decoder.decode(HEAPU8.subarray(ptr,endPtr))}else{var str="";for(var i=0;!(i>=maxBytesToRead/2);++i){var codeUnit=HEAP16[ptr+i*2>>1];if(codeUnit==0)break;str+=String.fromCharCode(codeUnit)}return str}}function stringToUTF16(str,outPtr,maxBytesToWrite){if(maxBytesToWrite===undefined){maxBytesToWrite=2147483647}if(maxBytesToWrite<2)return 0;maxBytesToWrite-=2;var startPtr=outPtr;var numCharsToWrite=maxBytesToWrite>1]=codeUnit;outPtr+=2}HEAP16[outPtr>>1]=0;return outPtr-startPtr}function lengthBytesUTF16(str){return str.length*2}function UTF32ToString(ptr,maxBytesToRead){var i=0;var str="";while(!(i>=maxBytesToRead/4)){var utf32=HEAP32[ptr+i*4>>2];if(utf32==0)break;++i;if(utf32>=65536){var ch=utf32-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}else{str+=String.fromCharCode(utf32)}}return str}function stringToUTF32(str,outPtr,maxBytesToWrite){if(maxBytesToWrite===undefined){maxBytesToWrite=2147483647}if(maxBytesToWrite<4)return 0;var startPtr=outPtr;var endPtr=startPtr+maxBytesToWrite-4;for(var i=0;i=55296&&codeUnit<=57343){var trailSurrogate=str.charCodeAt(++i);codeUnit=65536+((codeUnit&1023)<<10)|trailSurrogate&1023}HEAP32[outPtr>>2]=codeUnit;outPtr+=4;if(outPtr+4>endPtr)break}HEAP32[outPtr>>2]=0;return outPtr-startPtr}function lengthBytesUTF32(str){var len=0;for(var i=0;i=55296&&codeUnit<=57343)++i;len+=4}return len}function alignUp(x,multiple){if(x%multiple>0){x+=multiple-x%multiple}return x}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferAndViews(buf){buffer=buf;Module["HEAP8"]=HEAP8=new Int8Array(buf);Module["HEAP16"]=HEAP16=new Int16Array(buf);Module["HEAP32"]=HEAP32=new Int32Array(buf);Module["HEAPU8"]=HEAPU8=new Uint8Array(buf);Module["HEAPU16"]=HEAPU16=new Uint16Array(buf);Module["HEAPU32"]=HEAPU32=new Uint32Array(buf);Module["HEAPF32"]=HEAPF32=new Float32Array(buf);Module["HEAPF64"]=HEAPF64=new Float64Array(buf)}var INITIAL_MEMORY=Module["INITIAL_MEMORY"]||16777216;var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeKeepaliveCounter=0;function keepRuntimeAlive(){return noExitRuntime||runtimeKeepaliveCounter>0}function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;callRuntimeCallbacks(__ATINIT__)}function postRun(){if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function addRunDependency(id){runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module["preloadedImages"]={};Module["preloadedAudios"]={};function abort(what){{if(Module["onAbort"]){Module["onAbort"](what)}}what="Aborted("+what+")";err(what);ABORT=true;EXITSTATUS=1;what+=". Build with -s ASSERTIONS=1 for more info.";var e=new WebAssembly.RuntimeError(what);readyPromiseReject(e);throw e}var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return filename.startsWith(dataURIPrefix)}function isFileURI(filename){return filename.startsWith("file://")}var wasmBinaryFile;wasmBinaryFile="data:application/octet-stream;base64,AGFzbQEAAAAB5QEhYAN/f38AYAF/AX9gAX8AYAN/f38Bf2AFf39/f38AYAR/f39/AGAGf39/f39/AGACf38AYAAAYAV/f39/fwF/YAJ/fwF/YAN/fn8BfmAEf39/fwF/YAABf2ABfAF9YAF9AX1gAXwBfGACfH8BfGAGf3x/f39/AX9gCn9/f39/f39/f38AYAN/f3wAYAd/f39/f39/AGACfn8Bf2ADfHx/AXxgAnx8AXxgBX99f39/AX9gBn9/f39/fwF/YAJ9fwF/YAJ8fwF/YAd/f39/f39/AX9gBH9/fn4AYAN/f30AYAJ/fwF9Ap0BGgFhAWEAAAFhAWIAAAFhAWMABgFhAWQAEwFhAWUABAFhAWYAFAFhAWcACgFhAWgACAFhAWkAAAFhAWoAAgFhAWsAAgFhAWwADAFhAW0ABwFhAW4AAAFhAW8ABQFhAXAAAgFhAXEABgFhAXIACQFhAXMAFQFhAXQAAgFhAXUAAQFhAXYAAQFhAXcAAwFhAXgABwFhAXkABAFhAXoABwNtbAMDAAEABAMCAgENDg4BAAEWDwIQFxgZDxEIBAUAEAMADAEFBggFAwoAAAEaBREBAgAbHAkIAAEDAAkdCgAAHgQFBQUDBwEIChIBCwELAwEfIAECAQIFAAIHBwIHBwAICAIAAwkEBgYGBAQJDQQFAXABNjYFBwEBgAKAgAIGCQF/AUGw7sACCwchCAFBAgABQgA+AUMBAAFEACEBRQAnAUYAawFHAE4BSAB9CUEBAEEBCzWFAXRVT2ppVU9jbmFtXmyEAX58e3p5eHd2dXNycWhnZmVkYl8sSUlALEAsXX+CAVwsgAGDAVssgQFZWgqluwRsgQQBA38gAkGABE8EQCAAIAEgAhAWGiAADwsgACACaiEDAkAgACABc0EDcUUEQAJAIABBA3FFBEAgACECDAELIAJFBEAgACECDAELIAAhAgNAIAIgAS0AADoAACABQQFqIQEgAkEBaiICQQNxRQ0BIAIgA0kNAAsLAkAgA0F8cSIEQcAASQ0AIAIgBEFAaiIFSw0AA0AgAiABKAIANgIAIAIgASgCBDYCBCACIAEoAgg2AgggAiABKAIMNgIMIAIgASgCEDYCECACIAEoAhQ2AhQgAiABKAIYNgIYIAIgASgCHDYCHCACIAEoAiA2AiAgAiABKAIkNgIkIAIgASgCKDYCKCACIAEoAiw2AiwgAiABKAIwNgIwIAIgASgCNDYCNCACIAEoAjg2AjggAiABKAI8NgI8IAFBQGshASACQUBrIgIgBU0NAAsLIAIgBE8NAQNAIAIgASgCADYCACABQQRqIQEgAkEEaiICIARJDQALDAELIANBBEkEQCAAIQIMAQsgACADQQRrIgRLBEAgACECDAELIAAhAgNAIAIgAS0AADoAACACIAEtAAE6AAEgAiABLQACOgACIAIgAS0AAzoAAyABQQRqIQEgAkEEaiICIARNDQALCyACIANJBEADQCACIAEtAAA6AAAgAUEBaiEBIAJBAWoiAiADRw0ACwsgAAvyAgICfwF+AkAgAkUNACAAIAE6AAAgACACaiIDQQFrIAE6AAAgAkEDSQ0AIAAgAToAAiAAIAE6AAEgA0EDayABOgAAIANBAmsgAToAACACQQdJDQAgACABOgADIANBBGsgAToAACACQQlJDQAgAEEAIABrQQNxIgRqIgMgAUH/AXFBgYKECGwiATYCACADIAIgBGtBfHEiBGoiAkEEayABNgIAIARBCUkNACADIAE2AgggAyABNgIEIAJBCGsgATYCACACQQxrIAE2AgAgBEEZSQ0AIAMgATYCGCADIAE2AhQgAyABNgIQIAMgATYCDCACQRBrIAE2AgAgAkEUayABNgIAIAJBGGsgATYCACACQRxrIAE2AgAgBCADQQRxQRhyIgRrIgJBIEkNACABrUKBgICAEH4hBSADIARqIQEDQCABIAU3AxggASAFNwMQIAEgBTcDCCABIAU3AwAgAUEgaiEBIAJBIGsiAkEfSw0ACwsgAAsjAQF/IwBBEGsiAyQAIAMgAjYCDCAAIAEgAhBCIANBEGokAAszAQF/IABBASAAGyEAAkADQCAAECciAQ0BQaTuACgCACIBBEAgAREIAAwBCwsQBwALIAELFwAgAC0AAEEgcUUEQCABIAIgABA4GgsLbwEBfyMAQYACayIFJAACQCACIANMDQAgBEGAwARxDQAgBSABQf8BcSACIANrIgJBgAIgAkGAAkkiARsQGxogAUUEQANAIAAgBUGAAhAeIAJBgAJrIgJB/wFLDQALCyAAIAUgAhAeCyAFQYACaiQAC3QBAX8gAkUEQCAAKAIEIAEoAgRGDwsgACABRgRAQQEPCyABKAIEIgItAAAh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BGsiAkEDSw0ACwsgAkUNAANAIAAgAS0AADoAACAAQQFqIQAgAUEBaiEBIAJBAWsiAg0ACwsLry4BD38gACAALQABIgwgACgCBGpBAWo2AhAgACgCHCgCACAALwEYaiABIAAtAAAiERAaGiAAIBE6ABQgAC0AACIEIAAoAhwoAgAgAC8BGGpqIAIgAC0AASIBEBoaIAAgASAEaiICOgAUIAAgAC0AICIBIAIgASACQf8BcUsbIgE6ACAgACgCKCgCACAALwEkaiAAKAIcKAIAIAAvARhqIAFB/wFxEBoaIAAgAToAICAAQQA6AKQBQQEhECAAIAAtAAFBAWo6AHQgACgCfCgCACAALwF4akEAOgAAIAAtAAEEQANAIBBB/wFxIgpBAWtB/wFvIQEgACgCHCgCACAALwEYaiIHLQAAIQICQCAALQAUIghBAkkNACABQf8BaiABIAFBAEgbQfArai0AACEGQQEhASAIQQFrIgRBAXEhBSAIQQJHBEAgBEF+cSEIQQAhDQNAIAFBAWohBCACQf8BcSICBH8gBkHwKWotAAAgAkHwKWotAABqQfArai0AAAVBAAsgASAHai0AAHNB/wFxIgIEfyAGQfApai0AACACQfApai0AAGpB8CtqLQAABUEACyECIAFBAmohASAEIAdqLQAAIAJzIQIgDUECaiINIAhHDQALCyAFRQ0AIAJB/wFxIgIEfyAGQfApai0AACACQfApai0AAGpB8CtqLQAABUEACyABIAdqLQAAcyECCyAAKAJ8KAIAIAAvAXhqIApqIAI6AAAgAC0AASAQQQFqIhBB/wFxTw0ACwsCQAJAIAAtAHQiBEUNACAMIBFqIRIgACgCfCgCACAALwF4aiECQQAhAQNAIAEgAmotAABFBEAgBCABQQFqIgFHDQEMAgsLIBJB/wFxIg8hBUEAIQFBACECIABBADoAOAJAIAAtAKQBRQ0AA0AgACgCrAEoAgAgAC8BqAFqIAFqLQAAIQggACgCQCgCACEEIAAgAkEBajoAOCAEIAAvATxqIAJB/wFxaiAIQX9zIAVqOgAAIAFBAWoiASAALQCkAU8NASAALQA4IQIMAAsACyAAKAKIASgCACAALwGEAWpBACAALQCCARAbGiAAKAKIASgCACAALwGEAWogACgCfCgCACAALwF4akEBaiAALQB0QQFrIgJB/wFxEBoaIAAgAjoAgAEgAC0ApAEiAQRAA0AgAkH/AXFBAUsEQEEAIQFBACAAKAJAKAIAIAAvATxqIAlqLQAAIgIgAkH/AUYbQfArai0AACEKA0BBACECIAAoAogBKAIAIAAvAYQBaiIFIAFB/wFxaiIILQAAIgQEQCAKQfApai0AACAEQfApai0AAGpB8CtqLQAAIQILIAggBSABQQFqIgFB/wFxai0AACACczoAACAALQCAASICQQFrIAFBGHRBGHVKDQALIAAtAKQBIQELIAlBAWoiCSABQf8BcUkNAAsLQQAhECAALQCkASEJIABBAToARCAAQQE6ADggAEFAaygCACgCACAALwE8akEBOgAAIAAoAkwoAgAgAC8BSGpBAToAACAJIAAtAAEiDUcEQCAALQCAASIBIA1rQf8BcUEAIAEgDUsbIQYDQCAAKAKIASgCACAALwGEAWoiDCAGIA5qIgpB/wFxai0AACENIAAtADgiB0ECTwRAIAAoAkAoAgAgAC8BPGohBUEBIQFBASECA0BBACELAkAgBSAHIAJBf3NqQf8BcWotAAAiCEUNACAMIAogAWtB/wFxai0AACIERQ0AIARB8ClqLQAAIAhB8ClqLQAAakHwK2otAAAhCwsgAkEBaiECIAsgDXMhDSABQQFqIgEgB0cNAAsLIAAoAkwoAgAhAiAAIAAtAEQiAUEBajoARCABIAIgAC8BSGpqQQA6AAAgDUH/AXEiCARAIAAtAEQiCyAALQA4IgFLBEAgACALOgBcIA1B/wFxIQhBACECA0AgACgCZCgCACAALwFgaiACaiAAKAJMKAIAIAAvAUhqIAJqLQAAIgEEfyAIQfApai0AACABQfApai0AAGpB8CtqLQAABUEACzoAACACQQFqIgIgAC0AREkNAAsgACAALQA4IgE6AERBACECAkAgAQRAIAhB8ClqLQAAQf8Bc0HwK2otAAAhBANAIAAoAkwoAgAgAC8BSGogAmogACgCQCgCACAALwE8aiACai0AACIBBH8gBEHwKWotAAAgAUHwKWotAABqQfArai0AAAVBAAs6AAAgAkEBaiICIAAtADgiAUkNAAsMAQtBACEBCyAAIAEgAC0AXCICIAEgAksbIgE6ADggACgCQCgCACAALwE8aiAAKAJkKAIAIAAvAWBqIAEQGhogACABOgA4IAAt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AAAFQQALIAIgBmotAABzIgEEfyAHQfApai0AACABQfApai0AAGpB8CtqLQAABUEACyEBIAJBAmohAiAFIAZqLQAAIAFzIQsgDkECaiIOIApHDQALCyAMRQ0AIAtB/wFxIgEEfyAHQfApai0AACABQfApai0AAGpB8CtqLQAABUEACyACIAZqLQAAcyELCyAAKAKsASgCACAALwGoAWogBGotAAAgACgCWCgCACAALwFUamogC0H/AXEiAQR/IAAoAkAoAgAgAC8BPGogBGotAABB8ClqLQAAQfArai0AAEHwKWotAAAgAUHwKWotAABqQfArai0AAEHwKWotAAAgCUH/AXFB8ClqLQAAa0H/AWpB//8DcUH/AXBB8CtqLQAABUEACzoAACAEQQFqIgQgAC0AOCIPSQ0ACyAALQBQIQILIAAgCC0AACIBIAIgASACQf8BcUsbIgE6ACBBACECIAAoAigoAgAgAC8BJGpBACABQf8BcRAbGiAILQAAIgkEQANAIAAoAigoAgAgAC8BJGogAC0AICACIAlrakH/AXFqIAgoAggoAgAgCC8BBGogAmotAAA6AAAgAkEBaiICIAgtAAAiCUkNAAsLIAAtAFAiCQRAQQAhAgNAIAAoAigoAgAgAC8BJGogAC0AICACIAlrakH/AXFqIgEgAS0AACAAKAJYKAIAIAAvAVRqIAJqLQAAczoAACACQQFqIgIgAC0AUCIJSQ0ACwsLIAAgEToAICADIAAoAigoAgAgAC8BJGogERAaGkEAIQELIAELlQQBAn9BASAALAAHIgEgAUEBShtBASAALQAJGyIBIAAsABMiAiABIAJIGyABIAAtABUbIgEgACwAHyICIAEgAkgbIAEgAC0AIRsiASAALAArIgIgASACSBsgASAALQAtGyIBIAAsADciAiABIAJIGyABIAAtADkbIgEgACwAQyICIAEgAkgbIAEgAC0ARRsiASAALABPIgIgASACSBsgASAALQBRGyIBIAAsAFsiAiABIAJIGyABIAAtAF0bIgEgACwAZyICIAEgAkgbIAEgAC0AaRsiASAALABzIgIgASACSBsgASAALQB1GyIBIAAsAH8iAiABIAJIGyABIAAtAIEBGyIBIAAsAIsBIgIgASACSBsgASAALQCNARsiASAALACXASICIAEgAkgbIAEgAC0AmQEb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ACIBQQRqNgIAIAAgASgCADYCAA8LIAIgAigCACIBQQRqNgIAIAAgATIBADcDAA8LIAIgAigCACIBQQRqNgIAIAAgATMBADcDAA8LIAIgAigCACIBQQRqNgIAIAAgATAAADcDAA8LIAIgAigCACIBQQRqNgIAIAAgATEAADcDAA8LIAIgAigCAEEHakF4cSIBQQhqNgIAIAAgASsDADkDAA8LIAAgAkEAEQcACw8LIAIgAigCACIBQQRqNgIAIAAgATQCADcDAA8LIAIgAigCACIBQQRqNgIAIAAgATUCADcDAA8LIAIgAigCAEEHakF4cSIBQQhqNgIAIAAgASkDADcDAAtyAQN/IAAoAgAsAABBMGtBCk8EQEEADwsDQCAAKAIAIQNBfyEBIAJBzJmz5gBNBEBBfyADLAAAQTBrIgEgAkEKbCICaiABQf////8HIAJrShshAQsgACADQQFqNgIAIAEhAiADLAABQTBrQQpJDQALIAILoxQCEX8BfiMAQdAAayIGJAAgBiABNgJMIAZBN2ohFSAGQThqIRNBACEBAkACQAJAAkADQCABQf////8HIA1rSg0BIAEgDWohDSAGKAJMIgohAQJAAkACQCAKLQAAIgkEQANAAkACQCAJQf8BcSIHRQRAIAEhCQwBCyAHQSVHDQEgASEJA0AgAS0AAUElRw0BIAYgAUECaiIHNgJMIAlBAWohCSABLQACIQsgByEBIAtBJUYNAAsLIAkgCmsiAUH/////ByANayIWSg0HIAAEQCAAIAogARAeCyABDQZBfyESQQEhBwJAIAYoAkwiASwAAUEwa0EKTw0AIAEtAAJBJEcNACABLAABQTBrIRJBASEUQQMhBwsgBiABIAdqIgE2AkxBACEOAkAgASwAACIMQSBrIgtBH0sEQCABIQcMAQsgASEHQQEgC3QiCEGJ0QRxRQ0AA0AgBiABQQFqIgc2AkwgCCAOciEOIAEsAAEiDEEgayILQSBPDQEgByEBQQEgC3QiCEGJ0QRxDQALCwJAIAxBKkYEQCAGAn8CQCAHLAABQTBrQQpPDQAgBigCTCIBLQACQSRHDQAgASwAAUECdCAEakHAAWtBCjYCACABLAABQQN0IANqQYADaygCACEPQQEhFCABQQNqDAELIBQNBkEAIRRBACEPIAAEQCACIAIoAgAiAUEEajYCACAB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AWoiCiARLADzASIOQQF0SA0ACwsgFiAEKAI8IgAgBSAObE5yRQRAIAQoAlwhBkEAIRYgA0EANgKcAiADQQA6AJQCIANBADYCkAIgA0EAOgCIAiADQQA2AoQCIANBADoA/AEgA0EANgL4ASADQQA6APABIANBADYC7AEgA0EAOgDkASADQQA2AuABIANBADoA2AEgA0EANgLUASADQQA6AMwBIANBADYCyAEgA0EAOgDAASADQQA2ArwBIANBADoAtAEgA0EANgKwASADQQA6AKgBIANBADYCpAEgA0EAOgCcASADQQA2ApgBIANBADoAkAEgA0EANgKMASADQQA6AIQBIANBADYCgAEgA0EAOgB4IANBADYCdCADQQA6AGwgA0EANgJoIANBADoAYCADQQA2AlwgA0EAOgBUIAMgAEEBayIKOgBBIANBAToAQCADQQA7AUxBACEOIAZFBEBBASEOIApB/wFxIgYgBkEcbGpBBGoQJyEGCyADIA46AEwgAyAGNgJEIANBADsBWCADIAY2AkggAyAAOgBWIAMgCTYCXCADQQA7AVQgAyAAOgBiIAMgCTYCaCADQYACOwFgIANBAzoAeSADIAk2AnQgA0GABDsBbCADIApBAXQiBjoAbiADIAY6AHogAyAAQf8BcSIOOwFkIAMgDkEBdCINOwFwIAMgDSAGQf4BcSIKaiINOwF8IANBgAg7AYQBIAMgCTYCgAEgA0EAOgB4IAMgBjoAhgEgAyAJNgKMASADQYAKOwGQASADIAA6AJIBIAMgCTYCmAEgA0GADDsBnAEgAyAGOgCeASADIAk2AqQBIANBgA47AagBIAMgBjoAqgEgAyAJNgKwASADQQg6ALUBIAMgCiANaiIAOwGIASADIAAgCmoiADsBlAEgAyAAIA5qIgA7AaABIAMgACAKaiIAOwGsASADIAAgCmoiADsBuAEgA0EAOgC0ASADIAY6ALYBIAMgCTYCvAEgAyAGOgDCASADQYASOwHAASADIAk2AsgBIAMgBjoAzgEgA0GAFDsBzAEgAyAJNgLUASADIAY6ANoBIANBgBY7AdgBIANBDDoA5QEgAyAJNgLgASADIAY6AOYBIAMgACAKaiIAOwHEASADIAAgCmoiADsB0AEgAyAAIApqIgA7AdwBIAMgACAKaiIAOwHoASADQQ06APEBIAMgCTYC7AEgA0EAOgDkASADIAAgCmoiADsB9AEgAyAGOgDyASADQQ46AP0BIAMgCTYC+AEgA0EAOgDwASADIAAgCmoiADsBgAIgAyAGOgD+ASADQQ86AIkCIAMgCTYChAIgA0EAOgD8ASADIAAgCmoiADsBjAIgAyAGOgCKAiADIAAgCmo7AZgCIANBEDoAlQIgAyAJNgKQAiADQQA6AIgCIAMgBjoAlgIgAyAJNgKcAiADQQA6AJQCQRchBgJAIANBQGsgBCgCVCIAIAAgAy0AQGogBCgC1AEQOg0AIAQoAtQBLQAAIgBBAWtB/wFxQYsBSw0AIAQoAjwhB0EXQQAgBCgCeCIGIBEsAPIBIBEsAPMBIgoCf0ECIABBBEkNABpBBCAAQQ9JDQAaIABBBW5BAXQLIAAgB2pqakEBayAKbWwiB0ggBiAHIAQoAjhBAXRqSnIiBxshBiAHRSEWIAAhBwsCQCADLQBMRQ0AIAMoAkQiAEUNACAAECELIAYNAiAEKAI8IQALAn9BAiAHQQRIDQAaQQQgB0EPSQ0AGiAHQQVuQQF0CyEGAkAgFgRAIAAgB2ogBmpBAWogBSARLADzAWxIDQQgCEGACEYNBAwBC0EAIRYgCEGACEYNBAsgCCIFIBEsAPIBbEEEdCACaiIOIAQoAnhBBHRIDQALCyAWRQ0BCyAEKAJkIQogA0EANgKcAiADQQA6AJQCIANBADYCkAIgA0EAOgCIAiADQQA2AoQCIANBADoA/AEgA0EANgL4ASADQQA6APABIANBADYC7AEgA0EAOgDkASADQQA2AuABIANBADoA2AEgA0EANgLUASADQQA6AMwBIANBADYCyAEgA0EAOgDAASADQQA2ArwBIANBADoAtAEgA0EANgKwASADQQA6AKgBIANBADYCpAEgA0EAOgCcASADQQA2ApgBIANBADoAkAEgA0EANgKMASADQQA6AIQBIANBADYCgAEgA0EAOgB4IANBADYCdCADQQA6AGwgA0EANgJoIANBADoAYCADQQA2AlwgA0EAOgBUIAMCf0ECIAdBBEgNABpBBCAHQQ9JDQAaIAdBBW5BAXQLIgA6AEEgAyAHOgBAIANBADsBTCADIAoEf0EABSAAQf4BcSIFIAdB/wFxQQNsaiAFQRxsakEBahAnIQpBAQs6AEwgAyAKNgJEIANBADsBWCADIAo2AkggAyAJNgJcIANBADsBVCADIAk2AmggA0GAAjsBYCADQQM6AHkgAyAJNgJ0IANBgAQ7AWwgAyAAIAdqIgg6AFYgAyAIOgBiIAMgAEEBdCIAOgBuIAMgADoAeiADIAhB/wFxIgY7AWQgAyAGQQF0Igo7AXAgAyAKIABB/gFxIgVqIgo7AXwgA0GACDsBhAEgAyAJNgKAASADQQA6AHggAyAAOgCGASADIAk2AowBIANBgAo7AZABIAMgCDoAkgEgAyAJNgKYASADQYAMOwGcASADIAA6AJ4BIAMgCTYCpAEgA0GADjsBqAEgAyAAOgCqASADIAk2ArABIANBCDoAtQEgAyAFIApqIgg7AYgBIAMgBSAIaiIIOwGUASADIAYgCGoiCDsBoAEgAyAFIAhqIgg7AawBIAMgBSAIaiIIOwG4ASADQQA6ALQBIAMgADoAtgEgAyAJNgK8ASADIAA6AMIBIANBgBI7AcABIAMgCTYCyAEgAyAAOgDOASADQYAUOwHMASADIAk2AtQBIAMgADoA2gEgA0GAFjsB2AEgA0EMOgDlASADIAk2AuABIAMgADoA5gEgAyAFIAhqIgg7AcQBIAMgBSAIaiIIOwHQASADIAUgCGoiCDsB3AEgAyAFIAhqIgg7AegBIANBDToA8QEgAyAJNgLsASADQQA6AOQBIAMgBSAIaiIIOwH0ASADIAA6APIBIANBDjoA/QEgAyAJNgL4ASADQQA6APABIAMgBSAIaiIIOwGAAiADIAA6AP4BIANBDzoAiQIgAyAJNgKEAiADQQA6APwBIAMgBSAIaiIIOwGMAiADIAA6AIoCIAMgBSAIajsBmAIgA0EQOgCVAiADIAk2ApACIANBADoAiAIgAyAAOgCWAiADIAk2ApwCIANBADoAlAIgA0FAayAEKAJUIAQoAjxqIgAgACADLQBAaiAEKALUARA6RSAHQQBKcSIABEACQCAELQBQRQ0AQQAhBiAHQQFHBEAgB0F+cSEFQQAhCgNAIAQoAtQBIAZqIgggBkE+cUGwKWotAAAgCC0AAHM6AAAgBkEBciIIIAQoAtQBaiIOIAhBP3FBsClqLQAAIA4tAABzOgAAIAZBAmohBiAKQQJqIgogBUcNAAsLIAdBAXFFDQAgBCgC1AEgBmoiBSAGQT9xQbApai0AACAFLQAAczoAAAsCQEHA2gAoAgAiBUUNACARKALsASEIIAMgFzYCOCADIAg2AjQgAyAHNgIwIAVBrCQgA0EwahAcQcDaACgCACIFRQ0AIAMgBCgC1AE2AiAgBUHeJSADQSBqEBwLIAQgBzYC0AEgBEEBOgCsASAEIBEoAvQBNgLkASAEIBEpAuwBNwLcASAEIBc2AugBCwJAIAMtAExFDQAgAygCRCIHRQ0AIAcQIQsgAA0ECyAEIAQoAoABQQFrNgKAASAMQQFKDQALCyAXQQFqIhdBFkcNAAsgBEEANgKMAUHA2gAoAgAiAARAIAMgBCgC1AEtAAA2AhAgAEGgJSADQRBqEBwLIARBfzYCjAEgBEF/NgLQAQwBCyAEQQA2AowBCyAEQQA7AWwgBCgCsAFBACAEKAK0AUECdBAbGiAEQQA2AoABIARBADYCiAELQQAhBQJAIAQtAGxFBEADQAJAIAQgBUEMbGoiAC0A9QFFDQAgBCgCNCICQQBKBEAgAC4B8AGyISkgBCgCLCEIIAQqAkAhKiAEKAKwASEHIAQqAjAhKyAEKgIkISwgBCoCKLshMEEAIQYgAiEAA0AgKiAHIAgCfyAwICwgKZQgKyAGspSSu6IQNyIxmUQAAAAAAADgQWMEQCAxqgwBC0GAgICAeAsiDGpBAnRqKgIAlCEnIAcgDEECdGoqAgAhKAJAAkAgBkEBcUUEQCAnIChgDQEMAgsgJyAoX0UNAQsgAEEBayEACyAGQQFqIgYgAkcNAAsgACACRw0BCyAEIARB7AFqIgcgBUEMbGouAQQ2AnQgBCAEKAJwIgBBAWo2AnAgAEEASA0DQQAhAEHA2gAoAgAiAgRAQdYiQRkgAhAoCyAEQQE6AGwgBCgC1AFBACAEKALYARAbGiAEKAI4IQVBACEGA0ACQCAEIAZBDGxqIgItAPUBRQ0AIAIsAPQBIghBAUoNACACLADyASAIbCICIAAgACACSBshAAsgBkEBaiIGQRZHDQALIAcQOyECIARBADYCcCAEQcQBIAJtQQFqIABsIAVBAXRqIgA2AowBIAQgADYCeCAEIAA2AoQBDAMLIAVBAWoiBUEWRw0ACyAEQQA2AnAMAQtBASECAkACQANAAkAgBCAFQQxsaiIALQD1AQRAIAQoAjQiB0EATA0BIAAuAfABsiEpIAQoAiwhDCAEKgJAISogBCgCsAEhCCAEKgIwISsgBCoCJCEsIAQqAii7ITBBACEGIAchAANAICogCCAMAn8gMCAsICmUICsgBrKUkruiEDciMZlEAAAAAAAA4EFjBEAgMaoMAQtBgICAgHgLIgpqQQJ0aioCAJQhJyAIIApBAnRqKgIAISgCQAJAIAZBAXFFBEAgJyAoXw0BDAILICcgKGBFDQELIABBAWshAAsgBkEBaiIGIAdHDQALIAAgB0YNAQsgBUEVSSECIAVBAWoiBUEWRw0BDAILCyACDQELIARBADYCcAwBCyAEIAQoAnAiAEEBajYCcCAAQQBIDQAgBCgCjAFBAkgNACAEIAQoAnggBCgChAEiAGtBAWoiAjYCeEHA2gAoAgAiBwRAIAMgAjYCBCADIAA2AgAgB0GbHyADEBwLIARBATYChAEgBEEANgJwCyADQaACaiQACwJAIBAgBCgCDCIIayIMQQBMDQAgBCgCuAEhAkEAIQdBACEAIBAgCEF/c2pBA08EQCAMQXxxIQZBACEFA0AgAiAAQQJ0aiACIAAgCGpBAnRqKgIAOAIAIAIgAEEBciIDQQJ0aiACIAMgCGpBAnRqKgIAOAIAIAIgAEECciIDQQJ0aiACIAMgCGpBAnRqKgIAOAIAIAIgAEEDciIDQQJ0aiACIAMgCGpBAnRqKgIAOAIAIABBBGohACAFQQRqIgUgBkcNAAsLIAxBA3EiBUUNAANAIAIgAEECdGogAiAAIAhqQQJ0aioCADgCACAAQQFqIQAgB0EBaiIHIAVHDQALCyAeIBprIR4gGiAdaiEdIAQgCCAMayIANgKQAQwBCwsgBCACIBBrNgKQAQsgH0EQaiQAAkAgA0UEQEF/IQBBwNoAKAIAIgJFDQEgISABNgIAIAJBmR4gIRAcDAELQQAhAEHM2gAtAABFBEBBxNoAQgA3AgBBzNoAQQE6AAALIAQoAtABIgFFDQAgBEEANgLQAUF/IQAgAUF/Rg0AIAQoAtQBIQBByNoAIAE2AgBBxNoAIAA2AgAgAUEASgRAQbDYACAAIAEQGhoLIAEhAAsgIUEQaiQAIABBAEoEQCAZQbDYADYCDCAZIAA2AghBsCcgGUEIahAGDAELIBlBsNgANgIMIBlBADYCCEGwJyAZQQhqEAYLNgIAIBlBEGokAAu9AQEEfyMAQSBrIgMkACACKAIAIgRBcEkEQAJAAkAgBEELTwRAIARBEGpBcHEiBhAdIQUgAyAGQYCAgIB4cjYCECADIAU2AgggAyAENgIMDAELIAMgBDoAEyADQQhqIQUgBEUNAQsgBSACQQRqIAQQGhoLIAQgBWpBADoAACADQRhqIAEgA0EIaiAAEQAAIAMoAhgQCiADKAIYIgAQCSADLAATQQBIBEAgAygCCBAhCyADQSBqJAAgAA8LEDMACyIBAX4gASACrSADrUIghoQgBCAAEQsAIgVCIIinEBMgBacLoQQBB38jAEEQayIIJAAgASACKAIAIAIgAi0ACyIFQRh0QRh1QQBIIgYbIAIoAgQgBSAGGyADIARBAEEBEFQhBQJAAkBBoNgALQAAQQFxDQBBoNgAECNFDQBBlNgAQgA3AgBBnNgAQQA2AgAgBQRAIAVBAEgNAkGU2AAgBRAdIgY2AgBBnNgAIAUgBmoiCTYCACAGQQAgBRAbGkGY2AAgCTYCAAtBoNgAECILAkACQCAFQZjYACgCACIHQZTYACgCACIGayIJSwRAIAUgCWsiC0Gc2AAoAgAiCiAHa00EQEGY2AAgCwR/IAdBACALEBsgC2oFIAcLNgIADAMLIAVBAEgNASAFIAogBmsiB0EBdCIKIAUgCksbQf////8HIAdB/////wNJGyIKEB0iByAJakEAIAsQGxogCUEASgRAIAcgBiAJEBoaC0Gc2AAgByAKajYCAEGY2AAgBSAHajYCAEGU2AAgBzYCACAGRQ0CIAYQIQwCCyAFIAlPDQFBmNgAIAUgBmo2AgAMAQsQMwALIAggASACKAIAIAIgAi0ACyIBQRh0QRh1QQBIIgYbIAIoAgQgASAGGyADIARBlNgAKAIAQQAQVCICNgIEIAggBTYCACMAQRBrIgEkACABIAg2AgxB8NYAQYUfIAgQQiABQRBqJAAgCEGU2AAoAgA2AgwgCCACNgIIIABBsCcgCEEIahAGNgIAIAhBEGokAA8LEDMACxoAIAAgASgCCCAFECAEQCABIAIgAyAEEDULCzcAIAAgASgCCCAFECAEQCABIAIgAyAEEDUPCyAAKAIIIgAgASACIAMgBCAFIAAoAgAoAhQRBgALkwIBBn8gACABKAIIIAUQIARAIAEgAiADIAQQNQ8LIAEtADUhByAAKAIMIQYgAUEAOgA1IAEtADQhCCABQQA6ADQgAEEQaiIJIAEgAiADIAQgBRA9IAcgAS0ANSIKciEHIAggAS0ANCILciEIAkAgBkECSA0AIAkgBkEDdGohCSAAQRhqIQYDQCABLQA2DQECQCALBEAgASgCGEEBRg0DIAAtAAhBAnENAQwDCyAKRQ0AIAAtAAhBAXFFDQILIAFBADsBNCAGIAEgAiADIAQgBRA9IAEtADUiCiAHciEHIAEtADQiCyAIciEIIAZBCGoiBiAJSQ0ACwsgASAHQf8BcUEARzoANSABIAhB/wFxQQBHOgA0C6cBACAAIAEoAgggBBAgBEACQCABKAIEIAJHDQAgASgCHEEBRg0AIAEgAzYCHAsPCwJAIAAgASgCACAEECBFDQACQCACIAEoAhBHBEAgASgCFCACRw0BCyADQQFHDQEgAUEBNgIgDwsgASACNgIUIAEgAzYCICABIAEoAihBAWo2AigCQCABKAIkQQFHDQAgASgCGEECRw0AIAFBAToANgsgAUEENgIsCwuIAgAgACABKAIIIAQQIARAAkAgASgCBCACRw0AIAEoAhxBAUYNACABIAM2AhwLDwsCQCAAIAEoAgAgBBAgBEACQCACIAEoAhBHBEAgASgCFCACRw0BCyADQQFHDQIgAUEBNgIgDwsgASADNgIgAkAgASgCLEEERg0AIAFBADsBNCAAKAIIIgAgASACIAJBASAEIAAoAgAoAhQRBgAgAS0ANQRAIAFBAzYCLCABLQA0RQ0BDAMLIAFBBDYCLAsgASACNgIUIAEgASgCKEEBajYCKCABKAIkQQFHDQEgASgCGEECRw0BIAFBAToANg8LIAAoAggiACABIAIgAyAEIAAoAgAoAhgRBAALC8EBAQR/IwBBIGsiBSQAIAIoAgAiBkFwSQRAAkACQCAGQQtPBEAgBkEQakFwcSIIEB0hByAFIAhBgICAgHhyNgIQIAUgBzYCCCAFIAY2AgwMAQsgBSAGOgATIAVBCGohByAGRQ0BCyAHIAJBBGogBhAaGgsgBiAHakEAOgAAIAVBGGogASAFQQhqIAMgBCAAEQQAIAUoAhgQCiAFKAIYIgAQCSAFLAATQQBIBEAgBSgCCBAhCyAFQSBqJAAgAA8LEDMACy0BAX9BJBAdIgBCADcDACAAQQA2AiAgAEIANwMYIABCADcDECAAQgA3AwggAAsLuU0cAEGACAu2Hy0rICAgMFgweAAtMFgrMFggMFgtMHgrMHggMHgAc2FtcGxlRm9ybWF0T3V0AHNhbXBsZVJhdGVPdXQAW1VdIEZhc3Rlc3QAW01UXSBGYXN0ZXN0AFtEVF0gRmFzdGVzdABbVV0gRmFzdABbTVRdIEZhc3QAW0RUXSBGYXN0AHVuc2lnbmVkIHNob3J0AHR4UHJvdG9jb2xTZXRGcmVxU3RhcnQAcnhQcm90b2NvbFNldEZyZXFTdGFydAB1bnNpZ25lZCBpbnQAaW5pdABmbG9hdABTYW1wbGVGb3JtYXQAdWludDY0X3QAZ2V0RGVmYXVsdFBhcmFtZXRlcnMAdmVjdG9yAHVuc2lnbmVkIGNoYXIAc2FtcGxlRm9ybWF0SW5wAHNhbXBsZVJhdGVJbnAAX19jeGFfZ3VhcmRfYWNxdWlyZSBkZXRlY3RlZCByZWN1cnNpdmUgaW5pdGlhbGl6YXRpb24AbmFuAGJvb2wAdHhUb2dnbGVQcm90b2NvbAByeFRvZ2dsZVByb3RvY29sAGVtc2NyaXB0ZW46OnZhbABbVV0gTm9ybWFsAFtNVF0gTm9ybWFsAFtEVF0gTm9ybWFsAHBheWxvYWRMZW5ndGgAZGlzYWJsZUxvZwBlbmFibGVMb2cAdW5zaWduZWQgbG9uZwBzdGQ6OndzdHJpbmcAYmFzaWNfc3RyaW5nAHN0ZDo6c3RyaW5nAHN0ZDo6dTE2c3RyaW5nAHN0ZDo6dTMyc3RyaW5nAGluZgBzYW1wbGVSYXRlAHNhbXBsZXNQZXJGcmFtZQBkb3VibGUAZnJlZQBlbmNvZGUAZGVjb2RlAG9wZXJhdGluZ01vZGUAc291bmRNYXJrZXJUaHJlc2hvbGQAdm9pZABQcm90b2NvbElkAEdHV0FWRV9PUEVSQVRJTkdfTU9ERV9UWABHR1dBVkVfT1BFUkFUSU5HX01PREVfUlhfQU5EX1RYAEdHV0FWRV9PUEVSQVRJTkdfTU9ERV9SWABHR1dBVkVfUFJPVE9DT0xfTVRfRkFTVEVTVABHR1dBVkVfUFJPVE9DT0xfRFRfRkFTVEVTVABHR1dBVkVfUFJPVE9DT0xfQVVESUJMRV9GQVNURVNUAEdHV0FWRV9QUk9UT0NPTF9VTFRSQVNPVU5EX0ZBU1RFU1QAR0dXQVZFX1BST1RPQ09MX01UX0ZBU1QAR0dXQVZFX1BST1RPQ09MX0RUX0ZBU1QAR0dXQVZFX1BST1RPQ09MX0FVRElCTEVfRkFTVABHR1dBVkVfUFJPVE9DT0xfVUxUUkFTT1VORF9GQVNUAEdHV0FWRV9PUEVSQVRJTkdfTU9ERV9VU0VfRFNTAEdHV0FWRV9PUEVSQVRJTkdfTU9ERV9UWF9PTkxZX1RPTkVTAE5BTgBHR1dBVkVfUFJPVE9DT0xfTVRfTk9STUFMAEdHV0FWRV9QUk9UT0NPTF9EVF9OT1JNQUwAR0dXQVZFX1BST1RPQ09MX0FVRElCTEVfTk9STUFMAEdHV0FWRV9QUk9UT0NPTF9VTFRSQVNPVU5EX05PUk1BTABJTkYAR0dXQVZFX1NBTVBMRV9GT1JNQVRfVU5ERUZJTkVEAGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHNob3J0PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1bnNpZ25lZCBzaG9ydD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8aW50PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1bnNpZ25lZCBpbnQ+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGZsb2F0PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1aW50OF90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxpbnQ4X3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVpbnQxNl90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxpbnQxNl90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1aW50MzJfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8aW50MzJfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8Y2hhcj4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dW5zaWduZWQgY2hhcj4Ac3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgY2hhcj4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8c2lnbmVkIGNoYXI+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGxvbmc+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVuc2lnbmVkIGxvbmc+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGRvdWJsZT4AR0dXQVZFX1BST1RPQ09MX0NVU1RPTV85AEdHV0FWRV9QUk9UT0NPTF9DVVNUT01fOABHR1dBVkVfU0FNUExFX0ZPUk1BVF9VOABHR1dBVkVfU0FNUExFX0ZPUk1BVF9JOABHR1dBVkVfUFJPVE9DT0xfQ1VTVE9NXzcAR0dXQVZFX1BST1RPQ09MX0NVU1RPTV82AEdHV0FWRV9TQU1QTEVfRk9STUFUX1UxNgBHR1dBVkVfU0FNUExFX0ZPUk1BVF9JMTYAR0dXQVZFX1BST1RPQ09MX0NVU1RPTV81AEdHV0FWRV9QUk9UT0NPTF9DVVNUT01fNABHR1dBVkVfUFJPVE9DT0xfQ1VTVE9NXzMAR0dXQVZFX1BST1RPQ09MX0NVU1RPTV8yAEdHV0FWRV9TQU1QTEVfRk9STUFUX0YzMgBHR1dBVkVfUFJPVE9DT0xfQ1VTVE9NXzEAR0dXQVZFX1BST1RPQ09MX0NVU1RPTV8wAC4AKG51bGwpAEVycm9yOiBjYXB0dXJlIHNhbXBsZSByYXRlICglZyBIeikgbXVzdCBiZSA+PSAlZyBIegoARXJyb3I6IGNhcHR1cmUgc2FtcGxlIHJhdGUgKCVnIEh6KSBtdXN0IGJlIDw9ICVnIEh6CgBFcnJvcjogZmFpbGVkIHRvIGNvbXB1dGUgdGhlIHNpemUgb2YgdGhlIHJlcXVpcmVkIG1lbW9yeQoAVHJ1bmNhdGluZyBkYXRhIGZyb20gJWQgdG8gJWQgYnl0ZXMKAENhbm5vdCBkZWNvZGUgd2hpbGUgdHJhbnNtaXR0aW5nCgBUeCBpcyBkaXNhYmxlZCAtIGNhbm5vdCB0cmFuc21pdCBkYXRhIHdpdGggdGhpcyBHR1dhdmUgaW5zdGFuY2UKAFJ4IGlzIGRpc2FibGVkIC0gY2Fubm90IHJlY2VpdmUgZGF0YSB3aXRoIHRoaXMgR0dXYXZlIGluc3RhbmNlCgBQcm90b2NvbCAlZCBpcyBub3QgZW5hYmxlZCAtIG1ha2Ugc3VyZSB0byBlbmFibGUgaXQgYmVmb3JlIGNyZWF0aW5nIHRoZSBpbnN0YW5jZQoATW9uby10b25lIHByb3RvY29scyB3aXRoIHZhcmlhYmxlIGxlbmd0aCBhcmUgbm90IHN1cHBvcnRlZAoARmFpbGVkIHRvIGluaXRpYWxpemUgVHggdHJhbnNtaXNzaW9uIGZvciBHR1dhdmUgaW5zdGFuY2UgJWQKAEludmFsaWQgR0dXYXZlIGluc3RhbmNlICVkCgBGYWlsZWQgdG8gZW5jb2RlIGRhdGEgLSBHR1dhdmUgaW5zdGFuY2UgJWQKAEZhaWxlZCB0byBkZWNvZGUgZGF0YSAtIEdHV2F2ZSBpbnN0YW5jZSAlZAoARmFpbGVkIHRvIGZyZWUgR0dXYXZlIGluc3RhbmNlIC0gaW52YWxpZCBHR1dhdmUgaW5zdGFuY2UgaWQgJWQKAG4gPSAlZCwgbkFjdHVhbCA9ICVkCgBSZWNlaXZlZCBlbmQgbWFya2VyLiBGcmFtZXMgbGVmdCA9ICVkLCByZWNvcmRlZCA9ICVkCgBFcnJvcjogZmFpbGVkIHRvIGFsbG9jYXRlIHRoZSByZXF1aXJlZCBtZW1vcnk6ICVkCgBJbnZhbGlkIHBheWxvYWQgbGVuZ3RoOiAlZCwgbWF4OiAlZAoASW52YWxpZCBzYW1wbGVzIHBlciBmcmFtZTogJWQsIG1heDogJWQKAEludmFsaWQgb3IgdW5zdXBwb3J0ZWQgcGxheWJhY2sgc2FtcGxlIGZvcm1hdDogJWQKAEludmFsaWQgb3IgdW5zdXBwb3J0ZWQgY2FwdHVyZSBzYW1wbGUgZm9ybWF0OiAlZAoASW52YWxpZCBzYW1wbGUgZm9ybWF0OiAlZAoATmVnYXRpdmUgZGF0YSBzaXplOiAlZAoARXJyb3I6IGZhaWxlZCB0byBhbGxvY2F0ZSBtZW1vcnkgLSBoZWFwU2l6ZTA6ICVkLCBoZWFwU2l6ZTogJWQKAEludmFsaWQgdm9sdW1lOiAlZAoASW52YWxpZCBwcm90b2NvbCBJRDogJWQKAFJlY2VpdmluZyBzb3VuZCBkYXRhIC4uLgoAQW5hbHl6aW5nIGNhcHR1cmVkIGRhdGEgLi4KAEZhaWxlZCB0byBjcmVhdGUgR0dXYXZlIGluc3RhbmNlIC0gcmVhY2hlZCBtYXhpbXVtIG51bWJlciBvZiBpbnN0YW5jZXMgKCVkKQoARmFpbHVyZSBkdXJpbmcgY2FwdHVyZSAtIHByb3ZpZGVkIGJ5dGVzICglZCkgYXJlIG5vdCBtdWx0aXBsZSBvZiBzYW1wbGUgc2l6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";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}var binary=tryParseAsDataURI(file);if(binary){return binary}if(readBinary){return readBinary(file)}else{throw"both async and sync fetching of the wasm failed"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch==="function"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){if(!response["ok"]){throw"failed to load wasm binary file at '"+wasmBinaryFile+"'"}return response["arrayBuffer"]()}).catch(function(){return getBinary(wasmBinaryFile)})}else{if(readAsync){return new Promise(function(resolve,reject){readAsync(wasmBinaryFile,function(response){resolve(new Uint8Array(response))},reject)})}}}return Promise.resolve().then(function(){return getBinary(wasmBinaryFile)})}function createWasm(){var info={"a":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module["asm"]=exports;wasmMemory=Module["asm"]["A"];updateGlobalBufferAndViews(wasmMemory.buffer);wasmTable=Module["asm"]["C"];addOnInit(Module["asm"]["B"]);removeRunDependency("wasm-instantiate")}addRunDependency("wasm-instantiate");function receiveInstantiationResult(result){receiveInstance(result["instance"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){return WebAssembly.instantiate(binary,info)}).then(function(instance){return instance}).then(receiver,function(reason){err("failed to asynchronously prepare wasm: "+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming==="function"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch==="function"){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiationResult,function(reason){err("wasm streaming compile failed: "+reason);err("falling back to ArrayBuffer instantiation");return instantiateArrayBuffer(receiveInstantiationResult)})})}else{return instantiateArrayBuffer(receiveInstantiationResult)}}if(Module["instantiateWasm"]){try{var exports=Module["instantiateWasm"](info,receiveInstance);return exports}catch(e){err("Module.instantiateWasm callback failed with error: "+e);return false}}instantiateAsync().catch(readyPromiseReject);return{}}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback=="function"){callback(Module);continue}var func=callback.func;if(typeof func==="number"){if(callback.arg===undefined){getWasmTableEntry(func)()}else{getWasmTableEntry(func)(callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}var wasmTableMirror=[];function getWasmTableEntry(funcPtr){var func=wasmTableMirror[funcPtr];if(!func){if(funcPtr>=wasmTableMirror.length)wasmTableMirror.length=funcPtr+1;wasmTableMirror[funcPtr]=func=wasmTable.get(funcPtr)}return func}var structRegistrations={};function runDestructors(destructors){while(destructors.length){var ptr=destructors.pop();var del=destructors.pop();del(ptr)}}function simpleReadValueFromPointer(pointer){return this["fromWireType"](HEAPU32[pointer>>2])}var awaitingDependencies={};var registeredTypes={};var typeDependencies={};var char_0=48;var char_9=57;function makeLegalFunctionName(name){if(undefined===name){return"_unknown"}name=name.replace(/[^a-zA-Z0-9_]/g,"$");var f=name.charCodeAt(0);if(f>=char_0&&f<=char_9){return"_"+name}else{return name}}function createNamedFunction(name,body){name=makeLegalFunctionName(name);return new Function("body","return function "+name+"() {\n"+' "use strict";'+" return body.apply(this, arguments);\n"+"};\n")(body)}function extendError(baseErrorType,errorName){var errorClass=createNamedFunction(errorName,function(message){this.name=errorName;this.message=message;var stack=new Error(message).stack;if(stack!==undefined){this.stack=this.toString()+"\n"+stack.replace(/^Error(:[^\n]*)?\n/,"")}});errorClass.prototype=Object.create(baseErrorType.prototype);errorClass.prototype.constructor=errorClass;errorClass.prototype.toString=function(){if(this.message===undefined){return this.name}else{return this.name+": "+this.message}};return errorClass}var InternalError=undefined;function throwInternalError(message){throw new InternalError(message)}function whenDependentTypesAreResolved(myTypes,dependentTypes,getTypeConverters){myTypes.forEach(function(type){typeDependencies[type]=dependentTypes});function onComplete(typeConverters){var myTypeConverters=getTypeConverters(typeConverters);if(myTypeConverters.length!==myTypes.length){throwInternalError("Mismatched type converter count")}for(var i=0;i>shift])},destructorFunction:null})}function __embind_register_constant(name,type,value){name=readLatin1String(name);whenDependentTypesAreResolved([],[type],function(type){type=type[0];Module[name]=type["fromWireType"](value);return[]})}var emval_free_list=[];var emval_handle_array=[{},{value:undefined},{value:null},{value:true},{value:false}];function __emval_decref(handle){if(handle>4&&0===--emval_handle_array[handle].refcount){emval_handle_array[handle]=undefined;emval_free_list.push(handle)}}function count_emval_handles(){var count=0;for(var i=5;i>1])};case 2:return function(pointer){var heap=signed?HEAP32:HEAPU32;return this["fromWireType"](heap[pointer>>2])};default:throw new TypeError("Unknown integer type: "+name)}}function __embind_register_enum(rawType,name,size,isSigned){var shift=getShiftFromSize(size);name=readLatin1String(name);function ctor(){}ctor.values={};registerType(rawType,{name:name,constructor:ctor,"fromWireType":function(c){return this.constructor.values[c]},"toWireType":function(destructors,c){return c.value},"argPackAdvance":8,"readValueFromPointer":enumReadValueFromPointer(name,shift,isSigned),destructorFunction:null});exposePublicSymbol(name,ctor)}function getTypeName(type){var ptr=___getTypeName(type);var rv=readLatin1String(ptr);_free(ptr);return rv}function requireRegisteredType(rawType,humanName){var impl=registeredTypes[rawType];if(undefined===impl){throwBindingError(humanName+" has unknown type "+getTypeName(rawType))}return impl}function __embind_register_enum_value(rawEnumType,name,enumValue){var enumType=requireRegisteredType(rawEnumType,"enum");name=readLatin1String(name);var Enum=enumType.constructor;var Value=Object.create(enumType.constructor.prototype,{value:{value:enumValue},constructor:{value:createNamedFunction(enumType.name+"_"+name,function(){})}});Enum.values[enumValue]=Value;Enum[name]=Value}function floatReadValueFromPointer(name,shift){switch(shift){case 2:return function(pointer){return this["fromWireType"](HEAPF32[pointer>>2])};case 3:return function(pointer){return this["fromWireType"](HEAPF64[pointer>>3])};default:throw new TypeError("Unknown float type: "+name)}}function __embind_register_float(rawType,name,size){var shift=getShiftFromSize(size);name=readLatin1String(name);registerType(rawType,{name:name,"fromWireType":function(value){return value},"toWireType":function(destructors,value){return value},"argPackAdvance":8,"readValueFromPointer":floatReadValueFromPointer(name,shift),destructorFunction:null})}function new_(constructor,argumentList){if(!(constructor instanceof Function)){throw new TypeError("new_ called with constructor type "+typeof constructor+" which is not a function")}var dummy=createNamedFunction(constructor.name||"unknownFunctionName",function(){});dummy.prototype=constructor.prototype;var obj=new dummy;var r=constructor.apply(obj,argumentList);return r instanceof Object?r:obj}function craftInvokerFunction(humanName,argTypes,classType,cppInvokerFunc,cppTargetFunc){var argCount=argTypes.length;if(argCount<2){throwBindingError("argTypes array size mismatch! Must at least get return value and 'this' types!")}var isClassMethodFunc=argTypes[1]!==null&&classType!==null;var needsDestructorStack=false;for(var i=1;i0?", ":"")+argsListWired}invokerFnBody+=(returns?"var rv = ":"")+"invoker(fn"+(argsListWired.length>0?", ":"")+argsListWired+");\n";if(needsDestructorStack){invokerFnBody+="runDestructors(destructors);\n"}else{for(var i=isClassMethodFunc?1:2;i>2)+i])}return array}function replacePublicSymbol(name,value,numArguments){if(!Module.hasOwnProperty(name)){throwInternalError("Replacing nonexistant public symbol")}if(undefined!==Module[name].overloadTable&&undefined!==numArguments){Module[name].overloadTable[numArguments]=value}else{Module[name]=value;Module[name].argCount=numArguments}}function dynCallLegacy(sig,ptr,args){var f=Module["dynCall_"+sig];return args&&args.length?f.apply(null,[ptr].concat(args)):f.call(null,ptr)}function dynCall(sig,ptr,args){if(sig.includes("j")){return dynCallLegacy(sig,ptr,args)}return getWasmTableEntry(ptr).apply(null,args)}function getDynCaller(sig,ptr){var argCache=[];return function(){argCache.length=arguments.length;for(var i=0;i>1]}:function readU16FromPointer(pointer){return HEAPU16[pointer>>1]};case 2:return signed?function readS32FromPointer(pointer){return HEAP32[pointer>>2]}:function readU32FromPointer(pointer){return HEAPU32[pointer>>2]};default:throw new TypeError("Unknown integer type: "+name)}}function __embind_register_integer(primitiveType,name,size,minRange,maxRange){name=readLatin1String(name);if(maxRange===-1){maxRange=4294967295}var shift=getShiftFromSize(size);var fromWireType=value=>value;if(minRange===0){var bitshift=32-8*size;fromWireType=(value=>value<>>bitshift)}var isUnsignedType=name.includes("unsigned");var checkAssertions=(value,toTypeName)=>{};var toWireType;if(isUnsignedType){toWireType=function(destructors,value){checkAssertions(value,this.name);return value>>>0}}else{toWireType=function(destructors,value){checkAssertions(value,this.name);return value}}registerType(primitiveType,{name:name,"fromWireType":fromWireType,"toWireType":toWireType,"argPackAdvance":8,"readValueFromPointer":integerReadValueFromPointer(name,shift,minRange!==0),destructorFunction:null})}function __embind_register_memory_view(rawType,dataTypeIndex,name){var typeMapping=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array];var TA=typeMapping[dataTypeIndex];function decodeMemoryView(handle){handle=handle>>2;var heap=HEAPU32;var size=heap[handle];var data=heap[handle+1];return new TA(buffer,data,size)}name=readLatin1String(name);registerType(rawType,{name:name,"fromWireType":decodeMemoryView,"argPackAdvance":8,"readValueFromPointer":decodeMemoryView},{ignoreDuplicateRegistrations:true})}function __embind_register_std_string(rawType,name){name=readLatin1String(name);var stdStringIsUTF8=name==="std::string";registerType(rawType,{name:name,"fromWireType":function(value){var length=HEAPU32[value>>2];var str;if(stdStringIsUTF8){var decodeStartPtr=value+4;for(var i=0;i<=length;++i){var currentBytePtr=value+4+i;if(i==length||HEAPU8[currentBytePtr]==0){var maxRead=currentBytePtr-decodeStartPtr;var stringSegment=UTF8ToString(decodeStartPtr,maxRead);if(str===undefined){str=stringSegment}else{str+=String.fromCharCode(0);str+=stringSegment}decodeStartPtr=currentBytePtr+1}}}else{var a=new Array(length);for(var i=0;ilengthBytesUTF8(value))}else{getLength=(()=>value.length)}var length=getLength();var ptr=_malloc(4+length+1);HEAPU32[ptr>>2]=length;if(stdStringIsUTF8&&valueIsOfTypeString){stringToUTF8(value,ptr+4,length+1)}else{if(valueIsOfTypeString){for(var i=0;i255){_free(ptr);throwBindingError("String has UTF-16 code units that do not fit in 8 bits")}HEAPU8[ptr+4+i]=charCode}}else{for(var i=0;iHEAPU16);shift=1}else if(charSize===4){decodeString=UTF32ToString;encodeString=stringToUTF32;lengthBytesUTF=lengthBytesUTF32;getHeap=(()=>HEAPU32);shift=2}registerType(rawType,{name:name,"fromWireType":function(value){var length=HEAPU32[value>>2];var HEAP=getHeap();var str;var decodeStartPtr=value+4;for(var i=0;i<=length;++i){var currentBytePtr=value+4+i*charSize;if(i==length||HEAP[currentBytePtr>>shift]==0){var maxReadBytes=currentBytePtr-decodeStartPtr;var stringSegment=decodeString(decodeStartPtr,maxReadBytes);if(str===undefined){str=stringSegment}else{str+=String.fromCharCode(0);str+=stringSegment}decodeStartPtr=currentBytePtr+charSize}}_free(value);return str},"toWireType":function(destructors,value){if(!(typeof value==="string")){throwBindingError("Cannot pass non-string to C++ string type "+name)}var length=lengthBytesUTF(value);var ptr=_malloc(4+length+charSize);HEAPU32[ptr>>2]=length>>shift;encodeString(value,ptr+4,length+charSize);if(destructors!==null){destructors.push(_free,ptr)}return ptr},"argPackAdvance":8,"readValueFromPointer":simpleReadValueFromPointer,destructorFunction:function(ptr){_free(ptr)}})}function __embind_register_value_object(rawType,name,constructorSignature,rawConstructor,destructorSignature,rawDestructor){structRegistrations[rawType]={name:readLatin1String(name),rawConstructor:embind__requireFunction(constructorSignature,rawConstructor),rawDestructor:embind__requireFunction(destructorSignature,rawDestructor),fields:[]}}function __embind_register_value_object_field(structType,fieldName,getterReturnType,getterSignature,getter,getterContext,setterArgumentType,setterSignature,setter,setterContext){structRegistrations[structType].fields.push({fieldName:readLatin1String(fieldName),getterReturnType:getterReturnType,getter:embind__requireFunction(getterSignature,getter),getterContext:getterContext,setterArgumentType:setterArgumentType,setter:embind__requireFunction(setterSignature,setter),setterContext:setterContext})}function __embind_register_void(rawType,name){name=readLatin1String(name);registerType(rawType,{isVoid:true,name:name,"argPackAdvance":0,"fromWireType":function(){return undefined},"toWireType":function(destructors,o){return undefined}})}function __emval_incref(handle){if(handle>4){emval_handle_array[handle].refcount+=1}}function __emval_take_value(type,argv){type=requireRegisteredType(type,"_emval_take_value");var v=type["readValueFromPointer"](argv);return Emval.toHandle(v)}function _abort(){abort("")}function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}function emscripten_realloc_buffer(size){try{wasmMemory.grow(size-buffer.byteLength+65535>>>16);updateGlobalBufferAndViews(wasmMemory.buffer);return 1}catch(e){}}function _emscripten_resize_heap(requestedSize){var oldSize=HEAPU8.length;requestedSize=requestedSize>>>0;var maxHeapSize=2147483648;if(requestedSize>maxHeapSize){return false}for(var cutDown=1;cutDown<=4;cutDown*=2){var overGrownHeapSize=oldSize*(1+.2/cutDown);overGrownHeapSize=Math.min(overGrownHeapSize,requestedSize+100663296);var newSize=Math.min(maxHeapSize,alignUp(Math.max(requestedSize,overGrownHeapSize),65536));var replacement=emscripten_realloc_buffer(newSize);if(replacement){return true}}return false}var SYSCALLS={mappings:{},buffers:[null,[],[]],printChar:function(stream,curr){var buffer=SYSCALLS.buffers[stream];if(curr===0||curr===10){(stream===1?out:err)(UTF8ArrayToString(buffer,0));buffer.length=0}else{buffer.push(curr)}},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},get64:function(low,high){return low}};function _fd_close(fd){return 0}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){}function _fd_write(fd,iov,iovcnt,pnum){var num=0;for(var i=0;i>2];var len=HEAP32[iov+4>>2];iov+=8;for(var j=0;j>2]=num;return 0}function _setTempRet0(val){setTempRet0(val)}InternalError=Module["InternalError"]=extendError(Error,"InternalError");embind_init_charCodes();BindingError=Module["BindingError"]=extendError(Error,"BindingError");init_emval();UnboundTypeError=Module["UnboundTypeError"]=extendError(Error,"UnboundTypeError");var ASSERTIONS=false;function intArrayToString(array){var ret=[];for(var i=0;i255){if(ASSERTIONS){assert(false,"Character code "+chr+" ("+String.fromCharCode(chr)+") at offset "+i+" not in 0x00-0xFF.")}chr&=255}ret.push(String.fromCharCode(chr))}return ret.join("")}var decodeBase64=typeof atob==="function"?atob:function(input){var keyStr="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";var output="";var chr1,chr2,chr3;var enc1,enc2,enc3,enc4;var i=0;input=input.replace(/[^A-Za-z0-9\+\/\=]/g,"");do{enc1=keyStr.indexOf(input.charAt(i++));enc2=keyStr.indexOf(input.charAt(i++));enc3=keyStr.indexOf(input.charAt(i++));enc4=keyStr.indexOf(input.charAt(i++));chr1=enc1<<2|enc2>>4;chr2=(enc2&15)<<4|enc3>>2;chr3=(enc3&3)<<6|enc4;output=output+String.fromCharCode(chr1);if(enc3!==64){output=output+String.fromCharCode(chr2)}if(enc4!==64){output=output+String.fromCharCode(chr3)}}while(i0){return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();readyPromiseResolve(Module);if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}Module["run"]=run;if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}run(); + + + return ggwave_factory.ready +} +); +})(); +if (typeof exports === 'object' && typeof module === 'object') + module.exports = ggwave_factory; +else if (typeof define === 'function' && define['amd']) + define([], function() { return ggwave_factory; }); +else if (typeof exports === 'object') + exports["ggwave_factory"] = ggwave_factory; diff --git a/requirements.txt b/requirements.txt deleted file mode 100644 index 3220815..0000000 --- a/requirements.txt +++ /dev/null @@ -1,4 +0,0 @@ -pexpect -requests -hivemind_bus_client -ovos-utils \ No newline at end of file diff --git a/scripts/bump_alpha.py b/scripts/bump_alpha.py deleted file mode 100644 index 25c80b6..0000000 --- a/scripts/bump_alpha.py +++ /dev/null @@ -1,18 +0,0 @@ -import fileinput -from os.path import join, dirname - - -version_file = join(dirname(dirname(__file__)), "hivemind_ggwave", "version.py") -version_var_name = "VERSION_ALPHA" - -with open(version_file, "r", encoding="utf-8") as v: - for line in v.readlines(): - if line.startswith(version_var_name): - version = int(line.split("=")[-1]) - new_version = int(version) + 1 - -for line in fileinput.input(version_file, inplace=True): - if line.startswith(version_var_name): - print(f"{version_var_name} = {new_version}") - else: - print(line.rstrip('\n')) diff --git a/scripts/bump_build.py b/scripts/bump_build.py deleted file mode 100644 index f818ba6..0000000 --- a/scripts/bump_build.py +++ /dev/null @@ -1,21 +0,0 @@ -import fileinput -from os.path import join, dirname - - -version_file = join(dirname(dirname(__file__)), "hivemind_ggwave", "version.py") -version_var_name = "VERSION_BUILD" -alpha_var_name = "VERSION_ALPHA" - -with open(version_file, "r", encoding="utf-8") as v: - for line in v.readlines(): - if line.startswith(version_var_name): - version = int(line.split("=")[-1]) - new_version = int(version) + 1 - -for line in fileinput.input(version_file, inplace=True): - if line.startswith(version_var_name): - print(f"{version_var_name} = {new_version}") - elif line.startswith(alpha_var_name): - print(f"{alpha_var_name} = 0") - else: - print(line.rstrip('\n')) diff --git a/scripts/bump_major.py b/scripts/bump_major.py deleted file mode 100644 index 98590cc..0000000 --- a/scripts/bump_major.py +++ /dev/null @@ -1,27 +0,0 @@ -import fileinput -from os.path import join, dirname - - -version_file = join(dirname(dirname(__file__)), "hivemind_ggwave", "version.py") -version_var_name = "VERSION_MAJOR" -minor_var_name = "VERSION_MINOR" -build_var_name = "VERSION_BUILD" -alpha_var_name = "VERSION_ALPHA" - -with open(version_file, "r", encoding="utf-8") as v: - for line in v.readlines(): - if line.startswith(version_var_name): - version = int(line.split("=")[-1]) - new_version = int(version) + 1 - -for line in fileinput.input(version_file, inplace=True): - if line.startswith(version_var_name): - print(f"{version_var_name} = {new_version}") - elif line.startswith(minor_var_name): - print(f"{minor_var_name} = 0") - elif line.startswith(build_var_name): - print(f"{build_var_name} = 0") - elif line.startswith(alpha_var_name): - print(f"{alpha_var_name} = 0") - else: - print(line.rstrip('\n')) diff --git a/scripts/bump_minor.py b/scripts/bump_minor.py deleted file mode 100644 index a5193ad..0000000 --- a/scripts/bump_minor.py +++ /dev/null @@ -1,24 +0,0 @@ -import fileinput -from os.path import join, dirname - - -version_file = join(dirname(dirname(__file__)), "hivemind_ggwave", "version.py") -version_var_name = "VERSION_MINOR" -build_var_name = "VERSION_BUILD" -alpha_var_name = "VERSION_ALPHA" - -with open(version_file, "r", encoding="utf-8") as v: - for line in v.readlines(): - if line.startswith(version_var_name): - version = int(line.split("=")[-1]) - new_version = int(version) + 1 - -for line in fileinput.input(version_file, inplace=True): - if line.startswith(version_var_name): - print(f"{version_var_name} = {new_version}") - elif line.startswith(build_var_name): - print(f"{build_var_name} = 0") - elif line.startswith(alpha_var_name): - print(f"{alpha_var_name} = 0") - else: - print(line.rstrip('\n')) diff --git a/scripts/remove_alpha.py b/scripts/remove_alpha.py deleted file mode 100644 index 651ff91..0000000 --- a/scripts/remove_alpha.py +++ /dev/null @@ -1,13 +0,0 @@ -import fileinput -from os.path import join, dirname - - -version_file = join(dirname(dirname(__file__)), "hivemind_ggwave", "version.py") - -alpha_var_name = "VERSION_ALPHA" - -for line in fileinput.input(version_file, inplace=True): - if line.startswith(alpha_var_name): - print(f"{alpha_var_name} = 0") - else: - print(line.rstrip('\n')) diff --git a/setup.py b/setup.py deleted file mode 100644 index 60d2f16..0000000 --- a/setup.py +++ /dev/null @@ -1,54 +0,0 @@ -import os -from setuptools import setup - -BASEDIR = os.path.abspath(os.path.dirname(__file__)) - - -def get_version(): - """ Find the version of the package""" - version = None - version_file = os.path.join(BASEDIR, 'hivemind_ggwave', 'version.py') - major, minor, build, alpha = (None, None, None, None) - with open(version_file) as f: - for line in f: - if 'VERSION_MAJOR' in line: - major = line.split('=')[1].strip() - elif 'VERSION_MINOR' in line: - minor = line.split('=')[1].strip() - elif 'VERSION_BUILD' in line: - build = line.split('=')[1].strip() - elif 'VERSION_ALPHA' in line: - alpha = line.split('=')[1].strip() - - if ((major and minor and build and alpha) or - '# END_VERSION_BLOCK' in line): - break - version = f"{major}.{minor}.{build}" - if int(alpha) > 0: - version += f"a{alpha}" - return version - - -def required(requirements_file): - """ Read requirements file and remove comments and empty lines. """ - with open(os.path.join(BASEDIR, requirements_file), 'r') as f: - requirements = f.read().splitlines() - if 'MYCROFT_LOOSE_REQUIREMENTS' in os.environ: - print('USING LOOSE REQUIREMENTS!') - requirements = [r.replace('==', '>=').replace('~=', '>=') for r in requirements] - return [pkg for pkg in requirements - if pkg.strip() and not pkg.startswith("#")] - - - -setup( - name='hivemind_ggwave', - version=get_version(), - packages=['hivemind_ggwave'], - url='https://github.com/JarbasHiveMind/hivemind-ggwave', - license='Apache-2.0', - author='jarbasAi', - install_requires=required("requirements.txt"), - author_email='jarbasai@mailfence.com', - description='data over sound for hivemind' -)