From 564b49ca1dafc86d6d01e5d3b4dfb8c98c1d2e35 Mon Sep 17 00:00:00 2001 From: Dan Allan Date: Sun, 11 May 2025 14:43:20 -0700 Subject: [PATCH 01/12] Copy danielballan/interactive-tutorial-demo --- .binder/requirements.txt | 1 + .gitattributes | 2 + .github/workflows/cd.yml | 102 + .github/workflows/ci.yml | 27 + .gitignore | 175 +- README.md | 36 + convert_all.sh | 49 + .../images/open-with-jupytext-notebook.png | Bin 0 -> 71884 bytes docs/conf.py | 13 + docs/contributing.md | 163 + docs/index.md | 8 + docs/recipes/executable/basics.md | 36 + docs/recipes/matplotlib/interactive_mpl.md | 65 + docs/recipes/matplotlib/static_mpl.md | 35 + docs/recipes/static/nsls2-aerial.jpg | Bin 0 -> 232512 bytes docs/recipes/static/static.md | 16 + jupyterlab_config.json | 7 + pixi.lock | 4678 +++++++++++++++++ pixi.toml | 45 + setup_jupyterlab_config.sh | 5 + test.sh | 71 + 21 files changed, 5361 insertions(+), 173 deletions(-) create mode 100644 .binder/requirements.txt create mode 100644 .gitattributes create mode 100644 .github/workflows/cd.yml create mode 100644 .github/workflows/ci.yml create mode 100644 README.md create mode 100755 convert_all.sh create mode 100644 docs/_static/images/open-with-jupytext-notebook.png create mode 100644 docs/conf.py create mode 100644 docs/contributing.md create mode 100644 docs/index.md create mode 100644 docs/recipes/executable/basics.md create mode 100644 docs/recipes/matplotlib/interactive_mpl.md create mode 100644 docs/recipes/matplotlib/static_mpl.md create mode 100644 docs/recipes/static/nsls2-aerial.jpg create mode 100644 docs/recipes/static/static.md create mode 100644 jupyterlab_config.json create mode 100644 pixi.lock create mode 100644 pixi.toml create mode 100644 setup_jupyterlab_config.sh create mode 100755 test.sh diff --git a/.binder/requirements.txt b/.binder/requirements.txt new file mode 100644 index 0000000..24ce15a --- /dev/null +++ b/.binder/requirements.txt @@ -0,0 +1 @@ +numpy diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..07fe41c --- /dev/null +++ b/.gitattributes @@ -0,0 +1,2 @@ +# GitHub syntax highlighting +pixi.lock linguist-language=YAML linguist-generated=true diff --git a/.github/workflows/cd.yml b/.github/workflows/cd.yml new file mode 100644 index 0000000..897f524 --- /dev/null +++ b/.github/workflows/cd.yml @@ -0,0 +1,102 @@ +--- +name: Publish + +on: + push: + branches: + - main + schedule: + - cron: '0 5 * * 1' + # Allows you to run this workflow manually from the Actions tab + workflow_dispatch: + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + +jobs: + + build: + if: ${{ github.event_name == 'push' && github.ref == 'refs/heads/main' }} + name: Build Jupyter Notebooks and HTML + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Setup GitHub Pages + uses: actions/configure-pages@v5 + + - name: Setup pixi + uses: prefix-dev/setup-pixi@v0.8.8 + with: + cache: true + cache-write: ${{ github.event_name == 'push' && github.ref_name == 'main' }} + + - name: Build executed notebooks and HTML + run: pixi run build + + - name: Upload executed notebooks as GitHub artifact + uses: actions/upload-artifact@v4 + with: + name: executed-notebooks + path: build/jupyter_execute/recipes + if-no-files-found: error + + - name: Prepare for Jupyter Lite + run: | + cp README.md docs/recipes/ + # Convert Jupytext to ipynb format. + pixi run ./convert_all.sh ipynb + + - name: Build Jupyter Lite + run: pixi run -e jupyterlite jupyter lite build --contents docs/recipes --output-dir build/html/jupyterlite + + - name: Upload HTML as GitHub artifact + uses: actions/upload-pages-artifact@v3 + with: + path: build/html + + deploy-gh-pages: + name: Deploy HTML to GitHub Pages + # Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages + permissions: + contents: read + pages: write + id-token: write + + environment: + name: github-pages + url: ${{ steps.deployment.outputs.page_url }} + runs-on: ubuntu-latest + needs: build + steps: + - name: Deploy HTML to GitHub Pages + id: deployment + uses: actions/deploy-pages@v4 + + deploy-notebooks: + name: Push to 'notebooks' branch ipynb-formatted version + # Sets permissions of the GITHUB_TOKEN to allow pushing to 'notebooks' branch + permissions: + contents: write + runs-on: ubuntu-latest + needs: build + steps: + + - name: Checkout + uses: actions/checkout@v4 + + - name: Setup pixi + uses: prefix-dev/setup-pixi@v0.8.1 + + - name: Publish ipynb-formatted variant to 'notebooks' branch of this repo + run: | + git fetch origin + git checkout -B notebooks + git config user.name "github-actions[bot]" + git config user.email "41898282+github-actions[bot]@users.noreply.github.com" + pixi run ./convert_all.sh ipynb + git add . + git commit -am "Convert jupytext to ipynb format" + git push origin notebooks --force-with-lease diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..ac90abb --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,27 @@ +--- +name: Test notebooks + +on: + push: + branches: + - main + pull_request: + branches: + - main + schedule: + - cron: '0 5 * * 1' + workflow_dispatch: + +jobs: + test: + name: Test all executable examples + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Setup pixi + uses: prefix-dev/setup-pixi@v0.8.1 + + - name: Test all files + run: pixi run ./test.sh --all diff --git a/.gitignore b/.gitignore index 0a19790..8335013 100644 --- a/.gitignore +++ b/.gitignore @@ -1,174 +1,3 @@ -# 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 +/build/* .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 - -# UV -# Similar to Pipfile.lock, it is generally recommended to include uv.lock in version control. -# This is especially recommended for binary packages to ensure reproducibility, and is more -# commonly ignored for libraries. -#uv.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/latest/usage/project/#working-with-version-control -.pdm.toml -.pdm-python -.pdm-build/ - -# 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/ - -# Ruff stuff: -.ruff_cache/ - -# PyPI configuration file -.pypirc +/pixi/* diff --git a/README.md b/README.md new file mode 100644 index 0000000..67e9a0e --- /dev/null +++ b/README.md @@ -0,0 +1,36 @@ +# Interactive Tutorial Demo + +A repository demonstrating one way to manage and distribute interactive tutorials. +See the [Guide to Contributing](https://danielballan.github.io/interactive-tutorial-demo/contributing.html) +for a good overview of what this is like to use. + +## Demo Links + +- **[Tutorials (a.k.a. recipes)](https://github.com/danielballan/interactive-tutorial-demo/tree/notebooks/docs/recipes)** are written in MyST Markdown. +- They are published in **[Jupyter notebook](https://github.com/danielballan/interactive-tutorial-demo/tree/notebooks/docs/recipes)** format, on the `notebooks` branch of this repo, which can be used in Colab, Binder, etc. +- Executed examples are **[published](https://danielballan.github.io/interactive-tutorial-demo/)** on a GitHub Pages site. +- **[Jupyter Lite (beta)](https://danielballan.github.io/interactive-tutorial-demo/jupyterlite/lab/index.html)** (works only on the basic executable example so far, missing dependencies for others) +- **[Binder](https://mybinder.org/v2/gh/danielballan/interactive-tutorial-demo/notebooks)** + + +## Goals + +- Make content easy to explore and try in a variety of modes: + - interactive and non-interactive + - local and cloud-based + - Jupyter and not-Jupyter +- Document an accessible development workflow, so that non-experts can contribute. +- Keep the infrastructure as simple as possible. + +## To Do + +- Test notebook execution _of changed recipes only_ in CI on PR. +- Set up devcontainer. +- Add example with additional dependencies. + +## Prior Art + +Examples that this is drawing from: + +- https://github.com/bsipocz/irsa-tutorials +- https://github.com/MotherDuck-Open-Source/sql-tutorial diff --git a/convert_all.sh b/convert_all.sh new file mode 100755 index 0000000..0ac64c4 --- /dev/null +++ b/convert_all.sh @@ -0,0 +1,49 @@ +#!/bin/bash + +# If no arguments were provided, exit with error and show usage. +if [ $# -eq 0 ]; then + echo "Usage: $0 md | ipynb " >&2 + exit 1 +fi + +# Variable to track if any errors occur +error_occurred=0 + +if [ "$1" = "ipynb" ]; then + files=$(find docs/recipes/ -name "*.md" | grep -v .ipynb_checkpoints) + for file in $files; do + # Extract the kernel information from the Jupytext Markdown file + kernel_info=$(grep -A 10 '^---$' "$file" | grep -E 'kernelspec') + # Skip if no kernel information was found + if [ -z "$kernel_info" ]; then + continue + fi + jupytext --to ipynb "$file" && rm "$file" + if [ $? -ne 0 ]; then + error_occurred=1 + echo "Errors when converting $file" + else + echo "Converted $file" + fi + done +elif [ "$1" = "md" ]; then + files=$(find docs/recipes/ -name "*.ipynb" | grep -v .ipynb_checkpoints) + for file in $files; do + jupytext --to markdown "$file" && rm "$file" + if [ $? -ne 0 ]; then + error_occurred=1 + echo "Errors when converting $file" + else + echo "Converted $file" + fi + done +fi + +if [ $error_occurred -ne 0 ]; then + echo "Some files failed to convert." >&2 + exit 1 +else + echo "All files converted successfully." >&2 + exit 0 +fi + diff --git a/docs/_static/images/open-with-jupytext-notebook.png b/docs/_static/images/open-with-jupytext-notebook.png new file mode 100644 index 0000000000000000000000000000000000000000..010e5b2e0e22011618e7828e0c4374a0f7405269 GIT binary patch literal 71884 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

0cJ5ZVxi!Kk(r9oZo@M#muapU`9W{0 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

{-}_wqPWeNF44nOq#HI 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�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 c32OF@gZssBz)b@8M97#wP1M?g;=ix|2jFf=7.5.0 + constrains: + - openmp_impl 9999 + license: BSD-3-Clause + license_family: BSD + purls: [] + size: 23621 + timestamp: 1650670423406 +- kind: pypi + name: accessible-pygments + version: 0.0.5 + url: https://files.pythonhosted.org/packages/8d/3f/95338030883d8c8b91223b4e21744b04d11b161a3ef117295d8241f50ab4/accessible_pygments-0.0.5-py3-none-any.whl + sha256: 88ae3211e68a1d0b011504b2ffc1691feafce124b845bd072ab6f9f66f34d4b7 + requires_dist: + - pygments>=1.5 + - pillow ; extra == 'dev' + - pkginfo>=1.10 ; extra == 'dev' + - playwright ; extra == 'dev' + - pre-commit ; extra == 'dev' + - setuptools ; extra == 'dev' + - twine>=5.0 ; extra == 'dev' + - hypothesis ; extra == 'tests' + - pytest ; extra == 'tests' + requires_python: '>=3.9' +- kind: pypi + name: alabaster + version: 1.0.0 + url: https://files.pythonhosted.org/packages/7e/b3/6b4067be973ae96ba0d615946e314c5ae35f9f993eca561b356540bb0c2b/alabaster-1.0.0-py3-none-any.whl + sha256: fc6786402dc3fcb2de3cabd5fe455a2db534b371124f1f21de8731783dec828b + requires_python: '>=3.10' +- kind: conda + name: anyio + version: 4.4.0 + build: pyhd8ed1ab_0 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/anyio-4.4.0-pyhd8ed1ab_0.conda + sha256: 84ac9429812495f12939ab4994f2634f7cacd254f6234a0c2c0243daed15a7ee + md5: 1fa97c6e8db1f82c64ff17a5efc4ae8e + depends: + - exceptiongroup >=1.0.2 + - idna >=2.8 + - python >=3.8 + - sniffio >=1.1 + - typing_extensions >=4.1 + constrains: + - uvloop >=0.17 + - trio >=0.23 + license: MIT + license_family: MIT + purls: + - pkg:pypi/anyio?source=hash-mapping + size: 104255 + timestamp: 1717693144467 +- kind: conda + name: argon2-cffi + version: 23.1.0 + build: pyhd8ed1ab_0 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/argon2-cffi-23.1.0-pyhd8ed1ab_0.conda + sha256: 130766446f5507bd44df957b6b5c898a8bd98f024bb426ed6cb9ff1ad67fc677 + md5: 3afef1f55a1366b4d3b6a0d92e2235e4 + depends: + - argon2-cffi-bindings + - python >=3.7 + - typing-extensions + constrains: + - argon2_cffi ==999 + license: MIT + license_family: MIT + purls: + - pkg:pypi/argon2-cffi?source=hash-mapping + size: 18602 + timestamp: 1692818472638 +- kind: conda + name: argon2-cffi-bindings + version: 21.2.0 + build: py312h98912ed_4 + build_number: 4 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/argon2-cffi-bindings-21.2.0-py312h98912ed_4.conda + sha256: 8ddb4a586bc128f1b9484f82c5cb0226340527fbfe093adf3b76b7e755e11477 + md5: 00536e0a1734dcde9815fe227f32fc5a + depends: + - cffi >=1.0.1 + - libgcc-ng >=12 + - python >=3.12.0rc3,<3.13.0a0 + - python_abi 3.12.* *_cp312 + license: MIT + license_family: MIT + purls: + - pkg:pypi/argon2-cffi-bindings?source=hash-mapping + size: 35142 + timestamp: 1695386704886 +- kind: conda + name: arrow + version: 1.3.0 + build: pyhd8ed1ab_0 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/arrow-1.3.0-pyhd8ed1ab_0.conda + sha256: ff49825c7f9e29e09afa6284300810e7a8640d621740efb47c4541f4dc4969db + md5: b77d8c2313158e6e461ca0efb1c2c508 + depends: + - python >=3.8 + - python-dateutil >=2.7.0 + - types-python-dateutil >=2.8.10 + license: Apache-2.0 + license_family: Apache + purls: + - pkg:pypi/arrow?source=hash-mapping + size: 100096 + timestamp: 1696129131844 +- kind: conda + name: asttokens + version: 2.4.1 + build: pyhd8ed1ab_0 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/asttokens-2.4.1-pyhd8ed1ab_0.conda + sha256: 708168f026df19a0344983754d27d1f7b28bb21afc7b97a82f02c4798a3d2111 + md5: 5f25798dcefd8252ce5f9dc494d5f571 + depends: + - python >=3.5 + - six >=1.12.0 + license: Apache-2.0 + license_family: Apache + purls: + - pkg:pypi/asttokens?source=hash-mapping + size: 28922 + timestamp: 1698341257884 +- kind: conda + name: async-lru + version: 2.0.4 + build: pyhd8ed1ab_0 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/async-lru-2.0.4-pyhd8ed1ab_0.conda + sha256: 7ed83731979fe5b046c157730e50af0e24454468bbba1ed8fc1a3107db5d7518 + md5: 3d081de3a6ea9f894bbb585e8e3a4dcb + depends: + - python >=3.8 + - typing_extensions >=4.0.0 + license: MIT + license_family: MIT + purls: + - pkg:pypi/async-lru?source=hash-mapping + size: 15342 + timestamp: 1690563152778 +- kind: conda + name: attrs + version: 24.2.0 + build: pyh71513ae_0 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/attrs-24.2.0-pyh71513ae_0.conda + sha256: 28dba85a7e0f7fb57d7315e13f603d1e41b83c5b88aa2a602596b52c833a2ff8 + md5: 6732fa52eb8e66e5afeb32db8701a791 + depends: + - python >=3.7 + license: MIT + license_family: MIT + purls: + - pkg:pypi/attrs?source=hash-mapping + size: 56048 + timestamp: 1722977241383 +- kind: conda + name: babel + version: 2.14.0 + build: pyhd8ed1ab_0 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/babel-2.14.0-pyhd8ed1ab_0.conda + sha256: 8584e3da58e92b72641c89ff9b98c51f0d5dbe76e527867804cbdf03ac91d8e6 + md5: 9669586875baeced8fc30c0826c3270e + depends: + - python >=3.7 + - pytz + - setuptools + license: BSD-3-Clause + license_family: BSD + purls: + - pkg:pypi/babel?source=hash-mapping + size: 7609750 + timestamp: 1702422720584 +- kind: conda + name: beautifulsoup4 + version: 4.12.3 + build: pyha770c72_0 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/beautifulsoup4-4.12.3-pyha770c72_0.conda + sha256: 7b05b2d0669029326c623b9df7a29fa49d1982a9e7e31b2fea34b4c9a4a72317 + md5: 332493000404d8411859539a5a630865 + depends: + - python >=3.6 + - soupsieve >=1.2 + license: MIT + license_family: MIT + purls: + - pkg:pypi/beautifulsoup4?source=hash-mapping + size: 118200 + timestamp: 1705564819537 +- kind: conda + name: bleach + version: 6.1.0 + build: pyhd8ed1ab_0 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/bleach-6.1.0-pyhd8ed1ab_0.conda + sha256: 845e77ef495376c5c3c328ccfd746ca0ef1978150cae8eae61a300fe7755fb08 + md5: 0ed9d7c0e9afa7c025807a9a8136ea3e + depends: + - packaging + - python >=3.6 + - setuptools + - six >=1.9.0 + - webencodings + license: Apache-2.0 + license_family: Apache + purls: + - pkg:pypi/bleach?source=hash-mapping + size: 131220 + timestamp: 1696630354218 +- kind: conda + name: brotli + version: 1.1.0 + build: hd590300_1 + build_number: 1 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/brotli-1.1.0-hd590300_1.conda + sha256: f2d918d351edd06c55a6c2d84b488fe392f85ea018ff227daac07db22b408f6b + md5: f27a24d46e3ea7b70a1f98e50c62508f + depends: + - brotli-bin 1.1.0 hd590300_1 + - libbrotlidec 1.1.0 hd590300_1 + - libbrotlienc 1.1.0 hd590300_1 + - libgcc-ng >=12 + license: MIT + license_family: MIT + purls: [] + size: 19383 + timestamp: 1695990069230 +- kind: conda + name: brotli-bin + version: 1.1.0 + build: hd590300_1 + build_number: 1 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/brotli-bin-1.1.0-hd590300_1.conda + sha256: a641abfbaec54f454c8434061fffa7fdaa9c695e8a5a400ed96b4f07c0c00677 + md5: 39f910d205726805a958da408ca194ba + depends: + - libbrotlidec 1.1.0 hd590300_1 + - libbrotlienc 1.1.0 hd590300_1 + - libgcc-ng >=12 + license: MIT + license_family: MIT + purls: [] + size: 18980 + timestamp: 1695990054140 +- kind: conda + name: brotli-python + version: 1.1.0 + build: py312h30efb56_1 + build_number: 1 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/brotli-python-1.1.0-py312h30efb56_1.conda + sha256: b68706698b6ac0d31196a8bcb061f0d1f35264bcd967ea45e03e108149a74c6f + md5: 45801a89533d3336a365284d93298e36 + depends: + - libgcc-ng >=12 + - libstdcxx-ng >=12 + - python >=3.12.0rc3,<3.13.0a0 + - python_abi 3.12.* *_cp312 + constrains: + - libbrotlicommon 1.1.0 hd590300_1 + license: MIT + license_family: MIT + purls: + - pkg:pypi/brotli?source=hash-mapping + size: 350604 + timestamp: 1695990206327 +- kind: conda + name: bzip2 + version: 1.0.8 + build: h4bc722e_7 + build_number: 7 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/bzip2-1.0.8-h4bc722e_7.conda + sha256: 5ced96500d945fb286c9c838e54fa759aa04a7129c59800f0846b4335cee770d + md5: 62ee74e96c5ebb0af99386de58cf9553 + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc-ng >=12 + license: bzip2-1.0.6 + license_family: BSD + purls: [] + size: 252783 + timestamp: 1720974456583 +- kind: conda + name: ca-certificates + version: 2024.7.4 + build: hbcca054_0 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/ca-certificates-2024.7.4-hbcca054_0.conda + sha256: c1548a3235376f464f9931850b64b02492f379b2f2bb98bc786055329b080446 + md5: 23ab7665c5f63cfb9f1f6195256daac6 + license: ISC + purls: [] + size: 154853 + timestamp: 1720077432978 +- kind: conda + name: cached-property + version: 1.5.2 + build: hd8ed1ab_1 + build_number: 1 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/cached-property-1.5.2-hd8ed1ab_1.tar.bz2 + sha256: 561e6660f26c35d137ee150187d89767c988413c978e1b712d53f27ddf70ea17 + md5: 9b347a7ec10940d3f7941ff6c460b551 + depends: + - cached_property >=1.5.2,<1.5.3.0a0 + license: BSD-3-Clause + license_family: BSD + purls: [] + size: 4134 + timestamp: 1615209571450 +- kind: conda + name: cached_property + version: 1.5.2 + build: pyha770c72_1 + build_number: 1 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/cached_property-1.5.2-pyha770c72_1.tar.bz2 + sha256: 6dbf7a5070cc43d90a1e4c2ec0c541c69d8e30a0e25f50ce9f6e4a432e42c5d7 + md5: 576d629e47797577ab0f1b351297ef4a + depends: + - python >=3.6 + license: BSD-3-Clause + license_family: BSD + purls: + - pkg:pypi/cached-property?source=hash-mapping + size: 11065 + timestamp: 1615209567874 +- kind: conda + name: certifi + version: 2024.7.4 + build: pyhd8ed1ab_0 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/certifi-2024.7.4-pyhd8ed1ab_0.conda + sha256: dd3577bb5275062c388c46b075dcb795f47f8dac561da7dd35fe504b936934e5 + md5: 24e7fd6ca65997938fff9e5ab6f653e4 + depends: + - python >=3.7 + license: ISC + purls: + - pkg:pypi/certifi?source=hash-mapping + size: 159308 + timestamp: 1720458053074 +- kind: conda + name: cffi + version: 1.17.0 + build: py312h1671c18_0 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/cffi-1.17.0-py312h1671c18_0.conda + sha256: 20fe2f88dd7c0ef16e464fa46757821cf569bc71f40a832e7767d3a87250f251 + md5: 33dee889f41b0ba6dbe5ddbe70ebf263 + depends: + - __glibc >=2.17,<3.0.a0 + - libffi >=3.4,<4.0a0 + - libgcc-ng >=12 + - pycparser + - python >=3.12,<3.13.0a0 + - python_abi 3.12.* *_cp312 + license: MIT + license_family: MIT + purls: + - pkg:pypi/cffi?source=hash-mapping + size: 294192 + timestamp: 1723018486671 +- kind: conda + name: charset-normalizer + version: 3.3.2 + build: pyhd8ed1ab_0 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/charset-normalizer-3.3.2-pyhd8ed1ab_0.conda + sha256: 20cae47d31fdd58d99c4d2e65fbdcefa0b0de0c84e455ba9d6356a4bdbc4b5b9 + md5: 7f4a9e3fcff3f6356ae99244a014da6a + depends: + - python >=3.7 + license: MIT + license_family: MIT + purls: + - pkg:pypi/charset-normalizer?source=hash-mapping + size: 46597 + timestamp: 1698833765762 +- kind: pypi + name: click + version: 8.1.7 + url: https://files.pythonhosted.org/packages/00/2e/d53fa4befbf2cfa713304affc7ca780ce4fc1fd8710527771b58311a3229/click-8.1.7-py3-none-any.whl + sha256: ae74fb96c20a0277a1d615f1e4d73c8414f5a98db8b799a7931d1582f3390c28 + requires_dist: + - colorama ; platform_system == 'Windows' + - importlib-metadata ; python_version < '3.8' + requires_python: '>=3.7' +- kind: conda + name: cloudpickle + version: 3.0.0 + build: pyhd8ed1ab_0 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/cloudpickle-3.0.0-pyhd8ed1ab_0.conda + sha256: 0dfbc1ffa72e7a0882f486c9b1e4e9cccb68cf5c576fe53a89d076c9f1d43754 + md5: 753d29fe41bb881e4b9c004f0abf973f + depends: + - python >=3.8 + license: BSD-3-Clause + license_family: BSD + purls: + - pkg:pypi/cloudpickle?source=hash-mapping + size: 24746 + timestamp: 1697464875382 +- kind: conda + name: comm + version: 0.2.2 + build: pyhd8ed1ab_0 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/comm-0.2.2-pyhd8ed1ab_0.conda + sha256: e923acf02708a8a0b591f3bce4bdc11c8e63b73198b99b35fe6cd96bfb6a0dbe + md5: 948d84721b578d426294e17a02e24cbb + depends: + - python >=3.6 + - traitlets >=5.3 + license: BSD-3-Clause + license_family: BSD + purls: + - pkg:pypi/comm?source=hash-mapping + size: 12134 + timestamp: 1710320435158 +- kind: conda + name: contourpy + version: 1.2.1 + build: py312h8572e83_0 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/contourpy-1.2.1-py312h8572e83_0.conda + sha256: b0731336b9788c247b11a592352f700a647119340b549aba9e933835c7c77df0 + md5: 12c6a831ef734f0b2dd4caff514cbb7f + depends: + - libgcc-ng >=12 + - libstdcxx-ng >=12 + - numpy >=1.20 + - python >=3.12,<3.13.0a0 + - python_abi 3.12.* *_cp312 + license: BSD-3-Clause + license_family: BSD + purls: + - pkg:pypi/contourpy?source=hash-mapping + size: 256764 + timestamp: 1712430146809 +- kind: conda + name: cycler + version: 0.12.1 + build: pyhd8ed1ab_0 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/cycler-0.12.1-pyhd8ed1ab_0.conda + sha256: f221233f21b1d06971792d491445fd548224641af9443739b4b7b6d5d72954a8 + md5: 5cd86562580f274031ede6aa6aa24441 + depends: + - python >=3.8 + license: BSD-3-Clause + license_family: BSD + purls: + - pkg:pypi/cycler?source=hash-mapping + size: 13458 + timestamp: 1696677888423 +- kind: conda + name: debugpy + version: 1.8.5 + build: py312hca68cad_0 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/debugpy-1.8.5-py312hca68cad_0.conda + sha256: 129964de45b48cb44a377ba926fd96a081ef11ca3d47f5f1b969c2609de30816 + md5: 6c56579c537feaafdf62d6c3b5424c53 + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc-ng >=12 + - libstdcxx-ng >=12 + - python >=3.12,<3.13.0a0 + - python_abi 3.12.* *_cp312 + license: MIT + license_family: MIT + purls: + - pkg:pypi/debugpy?source=hash-mapping + size: 2092033 + timestamp: 1722923858548 +- kind: conda + name: decorator + version: 5.1.1 + build: pyhd8ed1ab_0 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/decorator-5.1.1-pyhd8ed1ab_0.tar.bz2 + sha256: 328a6a379f9bdfd0230e51de291ce858e6479411ea4b0545fb377c71662ef3e2 + md5: 43afe5ab04e35e17ba28649471dd7364 + depends: + - python >=3.5 + license: BSD-2-Clause + license_family: BSD + purls: + - pkg:pypi/decorator?source=hash-mapping + size: 12072 + timestamp: 1641555714315 +- kind: conda + name: defusedxml + version: 0.7.1 + build: pyhd8ed1ab_0 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/defusedxml-0.7.1-pyhd8ed1ab_0.tar.bz2 + sha256: 9717a059677553562a8f38ff07f3b9f61727bd614f505658b0a5ecbcf8df89be + md5: 961b3a227b437d82ad7054484cfa71b2 + depends: + - python >=3.6 + license: PSF-2.0 + license_family: PSF + purls: + - pkg:pypi/defusedxml?source=hash-mapping + size: 24062 + timestamp: 1615232388757 +- kind: pypi + name: docutils + version: 0.21.2 + url: https://files.pythonhosted.org/packages/8f/d7/9322c609343d929e75e7e5e6255e614fcc67572cfd083959cdef3b7aad79/docutils-0.21.2-py3-none-any.whl + sha256: dafca5b9e384f0e419294eb4d2ff9fa826435bf15f15b7bd45723e8ad76811b2 + requires_python: '>=3.9' +- kind: conda + name: doit + version: 0.36.0 + build: pyhd8ed1ab_0 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/doit-0.36.0-pyhd8ed1ab_0.tar.bz2 + sha256: 268abd6a52e5ea839233f5f5754d9bf959b16289b6a891cb50ffb65c9a47306a + md5: fc5e53d070f1ee7bb38c2ece282dcb82 + depends: + - cloudpickle + - importlib-metadata >=4.4 + - python >=3.8 + license: MIT + license_family: MIT + purls: + - pkg:pypi/doit?source=hash-mapping + size: 67197 + timestamp: 1650645336234 +- kind: conda + name: entrypoints + version: '0.4' + build: pyhd8ed1ab_0 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/entrypoints-0.4-pyhd8ed1ab_0.tar.bz2 + sha256: 2ec4a0900a4a9f42615fc04d0fb3286b796abe56590e8e042f6ec25e102dd5af + md5: 3cf04868fee0a029769bd41f4b2fbf2d + depends: + - python >=3.6 + license: MIT + license_family: MIT + purls: + - pkg:pypi/entrypoints?source=hash-mapping + size: 9199 + timestamp: 1643888357950 +- kind: conda + name: exceptiongroup + version: 1.2.2 + build: pyhd8ed1ab_0 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/exceptiongroup-1.2.2-pyhd8ed1ab_0.conda + sha256: e0edd30c4b7144406bb4da975e6bb97d6bc9c0e999aa4efe66ae108cada5d5b5 + md5: d02ae936e42063ca46af6cdad2dbd1e0 + depends: + - python >=3.7 + license: MIT and PSF-2.0 + purls: + - pkg:pypi/exceptiongroup?source=hash-mapping + size: 20418 + timestamp: 1720869435725 +- kind: conda + name: executing + version: 2.0.1 + build: pyhd8ed1ab_0 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/executing-2.0.1-pyhd8ed1ab_0.conda + sha256: c738804ab1e6376f8ea63372229a04c8d658dc90fd5a218c6273a2eaf02f4057 + md5: e16be50e378d8a4533b989035b196ab8 + depends: + - python >=2.7 + license: MIT + license_family: MIT + purls: + - pkg:pypi/executing?source=hash-mapping + size: 27689 + timestamp: 1698580072627 +- kind: conda + name: fonttools + version: 4.53.1 + build: py312h41a817b_0 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/fonttools-4.53.1-py312h41a817b_0.conda + sha256: b1d9f95c13b9caa26689875b0af654b7f464e273eea94abdf5b1be1baa6c8870 + md5: da921c56bcf69a8b97216ecec0cc4015 + depends: + - __glibc >=2.17,<3.0.a0 + - brotli + - libgcc-ng >=12 + - munkres + - python >=3.12,<3.13.0a0 + - python_abi 3.12.* *_cp312 + license: MIT + license_family: MIT + purls: + - pkg:pypi/fonttools?source=hash-mapping + size: 2847552 + timestamp: 1720359185195 +- kind: conda + name: fqdn + version: 1.5.1 + build: pyhd8ed1ab_0 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/fqdn-1.5.1-pyhd8ed1ab_0.tar.bz2 + sha256: 6cfd1f9bcd2358a69fb571f4b3af049b630d52647d906822dbedac03e84e4f63 + md5: 642d35437078749ef23a5dca2c9bb1f3 + depends: + - cached-property >=1.3.0 + - python >=2.7,<4 + license: MPL-2.0 + license_family: MOZILLA + purls: + - pkg:pypi/fqdn?source=hash-mapping + size: 14395 + timestamp: 1638810388635 +- kind: conda + name: freetype + version: 2.12.1 + build: h267a509_2 + build_number: 2 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/freetype-2.12.1-h267a509_2.conda + sha256: b2e3c449ec9d907dd4656cb0dc93e140f447175b125a3824b31368b06c666bb6 + md5: 9ae35c3d96db2c94ce0cef86efdfa2cb + depends: + - libgcc-ng >=12 + - libpng >=1.6.39,<1.7.0a0 + - libzlib >=1.2.13,<2.0.0a0 + license: GPL-2.0-only OR FTL + purls: [] + size: 634972 + timestamp: 1694615932610 +- kind: pypi + name: greenlet + version: 3.0.3 + url: https://files.pythonhosted.org/packages/bd/37/56b0da468a85e7704f3b2bc045015301bdf4be2184a44868c71f6dca6fe2/greenlet-3.0.3-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl + sha256: fcd2469d6a2cf298f198f0487e0a5b1a47a42ca0fa4dfd1b6862c999f018ebbf + requires_dist: + - sphinx ; extra == 'docs' + - furo ; extra == 'docs' + - objgraph ; extra == 'test' + - psutil ; extra == 'test' + requires_python: '>=3.7' +- kind: conda + name: h11 + version: 0.14.0 + build: pyhd8ed1ab_0 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/h11-0.14.0-pyhd8ed1ab_0.tar.bz2 + sha256: 817d2c77d53afe3f3d9cf7f6eb8745cdd8ea76c7adaa9d7ced75c455a2c2c085 + md5: b21ed0883505ba1910994f1df031a428 + depends: + - python >=3 + - typing_extensions + license: MIT + license_family: MIT + purls: + - pkg:pypi/h11?source=hash-mapping + size: 48251 + timestamp: 1664132995560 +- kind: conda + name: h2 + version: 4.1.0 + build: pyhd8ed1ab_0 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/h2-4.1.0-pyhd8ed1ab_0.tar.bz2 + sha256: bfc6a23849953647f4e255c782e74a0e18fe16f7e25c7bb0bc57b83bb6762c7a + md5: b748fbf7060927a6e82df7cb5ee8f097 + depends: + - hpack >=4.0,<5 + - hyperframe >=6.0,<7 + - python >=3.6.1 + license: MIT + license_family: MIT + purls: + - pkg:pypi/h2?source=hash-mapping + size: 46754 + timestamp: 1634280590080 +- kind: conda + name: hpack + version: 4.0.0 + build: pyh9f0ad1d_0 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/hpack-4.0.0-pyh9f0ad1d_0.tar.bz2 + sha256: 5dec948932c4f740674b1afb551223ada0c55103f4c7bf86a110454da3d27cb8 + md5: 914d6646c4dbb1fd3ff539830a12fd71 + depends: + - python + license: MIT + license_family: MIT + purls: + - pkg:pypi/hpack?source=hash-mapping + size: 25341 + timestamp: 1598856368685 +- kind: conda + name: httpcore + version: 1.0.5 + build: pyhd8ed1ab_0 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/httpcore-1.0.5-pyhd8ed1ab_0.conda + sha256: 4025644200eefa0598e4600a66fd4804a57d9fd7054a5c8c45e508fd875e0b84 + md5: a6b9a0158301e697e4d0a36a3d60e133 + depends: + - anyio >=3.0,<5.0 + - certifi + - h11 >=0.13,<0.15 + - h2 >=3,<5 + - python >=3.8 + - sniffio 1.* + license: BSD-3-Clause + license_family: BSD + purls: + - pkg:pypi/httpcore?source=hash-mapping + size: 45816 + timestamp: 1711597091407 +- kind: conda + name: httpx + version: 0.27.0 + build: pyhd8ed1ab_0 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/httpx-0.27.0-pyhd8ed1ab_0.conda + sha256: fdaf341fb2630b7afe8238315448fc93947f77ebfa4da68bb349e1bcf820af58 + md5: 9f359af5a886fd6ca6b2b6ea02e58332 + depends: + - anyio + - certifi + - httpcore 1.* + - idna + - python >=3.8 + - sniffio + license: BSD-3-Clause + license_family: BSD + purls: + - pkg:pypi/httpx?source=hash-mapping + size: 64651 + timestamp: 1708531043505 +- kind: conda + name: httpx + version: 0.27.2 + build: pyhd8ed1ab_0 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/httpx-0.27.2-pyhd8ed1ab_0.conda + sha256: 1a33f160548bf447e15c0273899d27e4473f1d5b7ca1441232ec2d9d07c56d03 + md5: 7e9ac3faeebdbd7b53b462c41891e7f7 + depends: + - anyio + - certifi + - httpcore 1.* + - idna + - python >=3.8 + - sniffio + license: BSD-3-Clause + license_family: BSD + purls: + - pkg:pypi/httpx?source=hash-mapping + size: 65085 + timestamp: 1724778453275 +- kind: conda + name: hyperframe + version: 6.0.1 + build: pyhd8ed1ab_0 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/hyperframe-6.0.1-pyhd8ed1ab_0.tar.bz2 + sha256: e374a9d0f53149328134a8d86f5d72bca4c6dcebed3c0ecfa968c02996289330 + md5: 9f765cbfab6870c8435b9eefecd7a1f4 + depends: + - python >=3.6 + license: MIT + license_family: MIT + purls: + - pkg:pypi/hyperframe?source=hash-mapping + size: 14646 + timestamp: 1619110249723 +- kind: conda + name: idna + version: '3.8' + build: pyhd8ed1ab_0 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/idna-3.8-pyhd8ed1ab_0.conda + sha256: 8660d38b272d3713ec8ac5ae918bc3bc80e1b81e1a7d61df554bded71ada6110 + md5: 99e164522f6bdf23c177c8d9ae63f975 + depends: + - python >=3.6 + license: BSD-3-Clause + license_family: BSD + purls: + - pkg:pypi/idna?source=hash-mapping + size: 49275 + timestamp: 1724450633325 +- kind: pypi + name: imagesize + version: 1.4.1 + url: https://files.pythonhosted.org/packages/ff/62/85c4c919272577931d407be5ba5d71c20f0b616d31a0befe0ae45bb79abd/imagesize-1.4.1-py2.py3-none-any.whl + sha256: 0d8d18d08f840c19d0ee7ca1fd82490fdc3729b7ac93f49870406ddde8ef8d8b + requires_python: '>=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*' +- kind: conda + name: importlib-metadata + version: 8.4.0 + build: pyha770c72_0 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-8.4.0-pyha770c72_0.conda + sha256: 02c95f6f62675012e0b2ab945eba6fc14fa6a693c17bced3554db7b62d586f0c + md5: 6e3dbc422d3749ad72659243d6ac8b2b + depends: + - python >=3.8 + - zipp >=0.5 + license: Apache-2.0 + license_family: APACHE + purls: + - pkg:pypi/importlib-metadata?source=hash-mapping + size: 28338 + timestamp: 1724187329246 +- kind: conda + name: importlib_metadata + version: 8.4.0 + build: hd8ed1ab_0 + subdir: noarch + noarch: generic + url: https://conda.anaconda.org/conda-forge/noarch/importlib_metadata-8.4.0-hd8ed1ab_0.conda + sha256: c9c782fdf59fb169220b69ea0bbefc3fdc7f58c9fdbdf2d6ff734aa033647b59 + md5: 01b7411c765c3d863dcc920207f258bd + depends: + - importlib-metadata >=8.4.0,<8.4.1.0a0 + license: Apache-2.0 + license_family: APACHE + purls: [] + size: 9292 + timestamp: 1724187331653 +- kind: conda + name: importlib_resources + version: 6.4.4 + build: pyhd8ed1ab_0 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/importlib_resources-6.4.4-pyhd8ed1ab_0.conda + sha256: 13e277624eaef453af3ff4d925ba1169376baa7008eabd8eaae7c5772bec9fc2 + md5: 99aa3edd3f452d61c305a30e78140513 + depends: + - python >=3.8 + - zipp >=3.1.0 + constrains: + - importlib-resources >=6.4.4,<6.4.5.0a0 + license: Apache-2.0 + license_family: APACHE + purls: + - pkg:pypi/importlib-resources?source=hash-mapping + size: 32258 + timestamp: 1724314749050 +- kind: conda + name: ipykernel + version: 6.29.5 + build: pyh3099207_0 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/ipykernel-6.29.5-pyh3099207_0.conda + sha256: 33cfd339bb4efac56edf93474b37ddc049e08b1b4930cf036c893cc1f5a1f32a + md5: b40131ab6a36ac2c09b7c57d4d3fbf99 + depends: + - __linux + - comm >=0.1.1 + - debugpy >=1.6.5 + - ipython >=7.23.1 + - jupyter_client >=6.1.12 + - jupyter_core >=4.12,!=5.0.* + - matplotlib-inline >=0.1 + - nest-asyncio + - packaging + - psutil + - python >=3.8 + - pyzmq >=24 + - tornado >=6.1 + - traitlets >=5.4.0 + license: BSD-3-Clause + license_family: BSD + purls: + - pkg:pypi/ipykernel?source=hash-mapping + size: 119084 + timestamp: 1719845605084 +- kind: conda + name: ipympl + version: 0.9.4 + build: pyhd8ed1ab_0 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/ipympl-0.9.4-pyhd8ed1ab_0.conda + sha256: db2a3eae629209d5e61d1443e5a12c6563f82b08aaf74810e76763eed5d71a28 + md5: efef6deea063ef5612376b62b857ad7f + depends: + - ipython <9 + - ipython_genutils + - ipywidgets >=7.6.0,<9 + - matplotlib-base >=2.2.0,<4 + - numpy + - pillow + - python >=3.6 + - traitlets <6 + license: BSD-3-Clause + license_family: BSD + purls: + - pkg:pypi/ipympl?source=hash-mapping + size: 213574 + timestamp: 1713251745934 +- kind: conda + name: ipython + version: 8.26.0 + build: pyh707e725_0 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/ipython-8.26.0-pyh707e725_0.conda + sha256: a40c2859a055d98ba234d67b233fb1ba55d86cbe632ec96eecb7c5019c16478b + md5: f64d3520d5d00321c10f4dabb5b903f3 + depends: + - __unix + - decorator + - exceptiongroup + - jedi >=0.16 + - matplotlib-inline + - pexpect >4.3 + - pickleshare + - prompt-toolkit >=3.0.41,<3.1.0 + - pygments >=2.4.0 + - python >=3.10 + - stack_data + - traitlets >=5.13.0 + - typing_extensions >=4.6 + license: BSD-3-Clause + license_family: BSD + purls: + - pkg:pypi/ipython?source=hash-mapping + size: 599279 + timestamp: 1719582627972 +- kind: conda + name: ipython_genutils + version: 0.2.0 + build: pyhd8ed1ab_1 + build_number: 1 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/ipython_genutils-0.2.0-pyhd8ed1ab_1.conda + sha256: 72fbbe8bc511f20268d347c1a06e279128237e096c4c174b2f9164a661c6b13e + md5: f8ed9f18dce81e4ee55c858cc2f8548a + depends: + - python >=2.7 + license: BSD-3-Clause + license_family: BSD + purls: + - pkg:pypi/ipython-genutils?source=hash-mapping + size: 28064 + timestamp: 1716278507729 +- kind: conda + name: ipywidgets + version: 8.1.5 + build: pyhd8ed1ab_0 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/ipywidgets-8.1.5-pyhd8ed1ab_0.conda + sha256: ae27447f300c85a184d5d4fa08674eaa93931c12275daca981eb986f5d7795b3 + md5: a022d34163147d16b27de86dc53e93fc + depends: + - comm >=0.1.3 + - ipython >=6.1.0 + - jupyterlab_widgets >=3.0.13,<3.1.0 + - python >=3.7 + - traitlets >=4.3.1 + - widgetsnbextension >=4.0.13,<4.1.0 + license: BSD-3-Clause + license_family: BSD + purls: + - pkg:pypi/ipywidgets?source=hash-mapping + size: 113497 + timestamp: 1724334989324 +- kind: conda + name: isoduration + version: 20.11.0 + build: pyhd8ed1ab_0 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/isoduration-20.11.0-pyhd8ed1ab_0.tar.bz2 + sha256: 7bb5c4d994361022f47a807b5e7d101b3dce16f7dd8a0af6ffad9f479d346493 + md5: 4cb68948e0b8429534380243d063a27a + depends: + - arrow >=0.15.0 + - python >=3.7 + license: MIT + license_family: MIT + purls: + - pkg:pypi/isoduration?source=hash-mapping + size: 17189 + timestamp: 1638811664194 +- kind: conda + name: jedi + version: 0.19.1 + build: pyhd8ed1ab_0 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/jedi-0.19.1-pyhd8ed1ab_0.conda + sha256: 362f0936ef37dfd1eaa860190e42a6ebf8faa094eaa3be6aa4d9ace95f40047a + md5: 81a3be0b2023e1ea8555781f0ad904a2 + depends: + - parso >=0.8.3,<0.9.0 + - python >=3.6 + license: MIT + license_family: MIT + purls: + - pkg:pypi/jedi?source=hash-mapping + size: 841312 + timestamp: 1696326218364 +- kind: conda + name: jinja2 + version: 3.1.4 + build: pyhd8ed1ab_0 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/jinja2-3.1.4-pyhd8ed1ab_0.conda + sha256: 27380d870d42d00350d2d52598cddaf02f9505fb24be09488da0c9b8d1428f2d + md5: 7b86ecb7d3557821c649b3c31e3eb9f2 + depends: + - markupsafe >=2.0 + - python >=3.7 + license: BSD-3-Clause + license_family: BSD + purls: + - pkg:pypi/jinja2?source=hash-mapping + size: 111565 + timestamp: 1715127275924 +- kind: conda + name: json5 + version: 0.9.25 + build: pyhd8ed1ab_0 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/json5-0.9.25-pyhd8ed1ab_0.conda + sha256: 0c75e428970e8bb72ba1dd3a6dc32b8d68f6534b4fe16b38e53364963fdc8e38 + md5: 5d8c241a9261e720a34a07a3e1ac4109 + depends: + - python >=3.7,<4.0 + license: Apache-2.0 + license_family: APACHE + purls: + - pkg:pypi/json5?source=hash-mapping + size: 27995 + timestamp: 1712986338874 +- kind: conda + name: jsonpointer + version: 3.0.0 + build: py312h7900ff3_0 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/jsonpointer-3.0.0-py312h7900ff3_0.conda + sha256: b5d17c5db3c7306d3625745a27359f806a6dd94707d76d74cba541fc1daa2ae3 + md5: 320338762418ae59539ae368d4386085 + depends: + - python >=3.12,<3.13.0a0 + - python_abi 3.12.* *_cp312 + license: BSD-3-Clause + license_family: BSD + purls: + - pkg:pypi/jsonpointer?source=hash-mapping + size: 17497 + timestamp: 1718283512438 +- kind: conda + name: jsonschema + version: 4.23.0 + build: pyhd8ed1ab_0 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/jsonschema-4.23.0-pyhd8ed1ab_0.conda + sha256: 7d0c4c0346b26be9f220682b7c5c0d84606d48c6dbc36fc238e4452dda733aff + md5: da304c192ad59975202859b367d0f6a2 + depends: + - attrs >=22.2.0 + - importlib_resources >=1.4.0 + - jsonschema-specifications >=2023.03.6 + - pkgutil-resolve-name >=1.3.10 + - python >=3.8 + - referencing >=0.28.4 + - rpds-py >=0.7.1 + license: MIT + license_family: MIT + purls: + - pkg:pypi/jsonschema?source=hash-mapping + size: 74323 + timestamp: 1720529611305 +- kind: conda + name: jsonschema-specifications + version: 2023.12.1 + build: pyhd8ed1ab_0 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/jsonschema-specifications-2023.12.1-pyhd8ed1ab_0.conda + sha256: a9630556ddc3121c0be32f4cbf792dd9102bd380d5cd81d57759d172cf0c2da2 + md5: a0e4efb5f35786a05af4809a2fb1f855 + depends: + - importlib_resources >=1.4.0 + - python >=3.8 + - referencing >=0.31.0 + license: MIT + license_family: MIT + purls: + - pkg:pypi/jsonschema-specifications?source=hash-mapping + size: 16431 + timestamp: 1703778502971 +- kind: conda + name: jsonschema-with-format-nongpl + version: 4.23.0 + build: hd8ed1ab_0 + subdir: noarch + noarch: generic + url: https://conda.anaconda.org/conda-forge/noarch/jsonschema-with-format-nongpl-4.23.0-hd8ed1ab_0.conda + sha256: 007a0a506a0d1805b099629cb0ee743ad0afe7d9749e57339f32c168119e0139 + md5: 16b37612b3a2fd77f409329e213b530c + depends: + - fqdn + - idna + - isoduration + - jsonpointer >1.13 + - jsonschema >=4.23.0,<4.23.1.0a0 + - rfc3339-validator + - rfc3986-validator >0.1.0 + - uri-template + - webcolors >=24.6.0 + license: MIT + license_family: MIT + purls: [] + size: 7143 + timestamp: 1720529619500 +- kind: pypi + name: jupyter-cache + version: 1.0.0 + url: https://files.pythonhosted.org/packages/f8/2f/0bb8eacdd1102a20fecc759fb8ace695b9a1048563499a6dff8fa8da32a7/jupyter_cache-1.0.0-py3-none-any.whl + sha256: 594b1c4e29b488b36547e12477645f489dbdc62cc939b2408df5679f79245078 + requires_dist: + - attrs + - click + - importlib-metadata + - nbclient>=0.2 + - nbformat + - pyyaml + - sqlalchemy>=1.3.12,<3 + - tabulate + - click-log ; extra == 'cli' + - pre-commit>=2.12 ; extra == 'code-style' + - nbdime ; extra == 'rtd' + - ipykernel ; extra == 'rtd' + - jupytext ; extra == 'rtd' + - myst-nb ; extra == 'rtd' + - sphinx-book-theme ; extra == 'rtd' + - sphinx-copybutton ; extra == 'rtd' + - nbdime ; extra == 'testing' + - coverage ; extra == 'testing' + - ipykernel ; extra == 'testing' + - jupytext ; extra == 'testing' + - matplotlib ; extra == 'testing' + - nbformat>=5.1 ; extra == 'testing' + - numpy ; extra == 'testing' + - pandas ; extra == 'testing' + - pytest>=6,<8 ; extra == 'testing' + - pytest-cov ; extra == 'testing' + - pytest-regressions ; extra == 'testing' + - sympy ; extra == 'testing' + requires_python: '>=3.9' +- kind: conda + name: jupyter-lsp + version: 2.2.5 + build: pyhd8ed1ab_0 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/jupyter-lsp-2.2.5-pyhd8ed1ab_0.conda + sha256: 2151c2c63e0442a4c69ee0ad8a634195eedab10b7b74c0ec8266471842239a93 + md5: 885867f6adab3d7ecdf8ab6ca0785f51 + depends: + - importlib-metadata >=4.8.3 + - jupyter_server >=1.1.2 + - python >=3.8 + license: BSD-3-Clause + license_family: BSD + purls: + - pkg:pypi/jupyter-lsp?source=hash-mapping + size: 55539 + timestamp: 1712707521811 +- kind: conda + name: jupyter_client + version: 8.6.2 + build: pyhd8ed1ab_0 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/jupyter_client-8.6.2-pyhd8ed1ab_0.conda + sha256: 634f065cdd1d0aacd4bb6848ebf240dcebc8578135d65f4ad4aa42b2276c4e0c + md5: 3cdbb2fa84490e5fd44c9f9806c0d292 + depends: + - importlib_metadata >=4.8.3 + - jupyter_core >=4.12,!=5.0.* + - python >=3.8 + - python-dateutil >=2.8.2 + - pyzmq >=23.0 + - tornado >=6.2 + - traitlets >=5.3 + license: BSD-3-Clause + license_family: BSD + purls: + - pkg:pypi/jupyter-client?source=hash-mapping + size: 106248 + timestamp: 1716472312833 +- kind: conda + name: jupyter_core + version: 5.7.2 + build: py312h7900ff3_0 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/jupyter_core-5.7.2-py312h7900ff3_0.conda + sha256: 22a6259c2b139191c76ed7633d1865757b3c15007989f6c74304a80f28e5a262 + md5: eee5a2e3465220ed87196bbb5665f420 + depends: + - platformdirs >=2.5 + - python >=3.12,<3.13.0a0 + - python_abi 3.12.* *_cp312 + - traitlets >=5.3 + license: BSD-3-Clause + license_family: BSD + purls: + - pkg:pypi/jupyter-core?source=hash-mapping + size: 92843 + timestamp: 1710257533875 +- kind: conda + name: jupyter_events + version: 0.10.0 + build: pyhd8ed1ab_0 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/jupyter_events-0.10.0-pyhd8ed1ab_0.conda + sha256: cd3f41dc093162a41d4bae171e40a1b9b115c4d488e9bb837a8fa9d084931fb9 + md5: ed45423c41b3da15ea1df39b1f80c2ca + depends: + - jsonschema-with-format-nongpl >=4.18.0 + - python >=3.8 + - python-json-logger >=2.0.4 + - pyyaml >=5.3 + - referencing + - rfc3339-validator + - rfc3986-validator >=0.1.1 + - traitlets >=5.3 + license: BSD-3-Clause + license_family: BSD + purls: + - pkg:pypi/jupyter-events?source=hash-mapping + size: 21475 + timestamp: 1710805759187 +- kind: conda + name: jupyter_server + version: 2.14.2 + build: pyhd8ed1ab_0 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/jupyter_server-2.14.2-pyhd8ed1ab_0.conda + sha256: edab71a05feceac54bdb90e755a257545af7832b9911607c1a70f09be44ba985 + md5: ca23c71f70a7c7935b3d03f0f1a5801d + depends: + - anyio >=3.1.0 + - argon2-cffi >=21.1 + - jinja2 >=3.0.3 + - jupyter_client >=7.4.4 + - jupyter_core >=4.12,!=5.0.* + - jupyter_events >=0.9.0 + - jupyter_server_terminals >=0.4.4 + - nbconvert-core >=6.4.4 + - nbformat >=5.3.0 + - overrides >=5.0 + - packaging >=22.0 + - prometheus_client >=0.9 + - python >=3.8 + - pyzmq >=24 + - send2trash >=1.8.2 + - terminado >=0.8.3 + - tornado >=6.2.0 + - traitlets >=5.6.0 + - websocket-client >=1.7 + license: BSD-3-Clause + license_family: BSD + purls: + - pkg:pypi/jupyter-server?source=hash-mapping + size: 323978 + timestamp: 1720816754998 +- kind: conda + name: jupyter_server_terminals + version: 0.5.3 + build: pyhd8ed1ab_0 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/jupyter_server_terminals-0.5.3-pyhd8ed1ab_0.conda + sha256: 038efbc7e4b2e72d49ed193cfb2bbbe9fbab2459786ce9350301f466a32567db + md5: 219b3833aa8ed91d47d1be6ca03f30be + depends: + - python >=3.8 + - terminado >=0.8.3 + license: BSD-3-Clause + license_family: BSD + purls: + - pkg:pypi/jupyter-server-terminals?source=hash-mapping + size: 19818 + timestamp: 1710262791393 +- kind: conda + name: jupyterlab + version: 4.2.5 + build: pyhd8ed1ab_0 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/jupyterlab-4.2.5-pyhd8ed1ab_0.conda + sha256: db08036a6fd846c178ebdce7327be1130bda10ac96113c17b04bce2bc4d67dda + md5: 594762eddc55b82feac6097165a88e3c + depends: + - async-lru >=1.0.0 + - httpx >=0.25.0 + - importlib_metadata >=4.8.3 + - importlib_resources >=1.4 + - ipykernel >=6.5.0 + - jinja2 >=3.0.3 + - jupyter-lsp >=2.0.0 + - jupyter_core + - jupyter_server >=2.4.0,<3 + - jupyterlab_server >=2.27.1,<3 + - notebook-shim >=0.2 + - packaging + - python >=3.8 + - setuptools >=40.1.0 + - tomli >=1.2.2 + - tornado >=6.2.0 + - traitlets + license: BSD-3-Clause + license_family: BSD + purls: + - pkg:pypi/jupyterlab?source=hash-mapping + size: 7361961 + timestamp: 1724745262468 +- kind: conda + name: jupyterlab-myst + version: 2.4.2 + build: pyhd8ed1ab_0 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/jupyterlab-myst-2.4.2-pyhd8ed1ab_0.conda + sha256: c8847c58de52c4daba94da9d2c6de067fee2a09aa1c3df2dd5a45360a0f4b533 + md5: cc481204ea9c53cda7ac187efa0268a1 + depends: + - jupyter_server >=2.0.1,<3 + - python >=3.8 + constrains: + - jupyterlab >=4,<5 + license: BSD-3-Clause + license_family: BSD + purls: + - pkg:pypi/jupyterlab-myst?source=hash-mapping + size: 2127008 + timestamp: 1714146125212 +- kind: conda + name: jupyterlab_pygments + version: 0.3.0 + build: pyhd8ed1ab_1 + build_number: 1 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/jupyterlab_pygments-0.3.0-pyhd8ed1ab_1.conda + sha256: 4aa622bbcf97e44cd1adf0100b7ff71b7e20268f043bdf6feae4d16152f1f242 + md5: afcd1b53bcac8844540358e33f33d28f + depends: + - pygments >=2.4.1,<3 + - python >=3.7 + constrains: + - jupyterlab >=4.0.8,<5.0.0 + license: BSD-3-Clause + license_family: BSD + purls: + - pkg:pypi/jupyterlab-pygments?source=hash-mapping + size: 18776 + timestamp: 1707149279640 +- kind: conda + name: jupyterlab_server + version: 2.27.3 + build: pyhd8ed1ab_0 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/jupyterlab_server-2.27.3-pyhd8ed1ab_0.conda + sha256: a23b26d1a35bccdb91b9232119e5f402624e1e1a252b0e64cc20c6eb5b87cefb + md5: af8239bf1ba7e8c69b689f780f653488 + depends: + - babel >=2.10 + - importlib-metadata >=4.8.3 + - jinja2 >=3.0.3 + - json5 >=0.9.0 + - jsonschema >=4.18 + - jupyter_server >=1.21,<3 + - packaging >=21.3 + - python >=3.8 + - requests >=2.31 + constrains: + - openapi-core >=0.18.0,<0.19.0 + license: BSD-3-Clause + license_family: BSD + purls: + - pkg:pypi/jupyterlab-server?source=hash-mapping + size: 49355 + timestamp: 1721163412436 +- kind: conda + name: jupyterlab_widgets + version: 3.0.13 + build: pyhd8ed1ab_0 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/jupyterlab_widgets-3.0.13-pyhd8ed1ab_0.conda + sha256: 0e7ec7936d766f39d5a0a8eafc63f5543f488883ad3645246bc22db6d632566e + md5: ccea946e6dce9f330fbf7fca97fe8de7 + depends: + - python >=3.7 + constrains: + - jupyterlab >=3,<5 + license: BSD-3-Clause + license_family: BSD + purls: + - pkg:pypi/jupyterlab-widgets?source=hash-mapping + size: 186024 + timestamp: 1724331451102 +- kind: conda + name: jupyterlite-core + version: 0.4.0 + build: pyhd8ed1ab_0 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/jupyterlite-core-0.4.0-pyhd8ed1ab_0.conda + sha256: 44e4573b400d7878a7024c9cbc44d69e3f81213c852fc199f5583d75bb7a6d53 + md5: e09094b79d89cc43b460f10c4eb06fbb + depends: + - doit >=0.34,<1 + - importlib-metadata >=3.6 + - jupyter_core >=4.7 + - python >=3.8 + license: BSD-3-Clause + license_family: BSD + purls: + - pkg:pypi/jupyterlite-core?source=hash-mapping + size: 19832102 + timestamp: 1721913237426 +- kind: conda + name: jupyterlite-pyodide-kernel + version: 0.4.1 + build: pyhd8ed1ab_0 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/jupyterlite-pyodide-kernel-0.4.1-pyhd8ed1ab_0.conda + sha256: d6f10905c110371b269273b92472f3204514a52c6396d6b3be838b2ea1a36928 + md5: 8112a28ca5c45fa5476e0196e6f68353 + depends: + - jupyterlite-core >=0.4.0,<0.5.0 + - pkginfo + - python >=3.8 + license: BSD-3-Clause + license_family: BSD + purls: + - pkg:pypi/jupyterlite-pyodide-kernel?source=hash-mapping + size: 228553 + timestamp: 1722353421587 +- kind: pypi + name: jupytext + version: 1.16.4 + url: https://files.pythonhosted.org/packages/90/a3/285eb1e79dbbd8e9513a3bb1bb2bb3d4c7c22c8a92efb8449baface0b864/jupytext-1.16.4-py3-none-any.whl + sha256: 76989d2690e65667ea6fb411d8056abe7cd0437c07bd774660b83d62acf9490a + requires_dist: + - markdown-it-py>=1.0 + - mdit-py-plugins + - nbformat + - packaging + - pyyaml + - tomli ; python_version < '3.11' + - autopep8 ; extra == 'dev' + - black ; extra == 'dev' + - flake8 ; extra == 'dev' + - gitpython ; extra == 'dev' + - ipykernel ; extra == 'dev' + - isort ; extra == 'dev' + - jupyter-fs>=1.0 ; extra == 'dev' + - jupyter-server!=2.11 ; extra == 'dev' + - nbconvert ; extra == 'dev' + - pre-commit ; extra == 'dev' + - pytest ; extra == 'dev' + - pytest-cov>=2.6.1 ; extra == 'dev' + - pytest-randomly ; extra == 'dev' + - pytest-xdist ; extra == 'dev' + - sphinx-gallery<0.8 ; extra == 'dev' + - myst-parser ; extra == 'docs' + - sphinx ; extra == 'docs' + - sphinx-copybutton ; extra == 'docs' + - sphinx-rtd-theme ; extra == 'docs' + - pytest ; extra == 'test' + - pytest-randomly ; extra == 'test' + - pytest-xdist ; extra == 'test' + - ipykernel ; extra == 'test-cov' + - jupyter-server!=2.11 ; extra == 'test-cov' + - nbconvert ; extra == 'test-cov' + - pytest ; extra == 'test-cov' + - pytest-cov>=2.6.1 ; extra == 'test-cov' + - pytest-randomly ; extra == 'test-cov' + - pytest-xdist ; extra == 'test-cov' + - autopep8 ; extra == 'test-external' + - black ; extra == 'test-external' + - flake8 ; extra == 'test-external' + - gitpython ; extra == 'test-external' + - ipykernel ; extra == 'test-external' + - isort ; extra == 'test-external' + - jupyter-fs>=1.0 ; extra == 'test-external' + - jupyter-server!=2.11 ; extra == 'test-external' + - nbconvert ; extra == 'test-external' + - pre-commit ; extra == 'test-external' + - pytest ; extra == 'test-external' + - pytest-randomly ; extra == 'test-external' + - pytest-xdist ; extra == 'test-external' + - sphinx-gallery<0.8 ; extra == 'test-external' + - pytest ; extra == 'test-functional' + - pytest-randomly ; extra == 'test-functional' + - pytest-xdist ; extra == 'test-functional' + - ipykernel ; extra == 'test-integration' + - jupyter-server!=2.11 ; extra == 'test-integration' + - nbconvert ; extra == 'test-integration' + - pytest ; extra == 'test-integration' + - pytest-randomly ; extra == 'test-integration' + - pytest-xdist ; extra == 'test-integration' + - calysto-bash ; extra == 'test-ui' + requires_python: '>=3.8' +- kind: conda + name: keyutils + version: 1.6.1 + build: h166bdaf_0 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/keyutils-1.6.1-h166bdaf_0.tar.bz2 + sha256: 150c05a6e538610ca7c43beb3a40d65c90537497a4f6a5f4d15ec0451b6f5ebb + md5: 30186d27e2c9fa62b45fb1476b7200e3 + depends: + - libgcc-ng >=10.3.0 + license: LGPL-2.1-or-later + purls: [] + size: 117831 + timestamp: 1646151697040 +- kind: conda + name: kiwisolver + version: 1.4.5 + build: py312h8572e83_1 + build_number: 1 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/kiwisolver-1.4.5-py312h8572e83_1.conda + sha256: 2ffd3f6726392591c6794ab130f6701f5ffba0ec8658ef40db5a95ec8d583143 + md5: c1e71f2bc05d8e8e033aefac2c490d05 + depends: + - libgcc-ng >=12 + - libstdcxx-ng >=12 + - python >=3.12.0rc3,<3.13.0a0 + - python_abi 3.12.* *_cp312 + license: BSD-3-Clause + license_family: BSD + purls: + - pkg:pypi/kiwisolver?source=hash-mapping + size: 72099 + timestamp: 1695380122482 +- kind: conda + name: krb5 + version: 1.21.3 + build: h659f571_0 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/krb5-1.21.3-h659f571_0.conda + sha256: 99df692f7a8a5c27cd14b5fb1374ee55e756631b9c3d659ed3ee60830249b238 + md5: 3f43953b7d3fb3aaa1d0d0723d91e368 + depends: + - keyutils >=1.6.1,<2.0a0 + - libedit >=3.1.20191231,<3.2.0a0 + - libedit >=3.1.20191231,<4.0a0 + - libgcc-ng >=12 + - libstdcxx-ng >=12 + - openssl >=3.3.1,<4.0a0 + license: MIT + license_family: MIT + purls: [] + size: 1370023 + timestamp: 1719463201255 +- kind: conda + name: lcms2 + version: '2.16' + build: hb7c19ff_0 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/lcms2-2.16-hb7c19ff_0.conda + sha256: 5c878d104b461b7ef922abe6320711c0d01772f4cd55de18b674f88547870041 + md5: 51bb7010fc86f70eee639b4bb7a894f5 + depends: + - libgcc-ng >=12 + - libjpeg-turbo >=3.0.0,<4.0a0 + - libtiff >=4.6.0,<4.7.0a0 + license: MIT + license_family: MIT + purls: [] + size: 245247 + timestamp: 1701647787198 +- kind: conda + name: ld_impl_linux-64 + version: '2.40' + build: hf3520f5_7 + build_number: 7 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/ld_impl_linux-64-2.40-hf3520f5_7.conda + sha256: 764b6950aceaaad0c67ef925417594dd14cd2e22fff864aeef455ac259263d15 + md5: b80f2f396ca2c28b8c14c437a4ed1e74 + constrains: + - binutils_impl_linux-64 2.40 + license: GPL-3.0-only + license_family: GPL + purls: [] + size: 707602 + timestamp: 1718625640445 +- kind: conda + name: lerc + version: 4.0.0 + build: h27087fc_0 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/lerc-4.0.0-h27087fc_0.tar.bz2 + sha256: cb55f36dcd898203927133280ae1dc643368af041a48bcf7c026acb7c47b0c12 + md5: 76bbff344f0134279f225174e9064c8f + depends: + - libgcc-ng >=12 + - libstdcxx-ng >=12 + license: Apache-2.0 + license_family: Apache + purls: [] + size: 281798 + timestamp: 1657977462600 +- kind: conda + name: libblas + version: 3.9.0 + build: 23_linux64_openblas + build_number: 23 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libblas-3.9.0-23_linux64_openblas.conda + sha256: edb1cee5da3ac4936940052dcab6969673ba3874564f90f5110f8c11eed789c2 + md5: 96c8450a40aa2b9733073a9460de972c + depends: + - libopenblas >=0.3.27,<0.3.28.0a0 + - libopenblas >=0.3.27,<1.0a0 + constrains: + - liblapacke 3.9.0 23_linux64_openblas + - libcblas 3.9.0 23_linux64_openblas + - liblapack 3.9.0 23_linux64_openblas + - blas * openblas + license: BSD-3-Clause + license_family: BSD + purls: [] + size: 14880 + timestamp: 1721688759937 +- kind: conda + name: libbrotlicommon + version: 1.1.0 + build: hd590300_1 + build_number: 1 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libbrotlicommon-1.1.0-hd590300_1.conda + sha256: 40f29d1fab92c847b083739af86ad2f36d8154008cf99b64194e4705a1725d78 + md5: aec6c91c7371c26392a06708a73c70e5 + depends: + - libgcc-ng >=12 + license: MIT + license_family: MIT + purls: [] + size: 69403 + timestamp: 1695990007212 +- kind: conda + name: libbrotlidec + version: 1.1.0 + build: hd590300_1 + build_number: 1 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libbrotlidec-1.1.0-hd590300_1.conda + sha256: 86fc861246fbe5ad85c1b6b3882aaffc89590a48b42d794d3d5c8e6d99e5f926 + md5: f07002e225d7a60a694d42a7bf5ff53f + depends: + - libbrotlicommon 1.1.0 hd590300_1 + - libgcc-ng >=12 + license: MIT + license_family: MIT + purls: [] + size: 32775 + timestamp: 1695990022788 +- kind: conda + name: libbrotlienc + version: 1.1.0 + build: hd590300_1 + build_number: 1 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libbrotlienc-1.1.0-hd590300_1.conda + sha256: f751b8b1c4754a2a8dfdc3b4040fa7818f35bbf6b10e905a47d3a194b746b071 + md5: 5fc11c6020d421960607d821310fcd4d + depends: + - libbrotlicommon 1.1.0 hd590300_1 + - libgcc-ng >=12 + license: MIT + license_family: MIT + purls: [] + size: 282523 + timestamp: 1695990038302 +- kind: conda + name: libcblas + version: 3.9.0 + build: 23_linux64_openblas + build_number: 23 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libcblas-3.9.0-23_linux64_openblas.conda + sha256: 3e7a3236e7e03e308e1667d91d0aa70edd0cba96b4b5563ef4adde088e0881a5 + md5: eede29b40efa878cbe5bdcb767e97310 + depends: + - libblas 3.9.0 23_linux64_openblas + constrains: + - liblapacke 3.9.0 23_linux64_openblas + - liblapack 3.9.0 23_linux64_openblas + - blas * openblas + license: BSD-3-Clause + license_family: BSD + purls: [] + size: 14798 + timestamp: 1721688767584 +- kind: conda + name: libdeflate + version: '1.21' + build: h4bc722e_0 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libdeflate-1.21-h4bc722e_0.conda + sha256: 728c24ce835700bfdfdf106bf04233fdb040a61ca4ecfd3f41b46fa90cd4f971 + md5: 36ce76665bf67f5aac36be7a0d21b7f3 + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc-ng >=12 + license: MIT + license_family: MIT + purls: [] + size: 71163 + timestamp: 1722820138782 +- kind: conda + name: libedit + version: 3.1.20191231 + build: he28a2e2_2 + build_number: 2 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libedit-3.1.20191231-he28a2e2_2.tar.bz2 + sha256: a57d37c236d8f7c886e01656f4949d9dcca131d2a0728609c6f7fa338b65f1cf + md5: 4d331e44109e3f0e19b4cb8f9b82f3e1 + depends: + - libgcc-ng >=7.5.0 + - ncurses >=6.2,<7.0.0a0 + license: BSD-2-Clause + license_family: BSD + purls: [] + size: 123878 + timestamp: 1597616541093 +- kind: conda + name: libexpat + version: 2.6.2 + build: h59595ed_0 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libexpat-2.6.2-h59595ed_0.conda + sha256: 331bb7c7c05025343ebd79f86ae612b9e1e74d2687b8f3179faec234f986ce19 + md5: e7ba12deb7020dd080c6c70e7b6f6a3d + depends: + - libgcc-ng >=12 + constrains: + - expat 2.6.2.* + license: MIT + license_family: MIT + purls: [] + size: 73730 + timestamp: 1710362120304 +- kind: conda + name: libffi + version: 3.4.2 + build: h7f98852_5 + build_number: 5 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libffi-3.4.2-h7f98852_5.tar.bz2 + sha256: ab6e9856c21709b7b517e940ae7028ae0737546122f83c2aa5d692860c3b149e + md5: d645c6d2ac96843a2bfaccd2d62b3ac3 + depends: + - libgcc-ng >=9.4.0 + license: MIT + license_family: MIT + purls: [] + size: 58292 + timestamp: 1636488182923 +- kind: conda + name: libgcc + version: 14.1.0 + build: h77fa898_1 + build_number: 1 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libgcc-14.1.0-h77fa898_1.conda + sha256: 10fa74b69266a2be7b96db881e18fa62cfa03082b65231e8d652e897c4b335a3 + md5: 002ef4463dd1e2b44a94a4ace468f5d2 + depends: + - _libgcc_mutex 0.1 conda_forge + - _openmp_mutex >=4.5 + constrains: + - libgomp 14.1.0 h77fa898_1 + - libgcc-ng ==14.1.0=*_1 + license: GPL-3.0-only WITH GCC-exception-3.1 + license_family: GPL + purls: [] + size: 846380 + timestamp: 1724801836552 +- kind: conda + name: libgcc-ng + version: 14.1.0 + build: h69a702a_1 + build_number: 1 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libgcc-ng-14.1.0-h69a702a_1.conda + sha256: b91f7021e14c3d5c840fbf0dc75370d6e1f7c7ff4482220940eaafb9c64613b7 + md5: 1efc0ad219877a73ef977af7dbb51f17 + depends: + - libgcc 14.1.0 h77fa898_1 + license: GPL-3.0-only WITH GCC-exception-3.1 + license_family: GPL + purls: [] + size: 52170 + timestamp: 1724801842101 +- kind: conda + name: libgcc-ng + version: 14.1.0 + build: h77fa898_0 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libgcc-ng-14.1.0-h77fa898_0.conda + sha256: b8e869ac96591cda2704bf7e77a301025e405227791a0bddf14a3dac65125538 + md5: ca0fad6a41ddaef54a153b78eccb5037 + depends: + - _libgcc_mutex 0.1 conda_forge + - _openmp_mutex >=4.5 + constrains: + - libgomp 14.1.0 h77fa898_0 + license: GPL-3.0-only WITH GCC-exception-3.1 + license_family: GPL + purls: [] + size: 842109 + timestamp: 1719538896937 +- kind: conda + name: libgfortran + version: 14.1.0 + build: h69a702a_1 + build_number: 1 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libgfortran-14.1.0-h69a702a_1.conda + sha256: ed77f04f873e43a26e24d443dd090631eedc7d0ace3141baaefd96a123e47535 + md5: 591e631bc1ae62c64f2ab4f66178c097 + depends: + - libgfortran5 14.1.0 hc5f4f2c_1 + constrains: + - libgfortran-ng ==14.1.0=*_1 + license: GPL-3.0-only WITH GCC-exception-3.1 + license_family: GPL + purls: [] + size: 52142 + timestamp: 1724801872472 +- kind: conda + name: libgfortran-ng + version: 14.1.0 + build: h69a702a_0 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libgfortran-ng-14.1.0-h69a702a_0.conda + sha256: ef624dacacf97b2b0af39110b36e2fd3e39e358a1a6b7b21b85c9ac22d8ffed9 + md5: f4ca84fbd6d06b0a052fb2d5b96dde41 + depends: + - libgfortran5 14.1.0 hc5f4f2c_0 + license: GPL-3.0-only WITH GCC-exception-3.1 + license_family: GPL + purls: [] + size: 49893 + timestamp: 1719538933879 +- kind: conda + name: libgfortran-ng + version: 14.1.0 + build: h69a702a_1 + build_number: 1 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libgfortran-ng-14.1.0-h69a702a_1.conda + sha256: a2dc35cb7f87bb5beebf102d4085574c6a740e1df58e743185d4434cc5e4e0ae + md5: 16cec94c5992d7f42ae3f9fa8b25df8d + depends: + - libgfortran 14.1.0 h69a702a_1 + license: GPL-3.0-only WITH GCC-exception-3.1 + license_family: GPL + purls: [] + size: 52212 + timestamp: 1724802086021 +- kind: conda + name: libgfortran5 + version: 14.1.0 + build: hc5f4f2c_0 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libgfortran5-14.1.0-hc5f4f2c_0.conda + sha256: a67d66b1e60a8a9a9e4440cee627c959acb4810cb182e089a4b0729bfdfbdf90 + md5: 6456c2620c990cd8dde2428a27ba0bc5 + depends: + - libgcc-ng >=14.1.0 + constrains: + - libgfortran-ng 14.1.0 + license: GPL-3.0-only WITH GCC-exception-3.1 + license_family: GPL + purls: [] + size: 1457561 + timestamp: 1719538909168 +- kind: conda + name: libgfortran5 + version: 14.1.0 + build: hc5f4f2c_1 + build_number: 1 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libgfortran5-14.1.0-hc5f4f2c_1.conda + sha256: c40d7db760296bf9c776de12597d2f379f30e890b9ae70c1de962ff2aa1999f6 + md5: 10a0cef64b784d6ab6da50ebca4e984d + depends: + - libgcc >=14.1.0 + constrains: + - libgfortran 14.1.0 + license: GPL-3.0-only WITH GCC-exception-3.1 + license_family: GPL + purls: [] + size: 1459939 + timestamp: 1724801851300 +- kind: conda + name: libgomp + version: 14.1.0 + build: h77fa898_0 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libgomp-14.1.0-h77fa898_0.conda + sha256: 7699df61a1f6c644b3576a40f54791561f2845983120477a16116b951c9cdb05 + md5: ae061a5ed5f05818acdf9adab72c146d + depends: + - _libgcc_mutex 0.1 conda_forge + license: GPL-3.0-only WITH GCC-exception-3.1 + license_family: GPL + purls: [] + size: 456925 + timestamp: 1719538796073 +- kind: conda + name: libgomp + version: 14.1.0 + build: h77fa898_1 + build_number: 1 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libgomp-14.1.0-h77fa898_1.conda + sha256: c96724c8ae4ee61af7674c5d9e5a3fbcf6cd887a40ad5a52c99aa36f1d4f9680 + md5: 23c255b008c4f2ae008f81edcabaca89 + depends: + - _libgcc_mutex 0.1 conda_forge + license: GPL-3.0-only WITH GCC-exception-3.1 + license_family: GPL + purls: [] + size: 460218 + timestamp: 1724801743478 +- kind: conda + name: libjpeg-turbo + version: 3.0.0 + build: hd590300_1 + build_number: 1 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libjpeg-turbo-3.0.0-hd590300_1.conda + sha256: b954e09b7e49c2f2433d6f3bb73868eda5e378278b0f8c1dd10a7ef090e14f2f + md5: ea25936bb4080d843790b586850f82b8 + depends: + - libgcc-ng >=12 + constrains: + - jpeg <0.0.0a + license: IJG AND BSD-3-Clause AND Zlib + purls: [] + size: 618575 + timestamp: 1694474974816 +- kind: conda + name: liblapack + version: 3.9.0 + build: 23_linux64_openblas + build_number: 23 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/liblapack-3.9.0-23_linux64_openblas.conda + sha256: 25c7aef86c8a1d9db0e8ee61aa7462ba3b46b482027a65d66eb83e3e6f949043 + md5: 2af0879961951987e464722fd00ec1e0 + depends: + - libblas 3.9.0 23_linux64_openblas + constrains: + - liblapacke 3.9.0 23_linux64_openblas + - libcblas 3.9.0 23_linux64_openblas + - blas * openblas + license: BSD-3-Clause + license_family: BSD + purls: [] + size: 14823 + timestamp: 1721688775172 +- kind: conda + name: libnsl + version: 2.0.1 + build: hd590300_0 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libnsl-2.0.1-hd590300_0.conda + sha256: 26d77a3bb4dceeedc2a41bd688564fe71bf2d149fdcf117049970bc02ff1add6 + md5: 30fd6e37fe21f86f4bd26d6ee73eeec7 + depends: + - libgcc-ng >=12 + license: LGPL-2.1-only + license_family: GPL + purls: [] + size: 33408 + timestamp: 1697359010159 +- kind: conda + name: libopenblas + version: 0.3.27 + build: pthreads_hac2b453_1 + build_number: 1 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libopenblas-0.3.27-pthreads_hac2b453_1.conda + sha256: 714cb82d7c4620ea2635a92d3df263ab841676c9b183d0c01992767bb2451c39 + md5: ae05ece66d3924ac3d48b4aa3fa96cec + depends: + - libgcc-ng >=12 + - libgfortran-ng + - libgfortran5 >=12.3.0 + constrains: + - openblas >=0.3.27,<0.3.28.0a0 + license: BSD-3-Clause + license_family: BSD + purls: [] + size: 5563053 + timestamp: 1720426334043 +- kind: conda + name: libpng + version: 1.6.43 + build: h2797004_0 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libpng-1.6.43-h2797004_0.conda + sha256: 502f6ff148ac2777cc55ae4ade01a8fc3543b4ffab25c4e0eaa15f94e90dd997 + md5: 009981dd9cfcaa4dbfa25ffaed86bcae + depends: + - libgcc-ng >=12 + - libzlib >=1.2.13,<2.0.0a0 + license: zlib-acknowledgement + purls: [] + size: 288221 + timestamp: 1708780443939 +- kind: conda + name: libsodium + version: 1.0.18 + build: h36c2ea0_1 + build_number: 1 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libsodium-1.0.18-h36c2ea0_1.tar.bz2 + sha256: 53da0c8b79659df7b53eebdb80783503ce72fb4b10ed6e9e05cc0e9e4207a130 + md5: c3788462a6fbddafdb413a9f9053e58d + depends: + - libgcc-ng >=7.5.0 + license: ISC + purls: [] + size: 374999 + timestamp: 1605135674116 +- kind: conda + name: libsqlite + version: 3.46.0 + build: hde9e2c9_0 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libsqlite-3.46.0-hde9e2c9_0.conda + sha256: daee3f68786231dad457d0dfde3f7f1f9a7f2018adabdbb864226775101341a8 + md5: 18aa975d2094c34aef978060ae7da7d8 + depends: + - libgcc-ng >=12 + - libzlib >=1.2.13,<2.0a0 + license: Unlicense + purls: [] + size: 865346 + timestamp: 1718050628718 +- kind: conda + name: libstdcxx + version: 14.1.0 + build: hc0a3c3a_1 + build_number: 1 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-14.1.0-hc0a3c3a_1.conda + sha256: 44decb3d23abacf1c6dd59f3c152a7101b7ca565b4ef8872804ceaedcc53a9cd + md5: 9dbb9699ea467983ba8a4ba89b08b066 + depends: + - libgcc 14.1.0 h77fa898_1 + license: GPL-3.0-only WITH GCC-exception-3.1 + license_family: GPL + purls: [] + size: 3892781 + timestamp: 1724801863728 +- kind: conda + name: libstdcxx-ng + version: 14.1.0 + build: h4852527_1 + build_number: 1 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-ng-14.1.0-h4852527_1.conda + sha256: a2dc44f97290740cc187bfe94ce543e6eb3c2ea8964d99f189a1d8c97b419b8c + md5: bd2598399a70bb86d8218e95548d735e + depends: + - libstdcxx 14.1.0 hc0a3c3a_1 + license: GPL-3.0-only WITH GCC-exception-3.1 + license_family: GPL + purls: [] + size: 52219 + timestamp: 1724801897766 +- kind: conda + name: libstdcxx-ng + version: 14.1.0 + build: hc0a3c3a_0 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-ng-14.1.0-hc0a3c3a_0.conda + sha256: 88c42b388202ffe16adaa337e36cf5022c63cf09b0405cf06fc6aeacccbe6146 + md5: 1cb187a157136398ddbaae90713e2498 + depends: + - libgcc-ng 14.1.0 h77fa898_0 + license: GPL-3.0-only WITH GCC-exception-3.1 + license_family: GPL + purls: [] + size: 3881307 + timestamp: 1719538923443 +- kind: conda + name: libtiff + version: 4.6.0 + build: h46a8edc_4 + build_number: 4 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libtiff-4.6.0-h46a8edc_4.conda + sha256: 8d42dd7c6602187d4351fc3b69ff526f1c262bfcbfd6ce05d06008f4e0b99b58 + md5: a7e3a62981350e232e0e7345b5aea580 + depends: + - __glibc >=2.17,<3.0.a0 + - lerc >=4.0.0,<5.0a0 + - libdeflate >=1.21,<1.22.0a0 + - libgcc-ng >=12 + - libjpeg-turbo >=3.0.0,<4.0a0 + - libstdcxx-ng >=12 + - libwebp-base >=1.4.0,<2.0a0 + - libzlib >=1.3.1,<2.0a0 + - xz >=5.2.6,<6.0a0 + - zstd >=1.5.6,<1.6.0a0 + license: HPND + purls: [] + size: 282236 + timestamp: 1722871642189 +- kind: conda + name: libuuid + version: 2.38.1 + build: h0b41bf4_0 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libuuid-2.38.1-h0b41bf4_0.conda + sha256: 787eb542f055a2b3de553614b25f09eefb0a0931b0c87dbcce6efdfd92f04f18 + md5: 40b61aab5c7ba9ff276c41cfffe6b80b + depends: + - libgcc-ng >=12 + license: BSD-3-Clause + license_family: BSD + purls: [] + size: 33601 + timestamp: 1680112270483 +- kind: conda + name: libwebp-base + version: 1.4.0 + build: hd590300_0 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libwebp-base-1.4.0-hd590300_0.conda + sha256: 49bc5f6b1e11cb2babf2a2a731d1a680a5e08a858280876a779dbda06c78c35f + md5: b26e8aa824079e1be0294e7152ca4559 + depends: + - libgcc-ng >=12 + constrains: + - libwebp 1.4.0 + license: BSD-3-Clause + license_family: BSD + purls: [] + size: 438953 + timestamp: 1713199854503 +- kind: conda + name: libxcb + version: '1.16' + build: hb9d3cd8_1 + build_number: 1 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libxcb-1.16-hb9d3cd8_1.conda + sha256: 33aa5fc997468b07ab3020b142eacc5479e4e2c2169f467b20ab220f33dd08de + md5: 3601598f0db0470af28985e3e7ad0158 + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc-ng >=13 + - pthread-stubs + - xorg-libxau >=1.0.11,<2.0a0 + - xorg-libxdmcp + license: MIT + license_family: MIT + purls: [] + size: 395570 + timestamp: 1724419104778 +- kind: conda + name: libxcrypt + version: 4.4.36 + build: hd590300_1 + build_number: 1 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libxcrypt-4.4.36-hd590300_1.conda + sha256: 6ae68e0b86423ef188196fff6207ed0c8195dd84273cb5623b85aa08033a410c + md5: 5aa797f8787fe7a17d1b0821485b5adc + depends: + - libgcc-ng >=12 + license: LGPL-2.1-or-later + purls: [] + size: 100393 + timestamp: 1702724383534 +- kind: conda + name: libzlib + version: 1.3.1 + build: h4ab18f5_1 + build_number: 1 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libzlib-1.3.1-h4ab18f5_1.conda + sha256: adf6096f98b537a11ae3729eaa642b0811478f0ea0402ca67b5108fe2cb0010d + md5: 57d7dc60e9325e3de37ff8dffd18e814 + depends: + - libgcc-ng >=12 + constrains: + - zlib 1.3.1 *_1 + license: Zlib + license_family: Other + purls: [] + size: 61574 + timestamp: 1716874187109 +- kind: pypi + name: markdown-it-py + version: 3.0.0 + url: https://files.pythonhosted.org/packages/42/d7/1ec15b46af6af88f19b8e5ffea08fa375d433c998b8a7639e76935c14f1f/markdown_it_py-3.0.0-py3-none-any.whl + sha256: 355216845c60bd96232cd8d8c40e8f9765cc86f46880e43a8fd22dc1a1a8cab1 + requires_dist: + - mdurl~=0.1 + - psutil ; extra == 'benchmarking' + - pytest ; extra == 'benchmarking' + - pytest-benchmark ; extra == 'benchmarking' + - pre-commit~=3.0 ; extra == 'code-style' + - commonmark~=0.9 ; extra == 'compare' + - markdown~=3.4 ; extra == 'compare' + - mistletoe~=1.0 ; extra == 'compare' + - mistune~=2.0 ; extra == 'compare' + - panflute~=2.3 ; extra == 'compare' + - linkify-it-py>=1,<3 ; extra == 'linkify' + - mdit-py-plugins ; extra == 'plugins' + - gprof2dot ; extra == 'profiling' + - mdit-py-plugins ; extra == 'rtd' + - myst-parser ; extra == 'rtd' + - pyyaml ; extra == 'rtd' + - sphinx ; extra == 'rtd' + - sphinx-copybutton ; extra == 'rtd' + - sphinx-design ; extra == 'rtd' + - sphinx-book-theme ; extra == 'rtd' + - jupyter-sphinx ; extra == 'rtd' + - coverage ; extra == 'testing' + - pytest ; extra == 'testing' + - pytest-cov ; extra == 'testing' + - pytest-regressions ; extra == 'testing' + requires_python: '>=3.8' +- kind: conda + name: markupsafe + version: 2.1.5 + build: py312h98912ed_0 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/markupsafe-2.1.5-py312h98912ed_0.conda + sha256: 273d8efd6c089c534ccbede566394c0ac1e265bfe5d89fe76e80332f3d75a636 + md5: 6ff0b9582da2d4a74a1f9ae1f9ce2af6 + depends: + - libgcc-ng >=12 + - python >=3.12,<3.13.0a0 + - python_abi 3.12.* *_cp312 + constrains: + - jinja2 >=3.0.0 + license: BSD-3-Clause + license_family: BSD + purls: + - pkg:pypi/markupsafe?source=hash-mapping + size: 26685 + timestamp: 1706900070330 +- kind: conda + name: matplotlib-base + version: 3.9.2 + build: py312h854627b_0 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/matplotlib-base-3.9.2-py312h854627b_0.conda + sha256: ae075b97ce43439a7a914bf478564927a3dfe00724fb69555947cc3bae737a11 + md5: a57b0ae7c0aac603839a4e83a3e997d6 + depends: + - __glibc >=2.17,<3.0.a0 + - certifi >=2020.06.20 + - contourpy >=1.0.1 + - cycler >=0.10 + - fonttools >=4.22.0 + - freetype >=2.12.1,<3.0a0 + - kiwisolver >=1.3.1 + - libgcc-ng >=12 + - libstdcxx-ng >=12 + - numpy >=1.19,<3 + - numpy >=1.23 + - packaging >=20.0 + - pillow >=8 + - pyparsing >=2.3.1 + - python >=3.12,<3.13.0a0 + - python-dateutil >=2.7 + - python_abi 3.12.* *_cp312 + - qhull >=2020.2,<2020.3.0a0 + - tk >=8.6.13,<8.7.0a0 + license: PSF-2.0 + license_family: PSF + purls: + - pkg:pypi/matplotlib?source=hash-mapping + size: 7904910 + timestamp: 1723759675614 +- kind: conda + name: matplotlib-inline + version: 0.1.7 + build: pyhd8ed1ab_0 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/matplotlib-inline-0.1.7-pyhd8ed1ab_0.conda + sha256: 7ea68676ea35fbb095420bbcc1c82c4767b8be7bb56abb6989b7f89d957a3bab + md5: 779345c95648be40d22aaa89de7d4254 + depends: + - python >=3.6 + - traitlets + license: BSD-3-Clause + license_family: BSD + purls: + - pkg:pypi/matplotlib-inline?source=hash-mapping + size: 14599 + timestamp: 1713250613726 +- kind: pypi + name: mdit-py-plugins + version: 0.4.1 + url: https://files.pythonhosted.org/packages/ef/f7/8a4dcea720a581e69ac8c5a38524baf0e3e2bb5f3819a9ff661464fe7d10/mdit_py_plugins-0.4.1-py3-none-any.whl + sha256: 1020dfe4e6bfc2c79fb49ae4e3f5b297f5ccd20f010187acc52af2921e27dc6a + requires_dist: + - markdown-it-py>=1.0.0,<4.0.0 + - pre-commit ; extra == 'code-style' + - myst-parser ; extra == 'rtd' + - sphinx-book-theme ; extra == 'rtd' + - coverage ; extra == 'testing' + - pytest ; extra == 'testing' + - pytest-cov ; extra == 'testing' + - pytest-regressions ; extra == 'testing' + requires_python: '>=3.8' +- kind: pypi + name: mdurl + version: 0.1.2 + url: https://files.pythonhosted.org/packages/b3/38/89ba8ad64ae25be8de66a6d463314cf1eb366222074cfda9ee839c56a4b4/mdurl-0.1.2-py3-none-any.whl + sha256: 84008a41e51615a49fc9966191ff91509e3c40b939176e643fd50a5c2196b8f8 + requires_python: '>=3.7' +- kind: conda + name: mistune + version: 3.0.2 + build: pyhd8ed1ab_0 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/mistune-3.0.2-pyhd8ed1ab_0.conda + sha256: f95cb70007e3cc2ba44e17c29a056b499e6dadf08746706d0c817c8e2f47e05c + md5: 5cbee699846772cc939bef23a0d524ed + depends: + - python >=3.7 + license: BSD-3-Clause + license_family: BSD + purls: + - pkg:pypi/mistune?source=hash-mapping + size: 66022 + timestamp: 1698947249750 +- kind: conda + name: munkres + version: 1.1.4 + build: pyh9f0ad1d_0 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/munkres-1.1.4-pyh9f0ad1d_0.tar.bz2 + sha256: f86fb22b58e93d04b6f25e0d811b56797689d598788b59dcb47f59045b568306 + md5: 2ba8498c1018c1e9c61eb99b973dfe19 + depends: + - python + license: Apache-2.0 + license_family: Apache + purls: + - pkg:pypi/munkres?source=hash-mapping + size: 12452 + timestamp: 1600387789153 +- kind: pypi + name: myst-nb + version: 1.1.1 + url: https://files.pythonhosted.org/packages/af/42/814f84c78fa45cbd03fea27b10f4edf303ccf3890e377d3cda6d7ec729c3/myst_nb-1.1.1-py3-none-any.whl + sha256: 8b8f9085287d948eef46cb3764aafc21915e0e981882b8c742719f5b1a84c36f + requires_dist: + - importlib-metadata + - ipython + - jupyter-cache>=0.5 + - nbclient + - myst-parser>=1.0.0 + - nbformat>=5.0 + - pyyaml + - sphinx>=5 + - typing-extensions + - ipykernel + - pre-commit ; extra == 'code-style' + - alabaster ; extra == 'rtd' + - altair ; extra == 'rtd' + - bokeh ; extra == 'rtd' + - coconut>=1.4.3,<3.1.0 ; extra == 'rtd' + - ipykernel>=5.5,<7.0 ; extra == 'rtd' + - ipywidgets ; extra == 'rtd' + - jupytext>=1.11.2,<1.16.0 ; extra == 'rtd' + - matplotlib ; extra == 'rtd' + - numpy ; extra == 'rtd' + - pandas ; extra == 'rtd' + - plotly ; extra == 'rtd' + - sphinx-book-theme>=0.3 ; extra == 'rtd' + - sphinx-copybutton ; extra == 'rtd' + - sphinx-design~=0.4.0 ; extra == 'rtd' + - sphinxcontrib-bibtex ; extra == 'rtd' + - sympy ; extra == 'rtd' + - coverage>=6.4,<8.0 ; extra == 'testing' + - beautifulsoup4 ; extra == 'testing' + - ipykernel>=5.5,<7.0 ; extra == 'testing' + - ipython!=8.1.0,<8.17 ; extra == 'testing' + - ipywidgets>=8 ; extra == 'testing' + - jupytext>=1.11.2,<1.16.0 ; extra == 'testing' + - matplotlib==3.7.* ; extra == 'testing' + - nbdime ; extra == 'testing' + - numpy ; extra == 'testing' + - pandas==1.5.* ; extra == 'testing' + - pyarrow ; extra == 'testing' + - pytest~=7.1 ; extra == 'testing' + - pytest-cov>=3,<5 ; extra == 'testing' + - pytest-regressions ; extra == 'testing' + - pytest-param-files~=0.3.3 ; extra == 'testing' + - sympy>=1.10.1 ; extra == 'testing' + requires_python: '>=3.9' +- kind: pypi + name: myst-parser + version: 4.0.0 + url: https://files.pythonhosted.org/packages/ca/b4/b036f8fdb667587bb37df29dc6644681dd78b7a2a6321a34684b79412b28/myst_parser-4.0.0-py3-none-any.whl + sha256: b9317997552424448c6096c2558872fdb6f81d3ecb3a40ce84a7518798f3f28d + requires_dist: + - docutils>=0.19,<0.22 + - jinja2 + - markdown-it-py~=3.0 + - mdit-py-plugins~=0.4,>=0.4.1 + - pyyaml + - sphinx>=7,<9 + - pre-commit~=3.0 ; extra == 'code-style' + - linkify-it-py~=2.0 ; extra == 'linkify' + - sphinx>=7 ; extra == 'rtd' + - ipython ; extra == 'rtd' + - sphinx-book-theme~=1.1 ; extra == 'rtd' + - sphinx-design ; extra == 'rtd' + - sphinx-copybutton ; extra == 'rtd' + - sphinxext-rediraffe~=0.2.7 ; extra == 'rtd' + - sphinxext-opengraph~=0.9.0 ; extra == 'rtd' + - sphinx-pyscript ; extra == 'rtd' + - sphinx-tippy>=0.4.3 ; extra == 'rtd' + - sphinx-autodoc2~=0.5.0 ; extra == 'rtd' + - sphinx-togglebutton ; extra == 'rtd' + - beautifulsoup4 ; extra == 'testing' + - coverage[toml] ; extra == 'testing' + - defusedxml ; extra == 'testing' + - pytest>=8,<9 ; extra == 'testing' + - pytest-cov ; extra == 'testing' + - pytest-regressions ; extra == 'testing' + - pytest-param-files~=0.6.0 ; extra == 'testing' + - sphinx-pytest ; extra == 'testing' + - pygments ; extra == 'testing-docutils' + - pytest>=8,<9 ; extra == 'testing-docutils' + - pytest-param-files~=0.6.0 ; extra == 'testing-docutils' + requires_python: '>=3.10' +- kind: conda + name: nbclient + version: 0.10.0 + build: pyhd8ed1ab_0 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/nbclient-0.10.0-pyhd8ed1ab_0.conda + sha256: 589d72d36d61a23b39d6fff2c488f93e29e20de4fc6f5d315b5f2c16e81028bf + md5: 15b51397e0fe8ea7d7da60d83eb76ebc + depends: + - jupyter_client >=6.1.12 + - jupyter_core >=4.12,!=5.0.* + - nbformat >=5.1 + - python >=3.8 + - traitlets >=5.4 + license: BSD-3-Clause + license_family: BSD + purls: + - pkg:pypi/nbclient?source=hash-mapping + size: 27851 + timestamp: 1710317767117 +- kind: conda + name: nbconvert-core + version: 7.16.4 + build: pyhd8ed1ab_1 + build_number: 1 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/nbconvert-core-7.16.4-pyhd8ed1ab_1.conda + sha256: 074d858c5808e0a832acc0da37cd70de1565e8d6e17a62d5a11b3902b5e78319 + md5: e2d2abb421c13456a9a9f80272fdf543 + depends: + - beautifulsoup4 + - bleach + - defusedxml + - entrypoints >=0.2.2 + - jinja2 >=3.0 + - jupyter_core >=4.7 + - jupyterlab_pygments + - markupsafe >=2.0 + - mistune >=2.0.3,<4 + - nbclient >=0.5.0 + - nbformat >=5.1 + - packaging + - pandocfilters >=1.4.1 + - pygments >=2.4.1 + - python >=3.8 + - tinycss2 + - traitlets >=5.0 + constrains: + - nbconvert =7.16.4=*_1 + - pandoc >=2.9.2,<4.0.0 + license: BSD-3-Clause + license_family: BSD + purls: + - pkg:pypi/nbconvert?source=hash-mapping + size: 189599 + timestamp: 1718135529468 +- kind: conda + name: nbformat + version: 5.10.4 + build: pyhd8ed1ab_0 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/nbformat-5.10.4-pyhd8ed1ab_0.conda + sha256: 36fe73da4d37bc7ac2d1540526ecd294fbd09acda04e096181ab8f1ccd2b464c + md5: 0b57b5368ab7fc7cdc9e3511fa867214 + depends: + - jsonschema >=2.6 + - jupyter_core >=4.12,!=5.0.* + - python >=3.8 + - python-fastjsonschema >=2.15 + - traitlets >=5.1 + license: BSD-3-Clause + license_family: BSD + purls: + - pkg:pypi/nbformat?source=hash-mapping + size: 101232 + timestamp: 1712239122969 +- kind: conda + name: ncurses + version: '6.5' + build: he02047a_1 + build_number: 1 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/ncurses-6.5-he02047a_1.conda + sha256: 6a1d5d8634c1a07913f1c525db6455918cbc589d745fac46d9d6e30340c8731a + md5: 70caf8bb6cf39a0b6b7efc885f51c0fe + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc-ng >=12 + license: X11 AND BSD-3-Clause + purls: [] + size: 889086 + timestamp: 1724658547447 +- kind: conda + name: nest-asyncio + version: 1.6.0 + build: pyhd8ed1ab_0 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/nest-asyncio-1.6.0-pyhd8ed1ab_0.conda + sha256: 30db21d1f7e59b3408b831a7e0417b83b53ee6223afae56482c5f26da3ceb49a + md5: 6598c056f64dc8800d40add25e4e2c34 + depends: + - python >=3.5 + license: BSD-2-Clause + license_family: BSD + purls: + - pkg:pypi/nest-asyncio?source=hash-mapping + size: 11638 + timestamp: 1705850780510 +- kind: conda + name: notebook + version: 7.2.2 + build: pyhd8ed1ab_0 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/notebook-7.2.2-pyhd8ed1ab_0.conda + sha256: 613242d5151a4d70438bb2d65041c509e4376b7e18c06c3795c52a18176e41dc + md5: c4d5a58f43ce9ffa430e6ecad6c30a42 + depends: + - jupyter_server >=2.4.0,<3 + - jupyterlab >=4.2.0,<4.3 + - jupyterlab_server >=2.27.1,<3 + - notebook-shim >=0.2,<0.3 + - python >=3.8 + - tornado >=6.2.0 + license: BSD-3-Clause + license_family: BSD + purls: + - pkg:pypi/notebook?source=hash-mapping + size: 3904930 + timestamp: 1724861465900 +- kind: conda + name: notebook-shim + version: 0.2.4 + build: pyhd8ed1ab_0 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/notebook-shim-0.2.4-pyhd8ed1ab_0.conda + sha256: 9b5fdef9ebe89222baa9da2796ebe7bc02ec6c5a1f61327b651d6b92cf9a0230 + md5: 3d85618e2c97ab896b5b5e298d32b5b3 + depends: + - jupyter_server >=1.8,<3 + - python >=3.7 + license: BSD-3-Clause + license_family: BSD + purls: + - pkg:pypi/notebook-shim?source=hash-mapping + size: 16880 + timestamp: 1707957948029 +- kind: conda + name: numpy + version: 2.1.0 + build: py312h1103770_0 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/numpy-2.1.0-py312h1103770_0.conda + sha256: 3b6412f5d6682a43e62d686e99e9a160d6395b89b4776cd5bced197032acb41a + md5: 9709027e8a51a3476db65a3c0cf806c2 + depends: + - __glibc >=2.17,<3.0.a0 + - libblas >=3.9.0,<4.0a0 + - libcblas >=3.9.0,<4.0a0 + - libgcc-ng >=12 + - liblapack >=3.9.0,<4.0a0 + - libstdcxx-ng >=12 + - python >=3.12,<3.13.0a0 + - python_abi 3.12.* *_cp312 + constrains: + - numpy-base <0a0 + license: BSD-3-Clause + license_family: BSD + purls: + - pkg:pypi/numpy?source=hash-mapping + size: 8365718 + timestamp: 1724035279557 +- kind: conda + name: openjpeg + version: 2.5.2 + build: h488ebb8_0 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/openjpeg-2.5.2-h488ebb8_0.conda + sha256: 5600a0b82df042bd27d01e4e687187411561dfc11cc05143a08ce29b64bf2af2 + md5: 7f2e286780f072ed750df46dc2631138 + depends: + - libgcc-ng >=12 + - libpng >=1.6.43,<1.7.0a0 + - libstdcxx-ng >=12 + - libtiff >=4.6.0,<4.7.0a0 + - libzlib >=1.2.13,<2.0.0a0 + license: BSD-2-Clause + license_family: BSD + purls: [] + size: 341592 + timestamp: 1709159244431 +- kind: conda + name: openssl + version: 3.3.1 + build: hb9d3cd8_3 + build_number: 3 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/openssl-3.3.1-hb9d3cd8_3.conda + sha256: 9e27441b273a7cf9071f6e88ba9ad565d926d8083b154c64a74b99fba167b137 + md5: 6c566a46baae794daf34775d41eb180a + depends: + - __glibc >=2.17,<3.0.a0 + - ca-certificates + - libgcc-ng >=13 + license: Apache-2.0 + license_family: Apache + purls: [] + size: 2892042 + timestamp: 1724402701933 +- kind: conda + name: overrides + version: 7.7.0 + build: pyhd8ed1ab_0 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/overrides-7.7.0-pyhd8ed1ab_0.conda + sha256: 5e238e5e646414d517a13f6786c7227206ace58271e3ef63f6adca4d6a4c2839 + md5: 24fba5a9d161ad8103d4e84c0e1a3ed4 + depends: + - python >=3.6 + - typing_utils + license: Apache-2.0 + license_family: APACHE + purls: + - pkg:pypi/overrides?source=hash-mapping + size: 30232 + timestamp: 1706394723472 +- kind: conda + name: packaging + version: '24.1' + build: pyhd8ed1ab_0 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/packaging-24.1-pyhd8ed1ab_0.conda + sha256: 36aca948219e2c9fdd6d80728bcc657519e02f06c2703d8db3446aec67f51d81 + md5: cbe1bb1f21567018ce595d9c2be0f0db + depends: + - python >=3.8 + license: Apache-2.0 + license_family: APACHE + purls: + - pkg:pypi/packaging?source=hash-mapping + size: 50290 + timestamp: 1718189540074 +- kind: conda + name: pandocfilters + version: 1.5.0 + build: pyhd8ed1ab_0 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/pandocfilters-1.5.0-pyhd8ed1ab_0.tar.bz2 + sha256: 2bb9ba9857f4774b85900c2562f7e711d08dd48e2add9bee4e1612fbee27e16f + md5: 457c2c8c08e54905d6954e79cb5b5db9 + depends: + - python !=3.0,!=3.1,!=3.2,!=3.3 + license: BSD-3-Clause + license_family: BSD + purls: + - pkg:pypi/pandocfilters?source=hash-mapping + size: 11627 + timestamp: 1631603397334 +- kind: conda + name: parso + version: 0.8.4 + build: pyhd8ed1ab_0 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/parso-0.8.4-pyhd8ed1ab_0.conda + sha256: bfe404eebb930cc41782d34f8fc04c0388ea692eeebe2c5fc28df8ec8d4d61ae + md5: 81534b420deb77da8833f2289b8d47ac + depends: + - python >=3.6 + license: MIT + license_family: MIT + purls: + - pkg:pypi/parso?source=hash-mapping + size: 75191 + timestamp: 1712320447201 +- kind: conda + name: pexpect + version: 4.9.0 + build: pyhd8ed1ab_0 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/pexpect-4.9.0-pyhd8ed1ab_0.conda + sha256: 90a09d134a4a43911b716d4d6eb9d169238aff2349056f7323d9db613812667e + md5: 629f3203c99b32e0988910c93e77f3b6 + depends: + - ptyprocess >=0.5 + - python >=3.7 + license: ISC + purls: + - pkg:pypi/pexpect?source=hash-mapping + size: 53600 + timestamp: 1706113273252 +- kind: conda + name: pickleshare + version: 0.7.5 + build: py_1003 + build_number: 1003 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/pickleshare-0.7.5-py_1003.tar.bz2 + sha256: a1ed1a094dd0d1b94a09ed85c283a0eb28943f2e6f22161fb45e128d35229738 + md5: 415f0ebb6198cc2801c73438a9fb5761 + depends: + - python >=3 + license: MIT + license_family: MIT + purls: + - pkg:pypi/pickleshare?source=hash-mapping + size: 9332 + timestamp: 1602536313357 +- kind: conda + name: pillow + version: 10.4.0 + build: py312h287a98d_0 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/pillow-10.4.0-py312h287a98d_0.conda + sha256: f3bca9472702f32bf85196efbf013e9dabe130776e76c7f81062f18682f33a05 + md5: 59ea71eed98aee0bebbbdd3b118167c7 + depends: + - freetype >=2.12.1,<3.0a0 + - lcms2 >=2.16,<3.0a0 + - libgcc-ng >=12 + - libjpeg-turbo >=3.0.0,<4.0a0 + - libtiff >=4.6.0,<4.7.0a0 + - libwebp-base >=1.4.0,<2.0a0 + - libxcb >=1.16,<1.17.0a0 + - libzlib >=1.3.1,<2.0a0 + - openjpeg >=2.5.2,<3.0a0 + - python >=3.12,<3.13.0a0 + - python_abi 3.12.* *_cp312 + - tk >=8.6.13,<8.7.0a0 + license: HPND + purls: + - pkg:pypi/pillow?source=hash-mapping + size: 42068301 + timestamp: 1719903698022 +- kind: conda + name: pkginfo + version: 1.11.1 + build: pyhd8ed1ab_0 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/pkginfo-1.11.1-pyhd8ed1ab_0.conda + sha256: 8eb347932cd42fffe9370e82a31cfbabc40b2149c2b049cf087d4a78f5b3b53c + md5: 6a3e4fb1396215d0d88b3cc2f09de412 + depends: + - python >=3.8 + license: MIT + license_family: MIT + purls: + - pkg:pypi/pkginfo?source=hash-mapping + size: 29692 + timestamp: 1717941209022 +- kind: conda + name: pkgutil-resolve-name + version: 1.3.10 + build: pyhd8ed1ab_1 + build_number: 1 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/pkgutil-resolve-name-1.3.10-pyhd8ed1ab_1.conda + sha256: fecf95377134b0e8944762d92ecf7b0149c07d8186fb5db583125a2705c7ea0a + md5: 405678b942f2481cecdb3e010f4925d9 + depends: + - python >=3.6 + license: MIT AND PSF-2.0 + purls: + - pkg:pypi/pkgutil-resolve-name?source=hash-mapping + size: 10778 + timestamp: 1694617398467 +- kind: conda + name: platformdirs + version: 4.2.2 + build: pyhd8ed1ab_0 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.2.2-pyhd8ed1ab_0.conda + sha256: adc59384cf0b2fc6dc7362840151e8cb076349197a38f7230278252698a88442 + md5: 6f6cf28bf8e021933869bae3f84b8fc9 + depends: + - python >=3.8 + license: MIT + license_family: MIT + purls: + - pkg:pypi/platformdirs?source=hash-mapping + size: 20572 + timestamp: 1715777739019 +- kind: conda + name: prometheus_client + version: 0.20.0 + build: pyhd8ed1ab_0 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/prometheus_client-0.20.0-pyhd8ed1ab_0.conda + sha256: 757cd91d01c2e0b64fadf6bc9a11f558cf7638d897dfbaf7415ddf324d5405c9 + md5: 9a19b94034dd3abb2b348c8b93388035 + depends: + - python >=3.8 + license: Apache-2.0 + license_family: Apache + purls: + - pkg:pypi/prometheus-client?source=hash-mapping + size: 48913 + timestamp: 1707932844383 +- kind: conda + name: prompt-toolkit + version: 3.0.47 + build: pyha770c72_0 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/prompt-toolkit-3.0.47-pyha770c72_0.conda + sha256: d93ac5853e398aaa10f0dd7addd64b411f94ace1f9104d619cd250e19a5ac5b4 + md5: 1247c861065d227781231950e14fe817 + depends: + - python >=3.7 + - wcwidth + constrains: + - prompt_toolkit 3.0.47 + license: BSD-3-Clause + license_family: BSD + purls: + - pkg:pypi/prompt-toolkit?source=hash-mapping + size: 270710 + timestamp: 1718048095491 +- kind: conda + name: psutil + version: 6.0.0 + build: py312h9a8786e_0 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/psutil-6.0.0-py312h9a8786e_0.conda + sha256: d629363515df957507411fd24db2a0635ac893e5d60b2ee2f656b53be9c70b1d + md5: 1aeffa86c55972ca4e88ac843eccedf2 + depends: + - libgcc-ng >=12 + - python >=3.12,<3.13.0a0 + - python_abi 3.12.* *_cp312 + license: BSD-3-Clause + license_family: BSD + purls: + - pkg:pypi/psutil?source=hash-mapping + size: 493452 + timestamp: 1719274737481 +- kind: conda + name: pthread-stubs + version: '0.4' + build: h36c2ea0_1001 + build_number: 1001 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/pthread-stubs-0.4-h36c2ea0_1001.tar.bz2 + sha256: 67c84822f87b641d89df09758da498b2d4558d47b920fd1d3fe6d3a871e000ff + md5: 22dad4df6e8630e8dff2428f6f6a7036 + depends: + - libgcc-ng >=7.5.0 + license: MIT + license_family: MIT + purls: [] + size: 5625 + timestamp: 1606147468727 +- kind: conda + name: ptyprocess + version: 0.7.0 + build: pyhd3deb0d_0 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/ptyprocess-0.7.0-pyhd3deb0d_0.tar.bz2 + sha256: fb31e006a25eb2e18f3440eb8d17be44c8ccfae559499199f73584566d0a444a + md5: 359eeb6536da0e687af562ed265ec263 + depends: + - python + license: ISC + purls: + - pkg:pypi/ptyprocess?source=hash-mapping + size: 16546 + timestamp: 1609419417991 +- kind: conda + name: pure_eval + version: 0.2.3 + build: pyhd8ed1ab_0 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/pure_eval-0.2.3-pyhd8ed1ab_0.conda + sha256: dcfcb3cee1ae0a89729601582cc3edea20ba13c9493967a03a693c67567af0c8 + md5: 0f051f09d992e0d08941706ad519ee0e + depends: + - python >=3.5 + license: MIT + license_family: MIT + purls: + - pkg:pypi/pure-eval?source=hash-mapping + size: 16551 + timestamp: 1721585805256 +- kind: conda + name: pycparser + version: '2.22' + build: pyhd8ed1ab_0 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/pycparser-2.22-pyhd8ed1ab_0.conda + sha256: 406001ebf017688b1a1554b49127ca3a4ac4626ec0fd51dc75ffa4415b720b64 + md5: 844d9eb3b43095b031874477f7d70088 + depends: + - python >=3.8 + license: BSD-3-Clause + license_family: BSD + purls: + - pkg:pypi/pycparser?source=hash-mapping + size: 105098 + timestamp: 1711811634025 +- kind: pypi + name: pydata-sphinx-theme + version: 0.15.4 + url: https://files.pythonhosted.org/packages/e7/d3/c622950d87a2ffd1654208733b5bd1c5645930014abed8f4c0d74863988b/pydata_sphinx_theme-0.15.4-py3-none-any.whl + sha256: 2136ad0e9500d0949f96167e63f3e298620040aea8f9c74621959eda5d4cf8e6 + requires_dist: + - sphinx>=5 + - beautifulsoup4 + - docutils!=0.17.0 + - packaging + - babel + - pygments>=2.7 + - accessible-pygments + - typing-extensions + - numpydoc ; extra == 'doc' + - linkify-it-py ; extra == 'doc' + - rich ; extra == 'doc' + - sphinxext-rediraffe ; extra == 'doc' + - sphinx-sitemap ; extra == 'doc' + - sphinx-autoapi>=3.0.0 ; extra == 'doc' + - myst-parser ; extra == 'doc' + - ablog>=0.11.8 ; extra == 'doc' + - jupyter-sphinx ; extra == 'doc' + - pandas ; extra == 'doc' + - plotly ; extra == 'doc' + - matplotlib ; extra == 'doc' + - numpy ; extra == 'doc' + - xarray ; extra == 'doc' + - sphinx-copybutton ; extra == 'doc' + - sphinx-design ; extra == 'doc' + - sphinx-togglebutton ; extra == 'doc' + - jupyterlite-sphinx ; extra == 'doc' + - sphinxcontrib-youtube>=1.4.1 ; extra == 'doc' + - sphinx-favicon>=1.0.1 ; extra == 'doc' + - ipykernel ; extra == 'doc' + - nbsphinx ; extra == 'doc' + - ipyleaflet ; extra == 'doc' + - colorama ; extra == 'doc' + - ipywidgets ; extra == 'doc' + - graphviz ; extra == 'doc' + - pytest ; extra == 'test' + - pytest-cov ; extra == 'test' + - pytest-regressions ; extra == 'test' + - sphinx[test] ; extra == 'test' + - pyyaml ; extra == 'dev' + - pre-commit ; extra == 'dev' + - pydata-sphinx-theme[doc,test] ; extra == 'dev' + - tox ; extra == 'dev' + - pandoc ; extra == 'dev' + - sphinx-theme-builder[cli] ; extra == 'dev' + - pytest-playwright ; extra == 'a11y' + - babel ; extra == 'i18n' + - jinja2 ; extra == 'i18n' + requires_python: '>=3.9' +- kind: conda + name: pygments + version: 2.18.0 + build: pyhd8ed1ab_0 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/pygments-2.18.0-pyhd8ed1ab_0.conda + sha256: 78267adf4e76d0d64ea2ffab008c501156c108bb08fecb703816fb63e279780b + md5: b7f5c092b8f9800150d998a71b76d5a1 + depends: + - python >=3.8 + license: BSD-2-Clause + license_family: BSD + purls: + - pkg:pypi/pygments?source=hash-mapping + size: 879295 + timestamp: 1714846885370 +- kind: conda + name: pyparsing + version: 3.1.4 + build: pyhd8ed1ab_0 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/pyparsing-3.1.4-pyhd8ed1ab_0.conda + sha256: 8714a83f1aeac278b3eb33c7cb880c95c9a5924e7a5feeb9e87e7d0837afa085 + md5: 4d91352a50949d049cf9714c8563d433 + depends: + - python >=3.6 + license: MIT + license_family: MIT + purls: + - pkg:pypi/pyparsing?source=hash-mapping + size: 90129 + timestamp: 1724616224956 +- kind: conda + name: pysocks + version: 1.7.1 + build: pyha2e5f31_6 + build_number: 6 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/pysocks-1.7.1-pyha2e5f31_6.tar.bz2 + sha256: a42f826e958a8d22e65b3394f437af7332610e43ee313393d1cf143f0a2d274b + md5: 2a7de29fb590ca14b5243c4c812c8025 + depends: + - __unix + - python >=3.8 + license: BSD-3-Clause + license_family: BSD + purls: + - pkg:pypi/pysocks?source=hash-mapping + size: 18981 + timestamp: 1661604969727 +- kind: conda + name: python + version: 3.12.5 + build: h2ad013b_0_cpython + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/python-3.12.5-h2ad013b_0_cpython.conda + sha256: e2aad83838988725d4ffba4e9717b9328054fd18a668cff3377e0c50f109e8bd + md5: 9c56c4df45f6571b13111d8df2448692 + depends: + - __glibc >=2.17,<3.0.a0 + - bzip2 >=1.0.8,<2.0a0 + - ld_impl_linux-64 >=2.36.1 + - libexpat >=2.6.2,<3.0a0 + - libffi >=3.4,<4.0a0 + - libgcc-ng >=12 + - libnsl >=2.0.1,<2.1.0a0 + - libsqlite >=3.46.0,<4.0a0 + - libuuid >=2.38.1,<3.0a0 + - libxcrypt >=4.4.36 + - libzlib >=1.3.1,<2.0a0 + - ncurses >=6.5,<7.0a0 + - openssl >=3.3.1,<4.0a0 + - readline >=8.2,<9.0a0 + - tk >=8.6.13,<8.7.0a0 + - tzdata + - xz >=5.2.6,<6.0a0 + constrains: + - python_abi 3.12.* *_cp312 + license: Python-2.0 + purls: [] + size: 31663253 + timestamp: 1723143721353 +- kind: conda + name: python-dateutil + version: 2.9.0 + build: pyhd8ed1ab_0 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/python-dateutil-2.9.0-pyhd8ed1ab_0.conda + sha256: f3ceef02ac164a8d3a080d0d32f8e2ebe10dd29e3a685d240e38b3599e146320 + md5: 2cf4264fffb9e6eff6031c5b6884d61c + depends: + - python >=3.7 + - six >=1.5 + license: Apache-2.0 + license_family: APACHE + purls: + - pkg:pypi/python-dateutil?source=hash-mapping + size: 222742 + timestamp: 1709299922152 +- kind: conda + name: python-fastjsonschema + version: 2.20.0 + build: pyhd8ed1ab_0 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/python-fastjsonschema-2.20.0-pyhd8ed1ab_0.conda + sha256: 7d8c931b89c9980434986b4deb22c2917b58d9936c3974139b9c10ae86fdfe60 + md5: b98d2018c01ce9980c03ee2850690fab + depends: + - python >=3.3 + license: BSD-3-Clause + license_family: BSD + purls: + - pkg:pypi/fastjsonschema?source=hash-mapping + size: 226165 + timestamp: 1718477110630 +- kind: conda + name: python-json-logger + version: 2.0.7 + build: pyhd8ed1ab_0 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/python-json-logger-2.0.7-pyhd8ed1ab_0.conda + sha256: 4790787fe1f4e8da616edca4acf6a4f8ed4e7c6967aa31b920208fc8f95efcca + md5: a61bf9ec79426938ff785eb69dbb1960 + depends: + - python >=3.6 + license: BSD-2-Clause + license_family: BSD + purls: + - pkg:pypi/python-json-logger?source=hash-mapping + size: 13383 + timestamp: 1677079727691 +- kind: conda + name: python_abi + version: '3.12' + build: 5_cp312 + build_number: 5 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/python_abi-3.12-5_cp312.conda + sha256: d10e93d759931ffb6372b45d65ff34d95c6000c61a07e298d162a3bc2accebb0 + md5: 0424ae29b104430108f5218a66db7260 + constrains: + - python 3.12.* *_cpython + license: BSD-3-Clause + license_family: BSD + purls: [] + size: 6238 + timestamp: 1723823388266 +- kind: conda + name: pytz + version: '2024.1' + build: pyhd8ed1ab_0 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/pytz-2024.1-pyhd8ed1ab_0.conda + sha256: 1a7d6b233f7e6e3bbcbad054c8fd51e690a67b129a899a056a5e45dd9f00cb41 + md5: 3eeeeb9e4827ace8c0c1419c85d590ad + depends: + - python >=3.7 + license: MIT + license_family: MIT + purls: + - pkg:pypi/pytz?source=hash-mapping + size: 188538 + timestamp: 1706886944988 +- kind: conda + name: pyyaml + version: 6.0.2 + build: py312h41a817b_0 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/pyyaml-6.0.2-py312h41a817b_0.conda + sha256: 06a139ccc9a1472489ca5df6f7c6f44e2eb9b1c2de1142f5beec3f430ca7ae3c + md5: 1779c9cbd9006415ab7bb9e12747e9d1 + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc-ng >=12 + - python >=3.12,<3.13.0a0 + - python_abi 3.12.* *_cp312 + - yaml >=0.2.5,<0.3.0a0 + license: MIT + license_family: MIT + purls: + - pkg:pypi/pyyaml?source=hash-mapping + size: 205734 + timestamp: 1723018377857 +- kind: conda + name: pyzmq + version: 26.2.0 + build: py312hbf22597_0 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/pyzmq-26.2.0-py312hbf22597_0.conda + sha256: 906d28e08d889017cffb0847234381c51f19101d16b702f944675d2fa403c1ed + md5: 14861767c6836065ee65b45a40be2ed1 + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc-ng >=13 + - libsodium >=1.0.18,<1.0.19.0a0 + - libstdcxx-ng >=13 + - python >=3.12,<3.13.0a0 + - python_abi 3.12.* *_cp312 + - zeromq >=4.3.5,<4.4.0a0 + license: BSD-3-Clause + license_family: BSD + purls: + - pkg:pypi/pyzmq?source=hash-mapping + size: 378212 + timestamp: 1724399230672 +- kind: conda + name: qhull + version: '2020.2' + build: h434a139_5 + build_number: 5 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/qhull-2020.2-h434a139_5.conda + sha256: 776363493bad83308ba30bcb88c2552632581b143e8ee25b1982c8c743e73abc + md5: 353823361b1d27eb3960efb076dfcaf6 + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc-ng >=12 + - libstdcxx-ng >=12 + license: LicenseRef-Qhull + purls: [] + size: 552937 + timestamp: 1720813982144 +- kind: conda + name: readline + version: '8.2' + build: h8228510_1 + build_number: 1 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/readline-8.2-h8228510_1.conda + sha256: 5435cf39d039387fbdc977b0a762357ea909a7694d9528ab40f005e9208744d7 + md5: 47d31b792659ce70f470b5c82fdfb7a4 + depends: + - libgcc-ng >=12 + - ncurses >=6.3,<7.0a0 + license: GPL-3.0-only + license_family: GPL + purls: [] + size: 281456 + timestamp: 1679532220005 +- kind: conda + name: referencing + version: 0.35.1 + build: pyhd8ed1ab_0 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/referencing-0.35.1-pyhd8ed1ab_0.conda + sha256: be8d6d9e86b1a3fef5424127ff81782f8ca63d3058980859609f6f1ecdd34cb3 + md5: 0fc8b52192a8898627c3efae1003e9f6 + depends: + - attrs >=22.2.0 + - python >=3.8 + - rpds-py >=0.7.0 + license: MIT + license_family: MIT + purls: + - pkg:pypi/referencing?source=hash-mapping + size: 42210 + timestamp: 1714619625532 +- kind: conda + name: requests + version: 2.32.3 + build: pyhd8ed1ab_0 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/requests-2.32.3-pyhd8ed1ab_0.conda + sha256: 5845ffe82a6fa4d437a2eae1e32a1ad308d7ad349f61e337c0a890fe04c513cc + md5: 5ede4753180c7a550a443c430dc8ab52 + depends: + - certifi >=2017.4.17 + - charset-normalizer >=2,<4 + - idna >=2.5,<4 + - python >=3.8 + - urllib3 >=1.21.1,<3 + constrains: + - chardet >=3.0.2,<6 + license: Apache-2.0 + license_family: APACHE + purls: + - pkg:pypi/requests?source=hash-mapping + size: 58810 + timestamp: 1717057174842 +- kind: conda + name: rfc3339-validator + version: 0.1.4 + build: pyhd8ed1ab_0 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/rfc3339-validator-0.1.4-pyhd8ed1ab_0.tar.bz2 + sha256: 7c7052b51de0b5c558f890bb11f8b5edbb9934a653d76be086b1182b9f54185d + md5: fed45fc5ea0813240707998abe49f520 + depends: + - python >=3.5 + - six + license: MIT + license_family: MIT + purls: + - pkg:pypi/rfc3339-validator?source=hash-mapping + size: 8064 + timestamp: 1638811838081 +- kind: conda + name: rfc3986-validator + version: 0.1.1 + build: pyh9f0ad1d_0 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/rfc3986-validator-0.1.1-pyh9f0ad1d_0.tar.bz2 + sha256: 2a5b495a1de0f60f24d8a74578ebc23b24aa53279b1ad583755f223097c41c37 + md5: 912a71cc01012ee38e6b90ddd561e36f + depends: + - python + license: MIT + license_family: MIT + purls: + - pkg:pypi/rfc3986-validator?source=hash-mapping + size: 7818 + timestamp: 1598024297745 +- kind: conda + name: rpds-py + version: 0.20.0 + build: py312hf008fa9_0 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/rpds-py-0.20.0-py312hf008fa9_0.conda + sha256: c1c797db876a3a642fd1293be3ce5428f2699cbc1e1f2f9152501e656b897c24 + md5: 0735929f1a2a89c62b91d07ef5a76645 + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc-ng >=12 + - python >=3.12,<3.13.0a0 + - python_abi 3.12.* *_cp312 + constrains: + - __glibc >=2.17 + license: MIT + license_family: MIT + purls: + - pkg:pypi/rpds-py?source=hash-mapping + size: 336290 + timestamp: 1723039277393 +- kind: conda + name: send2trash + version: 1.8.3 + build: pyh0d859eb_0 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/send2trash-1.8.3-pyh0d859eb_0.conda + sha256: c4401b071e86ddfa0ea4f34b85308db2516b6aeca50053535996864cfdee7b3f + md5: 778594b20097b5a948c59e50ae42482a + depends: + - __linux + - python >=3.7 + license: BSD-3-Clause + license_family: BSD + purls: + - pkg:pypi/send2trash?source=hash-mapping + size: 22868 + timestamp: 1712585140895 +- kind: conda + name: setuptools + version: 72.2.0 + build: pyhd8ed1ab_0 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/setuptools-72.2.0-pyhd8ed1ab_0.conda + sha256: 0252f6570de8ff29d489958fc7826677a518061b1aa5e1828a427eec8a7928a4 + md5: 1462aa8b243aad09ef5d0841c745eb89 + depends: + - python >=3.8 + license: MIT + license_family: MIT + purls: + - pkg:pypi/setuptools?source=hash-mapping + size: 1459799 + timestamp: 1724163617860 +- kind: conda + name: six + version: 1.16.0 + build: pyh6c4a22f_0 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/six-1.16.0-pyh6c4a22f_0.tar.bz2 + sha256: a85c38227b446f42c5b90d9b642f2c0567880c15d72492d8da074a59c8f91dd6 + md5: e5f25f8dbc060e9a8d912e432202afc2 + depends: + - python + license: MIT + license_family: MIT + purls: + - pkg:pypi/six?source=hash-mapping + size: 14259 + timestamp: 1620240338595 +- kind: conda + name: sniffio + version: 1.3.1 + build: pyhd8ed1ab_0 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/sniffio-1.3.1-pyhd8ed1ab_0.conda + sha256: bc12100b2d8836b93c55068b463190505b8064d0fc7d025e89f20ebf22fe6c2b + md5: 490730480d76cf9c8f8f2849719c6e2b + depends: + - python >=3.7 + license: Apache-2.0 + license_family: Apache + purls: + - pkg:pypi/sniffio?source=hash-mapping + size: 15064 + timestamp: 1708953086199 +- kind: pypi + name: snowballstemmer + version: 2.2.0 + url: https://files.pythonhosted.org/packages/ed/dc/c02e01294f7265e63a7315fe086dd1df7dacb9f840a804da846b96d01b96/snowballstemmer-2.2.0-py2.py3-none-any.whl + sha256: c8e1716e83cc398ae16824e5572ae04e0d9fc2c6b985fb0f900f5f0c96ecba1a +- kind: conda + name: soupsieve + version: '2.5' + build: pyhd8ed1ab_1 + build_number: 1 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/soupsieve-2.5-pyhd8ed1ab_1.conda + sha256: 54ae221033db8fbcd4998ccb07f3c3828b4d77e73b0c72b18c1d6a507059059c + md5: 3f144b2c34f8cb5a9abd9ed23a39c561 + depends: + - python >=3.8 + license: MIT + license_family: MIT + purls: + - pkg:pypi/soupsieve?source=hash-mapping + size: 36754 + timestamp: 1693929424267 +- kind: pypi + name: sphinx + version: 8.0.2 + url: https://files.pythonhosted.org/packages/4d/61/2ad169c6ff1226b46e50da0e44671592dbc6d840a52034a0193a99b28579/sphinx-8.0.2-py3-none-any.whl + sha256: 56173572ae6c1b9a38911786e206a110c9749116745873feae4f9ce88e59391d + requires_dist: + - sphinxcontrib-applehelp + - sphinxcontrib-devhelp + - sphinxcontrib-jsmath + - sphinxcontrib-htmlhelp>=2.0.0 + - sphinxcontrib-serializinghtml>=1.1.9 + - sphinxcontrib-qthelp + - jinja2>=3.1 + - pygments>=2.17 + - docutils>=0.20,<0.22 + - snowballstemmer>=2.2 + - babel>=2.13 + - alabaster>=0.7.14 + - imagesize>=1.3 + - requests>=2.30.0 + - packaging>=23.0 + - tomli>=2 ; python_version < '3.11' + - colorama>=0.4.6 ; sys_platform == 'win32' + - sphinxcontrib-websupport ; extra == 'docs' + - flake8>=6.0 ; extra == 'lint' + - ruff==0.5.5 ; extra == 'lint' + - mypy==1.11.0 ; extra == 'lint' + - sphinx-lint>=0.9 ; extra == 'lint' + - types-colorama==0.4.15.20240311 ; extra == 'lint' + - types-defusedxml==0.7.0.20240218 ; extra == 'lint' + - types-docutils==0.21.0.20240724 ; extra == 'lint' + - types-pillow==10.2.0.20240520 ; extra == 'lint' + - types-pygments==2.18.0.20240506 ; extra == 'lint' + - types-requests>=2.30.0 ; extra == 'lint' + - tomli>=2 ; extra == 'lint' + - pytest>=6.0 ; extra == 'lint' + - pytest>=8.0 ; extra == 'test' + - defusedxml>=0.7.1 ; extra == 'test' + - cython>=3.0 ; extra == 'test' + - setuptools>=70.0 ; extra == 'test' + - typing-extensions>=4.9 ; extra == 'test' + requires_python: '>=3.10' +- kind: pypi + name: sphinx-book-theme + version: 1.1.3 + url: https://files.pythonhosted.org/packages/2b/80/90574e2e82c955b9c6f6b77f7badb2cf2ef4ef77599e4343cced2d098681/sphinx_book_theme-1.1.3-py3-none-any.whl + sha256: a554a9a7ac3881979a87a2b10f633aa2a5706e72218a10f71be38b3c9e831ae9 + requires_dist: + - sphinx>=5 + - pydata-sphinx-theme>=0.15.2 + - pre-commit ; extra == 'code-style' + - ablog ; extra == 'doc' + - ipywidgets ; extra == 'doc' + - folium ; extra == 'doc' + - numpy ; extra == 'doc' + - matplotlib ; extra == 'doc' + - numpydoc ; extra == 'doc' + - myst-nb ; extra == 'doc' + - nbclient ; extra == 'doc' + - pandas ; extra == 'doc' + - plotly ; extra == 'doc' + - sphinx-design ; extra == 'doc' + - sphinx-examples ; extra == 'doc' + - sphinx-copybutton ; extra == 'doc' + - sphinx-tabs ; extra == 'doc' + - sphinx-togglebutton ; extra == 'doc' + - sphinx-thebe ; extra == 'doc' + - sphinxcontrib-bibtex ; extra == 'doc' + - sphinxcontrib-youtube ; extra == 'doc' + - sphinxext-opengraph ; extra == 'doc' + - beautifulsoup4 ; extra == 'test' + - coverage ; extra == 'test' + - defusedxml ; extra == 'test' + - myst-nb ; extra == 'test' + - pytest ; extra == 'test' + - pytest-cov ; extra == 'test' + - pytest-regressions ; extra == 'test' + - sphinx-thebe ; extra == 'test' + requires_python: '>=3.9' +- kind: pypi + name: sphinx-copybutton + version: 0.5.2 + url: https://files.pythonhosted.org/packages/9e/48/1ea60e74949eecb12cdd6ac43987f9fd331156388dcc2319b45e2ebb81bf/sphinx_copybutton-0.5.2-py3-none-any.whl + sha256: fb543fd386d917746c9a2c50360c7905b605726b9355cd26e9974857afeae06e + requires_dist: + - sphinx>=1.8 + - pre-commit==2.12.1 ; extra == 'code-style' + - sphinx ; extra == 'rtd' + - ipython ; extra == 'rtd' + - myst-nb ; extra == 'rtd' + - sphinx-book-theme ; extra == 'rtd' + - sphinx-examples ; extra == 'rtd' + requires_python: '>=3.7' +- kind: pypi + name: sphinxcontrib-applehelp + version: 2.0.0 + url: https://files.pythonhosted.org/packages/5d/85/9ebeae2f76e9e77b952f4b274c27238156eae7979c5421fba91a28f4970d/sphinxcontrib_applehelp-2.0.0-py3-none-any.whl + sha256: 4cd3f0ec4ac5dd9c17ec65e9ab272c9b867ea77425228e68ecf08d6b28ddbdb5 + requires_dist: + - ruff==0.5.5 ; extra == 'lint' + - mypy ; extra == 'lint' + - types-docutils ; extra == 'lint' + - sphinx>=5 ; extra == 'standalone' + - pytest ; extra == 'test' + requires_python: '>=3.9' +- kind: pypi + name: sphinxcontrib-devhelp + version: 2.0.0 + url: https://files.pythonhosted.org/packages/35/7a/987e583882f985fe4d7323774889ec58049171828b58c2217e7f79cdf44e/sphinxcontrib_devhelp-2.0.0-py3-none-any.whl + sha256: aefb8b83854e4b0998877524d1029fd3e6879210422ee3780459e28a1f03a8a2 + requires_dist: + - ruff==0.5.5 ; extra == 'lint' + - mypy ; extra == 'lint' + - types-docutils ; extra == 'lint' + - sphinx>=5 ; extra == 'standalone' + - pytest ; extra == 'test' + requires_python: '>=3.9' +- kind: pypi + name: sphinxcontrib-htmlhelp + version: 2.1.0 + url: https://files.pythonhosted.org/packages/0a/7b/18a8c0bcec9182c05a0b3ec2a776bba4ead82750a55ff798e8d406dae604/sphinxcontrib_htmlhelp-2.1.0-py3-none-any.whl + sha256: 166759820b47002d22914d64a075ce08f4c46818e17cfc9470a9786b759b19f8 + requires_dist: + - ruff==0.5.5 ; extra == 'lint' + - mypy ; extra == 'lint' + - types-docutils ; extra == 'lint' + - sphinx>=5 ; extra == 'standalone' + - pytest ; extra == 'test' + - html5lib ; extra == 'test' + requires_python: '>=3.9' +- kind: pypi + name: sphinxcontrib-jsmath + version: 1.0.1 + url: https://files.pythonhosted.org/packages/c2/42/4c8646762ee83602e3fb3fbe774c2fac12f317deb0b5dbeeedd2d3ba4b77/sphinxcontrib_jsmath-1.0.1-py2.py3-none-any.whl + sha256: 2ec2eaebfb78f3f2078e73666b1415417a116cc848b72e5172e596c871103178 + requires_dist: + - pytest ; extra == 'test' + - flake8 ; extra == 'test' + - mypy ; extra == 'test' + requires_python: '>=3.5' +- kind: pypi + name: sphinxcontrib-qthelp + version: 2.0.0 + url: https://files.pythonhosted.org/packages/27/83/859ecdd180cacc13b1f7e857abf8582a64552ea7a061057a6c716e790fce/sphinxcontrib_qthelp-2.0.0-py3-none-any.whl + sha256: b18a828cdba941ccd6ee8445dbe72ffa3ef8cbe7505d8cd1fa0d42d3f2d5f3eb + requires_dist: + - ruff==0.5.5 ; extra == 'lint' + - mypy ; extra == 'lint' + - types-docutils ; extra == 'lint' + - sphinx>=5 ; extra == 'standalone' + - pytest ; extra == 'test' + - defusedxml>=0.7.1 ; extra == 'test' + requires_python: '>=3.9' +- kind: pypi + name: sphinxcontrib-serializinghtml + version: 2.0.0 + url: https://files.pythonhosted.org/packages/52/a7/d2782e4e3f77c8450f727ba74a8f12756d5ba823d81b941f1b04da9d033a/sphinxcontrib_serializinghtml-2.0.0-py3-none-any.whl + sha256: 6e2cb0eef194e10c27ec0023bfeb25badbbb5868244cf5bc5bdc04e4464bf331 + requires_dist: + - ruff==0.5.5 ; extra == 'lint' + - mypy ; extra == 'lint' + - types-docutils ; extra == 'lint' + - sphinx>=5 ; extra == 'standalone' + - pytest ; extra == 'test' + requires_python: '>=3.9' +- kind: pypi + name: sqlalchemy + version: 2.0.32 + url: https://files.pythonhosted.org/packages/9d/b8/aa822988d390cf06afa3c69d86a3a38bba79b51385207cd7cd99d0be17bb/SQLAlchemy-2.0.32-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl + sha256: 7d6ba0497c1d066dd004e0f02a92426ca2df20fac08728d03f67f6960271feec + requires_dist: + - typing-extensions>=4.6.0 + - greenlet!=0.4.17 ; python_version < '3.13' and (platform_machine == 'aarch64' or (platform_machine == 'ppc64le' or (platform_machine == 'x86_64' or (platform_machine == 'amd64' or (platform_machine == 'AMD64' or (platform_machine == 'win32' or platform_machine == 'WIN32')))))) + - importlib-metadata ; python_version < '3.8' + - greenlet!=0.4.17 ; extra == 'aiomysql' + - aiomysql>=0.2.0 ; extra == 'aiomysql' + - greenlet!=0.4.17 ; extra == 'aioodbc' + - aioodbc ; extra == 'aioodbc' + - greenlet!=0.4.17 ; extra == 'aiosqlite' + - aiosqlite ; extra == 'aiosqlite' + - typing-extensions!=3.10.0.1 ; extra == 'aiosqlite' + - greenlet!=0.4.17 ; extra == 'asyncio' + - greenlet!=0.4.17 ; extra == 'asyncmy' + - asyncmy!=0.2.4,!=0.2.6,>=0.2.3 ; extra == 'asyncmy' + - mariadb!=1.1.2,!=1.1.5,>=1.0.1 ; extra == 'mariadb-connector' + - pyodbc ; extra == 'mssql' + - pymssql ; extra == 'mssql-pymssql' + - pyodbc ; extra == 'mssql-pyodbc' + - mypy>=0.910 ; extra == 'mypy' + - mysqlclient>=1.4.0 ; extra == 'mysql' + - mysql-connector-python ; extra == 'mysql-connector' + - cx-oracle>=8 ; extra == 'oracle' + - oracledb>=1.0.1 ; extra == 'oracle-oracledb' + - psycopg2>=2.7 ; extra == 'postgresql' + - greenlet!=0.4.17 ; extra == 'postgresql-asyncpg' + - asyncpg ; extra == 'postgresql-asyncpg' + - pg8000>=1.29.1 ; extra == 'postgresql-pg8000' + - psycopg>=3.0.7 ; extra == 'postgresql-psycopg' + - psycopg2-binary ; extra == 'postgresql-psycopg2binary' + - psycopg2cffi ; extra == 'postgresql-psycopg2cffi' + - psycopg[binary]>=3.0.7 ; extra == 'postgresql-psycopgbinary' + - pymysql ; extra == 'pymysql' + - sqlcipher3-binary ; extra == 'sqlcipher' + requires_python: '>=3.7' +- kind: conda + name: stack_data + version: 0.6.2 + build: pyhd8ed1ab_0 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/stack_data-0.6.2-pyhd8ed1ab_0.conda + sha256: a58433e75229bec39f3be50c02efbe9b7083e53a1f31d8ee247564f370191eec + md5: e7df0fdd404616638df5ece6e69ba7af + depends: + - asttokens + - executing + - pure_eval + - python >=3.5 + license: MIT + license_family: MIT + purls: + - pkg:pypi/stack-data?source=hash-mapping + size: 26205 + timestamp: 1669632203115 +- kind: pypi + name: tabulate + version: 0.9.0 + url: https://files.pythonhosted.org/packages/40/44/4a5f08c96eb108af5cb50b41f76142f0afa346dfa99d5296fe7202a11854/tabulate-0.9.0-py3-none-any.whl + sha256: 024ca478df22e9340661486f85298cff5f6dcdba14f3813e8830015b9ed1948f + requires_dist: + - wcwidth ; extra == 'widechars' + requires_python: '>=3.7' +- kind: conda + name: terminado + version: 0.18.1 + build: pyh0d859eb_0 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/terminado-0.18.1-pyh0d859eb_0.conda + sha256: b300557c0382478cf661ddb520263508e4b3b5871b471410450ef2846e8c352c + md5: efba281bbdae5f6b0a1d53c6d4a97c93 + depends: + - __linux + - ptyprocess + - python >=3.8 + - tornado >=6.1.0 + license: BSD-2-Clause + license_family: BSD + purls: + - pkg:pypi/terminado?source=hash-mapping + size: 22452 + timestamp: 1710262728753 +- kind: conda + name: tinycss2 + version: 1.3.0 + build: pyhd8ed1ab_0 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/tinycss2-1.3.0-pyhd8ed1ab_0.conda + sha256: bc55e5899e66805589c02061e315bfc23ae6cc2f2811f5cc13fb189a5ed9d90f + md5: 8662629d9a05f9cff364e31ca106c1ac + depends: + - python >=3.5 + - webencodings >=0.4 + license: BSD-3-Clause + license_family: BSD + purls: + - pkg:pypi/tinycss2?source=hash-mapping + size: 25405 + timestamp: 1713975078735 +- kind: conda + name: tk + version: 8.6.13 + build: noxft_h4845f30_101 + build_number: 101 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/tk-8.6.13-noxft_h4845f30_101.conda + sha256: e0569c9caa68bf476bead1bed3d79650bb080b532c64a4af7d8ca286c08dea4e + md5: d453b98d9c83e71da0741bb0ff4d76bc + depends: + - libgcc-ng >=12 + - libzlib >=1.2.13,<2.0.0a0 + license: TCL + license_family: BSD + purls: [] + size: 3318875 + timestamp: 1699202167581 +- kind: conda + name: tomli + version: 2.0.1 + build: pyhd8ed1ab_0 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/tomli-2.0.1-pyhd8ed1ab_0.tar.bz2 + sha256: 4cd48aba7cd026d17e86886af48d0d2ebc67ed36f87f6534f4b67138f5a5a58f + md5: 5844808ffab9ebdb694585b50ba02a96 + depends: + - python >=3.7 + license: MIT + license_family: MIT + purls: + - pkg:pypi/tomli?source=hash-mapping + size: 15940 + timestamp: 1644342331069 +- kind: conda + name: tornado + version: 6.4.1 + build: py312h9a8786e_0 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/tornado-6.4.1-py312h9a8786e_0.conda + sha256: fcf92fde5bac323921d97f8f2e66ee134ea01094f14d4e99c56f98187241c638 + md5: fd9c83fde763b494f07acee1404c280e + depends: + - libgcc-ng >=12 + - python >=3.12,<3.13.0a0 + - python_abi 3.12.* *_cp312 + license: Apache-2.0 + license_family: Apache + purls: + - pkg:pypi/tornado?source=hash-mapping + size: 839315 + timestamp: 1717723013620 +- kind: conda + name: traitlets + version: 5.14.3 + build: pyhd8ed1ab_0 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/traitlets-5.14.3-pyhd8ed1ab_0.conda + sha256: 8a64fa0f19022828513667c2c7176cfd125001f3f4b9bc00d33732e627dd2592 + md5: 3df84416a021220d8b5700c613af2dc5 + depends: + - python >=3.8 + license: BSD-3-Clause + license_family: BSD + purls: + - pkg:pypi/traitlets?source=hash-mapping + size: 110187 + timestamp: 1713535244513 +- kind: conda + name: types-python-dateutil + version: 2.9.0.20240821 + build: pyhd8ed1ab_0 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/types-python-dateutil-2.9.0.20240821-pyhd8ed1ab_0.conda + sha256: 26b5939438e31ffc9ea5c56aaea5799804186887bd0d8d639d8fad1898f07bdd + md5: a0637bb6a2428c10448807b9d87f082c + depends: + - python >=3.6 + license: Apache-2.0 AND MIT + purls: + - pkg:pypi/types-python-dateutil?source=hash-mapping + size: 21636 + timestamp: 1724221199053 +- kind: conda + name: typing-extensions + version: 4.12.2 + build: hd8ed1ab_0 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/typing-extensions-4.12.2-hd8ed1ab_0.conda + sha256: d3b9a8ed6da7c9f9553c5fd8a4fca9c3e0ab712fa5f497859f82337d67533b73 + md5: 52d648bd608f5737b123f510bb5514b5 + depends: + - typing_extensions 4.12.2 pyha770c72_0 + license: PSF-2.0 + license_family: PSF + purls: [] + size: 10097 + timestamp: 1717802659025 +- kind: conda + name: typing_extensions + version: 4.12.2 + build: pyha770c72_0 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/typing_extensions-4.12.2-pyha770c72_0.conda + sha256: 0fce54f8ec3e59f5ef3bb7641863be4e1bf1279623e5af3d3fa726e8f7628ddb + md5: ebe6952715e1d5eb567eeebf25250fa7 + depends: + - python >=3.8 + license: PSF-2.0 + license_family: PSF + purls: + - pkg:pypi/typing-extensions?source=hash-mapping + size: 39888 + timestamp: 1717802653893 +- kind: conda + name: typing_utils + version: 0.1.0 + build: pyhd8ed1ab_0 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/typing_utils-0.1.0-pyhd8ed1ab_0.tar.bz2 + sha256: 9e3758b620397f56fb709f796969de436d63b7117897159619b87938e1f78739 + md5: eb67e3cace64c66233e2d35949e20f92 + depends: + - python >=3.6.1 + license: Apache-2.0 + license_family: APACHE + purls: + - pkg:pypi/typing-utils?source=hash-mapping + size: 13829 + timestamp: 1622899345711 +- kind: conda + name: tzdata + version: 2024a + build: h0c530f3_0 + subdir: noarch + noarch: generic + url: https://conda.anaconda.org/conda-forge/noarch/tzdata-2024a-h0c530f3_0.conda + sha256: 7b2b69c54ec62a243eb6fba2391b5e443421608c3ae5dbff938ad33ca8db5122 + md5: 161081fc7cec0bfda0d86d7cb595f8d8 + license: LicenseRef-Public-Domain + purls: [] + size: 119815 + timestamp: 1706886945727 +- kind: conda + name: tzdata + version: 2024a + build: h8827d51_1 + build_number: 1 + subdir: noarch + noarch: generic + url: https://conda.anaconda.org/conda-forge/noarch/tzdata-2024a-h8827d51_1.conda + sha256: 7d21c95f61319dba9209ca17d1935e6128af4235a67ee4e57a00908a1450081e + md5: 8bfdead4e0fff0383ae4c9c50d0531bd + license: LicenseRef-Public-Domain + purls: [] + size: 124164 + timestamp: 1724736371498 +- kind: conda + name: uri-template + version: 1.3.0 + build: pyhd8ed1ab_0 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/uri-template-1.3.0-pyhd8ed1ab_0.conda + sha256: b76904b53721dc88a46352324c79d2b077c2f74a9f7208ad2c4249892669ae94 + md5: 0944dc65cb4a9b5b68522c3bb585d41c + depends: + - python >=3.7 + license: MIT + license_family: MIT + purls: + - pkg:pypi/uri-template?source=hash-mapping + size: 23999 + timestamp: 1688655976471 +- kind: conda + name: urllib3 + version: 2.2.2 + build: pyhd8ed1ab_1 + build_number: 1 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/urllib3-2.2.2-pyhd8ed1ab_1.conda + sha256: 00c47c602c03137e7396f904eccede8cc64cc6bad63ce1fc355125df8882a748 + md5: e804c43f58255e977093a2298e442bb8 + depends: + - brotli-python >=1.0.9 + - h2 >=4,<5 + - pysocks >=1.5.6,<2.0,!=1.5.7 + - python >=3.8 + - zstandard >=0.18.0 + license: MIT + license_family: MIT + purls: + - pkg:pypi/urllib3?source=hash-mapping + size: 95048 + timestamp: 1719391384778 +- kind: conda + name: wcwidth + version: 0.2.13 + build: pyhd8ed1ab_0 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/wcwidth-0.2.13-pyhd8ed1ab_0.conda + sha256: b6cd2fee7e728e620ec736d8dfee29c6c9e2adbd4e695a31f1d8f834a83e57e3 + md5: 68f0738df502a14213624b288c60c9ad + depends: + - python >=3.8 + license: MIT + license_family: MIT + purls: + - pkg:pypi/wcwidth?source=hash-mapping + size: 32709 + timestamp: 1704731373922 +- kind: conda + name: webcolors + version: 24.8.0 + build: pyhd8ed1ab_0 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/webcolors-24.8.0-pyhd8ed1ab_0.conda + sha256: ec71f97c332a7d328ae038990b8090cbfa772f82845b5d2233defd167b7cc5ac + md5: eb48b812eb4fbb9ff238a6651fdbbcae + depends: + - python >=3.5 + license: BSD-3-Clause + license_family: BSD + purls: + - pkg:pypi/webcolors?source=hash-mapping + size: 18378 + timestamp: 1723294800217 +- kind: conda + name: webencodings + version: 0.5.1 + build: pyhd8ed1ab_2 + build_number: 2 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/webencodings-0.5.1-pyhd8ed1ab_2.conda + sha256: 2adf9bd5482802837bc8814cbe28d7b2a4cbd2e2c52e381329eaa283b3ed1944 + md5: daf5160ff9cde3a468556965329085b9 + depends: + - python >=2.6 + license: BSD-3-Clause + license_family: BSD + purls: + - pkg:pypi/webencodings?source=hash-mapping + size: 15600 + timestamp: 1694681458271 +- kind: conda + name: websocket-client + version: 1.8.0 + build: pyhd8ed1ab_0 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/websocket-client-1.8.0-pyhd8ed1ab_0.conda + sha256: 44a5e3b97feef24cd719f7851cca9af9799dc9c17d3e0298d5856baab2d682f5 + md5: f372c576b8774922da83cda2b12f9d29 + depends: + - python >=3.8 + license: Apache-2.0 + license_family: APACHE + purls: + - pkg:pypi/websocket-client?source=hash-mapping + size: 47066 + timestamp: 1713923494501 +- kind: conda + name: widgetsnbextension + version: 4.0.13 + build: pyhd8ed1ab_0 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/widgetsnbextension-4.0.13-pyhd8ed1ab_0.conda + sha256: d155adc10f8c96f76d4468dbe37b33b4334dadf5cd4a95841aa009ca9bced5fa + md5: 6372cd99502721bd7499f8d16b56268d + depends: + - python >=3.7 + license: BSD-3-Clause + license_family: BSD + purls: + - pkg:pypi/widgetsnbextension?source=hash-mapping + size: 898656 + timestamp: 1724331433259 +- kind: conda + name: xorg-libxau + version: 1.0.11 + build: hd590300_0 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxau-1.0.11-hd590300_0.conda + sha256: 309751371d525ce50af7c87811b435c176915239fc9e132b99a25d5e1703f2d4 + md5: 2c80dc38fface310c9bd81b17037fee5 + depends: + - libgcc-ng >=12 + license: MIT + license_family: MIT + purls: [] + size: 14468 + timestamp: 1684637984591 +- kind: conda + name: xorg-libxdmcp + version: 1.1.3 + build: h7f98852_0 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxdmcp-1.1.3-h7f98852_0.tar.bz2 + sha256: 4df7c5ee11b8686d3453e7f3f4aa20ceef441262b49860733066c52cfd0e4a77 + md5: be93aabceefa2fac576e971aef407908 + depends: + - libgcc-ng >=9.3.0 + license: MIT + license_family: MIT + purls: [] + size: 19126 + timestamp: 1610071769228 +- kind: conda + name: xz + version: 5.2.6 + build: h166bdaf_0 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/xz-5.2.6-h166bdaf_0.tar.bz2 + sha256: 03a6d28ded42af8a347345f82f3eebdd6807a08526d47899a42d62d319609162 + md5: 2161070d867d1b1204ea749c8eec4ef0 + depends: + - libgcc-ng >=12 + license: LGPL-2.1 and GPL-2.0 + purls: [] + size: 418368 + timestamp: 1660346797927 +- kind: conda + name: yaml + version: 0.2.5 + build: h7f98852_2 + build_number: 2 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/yaml-0.2.5-h7f98852_2.tar.bz2 + sha256: a4e34c710eeb26945bdbdaba82d3d74f60a78f54a874ec10d373811a5d217535 + md5: 4cb3ad778ec2d5a7acbdf254eb1c42ae + depends: + - libgcc-ng >=9.4.0 + license: MIT + license_family: MIT + purls: [] + size: 89141 + timestamp: 1641346969816 +- kind: conda + name: zeromq + version: 4.3.5 + build: h75354e8_4 + build_number: 4 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/zeromq-4.3.5-h75354e8_4.conda + sha256: bc9aaee39e7be107d7daff237435dfd8f791aca460a98583a36a263615205262 + md5: 03cc8d9838ad9dd0060ab532e81ccb21 + depends: + - krb5 >=1.21.2,<1.22.0a0 + - libgcc-ng >=12 + - libsodium >=1.0.18,<1.0.19.0a0 + - libstdcxx-ng >=12 + license: MPL-2.0 + license_family: MOZILLA + purls: [] + size: 353229 + timestamp: 1715607188837 +- kind: conda + name: zipp + version: 3.20.1 + build: pyhd8ed1ab_0 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/zipp-3.20.1-pyhd8ed1ab_0.conda + sha256: 30762bd25b6fc8714d5520a223ccf20ad4a6792dc439c54b59bf44b60bf51e72 + md5: 74a4befb4b38897e19a107693e49da20 + depends: + - python >=3.8 + license: MIT + license_family: MIT + purls: + - pkg:pypi/zipp?source=hash-mapping + size: 21110 + timestamp: 1724731063145 +- kind: conda + name: zstandard + version: 0.23.0 + build: py312h3483029_0 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/zstandard-0.23.0-py312h3483029_0.conda + sha256: 7e1e105ea7eab2af591faebf743ff2493f53c313079e316419577925e4492b03 + md5: eab52e88c858d87cf5a069f79d10bb50 + depends: + - __glibc >=2.17,<3.0.a0 + - cffi >=1.11 + - libgcc-ng >=12 + - python >=3.12,<3.13.0a0 + - python_abi 3.12.* *_cp312 + - zstd >=1.5.6,<1.5.7.0a0 + - zstd >=1.5.6,<1.6.0a0 + license: BSD-3-Clause + license_family: BSD + purls: + - pkg:pypi/zstandard?source=hash-mapping + size: 416708 + timestamp: 1721044154409 +- kind: conda + name: zstd + version: 1.5.6 + build: ha6fb4c9_0 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/zstd-1.5.6-ha6fb4c9_0.conda + sha256: c558b9cc01d9c1444031bd1ce4b9cff86f9085765f17627a6cd85fc623c8a02b + md5: 4d056880988120e29d75bfff282e0f45 + depends: + - libgcc-ng >=12 + - libstdcxx-ng >=12 + - libzlib >=1.2.13,<2.0.0a0 + license: BSD-3-Clause + license_family: BSD + purls: [] + size: 554846 + timestamp: 1714722996770 diff --git a/pixi.toml b/pixi.toml new file mode 100644 index 0000000..d9a5a45 --- /dev/null +++ b/pixi.toml @@ -0,0 +1,45 @@ +[project] +authors = ["Dan Allan "] +channels = ["conda-forge"] +description = "Add a short description here" +name = "interactive-tutorial-demo" +platforms = ["linux-64"] +version = "0.1.0" + +[tasks] +build = { cmd = [ + "sphinx-build", + "docs", # source directory + "build/html", # target directory + "-n", # warn about missing references + "-W", # any warnings fail the build + "-T", # show tracebacks + "--keep-going", # do not stop on error +] } +clean = "rm -rf build/*" + +[activation] +scripts = ["setup_jupyterlab_config.sh"] + +[dependencies] +python = ">=3.12.5,<4" +matplotlib-base = ">=3.9.2,<4" +ipympl = ">=0.9.4,<0.10" +jupyterlab = ">=4.2.5,<5" +jupyterlab-myst = ">=2.4.2,<3" + +[pypi-dependencies] +sphinx = ">=8.0.2, <9" +myst-nb = ">=1.1.1, <2" +jupytext = ">=1.16.4, <2" +sphinx-book-theme = ">=1.1.3, <2" +sphinx-copybutton = ">=0.5.2, <0.6" + +[feature.jupyterlite.dependencies] +jupyterlab = "~=4.2.4" +jupyterlite-core = "==0.4.0" +jupyterlite-pyodide-kernel = "==0.4.1" +notebook = "~=7.2.1" + +[environments] +jupyterlite = ["jupyterlite"] diff --git a/setup_jupyterlab_config.sh b/setup_jupyterlab_config.sh new file mode 100644 index 0000000..a721234 --- /dev/null +++ b/setup_jupyterlab_config.sh @@ -0,0 +1,5 @@ +#!/usr/bin/env bash +set -eux + +mkdir -p ${CONDA_PREFIX}/share/jupyter/lab/settings +cp jupyterlab_config.json ${CONDA_PREFIX}/share/jupyter/lab/settings/overrides.json diff --git a/test.sh b/test.sh new file mode 100755 index 0000000..35418d3 --- /dev/null +++ b/test.sh @@ -0,0 +1,71 @@ +#!/bin/bash + +# Execute file as Jupyter notebook. +# Do not write anything to disk. +# If there are any uncaught exceptions, show them in stderr. +execute_file() { + local file="$1" + echo "Executing $file" >&2 + # Redirect stdout (the executed notebook document JSON) + # to /dev/null. In the event of an uncaught exception, + # the traceback will go to stderr and thus be shown + # to the caller. + jupytext --to notebook --execute $file -o - > /dev/null + local status=$? + if [ $status -ne 0 ]; then + echo "Error processing file: $file" >&2 + return $status + fi +} + +# If no arguments were provided, exit with error and show usage. +if [ $# -eq 0 ]; then + echo "Usage: $0 [filepaths...] | --all" >&2 + exit 1 +fi + +# Variable to track if any errors occur +error_occurred=0 + +# If --all is passed, locate eligible files and execute them all. +if [ "$1" == "--all" ]; then + files=$(find docs/recipes/ -name "*.md" | grep -v .ipynb_checkpoints) + for file in $files; do + if [ -f "$file" ]; then + # Extract the kernel information from the Jupytext Markdown file + kernel_info=$(grep -A 10 '^---$' "$file" | grep -E 'kernelspec') + # Skip if no kernel information was found + if [ -z "$kernel_info" ]; then + continue + fi + execute_file "$file" + if [ $? -ne 0 ]; then + error_occurred=1 + fi + else + echo "File not found: $file" >&2 + fi + done +else + # If filepaths are passed, execute them. + for file in "$@"; do + if [ -f "$file" ]; then + execute_file "$file" + if [ $? -ne 0 ]; then + error_occurred=1 + fi + else + echo "File not found: $file" >&2 + # Exit early + exit 1 + fi + done +fi + +if [ $error_occurred -ne 0 ]; then + echo "Some files executed with unexpected errors." >&2 + exit 1 +else + echo "All files executed successfully." >&2 + exit 0 +fi From 9be2fcd685803e858b59a047f3c65c329b18bd21 Mon Sep 17 00:00:00 2001 From: Dan Allan Date: Sun, 11 May 2025 14:45:41 -0700 Subject: [PATCH 02/12] Update org/repo --- README.md | 6 +++--- docs/contributing.md | 8 ++++---- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index 67e9a0e..4de2812 100644 --- a/README.md +++ b/README.md @@ -6,11 +6,11 @@ for a good overview of what this is like to use. ## Demo Links -- **[Tutorials (a.k.a. recipes)](https://github.com/danielballan/interactive-tutorial-demo/tree/notebooks/docs/recipes)** are written in MyST Markdown. -- They are published in **[Jupyter notebook](https://github.com/danielballan/interactive-tutorial-demo/tree/notebooks/docs/recipes)** format, on the `notebooks` branch of this repo, which can be used in Colab, Binder, etc. +- **[Tutorials (a.k.a. recipes)](https://github.com/scientific-python/executable-tutorials/tree/notebooks/docs/recipes)** are written in MyST Markdown. +- They are published in **[Jupyter notebook](https://github.com/scientific-python/executable-tutorials/tree/notebooks/docs/recipes)** format, on the `notebooks` branch of this repo, which can be used in Colab, Binder, etc. - Executed examples are **[published](https://danielballan.github.io/interactive-tutorial-demo/)** on a GitHub Pages site. - **[Jupyter Lite (beta)](https://danielballan.github.io/interactive-tutorial-demo/jupyterlite/lab/index.html)** (works only on the basic executable example so far, missing dependencies for others) -- **[Binder](https://mybinder.org/v2/gh/danielballan/interactive-tutorial-demo/notebooks)** +- **[Binder](https://mybinder.org/v2/gh/scientific-python/executable-tutorials/notebooks)** ## Goals diff --git a/docs/contributing.md b/docs/contributing.md index 5f53661..930110f 100644 --- a/docs/contributing.md +++ b/docs/contributing.md @@ -5,12 +5,12 @@ First, clone this repository. With HTTPS: ```sh -git clone https://github.com/danielballan/interactive-tutorial-demo +git clone https://github.com/scientific-python/executable-tutorials ``` With SSH: ```sh -git clone git@github.com:danielballan/interactive-tutorial-demo +git clone git@github.com:scientific-python/executable-tutorials ``` ## Overview @@ -159,5 +159,5 @@ Once changes are merged to the `main` branch, the GitHub Actions [Publish workfl where users need to be handed Jupyter Notebook files directly, such as Google Colab. -[notebooks-branch]: https://github.com/danielballan/interactive-tutorial-demo/tree/notebooks/docs/recipes -[Publish workflow]: https://github.com/danielballan/interactive-tutorial-demo/actions/workflows/cd.yml +[notebooks-branch]: https://github.com/scientific-python/executable-tutorials/tree/notebooks/docs/recipes +[Publish workflow]: https://github.com/scientific-python/executable-tutorials/actions/workflows/cd.yml From 89d29a01e5bd49acdf2650a3a06a70f8a4281cd1 Mon Sep 17 00:00:00 2001 From: Dan Allan Date: Sun, 11 May 2025 14:55:26 -0700 Subject: [PATCH 03/12] Add 'pixi run start' tasks. --- pixi.toml | 1 + 1 file changed, 1 insertion(+) diff --git a/pixi.toml b/pixi.toml index d9a5a45..4a05f63 100644 --- a/pixi.toml +++ b/pixi.toml @@ -17,6 +17,7 @@ build = { cmd = [ "--keep-going", # do not stop on error ] } clean = "rm -rf build/*" +start = "jupyter lab" [activation] scripts = ["setup_jupyterlab_config.sh"] From 9665b3675dbf6b6549f223e93dea5fa78b370ff0 Mon Sep 17 00:00:00 2001 From: Dan Allan Date: Sun, 11 May 2025 15:01:09 -0700 Subject: [PATCH 04/12] Remove wrong binder reqs --- .binder/requirements.txt | 1 - 1 file changed, 1 deletion(-) delete mode 100644 .binder/requirements.txt diff --git a/.binder/requirements.txt b/.binder/requirements.txt deleted file mode 100644 index 24ce15a..0000000 --- a/.binder/requirements.txt +++ /dev/null @@ -1 +0,0 @@ -numpy From a778e2c5b6da3e9abbd770a27f6157a0a13730b4 Mon Sep 17 00:00:00 2001 From: Dan Allan Date: Sun, 11 May 2025 15:14:54 -0700 Subject: [PATCH 05/12] Remove ci/cd for future discussion. --- .github/workflows/cd.yml | 102 --------------------------------------- .github/workflows/ci.yml | 27 ----------- README.md | 2 +- 3 files changed, 1 insertion(+), 130 deletions(-) delete mode 100644 .github/workflows/cd.yml delete mode 100644 .github/workflows/ci.yml diff --git a/.github/workflows/cd.yml b/.github/workflows/cd.yml deleted file mode 100644 index 897f524..0000000 --- a/.github/workflows/cd.yml +++ /dev/null @@ -1,102 +0,0 @@ ---- -name: Publish - -on: - push: - branches: - - main - schedule: - - cron: '0 5 * * 1' - # Allows you to run this workflow manually from the Actions tab - workflow_dispatch: - -concurrency: - group: ${{ github.workflow }}-${{ github.ref }} - cancel-in-progress: true - -jobs: - - build: - if: ${{ github.event_name == 'push' && github.ref == 'refs/heads/main' }} - name: Build Jupyter Notebooks and HTML - runs-on: ubuntu-latest - steps: - - name: Checkout - uses: actions/checkout@v4 - - - name: Setup GitHub Pages - uses: actions/configure-pages@v5 - - - name: Setup pixi - uses: prefix-dev/setup-pixi@v0.8.8 - with: - cache: true - cache-write: ${{ github.event_name == 'push' && github.ref_name == 'main' }} - - - name: Build executed notebooks and HTML - run: pixi run build - - - name: Upload executed notebooks as GitHub artifact - uses: actions/upload-artifact@v4 - with: - name: executed-notebooks - path: build/jupyter_execute/recipes - if-no-files-found: error - - - name: Prepare for Jupyter Lite - run: | - cp README.md docs/recipes/ - # Convert Jupytext to ipynb format. - pixi run ./convert_all.sh ipynb - - - name: Build Jupyter Lite - run: pixi run -e jupyterlite jupyter lite build --contents docs/recipes --output-dir build/html/jupyterlite - - - name: Upload HTML as GitHub artifact - uses: actions/upload-pages-artifact@v3 - with: - path: build/html - - deploy-gh-pages: - name: Deploy HTML to GitHub Pages - # Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages - permissions: - contents: read - pages: write - id-token: write - - environment: - name: github-pages - url: ${{ steps.deployment.outputs.page_url }} - runs-on: ubuntu-latest - needs: build - steps: - - name: Deploy HTML to GitHub Pages - id: deployment - uses: actions/deploy-pages@v4 - - deploy-notebooks: - name: Push to 'notebooks' branch ipynb-formatted version - # Sets permissions of the GITHUB_TOKEN to allow pushing to 'notebooks' branch - permissions: - contents: write - runs-on: ubuntu-latest - needs: build - steps: - - - name: Checkout - uses: actions/checkout@v4 - - - name: Setup pixi - uses: prefix-dev/setup-pixi@v0.8.1 - - - name: Publish ipynb-formatted variant to 'notebooks' branch of this repo - run: | - git fetch origin - git checkout -B notebooks - git config user.name "github-actions[bot]" - git config user.email "41898282+github-actions[bot]@users.noreply.github.com" - pixi run ./convert_all.sh ipynb - git add . - git commit -am "Convert jupytext to ipynb format" - git push origin notebooks --force-with-lease diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml deleted file mode 100644 index ac90abb..0000000 --- a/.github/workflows/ci.yml +++ /dev/null @@ -1,27 +0,0 @@ ---- -name: Test notebooks - -on: - push: - branches: - - main - pull_request: - branches: - - main - schedule: - - cron: '0 5 * * 1' - workflow_dispatch: - -jobs: - test: - name: Test all executable examples - runs-on: ubuntu-latest - steps: - - name: Checkout - uses: actions/checkout@v4 - - - name: Setup pixi - uses: prefix-dev/setup-pixi@v0.8.1 - - - name: Test all files - run: pixi run ./test.sh --all diff --git a/README.md b/README.md index 4de2812..8f6440d 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# Interactive Tutorial Demo +# Executable Tutorials A repository demonstrating one way to manage and distribute interactive tutorials. See the [Guide to Contributing](https://danielballan.github.io/interactive-tutorial-demo/contributing.html) From 87bc93a65ed5152029e8f39b32a2ac1cbfcb190c Mon Sep 17 00:00:00 2001 From: Dan Allan Date: Sun, 11 May 2025 15:16:02 -0700 Subject: [PATCH 06/12] Remove conversion script; just use markdown --- convert_all.sh | 49 ------------------------------------------------- 1 file changed, 49 deletions(-) delete mode 100755 convert_all.sh diff --git a/convert_all.sh b/convert_all.sh deleted file mode 100755 index 0ac64c4..0000000 --- a/convert_all.sh +++ /dev/null @@ -1,49 +0,0 @@ -#!/bin/bash - -# If no arguments were provided, exit with error and show usage. -if [ $# -eq 0 ]; then - echo "Usage: $0 md | ipynb " >&2 - exit 1 -fi - -# Variable to track if any errors occur -error_occurred=0 - -if [ "$1" = "ipynb" ]; then - files=$(find docs/recipes/ -name "*.md" | grep -v .ipynb_checkpoints) - for file in $files; do - # Extract the kernel information from the Jupytext Markdown file - kernel_info=$(grep -A 10 '^---$' "$file" | grep -E 'kernelspec') - # Skip if no kernel information was found - if [ -z "$kernel_info" ]; then - continue - fi - jupytext --to ipynb "$file" && rm "$file" - if [ $? -ne 0 ]; then - error_occurred=1 - echo "Errors when converting $file" - else - echo "Converted $file" - fi - done -elif [ "$1" = "md" ]; then - files=$(find docs/recipes/ -name "*.ipynb" | grep -v .ipynb_checkpoints) - for file in $files; do - jupytext --to markdown "$file" && rm "$file" - if [ $? -ne 0 ]; then - error_occurred=1 - echo "Errors when converting $file" - else - echo "Converted $file" - fi - done -fi - -if [ $error_occurred -ne 0 ]; then - echo "Some files failed to convert." >&2 - exit 1 -else - echo "All files converted successfully." >&2 - exit 0 -fi - From 3efab8a9d04e841f0403b046a56b862d81b72896 Mon Sep 17 00:00:00 2001 From: Dan Allan Date: Sun, 11 May 2025 15:19:15 -0700 Subject: [PATCH 07/12] Update URLs and docs title --- README.md | 6 +++--- docs/conf.py | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 8f6440d..bf2367a 100644 --- a/README.md +++ b/README.md @@ -1,15 +1,15 @@ # Executable Tutorials A repository demonstrating one way to manage and distribute interactive tutorials. -See the [Guide to Contributing](https://danielballan.github.io/interactive-tutorial-demo/contributing.html) +See the [Guide to Contributing](https://scentific-python.org/executable-tutorials/contributing.html) for a good overview of what this is like to use. ## Demo Links - **[Tutorials (a.k.a. recipes)](https://github.com/scientific-python/executable-tutorials/tree/notebooks/docs/recipes)** are written in MyST Markdown. - They are published in **[Jupyter notebook](https://github.com/scientific-python/executable-tutorials/tree/notebooks/docs/recipes)** format, on the `notebooks` branch of this repo, which can be used in Colab, Binder, etc. -- Executed examples are **[published](https://danielballan.github.io/interactive-tutorial-demo/)** on a GitHub Pages site. -- **[Jupyter Lite (beta)](https://danielballan.github.io/interactive-tutorial-demo/jupyterlite/lab/index.html)** (works only on the basic executable example so far, missing dependencies for others) +- Executed examples are **[published](https://scientific-python.github.io/exeuctable-tutorials/)** on a GitHub Pages site. +- **[Jupyter Lite (beta)](https://scientific-python.github.io/executable-tutorials/jupyterlite/lab/index.html)** (works only on the basic executable example so far, missing dependencies for others) - **[Binder](https://mybinder.org/v2/gh/scientific-python/executable-tutorials/notebooks)** diff --git a/docs/conf.py b/docs/conf.py index 2054f87..83dad2a 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -1,9 +1,9 @@ extensions = ["myst_nb", "sphinx_copybutton"] html_theme = 'sphinx_book_theme' -html_title = 'Interactive Tutorial Demo' +html_title = 'Executable Tutorials' html_theme_options = { - "repository_url": "https://github.com/danielballan/interactive-tutorial-demo", + "repository_url": "https://github.com/scientific-python/executable-tutorials", "path_to_docs": "docs", "repository_branch": "main", "use_repository_button": True, From 599042422526401a11e603a3673b0334fc3ee1b8 Mon Sep 17 00:00:00 2001 From: Dan Allan Date: Sun, 11 May 2025 15:24:39 -0700 Subject: [PATCH 08/12] Keep .gitignore boilerplate but add specifics. --- .gitignore | 179 ++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 178 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 8335013..ccb36fd 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,180 @@ /build/* .ipynb_checkpoints -/pixi/* +/.pixi/* + +# The following are boilerplate. It is best practice to handle this generically +# in ~/.gitignore, but including it here is helpful for beginners. +# 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 + +# UV +# Similar to Pipfile.lock, it is generally recommended to include uv.lock in version control. +# This is especially recommended for binary packages to ensure reproducibility, and is more +# commonly ignored for libraries. +#uv.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/latest/usage/project/#working-with-version-control +.pdm.toml +.pdm-python +.pdm-build/ + +# 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/ + +# Ruff stuff: +.ruff_cache/ + +# PyPI configuration file +.pypirc From df03b82f4298b4a1badf95f81b54a0f45db1dabd Mon Sep 17 00:00:00 2001 From: Dan Allan Date: Sun, 11 May 2025 15:25:41 -0700 Subject: [PATCH 09/12] Nuke bash testing --- test.sh | 71 --------------------------------------------------------- 1 file changed, 71 deletions(-) delete mode 100755 test.sh diff --git a/test.sh b/test.sh deleted file mode 100755 index 35418d3..0000000 --- a/test.sh +++ /dev/null @@ -1,71 +0,0 @@ -#!/bin/bash - -# Execute file as Jupyter notebook. -# Do not write anything to disk. -# If there are any uncaught exceptions, show them in stderr. -execute_file() { - local file="$1" - echo "Executing $file" >&2 - # Redirect stdout (the executed notebook document JSON) - # to /dev/null. In the event of an uncaught exception, - # the traceback will go to stderr and thus be shown - # to the caller. - jupytext --to notebook --execute $file -o - > /dev/null - local status=$? - if [ $status -ne 0 ]; then - echo "Error processing file: $file" >&2 - return $status - fi -} - -# If no arguments were provided, exit with error and show usage. -if [ $# -eq 0 ]; then - echo "Usage: $0 [filepaths...] | --all" >&2 - exit 1 -fi - -# Variable to track if any errors occur -error_occurred=0 - -# If --all is passed, locate eligible files and execute them all. -if [ "$1" == "--all" ]; then - files=$(find docs/recipes/ -name "*.md" | grep -v .ipynb_checkpoints) - for file in $files; do - if [ -f "$file" ]; then - # Extract the kernel information from the Jupytext Markdown file - kernel_info=$(grep -A 10 '^---$' "$file" | grep -E 'kernelspec') - # Skip if no kernel information was found - if [ -z "$kernel_info" ]; then - continue - fi - execute_file "$file" - if [ $? -ne 0 ]; then - error_occurred=1 - fi - else - echo "File not found: $file" >&2 - fi - done -else - # If filepaths are passed, execute them. - for file in "$@"; do - if [ -f "$file" ]; then - execute_file "$file" - if [ $? -ne 0 ]; then - error_occurred=1 - fi - else - echo "File not found: $file" >&2 - # Exit early - exit 1 - fi - done -fi - -if [ $error_occurred -ne 0 ]; then - echo "Some files executed with unexpected errors." >&2 - exit 1 -else - echo "All files executed successfully." >&2 - exit 0 -fi From 413bee178f8325f3ca6ffc964bb18487b38ca224 Mon Sep 17 00:00:00 2001 From: Dan Allan Date: Sun, 11 May 2025 15:28:33 -0700 Subject: [PATCH 10/12] Copy edit. --- docs/recipes/executable/basics.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/recipes/executable/basics.md b/docs/recipes/executable/basics.md index 1f783f7..3376ed7 100644 --- a/docs/recipes/executable/basics.md +++ b/docs/recipes/executable/basics.md @@ -27,7 +27,7 @@ a = 8**2 a ``` -This cell has an excepted error: +This cell has an expected error: ```{code-cell} ipython3 :tags: [raises-exception] From 782bca7c3080f3a5e5f6cdbcfcfb80fc13790149 Mon Sep 17 00:00:00 2001 From: Dan Allan Date: Sun, 11 May 2025 16:01:20 -0700 Subject: [PATCH 11/12] Loosen pins --- pixi.toml | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/pixi.toml b/pixi.toml index 4a05f63..cfec1cb 100644 --- a/pixi.toml +++ b/pixi.toml @@ -23,18 +23,18 @@ start = "jupyter lab" scripts = ["setup_jupyterlab_config.sh"] [dependencies] -python = ">=3.12.5,<4" -matplotlib-base = ">=3.9.2,<4" -ipympl = ">=0.9.4,<0.10" -jupyterlab = ">=4.2.5,<5" -jupyterlab-myst = ">=2.4.2,<3" +python = ">=3.11" +matplotlib-base = ">=3.9" +ipympl = ">=0.9" +jupyterlab = ">=4.2" +jupyterlab-myst = ">=2.4" [pypi-dependencies] -sphinx = ">=8.0.2, <9" -myst-nb = ">=1.1.1, <2" -jupytext = ">=1.16.4, <2" -sphinx-book-theme = ">=1.1.3, <2" -sphinx-copybutton = ">=0.5.2, <0.6" +sphinx = ">=8.0.2" +myst-nb = ">=1.1" +jupytext = ">=1.16" +sphinx-book-theme = ">=1.1" +sphinx-copybutton = ">=0.5" [feature.jupyterlite.dependencies] jupyterlab = "~=4.2.4" From cad071b80ae086247912a7c504620c051c8b46fb Mon Sep 17 00:00:00 2001 From: Dan Allan Date: Sun, 11 May 2025 16:02:24 -0700 Subject: [PATCH 12/12] Link to upstream canonical fork MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Brigitta Sipőcz --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index bf2367a..d85d3e2 100644 --- a/README.md +++ b/README.md @@ -32,5 +32,5 @@ for a good overview of what this is like to use. Examples that this is drawing from: -- https://github.com/bsipocz/irsa-tutorials +- https://github.com/Caltech-IPAC/irsa-tutorials - https://github.com/MotherDuck-Open-Source/sql-tutorial

GN$7{`E~oFbiqpnMQN&$eG~>EbsJWNK$Z(HE~O6DlfTOhCQMz#~9WB zBkV1p;^>-o(GY@ba3{f?;10oqySux)C%6+F26y-1Zo%Dy1$Xygwy4 z&6=jCr>A#!?UJXSU6q|!oWS-gGr%OVxWN#kXqxL%iF-pS z_}i6o=|6v@2U?a0d2t(y8-%OGd~qcYM2cwIR7AoaK4&t>SBgS&Jqb6*a>BDU;ikLE zNi_e#3oPJ~T-+1AV#ouEpl%y@wTy^K;!s42^W81O1=n?T;TVflVAWU};IFEf&!|ei zlaR!NQKkzTWmLK*8TI@U7dSfxTcu7hh}B78DPM4GrJS2UCuP16vAV;PT>HG`*E}w@xmwnsU6E8E{+1i1e8GAuA`z%S0$R#_rnT0M=c%M zP$=DZI!US~$&iEFr0D<;=H%g%b8p_U@0HA2x@55y!8XV5FC!(KO6gZ?a15HBoBV#~ z$}8qj@W+osZmFIpiK6W<6Z@0s zOYfB*>ru+sRRr=|3p0tQb(D+VZ(Ns)*WfCo zy9k^%qqHa$94HrHWSMq6jMr(mIjN7 z{c_Tc&pp})L2HJ2lIGg5S&%b`b_y<2p(o0)elAnB$HRPrwJy8TRhgM$oeam+E|Z{@ z?wZCfMlUmO0sJ{7Y9o%)A4c}O2U|e8(sk0KPnFE`n_ zsDnoJ1f2-WJeI*wh-@5A@-nAZ<)TBYgfyGO2GYED;Y!Nm>Sdvav@D%|u6#e;KAJ-p z7qGLL{mC|*607>L`--cSFwW|OO3Jwi)DIw~DcT&hAF`9Z*sYRX*~^NfrwrJ2L2Nr} zkMMo&YF!)YdiA^+@=gy-TIOo@JvH{Qp(fv)EwC&eb&6I=ip$L{xl(3CLeB^!3u2W> zbuSEGdX`hC-`K;|SU-i$@YoIcH6gE}km#N1aZ9J#EFoj3aQo}}_80Fyvn8@9=}#2J z%LX}PmEt8X1D=m4kV12XiyWvx2+6(I(0|c+*=y%c#fES8$5ZOrS1OK7oa0&pMi`Ng zQf9iJF+^veN~uZM;VCV_rKLED=N|$h zsrFmMk_xBmrP6yaf+LV}sX(b9a?CFhN|T7s)ko+s&q%0-OgFpeIuioqy+i#A8K$k@ z#7b}#xoNIycYjR7I+)u6lBH2W;&iVya zV?~%SRI(8d>;bu!=AgIc<}D!$r3#27m$hqmjUqD%2i-J3Qp5eysmxoTizBp=p=K)3 zo7gs0Q**V1SV(9gK934@LI|ZlB@I%b3K8&7BnBfyp+zs`6OxlTgzC|5 zDx;@+Vw&yxt*8GWoQy`F&X;MQ{?MQu&W%HkOVyRfCeAclk4i zBfsVVY1J`&Kd?}8^kITMowYw z%f^qgJ|c7GC0Qzu!A{_bHfkR#G@RRgMWt-+0XpY$yR->hKkQ}g9hOxkRWSCENXy6& z+Is;+o_SU-uA%L1GQ0L0tjF6EqqDVkAQjl?guy+5i;vH9%)HS4W-C|rtAI6bMXu}^ zd>Boz_kmDo-b?FZ#wD+rp`ky=ntOm-`;iXN7FdzJ7X89++U0ZjR?+q=WY;kaK z^zH4xfBOaj4Gj$d19Td-+g~F>-?I4at??^Q1MQ+Yi<|ed38trFI@I0?*n1unWDNyl z38lZc?RePr@IyFj-XmK2ycx+smG&9dq5PU?ReP}Y`Irg`+_Z?YYJkW~n%y52<|940 zS}eE-AKZU7K5qOi8VT(FpAE9~e~$V1KO2F8;8v>Oul~=5dZ>1wLMTh$>1wM9DeOmC zgm!HAleJ6$fMJu7m1PEQn3i38e}~Vb>5Hti^d}~!?%&zU-vYne17k4&1mh#VAgsgB z;P}&oJuY-~bZ`&M+K)k;a1xCS;GYVe5ye6mgL~N2l?Lt9j{WC%9j?h`um=zZu`YhO zF7=fM7CmC+Y?zyMc}fEE48H1+JRLD5Y0If^awfiTGBp(l|jvIr7=^^73qu zt;)S}(XLX_!77dpggUo8|K5nruW#ZCjnM^iRc)Af0s?1g^bD*?NV!&fB{E}8D6*b6 z00&++)Sp`vlwcimt1w0hU#Qhv$F_9w?>!3j-3W}R>Om}i)g{>@&hfU zWl{~`H7iV=Fpp8eIR4}AUa9AXf77%cb0&fTbN*hPV~$r^ znv;gCJJX>{=~%>N&bpj2odE7^0)OusFZ!am|72)T-s{##f2UTD7A0ypxE7Lv>kYgp-t*<@wzp<=oaQ8BWDkqi={uqEY?W?) z&qz|!e}4nGgZlf=3-nhboOADr-p5k#n}C{hBM{LCRKxslrK@2BP>)IGS0*Gt2|&Tc z1xi^XOg!aNzXcwUqeEU6zA6ux6ZP_St~4AUfg`={AhXS$hM56DQ( z|NNdW!A4>o%T}-2+MI!9R$lIwUJjI?ynYwf-7onC6~Y7T8a43OwS^bvS>d%DC{iDY zoS0{#UuWeQQc;Bq83ajiu@*NRV$As-C2erLO;C&qugI~)(k%!@dl%U3uj80~BIgE& zaIwtgIwh8xCi4VslP6taom;}~TJIlUe?f}uz!&t-v;y4dH=swC~uO5wEM2sBMC$1>_=_!u#i=cHG{>C~M+lg7W7YYHSsM)z6dg zgAoi3(~NW$h&n2ir>WwZMXZF;J^xFV)H#Qo*|9HY4^=55kqNDbr-S8g^TYs}=KiI7={fkZ@Dgi&bKO|ZxAs2VXOcOYAx zA^tZ{M1(Kwq_3(7tY6iC@OjW zZ!XA?Ob9K|564QZ+Ks-WxF)Ggj87vE$ID)9LN*3Pc%>g6YnFuR&B5{E8#zO@sO0`S zwSZ^V=A|WP8&23e@-0ZVcrZywiYTc1%tE)K+2r@GGG3o=!Z}Dy&&TD^-EaSDLSSM} zO^;qnFH|%I1mgaEJ3BjDZsF({H#8)%=6OU9?%TN5?zIF^52WL778e&4sGU%F&)-b& zKhnJcYRU2ergrP?S!l5a`yDR}G9nXeu7RfL@ElEL$#61lA1-aaVOxw0+KzP240nbTFI`}nY=Bj)U^De}sMcv{ZXOD@ z)-W)*fa%uP|0r$e7ve_tx}fyxpfbe@6tiCL6dS!u7j{0D*f*F>!GScc9W4 z*2Q=_-N?glNXA+(H=z|<1tt=jXelM=aO_P)jy@P-_gH|7AS2fbXN6__-nV#zO?ZHnJtS3E6F3){fTtA1uA+L$wlRnsmRH z2cQh4PDEx%ZfQn@H7-`aCRE6qPOqA3-ohQO6i|5X;bNv7^K-}SU3JuWP%V6TxPjOG z(93TC=3rGx?a)`BaFRe@V4hSC^3ToIU`W)&9hfy`Xqnq@r%^|frv~j??)4bkvXCTK z>4qA~DyXo^q-D;IOH7ptx2qHx<7b?Tn!wOUh1Ja%We|HE*Fb7|?4}X;Ao9zkA*AczaSrMZ& z*_QZHoCFsasN?Wi!(t<;Rc%k@zvFseN@Zg(@(`iuO8JqkU8X%&!8)){;>#H9Mcb)2 ziDdy=hvvsGiamfI+N@0a@Djv%;h6h@tS-Ec0f*`z|3o-os8XlZl*ns&dF|)f%jp@> zW;zAza0Wss^)Nhx<}yiRnKA*?CHt6auu{p!eg;CM$}o4%dSU{Hhe?a%uKFHuV%3c=d?N>WT?nR%L3RGKTjKJian*&@`uN8gg_uN)G{85~?) z=!f3|gTY$Ck&;l|p5TZo&u(l5=TP`P3H@Uq9WWtJ@uk^qSKM*B^R@OSCs_$we`O10 zIFe=}!{L=O_hh|WDvz+-$>H#$OQ{?%_JwLJ_zeXIEFWJ$wu=-OotX@_%TC>`OZr$j zk`gOKU{zX}bL43@J)3%@XlxU+>HMiACES|o@6^DkLkYC@q0-@Ei zayy0RT(|s38D`d*&n-;|4kRM1Z4{PleJm**=h^;_h|I&lyk2bgy1OW`M?$W(Tjzi9 z?3ZX4Kte=JKX-`-4?VKETSP_Ww0SQx4_&(Dp|4cF-l#MY3m4v%FWZ1znGn(^DEiiQ%JcBr93yz{3k6 zc8&ML<$*-b;;`{DtONA-h)?hiaXgvW22Z^LPrVx5+vr*M@4(639Vt|y^vlkOXNI08 z%em4m*L-zN*}jr$fsRoPu1y$l)V4!E?Zc~`+WK5z&?x9r6_C`&m+_5)o%|>L~Xiz zyD$UMBW*u9)`yE7Xk(63uI@>RO|OT!BTBaH%Jjl&d=Z#)TmSWMX2xR?tvnCYIKva4 zM8}U32bv$}qj)`y$vG~VU^^Y{)}(%Q>}uQPeifUq zTI`ZwlK>f^UpP#c6khQsou|!)}xuF@77-143(YgX3olcn@4Axu{L~6R-Rhg zrjfuQqin=JU(Ft&%hJt`7WB0}7B*lQ|BdF%f@fNTjQ!Ozy`sa|fR2>=dLFwqNaZgV zMNJ;hq>(istA+CI=7B8GDN)kZ$~-ZPcR!x0T<7EEggBs;|ws_BBrqt$`xQfg-!DN=os?^FoV%N1jFjcZNH@ zC#XuCq)XTG;k19m>x<}N!l%B;QYQ^I=AP0y4u|!gEYbvIM=_9JFZXDtXgxXoXWP9G5)tAk(~qlI5E#>TeFm(D$GHQU2u z5h}Y{t42#JVro6a&UJr~`pGR5S%U&66J(5%$CA&arb z4Y1Mju-t^VZ86S#!^Hn{@t)Ru>-GwVkkG{0Il+qk8ABI8%hp3d-RGoU`+QgqSKw8X zftahUUrBX+WPOcG#ORqK^N1^o%+DmUW<#a?F!gM(RE5fj$K52;BkI{YGHj3CVea}e zI@66OMlO=&Me}tbrX0_}-8yms2WYGYr<$>zMy2ZTQVOTL#KhiCuUc!VGSQ&v!cW_} zTwmAietA(58KvFzKpKAR_U|yFSB4fmr4JhfH|RCpeGc0zOzS}G1@_HOvO0WVGH9M$iP~Brj`)W_ zfa}s~Hg0mjQU#@LKd{&Abgyt~`Q+?puEEtac#rIQeVvB4ToZ5+t5Tl+k{%Yel*QEM z7??A1ww1cJvx@2T3i9X~m217iH`p2e==$`-?Y^4u$$0>kRxPUQ9G0}Vs@h0=LTvqF zCi4WoIxg+hFA~YjW_Moe$anO7+Pxen7^^<GmEglMvr%py4EvI=Sw&@FTmQCuv&a zi9TQ*2$vgcjQ)_F5u&V(6^1cqz2*;KcT@-4WOby;@&h+0XbaBG`$bmF^(it{rFqum z2?7gR#hz6&8Vq4v0lB0Bii7eufT=g zaa>6YUTQfwJ(%!{`|}f;hr!LvZ5^*AfrrR9RO{!_N{0h&(c{B8Wo`Q38#=ow2DglW zrNb2Ka1q2gCZa;nD&`IYsp^5Gs$5sbE++5EY+ZjVgrT?X*cJ33vebpOx*8|ww7E90bwPwtE=yvTgk+I=wvd4Zj0(aU* zq1RINp8@N(U6N6&`I-9*&T`FxWFp;xNsf7^C=a5aCJWUs5fd^Yd5LXz?X(`Jl_O32 zyzy42p6MGr#A^bbN2hxmk82|hQ49K@1^b1DJID3jEVD6tvq$YeLjz5(;Y{qS)`q&x znFAqb+c}KuJrM0n2~y2xQbfIJXNFshkbWZ!B<2c(luG5PwdhLogNa(= zrv^cs2u}=erDbJ_&RZ9sZB`oXh&?h{08kTLSh`fD3;=LB8I}zI4AJ)WA9#+`%4$*^x1>s!Mmat*OOoUnS5UE&o>KTMGpj$ z-Q9vobQ(QfU2lSfzL85MjXniESJ1Ur(2GxBk^t~+sD|%leAf9~m2cu$8VB+D3cwt5 z>G(5O1?+t?j&&Lts!d1XKPPE*qwG7Oz~sr(V0Jj1Qn1|_ESM7sjhD|fp(6H3&}nsx z7qP)JiO9D#!b&3>ICnw_>VcRU(qC9>O=SRh4!v0i(c;ZFn^&Lse}rAs>un;S zN%t{PiHqZL{|!1LOf*(pmu;SA1fJ15&L((Y>Z^RBz%ksiO{0Ov{KqjR1r=o#VHUb@ z-H7Z1R5f0_RgeVH%q4-ejHrT(^+Z_aTuI*#pa@7L(5ag-9x+`4OA zh2DO4Rt(WzdzyES@DZp3iMho9L|2HvSOD)UKVa_VUSVs%%fEAN3`-5vzx)8O`3@mw zl;rs8yLdvH4>t1U%HXOk3H790YiM5}^g6Z_$v~k>&E??PP4F9%`2G#R_QwBPZM@b5 zLGSU`0(jX|^GU<M1lXl)NVc^8Xt@oQ9DOMgJl?qkPFq&J*eASxzf1 z6xxfzEUt+KV^RnIaktL-VA_afiaoRePQj*5^%xd)bt9@J%^-v#rf=iI& z#8ykH(7KY95*XoYh?-t}-G7Iy!JlCQBo{u5flR4D!7cJ!e38S7XK+`m1F}D_j&!HiYhCT%{{bbn4ARPr%- zScm=KkdP@>BvAz%0s`Z|xs-2^Vn?7e5f2M4;EC7iI|5*XV=ofNn`*oDj$ULck9jU; zkQrR8UXdokr&60??yoY<`SRuNi&5|mmEVh~%_&;o!%M$YzE^;5*ioFeDb+=9Kh!V& zPJs)u$j;3@qKQ32Pm(mZ2sXsytQ79QDqeIME{u+&%*RP-VNHW|XxsJ>0~LNR>NAM& zEReNkGf(EG&xD~b3ipp25K)LWV(3`8wGvFlSErz)e27}VM|$uNOu4R0H3Zpmx8scgL#m{~B0tM(?sSQ+#;=P^}4%{$g3@OYlg_m1#c%PTY z9juf4OVvT^yYjG+I~uONS5<%Ha4Gjf#?vzAXCYMOt?lyTuGe} zi~TTCZW{}6kz!uTT(!8%sAA#=h>F?1s>8s{D5jRTt27EWBlbE%1OV_G_fKkVzficD zC{OKeZdZSb@0j3734m&w&PpXhG4^q;+ZRn2NQDYJRWm!4hhQfC6SA&h8xRl^Qz8oU z-*=xA7!K0f37{o$H%kyc@;HxMs00vr2|05-&|SYKe@8WNmM(( z$7PKcXKJZrhKy!dqqBDe_V0f-Z|vAh0AZ?O(#FPyM*!T{EzSsJif37&3?9CVKJ?lt zVB%RbVP-c!|87mB{@6z%)N|cT9-_62oSY7Ho8mP6b909!6lz4MSy)(T`h0Q%n)ceh z8xVM@vHtXNmlLR0WmX@4&2yn6c7z5FEY(G*4({CV?C!pt0~*>a!vzbt91|eH2ZpcQ z+O`N;NYPy&N4vVZAikN}5jyExyN3Bo`lz*GTi|JV(^Edn zBJ(G$Y6f!R<>a?^P7oGUy7`@+uD5?{dsOe7kKd}PlKLC!_gSESX-TX)y^(Ecd<+7} ziMA0E9Qn?)=D>5|``w0qFi$SK`+1r%{d(EVOAF0QE;@@b;Tk%<*nh0e;sO{tT+@XqV3b}CIIvsRwRW;! z)GJ`<0`DCd_Idl2Oag#t%|XyzW&)2I{6LdjFvd7qX}ryq^|-Qkf9Ln=_SfqIDmoJ{ zOCn_tE|B&O;qhQ82(f6Iqy?kD_x$5f5qN_@^;}7{zRW$1uk0Cu#;?wqde&$3F?#RC zm$OP>as5GPw5CC%L-ymlF2IKObM2)I*J~DNRxmR&_W(QC>^^Y;lTiZ*zH)anL}l7? z!zyX0!ozJbFP@CQxfQTlV;02@CzJNUvD!V1`AC+E(({Ka6rC7QQ6zpkd!RN~m}N~j zbsW4(t8y{waQfn@CAI5%z`e+N7kKbl7A=UZv_+mRNV@~;qpbBOF7pSz z9%hjE4-l^El314Sml`Y95enI6Nv3iGYU+wwar1dto#$%5WzU-i$5A(u^Ob6n)t0`4 z@^vn9N)liN&U>NJ%ht}vRshyp-&pfHGXZ?yWIf+hV7lENFZBZ2)y#hg;3-T1YRUn_ zgejwf#8Nk46e$#seU&p8-*iuGS=0$rQvwqIgPp>xrMiJg|Ngs#vvnrP4P^a$Qg2c# zg@h`}&@JO{muZj>F-?29Z|~j+1C4K4sopP0x!-)J8v9H;9gg>GmKDru`Ce0w69TGi zzOSBOc#fn)V*r8PGB(0D&}yd2e{Q+|sFSZfu=BB<9058G9aGlUgVI|ifbtcJZi%a3 zfd&%BYb*?Y8LT_rqCl6wXuQS9EF0}Wr4%I3~_V*p(Qu77gcb~T;rVj19BvT9x% zPzOk=)AzAH16m*y7hBsN0{nVY)%n8hccbRl&*=9c)p1?GcroDjG=PYL!oukeD}b*d z8651eh=~9tPnH7fKtfmeM3YSeUl&pA50LFjB`N2O>(brzoeCs5);VcPXO-e9!{cO86K+WdjD9Di}S~3s$~5)(KWDWv8f8FKlgfzASGf;Uhe4(L%i(nZd6dVch$jF`jq& zIm=Sk+Qc2~`;PyCM)NnG+)4VqSf}$p}K!X=m$Fe}{pxZL8@*2wD6?I+Mzl0S_K9 zH_S$1l~WuU-0KDLYd81-0eY)|F$N^00)}K?KEGtj8N!vP4R5__J8gi|Ue}+ka8WDovA}l^$!XPevB@H8m`LCJAyk=O(T;D%QMbI z&C90ZvcQRDz%afH^=uXdC|Dr)V&t0^VQu=EFVSbe1Rg&;`FU-W%5~|zVBc>|^ooxM zo#=hDe}6WinDXWivUG}Y9h5fg*c(e1^Q3Rd+3!CS32`EmlAq>6UWV^V!)69|etH zMZqTw%hUJtu}nr9Phb|YgN@|xuA_8w&`+S6RNv*!2whETpid;8Zw$ zPqshN9F+!iuz|ug-a83s%UI7D(Tj+byu5wYs9DwnZ4u4xl36NKwqpgtI%V=N+g@m! z?%d`N{ke)xIVydVNa^8n%yOI#yeNFm4qALZeb>wrEL>im|Me zD?%;%_uOw$eN4))?s!aa2!mqZ-%n3`Mf{0X^Pv=4`1AZ(J#{`8;=yR7P$7QCLXpKD zA6ItTOmfq)hYrWRao6JO*D1_uL#XoS;p_4ps%XysAvmB*Y4)p&tmgo~9xybwbsvtu zwyn|ck%QglS6?s^zWV^rT8%x_z^!>h`^yBEi+|JFYgDili=)LbVDG{Zs9dyWBpubPf3TiqwT z)_MWP@WZfL2MN9`tb?Ze?Q5`j2lV<=);TbjpP-oLy;z21|$Z$PZIJAx{EZH$U9iQOY5 zScI=mAdK_50y@0bG?4iF+@yUn>Qs&wVI~;yj94PJ?xl~U(dM^clqupm=Vu6@d z{^l&O$`5w@L9Ti!#ETz6?|DR)gJ$f_k(~OqOWH8KJdONa_Z`my*Twa?lPn~WO7@{J z-<#E7@uT0;6Kzw0aWF0@*4W1%-3@m`ny!fE0#qTN+Gaq8zdj%VUXq&o&74|M^j!$B z{`*SX=Vq?m5GeN*_SZFK&+ufO**2DNJNx zKkiy)F~YDyhDI+0wTSO;@crBF z_110)z|3e>%l99jz=pNKZhc(usb7!o|Kdy$2w-mJqfo%mcj7+8lB4#Rz7fSPyW9J4 zL#;vn%QIE8EVzJnTSA0KrC?4JeA_}elmo=55#8mhriQg1k3k4fSAru_B~sb z;4ZWXl2@T&4!)_JC|R~*(FsaPT@tf*y$lK^3sktM3C`Mh zWEF-*QWDy|%#bVjG8!%Q2o4x@%DyZg_8#3L6`LS&USQV;LFPATx_o4kER*3sabTunx!1H2ZMLf!gMe3{&XWWcmmTA2gOUd(_0rLMIG#>4#RAsB=UKpk_~+teE8OR9Da}3j^{tzN3ShE5bxs$9ne$u$^JG)ngsTC*) z#aF6Oi-_2pyUzw2hxn=Zo_^RPAUDSd1Alu5t7E}w_Y2mHy^Zr~9}+8#Z~U}$UASb4 zqL32ZN*se;F6u!26Afn~UVnKoU#U@2={t$nhka2LH4BAH|IDujiV-B1PBAq5CQsF( z5;rB>6u}1izyin~~6KLKQoY$l4jVNhW7x$4H)AI2nYZW4!}I30a!Rd-A!SG08^o{gb0Y5$HP!J zyYjGt-U11LK8IJ`_0Ic#My#8x^KRX|BW}iy`%MD|1CiC*;-7e?CEWBykMHaA=ZE!c4$&zVdmB3zgcrCD zzRyQ`cRs!kmpg5bt7l0_5COAB>6rrQrWZ<^O+adho1u zu>6zk_kcZLr8n{C<|u4SojnwM(rD^t*gRCjpD4cPkYH4Be8umgANwI={ecjSAf|Ob zq-m%H0kHi@^JX}$aUR@9tncwZnVL;=%WByIQDG>-$pc&zfu~Pix5owmU##uC2jS_@ zLMJpBj^&;3*a*Tl&Gft92$9oQ5r+j3rI;Wnch#^K)(-f;(;6Af<_0e_0&7~hNffE*AU=WbIx_&xw=PQax(4$>HIQ@lA1tw? zgc`9|zc(1krw9R1MnF*@VNg+SX>nuBFjB6cUr_?+dP4Q8lU zTQZ@}&}rZR`$@Sgd)6EsYz+KwU+dgnryQ4qGVazFIyhqSi;^V5FrDH;)8hv7EfU^F-3HqJ zkT9Qn8?}#x>LJ@of+Tv-i*}QbKfxcu$Kw~cmn#1&BeU=m20IT5pH!iV9Bspx>W`0v z>J2KKUscq@@&0g<(2K~jN4I@5BJa5Md1+c$Sh#I}!CZdm-g6lzh%w8rV#OOti^}kw7@06#e7O+W z_V89uHRYbGpBy_OFq%yfn z>*B=oB%MIS5$;b#(SkJQ%pdRCA-=V%%QDtb*HTv?cMMX8#5bILqL0{;tv12I3E6>$ zoT+7!L3k`aXtosl7G$EaC^4SN+ucA%N2`Bv_b!>!m3qKvxL}7ep4ydQ>pI#HpC(K1$&hkIkBg@Ea#m~?4ULj`UKt*=SFw`aV6 z3ka1RvWGRVzbiYSQcHuguqNnkmtJRqum$sA$c6HKY;R8(wmZ%YlScb3voocDM34bP zeR>Ks4n>lQfyQpm1)1s>G-u!-o+XP+_k2m9Uv19+HYimi~7pxM^4xxiCsX1H4=-j_|(&b?~(lS&4!@Mza1y zpIZ`Ul=ivz2l1vR{-SGr`=$B7s+jG|dL{%4spFeP4 zuO=cJx-p$5iwi@z#oFaUkp98&JLW8s{s5w48n0{f;H`w1m5#|2>8XcuduU<=j)GX4 zXxVs|i92=J%(Nz433N}y)92JBAZ+MaTHB8%6h(srm!GUob zp!(x0Q}S|~2TS9M90=@b`@s4^7x=Qs-+A}n z@4)H){{8z7o|fRh|GfVnAM2ty2f4q8_|3EafK2@K8|I+JcFe@K<$yv<>&t(*02H>( zJ4x6J(T!{-M!&g})?flB#UO8#UN>n{eq4gVWZ0w0o{!L&rdb0-*t7XY6{X9Yb6R{j=0%0@P2Coh|gxAk!ALnA;C!BCqz2RYz`Y$ zWzb8KU#m@UYASA|zBIz5iuClG1!g8`e1WlI7tr8{1|J3C?0sIk1l}eWd&3cZgS4iV zk1BV#L8zG)PVhGaapM!b9S*3xZsWO$shUp4ztXwQTGtaeNjG@8dymjaE^0BuXh~Fs z@RLcp=c}$m+qw-;xbA1(`Y(0iEexrMZ>_toJ&ghFq8u3zY`~kXu6t(LaJD!CtQ|PG z#EJjkO-_xa3*REEM7z(flvBZcJg-|xjnTwmjVLR&TNdZ~WxbKj*rmh!PC0nTTB%~&Z-+Qqq znGl1fMjY+w&}V+Y#lbd~6eFL8cN@NX_Np_O@mj!nLcU$@b2Rb{lZlnFxDgv3QC|L` zucp@n!$fUCo)nsjRTH?0)Ca$C}vMaPRjBuWNW~4VNdWT@(W+B%?iw z-nGE!SE{F;9TPZLL>J$LAKT;dI}~uv6Iad47ZXfg{#_(Jq&Lz)A~9kT_U{JB zpB_@EmG9xBpUTta`)7MEt``IH7$$;pczO@rqmZ5<8=PPt7WO zJi^~=ch@n}vFpb|+@A5WUyC`x-#_~(_f*jyg*1kKY{RpAV&(q0xP^wEiR%~c6|Cjq zci^-!jps$_*T?sa&{W@&*?urEboqQ-amS+Paa#dpl5)t!?e#Z+!m z1KVllp74IH+j5JjBbL7_OQvIlWtDEvYuSBd->hj`*ZVZ$W#A$F%2QWEV0i21Zpq4K z>trcP+u-d_DDBOv;?Q4di(N#Sm3!SP^~$pqQX=F2l{Nq*-$FA8{a!F`>pFyt{cG4B zkMb78R&Ak$CFnLZ^=nHwFKtO$FtgOb9<;%+(Hp?anj_zd<>LpN`$12*EyJ3X(sGnC zX_wV$SL7Eac5CZaQ|?qn4#2F>&?mAS6i5$)3T=wZ;xv6)ws%IuaLFh%2););4wn{I zN*2a5d9?pDGr3{)H*jVZZC-@GYU^YiPv_x(HRbIX_j|Z|U8inzEFboT!f&N?&rcU9 zncMA2Thd(}XB-e{`-%4G(Z(OsxP7)8eYyH>H~GQXj`H#ARc~2S`2z(?GEDL_kspU| z}uQ`{j|$*lIyZ4rOxZzoXl>dR*a8-Pl&au9zWjQOFA?99Q8i6 z+GOo9J$(SAfbGoi&BE{o1?4(%pO`V zj3SJ6)v0) zZ)))>68~ycV>nx;V7TD8aBlYMZ;Fe0x~JM5-%NJD6W7tjwlgaGGdSGsBp32os1iq#tO%4Bd#6hL2;*y4%M_?@@U@4~ZQ9J~iz(FcwY|w}Fb}l)Lf%C?7rC zIm%OnGZ$7|+}bb7QABqaqF+jEduTsUfL3-MjZh<8KwlF@cKxm&_mX&>*TB`3@M^Ck z9Foxf#e$~knF0lwTlY@Q?Yv=Th0Qs@<1`%7raH$Xyb>}}gCRz*x8wf*VeKuT;#j+F z(GVacXz<1pf`s7i5J7?`kl^kFcNz`u?w;W8?%udVS*uR440^Zx(8XPo!$yRXLR zQP2(D)m2}8Ypprwn&0jov1*$);QbSs(l>F@({SGvAilB}aJ#s={cNy$P{ooZ3G%E7 zGPd9AqT<%Sve_TpA5TJvFLPwH%V8GGv7 z_?_e}CV2WP8Y!)Fw;c4$nl^ipmzZZCSC3429 zYUGk?j%t6DVUHF&3(;`WDD_0zMR7=Wdz~0;0Oq?TPE8%O60`a({T>#VCmJ{T50?RU zdJSmiQ8~XxBjT{w&Wzo8@88|mb?9)Zb=OT>yQguF!k}^8F(KG9^th9HLS6i5`rx6Y z?(}$DL&^0mdXadsTWT8Kx#Nz7m55>8^qkjWKAiq}SC4$P9rL;10KRdYd9w_}ZT-L* zufTLpcCH5J{iJnibGYxlQ*E>RsY|SiPb?W83qz2q`m~#0_9{{B99JFk)y!G2Gv&38 zfZ+g(v3kEsU}EhJg0dikq?>y+6ywO?AnZ0)f7cN@wc4@LSb%uxUGU>?Q5DV^7DZwXN14Ugb+!=a#{h|d2H<%uOnUXc#8NbLp)=>^Mx zhEE&d325tV2beiIA$xmtyU=0-KsQ>TQXLW>AKz})qNS#)uzPTGwuNz3IMV4WwR?L< zFHPCN>Oxj60?8S-UtEj4*yIwFa7fHvOkdCZV2}q?65ZRA&dD-2shgIoxT?Gk{07Zq zqkJ+!P5silkgM;A*swYp6Z0BQU#*i-L80+|t0B^5ZK_UoZFFLnxo-Xf+FySV&bs>a zZiO?XM!LUO(*~`Y1G>f3BN4#>K+CWVxK;jj4;!_x?VmmDWyYu?2AbUi$tcO$3LBmd z;MJkTEG)cm_IbzMLf`wxrrQH2|E7o-u@zQi@qlrG#u19ZQYVhFA3yWuM1%n7;%gs} z`h1{-AJWy=_lYNfAG11Y^U_k!&;0OL{j+AWV>la4M>H za2msOe~b*#?r2L+p+8?`Mq_X{kd=;o`d%e0c1RXaqL4vNOkLR_1>RKn>&#hS0)&i_ zz?USwMzraNRSw7t6Z_5U{2zIAtsr5q_MIhkmTrlitlz|SQH@?-5r@OGUmI;R#Z8W{ zdyTW&jsnL7RQBER7SnpMz{1A%R?}5!aJ1Tyes%&KiQPF>J z6Iz>543RO9)85pfs&vP{u@RPj5%@Txpo7ni_�^B(U5XzUAYur=l41X;|W@-ovP} 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 TSn3q37=Xaj)z4*}Q$iB}ub!{q literal 0 HcmV?d00001 diff --git a/docs/conf.py b/docs/conf.py new file mode 100644 index 0000000..2054f87 --- /dev/null +++ b/docs/conf.py @@ -0,0 +1,13 @@ +extensions = ["myst_nb", "sphinx_copybutton"] + +html_theme = 'sphinx_book_theme' +html_title = 'Interactive Tutorial Demo' +html_theme_options = { + "repository_url": "https://github.com/danielballan/interactive-tutorial-demo", + "path_to_docs": "docs", + "repository_branch": "main", + "use_repository_button": True, + "use_issues_button": True, + "use_edit_page_button": True, +} +nb_execution_mode = "auto" diff --git a/docs/contributing.md b/docs/contributing.md new file mode 100644 index 0000000..5f53661 --- /dev/null +++ b/docs/contributing.md @@ -0,0 +1,163 @@ +# Guide to Contributing + +First, clone this repository. + +With HTTPS: + +```sh +git clone https://github.com/danielballan/interactive-tutorial-demo +``` + +With SSH: +```sh +git clone git@github.com:danielballan/interactive-tutorial-demo +``` + +## Overview + +Each "recipe" is a directory under `docs/recipes/`. It may contain one or more +Markdown (`.md`) files with a mixture of narrative text and code. Each recipe +directory may also contain supporting data files, scripts, illustrations, +solutions to exercises, etc. + +```none +$ tree docs/ +docs/ +├── conf.py +├── contributing.md +├── index.md +├── recipes +│   ├── executable +│   │   ├── basics.md +│   ├── matplotlib +│   │   ├── interactive_mpl.md +│   │   └── static_mpl.md +│   └── static +│   └── static.md +... +``` + +Some of these Markdown files include a header that describes how to convert +them into Jupyter notebooks and execute the code in them. This is described in +more detail below. + +## Setup + +We use the [pixi](https://pixi.sh/latest/#installation) package manager to +create an environment with dependencies from conda-forge and PyPI. We recommend +installing pixi. Then just: + +```sh +pixi install +``` + +But if you have a strong preference for a different package manager, peek +inside `pixi.toml` to find the list of dependencies and install them however +you wish. + +## Build + +```sh +pixi run build +``` + +```{note} +Later, if the build results get into a broken state, use `pixi run clean` +to start fresh. +``` + +This creates: +- Executed notebooks, generated from eligible Markdown files, under `build/juptyer_execute/` +- HTML under `build/html/` + +Open `build/html/index.html` in a web browser. + +## Develop + +``` +pixi run jupyter lab +``` + +In the file browser, locate one of the examples under `docs/recipes/`. Double +click to open. + +Files like `docs/recipes/static/static.md` are plain Markdown files. Files like +`docs/recipes/executable/basics.md` have a YAML header which enables the +documentation build system to convert them to Jupyter notebooks and execute +them: + +```yaml +--- +jupytext: + text_representation: + extension: .md + format_name: myst + format_version: 0.13 + jupytext_version: 1.16.4 +kernelspec: + display_name: Python 3 (ipykernel) + language: python + name: python3 +--- +``` + +One option is to simply edit these files in any text editor. + +Another is to use Jupyter Lab, which can open these files _as notebooks_ +enabling you the interactively edit and execute them, saving the changes to +Markdown. + +![Context Menu: Open With... Jupytext Notebook](./_static/images/open-with-jupytext-notebook.png) + +Note that the cell _outputs_ are not saved to disk. This is a feature, not a +bug: the outputs are build products, and they do not belong in version control. +During the build process, the Markdown document is converted to a Jupyter +notebook format and executed. + +## Test + +The script `test.sh` runs files with executable code from top to bottom and +prints any unexpected tracebacks. + +``` +pixi run ./test.sh docs/recipes/executable/basics.md +``` + +`````{note} + +Sometimes examples are _expected_ to raise an exception. These can be marked up +with a "tag" like so. With that tag, the build and test procedures will pass +over the exception. + +````markdown +```{code-cell} ipython3 +:tags: [raises-exception] + +1 / 0 +``` +```` +````` + +To test _all_ examples, run: + +``` +pixi run ./test.sh --all +``` + +(Above, the script automatically discovers all Markdown files which have that +YAML header marking them as executable.) + +## Deploy + +Once changes are merged to the `main` branch, the GitHub Actions [Publish workflow][] will: +- Publish HTML to this site. +- Uploaded the executed ipynb notebooks as a GitHub Artifact (useful for debugging) + as an Artifact associated with the workflow run. +- Push to [the `notebooks` branch of this repository][notebooks-branch] a version + where all Markdown Jupytext files have been converted to `.ipynb` format, using + `pixi run ./convert-all ipynb`. This is suitable for use in environments + where users need to be handed Jupyter Notebook files directly, such as Google + Colab. + +[notebooks-branch]: https://github.com/danielballan/interactive-tutorial-demo/tree/notebooks/docs/recipes +[Publish workflow]: https://github.com/danielballan/interactive-tutorial-demo/actions/workflows/cd.yml diff --git a/docs/index.md b/docs/index.md new file mode 100644 index 0000000..97bd833 --- /dev/null +++ b/docs/index.md @@ -0,0 +1,8 @@ +# Recipes + +```{toctree} +:maxdepth: 1 +:glob: +recipes/**/* +contributing +``` diff --git a/docs/recipes/executable/basics.md b/docs/recipes/executable/basics.md new file mode 100644 index 0000000..1f783f7 --- /dev/null +++ b/docs/recipes/executable/basics.md @@ -0,0 +1,36 @@ +--- +jupytext: + text_representation: + extension: .md + format_name: myst + format_version: 0.13 + jupytext_version: 1.16.4 +kernelspec: + display_name: Python 3 (ipykernel) + language: python + name: python3 +--- + +# Executable Code + +## Basics + +```{code-cell} ipython3 +1 + 3 +``` + +```{code-cell} ipython3 +a = 8**2 +``` + +```{code-cell} ipython3 +a +``` + +This cell has an excepted error: + +```{code-cell} ipython3 +:tags: [raises-exception] + +1 / 0 +``` diff --git a/docs/recipes/matplotlib/interactive_mpl.md b/docs/recipes/matplotlib/interactive_mpl.md new file mode 100644 index 0000000..6b5e59b --- /dev/null +++ b/docs/recipes/matplotlib/interactive_mpl.md @@ -0,0 +1,65 @@ +--- +jupytext: + text_representation: + extension: .md + format_name: myst + format_version: 0.13 + jupytext_version: 1.16.4 +kernelspec: + display_name: Python 3 (ipykernel) + language: python + name: python3 +--- + +# Interactive Matplotlib Figures + +Specify the interactive Jupyter matplotlib backend, backed by ipympl. This must be run first, before any figures are created. + +```{code-cell} ipython3 +%matplotlib widget +``` + +Creating a new figure display an interactive canvas in Jupyter Lab. + +If we do nothing else, this will display a snapshot of the currently-blank canvas in the rendered HTML documentation. To avoid that, we edit the Markdown file so that the cell below has the tag `hide-output`. This places the figure in an expandable box, hidden by fault. Alternatively, we could use `remove-output` to fully remove it. + +````markdown +```{code-cell} ipython3 +:tags: [hide-output] +import matplotlib.pyplot as plt + + +plt.plot([1,2,3]) +``` +```` + +```{code-cell} ipython3 +:tags: [hide-output] + +import matplotlib.pyplot as plt + +plt.figure() +``` + +Plotting data to an existing figure updates the original interactive canvas in Jupyter Lab. Users can scroll up to pan and zoom. + +To show an updated snapshot in the rendered HTML documentation, we should call `plt.gcf()` to display the current Figure. + +```{caution} +If you re-render the canvas---such as by displaying `plt.gcf().canvas`---that will cause the cached snapshot of the figures above to update to show the latest version of the figure, ruining the sequential narrative in the rendered HTML documentation. + +This is due to a detail of the matplotlib--Jupyter interaction. Just know to use `plt.gcf()` to safely show snapshots. +``` + +```{code-cell} ipython3 +plt.plot([1, 2, 3, 4]) +``` + +```{code-cell} ipython3 +plt.gcf() +``` + +```{code-cell} ipython3 +plt.plot([1, 4, 9, 16]) +plt.gcf() +``` diff --git a/docs/recipes/matplotlib/static_mpl.md b/docs/recipes/matplotlib/static_mpl.md new file mode 100644 index 0000000..c47e0a2 --- /dev/null +++ b/docs/recipes/matplotlib/static_mpl.md @@ -0,0 +1,35 @@ +--- +jupytext: + text_representation: + extension: .md + format_name: myst + format_version: 0.13 + jupytext_version: 1.16.4 +kernelspec: + display_name: Python 3 (ipykernel) + language: python + name: python3 +--- + +# Static Matplotlib Figures + +Specify the static Jupyter matplotlib integration. This must be run first, before any figures are created. + +This disables any interactivity, displaying only a PNG image of the figure in the Jupyter Lab view. + +```{code-cell} ipython3 +%matplotlib inline +``` + +```{code-cell} ipython3 +import matplotlib.pyplot as plt + +plt.plot([1,2,3,4]) +``` + + +```{code-cell} ipython3 +import matplotlib.pyplot as plt + +plt.plot([1,4,9,16]) +``` diff --git a/docs/recipes/static/nsls2-aerial.jpg b/docs/recipes/static/nsls2-aerial.jpg new file mode 100644 index 0000000000000000000000000000000000000000..98a271b66d7b3a51968547024d14d3278e0ed2f4 GIT binary patch literal 232512 zcmagFXH=70(=ePy0vJjNV88%@M4Esppdo@%LhmIM0SyVE2}lV7qQ`_LU!0@k1T~gBU4(T!pBr@i(p&r4&kWAFq!4UC;LkIDO2MPMRcmf4)NWl{@|GCt5r9}q> zQe3H)|0!$t%~8+L04AH>DXu{YZo2+Z{l6w{l5kM3vpK)3iUKIHk=i~wxJrU?LzbdLINn3hp2`Y zmZoGglBF4eU|~i+WKK0Flc<&?Q&URhF|5vmQV?0A50#3)p{L8ujsVgfw*VAnB6{78d3tGa^y#KWPH~hsFQDGzWKuAN*G+ z|3_&54cg6@e?9(JqVB%@SE{ojcJn)WHvx;ybp`j($>}1!X7$wYX}Gokp_T(AP5Ks5rse?A|Rjy z5QG4LRS7Z>Qy2dzt{M?3l3Uebwta8Pl@X1VT};X&eXKTj>+F| zc@BW@B7qQK1mGB8A*nBeZn8>kC+BFCEK@I60RwQ6WdBhMYEO3h=3Q!}!TNXt!CuLF zSnfNU))?$-LhG-HIl3_lm4Sa5p7UV9P^$y4T_?trM9hGS$zWlI^wBSm6Z@yqPNMK@ zlmwbx^wLsmk;_-tF7!|kWxVWqf}T{^VKy}?|BI~Rk61N=`q`igbZDg|k3NBS7k^YTQNd9~F`%DQ=cH%c z&1?&u_9FC{Xx}MW#b$h{s{Tl9uoa}s95^vp&fUX!%6hkR&xg~pZPeJhDUe3~w8Z{Am3X>GSkh%wVxCyhb@$UpMHA863Z7#T zFAZ9PYABA~$!7-o0{lP2FK9L&OQcw_hZvG_o>wkN`*m=l4P)mn_1%Wxdp_pI!hq9S z@s5Md$JnC=^CC_Lgzd^Wd4=NfZnR+DdZ+B#Bn;Yd3W*1sUQH}2Wsb}|LJiNmM)`7& z>4a#u4B30SI(=_AOc)e4MsW;71hl5n{j+}GSDmIb_d?Tw(QE6U&3z+Vw3k(6g9^; zk>k@*X)zaju2;)Lj=$E#SYA#aQH%%0x_yiLOKN`pYs`F5UpWPc<*@R%hBzI!%zQ?} zI!1&BwGnY(zyR7>v;MW*vAA;|9a}+HZv6u&7*^4_OB32r&{+56lokEdhz8ZxiX9SE zEk;SM`?OvzB8<0e@+)NM?|%SN2c?0V+e+6j#0B>*zq(n=3CQHk3+yF33}%&U;x;v` zkwfLirU1aRHHvMnl47d;rw>0XZeRHN(~$anj!UtEf2>z~MQ;ZyXP-ZHGbUoy*~8?h zNzc;RFAqIH8<1Ner8CLEN6~eSY0;IxmjEOFsoHJSQt#}}KDe=A!5=*9hq8@I=QmpF z#@p2%aFg|VkRR*L(QXID4@0``?~O;TH!sZFOTyG*T46gv(Hj@#O8CB7di&rVE6gXb z`9g=&=E~k+g8>3A&@!lY1{mqoAG*j4OB5RSE>rF#Rn9-nJGTR1F62K!Gur&guioD; z0kw-R=T`QDi4>UP_4j&=^&N4o8#vObq~>Nj@IVS*f85@+Nt0swcvy~iMEg^l7u?*G zLXBKHfDgwcD{Uqudt{AWi$*!3z_I2me{IhGQ+2VY1h(4z3)TJP1x&Q>;jP7X+(T6@E?q; zX^m=W`2ch@hl@zRQ3X5*`{CaI=Ix^ERd~pt!STa!Wvol!5<`nX&(yWi7R3P2R2qtL zcH`L*oSfd6xFbZG(if^x3Np@U#JJn!NiD0MOAtrZJcWr=n9?JnwTy*cEkBc`Urpzd|1l&qb9c5Ade+>~Apw^W8yK z;8Z1N3vg*z0{U!Iv@W<%-AJQ4rYz-q?-0b9Tu7+_=QfB5;Ol}AxZE&s;CrUAMk?44 z{(O=LZ1}wXuBwqMP5&jKofISdScXG#Mx$VLNrn=a(D4=Om1>cLR((}yYX}1MxdAYy z*Rm#xql>0V2kB+%rN$&diEtjJ!E|yfP)fW6*nk8}1u2TQ_fzGJez?m(kQ&@d(+WFR zYav7G;=3JZGln7W&!MVS)R!-_>Tsl>gr` zc!Z&ef-*ET;GXSBx^Q_$mTqbUaT!J}k&HBLGBB$j1X}rkfQd-s0-My4iI`~z{Fc-J z;eAyOZZ)IA&Yp{79$U5u#B7(P=~svwU&qQV63@>9m^^k!y_05<=b6n_K%$nVYhtbF zYAO;EyDAHUfgBakYf&Z3*+)k)3i+3#zqXrt1s3ZeT|0oEJB1e-Z z>WQ#KK-6fPiL*7jMzZ3MQM_fOca$KwLC3bm5g>KTqO}*3ElJKSB~&R|Cl7H@LB>W$ zw337~#+w%u3AH8)=VPOhHoAsd((3#?h$HxDAKuGGxL{+Xp46Z;eHOQ+hsAMpo_?P`_?)(w}Gmx9eS;frJB2Q_gv(F@cJlAP>6fZkrA z-H0}Q%IfoQqzee&c4(K_K2r6+YQKNK zw=&u=8p$E5^p{!t8Nxp)-g3~AzNLbgH4)}#Q;etGfA@wiJc=1Aki%-dt15Agfu7aW zISkYrJ8i}RiQy&>Rj{FXq9Hki^ojgCzlY9hipp3*1Q$}JKXZ7Z8b|kxwOyX<<3J2; z*ZKOD3|V`m%+Wrb&wy{0@Q&qjS&jrrsoVgAPDu)C77v^@QfFc;iCUt8m=#Ru`_U#{ ziK|v;yxuy!JON6p6a^-h-PXwY{>TG(2~TF!U|yc51#KE=oJYJ-*{dffYjms3KXc7H zna9iy*UN*ImX5I5?z&OWBhZ9dORoSC9nqnL#d0u%Rk8|34?AerC8_dq)e~ktP^V-x z0Ra_9s245V;)j!L|R*|Z)9PK3NKialjNDjO(TqT(3q6=GJS7Kvdg>EkC$P-QgV z{trFkSDyPu@`89^S`RSsnShz54|K_ZxhRZ_ANmqp3|HZJp(52QdoO*)tc4{NiNCMm z%lSP%=Wsuqx-t7|Ttr<%CI%g&o~8lDfxN_);-^LL`jUtpSfM&_o#5${2atl94xXx z{M3s_gCfo*$^rC#tB|XYo3+E!XHq6At)xSb98tK1<0+gC+23ijZS;N4yg)62xF!uh z2as*8xuvv3FEMnI+OD2_8w!tQW~eudYq&7^QKK#L$$^Zw)sCjth!15sTszZYovO1x zrc)u-ISb~>fXK%10>}0}(Wj-p&pLxV?_?Yu%|bJv;4CE)q{k$$V=NVp2XGCQjbokN z;Ul@D=fCcWOOVlu{U$VyLfBhl0*1HFy?PE%!>U%un&x>4maVhv+-pAj%ovnGK##Kssqa~bUndT<>e63>P>OpjW+L=;%BWKT)V)# zDcVYV3aI{L8#U};oz!rfV9X|Y7rkNR#l?tQAbZ5K*^O3eJF-I&p zC2FAX*yR`~oYsq|kn`HlbWSr$;5xo}ppN^fuBnRCf?MmvqNC;}l5&m%7D=OJU$5Jp zN>`_MmJV-DcRk?Zf#u%0&p5JL@`+C$7?w5w$O##%)xDm>5#ogJjMgJgc)Ep43fk9KN}E1hZ4RPM zdjX3jeBT{A#$tu^_T@UUm#m)HUQ*Yv-(ESMEQ_t@e4mYdl4cKS`^vTW^AMBqdt#>(AP7!~ID=;b*VFhOWrL7p3WRUMTVvufWG zURjFB)zA*ujqNo!^9qaHvkgZOkO+?j6BY>mjRE-wpvcr zrf;Cdv>xG2Y1)21x>B+4Wlw<5<-$|;y|A0wgpFTXKTDqM)9PJXX?v5m4<1jmeQ$s7 zSUmgj!n{T9HBaTGl7XvtM_Uhu=T;rs7}(l-ki@5ocNt$&k8|$36ekwwmSTg8CJgnR z`7(ixlp}dMtX*SC_?nb*f2r)cpTv+-rImMSLygr1=9;nOVO1D@qW2Mi&bB+I1 zcltt?)7D|4^?6c?2x67TO3N^cPWAuMBb7u-gOAflZeTE-2<% zLi0SiunGg5gY3d*9w5M#m-GqF;`Mc`V8L zmylzfi}0}wtTJZSc>T&XMG;<9KOY^lY^fnyRcG3t5ZMGtu7K9Tt`#a7X@{(C)j5-D zT*>ZyS!u!9P^TbD$&UN5wpcbWTN|}nmoZjdXSK2DOi}Mjh8(*D4;{FE^IpN{G!?&~ z$@f<`1(E!w&{ig^H;fjP#;ExaQC&2nkp#{#MtL}o%(+9W6<3zs_BPh%6{YBf z=Rs|sI^gdFi=<5Z$j#w?try4t!Os6~qm&bzHJ9X{%UPlu*c~_?hrij)k`bManN~d; zS$E@X{}{ziAgP1@HDlm?L~GU^bXIiYVlj(%^`Y81vPxEviuxTL&)D!hc4w-FM-B(I z03?RyvtssAe+!e1-dR6S!ujfnE&?V^%V1$Y>rCI}riQxT4?JYgZ6FY@$GBZc*Q&KEi3mIu)@-mZa3)m^r$Z_ zM1%JD&xYJCf1J-DeM&~UjsBSnaSV(fVow$f{{zql_TCT!2nJ1;%VGZYI@D#vR`c!V z{ER$9>j{DCo>y)^YJV}VbsL}39JFT^W3(Ai!?MRZ^I;z&VxaZ!zc*9)?mHK+vT{>a z1kSodi_r6>qme79xu8%eb!4r++xRp~18%7@#2Kg64H*hIN~#ZSp2MlsJNORX_aqC2 z(an2oQ&I4R^WBoqzyH8Dghv2oN9YVEO0m-7rKhx8R@#T3cEV$bQY_l5!PE`8J>?h$ zkWHPzh`40ry?Dq{e5M)s zY@+0cqd@|%9*(kJ8>9j9xFvD%=QK~fQ6uv<{5>d;oMHI(m0$xG5vI%L@7=BwEeGUd z0TPq~b+`~|C@`eW?VjkB4)=#Bc$I>G8_w zq#6oAL&A%1NXw4zTdEv#CA>HAnya_|h>ra31{h50jW&`Z*uC&L5y?Ai{N1I<8b;D%@MPd+Q)1!;fgc6i4NPARWY@ z0+&`;D*Q@=K!p%NG;oaYPXaaELXSk z+^)-kRu$OCT=fZ44AKMDK&PpoVEBN1DZoNHV6Bul`ONy>C#5;`WM`pok{#VM)%`eX z@Cto(v^qx(h()S5d+1p+aLXz}w@^`>jUZ!!JC}}2e#z^dRP=KKc|e0oD%6sF*zs7< zey3N^Ye#6)C*5;!((!KwY#K}VD!4UP9wL#`>x$+It{v_3ql39zfd3Ug%|5%qZ}C!t znmSBCZie!x`~F+GD901ed7gI4M)BZbZRjEm8imCcO22$bd>9g$oL9n={LT{FL zN-`uGTGK~Bg)r5uUM^b@0^w4UYE@yjO>c0@@qfA3a+>QR$0dP%S|!&?rQPf$u%)X; z4nV~yMq=|7(_fn3I!g$&Lg)*f0fpo%G(s>K{lgjG(0Y7sOB=b(J*kM4&a z`>DAoAz)C_fNK1xGCqbRa49Jf3chF5GRF6t7K{gRM?)Ekbjzr6aE=0vySXIws)B~u z$V+?{{eAkTcA3DRM1l-kAS>thf>{}W_*hmJ1b9hbhY$H&B@*kDZo*e8^dVElQ_N?|b z{YHtw=w@1Xq0jlH0otPh>uFdDTbwaqi(z7@!olrobuoXGAZVrK8yX&cfb)GWb7P|U z(_rq5r)UpONcKnC*7@J|qMyyuD5*pPXE?m=k(qh5xAFxx((ZH^MRU1sPyEGhzP_j; zuG}lGm;b>lT>55h{$E4;O_acOh4hM#Gqr;N$Am%m2PtzL95?;wa|p251`<;x|5ZAI zVGr8t`B=+5_%EW6%3;FEkMx(XMy3yyx9tTGaNtyryc!#6Ku*w6b&BSJZ?VcGB_&x? z4vqm)Fe2641=;l8MWAFLv{O;;{wYZbkM>%{eWVBNU$J*#0=3HmM6#?%`u6E)SdSKJ z9Z9tGwYds^@17wJCC!z~1v4A+->f_V`M0f@vfTw+-=^2WkZ)DQcB52 zr5crm#STf*WOE?!45dx?t6YW#N}w%9SG6|RK$ecHgac=BIve56uN67TP58HGduMZp zp`+}qly{A5#dk%^8e)gSFvSH@ z?&|&ktJe}@N7&DB^a?U#MGcD64LNG6@sfOfPzUQ_z=VF&^UKO@Jc?$HW3?BTlRF)Z zB|FbxS{6Un!Jh~47PvdJGG6b-(${wT(^9^|gXJlzTviMho&B<|SIDRY4zf~J;a-1D zlLSF^oDfRN=z?T|3pG#GCMkxmuDMP?ZD3cBvRCRvb%t*lE@o7=jf&<^C%8!Dal}gR z*C3rxgZj;SVxD}R#oeTd%TqfR!R4}$@eUD3lNFV-X|1|^C1V=uh>Y4^ zRdQ&Z^UsVPAwj4h4uh{je6>YAvSsq%%AKJMSyF&;?Tqn!D{=g1`kXFz#s+g`3^8v? z0CPVKx1|(vpkTxG25V@1$-p~VcbTe@4WqTxy<&nRT~{phbmMBH_k1yF+A!ISXD zbN7b`AsHLXPMoJ=NF>KVUx_Xt1GM^!Aq{x^Xkj}qaTs9eb|6LCnubc|8I9gur&)4XGs{kOn_PsmQE_FAzx+?En!ESSOxz4nyED3sH=w8EX}H z;G3WIrK=Eu)<5p6r-c+g{$mY!(R#(62DltZqm~XRXJ$_2W++6}ncHDNG?O7H;)(2~ z*R$iQ8TZ=f`0R@w8sO1C^gX?OKaCIWJW?@iZShW#DCM?f56+%gzsUlBeOQS>*tcWM>#3z-D1VLV1{rjD3jm&)XkH58bK-;Aw6R*-edl zPf#uWLuixQJC}~M1*&3#K!Hu#b*A)6>ZH)ZlJO8cfVv^BE?Kc@C6mB1j}dYF<%g4o zUSdJ+&F^RBi%tWa$UI+G4FY}$Mgq{>cpOG;G? zWzs^z`#S)b^qlc(y9yLd?}@S=DRi2?Od1n!GcY+=%Y6wuRMF(mo)?i`82B@Hphldz zPd%~mu_*_;K9hC)_*+mw05!BCNlT(564cq!%XU?*c*j(VwD8kzy%7mAmrMd=XUVva zt}CW#zR)hT^1x-;#(#R(ob;03a^E?CZ<>kJc6cb2!inN5G0M|#hK<|Hi2WKsQ|<@< z)mpSg+Q%aw6dO(r_RH!f0=&kvm+g0q6Q2;D2%I?r%h=e~J8PKqTquFx(7Iyk9KOyP zBandP(n=C`*&7q%a#c7zaEdxjBEN{4>L ziLY47hYpAsKuG9^iH~l@9}+t={yBdulR3KD9Ud($?_3GSbgrEYo70GP+UXC)_Jw6R z`~z4ul}o+i`y;Di<@JyR5f3%+AEAA>3+R&Oo&40;bBB{tZ=syM;4@Lrcdqj6cu^*1^WgzaR^EGscsfuCrFgTELmyj0 zj3%6M$8Z}MQtd8)1z0?l<7k{K>*>Van9)GNUfY*w!epT6_$gqySyGsTgpJ$RP9RM#~aNEn$d*I1l$IevKGwHJkfG@sTVqvQRK%q zh+N#(H$V_crtxT`($!23Sw^=vbVfpIq`KWvm>=L1QVm^pt`t?PgBnwvSC5@S$x=#0tM(%V>-;-3z73Y^xWWqGi;A7;=}IYo9WJ`d$#55A__P69XR8Q#^m(fgf@OSYmo6$5Pt2! z4AZPa=Y`gj(|sV>>bF?(`e^rsO@q|OmF@Vxw6^>#74>aK7CT2BwP*5X{ucOf8+!6U8)1#wp_diFO&^4~4Tz9zt>(U>(zCPBqCb@6zsfgi4H{ZpU zah*?9u>xq&l}?T#Z})o95TmVY#ji*2$h)xg-{!A9M#z}Io$=q?$6Pf}X=H#~#(!xU z@lHj5c)qF1ESR};gpEVK#S6KM6>j#gQwL+F2actBPcDwldrIV<+&omlg`c0hzL}@r zkov3n;@!sV?Z$*1d}X-X)-B1(qXy9DkH~4*TJBfcPp5Ewi=bB}nMRjf7BLn3ck4)z zOXhDNABmxBWhGIKAM8ml=CSm8t2Z*|TMf$ZP@YYE7{8!@20$@?8+or+IABkNTRDxjUj(|^Unl>dGowvf<=k?8BSdUn< zzGa?#MohPR{Pe=x`JaQ2|I8!(jvX4)x!XtQxgW9{fBf+N_3N?WFYJzYUDgn zSf?8uF{JGTLF9jRiUv;*Yp&{PssROSKPnGyz`B>V4{!%zqjgf zz1H+aRHTiL6I*o9-|<$O#_jjkGHRlva;H;MQLjq4bCGokVvB=r;e+QC0XyUT^JmfH+I)>$zw{m6{8#3z7on>NNk}Lq5GcD(Kn;I z;^B}-;M~$usDbd#?|Udooo6*g>A&#mkH?ctghKy&t-St7DIy1E$11g=RZACO13Mj!R4235BwE#;!XMnro zSy--kuKADSO|LyPfJCHYP+bVnW6R_*q;#BX_VDrbDDN&7DB;&tF zPlmiHI!E#$V&D^W#_^U!f3r&^c>$IP4NUxWk^DyikYY&%3N5@(Tds3(^Ckv{r8`a( zpIN9M6J(j6E>O=I!2@RsCXqu~gYtr=_K;=L#d+Jrd)7q2eJ6yeD8zKZKU)#>G&cjn z+C4J&mu9z*yp8;Iz~->x^be0W_Y^l9W`&O0vp1lqZXFSI$jDlm`aIQsSg(xnwC!d- zKr)EJcL%9So;39|z?+jQ>j-f!tvlwR*n6W77^g`++3~?A(e*X9&F~Qt0&(razVklD<01;=z3vI)V(`#G~B+dYYG~ClH=89)z542 zI;J2WYvaH9{Lxc&53+ELXf;b?^#;i2Jp6k(G+}xQWn(~SS~WkyDPah?hQrRSI#t5Q z>0QZkn}y7|RK|%#Nh{ROU$G&*_DHUPSyQg_-b8-Y<0F%WmNT-&cH`z`WRp!FFwq zX^NMPac?C^l$@#;8z;;#Uj-Y9e#MG!?m8snwD-O--IHyy?0woRG3;S5I4}VJ-C}Qm znf~2M8;?cEn~>+5m!oHpnsgbaxc#J7Y@qzLS0Zz+w^|qO^YYKY&!31!ytVO;Q6j%lJm8sX17&pL_q7arYn))(2>8c)&0S zB|-6^uJsHaT#|rpC>(Y}TZ1JtOVXOXQy<9=R*jz%Q8g{dF@;q=1bK1m;W4XruZ)+G zLS^P|H!aK!8=#+ExDREF2O+-lX`Rh{(wu4dx$GmCzx5$!fRiIwz;TQZqF5J zdips({e3&j3%4f%jCJxN-Tg zLLy!N6UoR*vZ-_a&TZNV58`j@)uy3${#=7Rz4u$T)Uva|7|&@#L01F4?g2=`8&(8X zx?oGue{6+AHC)7l98Cf=Q4H$mvHC*OhK;EVzy!wXMj=klO+99e+t?zf-H&4scjgq$ zwL?6_JzynPjf|c9qPrtRQdX+S z@%o7`LmHBORK2>rdP-L1_yA6e*c{KodC;KqcpwDegdCiW2I|HTI0LV38qxwU$e-8W z>p4L&sffjk(bcRj-k)+Nkwj3r#AiWNCDWX5?sUw({2A8(JG7M6V!1Qkr77^7ak+lw zJB4puIF<)&x_qg3G0gw~mIN!7%5f5Z@{%w+6|(L}-CiYU12j8J-6#qCKB$~!ZUzbz zWe}Z&zt=TcZTKi((F%c;$|8)=y^`RLO5HHIw*gK=Tsx6DH51ff#bi{%G$0*$kzDCQ zFV#hN>6>d>3vDt+&o(GMd&cIm-#}?jX8~g_xn!Gq37j>Dpk&m9_k!*(22NR{xU~l( zU?gW#-HZWnsu<2OPLhpYGq0Bku4&q5Z?@W$5K}p{ETKtv^!*u%!8zj4_Co}>aS8`& z`?fkg_OnvbykA5@6u+-)XKRH-A(q}VDI$$(XW5So21HIA(Y_aZKR-+#d>Ou6FniOB z=EL37nd9{>fXe4*x}G%IgB*%PSR8ZCc?bv?%%9Z;h%;58n6GoDO7}tRjbW|yH^I7( zF%9Er?~ZB!-3z^)%9VP%VJq#9GYbHNVI`BMZ@u*6jk8<) zYA2b**9uhtWU(VH@`~k$xDR?YXBW_3Jsn1i?sLiK76^N3lP|-)*`ZwDPjnHG=wLhY zx26o}TkY2sx4D*`)BCnfB!cCaetLdr(u=r#pMA<>^iQ;VHY-pPr=UD#LO7PFOg?`- zvb0&e0oSxH7B2q9iPIoyA z469DfJ{>Tkgfx^K3Q3cWDMA={V|AjwxseE1!}JCNpYTSLZ#g7^{-vxigzy`o?6ySe zyeUobP+TpT=yc6i4N7uGc_WJgrwhWmg~~OaQO!=`p!aL8h^k) zwZs1ktzr8lqmsdJ<3hi&H-AQQu*zODur9xcP4G4jKw2SX`A1;0<`TecaHW?1l4j-` zrqPc>i-dHW+ZOZ)mk&b$Ul4NTjPVmCpjKGlG=}Dl>w4}X}@`-aV59`%iYkoO->K{L!gBU7Vfw`Clc|=+=Y0>Jc>q^>k~9c zrT@j$mWO#WFLL_T?$33xLWz)ugWvve%(K;qNhN0Yv-e zjaVB2s(DB*<%HdhJp|UTDo67|*ZTvopsfG^F4xGy?sDBjN3XRH5vN;gR=infmZK!^ zDmcVcd=d6N&oeR<6c5FFEL7xGE2a0J{H!59@TGnmFjs4O^_3h&7iPoX6P7sAdN#9@;u!o?z`orv^~e%XXIDJwLES0DMnheEGhyZLDhZ z_+HukXltb2pI*!Em;J+kj4b_it%O6%`I5Fso5$i-tz9Psq&WbF2z_{K3lJ2d(Xc^UJmDrG}%_}S+3fso$! zJ3g2w?T69<%g_9xZA;XoXwfSKpXKOsMg}%ZCr?8!6IR#RJ!R-x+5rEnJD|eAg|cB8 z#WVt<`qTS^QnAWkq^*}i(+Uk4!495dXeTG}-8r7- zn;=F1NZennS<9Uy4j0&JJc=_ONAF^$ApN35R0+!Y*uBge!@?UYqX&kLVJ z7G2+O4Ih>GI{hNnzcQm|Fb}F|BbFWP`NQ4s+gS;NiaFyd!*(qviV}Tmt1X^Go}WA+ZdR>qSoXfz!*f-igS3%yV-5Qw-!&+e5H=UYvTNOb8rWqAxj5c_S2R~jEwcUE?U}uMO ztkw^){tobmV7!pUqe$g8x95o8vLxP>5hhTBV+8GaPCnh@SQnslY*V(7tM#(lfaCIYqho=(8!V9 zIi8@(DqFGv6knEN>K|Ds6v*3epUCuy_R^%7P)v>8pNLN5V3^&}Z-b7RZjw``{^$z& zXi`HE67Yb8a6(4)6_PiBEq`A30NZ8$b z7l*Qh3u{VGmEJBIi4d4jM?}N+Fs8aKxN&!$(U5dM6M#^y|DBZ2HDuGo zZS(5~9SP+plJ+@oB|L?2B9}AzTOV;&>_LpPM1CxM4cN}Zv0b80j~|-vi@Abyo1ckn zpO(xAST-QOhq7!@QQ@le_DbJgZn6s8-)%J7gq8{u`!O;BO>kxfz;-W}7jLm2>N|L_ zR4r?Y4UIuf!Me3^X6P8C!u@?G=n-nL^cm#UhcmD8$hO1e$_|~E2U=Ul6e##27~*B^ ztT`eQ5pxKZcBLozbzr1eE^pXLtk&o7pMCeu-gL4`;COW3`lmnlxHpPhao~4;xTXgb zY)&9%Xy0x>0s`I z5W!P3iyq@87N0?O!#JJ8t6Rm*o4dB5iRh>95PjrJb$|jd=GdZZ_>ZLdZ~4;k%6A!= z$%E|Qcb+!1*SM`>M1M4m6}_+A)5>pg9`e<%D4W<{?}b4_7T=dS*vX#~-vg(v9t1_VTL3bWQ%3i_7YT_=C`&x7nncsXkImU5f=S(ud8dy9fjC~fe-~g6jeSd>-o2zo;x3)t=w$y{WT_X=otM~AZfAd>lz!aCzZjs!GE3C+iMv`pb5P`KsPa~*mheVkO7`BPTmwc! zVn8A0T6%?Vs(a-{fC3iz?LyYc(1qzi!q!sn@b~HW4x`d*u6wPCN2XGO0CP?+>42md zqn{fJYJrR(!Ax3ekx(#%`oebAYSng%4|Tr>+%7s6KlQ>F6Z~n;-Tx&T26z!H?bkKd zUypic;L|J}i@-{zlNW7ncKZZAY?z4>9>&w8t=|szfU>4osKP*2KQ3ABL=}*_t|kV> z&G_t#{OMQz^!I{UvWk6Z>_inx$SdImRr6ChF&h2Vm((s-qY9aWaRu8-`j;;qeuVOv zAzXYS7o&eXL6S?Frn+;YFrQ{5J|vslb>JA5OdAFELx;#( zAV+9TGEo8^~P zSMg0fUqAt{bsjQ|X?2((zgBVkk;vLYMhZSU8-J(C*i@Xux&9~`H9Md?wIsqdpOO|m z`rIYKTn>C2vZ#N>^>x*x=2*jd_9FoI%E{f^G7vlbiRz%&j*1VApAm+S&Nu~QBs4&O zl(Ty$H8ISI@}$oGZ$W&B6P%gltQS|CWuE=W?P)W=(D)O5!DQiVaEPz!0$ADv``sh) zMr;T|{I0Y*;eDN-h@DZ2LJm{0=+)aSjE_jcYD!Wtr$%8$iFA=hTQu7#@B`Ukk@G`& zk5|0b*(%Snv7E9LN zH5Z*j8$wNC=&1bT;9^CE&LOd(E<)Em@f#q+zu1|}jTgl)33Lb62r|0+cFYNW&cl&-n@Avz|%Zji7uz}A`D4l}46bE7IpLyH1E@=aU z-YthHxBdV>_(QrK;_$NuT-Of6Rnx$;@PS*-5+s+ZR~19T4U={9#}DfC;x&ARuHV&? z+;e>O+l%|3u*^3`1wTPkVW&eiO&6QM;dRVhZT*~zbc6u~c6Nw)6{8zNSmcuL%u|Jb zj%w^hC+p_ZHP#~nPaALCsTYto88i~#k|~kM=t#=-@O*3`(!Fm&E7guw#PF`7a z^Cw}dR?mu9Yr?#`EG)QP&&)&n_dDG7sKA3KS2NCO49A;t&os-Ndv~LgSt@VS+Yiq~ zNR?d4DNPQ7%J_H=K?0KZS98m=3$d-N$c3!GT{~7gNV6aAaDQRk3dx@Bu3b_oRE*IR zG@Yw4#%Po>TF)D{s#0cDX_?`!jb9!1w4Ry_Q{E*T7!qPf-GUvcj{z4hYw&8HS$yV}|ebj#oW~E>6MSEb085Ak7=Q)XpamF=YNA zzr%gOLilEDlHqGD31YmfOQvL`lNJKtVjzH@Gvl{$`LO!ub)!!MznI+{Wf~Wx0o}bG z(WNwKge(Rz-jz}bN+Q=FZK-2Ar&OZnS@YfEY3&W0LesLg*4OM$NK*rH@T#i zK0jdipYxo!v!iJdBs#3muZ)9JT3>eaIcP>xd^87o(9C_mzt=bgXmJ|6pZoT99lJp7 zO*mS}cJYIt`#Nq4)-F2cVYTRT<=w&idn`;h4tYWrq9O607~_tP*#`WG?Z4brnVFvx zlF_R#%^3e&9Ecj$L56Av;LpU2$>yciE85GBq(P{*89Tb4Ow$PH9M(G!8ucc5rd_pj zyfpY@e#wo&{DvsW4u{=W@R4WJOv_^(?lJ1gI|la^Wx}2%;p-mcyHUTDS;bwamw6Wo z6Suzh)!^9Gglj_6qSt5hrw(>l{u*Iv6YRCxD7{0bgcmS74h1)YCb=cDny`lx?ZNLg zNFYvMlhKv}n)tVx7tZdrs=zO>3z2s-Zd_}VE=Ui+3Rr}m=xw;6Hk8}VIU-AbTub_{ zECSW6-){XI2GNi>&+1_&5HSn-&*ZY;ywAY zD$t@%`PyEd345+J5pr)j!aw<{S)st|DZu)_0mXPd(k9kYFEJ5;PQ@g{!fUzr(?9n) z?TnEyjtU*YA*%yoA?~O?TM&{K={~X9$*&@llOiCeNo)`cx{rMT5JVOy<&lR92oL*R zk~-DtEKb##SgygUm)D*fs0`j{CZqUc!5dl%vLa#NbfggLLQ@WZp)X>Ho%#Lxx+NGO zJ*15_2-W>v_SgY8%I$a2bWK+A?DqYhPg(1!;NKC4X^}?)4QjgVh)#gf0}c1JG$5C? z45$p(UpA`)k$ZD!N+I2D`@(lAJ1a`U^@fVR2)`><=V0{3QWy{i$>oK?LMIm;4R&eX z=AU{~Z+~7laPC%mniZdU>}9ODrLNt9bI!wZWC|sc^_=s|gKx|ZnklH+t%-#)Ff~F zbY>v%L)W8x{+CeZ@^uYgRNU8&9~t;y5N zN^xg2nf`v~Zq@Bp4L0wu0%%HgkiwK+0N*Ml1>t|Z@VeHgA3bU{bNdPsmaaOc)xF`` z@>|{sDKO=z0-HS_%Up;cy_doa+bxB78c3df)=Pn3THu2U*E_xY=N|sNJ=@Xd>x$z@ z2h$iawlcS*UB{3Dre}jEvoY1@O;sMx*OUaJ&BPy;Kr#SIoM-Qc&_?##=VG1|UO=Qj zqWIf?(EGT{)yc7ZN;=XGw7hA~7B33S1;b{mYrLd+0sNSu9Ca~$dCJ?uK(&9F)2`V` z_8%{r?rpv^3rM^Yg8!omaz5NIX`Bn>-p6BVzY1{ir;&SM0;VKO&9E8)j2sTBnEqHL zEl_&OaSR01{qKV?9l>M)Q{?%Z4b;Rkq{N4Eb}KoPW$~Dl@zdJ^m3b6II%a*Mf({}e z<1MrjAm}+T0FJ3X8mwUUrpRI&@_3WRyx3A{NXzokh8~H`Le;R3Trm2o$~akG2FYD> zTKArbd{Dqvn6vs-#73#&L2~7p<2f{2Dxx!u!ox(^KOt|^B>fZF3X z1uF@#;dPdThfCAO$3hOYD!%63hav4OM?*h7qx$Sx{+H&BN`UM53^!gA+nK&llIG0Q z$K3{d>HiVZ%(|!Z_fWNpLrpnpxx7#=J_PF#k4ZuJ3IULgpU}3kohT1+!Rtcv(^}>m zE(gCo6KPH6ya1afhw5|&IVF=_JGGwnIL98>OO{QUrNLzwC^hWhn0e-B8Y@KBv#2JSVxBBHxVE=o@vgtFYNI8`6Wysb>E(k3X>qqZlTrX_g zE)Y1!tr=Ed8VZd!naPutKDHY{G)a)yOrh^=ihXjPz%Y^rgll!2Z2*4x%?!6xZ3phH z0yaXe6Vt%^KwU*4lp~LI8K8>&6T#3BTq5%zCLRsOPmK?>rjil-esu22H;}>sAX6&b zf^46#YKM5R-v76C;a80TU$s@J;A((ahRaI0x33pDG&e0~AZXfNj5onNmCQ?P;)7udO;(vh$1DB_slzev!RR_uPL93v%BHoe#AHp;hwwx!k zdtY^gjm{8AU-`u)9>}b-+a?q1t)pDqTYRNP4eI7hGBioXcSva52C(DMJ^JOc@5y-MhfzJG4_(=;8$VN%>chhW_GGj#84omq=VvWaPrV&bnOl zZ$brpAtp(3M4EAqT?U@ z&W7)@xKf>2vhJF{MAuY5rmeoUDD$8e=D}qwpT?-3d2uYix3%Bi6rGS{KKqTVKYHORU&2kEcWa2=6cI z>hdI*z}sZ__lm-U4_r4sZNb{%-UX_wLHJ_)RSDr{iRQ-2=z}g!ZD)f=Ny@LKYYE=B zf3xL^yf<~cjeTex;2IPSb{C63)KB@ZuAwQUv0a*w?_J*v_?AXr{@_htoY$2)iDO8K zP>=rh9ryZ5FO3!qg%)bp^Mt9pYziW`#f3c#o{CRF+l*=COPsm(jG)(tB z??~*IS$w4&#BQ4f**cyd>FEiXaj^wu?s;G|TyMo?n&#E{)mYNfYDNOi!7&=d(%JRM zonZ4pjvc~e7#IQhr^K~nMK3))Z{v$bz_P}?-8KTVruMj{DL3%$%gcrOY)u1SQrG)TJ?-5FSR1Jvn zo4VN==Q&pg$@%e)*_wvPOXs8uUhtk71x?!3ZJ`!joQB&UO$TG^GRkZe?-92W?-4G2 zaDque9hN%R@ovc+Lxa_mk((D+Xm-oqb=>Q)%x+X6F$cLtleGW57Y#)G#okXZ8nbU)wtZtlq(lAg9Ckrig5*^``!PY_0vRInsqK2XF;guT>lmomq>9nY`N z-ro{W)nKnS@|aIv?a*pVWq*yBj{=g!`m;Uann#;b8AoqEtmgxDKJX%WuJX8h*8j*P z4?RZ>v(mXUp_U8)uvvZ!u9(>zJ{|ZbIomuPSmx~9cJm^Mice$n>CIum-@>@mk`3&+ z-Tm*9Q2=-_3*h*t0!uKj^P7l^8 z)j%geGB#pbs0Jx2PN_o*Mgrs&sK2i%s;U|RP6M)EaC|#WE`8R8(SAWWCTN|Nf3nY~ zY+noL89Q?WIlL4u_MwpiXW^zb=qiFd`Pjlxw43mPb)iPRIzOjwNMMeQv3EblQZj#+ z4pXA4)Uf6AG%jpjl31Nrfq#g zcse365U&RfaPC?$ZkE)}xR&Czj+clFuUQXTKW))>5rJ;+J*=EG0{LyNIT2B=TfceE zaG;;;8|;u@Gr-$pxiLyxI(iu|nCu%g9TDMf%9YyOtjR>1&H?OU>KVT zhlT3y%a5YEc}NfSRk`;j=w4$SCLCKo?U9x>-=GwjeIISI@LgODHfJ=6xp44OMeWCE z!mQUdz;w2D;=5Ey~ju!eVI952C9+u^)}FZ=RRvlsa<^rbp} zM_w4^Cl1evt-hAkOTrP;Q+LkDk|yV2T_{;dC-S^FKcXHwDWP0`=vm#&0;sK7+I!z@k1JUcF3_T#ke$q-x7FDQpyQk|4#Z|x1K!__*AbP%TO}ry4(!%&#&fay>=|oiMOtTY4QN>8#y0C(Bckt?9^OCgf)dx1@X$ zPk2HwFOK9F5MJxoek5}1?!7&37xfH8mT=@eXyfJHu>XJR;%xs_#1mPNIAelRQTTdo zWKRc?E#L1BFFM2R1xAy=TYru5XYf$@#8>HlVsl>G| zzFK&GaoOBq!?Vg~rFWYzs{QoowI16__5^7`t?r<=L3;KEu$0|~9M9w$pv5rv)>#2}e(y0#l@|W9OFP~aA=(gm+Odwelsd1C89uV%wg*VM zxfXbeUAIZ4jQ`~Md~4}ROWEH2W}T%itU?6I54*0T@#c!7uAPW|p&a6EM58L|cCLuG zL$<$7KafTsE&13UdM1bGX!ujL+q}Tx#X>3dWA-J&1I^{y?BYX?zosD&Y~Psxm6yqp zsh$*^beY&}GJA(x>6}`jNaIrP^4m7iRTBlkj4;hVpU`%V9>&r)Ws^2?*U@Qx*A!%S zZyM5E--JwE;cb+QJ_k#pL zG^cUIvnyoBYWgWc&!3OAm-=kHh5c3mFmw%ml0);7N0H)h?B&C(EF8?#tbi#x1j7Z= z{AwRR;^>0JizJVTEAY@Y>^x`r3y$V=Z#IP|C5~gVuRkc^)3pMfd?RZ_4;r^fUnqA7 zz5UQ1B4VM#+EUX`ouuhHw@E6E`CCu7cw;#ZBkJe7+zR}$FPm7vV zo}LeO_(H0}&wUMPy6H&qzd z`YpBW506jx{_VTNetR=#K9v^>&8{)*LYa}oKH3s@G_=QVsJnXP#LQ-sv~b zoPXu5hWu%an)PjsZ#>7Lkf0fgn0GlII6eM$XZRvbG|@VY}GlXs>`954Mpe8g_r-WR#C z(&dBoyJLyM;_BdmaSoWORA)HyqBpQF=BLA@6DKzmS}_5bA~ovy$XvkBAYf3YZGXZgWBEo);S`FR zaxiJgdzEs+ExHh`#QpJ-xY9nspp_!NP}LPRa`X$5;9W&bFvEyl>>;`_0U~{21-~n@ zjdHmq5f2Vht8*DMEw0j!yHjkCmYTGsIs~pz#^_e!58G>b#O!tUbG}aF+5T|!85$#S z`DsLgwc!MO%g?s?rv{;Hb!ab$L)VX8CH zTaG9Xf2iK%Xi%@(+)v&iR0V0~OeZkuU=~dn?h8OUkkd0?rx0?V$*|A0 z*!s`eBUf#>b0e=n;*9JkWITBPtA`7ZACYOo;#Bl?1xedzN@bU8p@)HN=BEVd$L{vx zzLti>?V5`y{5Sw?IU53l(n(3&C_*Q|8nsN^Xnyuqsdh@YOn7hgC1Me&gj#d^gDUiTw(pFu^ zLum)eOsdcNetOd+I z-k__faoOClc!6Wr#Y{U-#CksP;fiz#-EJ&8k3N{QL zZJNsl0?<-&uuPqZSFhx>3sR({Q%RV0^TH3C7_-<#bF}P*2Uwmeb-{jdn3ooIp61>6 z=@9o_;@bFXWZ~gB9k#-^0_fG2(Yk$2paq=SbYasWsuvUK}3TsMt*MFiDsm;wMnvv=#G+3CeQsrrmIp)=EUo z2q$O*{}Vn5QA<*?B&o@ri3JWQc>$+hIO2z0xiN=ZFb}_+_hPA=jL^19{M1c0%h<<+ zGiOWw6^?0@8UTM!c!KQOB=*!^=+>gUUgCpoVW?T{xR@X=P#@U?|Y_rEmwf4 zHl{%&2cGM#_Ct8!z-L(Bgaq>PR}l%kSQGK=0Km)U>omzEa1+XplvfS+V8sp43U4;! z`-6Z8LxoQ+J?)(h+s$2}kVp^KpD9rgZLvP=HwQAYCt&E_`&6~Z?nHg9E-y4JWkaU) zvU_VCFa?{!v031Ecr>@=diP5sD&{z?u@&%-|5?Tnq^2>c!YiD>4wcVZbad~YRniyq z{bjPx_!9hT7TrJ{r)YQ0Z*IQ~IE+BayHHaPSkp=@wkZ-gH}1{8=(r;IZ)OhJON+VX z;7o{EcwXhLfcDc)vK79ikO?A6BqoeO_Fo);QqS^Y++&rcPSCIVt^%8?L$d$aOS~pr zsk{mL4mSe_Wbw?m8}{pz{n_@gRXtrLec!R5Z?%6{euLZhOXuE#AJuf-`_T z6}k&#$k$4y?;SwcVXFV+1IA{5@jcgCr%+e80Y}bOHB_Ik@)9m{e8Y2vR!R?noyr3 zV1kY3N~;MGGjDBL8<8{N5~YIoD>@8EoCKm_!#~0q5SJxUSRs}gD&NGIOIbbmCS#2F z(dQd0Y?f4FCVhY#$kNSx7U>$epP$=4C;kprnCZ>U2o9S(9&dP~m5hk+#_1^l@K}X! zaAHG(TvwTB2xiq9aW4-K0aQm64?=O;jtvscBvMulrJ}so+bbtUCnI!dCC} z^_ot)A4hndvr{fE`J;?hy^3_3^sqkb5j=q4)}YKVFumPxfw`)!*b{qS2C=Sbcq?Rm zx;|wHf+?wUvc`4B4Uzr{7|hm7BGcrYj_2Eh#dCMm`y%+TtslAKY6^HkJYY^@h&{eD zl8q?{mgLRnd40>`#eSK|pqe&@E5mO^BfTyt9gctrJ%tQGvv`ufFUhPn;vF?}&-%r2 z@0@F#`qpc;t-!*^9c(~9qzW&{fTpwm`ii-1NRymWc*=!Dg8AhAAK&Dm+Pk-K?}Rbj zu)UdU?=$tv&Io4bD<4heU>z4ATc%m{be98oKb0iQpX0#WSm)6U14x@}iG+$4od#aV zu!e$VmpO#)pe91LwU`q%-cJ6V+Ha)|6b7|o11N>LmO?24GPeb-IYae{T*>OBGRRt? z9XYG8by#-WzgrFd`*)!7TJG_nW}H@F2jtB~beN1xAub#JYZiJNb6GI9Yvzg;5?~^Dp~v4U`FyCC*efJ->dfE}8&o2{2;hpFX>yYYQ?2 zg)*b?o7w?fx%i6!2befA(u${e{|#?2@0GGD4DHn8b*aYf=FpS314F2!5iFSfS?n2{ z2?!Vsvm1=v_iK{oYd1=ck%Oeywo_d4K4j=FK}O>;BlhCGQ$G6Tz%&NKJdLcq9#ZSi zaJ+yi|2ipI9{s?Lq)Y4ax;jEGh67!968d3dDk3g{T}qXmvr`aT7cXHKN9iUEFXj^H zw(cUd`WAcP^HzV0vSw!DOekDF397^$3cQIlIi7!ea4SiRTj#wj&AUAmc^qiBTshOO8xg|qj?7`ni!4C<)k_+tkH2{YYXz~TN_MN>ztFA+&H5vkWM47-e3(PPJ_u^1?ZH=4n;vv}veox^uat$^-Cyu?mW= zWasMhP;L3-ah z64Y(rdq3bf?Zgn(>}l=FWN{5=6*V>Zc0nf#p?ZuQiDdXj*(Jf( zmF%-7Z~oIEZ~y_R;#OLn23^Gd78-_2WhrS9K*bF_91Sv16WBoC>PA2aTYyh{(469>w7~}xN zxs>Q$7*C$i5cO`JoU#mr0kKR>a9sw|uf(jeEyLYy2}H|^GrjybO$M_6N#hnmPQd0x zIkoWjO@`BNG@m5_R}!jgjI{n5(z5<6h#!>Yw5E5Dty<@;;Ajq*HUy4?Oh~L-~#1Avom;+k8ek)#( zfJ_YBN@DUhmTF9Jt}mhzk#P-Il#GleSD0h)!xDzhAPe|7Vp4m%Ngfb(0WGy}*eynu z$aLFg0G&(CU?KV`GG#Vl8u5(3u7t^>UIfHfa;}fjsb5yJMIy-?RP~(H`ezmEH_9A? z{lEiOxZ1vJRV3ynEl%T4u`j9{Ry020=>JRLcg(ukeM*(G5~DNM=h#+_ z;((QO3fG7Wn9=TPH`wQrou4JV9pInH3AW_xi!O%WCV%e*7JR3AVc91b9U)s=T6VT% z?0Obtzl=MXBe&N1mZ*-%?bTHeQ>{!~j;xUUq8aT8X8z&I!IgJ~pPYlzdtJ?~du`aKcT zuVb;HJwm1HN6sR-5%W=>HQKL!2H&NvM0XpX;W7^UH}aM#+6~Wiu?tsGBfFm}wG}zW z?feIIHHHOdz~hY z9yLCgxZRl2c4yI*B6f00!k@lt&%~b_-(PkO-j+nYaPIsev4J51(9?B=A^v6X!$vbd z=dHBHM${tm8HO}u#4$3&-bW8(@D1=db3psVDiaCo${RKl*bV7eEqeaty1%C!amfdJ z8E#hEs2jaJ@fDkj%x_#*Hsp#yWwr}4>%iPlPnaC3`v z*($RegW|oF>)Pi~Bu*BGpzLeyNng81chWNM^(Jwh#>9jVSfSkg?ajCGn{fK_-FnM1 zaVbKP3RENAxgpkFJc((|{zOH3ZX<$5;QSvzL(g;&*<1|xhDq}8yzV^j;i_ja$VNoi z7US8W+WdBX-LXU33xBEXC7XnS4-({cg#c*;*Cw!p-pGt|^Xym#VH^5h{>)uixS_X+ z2xK#2r&DTNm4g?F53csIiQd@MU21i1w=;Try8$U6JNEE?19%0irx8^Ih&~Ot?Cxj4 z9|<@YRZ-j6I%d??vVWQF#FbUHZ;ibog$NwH<~3dp_}7f=rj|PTqMi~8@Ju|+WS4lL zf{}-&I)9ZSJTRwyX*0@Qn(H;WAR!Ug2ZnH1jT+iUHrw{GMXVlyYQWV63@pk2e9j}C&JsTc#_7{)dM$KoAU)uPis`g02HO8;YlsGHD2i^&9*#) z+#ycwOGX)8Gl^>F{n`95bJ?1iDkr~a%q(EI z22WQP#y^d&-5Z%9K_AejC9C?JIhJc5uiG@QPf$bBlEDbgc-%M*`GaRNLZi(d;7vkY z;DX5OMiPdNr_(`ezHz!sv7^N|>C6d89%?AdUn{J;#@RF*Y==zW`;4*YC$dW&rfdy9 zSrOv}CU8o$a%+zBztMOa;-Jt)gj{h!cZiE@v8UA8=P|B8p)gO&4xqq(@Y!VlaKNB5 zG4<;ukI)%F!!w|BYe7Hto1Es`%O%H4$|D=hlruZ^%?(W_azDSMh;!$nXwHwm4s4~( z>tMI+5=+&7HiKWW4LWamJmpQ-!p~L)R6dc4kKHcMz~fWz?=~b7u-R2POzKAWc|XuJ zC*l4J{ukF){hCohlD%5Q=rz>N>pG(ws_^moKoR z6Oj)hfq6{umU?fVT2in2=EiLP_njLPGHPcSTA8lSr0y}6Dg&w$`I z%)=TMNkHoiSxEFkMCYhcyg|A*STg_D@E(@XEbGwOj@Kdqx?wZS`%}c6zDrt)ju$YY zJTUqtH7@Pg0N$sGj0Bby zrcd$a4{mFA7zrDm**(!H$yM^fX{HK2BZn5>|I`?DXSo&BvG85O-augw`%bG@>UILh zI?~gsvr{}j-Xu?uSfdhZR%zI9H6*HQm81rTFE4odQj>|K!o9Rn*tI%r?hLU1+*U(l zOoH9*g>e&*8kV_XW}UYRp20y zPetV28F5U~W)bdII|A6-1)~w=_g2TOs^UXAQ#g`7VQe>apQ)Li_XmA2Dwzna!7TH&BhmD0auSc9uf}v z^R2z)4Lq6)$fDMiKafEdtNJIQ)mvOIuvB_twF%66`sRIt?{ zNN6@EALBbz)CltuD*=e5YRi_&iqh7nkWz+~sdVSk57G4}{N3KDo=%3yjfp!Z&paz^ z^sOdBC%Jd*^!6`vxe}>#@xnYF17jZL_!}e^suU||Fh2JH_D04?&itpLgT6^XqD?k) zn&Sxps;vGG$~xK&l`j|F-ju%`Y?T4neNfAB!a9VA zUO6~Uew!2V52~ymE#Qa1rw0{8ocBK~RZEZ&lz*$fH4W8KW&R+%;J6Te3AgVIF;G~1C8D)#o0 zF5QE4X>|oZyHvD?2gkJ6M~Vc?;B2o-4JG)@iw;k?O5hyMcZSElSptPE*>gKjK-gks zD9!wxy#cv?FaPnfd?}6Lfd9kO3fQsB0_lGdo_c$6&W|^dOp=WBeXe0$t`{tu8itL5T1phvn!uPU`UsmZ%hS%_x& z$X+gMs1cG#MKVLLF^6=U9jgoQzoUFEyaIT{{#x*7j_aqqmP_Bv8bHdsU5ttkdPB&a|q^-cF=oLizVVjNoalfo|T@Lr-I;$)dS zmG^7)@+E<;TM|$hpyK?hStv%37e$W0^6+Bbucoay{B#wx+66tBLP=iqBBCxP{v+Fn~~yLrz7R93=0|TUWon=*8Xl@ZndU z`2V`T26|@N$W+hX*_)Tcuv0$Q*H3{XJj+hJ^u`}q7#a92P_AEotrH=VbNX1xBPVBD z@dh^O+&k@9{8`pCQaYcD1eQT-+%M^E^C2hk;*M6G?8Lw)8`zD6_faj$by1sYfR zcL8r7I_y`qujQo7)AFn?6*nh;n0oL$Jj;mVUxoG_ zZ+kw(BzSh*Zi(XSVc7gZXNtq0BW$;tp8=}SS21d>+fdsSzc+uk{gz<8FSg*>9YUde zUvp@#1{~zJ+s16H1CN{b<-3N5BE@ckqQgH|EXQR_Ck(NVJtMdaxe1r*MXc!_K<9-& zMcNxtyt!UQf3Gjk!H+{fuqWB*PKZRARs84#&UqOLjX%mbA7aYXBY%(t)dBK&E@p8z zUYYH*pC}R^l+MyB;#D&@k+=0zJL^ZnLTjwW!wc>Z-&!fq#UpUH<+Hw3NZLc?H$~8Y zU77)t^S$J5dy%48d5fTi7C$q{i<}~@wt0A9E|A6YhGXjI@vT%G@^F8*LR=q>!F=#c z?N^`|+pF#cYrV*n3^#04knYvONk+qWX$~Ztp3d}1!%Hu+@u$WXk~etBpJAt*nqKCd z1tD0-ud|Ztx~!C6jtQ39dpt-8zkO~ndeCm7!H2VDW~kZalCxQ7kQexlWvJSxG?|a- zE>7#}DdqAuI%*Rogyt04L>_VM0xsK(e+3oD@nAa3@oW)i!=C!hjfBiIpa{rinj6>k zfD;c37!Dhz<=m(X%>sUd|C!sZ;C9?Z8|m(Y0OMdbbU%b%7C{1#kkI4#y~y~zm?1VU z?fqw%$SuU7ICHmN^ar=ET0<8(b+EW+^#Jiv@w|Oj50jeZ?nEvE=csc1nl}mcpoMBx zB#3kaRK-K*C7ab-R5i0Q@GLkOHelFMrog|kdYpj8YyLbe3&U^# z@Iydhp1f3f_ChZb6T;1|WC==c!D#wG=J*rohidPj)37=CuP|*z?yrF=fX%brO5SX- zk#O{W8HY+4uZVW1vAf_$&-L^{dl;Ly{Z*ieqnioK(*S#4E^M+CFz$Eepz>TA27~n5Oi0tSIhRH`+XUO*%`Wx9xIYY4+@y%IF?n6OcdcNVk zQDi)aujH95?C$&Krdgttnpyo~PlY#Db3R*~bpLzP9%M4 z*Y%}sO~@l2X*h-)*EKIyAxhPn64}ti7x3$r^8st+#A(XmjExVO3UY z`mTjjypxf3k{*#GLL%22c;?u7gkE>I-cY4=r%V(P3P=m;Cy6J?_Hq~z_ic3ZlfZ*a zx#yDeb1h@B@117;V`H*8rnSC1{~$maZNW7;=;F^$>;6)KqSjioaN;9tK+SK@wGMV4 z5qso9^%(ZWY+Tr;T;HemSIL>mRi->=3kgd8^!Zrb${zF z>8|cS@}^9Wl?=t^u$89?w#}qbpL??|_Xy0NLjUqP#-6UEYB`bXfE2iugZ*Z{4 zJHjBUCfe+>oaboqy%P4ABJ<)I`zYCBy7Foysf>oC?(eK5L_`^Ib3g!}tB=(Lz8F8S zV0q!DFn|sV`{3n6Q8fVu4=(p}i*k+ka`c!pFR6aSoO$Py z!6N0@W6$%h>x4#E{|hQEvESBjT1)zw%)P5_F^e$IIeV%N zzV*<(!b=gwQy-*frbRpe$mpzRr9bgbQBSJ&D-XtOmeM78!S;a*XQFI=!;z@YGxJgmZHR?tZ0MK4x$ z>oHHIy``WDb;puMsMor9V2p4>$>W&jLhMzx!1`uERgf20QuC)xLGfe;s=cTmI%o`O zs1&J(<}UKFeCrH;L>Ss9!Cu5{t541wmPU{PO+G-_mWBxi^H^a6W!k+}b~W^3wq7zc z)iXzht#V8q7V;y#|>Fk!Kk`^$L4(T#CBO&|XJt;}%eA&GsL zbY3M7S<6~d{xQ;c);L|m8?-I+p)FX*NP!vslDUKVR=u+HI?`rQ-TfaLB0whYk9I|O z&+FH7D=TqV?Kyz0yGPTup&W9OOFJRX2d>MD?LNzTCl03WHmcSWd9}4r(>G?Yl9ATg z&;WFX*|zwBuDL+aC@T_yKmh;i8Fm6T`Q6+Ua>aUEfa|iR#l6Lr%#ivo)?wAbz^e0Sx8d-IO*R94ar8D6Pj~^ z;Z)1W_x}S_u+V=6=kKhB8tU(U95$;P3`1?6qd$M;KlAIfYg9v^ydd;j*NlQ&%b|F3 zn`}38^qyg4Bl2!+_@k<9qrivs`Uh9ZF}p(f2xySl{Z~;Qk2=R zpJ5&HW%0b(TSoCI!8n1UK4{77v2FhY%tqZao!$=cMqV5sPgf`Tu2j#rTYS1IOfAh< z*c+^FfA5@`?)PIKVe*g9h8P_9rT%{JR|VH}AewueeO;4)+euu1tfjJ^@B+}3;flv zeqfEjVgQBA{G&=YS5wC!nE)8;$BeSGheEFK%WXhE_h37y`$;ytG+W%GzLs*15q55- zXNJ>qk>&afQ4<0<4Z7-L!NVF>37sdo4H29wrU`xtb@=w!N0%iUgWEP$MNIQ_-er=F zHt9+-8wd~v8)174nt$pW5-81HdZ{WeIegYdd1Z#pMWWQe_Zg7H7)|#yonrY?BY9?C zKopq}H_ICBZ}kq!=c1uxg3Wgr>-!F2r7dQwxV-qr2r!2{=4g0vj8u#qbeGHMK>P~D zMv~{9=fmE%-;(?B>!~mqI|AuPBjS~ zT9tgCT5!-(M$a6NaIMd?(aQK^Lzi8 zp%{(qi4gLHmGO)MDxua1^Bs;2YgBCa_HzRm#OHv7{pC5c9`RJq8!i~ykpWpk20w@m z`F&m?D4D32WLfTy0gX#qJsTE)?g&?;!`f)aG;T~rREPi`ifd;_6)ISICF$X zPAJ*Exk`=lhC6))7~GpbD*Pc(Rz-aT8Bq_T!E1lnANa1%j*`Sc+!P4b9#W+s zksk5G+V4OV1$qYV^D6$_eNrX}QGkA7^ga>O^G@ZeOfpfqdfhbQ=+{hNcl_dW*<*rF zpOR3joI-}-MXLyL?TA4QhAg3x2Vwe*=i7Cjy*odZmryDu<;$eNLynUikiYy8J|$2sZrcC7eY^B`u_B_+ch96y_Qk zl=Ljk9fHox1+c6_qv_(4xJI5)S3yu%Y#@SHf{Dqc5_fLY+5$dE`LCdQIYzi3$k1}0 z31LCB5=O__&Kca`$}S6Ai#Dxrigp6u2d5$;tOd$On8g2t`63Jc57Iy_zkw_u3DQmn z9-3RMTn!*ehyX@Z#3@qDBylH|XD&(9WG+*d6p*W3m4|vj$bfR9+Lulk=BhFS?WNG} z0VF6K20q%1w=f{;(~vQhG*R%#262QpEPRf!H6 zl*kHXW5*hMOsq+|dX!~_GM%w!RaR4(GGLxSjH+AVO=|m)Ri9ot9CPd8R(|nN6X9j$ z0B3+bRh_NdR-0vn<_>+4RTVBF8YJ<;e}zm+xofq%xUL^r3d<02kPcO)?%4A2ZyrV= ziOl6#Y}&nS!y>a`q>l3Y@T#1#AxDVkCxuU0ZiKc&-F%kcdU&6WHs0r!3NbP~F`PG6 zG&HiH1V}gxBQ6y!2TPiecZ`4toO#x|9dgpwT%lGVsNi~dj+(=9npa0W6lbd{)qGra z($>zV5<9rz$EvY`I)Ol7fq{r7oK9IVW2XZ$W?<$%T6PaA`M#ZDbOs<>$d;ewe{IUYl%tYjd3!jvt-8WbHE5-^FY;dJ?IfkYFII&t9Dy%9Xj zWnq?Qkq6+^%F5xbIfgJqaOH<8QE5E0Z&55Hp@_q#tXo4)C%q7OY2pa1(@-eEb>PR2 zfh+B$1&BDwA`Q5X847elRDj}0#iQAU1-Ep`1o?msT80svj;duEQWDI7fh1r~W++*H^bw?wly`pGbXJ0idjRD^;(l)M>!l&AFeHYz;RZ6EV}%w{ z@p{=h#D;?!u=Z57dEQ&QrUnNCS^mKvxWL;4h78a=ATEB&QFwx`a7HnJ;yG1@>Z8GE zRvrP0&?a60z~UH#?%`Gl3K6MRBQcSms*tj+!>dsH%0^R7sgRWz#~^a)>Y8xD)bJuC zk(lY@Oqc-n$nN18#~P;g-HR7klZhW?XbKbr7^X0DkKsXu%|S#*DWtlVFrvW>*#biV zd&?DWyd<&5fE;*dS28R2mkwZL)tT`l40w!UwJuX_gtA7UyfFmQ0K~vNIC85KZtSI) zh3I3CPgOfDyJ|pbJWo2gLnXFUSdzyXIbqX8yB3{55;4mP4($UH0m=wv>^zMiX)wT* z=)$HtnOtrH2Xrx=N(}JMG}HkDOvpbe2M#gWS;GvZh&VLHG|1`mu-7=TEW$a!rWYo2 z69nTE$JlV9guwxVmB0p^PIXileJJI#l4V5nRiTs_5?BE&ILAdOM|nD+mCkYLz5zx}qF0GNu8~3aqSWXdwNRsODh(BBqn8B|IQc zW^~r<-3J>?%rV0#=Tk+%oMK4;M4YHO1z}HkV;pJP+qJ!62;if%XK#0tau~ipBtEF_68cY-4&l5a)s3FqC{JF@ffo7El zh9|lsDCbd0w#DQgBd@B7)(9X-JVX(X!m4s+A~TO|LDJgqZ(X}>Z!q%7A)!@s$5DVW zt(LBlk&rm3=ag4FY1}?x1(1&#{{W`hW2!N&*Ed4LF-u{Tw~Gxb4lx6X#H*5j7Nw?oyx>?Z(0Kg{@L92ZGa}Y;7BvUiHURhT5i=IvQ zM7hLj#E8x_tE6)VnXYYaCYNQ>aWbb@`D(GXAVrd2yF*7b76?gUX01 z1|pR0_dhR`{9s%I<4^ldz>E|R&IjAZvv^Q70DAaP#(vtf$YJ8RfN{i__)s>sqCDHq z*aaB3vahqXe>HF3I!N$ZnUBrWQEzRw{o6L8b6_HR&L*?& zZ{NLbg2E{TFpSriMOk>xsc3qSsWzK`wA?9eWp1be@GBrRis5cAT)lJ5yv5v(Kqy`T zRA2=_ZU$p~DH+}Ia!Ja5 z%B-JnO)xeg?+p;nW;Ju=NZt1;s(YD)5g6i4O-g`iVAy!aA8u6U;BZWUTQh(iky%wE zx&es-lMH0ZILN0EFylFcghpCOnyip9z~(Danl|uZjB^|fSY@G(ID0u#BY-rJ20kyF zomg@_JD|xJb0ZbDmcO0H+V=m zk;9E%hBaDzCS(#h;Z^D82^hq2G)4*t#f~y^r2R%ZL4n7YO-u`v5i^0vtuCNDfkXVE zT4452)11LFG0QqI43Ho!VoVOI1yv~8T}qYCaG=Uq5gbN&PdTeyyQtFG2!jL>If|f( zSR|}sd1qD>N-Qp;ra?K$&y5?F)E3Y%!%3bK(~SVARIzP1cSI8{%7&ayAQCgG2`pAf z3j}}$RaujtU0Bcn0Id6crm1N9V^%XoKsb*O<610`Wn02AA#fyCQIyu(Y*xdKI2FX{ zEJ^tWr63BNi0f>xsoPphO>Lgqu!d6>nVV7@jm@K{m0ht->RNlA3uTSLaH^DW37ss* zh^{j4_v^MzwY!BZTkwU_IGK~42D9A#&CL>ogqS*}M+pSheSEd;;og1b-0kn1*Fzo2 z14ZrYp}fzOq4P3uO$x8xLnLAbXV>$$+P_;~hYDzoN*o$Wz}3K{|dkzvMayO#kV z3^6$qraFxzEp6GY#=J(^9_Y3~Htnc4bWaHpGnwJSy*e=kNm4SDY)I%cUNK9mlA5#m zNgcAaw`;!jMIGJ1DhUBEMahig<{hS(@=M{|+CJIYw%2SAH*KkH+*JoshB{}YR4m~X z5=6ALj3b{-V%qN5-(B6{EqRz-3J-Tsi5Za@*G1ShzTqroT(AT{$dX%+8s|54$*o&H zW~>-X0#!s|_p;8d!&&Y?Vd5>zfLfuA+ZS909nu)YH}z8;%K*L6#DZr@oWP-z-M?0@tA#s)mFz_jwJPVJWIRks$` zCXg7n*n-d#0z$nt_N#_{YK4Hd~>TG()O%7w$MM`3q9GyY1J8FIn&vF zT+zLd4v=I?S(X#kQ8$WU+)WH{jQX*zp5xOtw{5bmmA2m_r*wwlIAS_09^ccp?WwM8 z%ApIP#rM|aj{XI^kZJ8tP<_}#rQ?(lI1hbB--Lzo^+=F)9X*-WSK2kNI4}jRF#$t{ za;LnfmQ_w>8cYo1I$lYKR?hg{U2YQGHf4;CS=4R)re(KmYq)R_LA*`cxt_Au~BmKX_3uJjE!;cnC@xv$i#(_@vUPiZV9=tEZhigtC$*@L0uf? zpMJ&e-Dkb#w!H|z2z7AjWI9*A!K0_oYc(KtQ@VybFSG};cNv}6Ulge zbwi8O=4u3RSovFlfn7^GL4@v?T$xz;W0E1$;y26!$f4HNL5Pmh8aK5&&scV1| zPP}yBR4Re*_*EAe7l{NY;$)xA_EpB!#92Z>ah_ia#@ePD4>gHRP zYbxSEU?GSRiO+@xwA{F=e6&CmNYev8ik5U1vuOejv6SJ5L>f|9%*$oMVtIi@Rf3gb zx{g5Nz*9jdOo;|ctb>n7#<8O6q+KX-fO+tmEb|4NuszVA$-|6AGd-vyREUz$GW)W5 zQlPODEO^NPMCF!seu3~R0U^O40gpV#O=sKOaLfU~u_Oo#=6UB=g|j4ssEpL`>Z8NF z6dnRNRmp{Iu3SVeB2X>MA$RbmTd*u?cwUo{9f7rJ5y zf-uV}pA{9~{mBL0a1b>Q4@ZXzqR*Xhl>oG0(elq4(Qvb=Rlr6Qf{3b6U$WYs+ll8P zW3IO@oeMrrn=6d{_EZa-9%nA?E!7rGEyBopgDh|&tZV*aVFCdWpRkZk5Vme8^LyHO z#Cu4oo7e1UtIBJTZa7puQhI2$t06(xpkNofB=zy9XHYa?q~i&as`cSX=7lBWTO5ht zD_W)?t&`?L;-KQheV7`wtDl$^pAZ_LbyWqClq$}Vl$<@3!ss)kOhz+O$}}amnYD3P zW2s!}B=ixTWxZ@$Fm34vra?c1(>=&&#|-8sdc`fr424O8V1P~mvcsmNmn))|A%gH? za6eTAkcYhlU?dU=Jylr;NMbvzNC&GrziR3nhSiKn96;$c((KGwLDCBdRT4qYc~xt2 zS(JiQ{G`;pz>@&;!+@i0Zh2!sK4squf#MVVD>&0CI@Fj<8-W;hQmQy5o;$`gN4U_n zq<6^1W=03HnOtJWj#ESylGq$xBMhlcq&O2Aac1YyP&T8cdwRK3pz~PU9v_(U9ONG$vS1#e)mipj zF?o7enT6xevMGoKXBj+sO+CwOtW1D|!mCvsWUiB(L7LV<2*At|fJY%UCr~cHlmw_e zHAfLpcbFYTR7fq5jQ%yPO}nTHkc*}WBrq$S6BA2F!km^8#82S~gd}^*L}%Y4%bZ3aAW7A{U7me+pJ48DL;|Vh$#y(V>hJrScdLg(4$dA_S<;JUXhC zV>fmT<&HEEMmd~;JSeg=8~}rqoD6d6si#PcIhY2nh*v`;#w1mmMYv;$AV~*Q^ffB4 zn88@V%meVPPAxQ{wiKKcnbjjKc+|CU#`3{fcZlQ1v#P8Clw@@u5t$fJR4aoX^hq6G zRV!TzU<^iN<4=UJ!Qh?|l|wfKC?}O!wYhIuYlT&!7rWgjoONMVhO$_>@r+Sd!Uqnz znZ?;=EZt&TZ42jI0P#q|I%VgPRxgPs)D??@$s6mRgm-%RLB|r|NzOk5IT~!5cmeS_3z30wO5OX80tO$+@#-$jc6CA4>U1m@Tm0Si9 zhIOLbkP$<%GcCXliq(}NU0GdnM`de1AWI%H2h$42aT?Nr<})ds zFdz(RE=w`2UI~!n8OVtC9$mFzjX|x0414S`RU`29n#X7oSZHoc2iG-in~+;oEDv#^ z&9;y;T|+s~DvF765VoE=NYWi=nWnjM6-Sv5Y?)9-B6E-Nr5l{$NGAZ;{Ayz3LrjIs z0@#~Oz)qH4Ba|LBQJZHKC`J;)Q1{lWcR>WX1n?g>P^Gv}m#A8Cgo(t*)k$vEa7$YA z3?v!Sr{CV;Ou-ZnE^(L*mOPABBM~Gv1~_{u)qw&U2T8)UVrNCn1E@OmvICs+=%jK` z9R!eia_2%oCre|@_*iyTZp|DZ@B%%RWJZJLlwwW*c!2~pEv8aPV8(Kc>X5(>3X{`6 zRUb2i;h2ffqH?ATwTDu;cOwCYU0_jHR$Vt7G-b-OYhot=BN9$EU~7y5;6cGl0q&ZY zisfnY!{P}i!zWUzj#@=mcH3%O=rQ@a#X{GCBg`25vL~`BiA^lm7gI;lF^UR{T(}Ei zkF%<%k|AdSl`f)sK+0-Q_*U4f002+T!VW#ONaG#6=@hZRW7Ep6+gK0ZcGGNU%=A>N zCRK@~p2iu21;7wiWRZgy&Xt>4m6AAN zTaC0Xl7CT1GIDYEBY`y&ZEwB`GNB?tIImPWi}L6c!u$Aj0K>w3IMY3mKw=1dVCH{~Gdi-cV}QxNU}=M;+1IIv15*RY z`zcMY39?HQIFMyX&Oqp@6H@qMa>w}6n36aMgVWQ(nA%{_>>!L8d*9(oE!>a;4M1a$ zbz_}f5oiil4YdRg@lglcS?_mFnIw;|jMjzQuzf9Z*wf)8kgiVwOMMEdM+dv!QZWOf zO(oQ_;g}E@agH^5vhc{}I%=5&3Lv%ziNsGT)kwGv3>JH>kZiiAjcFHG1=LC`WI!`K zxQfmL`F=Ih*cCXlby5b?#Pc}KV;OH|#B^5f7iMYhFjySCHAdl5L+HWgO8DFJ9H?4o zZ9#fQx_#8ZxPD+IV@{Kl4iQpJQ=*SChlt7GKDu1kW@e)_oghHrK_*G#TV-f{CUuQn zxpW%RE{^V#p+*Y_y&so4&cF|vQ!yCK(N{7w_j#BG1!l&kiMX?HGdr9~oV;vCbyBk6 zPkI5s<=N9#o6rrU#TzhqH0COzlLTgFdJR~Y!cG7Ij7MJ?q9>kX;ZblROmjKmk-$)0 zC%Za%9v=Fr(3%@a)Y|0ro=`_FMvAB-N6KMXXOYj38lghq2`UCSV_IJE0I|hL@itO% z#w!*zC`#J-WrL6|V%m8?>8D-6TbhB^vJ}V?_+<@*^Q_|OBH$T5lFUqC4E$&Zc6P`! z7+|1412`E|8|8BCrYNQkk~^|N!-C;VWQ?b-YZlDhR5H8I`GbFUm<~Pc z$2X2zMOEe9(7F)giIEr{2Ua4w5=J#7o}Rkg=SEvrw4$SYvLH-TuG+|g7ZZ*x1FIUo zaDqE)9`f9sLtA0NWk+pU%G-?Kyu319WRs;p>NQWy2^eD)r7dn)_Z8q{ln%c2S8~PV zA($D?NI6$oX4zv~(2aGPCxC&~L_4-Kh{SX0qzYBAJm6FsxEUO)NftW31&4|b9HuG+ z)v5q6I^(9RI*b;aGC9@Abd!duj9coXS_rarF*;fRlH|@k13akVEKI_HAmak7YlN{g zzzOQ1imojH<~Wg43e}~+aT-~Ka>69%RI$Vigm;8=ay41F#kB_Llb=M@&2K=LWxxpy zi%G}BQy4;$SO5m8I88H@1~z=6Pmr`jm1xxzyhiPhd6vs%Dg%Xu6n$&fpl zV!RF%SGusnF*OUFM#hQIcb- zGU=chV-+1@i6oFfScnmZTB9)j9Oj^7h!Q93r)y8CQI0L)RXVe)tnD1Uv?{3p z>O6T!6*DB&WYtNxaD@e#n21&6ol(ZCC>Q3IA1o8^%Dc(7v1}5ljwP6nFwa|kRY&di zibbs?mJHg$#$3oT#|p&!jb1)ng7-A()r9y!=THX%05EdH3hjQ=ZUApDSvUgh!ATx2 z6;1n>O0}VGZJ1Qh$4JM3=U3icr`+}O=Uhgzp)MwtCVa98Y)6k*E{dUqcg_SpnjgBb5(+H=4atr_LHkOjdOtL#|r4}u8VtjHwSf!fTPFOD%*QY!w)GT zhAdo2AB3#qK>B0g&cU04nIbyyn$73N?^bcMW++`+Rh*Jxn5ge`;a1$*UA1i8xbtf; zbqvl@rVVXPfR#5w6`Z-LYKn6%* zC`_&y94L!s;0zU*Wgr#=@x%fvzOCxEQ}pfHdv4haDY%AU3`jU(j8{j}{a0$6S={bc z)z)_{X>FTm06JH?fq=?t=Jdt*)b*Wm^C*`aOs{wd3~iAs#Bj!;^H%ExPbos_MJh_^ zo;>8^UeErq>GBWn6m&zzKgmqKuj%=I_Sro;m;PGLId=UQ_V@i>N;b&Ameq0Pj0QN4 z7-3fa<(T)5pxCf*C8rFCuTcK2>Dn51mSd&5daFZkwyL`B-b6zX>6gzvoeiLO6qam(LL5~L~^9t-t{lqm9c2Gz{c7*^3^SXIXq?CQml1JyhIbEoC!h! z9X;wHBT)bcVp|UA)zb#5vu||P6*rz$+nQqOK`O_ODqya?#1_$42pEtDM+$*JD8NxYMxZQBgb(eb< z*4EzPxG`N!T6mG(=Upi}a8lER5Amc{S5a{epm9<-)`yyXoxr-4g9w-z)_)@N7zk&i zMRu>CwSCcYCsKig2G7`PvfVjlS@*Fo80B2sJ*d{O#}IgXs->|qLd;ieVbL5pP$!7M z{Av7`vR)C$yK3qUHxz(zlZ{v8u>|Rr7#t3D+V{r_l6m3Iukv2W>ln7XdzN9q^7xH8 zj>_)YAlp|2v5yzVxyLE&t9G}|rqIS!xN>7j%Qs%DCN@pZ#hX)Ge-V~e$~qWjSzpsG zv!%OsZkD>FsJx=uGmn)n>MF$cS7pN$z;$uLs`Izk+1ZM26_ZZc3f$X(#lo9xP{7kT zF&X4yw+khCp@TB$(sC+hSE_O|O6#I^89aI`qw3Z!+B*LLZq{`HizX~5zS{M;&kXf8 zb;w}z8L_|)HDdd8$~@tM>nI=NPJaEU)JIz%FS^UyzyYP2kc1R!$RhVbBV&aN;O z4Z;GP7AJ;X9W?gr+F)P2urnrb>Zt05e8_DQQ31dY<4dJ9$Pipf0f``1e?Y|++84IQ z268~{#~#WGP1YJnI&m|HvZAn=Q;OgL#P(CG+q>R;f$xPnbr_EQH3LQ6L< z@ad~X;j2*r*yc64<>z-!Zh4#ax}mM9Z@;<j_8JMl4H-)qEDJoF$o&a>z!sfGwAO#|M8OCc?-)_R$y{IVgs`#0?o{DrN z=-VP@e^FK#bHJV>oo#<6+KXu=l0u9!j89)pPFEc_YDtzBv2)0Kti8=Tq)f8qBni?w z@u)?`wQRF8v`CBuL=1D9yUe(|OUME8SzA92IAz53)@!a|W_%+Kyl|#g;aA8yKC?6> zj4bfL45Fq$PYSU}PzW9F1iPzc1Tj_E&LSE-f@V9Ucg zR&&p`vvpmJOCJct=T-TKP#Jx68KFhFB>h5`d%fWSxKfh<1v409!>WWe z!o)e5P-9gp_ZC|c*$zE(MZhqkSxXLraGFLk(;9LBeWs~Map@-tc#;B;I#05qs=MN0 zM488hH|Yq2Gl`I9nIr;SKx{sdG$&NfGH?QmKBdwI6NKkP+W>MgBewxV3!cgr52%@* z>gaV@;maO+}s8T@zmoUBI*U?yoBHUtQN*wTI z8FZS^*EGZh3&bO0Pdp;CTW~cJic@DoP?(W4-P)c(PH8PLDtUMvp01~<_yhemlmb&R`TsLFuCRuNC4tQ;%2G@ z7L8h0qZsO~PTOW;S<5u|L=-(*WY$J2sH&Mja3V*?8q}$U;^1WOV#5t&kbRY7I4bJc z0wA*jz~RcWt9M&Mh9ipr#11t)!N(3HieSkUjxxYxNrM#X@xn2}Fcn)6P6sodSB zLmYWk!SM{_vJblxjzb=GELnO5*K3DL*#Gv0)K3l^Xft4AmNWHGG8!n!JdZlkV4%)a(n-^gM{O{) zLk&U!BaaFzG=`>o{`AqfF!I%}K8959(xYmnopuj*BW=1A?6UL}ONr{doYS176a3IbY z%}TLrTrq?NKI*GWHXvy~HZ*66%clw;iR_9BfFR3Z$FrPKZV~=9X}P5YNr|dsv!u}I zwMbAfB=QmU&|-XJ6UGM`TnBbw9z1D?B!EQDW`V3JxhzNsGdbg)MzpInp#h6=4haLa zWm!=fd@NLR!kxK9Hx5-PHeAjYm2FLnK+Iy#~kTA=~A*(%ug~nam0J;JKHK{WU!KP9eGq2TPvqbiNhYMP9|2d z5J)&?7arQKWD-nKxWi1038V`oFu19x&Ga9iC*+6Oo3_z$^ z3isTDoJ0U=gc(ucI)-x**+rU20OBweP;9b+g%Duy!ylomg z0BJbs;144;m@#fLPaKU|E!}JgBw%=vh?bC2p#F4s-l5{#QmAoLnE;msey@% zD80;KayZ8c>ZG|M0_B+*&}<0k9~xnG6NrJt`{*uG1}2D-xPylrsIHJDj$8*S5+Nf9 z=QS2`8PGaO?#LZH=!uL5bVBN2XD%j+&O-t+6&(qDVL`wWVmfK9BQfq^Mj)DWToM_u zQ74pTL1udArnH+X0be>;{HUb+TC4J78T)3Lg^GwQd$`HN>!(ucbrYu|2<9@YPy#}b zParE&+Opulb{!{5&&IQPNU|}d%V~6665&p*F0yVAXG=x`ianEb+`DavW@ajN@=wg^U#0-8lJi*yeTDVRC&rv@Lux&54 zNZ98Je!6JZDK!ko9-3b;>Tb#QR-f2kIi{YI3y-#n`gQ3fg#g4$52~&_RKqWs?5XBY zO>bXKZY;m%KUFyNvBmv}ezQ+o*u$IVALC3exX8y;*GvANWk-7Jf01Z@+hVwzv)1G4 z6@71G9$fzbJ&q)k^-^3W`V?aT<1sN6(gV{5ObPtXYHRe-@~Qq;KN@=DwECEx+;rNg z@i}40C?6WG^^10p83eWfX%p?7tGDO+csN@IIa~W`tIg^6fDLJZ7zRaDU@KDVuPByB z0}ey0oklWofzg+`yIM8_D_0xyIFIthSob#1Y+74QZ2{HXDy4|$Dr;W+d$a51#!%-- zROtXICodHsvw6&gW>LlrS8m5H2(m)dx;P+6_OG zjqYKAtrAnZhDJ*Q3B$Z8>}|If8J5UWK$jv1Km?qowF^T@i#mah^9DGMM3GvRcR>P& zODd)`fTKPpCTZ_FWvR!zoZgkXRRpRxIBiBx00644?ewe_TY9nM-tEX&XHC%&x(=o_ zE2^A%3^J^itY2F!FL?s(v#)Np+4PrlC(JE9+y(+GQl;Y^mohN9B_8~`iSh|1_~5M9)sNh97xCI0|V+u2ZF;-H+#Z6lVW{3~_O zAuU`c{mh6~YlX3h97k;hwd(u5y}PM;*}Z9k+q{~VsNo8o|0dicwn4FVRd-C}o21F}8q_o_&J|be z{Z8GMOZR)D4X6z6Ji^+Bv6+?NIMU4TX^GM+{{W=5)|LH60K`4XP;;U^KIXk)ms9}- z*of+gsLARYEnR)xzud;TxSnt}&w>TgNNnbKRpRBOziQFG=TV&}LF>a#T&p*SoA+Hi zVL;j6)Wce_P$U*OPg>DCEBut_lMk|v*|&x7Hs6!uj-ZV#sG%{DaL8nWw-;n06Y%0)$gq; z9a$B(K}*D=1aKrt2?S~bhec<%f7B10w^G%yXlqB+t*(gyRu#K|gEaKdT4+buZlC2i zecOmI_R=?}?o2{m11{?+&$QO7JFUj)n?hN(R6$r`80sq{zlUk3X5J0zZN}ZM22l@e zDcj48+1a&se+j3jOw&g@{+n=x4{vb#PNgiwkb5bUZF<@8Ux0Em9^p>=&E2j0S-E2C z&A_OtO6|fP=%3PN>BXz3s^Ah(5i#Ak+4iL`AO5bZj}9C9b=#Nj-F3QdZYEBHD?c)6 zfh!Oz6|Kd)HvF|-5O=^t-tRn&)O*RC_@GSkl4gT;e=GMYrl2&+k2Ot$CGFlU=XWBjyj`_XKz&W)+9FK z!N)&0PsM7D{oTgrYjVx6F$KV|3aey6A&R*$daHqR(|5{8ctOpy+yGDBmBO{caJl!m zPIsKgrx|HuR}_55G^W8d=s0OOC}{$9gmn^m^owidK8CA^l@ zt%jex(S>o_ZDPaS+g(QUEV%N@+}EnpW#Skbo|)<&vfHlO<$_ceChB1&iD)X(Rb9Pm z=HaiRIv0}3s50xHA2~dDR~}YpO$mdsWFW-{3#}&W{{x3800fQ;aNk@IpfZf4g?xF4vFJS zj#=`Gun~tr=Rz|c?us+djX*)fWHJ;o+q1u^JiCqG7=|arJ9$-?Y+P`~T(T0ZE&QMc z4B$cez>H*9IKjZ>LlFcRBOD18xy>5ebGp=vdt`{1sJG>>kb#<5rlxV>ftGVzZOV(g zg&-3?7FFrwKBfh)T2o-G0zhm0jgDwqT>Q_&U-1;wYK3I&uv$Nyy4I}RTo>hz=n_t zj5xM6Yi@4I7|#whoOnhc0C6!s>S9_<#Aydo8amPL_jU2gLXBtakyO+j)s9Khg7 ztm5H`&N1o~QM=8lpbT*tlftK{zt0RoP!t?7lh;meIYT5j+!2qqv9qCIcn;DkEzLv# zNHQQ!Tq)|AXP!r0T2nfKC3mD2y0&uHu+9k`$Gl+qNjs~knb=D*R!Wu^j;aw%nW2pg*LFuK{ zFMxwJZiOof-R?MH?WnebnL1yf;Z`OH2Dl$F$}v4v(zEG1wzkcvSw;X5SgyaqW5jwm zQ4TijE~=YhupxArUV7l^>aBZSt>cJh#V;>#AAw-MU)+ zZtDZyWp)4#0|=_OkL9Z^mnmcnF$`D_y!xiKwbONB^2h)pI)Scj{kvOIRg|d2NYcaY zu3q`A;~PdczS;@_0~q@1w!(#{-5{psVQv zNP;i~0TrGMW-!15!mmXZ@C3TSAfD)&lvqu?V97ZM#8qpQkP93jQkHTnzPEf zp@3Z=V<#VFOKXX1gG68lO=*x&S#cO15tmI5Clf3=9tN}vsDc=oGlc8*nsMc_fMJ2m zMmYU-GgXyIRth964%%mJFbINtSk=PCqDw5tH6{;6IaYh=ZA^(X$C2bkS!FsWcQ63# zs`c{|7|A))5&{4ZT>Z66BM~8F52jU8pIV$?jyU`UT`a>)79ANVHJKHQWfO^;oTdOLsfUr9=z~tl@IF+JlJ< z8yMxvCQ3BoJ?8QORc~`kTFs*!juBQ z4n}^#Q5k}jgC~i~n7S__PB3bclpz>M00F4*9W*7KyQ_&fMqOCdmhO^3AT;nX*V{~Q zKbZnzW;xW=R@>UyHo&;0Tpso`&$PDD<-U%CBz4k@f!j%u9ubVdqvtFgBTQx0(rZ7v zxiG_XQvv#g+lonr>NJAQz@@ysLxC9SJwky{SiqXJz10PAB#6M70M`B!3Q!$KhI}N` z80+Q*2~gbn%*{**I3A-^!L+CXMxmb{s+&+%D1dkKf=(QT1=Yj=y)=Xp&<0#;EER1B z>guTPt*1y?;G&=~a+#<|0FfP;)gVYc(T7mwL`<0bDMTI^bkR^J>!JZt2C2h1;}r&+ zhYlu)D*|xmLr779pm922W7R+yCQdyZ>LX$}(vgovRlt*|-~|=Pd}t`lA9XNbSHq+) z0YrhNq((=TPB@u86xcyHj%V{#XFM>9iePdl?8b;0F&|D;pkQRga>k?rMm%C_ofm2+ zu#D>BMw2E%7|+6}FnJCUM_xd7@vPub;X^>kai&3t9@=JU08bo<`ss9%Ku}LWttJjG zJZRz1h@s{USq(g~_|th880u9d6IQ0naQ*E#b7B|c#-@vl*Q@Mh{g^-3MEhpj`v}r zOcCxp=#pkmJiw)eG8mEfaFR~|Xo9mOoJ~5QcU6!viR<^(L0sh(UM@=y@W^$@kj#$AoR~#~&CZ+>?vm9VhCOSz%Z?O5C4tI4omFFmFc^SGMBz|EK@*sz1ba>q!wO~6 zGi)b@C)q+3Oo_uBK%+v&L}Yo2LO~eiJ+n+m)yP!SsFDNx{Aznn>+4xTG)8gZ9Tli;V8{ceO+#tN zgaA4Sr?fE7rwv)2vGAeZCk)3b(l+egI1xpf*cxq(Bxc!9ZBJ>_Rl=0DahJvdt{viV zlQ1b@MlJ5nu2lr;e2zeI6#_24_FShCH1