diff --git a/.github/workflows/linting.yml b/.github/workflows/linting.yml index 56051458..ae4b2f16 100644 --- a/.github/workflows/linting.yml +++ b/.github/workflows/linting.yml @@ -13,8 +13,8 @@ jobs: - uses: actions/checkout@v3 - uses: actions/setup-python@v4 with: - python-version: "3.8" - - uses: psf/black@24.1.1 + python-version: "3.10" + - uses: psf/black@24.2.0 with: args: ". --check" @@ -24,7 +24,7 @@ jobs: - uses: actions/checkout@v3 - uses: actions/setup-python@v4 with: - python-version: "3.8" + python-version: "3.10" - uses: py-actions/flake8@v1 isort: @@ -33,7 +33,7 @@ jobs: - uses: actions/checkout@v3 - uses: actions/setup-python@v4 with: - python-version: "3.8" + python-version: "3.10" - uses: isort/isort-action@master mypy: @@ -42,10 +42,10 @@ jobs: - uses: actions/checkout@v3 - uses: actions/setup-python@v4 with: - python-version: "3.8" + python-version: "3.10" - name: Install Dependencies run: | - pip install -r requirements.txt - pip install -e . + curl -sSL https://install.python-poetry.org | python3 - + poetry install - name: mypy run: ./run-mypy \ No newline at end of file diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 2ec7b0a0..28c0848c 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -17,8 +17,7 @@ jobs: python-version: "3.8" - name: Install Dependencies run: | - pip install -r requirements.txt - pip install -e . - # pip install + curl -sSL https://install.python-poetry.org | python3 - + poetry install - name: pytest - run: pytest tests \ No newline at end of file + run: poetry run pytest tests \ No newline at end of file diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 26e9ea01..012399ec 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -1,18 +1,26 @@ repos: + - repo: https://github.com/python-poetry/poetry + rev: '1.7.0' + hooks: + - id: poetry-check + - id: poetry-lock + - id: poetry-export + args: ["-f", "requirements.txt", "-o", "requirements.txt", "--with", "docs", "--with", "dev"] + - repo: https://github.com/psf/black - rev: 24.1.1 + rev: 24.2.0 hooks: - id: black language_version: python3 - repo: https://github.com/pycqa/flake8.git - rev: 3.9.1 + rev: 7.0.0 hooks: - id: flake8 args: [--ignore=E741 W503 E203 E501 C901] - repo: https://github.com/pycqa/isort - rev: 5.12.0 + rev: 5.13.2 hooks: - id: isort args: ["--profile", "black", "--filter-files"] diff --git a/.readthedocs.yml b/.readthedocs.yml new file mode 100644 index 00000000..96401768 --- /dev/null +++ b/.readthedocs.yml @@ -0,0 +1,15 @@ +# Required +version: 2 + +# Build documentation in the docs/ directory with Sphinx +sphinx: + configuration: docs/source/conf.py + +# Optionally build your docs in additional formats such as PDF and ePub +formats: all + +# Optionally set the version of Python and requirements required to build your docs +python: + version: 3.10 + install: + - requirements: requirements.txt \ No newline at end of file diff --git a/README.md b/README.md index 2d7c480e..1f4c5e0b 100644 --- a/README.md +++ b/README.md @@ -1,83 +1,111 @@ -[![CI-tests](https://github.com/GilesStrong/mode_muon_tomography/actions/workflows/tests.yml/badge.svg)](https://github.com/GilesStrong/mode_muon_tomography/actions) -[![CI-lints](https://github.com/GilesStrong/mode_muon_tomography/actions/workflows/linting.yml/badge.svg)](https://github.com/GilesStrong/mode_muon_tomography/actions) +[![CI-tests](https://github.com/GilesStrong/tomopt/actions/workflows/tests.yml/badge.svg)](https://github.com/GilesStrong/tomopt/actions) +[![CI-lints](https://github.com/GilesStrong/tomopt/actions/workflows/linting.yml/badge.svg)](https://github.com/GilesStrong/tomopt/actions) [![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black) +[![pypi tomopt version](https://img.shields.io/pypi/v/tomopt.svg)](https://pypi.python.org/pypi/tomopt) +[![tomopt python compatibility](https://img.shields.io/pypi/pyversions/tomopt.svg)](https://pypi.python.org/pypi/tomopt) [![tomopt license](https://img.shields.io/pypi/l/tomopt.svg)](https://pypi.python.org/pypi/tomopt) +[![Documentation Status](https://readthedocs.org/projects/tomopt/badge/?version=stable)](https://tomopt.readthedocs.io/en/stable/?badge=stable) + # TomOpt: Differential Muon Tomography Optimisation -## Installation +This repo provides a library for the differential optimisation of scattering muon tomography systems. For an overview, please read our first publication [here](https://arxiv.org/abs/2309.14027). +As a disclaimer, this is a library designed to be extended by users for their specific tasks: e.g. passive volume definition, inference methods, and loss functions. Additionally, optimisation in TomOpt can be unstable, and requires careful tuning by users. This is to say that it is not a polished product for the general public, but rather fellow researchers in the field of optimisation and muon tomography. -N.B. Whilst the repo is private, you will need to make sure that you have registered the public ssh key of your computer/instance with your [GitHub profile](https://github.com/settings/keys). Follow [these instructions](https://docs.github.com/en/github/authenticating-to-github/connecting-to-github-with-ssh/checking-for-existing-ssh-keys) to check for existing keys or [these](https://docs.github.com/en/github/authenticating-to-github/connecting-to-github-with-ssh/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent) to generate a new key. After that follow [this](https://docs.github.com/en/github/authenticating-to-github/connecting-to-github-with-ssh/adding-a-new-ssh-key-to-your-github-account) to associate the key. +If you are interested in using this library seriously, please contact us; we would love to here if you have a specific use-case you wish to work on. -Checkout package: -``` -git clone git@github.com:GilesStrong/mode_muon_tomography.git -cd mode_muon_tomography -``` +## Overview -*N.B.* For GPU usage, it is recommended to manually setup conda and install PyTorch according to system, e.g.: -``` -conda activate root -conda install nb_conda_kernels -conda create -n tomopt python=3.8 pip ipykernel -conda activate tomopt -pip install torch==1.8.1+cu111 -f https://download.pytorch.org/whl/torch_stable.html -pip install -r requirements.txt -``` +The TomOpt library is designed to optimise the design of a muon tomography system. The detector system is defined by a set of parameters, which are used to define the geometry of the detectors. The optimisation is performed by minimising a loss function, which is defined by the user. The loss function is evaluated by simulating the muon scattering process through the detector system and passive volumes. The information recorded by the detectors is then passed through an inference system to arrive at a set of task-specific parameters. These are then compared to the ground truth, and the loss is calculated. The gradient of the loss with respect to the detector parameters is then used to update the detector parameters. -Minimum python version is 3.8. Recommend creating a virtual environment, e.g. assuming your are using [Anaconda](https://www.anaconda.com/products/individual)/[Miniconda](https://docs.conda.io/en/latest/miniconda.html) (if installing conda for the first time, remember to restart the shell before attemting to use conda, and that by default conda writes the setup commands to `.bashrc`): +The TomOpt library is designed to be modular, and to allow for the easy addition of new inference systems, loss functions, and passive volume definitions. The library is also designed to be easily extensible to new optimisation algorithms, and to allow for the easy addition of new constraints on the detector parameters. -``` -conda activate root -conda install nb_conda_kernels -conda env create -f environment.yml -conda activate tomopt -``` +TomOpt consists of several submodules: -Otherwise set up a suitable environment using your python distribution of choice using the contents of `environment.yml`. Remember to activate the correct environment each time, via e.g. `conda activate tomopt`. +- benchmarks: and ongoing collection of concrete implementations and task-specific extensions that are used to test the library on real-world problems. +- inference: provides classes that infer muon-trajectories from detector data, and infer properties of passive volumes from muon-trajectories. +- muon: provides classes for handling muon batches, and generating muons from literature flux-distributions +- optimisation: provides classes for handling the optimisation of detector parameters, and an extensive callback system to modify the optimisation process. +- plotting: various plotting utilities for visualising the detector system, the optimisation process, and results +- volume: contains classes for defining passive volumes and detector systems +- core: core objects used by all parts of the code +- utils: various utilities used throughout the codebase -Install package and dependencies -``` -pip install -r requirements.txt -pip install -e . -``` +## Installation -Install git-hooks: +### As a dependency -``` -pre-commit install +For dependency usage, `tomopt` can be installed via e.g. + +```bash +pip install tomopt ``` -### Windows usage +### For development -Apparently when using Windows, the environment must also be activated within ipython using: +Check out the repo locally: +```bash +git clone git@github.com:GilesStrong/tomopt.git +cd tomopt ``` -python -m ipykernel install --user --name tomopt --display-name "Python (tomopt)" + +For development usage, we use [`poetry`](https://python-poetry.org/docs/#installing-with-the-official-installer) to handle dependency installation. +Poetry can be installed via, e.g. + +```bash +curl -sSL https://install.python-poetry.org | python3 - +poetry self update ``` -## Testing +and ensuring that `poetry` is available in your `$PATH` -Testing is handled by `pytest` and is set up to run during pull requests. Tests can be manually ran locally via: +TomOpt requires `python >= 3.10`. This can be installed via e.g. [`pyenv`](https://github.com/pyenv/pyenv): -``` -pytest tests/ +```bash +curl https://pyenv.run | bash +pyenv update +pyenv install 3.10 +pyenv local 3.10 ``` -to run all tests, or, e.g.: +Install the dependencies: +```bash +poetry install +poetry self add poetry-plugin-export +poetry config warnings.export false +poetry run pre-commit install ``` -pytest tests/test_muon.py + +Finally, make sure everything is working as expected by running the tests: + +```bash +poetry run pytest tests ``` +For those unfamiliar with `poetry`, basically just prepend commands with `poetry run` to use the stuff installed within the local environment, e.g. `poetry run jupyter notebook` to start a jupyter notebook server. This local environment is basically a python virtual environment. To correctly set up the interpreter in your IDE, use `poetry run which python` to see the path to the correct python executable. + +## Examples + +A few examples are included to introduce users and developers to the TomOpt library. These take the form of Jupyter notebooks. In `examples/getting_started` there are four ordered notebooks: + +- `00_Hello_World.ipynb` aims to show the user the high-level classes in TomOpt and the general workflow. +- `01_Indepth_tutorial_single_cycle.ipynb` aims to show developers what is going on in a single update iteration. +- `02_Indepth_tutotial_optimisation_and_callbacks.ipynb` aims to show users and developers the workings of the callback system in TomOpt +- `03_fixed_budget_mode.ipynb` aims to show users and developers how to optimise such that the detector maintains a constant cost. + +In `examples/benchmarks` there is a single notebook that covers the optimisation performed in our first publication, in which we optimised a detector to estimate the fill-height of a ladle furnace at a steel plant. As a disclaimer, this notebook may not fully reproduce our result, and is designed to be used in an interactive manner by experienced users. + + ### Running notebooks in a remote cluster If you want to run notebooks on a remote cluster but access them on the browser of your local machine, you need to forward the notebook server from the cluster to your local machine. On the cluster, run: ``` -jupyter notebook --no-browser --port=8889 +poetry run jupyter notebook --no-browser --port=8889 ``` On your local computer, you need to set up a forwarding that picks the flux of data from the cluster via a local port, and makes it available on another port as if the server was in the local machine: @@ -98,7 +126,7 @@ ssh -N -f -L localhost:8890:localhost:8888 username@gateway_hostname # on your l ## External repos -N.B. Not currently public +N.B. Most are not currently public - [tomo_deepinfer](https://github.com/GilesStrong/mode_muon_tomo_inference) (contact @GilesStrong for access) separately handles training and model definition of GNNs used for passive volume inference. Models are exported as JIT-traced scripts, and loaded here using the `DeepVolumeInferer` class. We still need to find a good way to host the trained models for easy download. - [mode_muon_tomography_scattering](https://github.com/GilesStrong/mode_muon_tomography_scattering) (contact @GilesStrong for access) separately handles conversion of PGeant model from root to HDF5, and Geant validation data from csv to HDF5. @@ -106,4 +134,4 @@ N.B. Not currently public ## Authors -The TomOpt project, and its continued development and support, is the result of the combined work of many people, whose contributions are summarised in [the author list](https://github.com/GilesStrong/mode_muon_tomography/blob/main/AUTHORS.md) \ No newline at end of file +The TomOpt project, and its continued development and support, is the result of the combined work of many people, whose contributions are summarised in [the author list](https://github.com/GilesStrong/tomopt/blob/main/AUTHORS.md) \ No newline at end of file diff --git a/docs/_build/doctrees/environment.pickle b/docs/_build/doctrees/environment.pickle index 9cb68644..66a14fe0 100644 Binary files a/docs/_build/doctrees/environment.pickle and b/docs/_build/doctrees/environment.pickle differ diff --git a/docs/_build/doctrees/index.doctree b/docs/_build/doctrees/index.doctree index d5b7f512..435bfdd9 100644 Binary files a/docs/_build/doctrees/index.doctree and b/docs/_build/doctrees/index.doctree differ diff --git a/docs/_build/doctrees/installation.doctree b/docs/_build/doctrees/installation.doctree index 57c4fd41..5612aaf3 100644 Binary files a/docs/_build/doctrees/installation.doctree and b/docs/_build/doctrees/installation.doctree differ diff --git a/docs/_build/doctrees/introduction.doctree b/docs/_build/doctrees/introduction.doctree new file mode 100644 index 00000000..7f6a594b Binary files /dev/null and b/docs/_build/doctrees/introduction.doctree differ diff --git a/docs/_build/doctrees/modules.doctree b/docs/_build/doctrees/modules.doctree index dc3bf432..17eb177d 100644 Binary files a/docs/_build/doctrees/modules.doctree and b/docs/_build/doctrees/modules.doctree differ diff --git a/docs/_build/doctrees/tomopt.benchmarks.doctree b/docs/_build/doctrees/tomopt.benchmarks.doctree index 0469d113..f8440dd5 100644 Binary files a/docs/_build/doctrees/tomopt.benchmarks.doctree and b/docs/_build/doctrees/tomopt.benchmarks.doctree differ diff --git a/docs/_build/doctrees/tomopt.benchmarks.ladle_furnace.doctree b/docs/_build/doctrees/tomopt.benchmarks.ladle_furnace.doctree index 7dad4413..65067f10 100644 Binary files a/docs/_build/doctrees/tomopt.benchmarks.ladle_furnace.doctree and b/docs/_build/doctrees/tomopt.benchmarks.ladle_furnace.doctree differ diff --git a/docs/_build/doctrees/tomopt.benchmarks.small_walls.doctree b/docs/_build/doctrees/tomopt.benchmarks.small_walls.doctree index 08de0c11..8d07ddce 100644 Binary files a/docs/_build/doctrees/tomopt.benchmarks.small_walls.doctree and b/docs/_build/doctrees/tomopt.benchmarks.small_walls.doctree differ diff --git a/docs/_build/doctrees/tomopt.benchmarks.u_lorry.doctree b/docs/_build/doctrees/tomopt.benchmarks.u_lorry.doctree index 08bbcba2..02f5356e 100644 Binary files a/docs/_build/doctrees/tomopt.benchmarks.u_lorry.doctree and b/docs/_build/doctrees/tomopt.benchmarks.u_lorry.doctree differ diff --git a/docs/_build/doctrees/tomopt.doctree b/docs/_build/doctrees/tomopt.doctree index d190038e..e9b9643c 100644 Binary files a/docs/_build/doctrees/tomopt.doctree and b/docs/_build/doctrees/tomopt.doctree differ diff --git a/docs/_build/doctrees/tomopt.inference.doctree b/docs/_build/doctrees/tomopt.inference.doctree index d8f96754..943517d5 100644 Binary files a/docs/_build/doctrees/tomopt.inference.doctree and b/docs/_build/doctrees/tomopt.inference.doctree differ diff --git a/docs/_build/doctrees/tomopt.muon.doctree b/docs/_build/doctrees/tomopt.muon.doctree index 6519cdd0..1636a345 100644 Binary files a/docs/_build/doctrees/tomopt.muon.doctree and b/docs/_build/doctrees/tomopt.muon.doctree differ diff --git a/docs/_build/doctrees/tomopt.optimisation.callbacks.doctree b/docs/_build/doctrees/tomopt.optimisation.callbacks.doctree index 0f85398f..e07eaad0 100644 Binary files a/docs/_build/doctrees/tomopt.optimisation.callbacks.doctree and b/docs/_build/doctrees/tomopt.optimisation.callbacks.doctree differ diff --git a/docs/_build/doctrees/tomopt.optimisation.data.doctree b/docs/_build/doctrees/tomopt.optimisation.data.doctree index ad2e426f..3633c258 100644 Binary files a/docs/_build/doctrees/tomopt.optimisation.data.doctree and b/docs/_build/doctrees/tomopt.optimisation.data.doctree differ diff --git a/docs/_build/doctrees/tomopt.optimisation.doctree b/docs/_build/doctrees/tomopt.optimisation.doctree index fb430d29..29dc32d4 100644 Binary files a/docs/_build/doctrees/tomopt.optimisation.doctree and b/docs/_build/doctrees/tomopt.optimisation.doctree differ diff --git a/docs/_build/doctrees/tomopt.optimisation.loss.doctree b/docs/_build/doctrees/tomopt.optimisation.loss.doctree index 4c87db5f..1c90cc42 100644 Binary files a/docs/_build/doctrees/tomopt.optimisation.loss.doctree and b/docs/_build/doctrees/tomopt.optimisation.loss.doctree differ diff --git a/docs/_build/doctrees/tomopt.optimisation.wrapper.doctree b/docs/_build/doctrees/tomopt.optimisation.wrapper.doctree index 637fda40..6a6d36cf 100644 Binary files a/docs/_build/doctrees/tomopt.optimisation.wrapper.doctree and b/docs/_build/doctrees/tomopt.optimisation.wrapper.doctree differ diff --git a/docs/_build/doctrees/tomopt.plotting.doctree b/docs/_build/doctrees/tomopt.plotting.doctree index f248829a..d3675cc8 100644 Binary files a/docs/_build/doctrees/tomopt.plotting.doctree and b/docs/_build/doctrees/tomopt.plotting.doctree differ diff --git a/docs/_build/doctrees/tomopt.volume.doctree b/docs/_build/doctrees/tomopt.volume.doctree index 10063067..ba81f180 100644 Binary files a/docs/_build/doctrees/tomopt.volume.doctree and b/docs/_build/doctrees/tomopt.volume.doctree differ diff --git a/docs/_build/html/.buildinfo b/docs/_build/html/.buildinfo index 42b449ac..7126dc3d 100644 --- a/docs/_build/html/.buildinfo +++ b/docs/_build/html/.buildinfo @@ -1,4 +1,4 @@ # Sphinx build info version 1 # This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done. -config: a1d4bf3194fba8eeb8c569809446c981 +config: 93fb6211ea9420d8aaccbcb5bb4f12fc tags: 645f666f9bcd5a90fca523b33c5a78b7 diff --git a/docs/_build/html/_modules/index.html b/docs/_build/html/_modules/index.html index 3287f367..f2973c28 100644 --- a/docs/_build/html/_modules/index.html +++ b/docs/_build/html/_modules/index.html @@ -14,8 +14,6 @@ - - @@ -153,7 +151,7 @@ @@ -314,9 +312,6 @@

All modules for which code is available

- - - diff --git a/docs/_build/html/_modules/tomopt/benchmarks/ladle_furnace/data.html b/docs/_build/html/_modules/tomopt/benchmarks/ladle_furnace/data.html index 641cefb7..19d325a9 100644 --- a/docs/_build/html/_modules/tomopt/benchmarks/ladle_furnace/data.html +++ b/docs/_build/html/_modules/tomopt/benchmarks/ladle_furnace/data.html @@ -14,8 +14,6 @@ - - @@ -249,7 +247,7 @@

Source code for tomopt.benchmarks.ladle_furnace.data

[docs]class LadleFurnacePassiveGenerator(AbsPassiveGenerator): - r""" + r""" Research tested only: no unit tests """ @@ -344,9 +342,6 @@

Source code for tomopt.benchmarks.ladle_furnace.data

- - - diff --git a/docs/_build/html/_modules/tomopt/benchmarks/ladle_furnace/inference.html b/docs/_build/html/_modules/tomopt/benchmarks/ladle_furnace/inference.html index d04304b6..55a0d08d 100644 --- a/docs/_build/html/_modules/tomopt/benchmarks/ladle_furnace/inference.html +++ b/docs/_build/html/_modules/tomopt/benchmarks/ladle_furnace/inference.html @@ -14,8 +14,6 @@ - - @@ -253,7 +251,7 @@

Source code for tomopt.benchmarks.ladle_furnace.inference

[docs]class EdgeDetLadleFurnaceFillLevelInferrer(AbsIntClassifierFromX0): - r""" + r""" Research tested only: no unit tests """ @@ -346,7 +344,7 @@

Source code for tomopt.benchmarks.ladle_furnace.inference

[docs] @staticmethod def remove_ladle(x: Tensor) -> Tensor: - """Assumes ladle is 1 voxel thick""" + """Assumes ladle is 1 voxel thick""" return x[:, 1:, 1:-1, 1:-1]
[docs] def x02probs(self, vox_preds: Tensor) -> Tensor: @@ -360,7 +358,7 @@

Source code for tomopt.benchmarks.ladle_furnace.inference

[docs]class PocaZLadleFurnaceFillLevelInferrer(AbsVolumeInferrer): - r""" + r""" Research tested only: no unit tests Computes fill heigh based on weighted average of z of POCAs @@ -376,7 +374,7 @@

Source code for tomopt.benchmarks.ladle_furnace.inference

_var_order_szs = [("poca", 3)] def __init__(self, volume: Volume, smooth: Union[float, Tensor] = 0.1): - r""" + r""" Initialises the inference class for the provided volume. """ @@ -420,7 +418,7 @@

Source code for tomopt.benchmarks.ladle_furnace.inference

self.smooth = smooth # type: ignore [assignment] def _set_var_dimensions(self) -> None: - r""" + r""" Configures the indexing of the dependent variable and uncertainty tensors """ @@ -433,7 +431,7 @@

Source code for tomopt.benchmarks.ladle_furnace.inference

self._poca_dim = dims["poca"] def _reset_vars(self) -> None: - r""" + r""" Resets any variable/predictions made from the added scatter batches. """ @@ -446,7 +444,7 @@

Source code for tomopt.benchmarks.ladle_furnace.inference

self._pred_height_unc = None
[docs] def compute_efficiency(self, scatters: ScatterBatch) -> Tensor: - r""" + r""" Computes the per-muon efficiency, given the individual muon hit efficiencies, as the probability of at least two hits above and below the passive volume. @@ -475,7 +473,7 @@

Source code for tomopt.benchmarks.ladle_furnace.inference

return eff
[docs] def get_prediction(self) -> Optional[Tensor]: - r""" + r""" Computes the predicted fill level via a weighted average of POCA locations. Returns: @@ -489,7 +487,7 @@

Source code for tomopt.benchmarks.ladle_furnace.inference

@property def pred_height(self) -> Tensor: - r""" + r""" Returns: (h) tensor of fill-height prediction """ @@ -501,7 +499,7 @@

Source code for tomopt.benchmarks.ladle_furnace.inference

@property def muon_poca_xyz(self) -> Tensor: - r""" + r""" Returns: (muons,xyz) tensor of PoCA locations """ @@ -512,7 +510,7 @@

Source code for tomopt.benchmarks.ladle_furnace.inference

@property def muon_poca_xyz_unc(self) -> Tensor: - r""" + r""" Returns: (muons,xyz) tensor of PoCA location uncertainties """ @@ -522,7 +520,7 @@

Source code for tomopt.benchmarks.ladle_furnace.inference

return self._muon_scatter_var_uncs[:, self._poca_dim] def _combine_scatters(self) -> None: - r""" + r""" Combines scatter data from all the batches added so far. Any muons with NaN or Inf entries will be filtered out of the resulting tensors. @@ -553,7 +551,7 @@

Source code for tomopt.benchmarks.ladle_furnace.inference

@property def muon_efficiency(self) -> Tensor: - r""" + r""" Returns: (muons,1) tensor of the efficiencies of the muons """ @@ -564,7 +562,7 @@

Source code for tomopt.benchmarks.ladle_furnace.inference

@property def n_mu(self) -> int: - r""" + r""" Returns: Total number muons included in the inference """ @@ -593,7 +591,7 @@

Source code for tomopt.benchmarks.ladle_furnace.inference

return coef / torch.sigmoid(1 / self.smooth) def _get_height_pred(self) -> Tensor: - r""" + r""" Computes the predicted fill-height given the POCAs in the scatter batches added. Returns: @@ -629,7 +627,7 @@

Source code for tomopt.benchmarks.ladle_furnace.inference

[docs]class LinearCorrectionCallback(Callback): - r""" + r""" Research tested only: no unit tests """ @@ -708,9 +706,6 @@

Source code for tomopt.benchmarks.ladle_furnace.inference

- - - diff --git a/docs/_build/html/_modules/tomopt/benchmarks/ladle_furnace/loss.html b/docs/_build/html/_modules/tomopt/benchmarks/ladle_furnace/loss.html index 58792477..d531f4d0 100644 --- a/docs/_build/html/_modules/tomopt/benchmarks/ladle_furnace/loss.html +++ b/docs/_build/html/_modules/tomopt/benchmarks/ladle_furnace/loss.html @@ -14,8 +14,6 @@ - - @@ -250,7 +248,7 @@

Source code for tomopt.benchmarks.ladle_furnace.loss

[docs]class LadleFurnaceIntClassLoss(VolumeIntClassLoss): - r""" + r""" Research tested only: no unit tests """ @@ -284,7 +282,7 @@

Source code for tomopt.benchmarks.ladle_furnace.loss

[docs]class SpreadRangeLoss(Callback): - r""" + r""" Research tested only: no unit tests """ @@ -355,9 +353,6 @@

Source code for tomopt.benchmarks.ladle_furnace.loss

- - - diff --git a/docs/_build/html/_modules/tomopt/benchmarks/ladle_furnace/plotting.html b/docs/_build/html/_modules/tomopt/benchmarks/ladle_furnace/plotting.html index 17587d39..e5cce49b 100644 --- a/docs/_build/html/_modules/tomopt/benchmarks/ladle_furnace/plotting.html +++ b/docs/_build/html/_modules/tomopt/benchmarks/ladle_furnace/plotting.html @@ -14,8 +14,6 @@ - - @@ -647,9 +645,6 @@

Source code for tomopt.benchmarks.ladle_furnace.plotting

- - - diff --git a/docs/_build/html/_modules/tomopt/benchmarks/ladle_furnace/volume.html b/docs/_build/html/_modules/tomopt/benchmarks/ladle_furnace/volume.html index 47c27736..e5e7bd09 100644 --- a/docs/_build/html/_modules/tomopt/benchmarks/ladle_furnace/volume.html +++ b/docs/_build/html/_modules/tomopt/benchmarks/ladle_furnace/volume.html @@ -14,8 +14,6 @@ - - @@ -575,9 +573,6 @@

Source code for tomopt.benchmarks.ladle_furnace.volume

- - - diff --git a/docs/_build/html/_modules/tomopt/benchmarks/small_walls/data.html b/docs/_build/html/_modules/tomopt/benchmarks/small_walls/data.html index c2eef010..a61b71ce 100644 --- a/docs/_build/html/_modules/tomopt/benchmarks/small_walls/data.html +++ b/docs/_build/html/_modules/tomopt/benchmarks/small_walls/data.html @@ -14,8 +14,6 @@ - - @@ -378,9 +376,6 @@

Source code for tomopt.benchmarks.small_walls.data

- - - diff --git a/docs/_build/html/_modules/tomopt/benchmarks/small_walls/volume.html b/docs/_build/html/_modules/tomopt/benchmarks/small_walls/volume.html index 3a3ff6cb..5228802c 100644 --- a/docs/_build/html/_modules/tomopt/benchmarks/small_walls/volume.html +++ b/docs/_build/html/_modules/tomopt/benchmarks/small_walls/volume.html @@ -14,8 +14,6 @@ - - @@ -367,9 +365,6 @@

Source code for tomopt.benchmarks.small_walls.volume

- - - diff --git a/docs/_build/html/_modules/tomopt/benchmarks/u_lorry/data.html b/docs/_build/html/_modules/tomopt/benchmarks/u_lorry/data.html index 46120005..dbc7eef3 100644 --- a/docs/_build/html/_modules/tomopt/benchmarks/u_lorry/data.html +++ b/docs/_build/html/_modules/tomopt/benchmarks/u_lorry/data.html @@ -14,8 +14,6 @@ - - @@ -250,7 +248,7 @@

Source code for tomopt.benchmarks.u_lorry.data

[docs]class ULorryPassiveGenerator(AbsPassiveGenerator): - r""" + r""" Research tested only: no unit tests """ @@ -360,9 +358,6 @@

Source code for tomopt.benchmarks.u_lorry.data

- - - diff --git a/docs/_build/html/_modules/tomopt/inference/scattering.html b/docs/_build/html/_modules/tomopt/inference/scattering.html index 70b80dcb..833c7cf5 100644 --- a/docs/_build/html/_modules/tomopt/inference/scattering.html +++ b/docs/_build/html/_modules/tomopt/inference/scattering.html @@ -14,8 +14,6 @@ - - @@ -256,7 +254,7 @@

Source code for tomopt.inference.scattering

 
 
 
[docs]class ScatterBatch: - r""" + r""" Class for computing scattering information from the hits via incoming/outgoing trajectory fitting. Linear fits are performed separately to all hits associated with layer groups, as indicated by the `pos` attribute of the layers which recorded hits. @@ -334,7 +332,7 @@

Source code for tomopt.inference.scattering

     _dxy_unc: Optional[Tensor] = None
 
     def __init__(self, mu: MuonBatch, volume: Volume):
-        r"""
+        r"""
         Initialise scatter batch from a muon batch.
         During initialisation:
             The muons will be filtered in-place via :meth:`~tomopt.inference.ScatterBatch._filter_scatters`
@@ -351,7 +349,7 @@ 

Source code for tomopt.inference.scattering

 
 
[docs] @staticmethod def get_muon_trajectory(hits: Tensor, uncs: Tensor, lw: Tensor) -> Tuple[Tensor, Tensor]: - r""" + r""" Fits a linear trajectory to a group of hits, whilst considering their uncertainties on their xy positions. No uncertainty is considered for z positions of hits. The fit is performed via an analytical likelihood-maximisation. @@ -400,7 +398,7 @@

Source code for tomopt.inference.scattering

         return vec, start
[docs] def get_scatter_mask(self) -> Tensor: - r""" + r""" Returns: (muons) Boolean tensor where True indicates that the PoCA of the muon is located within the passive volume """ @@ -416,7 +414,7 @@

Source code for tomopt.inference.scattering

         )
[docs] def plot_scatter(self, idx: int, savename: Optional[Path] = None) -> None: - r""" + r""" Plots representation of hits and fitted trajectories for a single muon. Arguments: @@ -526,7 +524,7 @@

Source code for tomopt.inference.scattering

 
     @staticmethod
     def _compute_theta_msc(p: Tensor, q: Tensor) -> Tensor:
-        r"""
+        r"""
         Computes the angle between sets of vectors p and q via the cosine dot-product.
 
         Arguments:
@@ -541,7 +539,7 @@ 

Source code for tomopt.inference.scattering

 
     @staticmethod
     def _compute_theta(track: Tensor) -> Tensor:
-        r"""
+        r"""
         Computes the theta angles of vectors
 
         Arguments:
@@ -561,7 +559,7 @@ 

Source code for tomopt.inference.scattering

 
     @staticmethod
     def _compute_phi(x: Tensor, y: Tensor) -> Tensor:
-        r"""
+        r"""
         Computes the phi angles from the xy components of vectors
 
         Arguments:
@@ -590,7 +588,7 @@ 

Source code for tomopt.inference.scattering

 
     @staticmethod
     def _compute_dtheta_dphi_scatter(theta_in: Tensor, phi_in: Tensor, theta_out: Tensor, phi_out: Tensor) -> Dict[str, Tensor]:
-        r"""
+        r"""
         Computes dtheta and dphi variables under the assumption of small angular scatterings.
         An assumption is necessary here, since there is a loss of information in the when the muons undergo scattering in theta and phi:
         since theta is [0,pi] a negative scattering in theta will always results in a positive theta, but phi can become phi+pi.
@@ -634,7 +632,7 @@ 

Source code for tomopt.inference.scattering

         return {"dtheta": dtheta[i, hypo, None], "dphi": dphi[i, hypo, None]}
 
     def _extract_hits(self) -> None:
-        r"""
+        r"""
         Takes the dictionary of hits from the muons and combines them into single tensors of recorded and true hits.
         """
 
@@ -648,7 +646,7 @@ 

Source code for tomopt.inference.scattering

         self._hit_effs = torch.cat((self.hits["above"]["eff"], self.hits["below"]["eff"]), dim=1)  # muons, all panels, eff
 
     def _compute_tracks(self) -> None:
-        r"""
+        r"""
         Computes tracks from hits according to the uncertainty and efficiency of the hits, computed as 1/(resolution*efficiency).
         """
 
@@ -656,7 +654,7 @@ 

Source code for tomopt.inference.scattering

         self._track_out, self._track_start_out = self.get_muon_trajectory(self.below_hits, self.below_hit_uncs / self.below_hit_effs, self.volume.lw)
 
     def _filter_scatters(self) -> None:
-        r"""
+        r"""
         Filters muons to avoid NaN/Inf gradients or values. This results in direct, in-place changes to the :class:`~tomopt.muon.muon_batch.MuonBatch`.
         This might seem heavy-handed, but tracks with invalid/extreme parameters can have NaN gradients, which can spoil the grads of all other muons.
 
@@ -703,7 +701,7 @@ 

Source code for tomopt.inference.scattering

             self._compute_tracks()
 
     def _compute_scatters(self) -> None:
-        r"""
+        r"""
         Computes incoming and outgoing vectors, and the vector normal to them, from hits extracted from filtered muons.
 
         .. important::
@@ -733,7 +731,7 @@ 

Source code for tomopt.inference.scattering

         self._track_coefs = (lhs.inverse() @ rhs[:, :, None]).squeeze(-1)
 
     def _compute_xyz_in(self) -> Tensor:
-        r"""
+        r"""
         Returns:
             (muon,xyz) tensor the positions of the muons at the z-level of the top of the passive volume
         """
@@ -742,7 +740,7 @@ 

Source code for tomopt.inference.scattering

         return self._track_start_in + ((dz / self._track_in[:, 2:3]) * self._track_in)
 
     def _compute_xyz_out(self) -> Tensor:
-        r"""
+        r"""
         Returns:
             (muon,xyz) tensor the positions of the muons at the z-level of the bottom of the passive volume
         """
@@ -751,7 +749,7 @@ 

Source code for tomopt.inference.scattering

         return self._track_start_out - ((dz / self._track_out[:, 2:3]) * self._track_out)
 
     def _compute_out_var_unc(self, var: Tensor) -> Tensor:
-        r"""
+        r"""
         Computes the uncertainty on variable computed from the recorded hits due to the uncertainties on the hits, via gradient-based error propagation.
         This computation uses the triangle of the error matrix and does not assume zero-valued off-diagonal elements.
         .. warning::
@@ -777,7 +775,7 @@ 

Source code for tomopt.inference.scattering

         return unc_2.sum(-1).sqrt()  # (mu,var)
 
     def _set_dtheta_dphi_scatter(self) -> None:
-        r"""
+        r"""
         Simultaneously sets dtheta and dphi scattering variables under the assumption of small angular scatterings.
         An assumption is necessary here, since there is a loss of information in the when the muons undergo scattering in theta and phi:
         since theta is [0,pi] a negative scattering in theta will always results in a positive theta, but phi can become phi+pi.
@@ -793,7 +791,7 @@ 

Source code for tomopt.inference.scattering

 
     @property
     def hits(self) -> Dict[str, Dict[str, Tensor]]:
-        r"""
+        r"""
         Returns:
             Dictionary of hits, as returned by :meth:`~tomopt.muon.muon_batch.MuonBatch.get_hits()`
         """
@@ -802,7 +800,7 @@ 

Source code for tomopt.inference.scattering

 
     @property
     def reco_hits(self) -> Optional[Tensor]:
-        r"""
+        r"""
         Returns:
             (muons,hits,xyz) tensor of recorded hits
         """
@@ -811,7 +809,7 @@ 

Source code for tomopt.inference.scattering

 
     @property
     def gen_hits(self) -> Optional[Tensor]:
-        r"""
+        r"""
         Returns:
             (muons,hits,xyz) tensor of true hits
         """
@@ -820,7 +818,7 @@ 

Source code for tomopt.inference.scattering

 
     @property
     def n_hits_above(self) -> Optional[int]:
-        r"""
+        r"""
         Returns:
             Number of hits per muon in the "above" detectors
         """
@@ -829,7 +827,7 @@ 

Source code for tomopt.inference.scattering

 
     @property
     def n_hits_below(self) -> Optional[int]:
-        r"""
+        r"""
         Returns:
             Number of hits per muon in the "below" detectors
         """
@@ -838,7 +836,7 @@ 

Source code for tomopt.inference.scattering

 
     @property
     def above_gen_hits(self) -> Optional[Tensor]:
-        r"""
+        r"""
         Returns:
             (muons,hits,xyz) tensor of true hits in the "above" detectors
         """
@@ -850,7 +848,7 @@ 

Source code for tomopt.inference.scattering

 
     @property
     def below_gen_hits(self) -> Optional[Tensor]:
-        r"""
+        r"""
         Returns:
             (muons,hits,xyz) tensor of true hits in the "below" detectors
         """
@@ -862,7 +860,7 @@ 

Source code for tomopt.inference.scattering

 
     @property
     def above_hits(self) -> Optional[Tensor]:
-        r"""
+        r"""
         Returns:
             (muons,hits,xyz) tensor of recorded hits in the "above" detectors
         """
@@ -874,7 +872,7 @@ 

Source code for tomopt.inference.scattering

 
     @property
     def below_hits(self) -> Optional[Tensor]:
-        r"""
+        r"""
         Returns:
             (muons,hits,xyz) tensor of recorded hits in the "below" detectors
         """
@@ -886,7 +884,7 @@ 

Source code for tomopt.inference.scattering

 
     @property
     def hit_uncs(self) -> Optional[Tensor]:
-        r"""
+        r"""
         Returns:
             (muons,hits,xyz) tensor of uncertainties on hits
         """
@@ -895,7 +893,7 @@ 

Source code for tomopt.inference.scattering

 
     @property
     def hit_effs(self) -> Optional[Tensor]:
-        r"""
+        r"""
         Returns:
             (muons,hits,eff) tensor of hit efficiencies
         """
@@ -904,7 +902,7 @@ 

Source code for tomopt.inference.scattering

 
     @property
     def above_hit_uncs(self) -> Optional[Tensor]:
-        r"""
+        r"""
         Returns:
             (muons,hits,xyz) tensor of uncertainties on hits in the "above" detectors
         """
@@ -916,7 +914,7 @@ 

Source code for tomopt.inference.scattering

 
     @property
     def below_hit_uncs(self) -> Optional[Tensor]:
-        r"""
+        r"""
         Returns:
             (muons,hits,xyz) tensor of uncertainties on hits in the "below" detectors
         """
@@ -928,7 +926,7 @@ 

Source code for tomopt.inference.scattering

 
     @property
     def above_hit_effs(self) -> Optional[Tensor]:
-        r"""
+        r"""
         Returns:
             (muons,hits,effs) tensor of hit efficiencies in the "above" detectors
         """
@@ -940,7 +938,7 @@ 

Source code for tomopt.inference.scattering

 
     @property
     def below_hit_effs(self) -> Optional[Tensor]:
-        r"""
+        r"""
         Returns:
             (muons,hits,eff) tensor of hit efficiencies in the "below" detectors
         """
@@ -952,7 +950,7 @@ 

Source code for tomopt.inference.scattering

 
     @property
     def track_in(self) -> Optional[Tensor]:
-        r"""
+        r"""
         Returns:
             (muons,xyz) incoming xyz vector
         """
@@ -961,7 +959,7 @@ 

Source code for tomopt.inference.scattering

 
     @property
     def track_start_in(self) -> Optional[Tensor]:
-        r"""
+        r"""
         Returns:
             (muons,xyz) initial point of incoming xyz vector
         """
@@ -970,7 +968,7 @@ 

Source code for tomopt.inference.scattering

 
     @property
     def track_out(self) -> Optional[Tensor]:
-        r"""
+        r"""
         Returns:
             (muons,xyz) outgoing xyz vector
         """
@@ -979,7 +977,7 @@ 

Source code for tomopt.inference.scattering

 
     @property
     def track_start_out(self) -> Optional[Tensor]:
-        r"""
+        r"""
         Returns:
             (muons,xyz) initial point of outgoing xyz vector
         """
@@ -988,7 +986,7 @@ 

Source code for tomopt.inference.scattering

 
     @property
     def poca_xyz(self) -> Tensor:
-        r"""
+        r"""
         Returns:
             (muons,xyz) xyz location of PoCA
         """
@@ -1001,7 +999,7 @@ 

Source code for tomopt.inference.scattering

 
     @property
     def poca_xyz_unc(self) -> Tensor:
-        r"""
+        r"""
         Returns:
             (muons,xyz) uncertainty on poca_xyz
         """
@@ -1012,7 +1010,7 @@ 

Source code for tomopt.inference.scattering

 
     @property
     def dxy(self) -> Tensor:
-        r"""
+        r"""
         Returns:
             (muons,xy) distances in x & y from PoCA to incoming|outgoing muons
         """
@@ -1024,7 +1022,7 @@ 

Source code for tomopt.inference.scattering

 
     @property
     def dxy_unc(self) -> Tensor:
-        r"""
+        r"""
         Returns:
             (muons,xy) uncertainty on dxy
         """
@@ -1035,7 +1033,7 @@ 

Source code for tomopt.inference.scattering

 
     @property
     def theta_in(self) -> Tensor:
-        r"""
+        r"""
         Returns:
             (muons,1) theta of incoming muons
         """
@@ -1047,7 +1045,7 @@ 

Source code for tomopt.inference.scattering

 
     @property
     def theta_in_unc(self) -> Tensor:
-        r"""
+        r"""
         Returns:
             (muons,1) uncertainty on theta_in
         """
@@ -1058,7 +1056,7 @@ 

Source code for tomopt.inference.scattering

 
     @property
     def theta_out(self) -> Tensor:
-        r"""
+        r"""
         Returns:
             (muons,1) theta of outgoing muons
         """
@@ -1070,7 +1068,7 @@ 

Source code for tomopt.inference.scattering

 
     @property
     def theta_out_unc(self) -> Tensor:
-        r"""
+        r"""
         Returns:
             (muons,1) uncertainty on theta_out
         """
@@ -1081,7 +1079,7 @@ 

Source code for tomopt.inference.scattering

 
     @property
     def phi_in(self) -> Tensor:
-        r"""
+        r"""
         Returns:
             (muons,1) phi of incoming muons
         """
@@ -1093,7 +1091,7 @@ 

Source code for tomopt.inference.scattering

 
     @property
     def phi_in_unc(self) -> Tensor:
-        r"""
+        r"""
         Returns:
             (muons,1) uncertainty on phi_in
         """
@@ -1104,7 +1102,7 @@ 

Source code for tomopt.inference.scattering

 
     @property
     def phi_out(self) -> Tensor:
-        r"""
+        r"""
         Returns:
             (muons,1) phi of outgoing muons
         """
@@ -1116,7 +1114,7 @@ 

Source code for tomopt.inference.scattering

 
     @property
     def phi_out_unc(self) -> Tensor:
-        r"""
+        r"""
         Returns:
             (muons,1) uncertainty on phi_out
         """
@@ -1127,7 +1125,7 @@ 

Source code for tomopt.inference.scattering

 
     @property
     def dtheta(self) -> Tensor:
-        r"""
+        r"""
         Returns:
             (muons,1) delta theta between incoming & outgoing muons
         """
@@ -1138,7 +1136,7 @@ 

Source code for tomopt.inference.scattering

 
     @property
     def dtheta_unc(self) -> Tensor:
-        r"""
+        r"""
         Returns:
             (muons,1) uncertainty on dtheta
         """
@@ -1149,7 +1147,7 @@ 

Source code for tomopt.inference.scattering

 
     @property
     def dphi(self) -> Tensor:
-        r"""
+        r"""
         Returns:
             (muons,1) delta phi between incoming & outgoing muons
         """
@@ -1160,7 +1158,7 @@ 

Source code for tomopt.inference.scattering

 
     @property
     def dphi_unc(self) -> Tensor:
-        r"""
+        r"""
         Returns:
             (muons,1) uncertainty on dphi
         """
@@ -1171,7 +1169,7 @@ 

Source code for tomopt.inference.scattering

 
     @property
     def total_scatter(self) -> Tensor:
-        r"""
+        r"""
         Returns:
             (muons,1) theta_msc; the total amount of angular scattering
         """
@@ -1183,7 +1181,7 @@ 

Source code for tomopt.inference.scattering

 
     @property
     def total_scatter_unc(self) -> Tensor:
-        r"""
+        r"""
         Returns:
             (muons,1) uncertainty on total_scatter
         """
@@ -1194,7 +1192,7 @@ 

Source code for tomopt.inference.scattering

 
     @property
     def theta_msc(self) -> Tensor:
-        r"""
+        r"""
         Returns:
             (muons,1) theta_msc; the total amount of angular scattering
         """
@@ -1203,7 +1201,7 @@ 

Source code for tomopt.inference.scattering

 
     @property
     def theta_msc_unc(self) -> Tensor:
-        r"""
+        r"""
         Returns:
             (muons,1) uncertainty on total_scatter
         """
@@ -1211,7 +1209,7 @@ 

Source code for tomopt.inference.scattering

 
     @property
     def theta_xy_in(self) -> Tensor:
-        r"""
+        r"""
         Returns:
             (muons,xy) decomposed theta and phi of incoming muons in the zx and zy planes
         """
@@ -1223,7 +1221,7 @@ 

Source code for tomopt.inference.scattering

 
     @property
     def theta_xy_in_unc(self) -> Tensor:
-        r"""
+        r"""
         Returns:
             (muons,xy) uncertainty on theta_xy_in
         """
@@ -1234,7 +1232,7 @@ 

Source code for tomopt.inference.scattering

 
     @property
     def theta_xy_out(self) -> Tensor:
-        r"""
+        r"""
         Returns:
             (muons,xy) decomposed theta and phi of outgoing muons in the zx and zy planes
         """
@@ -1246,7 +1244,7 @@ 

Source code for tomopt.inference.scattering

 
     @property
     def theta_xy_out_unc(self) -> Tensor:
-        r"""
+        r"""
         Returns:
             (muons,xy) uncertainty on theta_xy_out
         """
@@ -1257,7 +1255,7 @@ 

Source code for tomopt.inference.scattering

 
     @property
     def dtheta_xy(self) -> Tensor:
-        r"""
+        r"""
         Returns:
             (muons,xy) delta theta_xy between incoming & outgoing muons in the zx and zy planes
         """
@@ -1269,7 +1267,7 @@ 

Source code for tomopt.inference.scattering

 
     @property
     def dtheta_xy_unc(self) -> Tensor:
-        r"""
+        r"""
         Returns:
             (muons,xy) uncertainty on dtheta_xy
         """
@@ -1280,7 +1278,7 @@ 

Source code for tomopt.inference.scattering

 
     @property
     def xyz_in(self) -> Tensor:
-        r"""
+        r"""
         Returns:
             (muons,xyz) inferred xy position of muon at the z-level of the top of the passive volume
         """
@@ -1292,7 +1290,7 @@ 

Source code for tomopt.inference.scattering

 
     @property
     def xyz_in_unc(self) -> Tensor:
-        r"""
+        r"""
         Returns:
             (muons,xyz) uncertainty on xyz_in
         """
@@ -1303,7 +1301,7 @@ 

Source code for tomopt.inference.scattering

 
     @property
     def xyz_out(self) -> Tensor:
-        r"""
+        r"""
         Returns:
             (muons,xyz) inferred xy position of muon at the z-level of the bottom of the passive volume
         """
@@ -1315,7 +1313,7 @@ 

Source code for tomopt.inference.scattering

 
     @property
     def xyz_out_unc(self) -> Tensor:
-        r"""
+        r"""
         Returns:
             (muons,xyz) uncertainty on xyz_out
         """
@@ -1326,7 +1324,7 @@ 

Source code for tomopt.inference.scattering

 
 
 
[docs]class GenScatterBatch(ScatterBatch): - r""" + r""" Class for computing scattering information from the true hits via incoming/outgoing trajectory fitting. .. warning:: @@ -1364,7 +1362,7 @@

Source code for tomopt.inference.scattering

     """
 
     def _compute_tracks(self) -> None:
-        r"""
+        r"""
         Computes tracks from true muon positions.
         """
 
@@ -1416,9 +1414,6 @@ 

Source code for tomopt.inference.scattering

      
        
          
-         
-         
-         
          
          
      
diff --git a/docs/_build/html/_modules/tomopt/inference/volume.html b/docs/_build/html/_modules/tomopt/inference/volume.html
index d89f4013..70978f8c 100644
--- a/docs/_build/html/_modules/tomopt/inference/volume.html
+++ b/docs/_build/html/_modules/tomopt/inference/volume.html
@@ -14,8 +14,6 @@
 
   
   
-    
-  
   
   
 
@@ -265,7 +263,7 @@ 

Source code for tomopt.inference.volume

 
 
 
[docs]class AbsVolumeInferrer(metaclass=ABCMeta): - r""" + r""" Abstract base class for volume inference. Inheriting classes are expected to be fed multiple :class:`~tomopt.inference.scattering.ScatterBatch` s, @@ -277,7 +275,7 @@

Source code for tomopt.inference.volume

     """
 
     def __init__(self, volume: Volume):
-        r"""
+        r"""
         Initialises the inference class for the provided volume.
         """
 
@@ -294,7 +292,7 @@ 

Source code for tomopt.inference.volume

 
     @abstractmethod
     def _reset_vars(self) -> None:
-        r"""
+        r"""
         Inheriting classes must override this method to reset any variable/predictions made from the added scatter batches.
         """
 
@@ -302,7 +300,7 @@ 

Source code for tomopt.inference.volume

 
 
[docs] @abstractmethod def compute_efficiency(self, scatters: ScatterBatch) -> Tensor: - r""" + r""" Inheriting classes must override this method to provide a computation of the per-muon efficiency, given the individual muon hit efficiencies. """ @@ -310,7 +308,7 @@

Source code for tomopt.inference.volume

 
 
[docs] @abstractmethod def get_prediction(self) -> Optional[Tensor]: - r""" + r""" Inheriting classes must override this method to provide a prediction computed using the added scatter batches. E.g. the sum of muon efficiencies. """ @@ -318,7 +316,7 @@

Source code for tomopt.inference.volume

         pass
[docs] def add_scatters(self, scatters: ScatterBatch) -> None: - r""" + r""" Appends a new set of muon scatter variables. When :meth:`~tomopt.inference.volume.AbsVolumeInferrer.get_prediction` is called, the prediction will be based on all :class:`~tomopt.inference.scattering.ScatterBatch` s added up to that point @@ -329,7 +327,7 @@

Source code for tomopt.inference.volume

 
 
 
[docs]class AbsX0Inferrer(AbsVolumeInferrer): - r""" + r""" Abstract base class for inferring the X0 of every voxel in the passive volume. The inference is based on the PoCA approach of assigning the entirety of the muon scattering to a single point, @@ -366,7 +364,7 @@

Source code for tomopt.inference.volume

     _var_order_szs = [("poca", 3), ("tot_scatter", 1), ("theta_in", 1), ("theta_out", 1), ("mom", 1)]
 
     def __init__(self, volume: Volume):
-        r"""
+        r"""
         Initialises the inference class for the provided volume.
         """
 
@@ -375,7 +373,7 @@ 

Source code for tomopt.inference.volume

 
 
[docs] @staticmethod def x0_from_scatters(deltaz: float, total_scatter: Tensor, theta_in: Tensor, theta_out: Tensor, mom: Tensor) -> Tensor: - r""" + r""" Computes the X0 of a voxel, by inverting the PDG scattering model in terms of the scattering variables .. important:: @@ -396,7 +394,7 @@

Source code for tomopt.inference.volume

         return ((SCATTER_COEF_A / mom) ** 2) * deltaz / (total_scatter.pow(2) * cos_theta)
[docs] def get_prediction(self) -> Optional[Tensor]: - r""" + r""" Computes the predicted X0 per voxel as a (z,x,y) tensor via PDG scatter-model inversion for the provided scatter batches. Returns: @@ -410,7 +408,7 @@

Source code for tomopt.inference.volume

 
     @staticmethod
     def _weighted_rms(x: Tensor, wgt: Tensor) -> Tensor:
-        r"""
+        r"""
         Computes the weighted root mean squared value of the provided list of variable values
 
         Arguments:
@@ -425,7 +423,7 @@ 

Source code for tomopt.inference.volume

 
     @staticmethod
     def _weighted_mean(x: Tensor, wgt: Tensor) -> Tensor:
-        r"""
+        r"""
         Computes the weighted mean value of the provided list of variable values
 
         Arguments:
@@ -439,7 +437,7 @@ 

Source code for tomopt.inference.volume

         return (x * wgt).sum(0) / wgt.sum(0)
 
     def _reset_vars(self) -> None:
-        r"""
+        r"""
         Resets any variable/predictions made from the added scatter batches.
         """
 
@@ -452,7 +450,7 @@ 

Source code for tomopt.inference.volume

         self._vox_zxy_x0_pred_uncs = None  # (z,x,y)
 
     def _set_var_dimensions(self) -> None:
-        r"""
+        r"""
         Configures the indexing of the dependent variable and uncertainty tensors
         """
 
@@ -469,7 +467,7 @@ 

Source code for tomopt.inference.volume

         self._mom_dim = dims["mom"]
 
     def _combine_scatters(self) -> None:
-        r"""
+        r"""
         Combines scatter data from all the batches added so far.
         Any muons with NaN or Inf entries will be filtered out of the resulting tensors.
 
@@ -507,7 +505,7 @@ 

Source code for tomopt.inference.volume

         self._n_mu = len(self._muon_scatter_vars)
 
     def _get_voxel_zxy_x0_pred_uncs(self) -> Tensor:
-        r"""
+        r"""
         Computes the uncertainty on the predicted voxelwise X0s, via gradient-based error propagation.
 
         .. warning::
@@ -533,7 +531,7 @@ 

Source code for tomopt.inference.volume

         return pred_unc
 
     def _get_voxel_zxy_x0_preds(self) -> Tensor:
-        r"""
+        r"""
         Computes the X0 predictions per voxel using the scatter batches added.
 
         TODO: Implement differing x0 according to poca_xyz via Gaussian spread
@@ -571,7 +569,7 @@ 

Source code for tomopt.inference.volume

 
     @property
     def vox_zxy_x0_preds(self) -> Tensor:
-        r"""
+        r"""
         Returns:
             (z,x,y) tensor of voxelwise X0 predictions
         """
@@ -583,7 +581,7 @@ 

Source code for tomopt.inference.volume

 
     @property
     def vox_zxy_x0_pred_uncs(self) -> Tensor:
-        r"""
+        r"""
         .. warning::
             Not recommended for use: long calculation; not unit-tested
 
@@ -597,7 +595,7 @@ 

Source code for tomopt.inference.volume

 
     @property
     def muon_probs_per_voxel_zxy(self) -> Tensor:  # (mu,z,x,y)
-        r"""
+        r"""
         .. warning::
             Integration tested only
 
@@ -637,7 +635,7 @@ 

Source code for tomopt.inference.volume

 
     @property
     def n_mu(self) -> int:
-        r"""
+        r"""
         Returns:
             Total number muons included in the inference
         """
@@ -648,7 +646,7 @@ 

Source code for tomopt.inference.volume

 
     @property
     def muon_poca_xyz(self) -> Tensor:
-        r"""
+        r"""
         Returns:
             (muons,xyz) tensor of PoCA locations
         """
@@ -659,7 +657,7 @@ 

Source code for tomopt.inference.volume

 
     @property
     def muon_poca_xyz_unc(self) -> Tensor:
-        r"""
+        r"""
         Returns:
             (muons,xyz) tensor of PoCA location uncertainties
         """
@@ -670,7 +668,7 @@ 

Source code for tomopt.inference.volume

 
     @property
     def muon_total_scatter(self) -> Tensor:
-        r"""
+        r"""
         Returns:
             (muons,1) tensor of total angular scatterings
         """
@@ -681,7 +679,7 @@ 

Source code for tomopt.inference.volume

 
     @property
     def muon_total_scatter_unc(self) -> Tensor:
-        r"""
+        r"""
         Returns:
             (muons,1) tensor of uncertainties on the total angular scatterings
         """
@@ -692,7 +690,7 @@ 

Source code for tomopt.inference.volume

 
     @property
     def muon_theta_in(self) -> Tensor:
-        r"""
+        r"""
         Returns:
             (muons,1) tensor of the thetas of the incoming muons
         """
@@ -703,7 +701,7 @@ 

Source code for tomopt.inference.volume

 
     @property
     def muon_theta_in_unc(self) -> Tensor:
-        r"""
+        r"""
         Returns:
             (muons,1) tensor of the uncertainty on the theta of the incoming muons
         """
@@ -714,7 +712,7 @@ 

Source code for tomopt.inference.volume

 
     @property
     def muon_theta_out(self) -> Tensor:
-        r"""
+        r"""
         Returns:
             (muons,1) tensor of the thetas of the outgoing muons
         """
@@ -725,7 +723,7 @@ 

Source code for tomopt.inference.volume

 
     @property
     def muon_theta_out_unc(self) -> Tensor:
-        r"""
+        r"""
         Returns:
             (muons,1) tensor of the uncertainty on the theta of the outgoing muons
         """
@@ -736,7 +734,7 @@ 

Source code for tomopt.inference.volume

 
     @property
     def muon_mom(self) -> Tensor:
-        r"""
+        r"""
         Returns:
             (muons,1) tensor of the momenta of the muons
         """
@@ -747,7 +745,7 @@ 

Source code for tomopt.inference.volume

 
     @property
     def muon_mom_unc(self) -> Tensor:
-        r"""
+        r"""
         Returns:
             (muons,1) tensor of the uncertainty on the momenta of the muons
         """
@@ -758,7 +756,7 @@ 

Source code for tomopt.inference.volume

 
     @property
     def muon_efficiency(self) -> Tensor:
-        r"""
+        r"""
         Returns:
             (muons,1) tensor of the efficiencies of the muons
         """
@@ -769,7 +767,7 @@ 

Source code for tomopt.inference.volume

 
 
 
[docs]class PanelX0Inferrer(AbsX0Inferrer): - r""" + r""" Class for inferring the X0 of every voxel in the passive volume using hits recorded by :class:`~tomopt.volume.layer.PanelDetectorLayer` s. The inference is based on the PoCA approach of assigning the entirety of the muon scattering to a single point, @@ -799,7 +797,7 @@

Source code for tomopt.inference.volume

     """
 
 
[docs] def compute_efficiency(self, scatters: ScatterBatch) -> Tensor: - r""" + r""" Computes the per-muon efficiency, given the individual muon hit efficiencies, as the probability of at least two hits above and below the passive volume. @@ -979,7 +977,7 @@

Source code for tomopt.inference.volume

 
 
 
[docs]class DenseBlockClassifierFromX0s(AbsVolumeInferrer): - r""" + r""" Class for inferreing the presence of a small amount of denser material in the passive volume. Transforms voxel-wise X0 preds into binary classification statistic under the hypothesis of a small, dense block against a light-weight background. @@ -1023,7 +1021,7 @@

Source code for tomopt.inference.volume

         ratio_offset: float = -1.0,
         ratio_coef: float = 1.0,
     ):
-        r"""
+        r"""
         Initialises the inference class for the provided volume.
         """
 
@@ -1033,7 +1031,7 @@ 

Source code for tomopt.inference.volume

         self.frac = n_block_voxels / self.volume.xyz_centres.numel()
 
 
[docs] def add_scatters(self, scatters: ScatterBatch) -> None: - r""" + r""" Appends a new set of muon scatter vairables. When :meth:`~tomopt.inference.volume.DenseBlockClassifierFromX0s.get_prediction` is called, the prediction will be based on all :class:`~tomopt.inference.scattering.ScatterBatch` s added up to that point @@ -1042,7 +1040,7 @@

Source code for tomopt.inference.volume

         self.x0_inferrer.add_scatters(scatters)
[docs] def compute_efficiency(self, scatters: ScatterBatch) -> Tensor: - r""" + r""" Compuates the per-muon efficiency according to the method implemented by the X0 inferrer. Arguments: @@ -1055,7 +1053,7 @@

Source code for tomopt.inference.volume

         return self.x0_inferrer.compute_efficiency(scatters=scatters)
[docs] def get_prediction(self) -> Optional[Tensor]: - r""" + r""" Computes the test statistic for the volume, with values near 0 indicating that no relatively dense material is present, and values nearer 1 indicating that it is present. @@ -1082,7 +1080,7 @@

Source code for tomopt.inference.volume

         return pred[None, None]
def _reset_vars(self) -> None: - r""" + r""" Resets any variable/predictions made from the added scatter batches. """ @@ -1090,7 +1088,7 @@

Source code for tomopt.inference.volume

 
 
 
[docs]class AbsIntClassifierFromX0(AbsVolumeInferrer): - r""" + r""" Abstract base class for inferring integer targets through multiclass classification from voxelwise X0 predictions. Inheriting classes must provide a way to convert voxelwise X0s into class probabilities of the required dimension. Requires a basic inferrer for providing the voxelwise X0 predictions. @@ -1111,7 +1109,7 @@

Source code for tomopt.inference.volume

         output_probs: bool = True,
         class2float: Optional[Callable[[Tensor, Volume], Tensor]] = None,
     ):
-        r"""
+        r"""
         Initialises the inference class for the provided volume.
         """
 
@@ -1121,7 +1119,7 @@ 

Source code for tomopt.inference.volume

 
 
[docs] @abstractmethod def x02probs(self, vox_preds: Tensor) -> Tensor: - r""" + r""" Inheriting classes must override this method to convert voxelwise X0 predictions to class probabilities Arguments: @@ -1134,7 +1132,7 @@

Source code for tomopt.inference.volume

         pass
[docs] def add_scatters(self, scatters: ScatterBatch) -> None: - r""" + r""" Appends a new set of muon scatter vairables. When :meth:`~tomopt.inference.volume.DenseBlockClassifierFromX0s.get_prediction` is called, the prediction will be based on all :class:`~tomopt.inference.scattering.ScatterBatch` s added up to that point @@ -1143,7 +1141,7 @@

Source code for tomopt.inference.volume

         self.x0_inferrer.add_scatters(scatters)
[docs] def compute_efficiency(self, scatters: ScatterBatch) -> Tensor: - r""" + r""" Compuates the per-muon efficiency according to the method implemented by the X0 inferrer. Arguments: @@ -1156,7 +1154,7 @@

Source code for tomopt.inference.volume

         return self.x0_inferrer.compute_efficiency(scatters=scatters)
[docs] def get_prediction(self) -> Optional[Tensor]: - r""" + r""" Computes the predicions for the volume. If class probabilities were requested during initialisation, then these will be returned. Otherwise the most probable class will be returned, and this will be converted to a float value if `class2float` is not None. @@ -1178,7 +1176,7 @@

Source code for tomopt.inference.volume

                 return self.class2float(pred, self.volume)
def _reset_vars(self) -> None: - r""" + r""" Resets any variable/predictions made from the added scatter batches. """ @@ -1228,9 +1226,6 @@

Source code for tomopt.inference.volume

      
        
          
-         
-         
-         
          
          
      
diff --git a/docs/_build/html/_modules/tomopt/muon/generation.html b/docs/_build/html/_modules/tomopt/muon/generation.html
index 878167ce..87f38531 100644
--- a/docs/_build/html/_modules/tomopt/muon/generation.html
+++ b/docs/_build/html/_modules/tomopt/muon/generation.html
@@ -14,8 +14,6 @@
 
   
   
-    
-  
   
   
 
@@ -257,7 +255,7 @@ 

Source code for tomopt.muon.generation

 
 
 
[docs]class AbsMuonGenerator: - r""" + r""" Abstract generator base class implementing core functionality. Inheriting classes should override the `flux` method. @@ -285,7 +283,7 @@

Source code for tomopt.muon.generation

         energy_range: Tuple[float, float] = (0.5, 500),
         theta_range: Tuple[float, float] = (0, 70 * np.pi / 180),  # Models on accurate up to ~70 degrees
     ) -> None:
-        r"""
+        r"""
         Initialises the flux model
         """
 
@@ -315,7 +313,7 @@ 

Source code for tomopt.muon.generation

 
 
[docs] @abstractmethod def flux(self, energy: Union[float, np.ndarray], theta: Union[float, np.ndarray]) -> Union[float, np.ndarray]: - r""" + r""" Inheriting classes should override this to implement their flux model for the supplied pairs of energies and thetas Arguments: @@ -337,7 +335,7 @@

Source code for tomopt.muon.generation

         energy_range: Tuple[float, float] = (0.5, 500),
         theta_range: Tuple[float, float] = (0, 70 * np.pi / 180),
     ) -> AbsMuonGenerator:
-        """
+        """
         Class method to initialise x and y ranges of muon generation from the passive volume.
         Heuristically computes x,y generation range as (0-d,x+d), (0-d,y+d).
         Where d is such that a muon generated at (0-d,1) will only hit the last layer of the passive volume if it's initial angle is at least min_angle.
@@ -357,7 +355,7 @@ 

Source code for tomopt.muon.generation

         return cls(x_range=(0 - d, x + d), y_range=(0 - d, y + d), fixed_mom=fixed_mom, energy_range=energy_range, theta_range=theta_range)
[docs] def generate_set(self, n_muons: int) -> Tensor: - """ + """ Generates a set of muons as a rank-2 tensor of shape (n_muons, 5), with initial kinematic variables [x, y, momentum, theta, phi]. Theta and, optionally, momentum are sampled from the flux model. x and y are sampled uniformly from the defined ranges. Phi is sampled uniformly from [0,2pi]. @@ -391,7 +389,7 @@

Source code for tomopt.muon.generation

 
 
 
[docs]class MuonGenerator2015(AbsMuonGenerator): - r""" + r""" Provides muon generator for sampling initial muon kinematics according to Guan et al. 2015 (arXiv:1509.06176). Once initialised, the object can be called, or it's `generate_set` method called, to generate a set of initial muon kinematics. @@ -413,7 +411,7 @@

Source code for tomopt.muon.generation

     P5 = 0.817285
 
 
[docs] def flux(self, energy: Union[float, np.ndarray], theta: Union[float, np.ndarray]) -> Union[float, np.ndarray]: - """ + """ Function returning modified Gaisser formula for cosmic muon flux given energy (float/np.array) and incidence angle (float/np.array) Uses model defined in Guan et al. 2015 (arXiv:1509.06176) @@ -438,7 +436,7 @@

Source code for tomopt.muon.generation

 
 
 
[docs]class MuonGenerator2016(AbsMuonGenerator): - r""" + r""" Provides muon generator for sampling initial muon kinematics according to Shukla and Sanskrith 2018 arXiv:1606.06907 Once initialised, the object can be called, or it's `generate_set` method called, to generate a set of initial muon kinematics. @@ -462,7 +460,7 @@

Source code for tomopt.muon.generation

     N = (n - 1) * (E_0 + E_c) ** (n - 1)
 
 
[docs] def flux(self, energy: Union[float, np.ndarray], theta: Union[float, np.ndarray]) -> Union[float, np.ndarray]: - """ + """ Function returning modified Gaisser formula for cosmic muon flux given energy (float/np.array) and incidence angle (float/np.array) Uses model defined in Shukla and Sanskrith 2018 arXiv:1606.06907 @@ -522,9 +520,6 @@

Source code for tomopt.muon.generation

      
        
          
-         
-         
-         
          
          
      
diff --git a/docs/_build/html/_modules/tomopt/muon/muon_batch.html b/docs/_build/html/_modules/tomopt/muon/muon_batch.html
index b9231088..ba057843 100644
--- a/docs/_build/html/_modules/tomopt/muon/muon_batch.html
+++ b/docs/_build/html/_modules/tomopt/muon/muon_batch.html
@@ -14,8 +14,6 @@
 
   
   
-    
-  
   
   
 
@@ -257,7 +255,7 @@ 

Source code for tomopt.muon.muon_batch

 
 
 
[docs]class MuonBatch: - r""" + r""" Container class for a batch of many muons, defined by their position and kinematics. Each muon has its own: @@ -302,7 +300,7 @@

Source code for tomopt.muon.muon_batch

     _keep_mask: Optional[Tensor] = None  # After a scattering, this will be a Boolean mask of muons kept, to help with testing
 
     def __init__(self, xy_p_theta_phi: Tensor, init_z: Union[Tensor, float], device: torch.device = DEVICE):
-        r"""
+        r"""
         Initialises the class from `xy_p_theta_phi`, a (N_muon, 5) tensor, and an initial z position for the batch.
         Muon trajectories (theta & phi) and positions (x,y,z) are in the reference frame of the volume.
         """
@@ -328,7 +326,7 @@ 

Source code for tomopt.muon.muon_batch

 
 
[docs] @staticmethod def phi_from_theta_xy(theta_x: Tensor, theta_y: Tensor) -> Tensor: - r""" + r""" Computes the phi angle from theta_x and theta_y. .. important:: @@ -353,7 +351,7 @@

Source code for tomopt.muon.muon_batch

 
 
[docs] @staticmethod def theta_from_theta_xy(theta_x: Tensor, theta_y: Tensor) -> Tensor: - r""" + r""" Computes the theta angle from theta_x and theta_y. .. important:: @@ -373,7 +371,7 @@

Source code for tomopt.muon.muon_batch

 
 
[docs] @staticmethod def theta_x_from_theta_phi(theta: Tensor, phi: Tensor) -> Tensor: - r""" + r""" Computes the angle from the negative z-axis in the xz plane from theta and phi .. important:: @@ -393,7 +391,7 @@

Source code for tomopt.muon.muon_batch

 
 
[docs] @staticmethod def theta_y_from_theta_phi(theta: Tensor, phi: Tensor) -> Tensor: - r""" + r""" Computes the angle from the negative z-axis in the yz plane from theta and phi .. important:: @@ -414,7 +412,7 @@

Source code for tomopt.muon.muon_batch

 
[docs] def scatter_dxyz( self, dx_vol: Optional[Tensor] = None, dy_vol: Optional[Tensor] = None, dz_vol: Optional[Tensor] = None, mask: Optional[Tensor] = None ) -> None: - r""" + r""" Displaces the muons in xyz by the specified amounts. If a mask is supplied, then only muons with True mask elements are displaced. @@ -435,7 +433,7 @@

Source code for tomopt.muon.muon_batch

             self._z[mask] = self._z[mask] + dz_vol
[docs] def scatter_dtheta_dphi(self, dtheta_vol: Optional[Tensor] = None, dphi_vol: Optional[Tensor] = None, mask: Optional[Tensor] = None) -> None: - r""" + r""" Changes the trajectory of the muons in theta-phi by the specified amounts, with no change in their x,y,z positions. If a mask is supplied, then only muons with True mask elements are altered. @@ -462,7 +460,7 @@

Source code for tomopt.muon.muon_batch

         self.remove_upwards_muons()
[docs] def scatter_dtheta_xy(self, dtheta_x_vol: Optional[Tensor] = None, dtheta_y_vol: Optional[Tensor] = None, mask: Optional[Tensor] = None) -> None: - r""" + r""" Changes the trajectory of the muons in theta-phi by the specified amounts in dtheta_xy, with no change in their x,y,z positions. If a mask is supplied, then only muons with True mask elements are altered. @@ -487,7 +485,7 @@

Source code for tomopt.muon.muon_batch

         self.remove_upwards_muons()
[docs] def remove_upwards_muons(self) -> None: - r""" + r""" Removes muons, and their hits, if their theta >= pi/2, i.e. they are travelling upwards after a large scattering. Should be run after any changes to theta, but make sure that references (e.g. masks) to the complete set of muons are no longer required. """ @@ -496,7 +494,7 @@

Source code for tomopt.muon.muon_batch

         self.filter_muons(self._keep_mask)
[docs] def filter_muons(self, keep_mask: Tensor) -> None: - r""" + r""" Removes all muons, and their associated hits, except for muons specified as True in `keep_mask`. Arguments: @@ -518,7 +516,7 @@

Source code for tomopt.muon.muon_batch

                         self._hits[pos][var][det] = xy_pos[keep_mask]
[docs] def propagate_dz(self, dz: Union[Tensor, float], mask: Optional[Tensor] = None) -> None: - r""" + r""" Propagates all muons in their direction of flight such that afterwards they will all have moved a specified distance in the negative z direction. Arguments: @@ -538,7 +536,7 @@

Source code for tomopt.muon.muon_batch

         self._z[mask] = self._z[mask] - dz
[docs] def propagate_d(self, d: Union[Tensor, float], mask: Optional[Tensor] = None) -> None: - r""" + r""" Propagates all muons in their direction of flight by the specified distances. Arguments: @@ -557,7 +555,7 @@

Source code for tomopt.muon.muon_batch

         self._z[mask] = self._z[mask] - (d * theta.cos())
[docs] def get_xy_mask(self, xy_low: Optional[Union[Tuple[float, float], Tensor]], xy_high: Optional[Union[Tuple[float, float], Tensor]]) -> Tensor: - r""" + r""" Computes a (N,) Boolean tensor, with True values corresponding to muons which are within the supplied ranges in xy. Arguments: @@ -575,14 +573,14 @@

Source code for tomopt.muon.muon_batch

         return (self.x >= xy_low[0]) * (self.x < xy_high[0]) * (self.y >= xy_low[1]) * (self.y < xy_high[1])
[docs] def snapshot_xyz(self) -> None: - r""" + r""" Store the current xy positions of the muons in `.xyz_hist`, indexed by the current z position. """ self._xyz_hist.append(self.xyz.detach().cpu().clone().numpy())
[docs] def append_hits(self, hits: Dict[str, Tensor], pos: str) -> None: - r""" + r""" Record hits to `_hits`. Arguments: @@ -596,7 +594,7 @@

Source code for tomopt.muon.muon_batch

 
[docs] def get_hits( self, xy_low: Optional[Union[Tuple[float, float], Tensor]] = None, xy_high: Optional[Union[Tuple[float, float], Tensor]] = None ) -> Dict[str, Dict[str, Tensor]]: - r""" + r""" Retrieve the recorded hits for the muons, optionally only for muons between the specified xy ranges. For ease of use, the list of hits are stacked into single tensors, resulting in a dictionary mapping detector-array position to a dictionary mapping hit variables to (N_muons, N_hits, *) tensors. @@ -618,7 +616,7 @@

Source code for tomopt.muon.muon_batch

             return {p: {c: torch.stack(self._hits[p][c], dim=1)[m] for c in self._hits[p]} for p in self._hits}
[docs] def dtheta_x(self, theta_ref_x: Tensor) -> Tensor: - r""" + r""" Computes absolute difference in the theta_x between the muons and the supplied theta_x angles Arguments: @@ -631,7 +629,7 @@

Source code for tomopt.muon.muon_batch

         return torch.abs(self.theta_x - theta_ref_x)
[docs] def dtheta_y(self, theta_ref_y: Tensor) -> Tensor: - r""" + r""" Computes absolute difference in the theta_y between the muons and the supplied theta_y angles Arguments: @@ -644,7 +642,7 @@

Source code for tomopt.muon.muon_batch

         return torch.abs(self.theta_y - theta_ref_y)
[docs] def dtheta(self, theta_ref: Tensor) -> Tensor: - r""" + r""" Computes absolute difference in the theta between the muons and the supplied theta angles Arguments: @@ -657,7 +655,7 @@

Source code for tomopt.muon.muon_batch

         return torch.abs(self.theta - theta_ref)
[docs] def copy(self) -> MuonBatch: - r""" + r""" Creates a copy of the muon batch at the current position and trajectories. Tensors are detached and cloned. @@ -914,9 +912,6 @@

Source code for tomopt.muon.muon_batch

      
        
          
-         
-         
-         
          
          
      
diff --git a/docs/_build/html/_modules/tomopt/optimisation/callbacks/callback.html b/docs/_build/html/_modules/tomopt/optimisation/callbacks/callback.html
index 6119fc92..43002f71 100644
--- a/docs/_build/html/_modules/tomopt/optimisation/callbacks/callback.html
+++ b/docs/_build/html/_modules/tomopt/optimisation/callbacks/callback.html
@@ -14,8 +14,6 @@
 
   
   
-    
-  
   
   
 
@@ -251,7 +249,7 @@ 

Source code for tomopt.optimisation.callbacks.callback

[docs]class Callback: - r""" + r""" Implements the base class from which all callback should inherit. Callbacks are used as part of the fitting, validation, and prediction methods of :class:`~tomopt.optimisation.wrapper.volume_wrapper.AbsVolumeWrapper`. They can interject at various points, but by default do nothing. Please check in the :class:`~tomopt.optimisation.wrapper.volume_wrapper.AbsVolumeWrapper` @@ -333,7 +331,7 @@

Source code for tomopt.optimisation.callbacks.callback

pass
[docs] def set_wrapper(self, wrapper: AbsVolumeWrapper) -> None: - r""" + r""" Arguments: wrapper: Volume wrapper to associate with the callback """ @@ -341,7 +339,7 @@

Source code for tomopt.optimisation.callbacks.callback

self.wrapper = wrapper
[docs] def on_train_begin(self) -> None: - r""" + r""" Runs when detector fitting begins. """ @@ -349,112 +347,112 @@

Source code for tomopt.optimisation.callbacks.callback

raise AttributeError(f"The wrapper for {type(self).__name__} callback has not been set. Please call set_wrapper before on_train_begin.")
[docs] def on_epoch_begin(self) -> None: - r""" + r""" Runs when a new training or validations epoch begins. """ pass
[docs] def on_volume_batch_begin(self) -> None: - r""" + r""" Runs when a new batch of passive volume layouts is begins. """ pass
[docs] def on_volume_begin(self) -> None: - r""" + r""" Runs when a new passive volume layout is loaded. """ pass
[docs] def on_mu_batch_begin(self) -> None: - r""" + r""" Runs when a new batch of muons begins. """ pass
[docs] def on_scatter_end(self) -> None: - r""" + r""" Runs when a scatters for the latest muon batch have been computed, but not yet added to the volume inferrer. """ pass
[docs] def on_mu_batch_end(self) -> None: - r""" + r""" Runs when a batch muons ends and scatters have been added to the volume inferrer. """ pass
[docs] def on_x0_pred_begin(self) -> None: - r""" + r""" Runs when the all the muons for a volume have propagated, and the volume inferrer is about to make its final prediction. """ pass
[docs] def on_x0_pred_end(self) -> None: - r""" + r""" Runs after the volume inferrer has made its final prediction, but before the loss is computed. """ pass
[docs] def on_volume_end(self) -> None: - r""" + r""" Runs when a passive volume layout has been predicted. """ pass
[docs] def on_volume_batch_end(self) -> None: - r""" + r""" Runs when a batch of passive volume layouts is ends. """ pass
[docs] def on_backwards_begin(self) -> None: - r""" + r""" Runs when the loss for a batch of passive volumes has been computed, but not yet backpropagated. """ pass
[docs] def on_backwards_end(self) -> None: - r""" + r""" Runs when the loss for a batch of passive volumes has been backpropagated, but parameters have not yet been updated. """ pass
[docs] def on_step_end(self) -> None: - r""" + r""" Runs when the parameters have been updated. """ pass
[docs] def on_epoch_end(self) -> None: - r""" + r""" Runs when a training or validations epoch ends. """ pass
[docs] def on_train_end(self) -> None: - r""" + r""" Runs when detector fitting ends. """ pass
[docs] def on_pred_begin(self) -> None: - r""" + r""" Runs when the wrapper is about to begin in prediction mode. """ @@ -462,7 +460,7 @@

Source code for tomopt.optimisation.callbacks.callback

raise AttributeError(f"The wrapper for {type(self).__name__} callback has not been set. Please call set_wrapper before on_pred_begin.")
[docs] def on_pred_end(self) -> None: - r""" + r""" Runs when the wrapper has finished in prediction mode. """ @@ -512,9 +510,6 @@

Source code for tomopt.optimisation.callbacks.callback

- - - diff --git a/docs/_build/html/_modules/tomopt/optimisation/callbacks/cyclic_callbacks.html b/docs/_build/html/_modules/tomopt/optimisation/callbacks/cyclic_callbacks.html index 6dcaf153..d7e25ee8 100644 --- a/docs/_build/html/_modules/tomopt/optimisation/callbacks/cyclic_callbacks.html +++ b/docs/_build/html/_modules/tomopt/optimisation/callbacks/cyclic_callbacks.html @@ -259,7 +259,7 @@

Source code for tomopt.optimisation.callbacks.cyclic_callbacks

- © Copyright 2021-2022, TomOpt Authors. + © Copyright 2021-2024, TomOpt Authors.

@@ -292,9 +292,6 @@

Source code for tomopt.optimisation.callbacks.cyclic_callbacks

- - - diff --git a/docs/_build/html/_modules/tomopt/optimisation/callbacks/data_callbacks.html b/docs/_build/html/_modules/tomopt/optimisation/callbacks/data_callbacks.html index 2ab12ed1..30ab520f 100644 --- a/docs/_build/html/_modules/tomopt/optimisation/callbacks/data_callbacks.html +++ b/docs/_build/html/_modules/tomopt/optimisation/callbacks/data_callbacks.html @@ -14,8 +14,6 @@ - - @@ -253,13 +251,13 @@

Source code for tomopt.optimisation.callbacks.data_callbacks

[docs]class MuonResampler(Callback): - r""" + r""" Resamples muons to only include those which will impact the passive volume at some point, even if they only hit the bottom layer. """
[docs] @staticmethod def check_mu_batch(mu: MuonBatch, volume: Volume) -> Tensor: - r""" + r""" Checks the provided muon batch to determine which muons will impact the passive volume at any point Arguments: @@ -279,7 +277,7 @@

Source code for tomopt.optimisation.callbacks.data_callbacks

[docs] @staticmethod def resample(mus: Tensor, volume: Volume, gen: AbsMuonGenerator) -> Tensor: - r""" + r""" Resamples muons until all muons will hit the passive volume. Arguments: @@ -311,7 +309,7 @@

Source code for tomopt.optimisation.callbacks.data_callbacks

return mus
[docs] def on_mu_batch_begin(self) -> None: - r""" + r""" Resamples muons prior to propagation through the volume such that all muons will hit the passive volume. # TODO Add check for realistic validation @@ -365,9 +363,6 @@

Source code for tomopt.optimisation.callbacks.data_callbacks

- - - diff --git a/docs/_build/html/_modules/tomopt/optimisation/callbacks/detector_callbacks.html b/docs/_build/html/_modules/tomopt/optimisation/callbacks/detector_callbacks.html index 17fae72b..ff02df78 100644 --- a/docs/_build/html/_modules/tomopt/optimisation/callbacks/detector_callbacks.html +++ b/docs/_build/html/_modules/tomopt/optimisation/callbacks/detector_callbacks.html @@ -14,8 +14,6 @@ - - @@ -254,7 +252,7 @@

Source code for tomopt.optimisation.callbacks.detector_callbacks

[docs]class SigmoidPanelSmoothnessSchedule(PostWarmupCallback): - r""" + r""" Creates an annealing schedule for the smooth attribute of :class:`~tomopt.volume.panel.SigmoidDetectorPanel`. This can be used to move from smooth, unphysical panel with high sensitivity outside the physical panel boundaries, to one with sharper decrease in resolution | efficiency at the edge, and so more closely resembles a physical panel, whilst still being differentiable. @@ -268,7 +266,7 @@

Source code for tomopt.optimisation.callbacks.detector_callbacks

self.smooth_range = smooth_range def _activate(self) -> None: - r""" + r""" When the schedule begins, computes the appropriate smooth value at each up-coming epoch. """ @@ -277,7 +275,7 @@

Source code for tomopt.optimisation.callbacks.detector_callbacks

self.smooth = torch.logspace(np.log10(self.smooth_range[0]), np.log10(self.smooth_range[1]), self.wrapper.fit_params.n_epochs - self.offset)
[docs] def on_train_begin(self) -> None: - r""" + r""" Sets all :class:`~tomopt.volume.panel.SigmoidDetectorPanel` s to their initial smooth values. """ @@ -285,7 +283,7 @@

Source code for tomopt.optimisation.callbacks.detector_callbacks

self._set_smooth(Tensor([self.smooth_range[0]]))
def _set_smooth(self, smooth: Tensor) -> None: - r""" + r""" Sets the smooth values for all :class:`~tomopt.volume.panel.SigmoidDetectorPanel in the detector. Arguments: @@ -299,7 +297,7 @@

Source code for tomopt.optimisation.callbacks.detector_callbacks

p.smooth = smooth
[docs] def on_epoch_begin(self) -> None: - r""" + r""" At the start of each training epoch, will anneal the :class:`~tomopt.volume.panel.SigmoidDetectorPanel` s' smooth attributes, if the callback is active. """ @@ -310,7 +308,7 @@

Source code for tomopt.optimisation.callbacks.detector_callbacks

[docs]class PanelUpdateLimiter(Callback): - r""" + r""" Limits the maximum difference that optimisers can make to panel parameters, to prevent them from being affected by large updates from anomolous gradients. This is enacted by a hard-clamping based on the initial and final parameter values before/after each update step. @@ -328,7 +326,7 @@

Source code for tomopt.optimisation.callbacks.detector_callbacks

self.max_xy_span_step = Tensor(max_xy_span_step) if max_xy_span_step is not None else None
[docs] def on_backwards_end(self) -> None: - r""" + r""" Records the current paramaters of each panel before they are updated. """ @@ -339,7 +337,7 @@

Source code for tomopt.optimisation.callbacks.detector_callbacks

self.panel_params.append({"xy": panel.xy.detach().clone(), "z": panel.z.detach().clone(), "xy_span": panel.xy_span.detach().clone()})
[docs] def on_step_end(self) -> None: - r""" + r""" After the update step, goes through and hard-clamps parameter updates based on the difference between their current values and values before the update step. """ @@ -372,7 +370,7 @@

Source code for tomopt.optimisation.callbacks.detector_callbacks

[docs]class PanelCentring(Callback): - """ + """ Callback class for panel centring in the optimisation process. This callback is used to centre the panels of PanelDetectorLayer objects @@ -382,7 +380,7 @@

Source code for tomopt.optimisation.callbacks.detector_callbacks

"""
[docs] def on_step_end(self) -> None: - """ + """ Updates the xy coordinates of all panels in the PanelDetectorLayer objects after they have be updated, based on their current mean xy position. """ for l in self.wrapper.volume.get_detectors(): @@ -440,9 +438,6 @@

Source code for tomopt.optimisation.callbacks.detector_callbacks

- - - diff --git a/docs/_build/html/_modules/tomopt/optimisation/callbacks/diagnostic_callbacks.html b/docs/_build/html/_modules/tomopt/optimisation/callbacks/diagnostic_callbacks.html index 3414c3f3..e74f82bb 100644 --- a/docs/_build/html/_modules/tomopt/optimisation/callbacks/diagnostic_callbacks.html +++ b/docs/_build/html/_modules/tomopt/optimisation/callbacks/diagnostic_callbacks.html @@ -14,8 +14,6 @@ - - @@ -253,7 +251,7 @@

Source code for tomopt.optimisation.callbacks.diagnostic_callbacks

[docs]class ScatterRecord(Callback): - r""" + r""" Records the PoCAs of the muons which are located inside the passive volume. Once recorded, the PoCAs can be retrieved via the :meth:`~tomopt.optimisation.callbacks.diagnostic_callbacks.ScatterRecord.get_record` method. :meth:`~tomopt.plotting.diagnostics.plot_scatter_density` may be used to plot the scatter record. @@ -268,7 +266,7 @@

Source code for tomopt.optimisation.callbacks.diagnostic_callbacks

self._reset()
[docs] def on_train_begin(self) -> None: - r""" + r""" Prepares to record scatters """ @@ -276,7 +274,7 @@

Source code for tomopt.optimisation.callbacks.diagnostic_callbacks

self._reset()
[docs] def on_pred_begin(self) -> None: - r""" + r""" Prepares to record scatters """ @@ -284,14 +282,14 @@

Source code for tomopt.optimisation.callbacks.diagnostic_callbacks

self._reset()
[docs] def on_scatter_end(self) -> None: - r""" + r""" Saves the PoCAs of the latest muon batch. """ self.record.append(self.wrapper.fit_params.sb.poca_xyz[self.wrapper.fit_params.sb.get_scatter_mask()].detach().cpu().clone())
def _to_df(self, record: Tensor) -> pd.DataFrame: - r""" + r""" Converts the saved PoCAs to a Pandas DataFrame Arguments: @@ -311,7 +309,7 @@

Source code for tomopt.optimisation.callbacks.diagnostic_callbacks

return df
[docs] def get_record(self, as_df: bool = False) -> Union[Tensor, pd.DataFrame]: - r""" + r""" Access the recorded PoCAs. Arguments: @@ -327,7 +325,7 @@

Source code for tomopt.optimisation.callbacks.diagnostic_callbacks

return record
def _reset(self) -> None: - r""" + r""" Prepares to record scatters """ @@ -335,7 +333,7 @@

Source code for tomopt.optimisation.callbacks.diagnostic_callbacks

[docs]class HitRecord(ScatterRecord): - r""" + r""" Records the hits of the muons. Once recorded, the hits can be retrieved via the :meth:`~tomopt.optimisation.callbacks.diagnostic_callbacks.HitRecord.get_record` method. :meth:`~tomopt.plotting.diagnostics.plot_hit_density` may be used to plot the hit record. @@ -347,7 +345,7 @@

Source code for tomopt.optimisation.callbacks.diagnostic_callbacks

"""
[docs] def on_scatter_end(self) -> None: - r""" + r""" Saves the hits of the latest muon batch. """ @@ -355,7 +353,7 @@

Source code for tomopt.optimisation.callbacks.diagnostic_callbacks

self.record.append(hits)
def _to_df(self, record: Tensor) -> pd.DataFrame: - r""" + r""" Converts the saved hits to a Pandas DataFrame Arguments: @@ -413,9 +411,6 @@

Source code for tomopt.optimisation.callbacks.diagnostic_callbacks

- - - diff --git a/docs/_build/html/_modules/tomopt/optimisation/callbacks/eval_metric.html b/docs/_build/html/_modules/tomopt/optimisation/callbacks/eval_metric.html index 5dc88a10..7da558c0 100644 --- a/docs/_build/html/_modules/tomopt/optimisation/callbacks/eval_metric.html +++ b/docs/_build/html/_modules/tomopt/optimisation/callbacks/eval_metric.html @@ -246,7 +246,7 @@

Source code for tomopt.optimisation.callbacks.eval_metric

[docs]class EvalMetric(Callback): - r""" + r""" Base class from which metric should inherit and implement the computation of their metric values. Inheriting classes will automatically be detected by :class:`~tomopt.optimisation.callbacks.monitors.MetricLogger` and included in live feedback if it is the "main metric" @@ -258,7 +258,7 @@

Source code for tomopt.optimisation.callbacks.eval_metric

""" def __init__(self, lower_metric_better: bool, name: Optional[str] = None, main_metric: bool = True): - r""" + r""" Initialises the metric. """ @@ -266,7 +266,7 @@

Source code for tomopt.optimisation.callbacks.eval_metric

self.name = type(self).__name__ if name is None else name
[docs] def on_train_begin(self) -> None: - r""" + r""" Ensures that only one main metric is used """ @@ -278,7 +278,7 @@

Source code for tomopt.optimisation.callbacks.eval_metric

self.main_metric = True
[docs] def get_metric(self) -> float: - r""" + r""" This will be called by :meth:`~tomopt.optimisation.callbacks.monitors.MetricLogger.on_epoch_end` Returns: @@ -298,7 +298,7 @@

Source code for tomopt.optimisation.callbacks.eval_metric

- © Copyright 2021-2022, TomOpt Authors. + © Copyright 2021-2024, TomOpt Authors.

@@ -331,9 +331,6 @@

Source code for tomopt.optimisation.callbacks.eval_metric

- - - diff --git a/docs/_build/html/_modules/tomopt/optimisation/callbacks/grad_callbacks.html b/docs/_build/html/_modules/tomopt/optimisation/callbacks/grad_callbacks.html index c8a78b8c..8852633e 100644 --- a/docs/_build/html/_modules/tomopt/optimisation/callbacks/grad_callbacks.html +++ b/docs/_build/html/_modules/tomopt/optimisation/callbacks/grad_callbacks.html @@ -14,8 +14,6 @@ - - @@ -249,7 +247,7 @@

Source code for tomopt.optimisation.callbacks.grad_callbacks

[docs]class NoMoreNaNs(Callback): - r""" + r""" Prior to parameter updates, this callback will check and set any NaN gradients to zero. Updates based on NaN gradients will set the parameter value to NaN. @@ -258,7 +256,7 @@

Source code for tomopt.optimisation.callbacks.grad_callbacks

"""
[docs] def on_backwards_end(self) -> None: - r""" + r""" Prior to optimiser updates, parameter gradients are checked for NaNs. """ @@ -323,9 +321,6 @@

Source code for tomopt.optimisation.callbacks.grad_callbacks

- - - diff --git a/docs/_build/html/_modules/tomopt/optimisation/callbacks/heatmap_gif.html b/docs/_build/html/_modules/tomopt/optimisation/callbacks/heatmap_gif.html index d960edad..d54387c7 100644 --- a/docs/_build/html/_modules/tomopt/optimisation/callbacks/heatmap_gif.html +++ b/docs/_build/html/_modules/tomopt/optimisation/callbacks/heatmap_gif.html @@ -14,8 +14,6 @@ - - @@ -252,7 +250,7 @@

Source code for tomopt.optimisation.callbacks.heatmap_gif

[docs]class HeatMapGif(Callback): - r""" + r""" Records a gif of the first heatmap in the first detector layer during training. Arguments: @@ -260,7 +258,7 @@

Source code for tomopt.optimisation.callbacks.heatmap_gif

""" def __init__(self, gif_filename: str = "heatmap.gif") -> None: - r""" + r""" Initialises the callback. """ @@ -268,7 +266,7 @@

Source code for tomopt.optimisation.callbacks.heatmap_gif

self._reset()
[docs] def on_train_begin(self) -> None: - r""" + r""" Prepares to record a new gif """ @@ -276,7 +274,7 @@

Source code for tomopt.optimisation.callbacks.heatmap_gif

self._reset()
[docs] def on_epoch_begin(self) -> None: - r""" + r""" When a new training epoch begins, saves an image of the current layout of the first heatmap in the first detector layer """ @@ -284,7 +282,7 @@

Source code for tomopt.optimisation.callbacks.heatmap_gif

self._plot_current()
[docs] def on_train_end(self) -> None: - r""" + r""" When training, saves an image of the current layout of the first heatmap in the first detector layer and then combines all images into a gif """ @@ -293,7 +291,7 @@

Source code for tomopt.optimisation.callbacks.heatmap_gif

self._create_gif()
def _plot_current(self) -> None: - r""" + r""" Saves an image of the current layout of the first heatmap in the first detector layer """ @@ -305,18 +303,18 @@

Source code for tomopt.optimisation.callbacks.heatmap_gif

p.plot_map(bsavefig=True, filename=filename) break else: - raise NotImplementedError(f"HeatMapGif does not yet support {type(l) , l.type_label}") + raise NotImplementedError(f"HeatMapGif does not yet support {type(l) , l.type_label}") break def _reset(self) -> None: - r""" + r""" Prepares to record a new gif """ self._buffer_files: List[str] = [] def _create_gif(self) -> None: - r""" + r""" Combines recorded images into a gif """ @@ -372,9 +370,6 @@

Source code for tomopt.optimisation.callbacks.heatmap_gif

- - - diff --git a/docs/_build/html/_modules/tomopt/optimisation/callbacks/monitors.html b/docs/_build/html/_modules/tomopt/optimisation/callbacks/monitors.html index 92ff0827..1d536d0f 100644 --- a/docs/_build/html/_modules/tomopt/optimisation/callbacks/monitors.html +++ b/docs/_build/html/_modules/tomopt/optimisation/callbacks/monitors.html @@ -14,8 +14,6 @@ - - @@ -288,7 +286,7 @@

Source code for tomopt.optimisation.callbacks.monitors

[docs]class MetricLogger(Callback): - r""" + r""" Provides live feedback during training showing a variety of metrics to help highlight problems or test hyper-parameters without completing a full training. If `show_plots` is false, will instead print training and validation losses at the end of each epoch. The full history is available as a dictionary by calling :meth:`~tomopt.optimisation.callbacks.monitors.MetricLogger.get_loss_history`. @@ -315,7 +313,7 @@

Source code for tomopt.optimisation.callbacks.monitors

self.gif_filename, self.gif_length, self.show_plots = gif_filename, gif_length, show_plots def _reset(self) -> None: - r""" + r""" Resets plots and logs for a new optimisation """ @@ -342,7 +340,7 @@

Source code for tomopt.optimisation.callbacks.monitors

self.display = display(self.fig, display_id=True)
[docs] def on_train_begin(self) -> None: - r""" + r""" Prepare for new training """ @@ -350,7 +348,7 @@

Source code for tomopt.optimisation.callbacks.monitors

self._reset()
[docs] def on_epoch_begin(self) -> None: - r""" + r""" Prepare to track new loss and snapshot the plots if training """ @@ -360,7 +358,7 @@

Source code for tomopt.optimisation.callbacks.monitors

self._snapshot_monitor()
[docs] def on_volume_end(self) -> None: - r""" + r""" Grabs the validation sub-losses for the latest volume """ @@ -374,7 +372,7 @@

Source code for tomopt.optimisation.callbacks.monitors

self.tmp_sub_losses[k] += 0 # Create sub loss at 0 or add zero if exists
[docs] def on_backwards_end(self) -> None: - r""" + r""" Records the training loss for the latest volume batch """ @@ -382,7 +380,7 @@

Source code for tomopt.optimisation.callbacks.monitors

self.loss_vals["Training"].append(self.wrapper.fit_params.mean_loss.data.item() if self.wrapper.fit_params.mean_loss is not None else math.inf)
[docs] def on_volume_batch_end(self) -> None: - r""" + r""" Grabs the validation losses for the latest volume batch """ @@ -391,7 +389,7 @@

Source code for tomopt.optimisation.callbacks.monitors

self.batch_cnt += 1
[docs] def on_epoch_end(self) -> None: - r""" + r""" If validation epoch finished, record validation losses, compute info and update plots """ @@ -419,7 +417,7 @@

Source code for tomopt.optimisation.callbacks.monitors

self.val_epoch_results = self.loss_vals["Validation"][-1], m
[docs] def print_losses(self) -> None: - r""" + r""" Print training and validation losses for the last epoch """ @@ -431,7 +429,7 @@

Source code for tomopt.optimisation.callbacks.monitors

print(p)
[docs] def update_plot(self) -> None: - r""" + r""" Updates the plot(s). """ @@ -476,7 +474,7 @@

Source code for tomopt.optimisation.callbacks.monitors

self.metric_ax.set_ylabel(self.wrapper.fit_params.metric_cbs[self.main_metric_idx].name, fontsize=0.8 * self.lbl_sz, color=self.lbl_col)
[docs] def on_train_end(self) -> None: - r""" + r""" Cleans up plots, and optionally creates a gif of the training history """ @@ -487,7 +485,7 @@

Source code for tomopt.optimisation.callbacks.monitors

self.metric_cbs = self.wrapper.fit_params.metric_cbs # Copy reference since fit_params gets set to None at end of training
[docs] def get_loss_history(self) -> Tuple[Dict[str, List[float]], Dict[str, List[float]]]: - r""" + r""" Get the current history of losses and metrics Returns: @@ -523,7 +521,7 @@

Source code for tomopt.optimisation.callbacks.monitors

return results
def _snapshot_monitor(self) -> None: - r""" + r""" Saves an image of all the plots in their current state """ @@ -531,7 +529,7 @@

Source code for tomopt.optimisation.callbacks.monitors

self.fig.savefig(self._buffer_files[-1], bbox_inches="tight") def _build_grid_spec(self) -> GridSpec: - r""" + r""" Returns: The layout object for the plots """ @@ -539,7 +537,7 @@

Source code for tomopt.optimisation.callbacks.monitors

return self.fig.add_gridspec(3 + (self.main_metric_idx is None), 1) def _prep_plots(self) -> None: - r""" + r""" Creates the plots for a new optimisation """ @@ -564,7 +562,7 @@

Source code for tomopt.optimisation.callbacks.monitors

self.metric_ax.set_ylabel(self.wrapper.fit_params.metric_cbs[self.main_metric_idx].name, fontsize=0.8 * self.lbl_sz, color=self.lbl_col) def _create_gif(self) -> None: - r""" + r""" Combines plot snapshots into a gif """ @@ -577,7 +575,7 @@

Source code for tomopt.optimisation.callbacks.monitors

[docs]class PanelMetricLogger(MetricLogger): - r""" + r""" Logger for use with :class:`~tomopt.volume.layer.PanelDetectorLayer` s Arguments: @@ -596,7 +594,7 @@

Source code for tomopt.optimisation.callbacks.monitors

super()._reset() def _prep_plots(self) -> None: - r""" + r""" Creates the plots for a new optimisation """ @@ -610,7 +608,7 @@

Source code for tomopt.optimisation.callbacks.monitors

self._set_axes_labels()
[docs] def update_plot(self) -> None: - r""" + r""" Updates the plot(s). """ @@ -668,7 +666,7 @@

Source code for tomopt.optimisation.callbacks.monitors

self._set_axes_labels()
def _build_grid_spec(self) -> GridSpec: - r""" + r""" Returns: The layout object for the plots """ @@ -677,7 +675,7 @@

Source code for tomopt.optimisation.callbacks.monitors

return self.fig.add_gridspec(5 + (self.main_metric_idx is None), 3 + self.uses_sigmoid_panels) def _set_axes_labels(self) -> None: - r""" + r""" Adds styling to plots after they are cleared """ @@ -757,9 +755,6 @@

Source code for tomopt.optimisation.callbacks.monitors

- - - diff --git a/docs/_build/html/_modules/tomopt/optimisation/callbacks/opt_callbacks.html b/docs/_build/html/_modules/tomopt/optimisation/callbacks/opt_callbacks.html index 22613619..f4541406 100644 --- a/docs/_build/html/_modules/tomopt/optimisation/callbacks/opt_callbacks.html +++ b/docs/_build/html/_modules/tomopt/optimisation/callbacks/opt_callbacks.html @@ -14,8 +14,6 @@ - - @@ -275,7 +273,7 @@

Source code for tomopt.optimisation.callbacks.opt_callbacks

@abstractmethod def schedule(self) -> Tuple[Optional[float], Optional[float]]: - r""" + r""" Compute LR and momentum as a function of iter_cnt, according to defined ranges. """ @@ -300,7 +298,7 @@

Source code for tomopt.optimisation.callbacks.opt_callbacks

[docs]class OneCycle(AbsOptSchedule): - r""" + r""" Callback implementing Smith 1-cycle evolution for lr and momentum (beta_1) https://arxiv.org/abs/1803.09820 In the warmup phase: @@ -379,7 +377,7 @@

Source code for tomopt.optimisation.callbacks.opt_callbacks

[docs]class EpochSave(Callback): - r""" + r""" Saves the state of the volume at the end of each training epoch to a unique file. This can be used to load a specifc state to either be used, or to resume training. """ @@ -432,9 +430,6 @@

Source code for tomopt.optimisation.callbacks.opt_callbacks

- - - diff --git a/docs/_build/html/_modules/tomopt/optimisation/callbacks/pred_callbacks.html b/docs/_build/html/_modules/tomopt/optimisation/callbacks/pred_callbacks.html index e5da970b..20a6922f 100644 --- a/docs/_build/html/_modules/tomopt/optimisation/callbacks/pred_callbacks.html +++ b/docs/_build/html/_modules/tomopt/optimisation/callbacks/pred_callbacks.html @@ -14,8 +14,6 @@ - - @@ -253,13 +251,13 @@

Source code for tomopt.optimisation.callbacks.pred_callbacks

[docs]class PredHandler(Callback): - r""" + r""" Default callback for predictions. Collects predictions and true voxelwise X0 pairs for a range of volumes and returns them as list of tuples of numpy arrays when :meth:`~tomopt.optimisation.callbacks.pred_callbacks.PredHandler.get_preds` is called. """
[docs] def on_pred_begin(self) -> None: - r""" + r""" Prepares to record predictions """ @@ -267,7 +265,7 @@

Source code for tomopt.optimisation.callbacks.pred_callbacks

self.preds: List[Tuple[np.ndarray, np.ndarray]] = []
[docs] def get_preds(self) -> List[Tuple[np.ndarray, np.ndarray]]: - r""" + r""" Returns: List of predicted and target pairs """ @@ -275,7 +273,7 @@

Source code for tomopt.optimisation.callbacks.pred_callbacks

return self.preds
[docs] def on_x0_pred_end(self) -> None: - r""" + r""" Records predictions and true volume layout for the latest volume """ @@ -284,7 +282,7 @@

Source code for tomopt.optimisation.callbacks.pred_callbacks

[docs]class VolumeTargetPredHandler(PredHandler): - r""" + r""" Returns the volume target as the target value, rather than the voxel-wise X0s. If an x02id lookup is provided, it transforms the target from an X0 value to a material class ID. @@ -296,7 +294,7 @@

Source code for tomopt.optimisation.callbacks.pred_callbacks

self.x02id = x02id
[docs] def on_x0_pred_end(self) -> None: - r""" + r""" Records predictions and volume target for the latest volume """ @@ -308,7 +306,7 @@

Source code for tomopt.optimisation.callbacks.pred_callbacks

[docs]class Save2HDF5PredHandler(VolumeTargetPredHandler): - r""" + r""" Saves predictions and targets to an HDF5 file, rather than caching and returning them. Samples are written incrementally. Can optionally save volume targets rather than voxel-wise X0 targets If an x02id lookup is provided, it transforms the target from an X0 value to a material class ID. @@ -331,7 +329,7 @@

Source code for tomopt.optimisation.callbacks.pred_callbacks

self.path.unlink() def _open_file(self) -> h5py.File: - r""" + r""" Returns: Save file to write data to """ @@ -341,7 +339,7 @@

Source code for tomopt.optimisation.callbacks.pred_callbacks

return h5py.File(self.path, "w") def _write_data(self, pred: np.ndarray, targ: np.ndarray) -> None: - r""" + r""" Writes a new prediction-target pair to the save file Arguments: @@ -368,7 +366,7 @@

Source code for tomopt.optimisation.callbacks.pred_callbacks

)
[docs] def on_x0_pred_end(self) -> None: - r""" + r""" Records predictions and true volume layout or target for the latest volume """ @@ -426,9 +424,6 @@

Source code for tomopt.optimisation.callbacks.pred_callbacks

- - - diff --git a/docs/_build/html/_modules/tomopt/optimisation/callbacks/warmup_callbacks.html b/docs/_build/html/_modules/tomopt/optimisation/callbacks/warmup_callbacks.html index c5d41a8b..6e608006 100644 --- a/docs/_build/html/_modules/tomopt/optimisation/callbacks/warmup_callbacks.html +++ b/docs/_build/html/_modules/tomopt/optimisation/callbacks/warmup_callbacks.html @@ -14,8 +14,6 @@ - - @@ -251,7 +249,7 @@

Source code for tomopt.optimisation.callbacks.warmup_callbacks

[docs]class WarmupCallback(Callback): - r""" + r""" Warmup callbacks act at the start of training to track and set parameters based on the initial state of the detector. During warmup, optimisation of the detector is prevented, via a flag. If multiple warmup callbacks are present, they will wait to warmup according to the order they are provided in. @@ -269,7 +267,7 @@

Source code for tomopt.optimisation.callbacks.warmup_callbacks

self.n_warmup = n_warmup
[docs] def on_train_begin(self) -> None: - r""" + r""" Prepares to warmup """ @@ -277,7 +275,7 @@

Source code for tomopt.optimisation.callbacks.warmup_callbacks

self._reset()
[docs] def check_warmups(self) -> None: - r""" + r""" If a `WarmupCallback` has finished, then its `warmup_active` is set to False, and the next `WarmupCallback` will have its `warmup_active` is set to True. If the finishing callback was the last `WarmupCallback`, then the "skip optimisation" flag is unset. @@ -293,7 +291,7 @@

Source code for tomopt.optimisation.callbacks.warmup_callbacks

self.wrapper.fit_params.skip_opt_step = False
[docs] def on_epoch_begin(self) -> None: - r""" + r""" Ensures that when one `WarmupCallback` has finished, either the next is called, or the detectors are set to be optimised. """ @@ -301,7 +299,7 @@

Source code for tomopt.optimisation.callbacks.warmup_callbacks

self.check_warmups()
[docs] def on_epoch_end(self) -> None: - r""" + r""" After a training epoch is finished, increments the number of epochs that the callback has been warming up, provided it is active. """ @@ -311,7 +309,7 @@

Source code for tomopt.optimisation.callbacks.warmup_callbacks

self.epoch_cnt += 1
def _reset(self) -> None: - r""" + r""" Prepares the callback to warmup, and ensures that only the first `WarmupCallback` is active. """ @@ -322,7 +320,7 @@

Source code for tomopt.optimisation.callbacks.warmup_callbacks

[docs]class CostCoefWarmup(WarmupCallback): - r""" + r""" Sets a more stable cost coefficient in the :class:`~tomopt.optimisation.loss.loss.AbsDetectorLoss` by averaging the inference-error component for several epochs. During this warm-up monitoring phase, the detectors will be kept fixed. @@ -336,7 +334,7 @@

Source code for tomopt.optimisation.callbacks.warmup_callbacks

self.errors: List[np.ndarray] = []
[docs] def on_volume_end(self) -> None: - r""" + r""" If training, grabs the inference-error for the latest volume """ @@ -346,7 +344,7 @@

Source code for tomopt.optimisation.callbacks.warmup_callbacks

self.errors.append(self.wrapper.loss_func.sub_losses["error"].detach().cpu().numpy())
[docs] def on_epoch_end(self) -> None: - r""" + r""" If enough epochs have past, the overall median inference-error is computed and used to set the cost coefficient in the loss. """ @@ -361,7 +359,7 @@

Source code for tomopt.optimisation.callbacks.warmup_callbacks

[docs]class OptConfig(WarmupCallback): - r""" + r""" Allows the user to specify the desired update steps for parameters in physical units. Over the course of several warm-up epochs the gradients on the parameters are monitored, after which suitable learning rates for the optimisers are set, such that the parameters will move by the desired amount every update. @@ -391,7 +389,7 @@

Source code for tomopt.optimisation.callbacks.warmup_callbacks

self.rates = rates
[docs] def on_backwards_end(self) -> None: - r""" + r""" Grabs training gradients from detector parameters """ @@ -403,7 +401,7 @@

Source code for tomopt.optimisation.callbacks.warmup_callbacks

self.stats[opt].append(param.grad.abs().cpu().numpy())
[docs] def on_epoch_end(self) -> None: - r""" + r""" When enough training epochs have passed, sets suitable learning rates for the optimisers based on the median gradients and desired update rates """ @@ -429,12 +427,12 @@

Source code for tomopt.optimisation.callbacks.warmup_callbacks

[docs]class PostWarmupCallback(Callback): - r""" + r""" Callback class that waits for all :class:`~tomopt.optimisation.callbacks.warmup_callbacks.WarmupCallback` obejcts to finish their warmups before activating. """
[docs] def on_train_begin(self) -> None: - r""" + r""" Prepares for new training """ @@ -442,7 +440,7 @@

Source code for tomopt.optimisation.callbacks.warmup_callbacks

self.active = False
[docs] def check_warmups(self) -> None: - r""" + r""" When all WarmupCallbacks have finished, sets the callback to be active. """ @@ -455,7 +453,7 @@

Source code for tomopt.optimisation.callbacks.warmup_callbacks

self.active = True
[docs] def on_epoch_begin(self) -> None: - r""" + r""" Checks to see whether the callback should be active. """ @@ -506,9 +504,6 @@

Source code for tomopt.optimisation.callbacks.warmup_callbacks

- - - diff --git a/docs/_build/html/_modules/tomopt/optimisation/data/passives.html b/docs/_build/html/_modules/tomopt/optimisation/data/passives.html index df751bf5..03906930 100644 --- a/docs/_build/html/_modules/tomopt/optimisation/data/passives.html +++ b/docs/_build/html/_modules/tomopt/optimisation/data/passives.html @@ -14,8 +14,6 @@ - - @@ -262,7 +260,7 @@

Source code for tomopt.optimisation.data.passives

[docs]class AbsPassiveGenerator(metaclass=ABCMeta): - r""" + r""" Abstract base class for classes that generate new passive layouts. The :meth:`~tomopt.optimisation.data.passives.AbsPassiveGenerator._generate` method should be overridden to return: @@ -282,7 +280,7 @@

Source code for tomopt.optimisation.data.passives

volume: Volume, materials: Optional[List[str]] = None, ) -> None: - r""" + r""" Initialises the generator for a given volume, in case any volume parameters are required by the inheriting generators """ @@ -297,7 +295,7 @@

Source code for tomopt.optimisation.data.passives

@abstractmethod def _generate(self) -> Tuple[RadLengthFunc, Optional[Tensor]]: - r""" + r""" Inheriting classes should override this. Returns: @@ -308,7 +306,7 @@

Source code for tomopt.optimisation.data.passives

pass
[docs] def get_data(self) -> Tuple[RadLengthFunc, Optional[Tensor]]: - r""" + r""" Returns: RadLengthFunc: A function that provides an xy tensor for a given layer when called with its z position, length and width, and size. Target: An optional "target" value for the layout @@ -317,7 +315,7 @@

Source code for tomopt.optimisation.data.passives

return self._generate()
[docs] def generate(self) -> RadLengthFunc: - r""" + r""" Returns: The layout function and no target """ @@ -327,7 +325,7 @@

Source code for tomopt.optimisation.data.passives

[docs]class AbsBlockPassiveGenerator(AbsPassiveGenerator): - r""" + r""" Abstract base class for classes that generate new passive layouts which contain a single cuboid of material (block). The :meth:`~tomopt.optimisation.data.passives.AbsPassiveGenerator._generate` method should be overridden to return: @@ -353,7 +351,7 @@

Source code for tomopt.optimisation.data.passives

block_size_max_half: Optional[bool] = None, materials: Optional[List[str]] = None, ) -> None: - r""" + r""" Initialises the generator for a given volume, in case any volume parameters are required by the inheriting generators. """ @@ -390,7 +388,7 @@

Source code for tomopt.optimisation.data.passives

[docs]class RandomBlockPassiveGenerator(AbsBlockPassiveGenerator): - r""" + r""" Generates new passive layouts which contain a single cuboid of material (block) of random material against a random background material. Blocks are always present, but can potentially be of the same material as the background. The target for the volumes is the X0 of the block material. @@ -418,7 +416,7 @@

Source code for tomopt.optimisation.data.passives

block_size_max_half: Optional[bool] = None, materials: Optional[List[str]] = None, ) -> None: - r""" + r""" Initialises the generator for a given volume, in case any volume parameters are required by the inheriting generators. """ @@ -426,7 +424,7 @@

Source code for tomopt.optimisation.data.passives

self.sort_x0, self.enforce_diff_mat = sort_x0, enforce_diff_mat def _generate(self) -> Tuple[RadLengthFunc, Tensor]: - r""" + r""" Generates passive layouts containing a (randomly sized) block of random material at a random location surrounded by a random background. Returns: @@ -458,7 +456,7 @@

Source code for tomopt.optimisation.data.passives

[docs]class BlockPresentPassiveGenerator(AbsBlockPassiveGenerator): - r""" + r""" Generates new passive layouts which contain a single cuboid of material (block) of random material against a fixed background material. Blocks are always present, but can potentially be of the same material as the background. The target for the volumes is the X0 of the block material. @@ -477,7 +475,7 @@

Source code for tomopt.optimisation.data.passives

""" def _generate(self) -> Tuple[RadLengthFunc, Tensor]: - r""" + r""" Generates passive layouts containing a (randomly sized) block of random material at a random location surrounded by a fixed background. The background material for the background will always be the zeroth material provided during initialisation. @@ -506,7 +504,7 @@

Source code for tomopt.optimisation.data.passives

[docs]class VoxelPassiveGenerator(AbsPassiveGenerator): - r""" + r""" Generates new passive layouts where every voxel is of a random material. The :meth:`~tomopt.optimisation.data.passives.AbsPassiveGenerator.generate` method will return only the layout function and no target @@ -518,7 +516,7 @@

Source code for tomopt.optimisation.data.passives

""" def _generate(self) -> Tuple[RadLengthFunc, None]: - r""" + r""" Generates new passive layouts where ever voxel is of a random material. Returns: @@ -535,7 +533,7 @@

Source code for tomopt.optimisation.data.passives

[docs]class PassiveYielder: - r""" + r""" Dataset class that can either: Yield from a set of pre-specified passive-volume layouts, and optional targets Generate and yield random layouts and optional targets from a provided generator @@ -619,9 +617,6 @@

Source code for tomopt.optimisation.data.passives

- - - diff --git a/docs/_build/html/_modules/tomopt/optimisation/loss/loss.html b/docs/_build/html/_modules/tomopt/optimisation/loss/loss.html index 2b891cb8..0a7b3bd1 100644 --- a/docs/_build/html/_modules/tomopt/optimisation/loss/loss.html +++ b/docs/_build/html/_modules/tomopt/optimisation/loss/loss.html @@ -14,8 +14,6 @@ - - @@ -254,7 +252,7 @@

Source code for tomopt.optimisation.loss.loss

[docs]class AbsDetectorLoss(nn.Module, metaclass=ABCMeta): - r""" + r""" Abstract base class from which all loss functions should inherit. The loss consists of: @@ -302,7 +300,7 @@

Source code for tomopt.optimisation.loss.loss

@abstractmethod def _get_inference_loss(self, pred: Tensor, volume: Volume) -> Tensor: - r""" + r""" Inheriting classes must override this to compute the inference-error component of the loss. The target for the predictions should be extracted from the volume; whether this be the voxelwise X0s or the value of the `target` attribute. @@ -317,7 +315,7 @@

Source code for tomopt.optimisation.loss.loss

pass
[docs] def forward(self, pred: Tensor, volume: Volume) -> Tensor: - r""" + r""" Computes the loss for the predictions of a single volume using the current state of the detector Arguments: @@ -334,7 +332,7 @@

Source code for tomopt.optimisation.loss.loss

return self.sub_losses["error"] + self.sub_losses["cost"]
def _get_budget_coef(self, cost: Tensor) -> Tensor: - r""" + r""" Computes the budget loss term from the current cost of the detectors. Switch-on near target budget, plus linear/smooth increase above budget @@ -359,7 +357,7 @@

Source code for tomopt.optimisation.loss.loss

return (2 * torch.sigmoid(self.budget_smoothing * d / self.target_budget)) + (F.relu(d) / self.target_budget) def _compute_cost_coef(self, inference: Tensor) -> None: - r""" + r""" If the cost coefficient is None, will set it equal the current value of the inference-error loss Arguments: @@ -370,7 +368,7 @@

Source code for tomopt.optimisation.loss.loss

print(f"Automatically setting cost coefficient to {self.cost_coef}") def _get_cost_loss(self, volume: Volume) -> Tensor: - r""" + r""" Computes the budget term of the loss, dependent on the current cost of the detectors Arguments: @@ -392,7 +390,7 @@

Source code for tomopt.optimisation.loss.loss

[docs]class VoxelX0Loss(AbsDetectorLoss): - r""" + r""" Loss function designed for tasks where the voxelwise X0 value must be predicted as floats. Inference-error component of the loss is the squared-error on X0 predictions, averaged over all voxels (MSE) @@ -418,7 +416,7 @@

Source code for tomopt.optimisation.loss.loss

""" def _get_inference_loss(self, pred: Tensor, volume: Volume) -> Tensor: - r""" + r""" Computes the MSE of the predictions against the true voxelwise X0s. Arguments: @@ -434,7 +432,7 @@

Source code for tomopt.optimisation.loss.loss

[docs]class AbsMaterialClassLoss(AbsDetectorLoss): - r""" + r""" Abstract base class for cases in which the task is to classify materials in the passive volumes, or some other aspect of the volumes. The targets returned by the volume are expected to be float X0s, and are converted to class IDs using an X0 to ID map. @@ -480,7 +478,7 @@

Source code for tomopt.optimisation.loss.loss

[docs]class VoxelClassLoss(AbsMaterialClassLoss): - r""" + r""" Loss function designed for tasks where the voxelwise material class ID must be classified. Inference-error component of the loss is the negative log-likelihood on log class-probabilities, averaged over all voxels (NLL) @@ -510,7 +508,7 @@

Source code for tomopt.optimisation.loss.loss

""" def _get_inference_loss(self, pred: Tensor, volume: Volume) -> Tensor: - r""" + r""" Computes the NLL of the log-probabilities against the true voxelwise classes. Arguments: @@ -529,7 +527,7 @@

Source code for tomopt.optimisation.loss.loss

[docs]class VolumeClassLoss(AbsMaterialClassLoss): - r""" + r""" Loss function designed for tasks where some overall target of the passive volume must be classified, and the target of the volume is encoded as a float X0. E.g. what is the material of a large block in the volume. @@ -562,7 +560,7 @@

Source code for tomopt.optimisation.loss.loss

""" def _get_inference_loss(self, pred: Tensor, volume: Volume) -> Tensor: - r""" + r""" Computes the NLL of the log-probabilities against the true voxelwise classes. Arguments: @@ -580,7 +578,7 @@

Source code for tomopt.optimisation.loss.loss

[docs]class VolumeIntClassLoss(AbsDetectorLoss): - r""" + r""" Loss function designed for tasks where some overall integer target of the passive volume must be classified, and the values of this target are quantifiably comparable (i.e. the integers are treatable as numbers not just categorical codes). E.g. Predicting how many layers of the passive volume are filled with a given material. @@ -622,7 +620,7 @@

Source code for tomopt.optimisation.loss.loss

steep_budget: bool = True, debug: bool = False, ): - r""" + r""" Arguments: targ2int: function to convert volume targets to integers to classify pred_int_start: the integer that the zeroth probability in predictions corresponds to @@ -640,7 +638,7 @@

Source code for tomopt.optimisation.loss.loss

self.targ2int, self.pred_int_start, self.use_mse = targ2int, pred_int_start, use_mse def _get_inference_loss(self, pred: Tensor, volume: Volume) -> Tensor: - r""" + r""" Computes the ICL of the integer probabilities against the true target integer. Arguments: @@ -656,12 +654,12 @@

Source code for tomopt.optimisation.loss.loss

[docs]class VolumeMSELoss(AbsDetectorLoss): - r""" + r""" TODO: Add unit tests and docs """ def _get_inference_loss(self, pred: Tensor, volume: Volume) -> Tensor: - r""" + r""" Computes the MSE of the preds and targets. Arguments: @@ -719,9 +717,6 @@

Source code for tomopt.optimisation.loss.loss

- - - diff --git a/docs/_build/html/_modules/tomopt/optimisation/loss/sub_losses.html b/docs/_build/html/_modules/tomopt/optimisation/loss/sub_losses.html index 624ae62a..b3b85c44 100644 --- a/docs/_build/html/_modules/tomopt/optimisation/loss/sub_losses.html +++ b/docs/_build/html/_modules/tomopt/optimisation/loss/sub_losses.html @@ -14,8 +14,6 @@ - - @@ -256,7 +254,7 @@

Source code for tomopt.optimisation.loss.sub_losses

weight: Optional[Tensor] = None, reduction: str = "mean", ) -> Tensor: - r""" + r""" Loss for classifying integers, when regression is not applicable. It assumed that the the integers really are quantifiably comparable, and not categorical codes of classes. @@ -346,9 +344,6 @@

Source code for tomopt.optimisation.loss.sub_losses

- - - diff --git a/docs/_build/html/_modules/tomopt/optimisation/wrapper/volume_wrapper.html b/docs/_build/html/_modules/tomopt/optimisation/wrapper/volume_wrapper.html index 183e294e..8891adfd 100644 --- a/docs/_build/html/_modules/tomopt/optimisation/wrapper/volume_wrapper.html +++ b/docs/_build/html/_modules/tomopt/optimisation/wrapper/volume_wrapper.html @@ -14,8 +14,6 @@ - - @@ -292,7 +290,7 @@

Source code for tomopt.optimisation.wrapper.volume_wrapper

[docs]class FitParams: - r""" + r""" Data class used for storing all aspects of optimisation and prediction when working with :class:`~tomopt.optimisation.wrapper.volume_wrapper.AbsVolumeWrapper` @@ -329,7 +327,7 @@

Source code for tomopt.optimisation.wrapper.volume_wrapper

skip_opt_step: bool = False def __init__(self, **kwargs: Any) -> None: - r""" + r""" Stores any keyword arguments as an attribute """ @@ -337,7 +335,7 @@

Source code for tomopt.optimisation.wrapper.volume_wrapper

[docs]class AbsVolumeWrapper(metaclass=ABCMeta): - r""" + r""" Abstract base class for optimisation volume wrappers. Inheriting classes will need to override :meth:`~tomopt.optimisation.wrapper.volume_wrapper.AbsVolumeWrapper._build_opt` according to the detector parameters that need to be optimised. @@ -484,7 +482,7 @@

Source code for tomopt.optimisation.wrapper.volume_wrapper

@abstractmethod def _build_opt(self, **kwargs: PartialOpt) -> None: - r""" + r""" Inheriting classes should override this method to initialise the optimisers by associating them to the detector parameters. e.g.: self.opts = {'res_opt': res_opt((l.resolution for l in self.volume.get_detectors())), 'eff_opt': eff_opt((l.efficiency for l in self.volume.get_detectors()))} @@ -496,7 +494,7 @@

Source code for tomopt.optimisation.wrapper.volume_wrapper

pass
[docs] def get_detectors(self) -> List[AbsDetectorLayer]: - r""" + r""" Returns: A list of all :class:`~tomopt.volume.layer.AbsDetectorLayer` s in the volume, in the order of `layers` (normally decreasing z position) """ @@ -504,7 +502,7 @@

Source code for tomopt.optimisation.wrapper.volume_wrapper

return self.volume.get_detectors()
[docs] def save(self, name: str) -> None: - r""" + r""" Saves the volume and optimiser parameters to a file. Arguments: @@ -514,7 +512,7 @@

Source code for tomopt.optimisation.wrapper.volume_wrapper

torch.save({"volume": self.volume.state_dict(), **{k: v.state_dict() for k, v in self.opts.items()}}, str(name))
[docs] def load(self, name: str) -> None: - r""" + r""" Loads saved volume and optimiser parameters from a file. Arguments: @@ -530,7 +528,7 @@

Source code for tomopt.optimisation.wrapper.volume_wrapper

self.opts[k].load_state_dict(v)
[docs] def get_param_count(self, trainable: bool = True) -> int: - r""" + r""" Return number of parameters in detector. Arguments: @@ -553,7 +551,7 @@

Source code for tomopt.optimisation.wrapper.volume_wrapper

cbs: Optional[List[Callback]] = None, cb_savepath: Path = Path("train_weights"), ) -> List[Callback]: - r""" + r""" Runs the fitting loop for the detectors over a specified number of epochs, using the provided volumes or volume generators. The optimisation loop can be supported by callbacks. @@ -618,7 +616,7 @@

Source code for tomopt.optimisation.wrapper.volume_wrapper

cbs: Optional[List[Callback]] = None, cb_savepath: Path = Path("train_weights"), ) -> List[Tuple[np.ndarray, np.ndarray]]: - r""" + r""" Uses the detectors to predict the provided volumes The prediction loop can be supported by callbacks. @@ -664,7 +662,7 @@

Source code for tomopt.optimisation.wrapper.volume_wrapper

return pred_cb.get_preds()
[docs] def get_opt_lr(self, opt: str) -> float: - r""" + r""" Returns the learning rate of the specified optimiser. Arguments: @@ -677,7 +675,7 @@

Source code for tomopt.optimisation.wrapper.volume_wrapper

return self.opts[opt].param_groups[0]["lr"]
[docs] def set_opt_lr(self, lr: float, opt: str) -> None: - r""" + r""" Sets the learning rate of the specified optimiser. Arguments: @@ -688,7 +686,7 @@

Source code for tomopt.optimisation.wrapper.volume_wrapper

self.opts[opt].param_groups[0]["lr"] = lr
[docs] def get_opt_mom(self, opt: str) -> float: - r""" + r""" Returns the momentum coefficient/beta_1 of the specified optimiser. Arguments: @@ -704,7 +702,7 @@

Source code for tomopt.optimisation.wrapper.volume_wrapper

return self.opts[opt].param_groups[0]["momentum"]
[docs] def set_opt_mom(self, mom: float, opt: str) -> None: - r""" + r""" Sets the learning rate of the specified optimiser. Arguments: @@ -719,7 +717,7 @@

Source code for tomopt.optimisation.wrapper.volume_wrapper

@staticmethod def _sort_cbs(cbs: List[Callback]) -> Dict[str, Optional[List[Callback]]]: - r""" + r""" Sorts callbacks into lists according to their type and whether other callbacks might need to be aware of them. Arguments: @@ -749,7 +747,7 @@

Source code for tomopt.optimisation.wrapper.volume_wrapper

return sorted_cbs def _fit_epoch(self) -> None: - r""" + r""" Runs through one training epoch (state = 'train'), using :meth:`~tomopt.optimisation.wrapper.volume_wrapper.AbsVolumeWrapper._scan_volumes`. If validation volumes are present, will then run through one validation epoch (state = 'valid'), again using :meth:`~tomopt.optimisation.wrapper.volume_wrapper.AbsVolumeWrapper._scan_volumes`. @@ -775,7 +773,7 @@

Source code for tomopt.optimisation.wrapper.volume_wrapper

run_epoch(self.fit_params.val_passives) def _scan_volumes(self, passives: PassiveYielder) -> None: - r""" + r""" Scans all volumes by splitting them into volume batches. Each volume is scanned via using :meth:`~tomopt.optimisation.wrapper.volume_wrapper.AbsVolumeWrapper._scan_volume`. After each volume batch, if in 'train' state,the detector parameters will be updated using the loss of the volume batch and the optimisers. @@ -828,7 +826,7 @@

Source code for tomopt.optimisation.wrapper.volume_wrapper

break def _scan_volume(self) -> None: - r""" + r""" Passes multiple batches of muons through a single volume, and infers the volume target. If in 'train' or 'valid' state, also computes the loss on the detector. """ @@ -869,7 +867,7 @@

Source code for tomopt.optimisation.wrapper.volume_wrapper

[docs]class PanelVolumeWrapper(AbsVolumeWrapper): - r""" + r""" Volume wrapper for volumes with :class:`~tomopt.volume.panel.DetectorPanel`-based detectors. Volume wrappers are designed to contain a :class:`~tomopt.volume.volume.Volume` and provide means of optimising the detectors it contains, @@ -1039,7 +1037,7 @@

Source code for tomopt.optimisation.wrapper.volume_wrapper

partial_volume_inferrer: Type[AbsVolumeInferrer] = PanelX0Inferrer, mu_generator: Optional[AbsMuonGenerator] = None, ) -> AbsVolumeWrapper: - r""" + r""" Instantiates a new `PanelVolumeWrapper` and loads saved detector and optimiser parameters Arguments: @@ -1070,7 +1068,7 @@

Source code for tomopt.optimisation.wrapper.volume_wrapper

return vw
def _build_opt(self, **kwargs: PartialOpt) -> None: - r""" + r""" Initialises the optimisers by associating them to the detector parameters. Arguments: @@ -1092,7 +1090,7 @@

Source code for tomopt.optimisation.wrapper.volume_wrapper

[docs]class HeatMapVolumeWrapper(AbsVolumeWrapper): - r""" + r""" Volume wrapper for volumes with :class:`~tomopt.volume.heatmap.DetectorHeatMap`-based detectors. Volume wrappers are designed to contain a :class:`~tomopt.volume.volume.Volume` and provide means of optimising the detectors it contains, @@ -1257,7 +1255,7 @@

Source code for tomopt.optimisation.wrapper.volume_wrapper

partial_volume_inferrer: Type[AbsVolumeInferrer] = PanelX0Inferrer, mu_generator: Optional[AbsMuonGenerator] = None, ) -> AbsVolumeWrapper: - r""" + r""" Instantiates a new `HeatMapVolumeWrapper` and loads saved detector and optimiser parameters Arguments: @@ -1288,7 +1286,7 @@

Source code for tomopt.optimisation.wrapper.volume_wrapper

return vw
def _build_opt(self, **kwargs: PartialOpt) -> None: - r""" + r""" Initialises the optimisers by associating them to the detector parameters. Arguments: @@ -1309,7 +1307,7 @@

Source code for tomopt.optimisation.wrapper.volume_wrapper

[docs]class ArbVolumeWrapper(AbsVolumeWrapper): - r""" + r""" Arbitrary volume wrapper in which the user supplies pre-instantiated optimisers for whatever paramters should be optimised. Wrappers also provide for various quality-of-life methods, such as saving and loading detector configurations, @@ -1463,7 +1461,7 @@

Source code for tomopt.optimisation.wrapper.volume_wrapper

partial_volume_inferrer: Type[AbsVolumeInferrer] = PanelX0Inferrer, mu_generator: Optional[AbsMuonGenerator] = None, ) -> AbsVolumeWrapper: - r""" + r""" Instantiates a new `PanelVolumeWrapper` and loads saved detector and optimiser parameters Arguments: @@ -1534,9 +1532,6 @@

Source code for tomopt.optimisation.wrapper.volume_wrapper

- - - diff --git a/docs/_build/html/_modules/tomopt/plotting/diagnostics.html b/docs/_build/html/_modules/tomopt/plotting/diagnostics.html index fb3960c8..4e60a9a9 100644 --- a/docs/_build/html/_modules/tomopt/plotting/diagnostics.html +++ b/docs/_build/html/_modules/tomopt/plotting/diagnostics.html @@ -14,8 +14,6 @@ - - @@ -248,7 +246,7 @@

Source code for tomopt.plotting.diagnostics

 
 
 
[docs]def plot_scatter_density(scatter_df: pd.DataFrame, savename: Optional[str] = None) -> None: - r""" + r""" Plots the position of PoCAs in the passive volume, as recorded using :class:`~tomopt.optimisation.callbacks.diagnostic_callbacks.ScatterRecord`. Arguments: @@ -270,7 +268,7 @@

Source code for tomopt.plotting.diagnostics

 
 
 
[docs]def plot_hit_density(hit_df: pd.DataFrame, savename: Optional[str] = None) -> None: - r""" + r""" Plots the position of muon hits in the detectors, as recorded using :class:`~tomopt.optimisation.callbacks.diagnostic_callbacks.HitRecord`. Arguments: @@ -324,9 +322,6 @@

Source code for tomopt.plotting.diagnostics

      
        
          
-         
-         
-         
          
          
      
diff --git a/docs/_build/html/_modules/tomopt/plotting/predictions.html b/docs/_build/html/_modules/tomopt/plotting/predictions.html
index 4bf9d004..e4a10c31 100644
--- a/docs/_build/html/_modules/tomopt/plotting/predictions.html
+++ b/docs/_build/html/_modules/tomopt/plotting/predictions.html
@@ -14,8 +14,6 @@
 
   
   
-    
-  
   
   
 
@@ -248,7 +246,7 @@ 

Source code for tomopt.plotting.predictions

 
 
 
[docs]def plot_pred_true_x0(pred: np.ndarray, true: np.ndarray, savename: Optional[str] = None) -> None: - r""" + r""" Plots the predicted voxelwise X0s compared to the true values of the X0s. 2D plots are produced in xy for layers in z in order of increasing z, i.e. the bottom most layer is the first to be plotted. TODO: revise this ordering to make it more intuitive @@ -337,9 +335,6 @@

Source code for tomopt.plotting.predictions

      
        
          
-         
-         
-         
          
          
      
diff --git a/docs/_build/html/_modules/tomopt/utils.html b/docs/_build/html/_modules/tomopt/utils.html
index 83f4ee01..81fa44e3 100644
--- a/docs/_build/html/_modules/tomopt/utils.html
+++ b/docs/_build/html/_modules/tomopt/utils.html
@@ -14,8 +14,6 @@
 
   
   
-    
-  
   
   
 
@@ -240,8 +238,7 @@ 

Source code for tomopt.utils

 
 import numpy as np
 import torch
-from functorch import vmap
-from torch import Tensor
+from torch import Tensor, vmap
 
 r"""
 Common utility functions
@@ -251,7 +248,7 @@ 

Source code for tomopt.utils

 
 
 
[docs]def jacobian(y: Tensor, x: Tensor, create_graph: bool = False, allow_unused: bool = True) -> Tensor: - r""" + r""" Computes the Jacobian (dy/dx) of y with respect to variables x. x and y can have multiple elements. If y has multiple elements then computation is vectorised via vmap. @@ -279,7 +276,7 @@

Source code for tomopt.utils

 
 
 
[docs]def class_to_x0preds(array: np.ndarray, id2x0: Dict[int, float]) -> np.ndarray: - r""" + r""" Converts array of classes to X0 predictions using the map defined in id2x0 Arguments: @@ -297,7 +294,7 @@

Source code for tomopt.utils

 
 
 
[docs]def x0targs_to_classtargs(array: np.ndarray, x02id: Dict[float, int]) -> np.ndarray: - r""" + r""" Converts array of float X0 targets to integer class IDs using the map defined in x02id. .. warning:: @@ -328,7 +325,7 @@

Source code for tomopt.utils

     weight_fracs: Optional[Union[np.ndarray, List[float]]] = None,
     volume_fracs: Optional[Union[np.ndarray, List[float]]] = None,
 ) -> Dict[str, float]:
-    r"""
+    r"""
     Computes the X0 of a mixture of (non-chemically bonded) materials,
     Based on https://cds.cern.ch/record/1279627/files/PH-EP-Tech-Note-2010-013.pdf
 
@@ -409,9 +406,6 @@ 

Source code for tomopt.utils

      
        
          
-         
-         
-         
          
          
      
diff --git a/docs/_build/html/_modules/tomopt/volume/heatmap.html b/docs/_build/html/_modules/tomopt/volume/heatmap.html
index f873335b..438cfa8e 100644
--- a/docs/_build/html/_modules/tomopt/volume/heatmap.html
+++ b/docs/_build/html/_modules/tomopt/volume/heatmap.html
@@ -14,8 +14,6 @@
 
   
   
-    
-  
   
   
 
@@ -380,7 +378,7 @@ 

Source code for tomopt.volume.heatmap

         return hits
[docs] def plot_map(self, bpixelate: bool = False, bsavefig: bool = False, filename: str = None) -> None: - """""" + """""" if not isinstance(self.xy_fix, Tensor): raise ValueError(f"{self.xy_fix} is not a Tensor for some reason.") # To appease MyPy @@ -443,7 +441,7 @@

Source code for tomopt.volume.heatmap

 
 
 class GMM(nn.Module):
-    """"""
+    """"""
 
     def __init__(
         self,
@@ -531,9 +529,6 @@ 

Source code for tomopt.volume.heatmap

      
        
          
-         
-         
-         
          
          
      
diff --git a/docs/_build/html/_modules/tomopt/volume/layer.html b/docs/_build/html/_modules/tomopt/volume/layer.html
index c973ef55..3f0c2d78 100644
--- a/docs/_build/html/_modules/tomopt/volume/layer.html
+++ b/docs/_build/html/_modules/tomopt/volume/layer.html
@@ -14,8 +14,6 @@
 
   
   
-    
-  
   
   
 
@@ -259,7 +257,7 @@ 

Source code for tomopt.volume.layer

 
 
 
[docs]class AbsLayer(nn.Module, metaclass=ABCMeta): - r""" + r""" Abstract base class for volume layers. The length and width (`lw`) is the spans of the layer in metres in x and y, and the layer begins at x=0, y=0. z indicates the position of the top of the layer, in meters, and size is the distance from the top of the layer to the bottom. @@ -287,7 +285,7 @@

Source code for tomopt.volume.layer

 
 
[docs] @abstractmethod def forward(self, mu: MuonBatch) -> None: - r""" + r""" Inheriting classes should override this method to implement the passage of the muons through the layer. Arguments: @@ -297,7 +295,7 @@

Source code for tomopt.volume.layer

         pass
[docs] def get_lw_z_size(self) -> Tuple[Tensor, Tensor, float]: - r""" + r""" Returns: The length and width of the layer in the x and y axes in metres, starting from (x,y)=(0,0), the z position of the top of layer in metres, and the voxel size in metres. """ @@ -305,7 +303,7 @@

Source code for tomopt.volume.layer

 
 
 
[docs]class PassiveLayer(AbsLayer): - r""" + r""" Default layer of containing passive material that scatters the muons. The length and width (`lw`) is the spans of the layer in metres in x and y, and the layer begins at x=0, y=0. z indicates the position of the top of the layer, in meters, and size is the distance from the top of the layer to the bottom. @@ -362,7 +360,7 @@

Source code for tomopt.volume.layer

         return f"""PassiveLayer located at z={self.z}"""
 
 
[docs] def load_rad_length(self, rad_length_func: RadLengthFunc) -> None: - r""" + r""" Loads a new X0 layout into the layer voxels. Arguments: @@ -372,7 +370,7 @@

Source code for tomopt.volume.layer

         self.rad_length = rad_length_func(z=self.z, lw=self.lw, size=self.size).to(self.device)
[docs] def forward(self, mu: MuonBatch) -> None: - r""" + r""" Propagates the muons through the layer to the bottom in a series of scattering steps. If the 'pdg' model is used, then the step size is the `step_sz` of the layer, as supplied during initialisation. If the 'pgeant' model is used, the the step size specified as part of the fitting of the scattering model. @@ -389,7 +387,7 @@

Source code for tomopt.volume.layer

         mu.propagate_dz(mu.z - (self.z - self.size))  # Ensure muons are at the bottom of the layer
[docs] def scatter_and_propagate(self, mu: MuonBatch, mask: Optional[Tensor] = None) -> None: - r""" + r""" Propagates the muons through (part of) the layer by the prespecified `step_sz`. If the layer is set to scatter muons (`rad_length` is not None), then the muons will also undergo scattering (changes in their trajectories and positions) according to the scatter model of the layer. @@ -439,7 +437,7 @@

Source code for tomopt.volume.layer

             mu.propagate_d(self.step_sz, mask)
[docs] def mu_abs2idx(self, mu: MuonBatch, mask: Optional[Tensor] = None) -> Tensor: - r""" + r""" Helper method to return the voxel indices in the layer that muons currently occupy. .. warning:: @@ -460,7 +458,7 @@

Source code for tomopt.volume.layer

         return self.abs2idx(xy)
[docs] def abs2idx(self, xy: Tensor) -> Tensor: - r""" + r""" Helper method to return the voxel indices in the layer of the supplied tensor of xy positions. .. warning:: @@ -477,7 +475,7 @@

Source code for tomopt.volume.layer

         return torch.floor(xy / self.size).long()
def _pgeant_scatter(self, *, x0: Tensor, theta: Tensor, theta_x: Tensor, theta_y: Tensor, mom: Tensor) -> Dict[str, Tensor]: - r""" + r""" Computes the scattering of the muons using the parameterised GEANT 4 model. Arguments: @@ -496,7 +494,7 @@

Source code for tomopt.volume.layer

     def _pdg_scatter(
         self, *, x0: Tensor, theta: Tensor, phi: Tensor, theta_x: Tensor, theta_y: Tensor, mom: Tensor, step_sz: Tensor, log_term: bool = True
     ) -> Dict[str, Tensor]:
-        r"""
+        r"""
         Computes the scattering of the muons using the PDG model https://pdg.lbl.gov/2019/reviews/rpp2018-rev-passage-particles-matter.pdf
         Scattering and displacements are generated in the muon reference frame.
         They are then converted in the volume reference frame using Euler rotation matrices.
@@ -583,7 +581,7 @@ 

Source code for tomopt.volume.layer

     def _compute_scattering(
         self, *, x0: Tensor, theta: Tensor, phi: Tensor, theta_x: Tensor, theta_y: Tensor, mom: Tensor, step_sz: Tensor
     ) -> Dict[str, Tensor]:
-        r"""
+        r"""
         Computes the scattering of the muons using the chosen model
 
         Arguments:
@@ -605,7 +603,7 @@ 

Source code for tomopt.volume.layer

 
 
 
[docs]class AbsDetectorLayer(AbsLayer, metaclass=ABCMeta): - r""" + r""" Abstract base class for layers designed to record muon positions (hits) using detectors. Inheriting classes should override a number methods to do with costs/budgets, and hit recording. @@ -652,7 +650,7 @@

Source code for tomopt.volume.layer

 
 
[docs] @abstractmethod def forward(self, mu: MuonBatch) -> None: - r""" + r""" Inheriting classes should override this method to implement the passage of the muons through the layer, and record muon positions (hits) according to the detector model. @@ -663,7 +661,7 @@

Source code for tomopt.volume.layer

 
 
[docs] @abstractmethod def get_cost(self) -> Tensor: - r""" + r""" Inheriting classes should override this method to return the total, current cost of the detector(s) in the layer. Returns: @@ -673,7 +671,7 @@

Source code for tomopt.volume.layer

         pass
[docs] def conform_detector(self) -> None: - r""" + r""" Optional method designed to ensure that the detector parameters lie within any require boundaries, etc. It will be called via the :class:`~tomopt.optimisation.wrapper.AbsVolumeWrapper` after any update to the detector layers, but by default does nothing. """ @@ -681,7 +679,7 @@

Source code for tomopt.volume.layer

         pass
[docs] def assign_budget(self, budget: Optional[Tensor]) -> None: - r""" + r""" Inheriting classes should override this method to correctly assign elements of an (_n_costs) tensor to the parts of the detector to which they relate. All ordering of the tensor is defined using the function, but proper optimisation of the budgets may require that the same ordering is used, or that it is deterministic. @@ -694,7 +692,7 @@

Source code for tomopt.volume.layer

 
 
 
[docs]class PanelDetectorLayer(AbsDetectorLayer): - r""" + r""" A detector layer class that uses multiple "panels" to record muon positions (hits). Currently, two "panel" types are available: :class:`~tomopt.volume.panel.DetectorPanel` and :class:`~tomopt.volume.heatmap.DetectorHeatMap` Each detector layer, however, should contain the same type of panel, as this is used to set the `type_label` of the layer. @@ -746,7 +744,7 @@

Source code for tomopt.volume.layer

 
 
[docs] @staticmethod def get_device(panels: nn.ModuleList) -> torch.device: - r""" + r""" Helper method to ensure that all panels are on the same device, and return that device. If not all the panels are on the same device, then an exception will be raised. @@ -765,7 +763,7 @@

Source code for tomopt.volume.layer

         return device
[docs] def get_panel_zorder(self) -> List[int]: - r""" + r""" Returns: The indices of the panels in order of decreasing z-position. """ @@ -773,7 +771,7 @@

Source code for tomopt.volume.layer

         return list(np.argsort([p.z.detach().cpu().item() for p in self.panels])[::-1])
[docs] def yield_zordered_panels(self) -> Union[Iterator[Tuple[int, DetectorPanel]], Iterator[Tuple[int, DetectorHeatMap]]]: - r""" + r""" Yields the index of the panel, and the panel, in order of decreasing z-position. Returns: @@ -784,7 +782,7 @@

Source code for tomopt.volume.layer

             yield i, self.panels[i]
[docs] def conform_detector(self) -> None: - r""" + r""" Loops through panels and calls their `clamp_params` method, to ensure that panels are located within the bounds of the detector layer. It will be called via the :class:`~tomopt.optimisation.wrapper.AbsVolumeWrapper` after any update to the detector layers. """ @@ -809,7 +807,7 @@

Source code for tomopt.volume.layer

                 )
[docs] def forward(self, mu: MuonBatch) -> None: - r""" + r""" Propagates muons to each detector panel, in order of decreasing z-position, and calls their `get_hits` method to record hits to the muon batch. After this, the muons will be propagated to the bottom of the detector layer. @@ -824,7 +822,7 @@

Source code for tomopt.volume.layer

         mu.propagate_dz(mu.z - (self.z - self.size))  # Move to bottom of layer
[docs] def get_cost(self) -> Tensor: - r""" + r""" Returns the total, current cost of the detector(s) in the layer, as computed by looping over the panels and summing the returned values of calls to their `get_cost` methods. @@ -838,7 +836,7 @@

Source code for tomopt.volume.layer

         return cost
[docs] def assign_budget(self, budget: Optional[Tensor]) -> None: - r""" + r""" Passes elements of an (_n_costs) tensor to each of the panels' `assign_budget` method. Panels are ordered by decreasing z-position, i.e. the zeroth budget element will relate always to the highest panel, rather than necessarily to the same panel through the optimisation process @@ -898,9 +896,6 @@

Source code for tomopt.volume.layer

      
        
          
-         
-         
-         
          
          
      
diff --git a/docs/_build/html/_modules/tomopt/volume/panel.html b/docs/_build/html/_modules/tomopt/volume/panel.html
index 35c23de7..b413d00e 100644
--- a/docs/_build/html/_modules/tomopt/volume/panel.html
+++ b/docs/_build/html/_modules/tomopt/volume/panel.html
@@ -14,8 +14,6 @@
 
   
   
-    
-  
   
   
 
@@ -255,7 +253,7 @@ 

Source code for tomopt.volume.panel

 
 
 
[docs]class DetectorPanel(nn.Module): - r""" + r""" Provides an infinitely thin, rectangular panel in the xy plane, centred at a learnable xyz position (metres, in absolute position in the volume frame), with a learnable width in x and y (`xy_span`). Whilst this class can be used manually, it is designed to be used by the :class:`~tomopt.volume.layer.PanelDetectorLayer` class. @@ -309,7 +307,7 @@

Source code for tomopt.volume.panel

         realistic_validation: bool = True,
         device: torch.device = DEVICE,
     ):
-        r"""
+        r"""
         Panel initialiser with user-supplied initial positions and widths.
         The resolution and efficiency remain fixed at the specified values.
         If intending to run in "fixed-budget" mode, then a budget can be specified here,
@@ -336,7 +334,7 @@ 

Source code for tomopt.volume.panel

         return f"""{self.__class__} located at xy={self.xy.data}, z={self.z.data}, and xy span {self.get_scaled_xy_span().data} with budget scale {self.budget_scale.data}"""
 
 
[docs] def get_scaled_xy_span(self) -> Tensor: - r""" + r""" Computes the effective size of the panel by rescaling based on the xy-span, cost per m^2, and budget. Returns: @@ -346,7 +344,7 @@

Source code for tomopt.volume.panel

         return self.xy_span * self.budget_scale
[docs] def get_xy_mask(self, xy: Tensor) -> Tensor: - r""" + r""" Computes which of the xy points lie inside the physical panel. Arguments: @@ -362,7 +360,7 @@

Source code for tomopt.volume.panel

         return (xy[:, 0] >= xy_low[0]) * (xy[:, 0] < xy_high[0]) * (xy[:, 1] >= xy_low[1]) * (xy[:, 1] < xy_high[1])
[docs] def get_gauss(self) -> torch.distributions.Normal: - r""" + r""" Returns: A Gaussian distribution, with 2 uncorrelated components corresponding to x and y, centred at the xy position of the panel, and sigma = panel span/4 """ @@ -370,10 +368,10 @@

Source code for tomopt.volume.panel

         try:
             return torch.distributions.Normal(self.xy, self.get_scaled_xy_span() / 4)  # We say that the panel widths corresponds to 2-sigma of the Gaussian
         except ValueError:
-            raise ValueError(f"Invalid parameters for Gaussian: loc={self.xy}, scale={self.get_scaled_xy_span() / 4}")
+ raise ValueError(f"Invalid parameters for Gaussian: loc={self.xy}, scale={self.get_scaled_xy_span() / 4}")
[docs] def get_resolution(self, xy: Tensor, mask: Optional[Tensor] = None) -> Tensor: - r""" + r""" Computes the xy resolutions of panel at the supplied list of xy points. If running in evaluation mode with `realistic_validation`, then these will be the full resolution of the panel for points inside the panel (indicated by the mask), and zero outside. @@ -403,7 +401,7 @@

Source code for tomopt.volume.panel

         return res
[docs] def get_efficiency(self, xy: Tensor, mask: Optional[Tensor] = None) -> Tensor: - r""" + r""" Computes the efficiency of panel at the supplied list of xy points. If running in evaluation mode with `realistic_validation`, then these will be the full efficiency of the panel for points inside the panel (indicated by the mask), and zero outside. @@ -433,7 +431,7 @@

Source code for tomopt.volume.panel

         return eff
[docs] def assign_budget(self, budget: Optional[Tensor] = None) -> None: - r""" + r""" Sets the budget for the panel. This is then used to set a multiplicative coefficient, `budget_scale`, based on the `m2_cost` which rescales the `xy_span` such that the area of the resulting panel matches the assigned budget. @@ -445,7 +443,7 @@

Source code for tomopt.volume.panel

             self.budget_scale = torch.sqrt(budget / (self.m2_cost * self.xy_span.prod()))
[docs] def get_hits(self, mu: MuonBatch) -> Dict[str, Tensor]: - r""" + r""" The main interaction method with the panel: returns hits for the supplied muons. Hits consist of: reco_xy: (muons,xy) tensor of reconstructed xy positions of muons included simulated resolution @@ -484,7 +482,7 @@

Source code for tomopt.volume.panel

         return hits
[docs] def get_cost(self) -> Tensor: - r""" + r""" Returns: current cost of the panel according to its area and m2_cost """ @@ -492,7 +490,7 @@

Source code for tomopt.volume.panel

         return self.m2_cost * self.get_scaled_xy_span().prod()
[docs] def clamp_params(self, xyz_low: Tuple[float, float, float], xyz_high: Tuple[float, float, float]) -> None: - r""" + r""" Ensures that the panel is centred within the supplied xyz range, and that the span of the panel is between xyz_high/20 and xyz_high*10. A small random number < 1e-3 is added/subtracted to the min/max z position of the panel, to ensure it doesn't overlap with other panels. @@ -523,7 +521,7 @@

Source code for tomopt.volume.panel

 
 
 
[docs]class SigmoidDetectorPanel(DetectorPanel): - r""" + r""" Provides an infinitely thin, rectangular panel in the xy plane, centred at a learnable xyz position (metres, in absolute position in the volume frame), with a learnable width in x and y (`xy_span`). Whilst this class can be used manually, it is designed to be used by the :class:`~tomopt.volume.layer.PanelDetectorLayer` class. @@ -598,7 +596,7 @@

Source code for tomopt.volume.panel

         self.smooth = smooth  # type: ignore
 
 
[docs] def sig_model(self, xy: Tensor) -> Tensor: - r""" + r""" Models fractional resolution and efficiency from a sigmoid-based model to provide a smooth and differentiable model of a physical detector-panel. Arguments: @@ -614,7 +612,7 @@

Source code for tomopt.volume.panel

         return coef / torch.sigmoid(1 / self.smooth)
[docs] def get_resolution(self, xy: Tensor, mask: Optional[Tensor] = None) -> Tensor: - r""" + r""" Computes the xy resolutions of panel at the supplied list of xy points. If running in evaluation mode with `realistic_validation`, then these will be the full resolution of the panel for points inside the panel (indicated by the mask), and zero outside. @@ -643,7 +641,7 @@

Source code for tomopt.volume.panel

         return res
[docs] def get_efficiency(self, xy: Tensor, mask: Optional[Tensor] = None) -> Tensor: - r""" + r""" Computes the efficiency of panel at the supplied list of xy points. If running in evaluation mode with `realistic_validation`, then these will be the full efficiency of the panel for points inside the panel (indicated by the mask), and zero outside. @@ -730,9 +728,6 @@

Source code for tomopt.volume.panel

      
        
          
-         
-         
-         
          
          
      
diff --git a/docs/_build/html/_modules/tomopt/volume/volume.html b/docs/_build/html/_modules/tomopt/volume/volume.html
index f44b6ac1..30ea676e 100644
--- a/docs/_build/html/_modules/tomopt/volume/volume.html
+++ b/docs/_build/html/_modules/tomopt/volume/volume.html
@@ -14,8 +14,6 @@
 
   
   
-    
-  
   
   
 
@@ -260,7 +258,7 @@ 

Source code for tomopt.volume.volume

 
 
 
[docs]class Volume(nn.Module): - r""" + r""" The `Volume` class is used to contain both passive layers and detector layers. It is designed to act as an interface to them for the convenience of e.g. :class:`~tomopt.optimisation.wrapper.volume_wrapper.VolumeWrapper`, and to allow new passive-volume layouts to be loaded. @@ -285,7 +283,7 @@

Source code for tomopt.volume.volume

     """
 
     def __init__(self, layers: nn.ModuleList, budget: Optional[float] = None):
-        r"""
+        r"""
         Initialises the volume with the set of layers (both detector and passive),
         which should be supplied as a `torch.nn.ModuleList` ordered in decreasing z position.
         Supplying a value for the optional budget, here, will prepare the volume to learn budget assignments to the detectors,
@@ -307,7 +305,7 @@ 

Source code for tomopt.volume.volume

         return self.layers[idx]
 
 
[docs] def get_passive_z_range(self) -> Tuple[Tensor, Tensor]: - r""" + r""" Returns: The z position of the bottom of the lowest passive layer, and the z position of the top of the highest passive layer. """ @@ -316,7 +314,7 @@

Source code for tomopt.volume.volume

         return ps[-1].z - self.passive_size, ps[0].z
[docs] def build_xyz_edges(self) -> Tensor: - r""" + r""" Computes the xyz locations of low-left-front edges of voxels in the passive layers of the volume. """ @@ -334,7 +332,7 @@

Source code for tomopt.volume.volume

         return torch.tensor(bounds.reshape(3, -1).transpose(-1, -2), dtype=torch.float32, device=self.device)
[docs] def get_detectors(self) -> List[AbsDetectorLayer]: - r""" + r""" Returns: A list of all :class:`~tomopt.volume.layer.AbsDetectorLayer` s in the volume, in the order of `layers` (normally decreasing z position) """ @@ -342,7 +340,7 @@

Source code for tomopt.volume.volume

         return [l for l in self.layers if isinstance(l, AbsDetectorLayer)]
[docs] def get_passives(self) -> List[PassiveLayer]: - r""" + r""" Returns: A list of all :class:`~tomopt.volume.layer.PassiveLayer` s in the volume, in the order of `layers` (normally decreasing z position) """ @@ -350,7 +348,7 @@

Source code for tomopt.volume.volume

         return [l for l in self.layers if isinstance(l, PassiveLayer)]
[docs] def get_rad_cube(self) -> Tensor: - r""" + r""" Returns: zxy tensor of the values stored in the voxels of the passive volume, with the lowest layer being found in the zeroth z index position. """ @@ -365,7 +363,7 @@

Source code for tomopt.volume.volume

             raise AttributeError("None of volume layers have a non-None rad_length attribute")
[docs] def lookup_passive_xyz_coords(self, xyz: Tensor) -> Tensor: - r""" + r""" Looks up the voxel indices of the supplied list of absolute positions in the volume frame .. warning:: @@ -389,7 +387,7 @@

Source code for tomopt.volume.volume

         return torch.floor(xyz / self.passive_size).long()
[docs] def load_rad_length(self, rad_length_func: RadLengthFunc, target: Optional[Tensor] = None) -> None: - r""" + r""" Loads a new passive-volume configuration. Optionally, a "target" for the configuration may also be supplied. This could be e.g. the class ID of the passive-volume configuration which is currently loaded. @@ -405,7 +403,7 @@

Source code for tomopt.volume.volume

             p.load_rad_length(rad_length_func)
[docs] def assign_budget(self) -> None: - r""" + r""" Distributed the total budget for the detector system amongst the various sub-detectors. When assigning budgets to layers, the budget weights are softmax-normalised to one, and multiplied by the total budget. Slices of these budgets are then passed to the layers, with the length of the slices being taken from `_n_layer_costs`. @@ -422,7 +420,7 @@

Source code for tomopt.volume.volume

                     layer_idx += 1
[docs] def forward(self, mu: MuonBatch) -> None: - r""" + r""" Propagates muons through each layer in turn. Prior to propagating muons, the :meth:`~tomopt.volume.volume.Volume.assign_budget` method is called. @@ -437,7 +435,7 @@

Source code for tomopt.volume.volume

             mu.snapshot_xyz()
[docs] def get_cost(self) -> Tensor: - r""" + r""" Returns: The total, current cost of the layers in the volume, or the assigned budget for the volume (these two values should be the same but, the actual cost won't be evaluated explicitly) @@ -458,7 +456,7 @@

Source code for tomopt.volume.volume

         return cost
[docs] def draw(self, *, xlim: Tuple[float, float], ylim: Tuple[float, float], zlim: Tuple[float, float]) -> None: - r""" + r""" Draws the layers/panels pertaining to the volume. When using this in a jupyter notebook, use "%matplotlib notebook" to have an interactive plot that you can rotate. @@ -556,7 +554,7 @@

Source code for tomopt.volume.volume

         plt.show()
def _configure_budget(self) -> None: - r""" + r""" Creates a list of learnable parameters, which acts as the fractional assignment of the total budget to various parts of the detectors. The `budget_weights` contains all these assignments with no explicit hierarchy. @@ -584,7 +582,7 @@

Source code for tomopt.volume.volume

         return device
 
     def _check_passives(self) -> None:
-        r"""
+        r"""
         Ensures that all :class:`~tomopt.volume.layer.PassiveLayer` s have the same sizes
         """
 
@@ -601,7 +599,7 @@ 

Source code for tomopt.volume.volume

 
     @property
     def lw(self) -> Tensor:
-        r"""
+        r"""
         Returns:
             The length and width of the passive volume
         """
@@ -610,7 +608,7 @@ 

Source code for tomopt.volume.volume

 
     @property
     def passive_size(self) -> float:
-        r"""
+        r"""
         Returns:
             The size of voxels in the passive volume
         """
@@ -619,7 +617,7 @@ 

Source code for tomopt.volume.volume

 
     @property
     def h(self) -> Tensor:
-        r"""
+        r"""
         Returns:
             The height of the volume (including both passive and detector layers), as computed from the z position of the zeroth layer.
         """
@@ -628,7 +626,7 @@ 

Source code for tomopt.volume.volume

 
     @property
     def xyz_edges(self) -> Tensor:
-        r"""
+        r"""
         xyz locations of low-left-front edges of voxels in the passive layers of the volume.
         """
 
@@ -638,7 +636,7 @@ 

Source code for tomopt.volume.volume

 
     @property
     def xyz_centres(self) -> Tensor:
-        r"""
+        r"""
         xyz locations of the centres of voxels in the passive layers of the volume.
         """
 
@@ -652,7 +650,7 @@ 

Source code for tomopt.volume.volume

 
     @property
     def target(self) -> Optional[Tensor]:
-        r"""
+        r"""
         Returns:
             The "target" value of the volume. This could be e.g. the class ID of the passive-volume configuration which is currently loaded.
             See e.g. :class:`~tomopt.optimisation.loss.VolumeClassLoss`.
@@ -705,9 +703,6 @@ 

Source code for tomopt.volume.volume

      
        
          
-         
-         
-         
          
          
      
diff --git a/docs/_build/html/_sources/index.rst.txt b/docs/_build/html/_sources/index.rst.txt
index 98545939..978ce3c2 100644
--- a/docs/_build/html/_sources/index.rst.txt
+++ b/docs/_build/html/_sources/index.rst.txt
@@ -3,6 +3,8 @@
 TomOpt: Differential Muon Tomography Optimisation
 ===================================================
 
+.. mdinclude:: introduction.md
+
 Package overview
 ----------------------------------------------------
 
diff --git a/docs/_build/html/_sources/introduction.md.txt b/docs/_build/html/_sources/introduction.md.txt
new file mode 100644
index 00000000..0930cac8
--- /dev/null
+++ b/docs/_build/html/_sources/introduction.md.txt
@@ -0,0 +1,23 @@
+This repo provides a library for the differential optimisation of scattering muon tomography systems. For an overview, please read our first publication [here](https://arxiv.org/abs/2309.14027).
+
+As a disclaimer, this is a library designed to be extended by users for their specific tasks: e.g. passive volume definition, inference methods, and loss functions. Additionally, optimisation in TomOpt can be unstable, and requires careful tuning by users. This is to say that it is not a polished product for the general public, but rather fellow researchers in the field of optimisation and muon tomography.
+
+If you are interested in using this library seriously, please contact us;  we would love to here if you have a specific use-case you wish to work on.
+
+
+## Overview
+
+The TomOpt library is designed to optimise the design of a muon tomography system. The detector system is defined by a set of parameters, which are used to define the geometry of the detectors. The optimisation is performed by minimising a loss function, which is defined by the user. The loss function is evaluated by simulating the muon scattering process through the detector system and passive volumes. The information recorded by the detectors is then passed through an inference system to arrive at a set of task-specific parameters. These are then compared to the ground truth, and the loss is calculated. The gradient of the loss with respect to the detector parameters is then used to update the detector parameters.
+
+The TomOpt library is designed to be modular, and to allow for the easy addition of new inference systems, loss functions, and passive volume definitions. The library is also designed to be easily extensible to new optimisation algorithms, and to allow for the easy addition of new constraints on the detector parameters.
+
+TomOpt consists of several submodules:
+
+- benchmarks: and ongoing collection of concrete implementations and task-specific extensions that are used to test the library on real-world problems.
+- inference: provides classes that infer muon-trajectories from detector data, and infer properties of passive volumes from muon-trajectories.
+- muon: provides classes for handling muon batches, and generating muons from literature flux-distributions
+- optimisation: provides classes for handling the optimisation of detector parameters, and an extensive callback system to modify the optimisation process.
+- plotting: various plotting utilities for visualising the detector system, the optimisation process, and results
+- volume: contains classes for defining passive volumes and detector systems
+- core: core objects used by all parts of the code
+- utils: various utilities used throughout the codebase
\ No newline at end of file
diff --git a/docs/_build/html/_static/_sphinx_javascript_frameworks_compat.js b/docs/_build/html/_static/_sphinx_javascript_frameworks_compat.js
index 8549469d..81415803 100644
--- a/docs/_build/html/_static/_sphinx_javascript_frameworks_compat.js
+++ b/docs/_build/html/_static/_sphinx_javascript_frameworks_compat.js
@@ -1,20 +1,9 @@
-/*
- * _sphinx_javascript_frameworks_compat.js
- * ~~~~~~~~~~
- *
- * Compatability shim for jQuery and underscores.js.
- *
- * WILL BE REMOVED IN Sphinx 6.0
- * xref RemovedInSphinx60Warning
+/* Compatability shim for jQuery and underscores.js.
  *
+ * Copyright Sphinx contributors
+ * Released under the two clause BSD licence
  */
 
-/**
- * select a different prefix for underscore
- */
-$u = _.noConflict();
-
-
 /**
  * small helper function to urldecode strings
  *
diff --git a/docs/_build/html/_static/basic.css b/docs/_build/html/_static/basic.css
index 4e9a9f1f..7577acb1 100644
--- a/docs/_build/html/_static/basic.css
+++ b/docs/_build/html/_static/basic.css
@@ -4,7 +4,7 @@
  *
  * Sphinx stylesheet -- basic theme.
  *
- * :copyright: Copyright 2007-2022 by the Sphinx team, see AUTHORS.
+ * :copyright: Copyright 2007-2023 by the Sphinx team, see AUTHORS.
  * :license: BSD, see LICENSE for details.
  *
  */
@@ -324,6 +324,7 @@ aside.sidebar {
 p.sidebar-title {
     font-weight: bold;
 }
+
 nav.contents,
 aside.topic,
 div.admonition, div.topic, blockquote {
@@ -331,6 +332,7 @@ div.admonition, div.topic, blockquote {
 }
 
 /* -- topics ---------------------------------------------------------------- */
+
 nav.contents,
 aside.topic,
 div.topic {
@@ -606,6 +608,7 @@ ol.simple p,
 ul.simple p {
     margin-bottom: 0;
 }
+
 aside.footnote > span,
 div.citation > span {
     float: left;
diff --git a/docs/_build/html/_static/doctools.js b/docs/_build/html/_static/doctools.js
index 527b876c..d06a71d7 100644
--- a/docs/_build/html/_static/doctools.js
+++ b/docs/_build/html/_static/doctools.js
@@ -4,7 +4,7 @@
  *
  * Base JavaScript utilities for all Sphinx HTML documentation.
  *
- * :copyright: Copyright 2007-2022 by the Sphinx team, see AUTHORS.
+ * :copyright: Copyright 2007-2023 by the Sphinx team, see AUTHORS.
  * :license: BSD, see LICENSE for details.
  *
  */
diff --git a/docs/_build/html/_static/language_data.js b/docs/_build/html/_static/language_data.js
index 2e22b06a..250f5665 100644
--- a/docs/_build/html/_static/language_data.js
+++ b/docs/_build/html/_static/language_data.js
@@ -5,7 +5,7 @@
  * This script contains the language-specific data used by searchtools.js,
  * namely the list of stopwords, stemmer, scorer and splitter.
  *
- * :copyright: Copyright 2007-2022 by the Sphinx team, see AUTHORS.
+ * :copyright: Copyright 2007-2023 by the Sphinx team, see AUTHORS.
  * :license: BSD, see LICENSE for details.
  *
  */
diff --git a/docs/_build/html/_static/pygments.css b/docs/_build/html/_static/pygments.css
index 08bec689..84ab3030 100644
--- a/docs/_build/html/_static/pygments.css
+++ b/docs/_build/html/_static/pygments.css
@@ -17,6 +17,7 @@ span.linenos.special { color: #000000; background-color: #ffffc0; padding-left:
 .highlight .cs { color: #3D7B7B; font-style: italic } /* Comment.Special */
 .highlight .gd { color: #A00000 } /* Generic.Deleted */
 .highlight .ge { font-style: italic } /* Generic.Emph */
+.highlight .ges { font-weight: bold; font-style: italic } /* Generic.EmphStrong */
 .highlight .gr { color: #E40000 } /* Generic.Error */
 .highlight .gh { color: #000080; font-weight: bold } /* Generic.Heading */
 .highlight .gi { color: #008400 } /* Generic.Inserted */
diff --git a/docs/_build/html/_static/searchtools.js b/docs/_build/html/_static/searchtools.js
index e89e34d4..97d56a74 100644
--- a/docs/_build/html/_static/searchtools.js
+++ b/docs/_build/html/_static/searchtools.js
@@ -4,7 +4,7 @@
  *
  * Sphinx JavaScript utilities for the full-text search.
  *
- * :copyright: Copyright 2007-2022 by the Sphinx team, see AUTHORS.
+ * :copyright: Copyright 2007-2023 by the Sphinx team, see AUTHORS.
  * :license: BSD, see LICENSE for details.
  *
  */
diff --git a/docs/_build/html/genindex.html b/docs/_build/html/genindex.html
index fd7a44cc..83d41489 100644
--- a/docs/_build/html/genindex.html
+++ b/docs/_build/html/genindex.html
@@ -14,8 +14,6 @@
 
   
   
-    
-  
   
   
 
@@ -153,7 +151,7 @@
             
               
@@ -1019,6 +1017,8 @@ 

O

  • (tomopt.optimisation.callbacks.detector_callbacks.PanelUpdateLimiter method)
  • + + - + +
    • tomopt.optimisation.callbacks.detector_callbacks @@ -1493,8 +1465,6 @@

      T

    • module
    - -
    • tomopt.optimisation.callbacks.heatmap_gif @@ -1640,40 +1610,6 @@

      T

    • track_start_out (tomopt.inference.scattering.ScatterBatch property)
    • -
    • training (tomopt.benchmarks.ladle_furnace.loss.LadleFurnaceIntClassLoss attribute) - -
    • trn_passives (tomopt.optimisation.wrapper.volume_wrapper.FitParams attribute)
    • tst_passives (tomopt.optimisation.wrapper.volume_wrapper.FitParams attribute) @@ -1874,9 +1810,6 @@

      Z

      - - - diff --git a/docs/_build/html/index.html b/docs/_build/html/index.html index cae08993..a06a9208 100644 --- a/docs/_build/html/index.html +++ b/docs/_build/html/index.html @@ -15,8 +15,6 @@ - - @@ -155,7 +153,7 @@ @@ -246,12 +244,31 @@

      TomOpt: Differential Muon Tomography Optimisation

      +

      This repo provides a library for the differential optimisation of scattering muon tomography systems. For an overview, please read our first publication here.

      +

      As a disclaimer, this is a library designed to be extended by users for their specific tasks: e.g. passive volume definition, inference methods, and loss functions. Additionally, optimisation in TomOpt can be unstable, and requires careful tuning by users. This is to say that it is not a polished product for the general public, but rather fellow researchers in the field of optimisation and muon tomography.

      +

      If you are interested in using this library seriously, please contact us; we would love to here if you have a specific use-case you wish to work on.

      +
      +

      Overview

      +

      The TomOpt library is designed to optimise the design of a muon tomography system. The detector system is defined by a set of parameters, which are used to define the geometry of the detectors. The optimisation is performed by minimising a loss function, which is defined by the user. The loss function is evaluated by simulating the muon scattering process through the detector system and passive volumes. The information recorded by the detectors is then passed through an inference system to arrive at a set of task-specific parameters. These are then compared to the ground truth, and the loss is calculated. The gradient of the loss with respect to the detector parameters is then used to update the detector parameters.

      +

      The TomOpt library is designed to be modular, and to allow for the easy addition of new inference systems, loss functions, and passive volume definitions. The library is also designed to be easily extensible to new optimisation algorithms, and to allow for the easy addition of new constraints on the detector parameters.

      +

      TomOpt consists of several submodules:

      +
        +
      • benchmarks: and ongoing collection of concrete implementations and task-specific extensions that are used to test the library on real-world problems.

      • +
      • inference: provides classes that infer muon-trajectories from detector data, and infer properties of passive volumes from muon-trajectories.

      • +
      • muon: provides classes for handling muon batches, and generating muons from literature flux-distributions

      • +
      • optimisation: provides classes for handling the optimisation of detector parameters, and an extensive callback system to modify the optimisation process.

      • +
      • plotting: various plotting utilities for visualising the detector system, the optimisation process, and results

      • +
      • volume: contains classes for defining passive volumes and detector systems

      • +
      • core: core objects used by all parts of the code

      • +
      • utils: various utilities used throughout the codebase

      • +
      +

      Package overview

      @@ -317,6 +334,7 @@

      Index
      • TomOpt: Differential Muon Tomography Optimisation @@ -338,9 +356,6 @@

        Index - - - diff --git a/docs/_build/html/installation.html b/docs/_build/html/installation.html index b4d3550a..8675e8e7 100644 --- a/docs/_build/html/installation.html +++ b/docs/_build/html/installation.html @@ -15,8 +15,6 @@ - - @@ -156,7 +154,7 @@ @@ -242,59 +240,82 @@

        Installation

        -

        N.B. Whilst the repo is private, you will need to make sure that you have registered the public ssh key of your computer/instance with your GitHub profile. Follow these instructions to check for existing keys or these to generate a new key. After that follow this to associate the key.

        -

        Checkout package:

        -
        git clone git@github.com:GilesStrong/mode_muon_tomography.git
        -cd mode_muon_tomography
        +
        +

        As a dependency

        +

        For dependency usage, tomopt can be installed via e.g.

        +
        pip install tomopt
         
        -

        N.B. For GPU usage, it is recommended to manually setup conda and install PyTorch according to system, e.g.:

        -
        conda activate root
        -conda install nb_conda_kernels
        -conda create -n tomopt python=3.8 pip ipykernel
        -conda activate tomopt
        -pip install torch==1.8.1+cu111 -f https://download.pytorch.org/whl/torch_stable.html
        -pip install -r requirements.txt
        +
        +
        +

        For development

        +

        Check out the repo locally:

        +
        git clone git@github.com:GilesStrong/tomopt.git
        +cd tomopt
         
        -

        Minimum python version is 3.8. Recommend creating a virtual environment, e.g. assuming your are using Anaconda/Miniconda (if installing conda for the first time, remember to restart the shell before attemting to use conda, and that by default conda writes the setup commands to .bashrc):

        -
        conda activate root
        -conda install nb_conda_kernels
        -conda env create -f environment.yml
        -conda activate tomopt
        +

        For development usage, we use ``poetry` <https://python-poetry.org/docs/#installing-with-the-official-installer>`_ to handle dependency installation. +Poetry can be installed via, e.g.

        +
        curl -sSL https://install.python-poetry.org | python3 -
        +poetry self update
         
        -

        Otherwise set up a suitable environment using your python distribution of choice using the contents of environment.yml. Remember to activate the correct environment each time, via e.g. conda activate tomopt.

        -

        Install package and dependencies

        -
        pip install -r requirements.txt
        -pip install -e .
        +

        and ensuring that poetry is available in your $PATH

        +

        TomOpt requires python >= 3.10. This can be installed via e.g. ``pyenv` <https://github.com/pyenv/pyenv>`_:

        +
        curl https://pyenv.run | bash
        +pyenv update
        +pyenv install 3.10
        +pyenv local 3.10
         
        -

        Install git-hooks:

        -
        pre-commit install
        +

        Install the dependencies:

        +
        poetry install
        +poetry self add poetry-plugin-export
        +poetry config warnings.export false
        +poetry run pre-commit install
         
        -
        -

        Windows usage

        -

        Apparently when using Windows, the environment must also be activated within ipython using:

        -
        python -m ipykernel install --user --name tomopt --display-name "Python (tomopt)"
        +

        Finally, make sure everything is working as expected by running the tests:

        +
        poetry run pytest tests
         
        +

        For those unfamiliar with poetry, basically just prepend commands with poetry run to use the stuff installed within the local environment. This local environment is basically a python virtual environment. To correctly set up the interpreter in your IDE, use poetry run which python to see the path to the correct python executable

        -
        -

        Testing

        -

        Testing is handled by pytest and is set up to run during pull requests. Tests can be manually ran locally via:

        -
        pytest tests/
        +
        +

        Examples

        +

        A few examples are included to introduce users and developers to the TomOpt library. These take the form of Jupyter notebooks. In examples/getting_started there are four ordered notebooks:

        +
          +
        • 00_Hello_World.ipynb aims to show the user the high-level classes in TomOpt and the general workflow.

        • +
        • 01_Indepth_tutorial_single_cycle.ipynb aims to show developers what is going on in a single update iteration.

        • +
        • 02_Indepth_tutotial_optimisation_and_callbacks.ipynb aims to show users and developers the workings of the callback system in TomOpt

        • +
        • 03_fixed_budget_mode.ipynb aims to show users and developers how to optimise such that the detector maintains a constant cost.

        • +
        +

        In examples/benchmarks there is a single notebook that covers the optimisation performed in our first publication, in which we optimised a detector to estimate the fill-height of a ladle furnace at a steel plant. As a disclaimer, this notebook may not fully reproduce our result, and is designed to be used in an interactive manner by experienced users.

        +
        +

        Running notebooks in a remote cluster

        +

        If you want to run notebooks on a remote cluster but access them on the browser of your local machine, you need to forward the notebook server from the cluster to your local machine.

        +

        On the cluster, run:

        +
        jupyter notebook --no-browser --port=8889
         
        -

        to run all tests, or, e.g.:

        -
        pytest tests/test_muon.py
        +

        On your local computer, you need to set up a forwarding that picks the flux of data from the cluster via a local port, and makes it available on another port as if the server was in the local machine:

        +
        ssh -N -f -L localhost:8888:localhost:8889 username@cluster_hostname
         
        +

        The layperson version of this command is: *take the flux of info from the port 8889 of cluster_hostname, logging in as username, get it inside the local machine via the port 8889, and make it available on the port 8888 as if the jupyter notebook server was running locally on the port 8888*

        +

        You can now point your browser to http://localhost:8888/tree (you will be asked to copy the server authentication token, which is the number that is shown by jupyter when you run the notebook on the server)

        +

        If there is an intermediate machine (e.g. a gateway) between the cluster and your local machine, you need to set up a similar port forwarding on the gateway machine. The crucial point is that the input port of each machine must be the output port of the machine before it in the chain. For instance:

        +
        jupyter notebook --no-browser --port=8889 # on the cluster
        +ssh -N -f -L localhost:8888:localhost:8889 username@cluster_hostname # on the gateway. Makes the notebook running on the cluster port 8889 available on the local port 8888
        +ssh -N -f -L localhost:8890:localhost:8888 username@gateway_hostname # on your local machine. Picks up the server available on 8888 of the gateway and makes it available on the local port 8890 (or any other number, e.g. 8888)
        +
        +
        +

        External repos

        +

        N.B. Most are not currently public

        • tomo_deepinfer (contact @GilesStrong for access) separately handles training and model definition of GNNs used for passive volume inference. Models are exported as JIT-traced scripts, and loaded here using the DeepVolumeInferer class. We still need to find a good way to host the trained models for easy download.

        • mode_muon_tomography_scattering (contact @GilesStrong for access) separately handles conversion of PGeant model from root to HDF5, and Geant validation data from csv to HDF5.

        • @@ -303,7 +324,7 @@

          External repos

          Authors

          -

          The TomOpt project, and its continued development and support, is the result of the combined work of many people, whose contributions are summarised in the author list

          +

          The TomOpt project, and its continued development and support, is the result of the combined work of many people, whose contributions are summarised in the author list

        @@ -346,10 +367,14 @@

        Authors @@ -368,9 +393,6 @@

        Authors - - - diff --git a/docs/_build/html/introduction.html b/docs/_build/html/introduction.html new file mode 100644 index 00000000..df5da965 --- /dev/null +++ b/docs/_build/html/introduction.html @@ -0,0 +1,502 @@ + + + + + + + + + + + + + Overview — TomOpt documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
        +
        +
        + + + + + +
        + +
        +
        + + + + + + + + + + + + +
        +
        +
        + + + + + + + + + + + + + + + + +
        + + + + +
        +
        + +
        + Shortcuts +
        +
        + +
        +
        + + + +
        + +
        +
        + +

        This repo provides a library for the differential optimisation of scattering muon tomography systems. For an overview, please read our first publication here.

        +

        As a disclaimer, this is a library designed to be extended by users for their specific tasks: e.g. passive volume definition, inference methods, and loss functions. Additionally, optimisation in TomOpt can be unstable, and requires careful tuning by users. This is to say that it is not a polished product for the general public, but rather fellow researchers in the field of optimisation and muon tomography.

        +

        If you are interested in using this library seriously, please contact us; we would love to here if you have a specific use-case you wish to work on.

        +
        +

        Overview

        +

        The TomOpt library is designed to optimise the design of a muon tomography system. The detector system is defined by a set of parameters, which are used to define the geometry of the detectors. The optimisation is performed by minimising a loss function, which is defined by the user. The loss function is evaluated by simulating the muon scattering process through the detector system and passive volumes. The information recorded by the detectors is then passed through an inference system to arrive at a set of task-specific parameters. These are then compared to the ground truth, and the loss is calculated. The gradient of the loss with respect to the detector parameters is then used to update the detector parameters.

        +

        The TomOpt library is designed to be modular, and to allow for the easy addition of new inference systems, loss functions, and passive volume definitions. The library is also designed to be easily extensible to new optimisation algorithms, and to allow for the easy addition of new constraints on the detector parameters.

        +

        TomOpt consists of several submodules:

        +
          +
        • benchmarks: and ongoing collection of concrete implementations and task-specific extensions that are used to test the library on real-world problems.

        • +
        • inference: provides classes that infer muon-trajectories from detector data, and infer properties of passive volumes from muon-trajectories.

        • +
        • muon: provides classes for handling muon batches, and generating muons from literature flux-distributions

        • +
        • optimisation: provides classes for handling the optimisation of detector parameters, and an extensive callback system to modify the optimisation process.

        • +
        • plotting: various plotting utilities for visualising the detector system, the optimisation process, and results

        • +
        • volume: contains classes for defining passive volumes and detector systems

        • +
        • core: core objects used by all parts of the code

        • +
        • utils: various utilities used throughout the codebase

        • +
        +
        + + +
        + +
        + + +
        +
        + +
        +
        +
        + + +
        +
        +
        +
        +
        + + + + + + + + + + + + + + + + + + + + + + + +
        +
        +
        +
        +

        Docs

        +

        Access comprehensive developer and user documentation for TomOpt

        + View Docs +
        + +
        +

        Tutorials

        +

        Get tutorials for beginner and advanced researchers demonstrating many of the features of TomOpt

        + View Tutorials +
        + + +
        +
        +
        + + + + + + + + + +
        +
        +
        +
        + + +
        +
        +
        + + +
        + + + + + + + + \ No newline at end of file diff --git a/docs/_build/html/modules.html b/docs/_build/html/modules.html index 268c35a2..8b2ebcfa 100644 --- a/docs/_build/html/modules.html +++ b/docs/_build/html/modules.html @@ -15,8 +15,6 @@ - - @@ -294,9 +292,6 @@

        tomopt - - - diff --git a/docs/_build/html/objects.inv b/docs/_build/html/objects.inv index 4652fe3c..2697fcb3 100644 Binary files a/docs/_build/html/objects.inv and b/docs/_build/html/objects.inv differ diff --git a/docs/_build/html/py-modindex.html b/docs/_build/html/py-modindex.html index 655a7c57..fdde1ea5 100644 --- a/docs/_build/html/py-modindex.html +++ b/docs/_build/html/py-modindex.html @@ -14,8 +14,6 @@ - - @@ -156,7 +154,7 @@ @@ -494,9 +492,6 @@

        Python Module Index

        - - - diff --git a/docs/_build/html/search.html b/docs/_build/html/search.html index a96a83b7..145f1a25 100644 --- a/docs/_build/html/search.html +++ b/docs/_build/html/search.html @@ -14,8 +14,6 @@ - - @@ -153,7 +151,7 @@ @@ -292,9 +290,6 @@ - - - diff --git a/docs/_build/html/searchindex.js b/docs/_build/html/searchindex.js index 95cd6a14..144dc16d 100644 --- a/docs/_build/html/searchindex.js +++ b/docs/_build/html/searchindex.js @@ -1 +1 @@ -Search.setIndex({"docnames": ["index", "installation", "modules", "tomopt", "tomopt.benchmarks", "tomopt.benchmarks.ladle_furnace", "tomopt.benchmarks.small_walls", "tomopt.benchmarks.u_lorry", "tomopt.inference", "tomopt.muon", "tomopt.optimisation", "tomopt.optimisation.callbacks", "tomopt.optimisation.data", "tomopt.optimisation.loss", "tomopt.optimisation.wrapper", "tomopt.plotting", "tomopt.volume"], "filenames": ["index.rst", "installation.rst", "modules.rst", "tomopt.rst", "tomopt.benchmarks.rst", "tomopt.benchmarks.ladle_furnace.rst", "tomopt.benchmarks.small_walls.rst", "tomopt.benchmarks.u_lorry.rst", "tomopt.inference.rst", "tomopt.muon.rst", "tomopt.optimisation.rst", "tomopt.optimisation.callbacks.rst", "tomopt.optimisation.data.rst", "tomopt.optimisation.loss.rst", "tomopt.optimisation.wrapper.rst", "tomopt.plotting.rst", "tomopt.volume.rst"], "titles": ["TomOpt: Differential Muon Tomography Optimisation", "Installation", "tomopt", "tomopt package", "tomopt.benchmarks package", "tomopt.benchmarks.ladle_furnace package", "tomopt.benchmarks.small_walls package", "tomopt.benchmarks.u_lorry package", "tomopt.inference package", "tomopt.muon package", "tomopt.optimisation package", "tomopt.optimisation.callbacks package", "tomopt.optimisation.data package", "tomopt.optimisation.loss package", "tomopt.optimisation.wrapper package", "tomopt.plotting package", "tomopt.volume package"], "terms": {"instal": 0, "test": [0, 5, 7, 8, 11, 13], "extern": 0, "repo": 0, "author": 0, "volum": [0, 1, 3, 7, 9, 11, 12, 13, 14, 15], "infer": [0, 1, 3, 9, 11, 13, 14, 16], "plot": [0, 3, 8, 11, 16], "benchmark": [0, 3], "muon": [3, 5, 8, 11, 14, 15, 16], "optimis": [3, 16], "class_to_x0pr": 3, "arrai": [3, 9, 11, 15], "id2x0": 3, "sourc": [3, 5, 6, 7, 8, 9, 11, 12, 13, 14, 15, 16], "convert": [3, 5, 8, 13], "class": [1, 3, 5, 6, 7, 8, 9, 11, 12, 13, 14, 16], "x0": [3, 5, 8, 11, 12, 13, 14, 15, 16], "predict": [3, 5, 8, 11, 12, 13, 14], "us": [1, 3, 8, 9, 11, 12, 13, 14, 15, 16], "map": [3, 9, 11, 13, 14], "defin": [3, 9, 11, 16], "paramet": [3, 5, 8, 9, 11, 12, 13, 14, 15, 16], "ndarrai": [3, 9, 11, 14, 15], "integ": [3, 8, 13], "id": [3, 11, 13, 16], "dict": [3, 8, 9, 11, 13, 14, 16], "int": [3, 5, 8, 9, 11, 12, 13, 14, 16], "float": [3, 8, 9, 11, 12, 13, 14, 16], "valu": [3, 8, 9, 11, 12, 13, 15, 16], "return": [3, 5, 6, 8, 9, 11, 12, 13, 14, 15, 16], "type": [3, 5, 6, 8, 9, 11, 12, 13, 14, 15, 16], "new": [1, 3, 5, 8, 9, 11, 12, 14, 16], "jacobian": 3, "y": [3, 5, 8, 9, 15, 16], "x": [3, 5, 8, 9, 15, 16], "create_graph": 3, "fals": [3, 5, 9, 11, 13, 14, 16], "allow_unus": 3, "true": [3, 5, 8, 9, 11, 12, 13, 14, 15, 16], "comput": [1, 3, 5, 8, 9, 11, 13, 14, 16], "dy": 3, "dx": 3, "respect": 3, "variabl": [3, 8, 9, 14], "can": [1, 3, 8, 9, 11, 12, 13, 14, 16], "have": [1, 3, 5, 8, 9, 11, 12, 13, 14, 16], "multipl": [3, 8, 11, 13, 14, 16], "element": [3, 9, 16], "If": [3, 8, 9, 11, 12, 13, 14, 16], "ha": [3, 5, 8, 9, 11, 16], "i": [1, 3, 5, 8, 9, 11, 12, 13, 14, 15, 16], "vectoris": 3, "via": [1, 3, 5, 8, 9, 11, 13, 14, 16], "vmap": 3, "tensor": [3, 5, 6, 8, 9, 11, 12, 13, 14, 16], "differenti": [3, 8, 11, 16], "depend": [1, 3, 13], "bool": [3, 5, 8, 11, 12, 13, 14, 16], "graph": 3, "deriv": 3, "construct": 3, "allow": [3, 8, 11, 16], "higher": [3, 8, 11, 13, 16], "order": [3, 8, 11, 12, 13, 14, 15, 16], "product": 3, "default": [1, 3, 9, 11, 13, 14, 16], "specifi": [3, 9, 11, 12, 13, 14, 16], "input": 3, "were": [3, 8, 9], "when": [1, 3, 5, 8, 11, 12, 13, 14, 16], "output": [3, 13], "therefor": [3, 16], "grad": 3, "alwai": [3, 8, 12, 16], "shape": [3, 9, 13], "x0_from_mixtur": 3, "densiti": 3, "weight_frac": 3, "none": [3, 5, 8, 9, 11, 12, 13, 14, 15, 16], "volume_frac": 3, "mixtur": 3, "non": [3, 16], "chemic": 3, "bond": 3, "materi": [3, 8, 11, 12, 13, 16], "base": [3, 5, 6, 7, 8, 9, 11, 12, 13, 14, 16], "http": [1, 3, 8, 11, 16], "cd": [1, 3], "cern": 3, "ch": 3, "record": [3, 8, 9, 11, 14, 15, 16], "1279627": 3, "file": [3, 11, 14], "ph": 3, "ep": 3, "tech": 3, "note": 3, "2010": 3, "013": 3, "pdf": [3, 8, 16], "union": [3, 9, 11, 12, 13, 14, 16], "list": [1, 3, 9, 11, 12, 14, 16], "metr": [3, 8, 9, 11, 16], "kg": 3, "m": [1, 3, 5, 9, 16], "3": [1, 3, 8, 9, 13, 16], "rel": [3, 8, 13, 16], "amount": [3, 8, 9, 11], "each": [1, 3, 8, 9, 11, 13, 14, 16], "weight": [3, 5, 8, 13, 16], "The": [1, 3, 8, 11, 12, 13, 14, 16], "x0targs_to_classtarg": 3, "x02id": [3, 11, 13], "target": [3, 8, 11, 12, 13, 14, 16], "To": [3, 8], "account": [3, 8, 11, 14, 16], "point": [3, 8, 9, 11, 14, 16], "precis": [3, 8, 9, 11, 14, 16], "ar": [1, 3, 8, 9, 11, 12, 13, 14, 15, 16], "which": [3, 8, 9, 11, 12, 13, 14, 16], "closest": 3, "kei": [1, 3, 9, 11], "thi": [1, 3, 5, 8, 9, 11, 12, 13, 15, 16], "mean": [3, 8, 11, 13, 14, 16], "method": [3, 5, 8, 9, 11, 12, 13, 14, 16], "cannot": [3, 8], "detect": [3, 11, 16], "miss": 3, "from": [1, 3, 8, 9, 11, 12, 13, 14, 16], "even": [3, 11], "isn": 3, "t": [3, 8, 9, 16], "modifi": [3, 9], "place": [3, 8, 9, 11, 16], "genscatterbatch": 8, "mu": [8, 11, 14, 16], "scatterbatch": [5, 8, 14], "inform": [8, 9, 13, 14, 16], "hit": [5, 8, 9, 11, 15, 16], "incom": [8, 11, 16], "outgo": 8, "trajectori": [8, 9, 14, 16], "fit": [5, 8, 11, 14, 16], "intend": [8, 16], "diagnost": 8, "purpos": 8, "onli": [5, 7, 8, 9, 11, 12, 14, 16], "track": [8, 11], "carri": 8, "gradient": [8, 11, 14], "w": [8, 9, 16], "r": [1, 8, 9, 16], "detector": [5, 8, 9, 11, 13, 14, 15, 16], "except": [8, 9, 16], "z": [5, 8, 9, 11, 12, 14, 15, 16], "posit": [8, 9, 11, 12, 14, 15, 16], "linear": 8, "perform": [8, 13, 16], "separ": [1, 8], "all": [1, 8, 9, 11, 12, 13, 14, 16], "associ": [1, 8, 9, 11, 14], "layer": [8, 9, 11, 12, 13, 14, 15], "group": [8, 11, 16], "indic": [8, 11, 16], "po": [8, 9, 16], "attribut": [8, 9, 11, 16], "current": [8, 9, 11, 13, 16], "expect": [8, 11, 13, 16], "abov": [5, 8, 9, 16], "passiv": [1, 5, 8, 9, 11, 13, 14, 15, 16], "those": [8, 9, 11, 16], "below": [5, 8, 9, 16], "an": [8, 11, 12, 13, 16], "analyt": 8, "likelihood": [8, 13], "minimis": 8, "uncertainti": [5, 8], "consid": [8, 11], "doe": [8, 9, 11, 16], "e": [1, 8, 9, 11, 13, 15, 16], "g": [1, 8, 9, 11, 13, 16], "third": 8, "set": [1, 8, 9, 11, 12, 13, 14, 16], "sinc": [8, 14, 16], "split": 8, "n_hits_abov": 8, "One": 8, "instanc": [1, 8, 16], "should": [5, 8, 9, 11, 12, 13, 14, 16], "creat": [1, 8, 9, 11], "muonbatch": [8, 9, 11, 14, 16], "As": [8, 11], "part": [8, 11, 16], "initialis": [8, 9, 11, 12, 14, 16], "filter": 8, "_filter_scatt": 8, "avoid": [8, 11], "nan": [8, 11, 16], "inf": 8, "result": [1, 8, 9, 16], "direct": [8, 9], "chang": [8, 9, 16], "mani": [1, 8, 9, 13], "requir": [1, 8, 9, 14, 16], "further": 8, "downstream": 8, "lazi": 8, "basi": 8, "memois": 8, "first": [1, 8, 11, 13, 15], "request": [1, 8, 14], "store": [8, 9, 14, 16], "case": [8, 13], "dtheta": [8, 9], "dphi": 8, "total": [5, 8, 11, 12, 13, 14, 16], "under": [8, 16], "assumpt": 8, "small": [8, 16], "angular": [8, 9], "necessari": [8, 14], "here": [1, 8, 11, 16], "loss": [8, 10, 11, 14], "undergo": [8, 16], "theta": [8, 9], "phi": [8, 9], "0": [5, 6, 7, 8, 9, 11, 14, 16], "pi": [8, 9], "neg": [5, 8, 9, 13], "becom": 8, "one": [8, 11, 13, 14, 16], "tell": 8, "whether": [8, 11, 13, 16], "instead": [8, 9, 11, 13, 16], "larg": [8, 9, 11, 13], "occur": [8, 14], "total_scatt": 8, "quadratur": 8, "sum": [8, 13, 16], "three": [8, 16], "both": [8, 12, 13, 14, 16], "hypothes": 8, "final": [5, 8, 11, 13], "chosen": 8, "hypothesi": 8, "been": [5, 8, 11], "found": [8, 11, 16], "good": [1, 8], "through": [8, 9, 11, 16], "travel": [8, 9], "_compute_track": [], "object": [8, 9, 11, 12, 14, 16], "effici": [5, 8, 9, 11, 16], "static": [5, 8, 9, 11, 16], "_compute_dtheta_dphi_scatt": [], "theta_in": 8, "phi_in": 8, "theta_out": 8, "phi_out": 8, "n": [1, 8, 9, 16], "1": [1, 5, 6, 8, 9, 11, 13, 14, 16], "angl": 9, "str": [8, 9, 11, 12, 13, 14, 15, 16], "dictionari": [8, 9, 11, 13, 14], "_compute_out_var_unc": [], "var": [], "due": [], "error": [11, 13], "propag": [9, 11, 16], "triangl": [], "matrix": [], "assum": [1, 5, 8, 13, 16], "zero": [11, 14, 16], "off": [9, 13], "diagon": [], "warn": [], "un": [], "correl": [], "probabl": [5, 8, 13, 16], "ok": [], "behaviour": [], "_compute_phi": [], "xy": [8, 9, 11, 12, 14, 15, 16], "compon": [11, 13, 16], "vector": 8, "_compute_scatt": [], "normal": [14, 16], "them": [11, 16], "extract": [], "handl": 1, "locat": [5, 8, 11, 14, 16], "adapt": 11, "misc": [], "3334866": [], "titl": [], "between": [8, 9, 11, 13, 16], "two": [5, 8, 16], "line": [], "brian": [], "math": [], "stackexchang": [], "com": 1, "user": [1, 8, 11, 14, 16], "72614": [], "howpublish": [], "mathemat": [], "stack": [9, 16], "exchang": [], "url": [], "q": [], "version": [1, 13], "2019": [8, 16], "08": [], "26": [], "eprint": [], "_compute_theta": [], "xyz": [5, 8, 9, 16], "_compute_theta_msc": [], "p": [8, 9, 11, 14], "cosin": [], "dot": [], "2": [8, 9, 11, 16], "accord": [1, 8, 9, 11, 14, 16], "resolut": [11, 16], "_compute_xyz_in": [], "level": [5, 8, 16], "top": [8, 16], "_compute_xyz_out": [], "bottom": [8, 11, 15, 16], "_cross_track": [], "option": [8, 9, 11, 12, 13, 14, 15, 16], "_dphi": [], "_dphi_unc": [], "_dtheta": [], "_dtheta_unc": [], "_dtheta_xi": [], "_dtheta_xy_unc": [], "_dxy": [], "_dxy_unc": [], "_extract_hit": [], "take": [11, 16], "combin": [1, 8, 11], "singl": [8, 9, 11, 12, 13, 14, 16], "might": [], "seem": [], "heavi": [], "hand": 8, "invalid": [], "extrem": 9, "spoil": [], "other": [11, 13, 14, 16], "remov": 9, "ani": [9, 11, 14, 16], "least": [5, 8, 9, 13], "high": [11, 13], "some": [11, 13, 16], "configur": [13, 14, 16], "tini": [], "best": [], "manual": [1, 8, 9, 16], "unneed": [], "gain": [], "increas": [11, 13, 15], "number": [5, 8, 9, 11, 12, 13, 14, 16], "avail": [11, 16], "criteria": [], "parallel": [], "far": 13, "its": [1, 5, 9, 11, 12, 13, 16], "1e10": [], "_gen_hit": [], "_hit_eff": [], "_hit_unc": [], "_phi_in": [], "_phi_in_unc": [], "_phi_out": [], "_phi_out_unc": [], "_poca_xyz": [], "_poca_xyz_unc": [], "_reco_hit": [], "_set_dtheta_dphi_scatt": [], "simultan": [], "done": [], "_theta_in": [], "_theta_in_unc": [], "_theta_out": [], "_theta_out_unc": [], "_theta_xy_in": [], "_theta_xy_in_unc": [], "_theta_xy_out": [], "_theta_xy_out_unc": [], "_total_scatt": [], "_total_scatter_unc": [], "_track_coef": [], "_track_in": [], "_track_out": [], "_track_start_in": [], "_track_start_out": [], "_xyz_in": [], "_xyz_in_unc": [], "_xyz_out": [], "_xyz_out_unc": [], "properti": [5, 8, 9, 16], "above_gen_hit": 8, "above_hit_eff": 8, "eff": [5, 6, 8, 16], "above_hit_unc": 8, "above_hit": 8, "below_gen_hit": 8, "below_hit_eff": 8, "below_hit_unc": 8, "below_hit": 8, "delta": 8, "dphi_unc": 8, "dtheta_unc": 8, "dtheta_xi": [8, 9], "theta_xi": [8, 9], "zx": 8, "zy": 8, "plane": [8, 9, 16], "dtheta_xy_unc": 8, "dxy": 8, "distanc": [8, 9, 16], "poca": [5, 8, 11, 15], "dxy_unc": 8, "gen_hit": 8, "get_muon_trajectori": 8, "unc": 8, "lw": [8, 16], "whilst": [1, 8, 11, 16], "No": 8, "maximis": 8, "length": [8, 11, 12, 16], "width": [8, 12, 16], "start": [8, 9, 11, 16], "initi": [8, 9, 11, 16], "vec": 8, "get_scatter_mask": 8, "boolean": [8, 9, 11, 16], "where": [8, 9, 11, 12, 13, 14, 16], "within": [1, 8, 9, 11, 14, 16], "hit_eff": 8, "hit_unc": 8, "get_hit": [8, 9, 16], "per": [5, 8, 11, 12, 13, 14, 16], "n_hits_below": 8, "phi_in_unc": 8, "phi_out_unc": 8, "plot_scatt": 8, "idx": 8, "represent": [8, 11], "index": [8, 9, 16], "poca_xyz": 8, "poca_xyz_unc": 8, "reco_hit": 8, "theta_in_unc": 8, "theta_msc": 8, "theta_msc_unc": 8, "theta_out_unc": 8, "theta_xy_in": 8, "decompos": 8, "theta_xy_in_unc": 8, "theta_xy_out": 8, "theta_xy_out_unc": 8, "total_scatter_unc": 8, "track_in": 8, "track_out": 8, "track_start_in": 8, "track_start_out": 8, "xyz_in": 8, "xyz_in_unc": 8, "xyz_out": 8, "xyz_out_unc": 8, "absintclassifierfromx0": [5, 8], "partial_x0_inferr": [5, 8], "output_prob": [5, 8], "class2float": 8, "absvolumeinferr": [5, 8, 14], "abstract": [8, 9, 12, 13, 14, 16], "multiclass": [8, 13], "classif": [8, 13], "voxelwis": [5, 8, 11, 13, 15], "inherit": [5, 8, 9, 11, 13, 14, 16], "must": [1, 5, 8, 11, 13, 16], "provid": [8, 9, 11, 12, 13, 14, 16], "wai": [1, 8], "dimens": 8, "basic": 8, "inferr": [5, 8, 11], "raw": 8, "most": [8, 15], "In": [8, 9, 11, 14], "latter": [8, 16], "process": [8, 11, 16], "function": [8, 9, 11, 12, 13, 14, 16], "absx0inferr": 8, "partial": 8, "instati": 8, "pass": [8, 9, 11, 16], "probabilit": 8, "otherwis": [1, 8, 11, 12, 13, 16], "argmax": 8, "over": [8, 9, 11, 13, 14, 16], "last": [8, 9, 11], "callabl": [8, 12, 14, 16], "_abc_impl": [], "_abc_data": [], "_reset_var": [], "reset": [], "made": [5, 11, 13], "ad": [8, 9, 11, 16], "batch": [5, 8, 9, 11, 14, 16], "add_scatt": 8, "append": [8, 11, 14], "vairabl": 8, "get_predict": [5, 8], "call": [8, 9, 11, 12, 14, 16], "": [8, 9, 11, 14, 16], "up": [1, 8, 11, 13, 14, 16], "compute_effici": [5, 8], "compuat": 8, "implement": [8, 9, 11, 14, 16], "contain": [5, 8, 9, 11, 12, 13, 14, 16], "whose": [1, 5, 8], "predicion": 8, "dure": [1, 8, 11, 12, 16], "inv_weight": [], "pred": [5, 8, 13, 14, 15], "x02prob": [5, 8], "vox_pr": [5, 8], "overrid": [5, 8, 9, 11, 13, 14, 16], "fed": 8, "given": [5, 8, 9, 12, 13], "individu": [5, 8, 13], "accompani": [], "invers": 8, "design": [11, 13, 14, 16], "divid": 8, "targ": [], "tupl": [9, 11, 12, 14, 16], "everi": [8, 9, 11, 12, 13, 14, 16], "voxel": [5, 8, 11, 12, 13, 16], "approach": [8, 16], "assign": [8, 14, 16], "entireti": 8, "pdg": [8, 16], "model": [1, 8, 9, 11, 16], "describ": [8, 16], "lbl": [8, 16], "gov": [8, 16], "review": [8, 16], "rpp2018": [8, 16], "rev": [8, 16], "passag": [8, 16], "particl": [8, 16], "matter": [8, 16], "onc": [8, 9, 11], "proce": [8, 14], "thusli": 8, "For": [1, 8, 9, 11, 13, 14, 16], "p_ij": 8, "wa": [8, 11, 13], "j": 8, "These": [8, 13], "integr": 8, "uncorrel": [8, 16], "gaussian": [8, 14, 16], "centr": [8, 11, 12, 13, 16], "scale": [8, 14], "equal": [8, 9, 13, 16], "multipli": [8, 13, 16], "e_i": 8, "w_ij": 8, "give": 8, "x_0": 8, "left": [8, 16], "frac": 8, "0136": 8, "mathrm": 8, "rm": 8, "right": 8, "co": 8, "bar": 8, "_": 8, "tot": 8, "differ": [8, 9, 11, 12, 16], "whole": [8, 14], "popul": 8, "rmss": 8, "term": [8, 13], "side": 8, "equat": 8, "addit": [8, 9, 13], "varianc": 8, "squar": [8, 13, 16], "x0_j": 8, "NOT": [8, 9, 16], "natur": 8, "log": [8, 11, 13], "simplifi": 8, "code": [8, 13], "reli": [8, 16], "heavili": 8, "care": [8, 16], "privat": [1, 8], "_combine_scatt": [], "data": [1, 10, 11, 14, 16], "so": 11, "entri": [], "out": 13, "aid": [], "pair": [9, 11], "retriev": [9, 11, 16], "_get_voxel_zxy_x0_pred_unc": [], "incorrect": [], "todo": [8, 11, 13, 15, 16], "correct": [1, 16], "incredibli": [], "slow": [], "recommend": [1, 8, 16], "_get_voxel_zxy_x0_pr": [], "spread": [], "_muon_effici": [], "_muon_probs_per_voxel_zxi": [], "_muon_scatter_var_unc": [], "_muon_scatter_var": [], "_n_mu": [], "_set_var_dimens": [], "_var_order_sz": [], "tot_scatt": [], "mom": [8, 9, 14], "_vox_zxy_x0_pred_unc": [], "_vox_zxy_x0_pr": [], "_weighted_mean": [], "wgt": [], "row": [], "_weighted_rm": [], "root": 1, "muon_effici": [5, 8], "muon_mom": 8, "momenta": [8, 9], "muon_mom_unc": 8, "muon_poca_xyz": [5, 8], "muon_poca_xyz_unc": [5, 8], "muon_probs_per_voxel_zxi": 8, "don": 8, "muon_theta_in": 8, "muon_theta_in_unc": 8, "muon_theta_out": 8, "muon_theta_out_unc": 8, "muon_total_scatt": 8, "muon_total_scatter_unc": 8, "n_mu": [5, 8], "includ": [5, 8, 11, 13, 16], "vox_zxy_x0_pred_unc": 8, "Not": 8, "long": [8, 16], "calcul": [8, 11], "unit": [5, 7, 8, 11, 13, 16], "vox_zxy_x0_pr": 8, "x0_from_scatt": 8, "deltaz": 8, "invert": 8, "height": [5, 8, 13, 16], "momentum": [8, 9, 11, 14], "estim": 8, "denseblockclassifierfromx0": 8, "n_block_voxel": 8, "use_avgpool": 8, "cut_coef": 8, "10000": [5, 6, 8], "ratio_offset": 8, "ratio_coef": 8, "presenc": 8, "denser": 8, "transform": [8, 11], "wise": [8, 11], "binari": [8, 13], "statist": 8, "dens": 8, "block": [8, 12, 13, 16], "against": [8, 11, 12], "light": 8, "background": [8, 12], "bkg": 8, "blk": 8, "sigma": [8, 16], "b": [1, 8], "lowest": [8, 16], "remain": [8, 16], "rescal": [8, 13, 16], "coeffici": [8, 11, 13, 14, 16], "offset": 8, "constrain": 8, "beween": 8, "present": [8, 11, 12], "nearer": 8, "form": [8, 16], "contigu": [8, 16], "blur": 8, "stride": 8, "kernel": [5, 8], "size": [6, 8, 12, 14, 16], "averag": [5, 8, 11, 13], "pool": 8, "actual": [8, 11, 16], "cut": 8, "sigmoid": [8, 13, 16], "kth": 8, "statisitc": 8, "also": [1, 8, 9, 14, 16], "occupi": [8, 16], "wether": 8, "prediciton": 8, "sharp": 8, "sharper": [8, 11, 16], "constant": [8, 9], "ratio": [8, 16], "scatter_batch": [], "panelx0inferr": [8, 14], "paneldetectorlay": [8, 11, 16], "absmuongener": [9, 11, 14], "x_rang": 9, "y_rang": 9, "fixed_mom": 9, "5": [6, 7, 9, 13, 16], "energy_rang": 9, "500": 9, "theta_rang": 9, "2217304763960306": 9, "core": 9, "flux": 9, "generate_set": 9, "kinemat": 9, "sampl": [9, 11, 16], "uniformli": 9, "region": 9, "rang": [9, 11, 14, 16], "absolut": [9, 13, 16], "refer": [9, 14], "frame": [9, 16], "gev": 9, "radian": 9, "_muon_mass2": [], "01116369210198225": [], "_n_bins_energi": [], "200": [], "_n_bins_theta": [], "energi": 9, "suppli": [9, 14, 16], "classmethod": [9, 14], "from_volum": [9, 14], "min_angl": 9, "2617993877991494": 9, "heurist": 9, "d": 9, "balanc": [9, 13], "trade": 9, "realism": 9, "minimum": [1, 9, 16], "boundari": [9, 11, 14, 16], "would": [9, 16], "directli": 9, "toward": 9, "n_muon": 9, "rank": 9, "2pi": 9, "muongenerator2015": 9, "guan": 9, "et": 9, "al": 9, "2015": 9, "arxiv": [9, 11], "1509": 9, "06176": 9, "p1": 9, "102573": 9, "p2": 9, "068287": 9, "p3": 9, "958633": 9, "p4": 9, "0407253": 9, "p5": 9, "817285": 9, "gaisser": 9, "formula": 9, "cosmic": 9, "np": 9, "incid": 9, "muongenerator2016": 9, "shukla": 9, "sanskrith": 9, "2018": 9, "1606": 9, "06907": 9, "e_0": 9, "87": 9, "e_c": 9, "i_0": 9, "88": 9, "38": 9, "1938": 9, "rod": 9, "174": 9, "epinv": 9, "00117096018735363": 9, "xy_p_theta_phi": [9, 11], "init_z": 9, "devic": [5, 6, 9, 14, 16], "cpu": [5, 6, 9, 14, 16], "own": 9, "coordin": [9, 11], "axi": [9, 16], "upward": 9, "mai": [9, 11, 16], "automat": [9, 11, 16], "anticlockwis": 9, "updat": [5, 9, 11, 14, 16], "propagate_dz_dz": 9, "dz": 9, "propagate_dz_d": 9, "scatter_dxi": 9, "dx_vol": 9, "dy_vol": 9, "mask": [9, 16], "shift": 9, "scatter_dtheta_dphi": 9, "dtheta_vol": 9, "dphi_vol": 9, "alter": 9, "eventu": 9, "extend": [9, 11], "about": [9, 11, 13], "reco_mom": 9, "howev": [9, 16], "simul": [9, 16], "measur": 9, "By": [9, 16], "snapshot_xyz": 9, "time": [1, 8, 9, 13, 16], "xyz_hist": 9, "append_hit": 9, "_hit": 9, "_keep_mask": [], "_mom": [], "_phi": [], "_theta": [], "_x": [], "_xy": [], "_xyz": [], "_y": [], "_z": [], "reco_xi": [9, 16], "gen_xi": [9, 16], "either": [9, 11, 12, 16], "copi": 9, "detach": 9, "clone": [1, 9], "theta_ref": 9, "compar": [9, 13, 15], "dtheta_x": 9, "theta_ref_x": 9, "theta_x": 9, "dtheta_i": 9, "theta_ref_i": 9, "theta_i": 9, "filter_muon": 9, "keep_mask": 9, "along": 9, "xy_low": 9, "xy_high": 9, "eas": 9, "n_hit": 9, "lower": [9, 11, 12, 13, 16], "limit": [9, 11], "upper": 9, "get_xy_mask": [9, 16], "correspond": [9, 13, 16], "p_dim": 9, "ph_dim": 9, "phi_from_theta_xi": 9, "work": [1, 9, 14], "xz": 9, "yz": 9, "anti": 9, "clockwis": 9, "propagate_d": 9, "flight": 9, "move": [9, 11, 16], "propagate_dz": 9, "afterward": [9, 16], "thei": [9, 11, 12, 13, 14, 16], "downward": 9, "remove_upwards_muon": 9, "after": [1, 5, 9, 11, 13, 14, 16], "scatter": [5, 9, 11, 14, 16], "run": [1, 5, 9, 11, 14, 16], "make": [1, 9, 11, 15, 16], "sure": [1, 9], "complet": [9, 11], "longer": 9, "scatter_dtheta_xi": 9, "dtheta_x_vol": 9, "dtheta_y_vol": 9, "scatter_dxyz": 9, "dz_vol": 9, "displac": 9, "th_dim": 9, "4": [6, 9, 16], "theta_from_theta_xi": 9, "theta_x_from_theta_phi": 9, "theta_y_from_theta_phi": 9, "upwards_muon": 9, "x_dim": 9, "y_dim": 9, "z_dim": 9, "callback": [5, 10, 14], "wrapper": [10, 11], "valid": [1, 11, 14], "absvolumewrapp": [11, 14, 16], "interject": [11, 14], "variou": [11, 14, 16], "do": [11, 16], "noth": [11, 16], "pleas": [11, 16], "check": [1, 11, 16], "see": [11, 16], "exactli": 11, "write": [1, 11, 14], "volumewrapp": [11, 16], "Their": 11, "fit_param": 11, "fitparam": [11, 14], "style": 11, "It": [11, 13, 16], "read": [11, 14], "rather": [11, 16], "than": [11, 12, 13, 16], "on_": [11, 14], "_begin": [11, 14], "_end": [11, 14], "full": [11, 14, 16], "loop": [11, 14, 16], "set_wrapp": [11, 14], "on_train_begin": [5, 11, 14], "epoch": [11, 12, 14], "n_epoch": [11, 14], "state": [11, 13, 14], "train": [1, 5, 11, 12, 13, 14, 16], "on_epoch_begin": [11, 14], "enumer": [11, 14], "trn_passiv": [11, 14], "passive_b": [11, 14], "on_volume_batch_begin": [5, 11, 14], "load": [1, 11, 12, 14, 16], "on_volume_begin": [11, 14], "muon_batch": [11, 14], "n_mu_per_volum": [11, 14], "mu_b": [11, 14], "on_mu_batch_begin": [11, 14], "irradi": [11, 14], "on_scatter_end": [11, 14], "on_mu_batch_end": [11, 14], "on_x0_pred_begin": [11, 14], "overal": [11, 13, 14], "on_x0_pred_end": [5, 11, 14], "cost": [11, 13, 14, 16], "add": [11, 13, 14, 16], "on_volume_batch_end": [5, 11, 14], "on_backwards_begin": [11, 14], "backpropag": [5, 11, 14], "on_backwards_end": [5, 11, 14], "viii": [11, 14], "ensur": [11, 14, 16], "physic": [11, 14, 16], "absdetectorlay": [11, 14, 16], "conform_detector": [11, 14, 16], "viv": [11, 14], "len": [11, 14], "break": [11, 14], "on_epoch_end": [11, 14], "val_pass": [11, 14], "on_train_end": [11, 14], "yet": [5, 11], "begin": [5, 11, 16], "end": [5, 11], "on_pred_begin": 11, "mode": [11, 14, 16], "on_pred_end": 11, "finish": 11, "latest": 11, "on_step_end": 11, "layout": [5, 11, 12, 16], "on_volume_end": 11, "befor": [1, 5, 11], "cycliccallback": [11, 14], "muonresampl": 11, "resampl": 11, "impact": 11, "check_mu_batch": 11, "determin": [11, 12], "prior": [11, 13, 16], "realist": 11, "gen": 11, "until": [11, 14], "gener": [1, 11, 12, 14, 16], "replac": 11, "hitrecord": [11, 15], "scatterrecord": [11, 15], "get_record": [11, 15], "plot_hit_dens": [11, 15], "distinct": 11, "_to_df": [], "save": [8, 11, 14, 15], "panda": 11, "datafram": [11, 15], "insid": [11, 16], "plot_scatter_dens": [11, 15], "_reset": [], "prepar": [11, 16], "as_df": 11, "access": [1, 11], "evalmetr": [11, 14], "lower_metric_bett": 11, "name": [1, 5, 11, 12, 14], "main_metr": 11, "metric": 11, "metriclogg": [11, 14], "live": 11, "feedback": 11, "main": [11, 16], "better": [11, 16], "get_metr": 11, "nomorenan": 11, "introduc": 11, "need": [1, 11, 13, 14, 16], "heatmapgif": 11, "gif_filenam": 11, "heatmap": 11, "gif": 11, "savenam": [8, 11, 14, 15], "savepath": 11, "_create_gif": [], "imag": 11, "_plot_curr": [], "optimisation_histori": 11, "gif_length": 11, "10": [5, 6, 11, 13, 16], "show_plot": 11, "show": 11, "varieti": 11, "help": 11, "highlight": 11, "problem": 11, "hyper": 11, "without": 11, "print": [11, 13], "histori": 11, "get_loss_histori": 11, "addition": 11, "control": [1, 11, 13], "second": 11, "notebook": [11, 16], "_build_grid_spec": [], "gridspec": [], "snapshot": 11, "_prep_plot": [], "_snapshot_monitor": [], "cat_palett": 11, "tab10": 11, "get": 11, "get_result": 11, "loaded_best": 11, "h_mid": 11, "8": [1, 5, 7, 11, 13], "lbl_col": 11, "black": 11, "lbl_sz": 11, "24": 11, "leg_sz": 11, "16": 11, "info": 11, "clean": 11, "grab": 11, "sub": [11, 16], "print_loss": 11, "rc": 11, "patch": 11, "edgecolor": 11, "whitegrid": 11, "tk_col": 11, "tk_sz": 11, "update_plot": 11, "w_mid": 11, "14": 11, "222222222222221": 11, "panelmetriclogg": 11, "logger": 11, "_set_axes_label": [], "clear": [], "onecycl": 11, "opt_nam": 11, "warmup_length": 11, "init_lr": 11, "init_mom": 11, "mid_lr": 11, "mid_mom": 11, "final_lr": 11, "final_mom": 11, "absoptschedul": 11, "smith": 11, "cycl": 11, "evolut": 11, "lr": [11, 14], "beta_1": [11, 14], "org": [1, 11], "ab": 11, "1803": 11, "09820": 11, "warmup": 11, "phase": 11, "learn": [11, 14, 16], "rate": [11, 14, 16], "decreas": [11, 14, 16], "stabilis": 11, "converg": 11, "instanti": [11, 14, 16], "argument": 11, "anneal": [11, 16], "affect": [11, 16], "schedul": 11, "low": [11, 16], "nomin": [11, 16], "moder": 11, "_activ": [], "inter_cnt": [], "predhandl": [11, 14], "collect": 11, "numpi": 11, "get_pr": [11, 14], "save2hdf5predhandl": 11, "path": [8, 11, 14], "use_volume_target": 11, "overwrit": 11, "compress": 11, "lzf": 11, "volumetargetpredhandl": 11, "hdf5": [1, 11], "cach": 11, "written": 11, "increment": 11, "lookup": [11, 16], "exist": [1, 11], "same": [8, 11, 12, 13, 16], "string": [11, 14, 16], "_open_fil": [], "_write_data": [], "costcoefwarmup": 11, "n_warmup": 11, "warmupcallback": [11, 14], "more": [11, 15, 16], "stabl": 11, "absdetectorloss": [11, 13, 14], "sever": [11, 14], "warm": 11, "kept": 11, "fix": [11, 12, 14, 16], "wait": 11, "activ": [1, 11], "enough": 11, "past": 11, "median": 11, "paneloptconfig": [], "xy_pos_r": 11, "z_pos_rat": 11, "xy_span_r": 11, "budget_r": [], "desir": 11, "step": [11, 16], "cours": 11, "suitabl": [1, 11], "panel": [11, 14], "expand": [], "fraction": [14, 16], "budget": [13, 14, 16], "postwarmupcallback": 11, "obejct": 11, "check_warmup": 11, "act": [11, 16], "prevent": 11, "flag": 11, "warmup_act": 11, "super": 11, "next": [11, 16], "skip": 11, "unset": 11, "panelupdatelimit": 11, "max_xy_step": 11, "max_z_step": 11, "max_xy_span_step": 11, "maximum": [11, 12, 16], "being": [11, 13, 16], "anomol": 11, "enact": 11, "hard": 11, "clamp": 11, "xy_span": [11, 16], "paramat": 11, "goe": 11, "sigmoidpanelsmoothnessschedul": [11, 16], "smooth_rang": 11, "smooth": [5, 11, 16], "sigmoiddetectorpanel": [11, 16], "unphys": 11, "sensit": [11, 16], "outsid": [11, 16], "edg": [11, 16], "close": [11, 13], "resembl": 11, "still": [1, 11], "A": [11, 12, 13, 14, 16], "appropri": [], "come": [], "_set_smooth": [], "At": 11, "detectorheatmap": [14, 16], "re": [5, 6, 16], "init_xyz": 16, "init_xy_span": 16, "m2_cost": 16, "realistic_valid": 16, "n_cluster": 16, "30": 16, "_backward_hook": [], "_buffer": [], "_forward_hook": [], "_forward_pre_hook": [], "_is_full_backward_hook": [], "_load_state_dict_post_hook": [], "_load_state_dict_pre_hook": [], "_modul": [], "_non_persistent_buffers_set": [], "_paramet": [], "_state_dict_hook": [], "assign_budget": 16, "clamp_param": 16, "musigz_low": 16, "musigz_high": 16, "get_cost": 16, "get_effici": 16, "as_2d": 16, "get_resolut": 16, "plot_map": 16, "bpixel": 16, "bsavefig": 16, "filenam": 16, "abslay": 16, "oper": 16, "_n_cost": 16, "learnabl": 16, "how": [13, 16], "type_label": 16, "encod": [13, 16], "extra": 16, "pure": 16, "togeth": [12, 16], "span": [5, 6, 16], "meter": 16, "ax": 16, "divis": 16, "correctli": 16, "relat": [13, 16], "proper": 16, "determinist": 16, "currenc": [13, 16], "lie": 16, "etc": 16, "forward": [13, 16], "get_lw_z_siz": 16, "detectorpanel": [14, 16], "modulelist": [5, 16], "zeroth": [11, 12, 13, 16], "highest": 16, "necessarili": 16, "investig": 16, "bound": 16, "get_devic": 16, "helper": 16, "rais": 16, "get_panel_zord": 16, "rad_length": 16, "yield_zordered_panel": 16, "yield": [12, 16], "iter": [14, 16], "passivelay": 16, "rad_length_func": 16, "step_sz": 16, "01": 16, "pgeant": [1, 16], "develop": [1, 16], "parameteris": 16, "geant": [1, 16], "radiat": 16, "n_x": 16, "n_y": 16, "exampl": [11, 13, 16], "def": 16, "arb_rad_length": 16, "torch": [1, 16], "ones": [11, 13, 16], "lead": 16, "beryllium": 16, "later": 16, "load_rad_length": 16, "select": [13, 16], "travers": [], "_pdg_scatter": [], "log_term": [], "euler": [], "rotat": 16, "matric": [], "convers": 1, "_pgeant_scatt": [], "abs2idx": 16, "possibl": [13, 16], "seri": 16, "mu_abs2idx": 16, "look": 16, "scatter_and_propag": 16, "prespecifi": 16, "neighbour": 16, "infinit": 16, "thin": 16, "rectangular": 16, "despit": [13, 16], "nn": 16, "continu": [1, 16], "2d": [15, 16], "across": 16, "decid": 16, "evalu": [13, 14, 16], "eval": 16, "area": 16, "learnt": 16, "effect": [11, 16], "now": 16, "aspect": [13, 14, 16], "improv": [8, 16], "resiz": 16, "meet": 16, "interpret": [13, 16], "budget_scal": 16, "match": [13, 16], "xyz_low": 16, "xyz_high": 16, "20": 16, "random": [12, 16], "1e": 16, "subtract": 16, "min": 16, "max": 16, "doesn": 16, "overlap": 16, "overridden": [12, 16], "subclass": 16, "although": 16, "recip": 16, "former": 16, "regist": [1, 16], "hook": [1, 16], "while": 16, "silent": 16, "ignor": 16, "pre": [1, 12, 14, 16], "get_gauss": 16, "distribut": [1, 16], "interact": 16, "consist": [13, 16], "reconstruct": 16, "get_scaled_xy_span": 16, "xy2": 16, "li": 16, "border": 16, "slower": [13, 16], "wherea": 16, "transit": 16, "strongli": 16, "approxim": 16, "sig_model": 16, "interfac": 16, "conveni": 16, "respons": 16, "optim": [14, 16], "could": [8, 16], "volumeclassloss": [13, 16], "front": 16, "zxy": 16, "corner": 16, "support": [1, 14, 16], "spars": 16, "_check_pass": [], "_configure_budget": [], "budget_weight": [], "explicit": [], "hierarchi": [], "thu": [], "_n_layer_cost": 16, "softmax": [13, 16], "normalis": [13, 14, 16], "slice": 16, "taken": 16, "_get_devic": [], "system": [1, 16], "amongst": 16, "build_edg": [], "draw": 16, "xlim": 16, "ylim": 16, "zlim": 16, "pertain": 16, "jupyt": 16, "matplotlib": 16, "you": [1, 16], "dimension": 16, "turn": 16, "won": 16, "explicitli": 16, "get_detector": [14, 16], "get_passive_z_rang": 16, "get_pass": 16, "get_rad_cub": [13, 16], "h": [5, 16], "lookup_passive_xyz_coord": 16, "passive_s": 16, "public": 1, "ssh": 1, "your": 1, "github": 1, "profil": 1, "follow": 1, "instruct": 1, "checkout": 1, "packag": [1, 2], "git": 1, "gilesstrong": 1, "mode_muon_tomographi": 1, "gpu": 1, "setup": 1, "conda": 1, "pytorch": 1, "nb_conda_kernel": 1, "tomopt": 1, "python": 1, "pip": 1, "ipykernel": 1, "cu111": 1, "f": 1, "download": 1, "whl": 1, "torch_stabl": 1, "html": 1, "txt": 1, "virtual": 1, "environ": 1, "anaconda": 1, "miniconda": 1, "rememb": 1, "restart": 1, "shell": 1, "attemt": 1, "command": 1, "bashrc": 1, "env": 1, "yml": 1, "choic": 1, "content": 1, "commit": 1, "appar": 1, "ipython": 1, "displai": 1, "pytest": 1, "pull": 1, "ran": 1, "local": 1, "test_muon": 1, "py": 1, "tomo_deepinf": 1, "contact": 1, "definit": 1, "gnn": 1, "export": 1, "jit": 1, "trace": 1, "script": 1, "deepvolumeinfer": 1, "we": 1, "find": 1, "host": 1, "easi": 1, "mode_muon_tomography_scatt": 1, "csv": 1, "tomopt_sphinx_them": 1, "appear": 1, "doc": [1, 13], "project": 1, "peopl": 1, "contribut": 1, "summaris": 1, "ladle_furnac": 4, "small_wal": 4, "u_lorri": 4, "ladlefurnacepassivegener": 5, "x0_furnac": 5, "01782": 5, "fill_materi": 5, "hot": 5, "liquid": 5, "steel": 5, "slag_materi": 5, "slag": 5, "abspassivegener": [5, 6, 7, 12], "research": [5, 7], "edgedetladlefurnacefilllevelinferr": 5, "pipelin": 5, "remove_ladl": 5, "avg_3d": 5, "avg_lay": 5, "avg_1d": 5, "ridge_1d_0": 5, "max_div_min": 5, "add_batch_dim": 5, "edge_det": 5, "gauss_1d": 5, "gauss_3d": 5, "laplacian_1d": 5, "max_sub_min": 5, "prewit_1d": 5, "ladl": 5, "thick": 5, "ridge_1d_2": 5, "ridge_1d_4": 5, "ridge_1d_8": 5, "linearcorrectioncallback": 5, "partial_opt": [5, 14], "init_weight": 5, "init_bia": 5, "pocazladlefurnacefilllevelinferr": 5, "fill": [5, 13], "heigh": 5, "pred_height": 5, "ladlefurnaceintclassloss": 5, "pred_int_start": [5, 13], "use_ms": [5, 13], "target_budget": [5, 13], "budget_smooth": [5, 13], "cost_coef": [5, 13], "steep_budget": [5, 13], "debug": [5, 13], "volumeintclassloss": [5, 13], "spreadrangeloss": 5, "compare_init_optimised_2": 5, "df_start": 5, "df_opt_2": 5, "compare_init_to_optimis": 5, "df_opt": 5, "compare_optimised_to_baselin": 5, "df_bl_1": 5, "df_bl_2": 5, "compare_raw_init_to_bias_corrected_init": 5, "get_baseline_detector_1": 5, "9": 5, "get_baseline_detector_2": 5, "get_initial_detector": 5, "smallwallspassivegener": 6, "x0_soil": 6, "2624248696430881": 6, "x0_wall": 6, "08022522418503258": 6, "stop_k": 6, "turn_k": 6, "min_length": 6, "min_height": 6, "get_small_walls_volum": 6, "passive_lwh": 6, "det_height": 6, "get_small_walls_volume_wrapp": 6, "panelvolumewrapp": [6, 14], "ulorrypassivegener": 7, "u_volum": 7, "u_prob": 7, "fill_frac": 7, "x0_lorri": 7, "01757": 7, "bkg_materi": 7, "air": 7, "iron": 7, "figur": 8, "cdf": 8, "precomput": 8, "prob": 8, "tripl": 8, "rtype": 8, "refactor": 8, "panelcentr": 11, "epochsav": 11, "uniqu": 11, "specifc": 11, "resum": 11, "iter_cnt": 11, "optconfig": 11, "nor": 11, "sgd": 11, "opt": [11, 14], "param_group": 11, "param": 11, "impli": 11, "xy_pos_opt": [11, 14], "z_pos_opt": [11, 14], "xy_span_opt": [11, 14], "absblockpassivegener": 12, "block_siz": 12, "block_size_max_half": 12, "cuboid": 12, "_gener": 12, "get_data": 12, "randomli": 12, "orient": 12, "half": 12, "known": 12, "radlengthfunc": 12, "blockpresentpassivegener": 12, "potenti": 12, "passiveyield": [12, 14], "n_passiv": 12, "shuffl": 12, "dataset": 12, "randomblockpassivegener": 12, "sort_x0": 12, "enforce_diff_mat": 12, "unless": 12, "voxelpassivegener": 12, "quantifi": 13, "characteris": 13, "import": 13, "ideal": 13, "task": 13, "algorithm": 13, "gradual": 13, "predefin": 13, "rapidli": 13, "smoothli": 13, "Be": 13, "linearli": 13, "exceed": 13, "less": 13, "steep": 13, "flatten": 13, "slightli": 13, "_get_inference_loss": 13, "quickli": 13, "rise": 13, "veri": 13, "whenev": 13, "absmaterialclassloss": 13, "classifi": 13, "what": 13, "multi": 13, "cross": 13, "entropi": 13, "nll": 13, "bce": 13, "targ2int": 13, "treatabl": 13, "just": 13, "categor": 13, "integer_class_loss": 13, "icl": 13, "volumemseloss": 13, "voxelclassloss": 13, "voxelx0loss": 13, "mse": 13, "int_prob": 13, "target_int": 13, "pred_start_int": 13, "reduct": 13, "regress": 13, "applic": 13, "realli": 13, "like": 13, "aim": 13, "penalis": 13, "produc": [13, 15], "0154": 13, "greater": 13, "0007": 13, "8773": 13, "unreduc": 13, "loss_func": 14, "partial_scatter_inferr": 14, "partial_volume_inferr": 14, "mu_gener": 14, "_build_opt": 14, "qualiti": 14, "life": 14, "val_loss": 14, "broken": 14, "_fit_epoch": 14, "_scan_volum": 14, "mechan": 14, "abl": 14, "awar": 14, "uninitialis": 14, "plan": 14, "cb": 14, "cb_savepath": 14, "train_weight": 14, "count": 14, "reach": 14, "get_opt_lr": 14, "get_opt_mom": 14, "get_param_count": 14, "trainabl": 14, "pred_cb": 14, "pred_callback": 14, "set_opt_lr": 14, "set_opt_mom": 14, "arbvolumewrapp": 14, "arbitrari": 14, "whatev": 14, "paramt": 14, "from_sav": 14, "kwarg": 14, "cyclic_cb": 14, "epoch_bar": 14, "progressbar": 14, "loss_val": 14, "mean_loss": 14, "metric_cb": 14, "metric_log": 14, "passive_bar": 14, "nbprogressbar": 14, "consoleprogressbar": 14, "sb": 14, "skip_opt_step": 14, "stop": 14, "tst_passiv": 14, "volume_id": 14, "volume_inferr": 14, "warmup_cb": 14, "heatmapvolumewrapp": 14, "mu_opt": 14, "norm_opt": 14, "sig_opt": 14, "adjust": 14, "budget_opt": 14, "hit_df": 15, "scatter_df": 15, "plot_pred_true_x0": 15, "revis": 15, "intuit": 15, "build_xyz_edg": 16, "xyz_centr": 16, "xyz_edg": 16}, "objects": {"tomopt.benchmarks.ladle_furnace": [[5, 0, 0, "-", "data"], [5, 0, 0, "-", "inference"], [5, 0, 0, "-", "loss"], [5, 0, 0, "-", "plotting"], [5, 0, 0, "-", "volume"]], "tomopt.benchmarks.ladle_furnace.data": [[5, 1, 1, "", "LadleFurnacePassiveGenerator"]], "tomopt.benchmarks.ladle_furnace.inference": [[5, 1, 1, "", "EdgeDetLadleFurnaceFillLevelInferrer"], [5, 1, 1, "", "LinearCorrectionCallback"], [5, 1, 1, "", "PocaZLadleFurnaceFillLevelInferrer"]], "tomopt.benchmarks.ladle_furnace.inference.EdgeDetLadleFurnaceFillLevelInferrer": [[5, 2, 1, "", "avg_1d"], [5, 2, 1, "", "avg_3d"], [5, 2, 1, "", "avg_layers"], [5, 2, 1, "", "edge_det"], [5, 2, 1, "", "gauss_1d"], [5, 2, 1, "", "gauss_3d"], [5, 2, 1, "", "laplacian_1d"], [5, 2, 1, "", "max_div_min"], [5, 2, 1, "", "max_sub_min"], [5, 2, 1, "", "negative"], [5, 2, 1, "", "prewit_1d"], [5, 2, 1, "", "remove_ladle"], [5, 2, 1, "", "ridge_1d_0"], [5, 2, 1, "", "ridge_1d_2"], [5, 2, 1, "", "ridge_1d_4"], [5, 2, 1, "", "ridge_1d_8"], [5, 2, 1, "", "x02probs"]], "tomopt.benchmarks.ladle_furnace.inference.LinearCorrectionCallback": [[5, 2, 1, "", "on_backwards_end"], [5, 2, 1, "", "on_train_begin"], [5, 2, 1, "", "on_volume_batch_begin"], [5, 2, 1, "", "on_x0_pred_end"]], "tomopt.benchmarks.ladle_furnace.inference.PocaZLadleFurnaceFillLevelInferrer": [[5, 2, 1, "", "compute_efficiency"], [5, 2, 1, "", "get_prediction"], [5, 3, 1, "", "muon_efficiency"], [5, 3, 1, "", "muon_poca_xyz"], [5, 3, 1, "", "muon_poca_xyz_unc"], [5, 3, 1, "", "n_mu"], [5, 3, 1, "", "pred_height"], [5, 3, 1, "", "smooth"]], "tomopt.benchmarks.ladle_furnace.loss": [[5, 1, 1, "", "LadleFurnaceIntClassLoss"], [5, 1, 1, "", "SpreadRangeLoss"]], "tomopt.benchmarks.ladle_furnace.loss.LadleFurnaceIntClassLoss": [[5, 4, 1, "", "training"]], "tomopt.benchmarks.ladle_furnace.loss.SpreadRangeLoss": [[5, 2, 1, "", "on_volume_batch_begin"], [5, 2, 1, "", "on_volume_batch_end"], [5, 2, 1, "", "on_x0_pred_end"]], "tomopt.benchmarks.ladle_furnace.plotting": [[5, 5, 1, "", "compare_init_optimised_2"], [5, 5, 1, "", "compare_init_to_optimised"], [5, 5, 1, "", "compare_optimised_to_baselines"], [5, 5, 1, "", "compare_raw_init_to_bias_corrected_init"]], "tomopt.benchmarks.ladle_furnace.volume": [[5, 5, 1, "", "get_baseline_detector_1"], [5, 5, 1, "", "get_baseline_detector_2"], [5, 5, 1, "", "get_initial_detector"]], "tomopt.benchmarks.small_walls": [[6, 0, 0, "-", "data"], [6, 0, 0, "-", "volume"]], "tomopt.benchmarks.small_walls.data": [[6, 1, 1, "", "SmallWallsPassiveGenerator"]], "tomopt.benchmarks.small_walls.volume": [[6, 5, 1, "", "get_small_walls_volume"], [6, 5, 1, "", "get_small_walls_volume_wrapper"]], "tomopt.benchmarks.u_lorry": [[7, 0, 0, "-", "data"]], "tomopt.benchmarks.u_lorry.data": [[7, 1, 1, "", "ULorryPassiveGenerator"]], "tomopt": [[3, 0, 0, "-", "core"], [3, 0, 0, "-", "utils"], [3, 0, 0, "-", "version"]], "tomopt.inference": [[8, 0, 0, "-", "scattering"], [8, 0, 0, "-", "volume"]], "tomopt.inference.scattering": [[8, 1, 1, "", "GenScatterBatch"], [8, 1, 1, "", "ScatterBatch"]], "tomopt.inference.scattering.ScatterBatch": [[8, 3, 1, "", "above_gen_hits"], [8, 3, 1, "", "above_hit_effs"], [8, 3, 1, "", "above_hit_uncs"], [8, 3, 1, "", "above_hits"], [8, 3, 1, "", "below_gen_hits"], [8, 3, 1, "", "below_hit_effs"], [8, 3, 1, "", "below_hit_uncs"], [8, 3, 1, "", "below_hits"], [8, 3, 1, "", "dphi"], [8, 3, 1, "", "dphi_unc"], [8, 3, 1, "", "dtheta"], [8, 3, 1, "", "dtheta_unc"], [8, 3, 1, "", "dtheta_xy"], [8, 3, 1, "", "dtheta_xy_unc"], [8, 3, 1, "", "dxy"], [8, 3, 1, "", "dxy_unc"], [8, 3, 1, "", "gen_hits"], [8, 2, 1, "", "get_muon_trajectory"], [8, 2, 1, "", "get_scatter_mask"], [8, 3, 1, "", "hit_effs"], [8, 3, 1, "", "hit_uncs"], [8, 3, 1, "", "hits"], [8, 3, 1, "", "n_hits_above"], [8, 3, 1, "", "n_hits_below"], [8, 3, 1, "", "phi_in"], [8, 3, 1, "", "phi_in_unc"], [8, 3, 1, "", "phi_out"], [8, 3, 1, "", "phi_out_unc"], [8, 2, 1, "", "plot_scatter"], [8, 3, 1, "", "poca_xyz"], [8, 3, 1, "", "poca_xyz_unc"], [8, 3, 1, "", "reco_hits"], [8, 3, 1, "", "theta_in"], [8, 3, 1, "", "theta_in_unc"], [8, 3, 1, "", "theta_msc"], [8, 3, 1, "", "theta_msc_unc"], [8, 3, 1, "", "theta_out"], [8, 3, 1, "", "theta_out_unc"], [8, 3, 1, "", "theta_xy_in"], [8, 3, 1, "", "theta_xy_in_unc"], [8, 3, 1, "", "theta_xy_out"], [8, 3, 1, "", "theta_xy_out_unc"], [8, 3, 1, "", "total_scatter"], [8, 3, 1, "", "total_scatter_unc"], [8, 3, 1, "", "track_in"], [8, 3, 1, "", "track_out"], [8, 3, 1, "", "track_start_in"], [8, 3, 1, "", "track_start_out"], [8, 3, 1, "", "xyz_in"], [8, 3, 1, "", "xyz_in_unc"], [8, 3, 1, "", "xyz_out"], [8, 3, 1, "", "xyz_out_unc"]], "tomopt.inference.volume": [[8, 1, 1, "", "AbsIntClassifierFromX0"], [8, 1, 1, "", "AbsVolumeInferrer"], [8, 1, 1, "", "AbsX0Inferrer"], [8, 1, 1, "", "DenseBlockClassifierFromX0s"], [8, 1, 1, "", "PanelX0Inferrer"]], "tomopt.inference.volume.AbsIntClassifierFromX0": [[8, 2, 1, "", "add_scatters"], [8, 2, 1, "", "compute_efficiency"], [8, 2, 1, "", "get_prediction"], [8, 2, 1, "", "x02probs"]], "tomopt.inference.volume.AbsVolumeInferrer": [[8, 2, 1, "", "add_scatters"], [8, 2, 1, "", "compute_efficiency"], [8, 2, 1, "", "get_prediction"]], "tomopt.inference.volume.AbsX0Inferrer": [[8, 2, 1, "", "get_prediction"], [8, 3, 1, "", "muon_efficiency"], [8, 3, 1, "", "muon_mom"], [8, 3, 1, "", "muon_mom_unc"], [8, 3, 1, "", "muon_poca_xyz"], [8, 3, 1, "", "muon_poca_xyz_unc"], [8, 3, 1, "", "muon_probs_per_voxel_zxy"], [8, 3, 1, "", "muon_theta_in"], [8, 3, 1, "", "muon_theta_in_unc"], [8, 3, 1, "", "muon_theta_out"], [8, 3, 1, "", "muon_theta_out_unc"], [8, 3, 1, "", "muon_total_scatter"], [8, 3, 1, "", "muon_total_scatter_unc"], [8, 3, 1, "", "n_mu"], [8, 3, 1, "", "vox_zxy_x0_pred_uncs"], [8, 3, 1, "", "vox_zxy_x0_preds"], [8, 2, 1, "", "x0_from_scatters"]], "tomopt.inference.volume.DenseBlockClassifierFromX0s": [[8, 2, 1, "", "add_scatters"], [8, 2, 1, "", "compute_efficiency"], [8, 2, 1, "", "get_prediction"]], "tomopt.inference.volume.PanelX0Inferrer": [[8, 2, 1, "", "compute_efficiency"]], "tomopt.muon": [[9, 0, 0, "-", "generation"], [9, 0, 0, "-", "muon_batch"]], "tomopt.muon.generation": [[9, 1, 1, "", "AbsMuonGenerator"], [9, 1, 1, "", "MuonGenerator2015"], [9, 1, 1, "", "MuonGenerator2016"]], "tomopt.muon.generation.AbsMuonGenerator": [[9, 2, 1, "", "flux"], [9, 2, 1, "", "from_volume"], [9, 2, 1, "", "generate_set"]], "tomopt.muon.generation.MuonGenerator2015": [[9, 4, 1, "", "P1"], [9, 4, 1, "", "P2"], [9, 4, 1, "", "P3"], [9, 4, 1, "", "P4"], [9, 4, 1, "", "P5"], [9, 2, 1, "", "flux"]], "tomopt.muon.generation.MuonGenerator2016": [[9, 4, 1, "", "E_0"], [9, 4, 1, "", "E_c"], [9, 4, 1, "", "I_0"], [9, 4, 1, "", "N"], [9, 4, 1, "", "Rod"], [9, 4, 1, "", "epinv"], [9, 2, 1, "", "flux"], [9, 4, 1, "", "n"]], "tomopt.muon.muon_batch": [[9, 1, 1, "", "MuonBatch"]], "tomopt.muon.muon_batch.MuonBatch": [[9, 2, 1, "", "append_hits"], [9, 2, 1, "", "copy"], [9, 2, 1, "", "dtheta"], [9, 2, 1, "", "dtheta_x"], [9, 2, 1, "", "dtheta_y"], [9, 2, 1, "", "filter_muons"], [9, 2, 1, "", "get_hits"], [9, 2, 1, "", "get_xy_mask"], [9, 3, 1, "", "mom"], [9, 3, 1, "", "muons"], [9, 4, 1, "", "p_dim"], [9, 4, 1, "", "ph_dim"], [9, 3, 1, "", "phi"], [9, 2, 1, "", "phi_from_theta_xy"], [9, 2, 1, "", "propagate_d"], [9, 2, 1, "", "propagate_dz"], [9, 3, 1, "", "reco_mom"], [9, 2, 1, "", "remove_upwards_muons"], [9, 2, 1, "", "scatter_dtheta_dphi"], [9, 2, 1, "", "scatter_dtheta_xy"], [9, 2, 1, "", "scatter_dxyz"], [9, 2, 1, "", "snapshot_xyz"], [9, 4, 1, "", "th_dim"], [9, 3, 1, "", "theta"], [9, 2, 1, "", "theta_from_theta_xy"], [9, 3, 1, "", "theta_x"], [9, 2, 1, "", "theta_x_from_theta_phi"], [9, 3, 1, "", "theta_xy"], [9, 3, 1, "", "theta_y"], [9, 2, 1, "", "theta_y_from_theta_phi"], [9, 3, 1, "", "upwards_muons"], [9, 3, 1, "", "x"], [9, 4, 1, "", "x_dim"], [9, 3, 1, "", "xy"], [9, 3, 1, "", "xyz"], [9, 3, 1, "", "xyz_hist"], [9, 3, 1, "", "y"], [9, 4, 1, "", "y_dim"], [9, 3, 1, "", "z"], [9, 4, 1, "", "z_dim"]], "tomopt.optimisation.callbacks": [[11, 0, 0, "-", "callback"], [11, 0, 0, "-", "cyclic_callbacks"], [11, 0, 0, "-", "data_callbacks"], [11, 0, 0, "-", "detector_callbacks"], [11, 0, 0, "-", "diagnostic_callbacks"], [11, 0, 0, "-", "eval_metric"], [11, 0, 0, "-", "grad_callbacks"], [11, 0, 0, "-", "heatmap_gif"], [11, 0, 0, "-", "monitors"], [11, 0, 0, "-", "opt_callbacks"], [11, 0, 0, "-", "pred_callbacks"], [11, 0, 0, "-", "warmup_callbacks"]], "tomopt.optimisation.callbacks.callback": [[11, 1, 1, "", "Callback"]], "tomopt.optimisation.callbacks.callback.Callback": [[11, 2, 1, "", "on_backwards_begin"], [11, 2, 1, "", "on_backwards_end"], [11, 2, 1, "", "on_epoch_begin"], [11, 2, 1, "", "on_epoch_end"], [11, 2, 1, "", "on_mu_batch_begin"], [11, 2, 1, "", "on_mu_batch_end"], [11, 2, 1, "", "on_pred_begin"], [11, 2, 1, "", "on_pred_end"], [11, 2, 1, "", "on_scatter_end"], [11, 2, 1, "", "on_step_end"], [11, 2, 1, "", "on_train_begin"], [11, 2, 1, "", "on_train_end"], [11, 2, 1, "", "on_volume_batch_begin"], [11, 2, 1, "", "on_volume_batch_end"], [11, 2, 1, "", "on_volume_begin"], [11, 2, 1, "", "on_volume_end"], [11, 2, 1, "", "on_x0_pred_begin"], [11, 2, 1, "", "on_x0_pred_end"], [11, 2, 1, "", "set_wrapper"], [11, 4, 1, "", "wrapper"]], "tomopt.optimisation.callbacks.cyclic_callbacks": [[11, 1, 1, "", "CyclicCallback"]], "tomopt.optimisation.callbacks.data_callbacks": [[11, 1, 1, "", "MuonResampler"]], "tomopt.optimisation.callbacks.data_callbacks.MuonResampler": [[11, 2, 1, "", "check_mu_batch"], [11, 2, 1, "", "on_mu_batch_begin"], [11, 2, 1, "", "resample"]], "tomopt.optimisation.callbacks.detector_callbacks": [[11, 1, 1, "", "PanelCentring"], [11, 1, 1, "", "PanelUpdateLimiter"], [11, 1, 1, "", "SigmoidPanelSmoothnessSchedule"]], "tomopt.optimisation.callbacks.detector_callbacks.PanelCentring": [[11, 2, 1, "", "on_step_end"]], "tomopt.optimisation.callbacks.detector_callbacks.PanelUpdateLimiter": [[11, 2, 1, "", "on_backwards_end"], [11, 2, 1, "", "on_step_end"]], "tomopt.optimisation.callbacks.detector_callbacks.SigmoidPanelSmoothnessSchedule": [[11, 2, 1, "", "on_epoch_begin"], [11, 2, 1, "", "on_train_begin"]], "tomopt.optimisation.callbacks.diagnostic_callbacks": [[11, 1, 1, "", "HitRecord"], [11, 1, 1, "", "ScatterRecord"]], "tomopt.optimisation.callbacks.diagnostic_callbacks.HitRecord": [[11, 2, 1, "", "on_scatter_end"]], "tomopt.optimisation.callbacks.diagnostic_callbacks.ScatterRecord": [[11, 2, 1, "", "get_record"], [11, 2, 1, "", "on_pred_begin"], [11, 2, 1, "", "on_scatter_end"], [11, 2, 1, "", "on_train_begin"]], "tomopt.optimisation.callbacks.eval_metric": [[11, 1, 1, "", "EvalMetric"]], "tomopt.optimisation.callbacks.eval_metric.EvalMetric": [[11, 2, 1, "", "get_metric"], [11, 2, 1, "", "on_train_begin"]], "tomopt.optimisation.callbacks.grad_callbacks": [[11, 1, 1, "", "NoMoreNaNs"]], "tomopt.optimisation.callbacks.grad_callbacks.NoMoreNaNs": [[11, 2, 1, "", "on_backwards_end"]], "tomopt.optimisation.callbacks.heatmap_gif": [[11, 1, 1, "", "HeatMapGif"]], "tomopt.optimisation.callbacks.heatmap_gif.HeatMapGif": [[11, 2, 1, "", "on_epoch_begin"], [11, 2, 1, "", "on_train_begin"], [11, 2, 1, "", "on_train_end"]], "tomopt.optimisation.callbacks.monitors": [[11, 1, 1, "", "MetricLogger"], [11, 1, 1, "", "PanelMetricLogger"]], "tomopt.optimisation.callbacks.monitors.MetricLogger": [[11, 4, 1, "", "cat_palette"], [11, 2, 1, "", "get_loss_history"], [11, 2, 1, "", "get_results"], [11, 4, 1, "", "h_mid"], [11, 4, 1, "", "lbl_col"], [11, 4, 1, "", "lbl_sz"], [11, 4, 1, "", "leg_sz"], [11, 2, 1, "", "on_backwards_end"], [11, 2, 1, "", "on_epoch_begin"], [11, 2, 1, "", "on_epoch_end"], [11, 2, 1, "", "on_train_begin"], [11, 2, 1, "", "on_train_end"], [11, 2, 1, "", "on_volume_batch_end"], [11, 2, 1, "", "on_volume_end"], [11, 2, 1, "", "print_losses"], [11, 4, 1, "", "style"], [11, 4, 1, "", "tk_col"], [11, 4, 1, "", "tk_sz"], [11, 2, 1, "", "update_plot"], [11, 4, 1, "", "w_mid"]], "tomopt.optimisation.callbacks.monitors.PanelMetricLogger": [[11, 2, 1, "", "update_plot"]], "tomopt.optimisation.callbacks.opt_callbacks": [[11, 1, 1, "", "EpochSave"], [11, 1, 1, "", "OneCycle"]], "tomopt.optimisation.callbacks.opt_callbacks.EpochSave": [[11, 2, 1, "", "on_epoch_end"]], "tomopt.optimisation.callbacks.opt_callbacks.OneCycle": [[11, 2, 1, "", "on_epoch_end"], [11, 2, 1, "", "schedule"]], "tomopt.optimisation.callbacks.pred_callbacks": [[11, 1, 1, "", "PredHandler"], [11, 1, 1, "", "Save2HDF5PredHandler"], [11, 1, 1, "", "VolumeTargetPredHandler"]], "tomopt.optimisation.callbacks.pred_callbacks.PredHandler": [[11, 2, 1, "", "get_preds"], [11, 2, 1, "", "on_pred_begin"], [11, 2, 1, "", "on_x0_pred_end"]], "tomopt.optimisation.callbacks.pred_callbacks.Save2HDF5PredHandler": [[11, 2, 1, "", "on_x0_pred_end"]], "tomopt.optimisation.callbacks.pred_callbacks.VolumeTargetPredHandler": [[11, 2, 1, "", "on_x0_pred_end"]], "tomopt.optimisation.callbacks.warmup_callbacks": [[11, 1, 1, "", "CostCoefWarmup"], [11, 1, 1, "", "OptConfig"], [11, 1, 1, "", "PostWarmupCallback"], [11, 1, 1, "", "WarmupCallback"]], "tomopt.optimisation.callbacks.warmup_callbacks.CostCoefWarmup": [[11, 2, 1, "", "on_epoch_end"], [11, 2, 1, "", "on_volume_end"]], "tomopt.optimisation.callbacks.warmup_callbacks.OptConfig": [[11, 2, 1, "", "on_backwards_end"], [11, 2, 1, "", "on_epoch_end"]], "tomopt.optimisation.callbacks.warmup_callbacks.PostWarmupCallback": [[11, 2, 1, "", "check_warmups"], [11, 2, 1, "", "on_epoch_begin"], [11, 2, 1, "", "on_train_begin"]], "tomopt.optimisation.callbacks.warmup_callbacks.WarmupCallback": [[11, 2, 1, "", "check_warmups"], [11, 2, 1, "", "on_epoch_begin"], [11, 2, 1, "", "on_epoch_end"], [11, 2, 1, "", "on_train_begin"]], "tomopt.optimisation.data": [[12, 0, 0, "-", "passives"]], "tomopt.optimisation.data.passives": [[12, 1, 1, "", "AbsBlockPassiveGenerator"], [12, 1, 1, "", "AbsPassiveGenerator"], [12, 1, 1, "", "BlockPresentPassiveGenerator"], [12, 1, 1, "", "PassiveYielder"], [12, 1, 1, "", "RandomBlockPassiveGenerator"], [12, 1, 1, "", "VoxelPassiveGenerator"]], "tomopt.optimisation.data.passives.AbsPassiveGenerator": [[12, 2, 1, "", "generate"], [12, 2, 1, "", "get_data"]], "tomopt.optimisation.loss": [[13, 0, 0, "-", "loss"], [13, 0, 0, "-", "sub_losses"]], "tomopt.optimisation.loss.loss": [[13, 1, 1, "", "AbsDetectorLoss"], [13, 1, 1, "", "AbsMaterialClassLoss"], [13, 1, 1, "", "VolumeClassLoss"], [13, 1, 1, "", "VolumeIntClassLoss"], [13, 1, 1, "", "VolumeMSELoss"], [13, 1, 1, "", "VoxelClassLoss"], [13, 1, 1, "", "VoxelX0Loss"]], "tomopt.optimisation.loss.loss.AbsDetectorLoss": [[13, 2, 1, "", "forward"], [13, 4, 1, "", "training"]], "tomopt.optimisation.loss.loss.AbsMaterialClassLoss": [[13, 4, 1, "", "sub_losses"], [13, 4, 1, "", "training"]], "tomopt.optimisation.loss.loss.VolumeClassLoss": [[13, 4, 1, "", "sub_losses"], [13, 4, 1, "", "training"]], "tomopt.optimisation.loss.loss.VolumeIntClassLoss": [[13, 4, 1, "", "sub_losses"], [13, 4, 1, "", "training"]], "tomopt.optimisation.loss.loss.VolumeMSELoss": [[13, 4, 1, "", "sub_losses"], [13, 4, 1, "", "training"]], "tomopt.optimisation.loss.loss.VoxelClassLoss": [[13, 4, 1, "", "sub_losses"], [13, 4, 1, "", "training"]], "tomopt.optimisation.loss.loss.VoxelX0Loss": [[13, 4, 1, "", "sub_losses"], [13, 4, 1, "", "training"]], "tomopt.optimisation.loss.sub_losses": [[13, 5, 1, "", "integer_class_loss"]], "tomopt.optimisation.wrapper": [[14, 0, 0, "-", "volume_wrapper"]], "tomopt.optimisation.wrapper.volume_wrapper": [[14, 1, 1, "", "AbsVolumeWrapper"], [14, 1, 1, "", "ArbVolumeWrapper"], [14, 1, 1, "", "FitParams"], [14, 1, 1, "", "HeatMapVolumeWrapper"], [14, 1, 1, "", "PanelVolumeWrapper"]], "tomopt.optimisation.wrapper.volume_wrapper.AbsVolumeWrapper": [[14, 2, 1, "", "fit"], [14, 2, 1, "", "get_detectors"], [14, 2, 1, "", "get_opt_lr"], [14, 2, 1, "", "get_opt_mom"], [14, 2, 1, "", "get_param_count"], [14, 2, 1, "", "load"], [14, 4, 1, "", "opts"], [14, 2, 1, "", "predict"], [14, 2, 1, "", "save"], [14, 2, 1, "", "set_opt_lr"], [14, 2, 1, "", "set_opt_mom"]], "tomopt.optimisation.wrapper.volume_wrapper.ArbVolumeWrapper": [[14, 2, 1, "", "from_save"], [14, 4, 1, "", "opts"]], "tomopt.optimisation.wrapper.volume_wrapper.FitParams": [[14, 4, 1, "", "cb_savepath"], [14, 4, 1, "", "cbs"], [14, 4, 1, "", "cyclic_cbs"], [14, 4, 1, "", "device"], [14, 4, 1, "", "epoch"], [14, 4, 1, "", "epoch_bar"], [14, 4, 1, "", "loss_val"], [14, 4, 1, "", "mean_loss"], [14, 4, 1, "", "metric_cbs"], [14, 4, 1, "", "metric_log"], [14, 4, 1, "", "mu"], [14, 4, 1, "", "mu_bs"], [14, 4, 1, "", "n_epochs"], [14, 4, 1, "", "n_mu_per_volume"], [14, 4, 1, "", "passive_bar"], [14, 4, 1, "", "passive_bs"], [14, 4, 1, "", "pred"], [14, 4, 1, "", "sb"], [14, 4, 1, "", "skip_opt_step"], [14, 4, 1, "", "state"], [14, 4, 1, "", "stop"], [14, 4, 1, "", "trn_passives"], [14, 4, 1, "", "tst_passives"], [14, 4, 1, "", "val_passives"], [14, 4, 1, "", "volume_id"], [14, 4, 1, "", "volume_inferrer"], [14, 4, 1, "", "warmup_cbs"]], "tomopt.optimisation.wrapper.volume_wrapper.HeatMapVolumeWrapper": [[14, 2, 1, "", "from_save"], [14, 4, 1, "", "opts"]], "tomopt.optimisation.wrapper.volume_wrapper.PanelVolumeWrapper": [[14, 2, 1, "", "from_save"], [14, 4, 1, "", "opts"]], "tomopt.plotting": [[15, 0, 0, "-", "appearance"], [15, 0, 0, "-", "diagnostics"], [15, 0, 0, "-", "predictions"]], "tomopt.plotting.diagnostics": [[15, 5, 1, "", "plot_hit_density"], [15, 5, 1, "", "plot_scatter_density"]], "tomopt.plotting.predictions": [[15, 5, 1, "", "plot_pred_true_x0"]], "tomopt.utils": [[3, 5, 1, "", "class_to_x0preds"], [3, 5, 1, "", "jacobian"], [3, 5, 1, "", "x0_from_mixture"], [3, 5, 1, "", "x0targs_to_classtargs"]], "tomopt.volume": [[16, 0, 0, "-", "heatmap"], [16, 0, 0, "-", "layer"], [16, 0, 0, "-", "panel"], [16, 0, 0, "-", "scatter_model"], [16, 0, 0, "-", "volume"]], "tomopt.volume.heatmap": [[16, 1, 1, "", "DetectorHeatMap"]], "tomopt.volume.heatmap.DetectorHeatMap": [[16, 2, 1, "", "assign_budget"], [16, 2, 1, "", "clamp_params"], [16, 2, 1, "", "get_cost"], [16, 2, 1, "", "get_efficiency"], [16, 2, 1, "", "get_hits"], [16, 2, 1, "", "get_resolution"], [16, 2, 1, "", "get_xy_mask"], [16, 2, 1, "", "plot_map"], [16, 4, 1, "", "training"], [16, 3, 1, "", "x"], [16, 3, 1, "", "y"]], "tomopt.volume.layer": [[16, 1, 1, "", "AbsDetectorLayer"], [16, 1, 1, "", "AbsLayer"], [16, 1, 1, "", "PanelDetectorLayer"], [16, 1, 1, "", "PassiveLayer"]], "tomopt.volume.layer.AbsDetectorLayer": [[16, 2, 1, "", "assign_budget"], [16, 2, 1, "", "conform_detector"], [16, 2, 1, "", "forward"], [16, 2, 1, "", "get_cost"], [16, 4, 1, "", "training"]], "tomopt.volume.layer.AbsLayer": [[16, 2, 1, "", "forward"], [16, 2, 1, "", "get_lw_z_size"], [16, 4, 1, "", "training"]], "tomopt.volume.layer.PanelDetectorLayer": [[16, 2, 1, "", "assign_budget"], [16, 2, 1, "", "conform_detector"], [16, 2, 1, "", "forward"], [16, 2, 1, "", "get_cost"], [16, 2, 1, "", "get_device"], [16, 2, 1, "", "get_panel_zorder"], [16, 4, 1, "", "rad_length"], [16, 4, 1, "", "training"], [16, 2, 1, "", "yield_zordered_panels"]], "tomopt.volume.layer.PassiveLayer": [[16, 2, 1, "", "abs2idx"], [16, 2, 1, "", "forward"], [16, 2, 1, "", "load_rad_length"], [16, 2, 1, "", "mu_abs2idx"], [16, 4, 1, "", "rad_length"], [16, 2, 1, "", "scatter_and_propagate"], [16, 4, 1, "", "training"]], "tomopt.volume.panel": [[16, 1, 1, "", "DetectorPanel"], [16, 1, 1, "", "SigmoidDetectorPanel"]], "tomopt.volume.panel.DetectorPanel": [[16, 2, 1, "", "assign_budget"], [16, 2, 1, "", "clamp_params"], [16, 2, 1, "", "forward"], [16, 2, 1, "", "get_cost"], [16, 2, 1, "", "get_efficiency"], [16, 2, 1, "", "get_gauss"], [16, 2, 1, "", "get_hits"], [16, 2, 1, "", "get_resolution"], [16, 2, 1, "", "get_scaled_xy_span"], [16, 2, 1, "", "get_xy_mask"], [16, 4, 1, "", "training"], [16, 3, 1, "", "x"], [16, 3, 1, "", "y"]], "tomopt.volume.panel.SigmoidDetectorPanel": [[16, 2, 1, "", "get_efficiency"], [16, 2, 1, "", "get_resolution"], [16, 2, 1, "", "sig_model"], [16, 3, 1, "", "smooth"], [16, 4, 1, "", "training"]], "tomopt.volume.volume": [[16, 1, 1, "", "Volume"]], "tomopt.volume.volume.Volume": [[16, 2, 1, "", "assign_budget"], [16, 2, 1, "", "build_xyz_edges"], [16, 3, 1, "", "device"], [16, 2, 1, "", "draw"], [16, 2, 1, "", "forward"], [16, 2, 1, "", "get_cost"], [16, 2, 1, "", "get_detectors"], [16, 2, 1, "", "get_passive_z_range"], [16, 2, 1, "", "get_passives"], [16, 2, 1, "", "get_rad_cube"], [16, 3, 1, "", "h"], [16, 2, 1, "", "load_rad_length"], [16, 2, 1, "", "lookup_passive_xyz_coords"], [16, 3, 1, "", "lw"], [16, 3, 1, "", "passive_size"], [16, 3, 1, "", "target"], [16, 4, 1, "", "training"], [16, 3, 1, "", "xyz_centres"], [16, 3, 1, "", "xyz_edges"]]}, "objtypes": {"0": "py:module", "1": "py:class", "2": "py:method", "3": "py:property", "4": "py:attribute", "5": "py:function"}, "objnames": {"0": ["py", "module", "Python module"], "1": ["py", "class", "Python class"], "2": ["py", "method", "Python method"], "3": ["py", "property", "Python property"], "4": ["py", "attribute", "Python attribute"], "5": ["py", "function", "Python function"]}, "titleterms": {"tomopt": [0, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16], "differenti": 0, "muon": [0, 9], "tomographi": 0, "optimis": [0, 10, 11, 12, 13, 14], "packag": [0, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16], "overview": 0, "document": 0, "index": 0, "subpackag": [3, 4, 10], "submodul": [3, 5, 6, 7, 8, 9, 11, 12, 13, 14, 15, 16], "core": 3, "modul": [3, 5, 6, 7, 8, 9, 11, 12, 13, 14, 15, 16], "util": 3, "version": 3, "infer": [5, 8], "scatter": 8, "volum": [5, 6, 8, 16], "gener": 9, "muon_batch": 9, "callback": 11, "cyclic_callback": 11, "data_callback": 11, "diagnostic_callback": 11, "eval_metr": 11, "grad_callback": 11, "heatmap_gif": 11, "loss_callback": [], "monitor": 11, "opt_callback": 11, "pred_callback": 11, "warmup_callback": 11, "detector_callback": 11, "heatmap": 16, "layer": 16, "panel": 16, "scatter_model": 16, "instal": 1, "window": 1, "usag": 1, "test": 1, "extern": 1, "repo": 1, "author": 1, "benchmark": [4, 5, 6, 7], "ladle_furnac": 5, "data": [5, 6, 7, 12], "loss": [5, 13], "plot": [5, 15], "small_wal": 6, "u_lorri": 7, "passiv": 12, "sub_loss": 13, "wrapper": 14, "volume_wrapp": 14, "appear": 15, "diagnost": 15, "predict": 15}, "envversion": {"sphinx.domains.c": 2, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 8, "sphinx.domains.index": 1, "sphinx.domains.javascript": 2, "sphinx.domains.math": 2, "sphinx.domains.python": 3, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.intersphinx": 1, "sphinx.ext.todo": 2, "sphinx.ext.viewcode": 1, "sphinx": 57}, "alltitles": {"TomOpt: Differential Muon Tomography Optimisation": [[0, "tomopt-differential-muon-tomography-optimisation"]], "Package overview": [[0, "package-overview"]], "Package documentation": [[0, "package-documentation"]], "Index": [[0, "index"]], "Installation": [[1, "installation"]], "Windows usage": [[1, "windows-usage"]], "Testing": [[1, "testing"]], "External repos": [[1, "external-repos"]], "Authors": [[1, "authors"]], "tomopt": [[2, "tomopt"]], "tomopt package": [[3, "tomopt-package"]], "Subpackages": [[3, "subpackages"], [4, "subpackages"], [10, "subpackages"]], "Submodules": [[3, "submodules"], [5, "submodules"], [6, "submodules"], [7, "submodules"], [8, "submodules"], [9, "submodules"], [11, "submodules"], [12, "submodules"], [13, "submodules"], [14, "submodules"], [15, "submodules"], [16, "submodules"]], "tomopt.core module": [[3, "module-tomopt.core"]], "tomopt.utils module": [[3, "module-tomopt.utils"]], "tomopt.version module": [[3, "module-tomopt.version"]], "tomopt.benchmarks package": [[4, "tomopt-benchmarks-package"]], "tomopt.benchmarks.ladle_furnace package": [[5, "tomopt-benchmarks-ladle-furnace-package"]], "tomopt.benchmarks.ladle_furnace.data module": [[5, "module-tomopt.benchmarks.ladle_furnace.data"]], "tomopt.benchmarks.ladle_furnace.inference module": [[5, "module-tomopt.benchmarks.ladle_furnace.inference"]], "tomopt.benchmarks.ladle_furnace.loss module": [[5, "module-tomopt.benchmarks.ladle_furnace.loss"]], "tomopt.benchmarks.ladle_furnace.plotting module": [[5, "module-tomopt.benchmarks.ladle_furnace.plotting"]], "tomopt.benchmarks.ladle_furnace.volume module": [[5, "module-tomopt.benchmarks.ladle_furnace.volume"]], "tomopt.benchmarks.small_walls package": [[6, "tomopt-benchmarks-small-walls-package"]], "tomopt.benchmarks.small_walls.data module": [[6, "module-tomopt.benchmarks.small_walls.data"]], "tomopt.benchmarks.small_walls.volume module": [[6, "module-tomopt.benchmarks.small_walls.volume"]], "tomopt.benchmarks.u_lorry package": [[7, "tomopt-benchmarks-u-lorry-package"]], "tomopt.benchmarks.u_lorry.data module": [[7, "module-tomopt.benchmarks.u_lorry.data"]], "tomopt.inference package": [[8, "tomopt-inference-package"]], "tomopt.inference.scattering module": [[8, "module-tomopt.inference.scattering"]], "tomopt.inference.volume module": [[8, "module-tomopt.inference.volume"]], "tomopt.muon package": [[9, "tomopt-muon-package"]], "tomopt.muon.generation module": [[9, "module-tomopt.muon.generation"]], "tomopt.muon.muon_batch module": [[9, "module-tomopt.muon.muon_batch"]], "tomopt.optimisation package": [[10, "tomopt-optimisation-package"]], "tomopt.optimisation.callbacks package": [[11, "tomopt-optimisation-callbacks-package"]], "tomopt.optimisation.callbacks.callback module": [[11, "module-tomopt.optimisation.callbacks.callback"]], "tomopt.optimisation.callbacks.cyclic_callbacks module": [[11, "module-tomopt.optimisation.callbacks.cyclic_callbacks"]], "tomopt.optimisation.callbacks.data_callbacks module": [[11, "module-tomopt.optimisation.callbacks.data_callbacks"]], "tomopt.optimisation.callbacks.detector_callbacks module": [[11, "module-tomopt.optimisation.callbacks.detector_callbacks"]], "tomopt.optimisation.callbacks.diagnostic_callbacks module": [[11, "module-tomopt.optimisation.callbacks.diagnostic_callbacks"]], "tomopt.optimisation.callbacks.eval_metric module": [[11, "module-tomopt.optimisation.callbacks.eval_metric"]], "tomopt.optimisation.callbacks.grad_callbacks module": [[11, "module-tomopt.optimisation.callbacks.grad_callbacks"]], "tomopt.optimisation.callbacks.heatmap_gif module": [[11, "module-tomopt.optimisation.callbacks.heatmap_gif"]], "tomopt.optimisation.callbacks.monitors module": [[11, "module-tomopt.optimisation.callbacks.monitors"]], "tomopt.optimisation.callbacks.opt_callbacks module": [[11, "module-tomopt.optimisation.callbacks.opt_callbacks"]], "tomopt.optimisation.callbacks.pred_callbacks module": [[11, "module-tomopt.optimisation.callbacks.pred_callbacks"]], "tomopt.optimisation.callbacks.warmup_callbacks module": [[11, "module-tomopt.optimisation.callbacks.warmup_callbacks"]], "tomopt.optimisation.data package": [[12, "tomopt-optimisation-data-package"]], "tomopt.optimisation.data.passives module": [[12, "module-tomopt.optimisation.data.passives"]], "tomopt.optimisation.loss package": [[13, "tomopt-optimisation-loss-package"]], "tomopt.optimisation.loss.loss module": [[13, "module-tomopt.optimisation.loss.loss"]], "tomopt.optimisation.loss.sub_losses module": [[13, "module-tomopt.optimisation.loss.sub_losses"]], "tomopt.optimisation.wrapper package": [[14, "tomopt-optimisation-wrapper-package"]], "tomopt.optimisation.wrapper.volume_wrapper module": [[14, "module-tomopt.optimisation.wrapper.volume_wrapper"]], "tomopt.plotting package": [[15, "tomopt-plotting-package"]], "tomopt.plotting.appearance module": [[15, "module-tomopt.plotting.appearance"]], "tomopt.plotting.diagnostics module": [[15, "module-tomopt.plotting.diagnostics"]], "tomopt.plotting.predictions module": [[15, "module-tomopt.plotting.predictions"]], "tomopt.volume package": [[16, "tomopt-volume-package"]], "tomopt.volume.heatmap module": [[16, "module-tomopt.volume.heatmap"]], "tomopt.volume.layer module": [[16, "module-tomopt.volume.layer"]], "tomopt.volume.panel module": [[16, "module-tomopt.volume.panel"]], "tomopt.volume.scatter_model module": [[16, "module-tomopt.volume.scatter_model"]], "tomopt.volume.volume module": [[16, "module-tomopt.volume.volume"]]}, "indexentries": {"class_to_x0preds() (in module tomopt.utils)": [[3, "tomopt.utils.class_to_x0preds"]], "jacobian() (in module tomopt.utils)": [[3, "tomopt.utils.jacobian"]], "module": [[3, "module-tomopt.core"], [3, "module-tomopt.utils"], [3, "module-tomopt.version"], [5, "module-tomopt.benchmarks.ladle_furnace.data"], [5, "module-tomopt.benchmarks.ladle_furnace.inference"], [5, "module-tomopt.benchmarks.ladle_furnace.loss"], [5, "module-tomopt.benchmarks.ladle_furnace.plotting"], [5, "module-tomopt.benchmarks.ladle_furnace.volume"], [6, "module-tomopt.benchmarks.small_walls.data"], [6, "module-tomopt.benchmarks.small_walls.volume"], [7, "module-tomopt.benchmarks.u_lorry.data"], [8, "module-tomopt.inference.scattering"], [8, "module-tomopt.inference.volume"], [9, "module-tomopt.muon.generation"], [9, "module-tomopt.muon.muon_batch"], [11, "module-tomopt.optimisation.callbacks.callback"], [11, "module-tomopt.optimisation.callbacks.cyclic_callbacks"], [11, "module-tomopt.optimisation.callbacks.data_callbacks"], [11, "module-tomopt.optimisation.callbacks.detector_callbacks"], [11, "module-tomopt.optimisation.callbacks.diagnostic_callbacks"], [11, "module-tomopt.optimisation.callbacks.eval_metric"], [11, "module-tomopt.optimisation.callbacks.grad_callbacks"], [11, "module-tomopt.optimisation.callbacks.heatmap_gif"], [11, "module-tomopt.optimisation.callbacks.monitors"], [11, "module-tomopt.optimisation.callbacks.opt_callbacks"], [11, "module-tomopt.optimisation.callbacks.pred_callbacks"], [11, "module-tomopt.optimisation.callbacks.warmup_callbacks"], [12, "module-tomopt.optimisation.data.passives"], [13, "module-tomopt.optimisation.loss.loss"], [13, "module-tomopt.optimisation.loss.sub_losses"], [14, "module-tomopt.optimisation.wrapper.volume_wrapper"], [15, "module-tomopt.plotting.appearance"], [15, "module-tomopt.plotting.diagnostics"], [15, "module-tomopt.plotting.predictions"], [16, "module-tomopt.volume.heatmap"], [16, "module-tomopt.volume.layer"], [16, "module-tomopt.volume.panel"], [16, "module-tomopt.volume.scatter_model"], [16, "module-tomopt.volume.volume"]], "tomopt.core": [[3, "module-tomopt.core"]], "tomopt.utils": [[3, "module-tomopt.utils"]], "tomopt.version": [[3, "module-tomopt.version"]], "x0_from_mixture() (in module tomopt.utils)": [[3, "tomopt.utils.x0_from_mixture"]], "x0targs_to_classtargs() (in module tomopt.utils)": [[3, "tomopt.utils.x0targs_to_classtargs"]], "edgedetladlefurnacefilllevelinferrer (class in tomopt.benchmarks.ladle_furnace.inference)": [[5, "tomopt.benchmarks.ladle_furnace.inference.EdgeDetLadleFurnaceFillLevelInferrer"]], "ladlefurnaceintclassloss (class in tomopt.benchmarks.ladle_furnace.loss)": [[5, "tomopt.benchmarks.ladle_furnace.loss.LadleFurnaceIntClassLoss"]], "ladlefurnacepassivegenerator (class in tomopt.benchmarks.ladle_furnace.data)": [[5, "tomopt.benchmarks.ladle_furnace.data.LadleFurnacePassiveGenerator"]], "linearcorrectioncallback (class in tomopt.benchmarks.ladle_furnace.inference)": [[5, "tomopt.benchmarks.ladle_furnace.inference.LinearCorrectionCallback"]], "pocazladlefurnacefilllevelinferrer (class in tomopt.benchmarks.ladle_furnace.inference)": [[5, "tomopt.benchmarks.ladle_furnace.inference.PocaZLadleFurnaceFillLevelInferrer"]], "spreadrangeloss (class in tomopt.benchmarks.ladle_furnace.loss)": [[5, "tomopt.benchmarks.ladle_furnace.loss.SpreadRangeLoss"]], "avg_1d() (tomopt.benchmarks.ladle_furnace.inference.edgedetladlefurnacefilllevelinferrer static method)": [[5, "tomopt.benchmarks.ladle_furnace.inference.EdgeDetLadleFurnaceFillLevelInferrer.avg_1d"]], "avg_3d() (tomopt.benchmarks.ladle_furnace.inference.edgedetladlefurnacefilllevelinferrer static method)": [[5, "tomopt.benchmarks.ladle_furnace.inference.EdgeDetLadleFurnaceFillLevelInferrer.avg_3d"]], "avg_layers() (tomopt.benchmarks.ladle_furnace.inference.edgedetladlefurnacefilllevelinferrer static method)": [[5, "tomopt.benchmarks.ladle_furnace.inference.EdgeDetLadleFurnaceFillLevelInferrer.avg_layers"]], "compare_init_optimised_2() (in module tomopt.benchmarks.ladle_furnace.plotting)": [[5, "tomopt.benchmarks.ladle_furnace.plotting.compare_init_optimised_2"]], "compare_init_to_optimised() (in module tomopt.benchmarks.ladle_furnace.plotting)": [[5, "tomopt.benchmarks.ladle_furnace.plotting.compare_init_to_optimised"]], "compare_optimised_to_baselines() (in module tomopt.benchmarks.ladle_furnace.plotting)": [[5, "tomopt.benchmarks.ladle_furnace.plotting.compare_optimised_to_baselines"]], "compare_raw_init_to_bias_corrected_init() (in module tomopt.benchmarks.ladle_furnace.plotting)": [[5, "tomopt.benchmarks.ladle_furnace.plotting.compare_raw_init_to_bias_corrected_init"]], "compute_efficiency() (tomopt.benchmarks.ladle_furnace.inference.pocazladlefurnacefilllevelinferrer method)": [[5, "tomopt.benchmarks.ladle_furnace.inference.PocaZLadleFurnaceFillLevelInferrer.compute_efficiency"]], "edge_det() (tomopt.benchmarks.ladle_furnace.inference.edgedetladlefurnacefilllevelinferrer static method)": [[5, "tomopt.benchmarks.ladle_furnace.inference.EdgeDetLadleFurnaceFillLevelInferrer.edge_det"]], "gauss_1d() (tomopt.benchmarks.ladle_furnace.inference.edgedetladlefurnacefilllevelinferrer static method)": [[5, "tomopt.benchmarks.ladle_furnace.inference.EdgeDetLadleFurnaceFillLevelInferrer.gauss_1d"]], "gauss_3d() (tomopt.benchmarks.ladle_furnace.inference.edgedetladlefurnacefilllevelinferrer static method)": [[5, "tomopt.benchmarks.ladle_furnace.inference.EdgeDetLadleFurnaceFillLevelInferrer.gauss_3d"]], "get_baseline_detector_1() (in module tomopt.benchmarks.ladle_furnace.volume)": [[5, "tomopt.benchmarks.ladle_furnace.volume.get_baseline_detector_1"]], "get_baseline_detector_2() (in module tomopt.benchmarks.ladle_furnace.volume)": [[5, "tomopt.benchmarks.ladle_furnace.volume.get_baseline_detector_2"]], "get_initial_detector() (in module tomopt.benchmarks.ladle_furnace.volume)": [[5, "tomopt.benchmarks.ladle_furnace.volume.get_initial_detector"]], "get_prediction() (tomopt.benchmarks.ladle_furnace.inference.pocazladlefurnacefilllevelinferrer method)": [[5, "tomopt.benchmarks.ladle_furnace.inference.PocaZLadleFurnaceFillLevelInferrer.get_prediction"]], "laplacian_1d() (tomopt.benchmarks.ladle_furnace.inference.edgedetladlefurnacefilllevelinferrer method)": [[5, "tomopt.benchmarks.ladle_furnace.inference.EdgeDetLadleFurnaceFillLevelInferrer.laplacian_1d"]], "max_div_min() (tomopt.benchmarks.ladle_furnace.inference.edgedetladlefurnacefilllevelinferrer static method)": [[5, "tomopt.benchmarks.ladle_furnace.inference.EdgeDetLadleFurnaceFillLevelInferrer.max_div_min"]], "max_sub_min() (tomopt.benchmarks.ladle_furnace.inference.edgedetladlefurnacefilllevelinferrer static method)": [[5, "tomopt.benchmarks.ladle_furnace.inference.EdgeDetLadleFurnaceFillLevelInferrer.max_sub_min"]], "muon_efficiency (tomopt.benchmarks.ladle_furnace.inference.pocazladlefurnacefilllevelinferrer property)": [[5, "tomopt.benchmarks.ladle_furnace.inference.PocaZLadleFurnaceFillLevelInferrer.muon_efficiency"]], "muon_poca_xyz (tomopt.benchmarks.ladle_furnace.inference.pocazladlefurnacefilllevelinferrer property)": [[5, "tomopt.benchmarks.ladle_furnace.inference.PocaZLadleFurnaceFillLevelInferrer.muon_poca_xyz"]], "muon_poca_xyz_unc (tomopt.benchmarks.ladle_furnace.inference.pocazladlefurnacefilllevelinferrer property)": [[5, "tomopt.benchmarks.ladle_furnace.inference.PocaZLadleFurnaceFillLevelInferrer.muon_poca_xyz_unc"]], "n_mu (tomopt.benchmarks.ladle_furnace.inference.pocazladlefurnacefilllevelinferrer property)": [[5, "tomopt.benchmarks.ladle_furnace.inference.PocaZLadleFurnaceFillLevelInferrer.n_mu"]], "negative() (tomopt.benchmarks.ladle_furnace.inference.edgedetladlefurnacefilllevelinferrer static method)": [[5, "tomopt.benchmarks.ladle_furnace.inference.EdgeDetLadleFurnaceFillLevelInferrer.negative"]], "on_backwards_end() (tomopt.benchmarks.ladle_furnace.inference.linearcorrectioncallback method)": [[5, "tomopt.benchmarks.ladle_furnace.inference.LinearCorrectionCallback.on_backwards_end"]], "on_train_begin() (tomopt.benchmarks.ladle_furnace.inference.linearcorrectioncallback method)": [[5, "tomopt.benchmarks.ladle_furnace.inference.LinearCorrectionCallback.on_train_begin"]], "on_volume_batch_begin() (tomopt.benchmarks.ladle_furnace.inference.linearcorrectioncallback method)": [[5, "tomopt.benchmarks.ladle_furnace.inference.LinearCorrectionCallback.on_volume_batch_begin"]], "on_volume_batch_begin() (tomopt.benchmarks.ladle_furnace.loss.spreadrangeloss method)": [[5, "tomopt.benchmarks.ladle_furnace.loss.SpreadRangeLoss.on_volume_batch_begin"]], "on_volume_batch_end() (tomopt.benchmarks.ladle_furnace.loss.spreadrangeloss method)": [[5, "tomopt.benchmarks.ladle_furnace.loss.SpreadRangeLoss.on_volume_batch_end"]], "on_x0_pred_end() (tomopt.benchmarks.ladle_furnace.inference.linearcorrectioncallback method)": [[5, "tomopt.benchmarks.ladle_furnace.inference.LinearCorrectionCallback.on_x0_pred_end"]], "on_x0_pred_end() (tomopt.benchmarks.ladle_furnace.loss.spreadrangeloss method)": [[5, "tomopt.benchmarks.ladle_furnace.loss.SpreadRangeLoss.on_x0_pred_end"]], "pred_height (tomopt.benchmarks.ladle_furnace.inference.pocazladlefurnacefilllevelinferrer property)": [[5, "tomopt.benchmarks.ladle_furnace.inference.PocaZLadleFurnaceFillLevelInferrer.pred_height"]], "prewit_1d() (tomopt.benchmarks.ladle_furnace.inference.edgedetladlefurnacefilllevelinferrer method)": [[5, "tomopt.benchmarks.ladle_furnace.inference.EdgeDetLadleFurnaceFillLevelInferrer.prewit_1d"]], "remove_ladle() (tomopt.benchmarks.ladle_furnace.inference.edgedetladlefurnacefilllevelinferrer static method)": [[5, "tomopt.benchmarks.ladle_furnace.inference.EdgeDetLadleFurnaceFillLevelInferrer.remove_ladle"]], "ridge_1d_0() (tomopt.benchmarks.ladle_furnace.inference.edgedetladlefurnacefilllevelinferrer method)": [[5, "tomopt.benchmarks.ladle_furnace.inference.EdgeDetLadleFurnaceFillLevelInferrer.ridge_1d_0"]], "ridge_1d_2() (tomopt.benchmarks.ladle_furnace.inference.edgedetladlefurnacefilllevelinferrer method)": [[5, "tomopt.benchmarks.ladle_furnace.inference.EdgeDetLadleFurnaceFillLevelInferrer.ridge_1d_2"]], "ridge_1d_4() (tomopt.benchmarks.ladle_furnace.inference.edgedetladlefurnacefilllevelinferrer method)": [[5, "tomopt.benchmarks.ladle_furnace.inference.EdgeDetLadleFurnaceFillLevelInferrer.ridge_1d_4"]], "ridge_1d_8() (tomopt.benchmarks.ladle_furnace.inference.edgedetladlefurnacefilllevelinferrer method)": [[5, "tomopt.benchmarks.ladle_furnace.inference.EdgeDetLadleFurnaceFillLevelInferrer.ridge_1d_8"]], "smooth (tomopt.benchmarks.ladle_furnace.inference.pocazladlefurnacefilllevelinferrer property)": [[5, "tomopt.benchmarks.ladle_furnace.inference.PocaZLadleFurnaceFillLevelInferrer.smooth"]], "tomopt.benchmarks.ladle_furnace.data": [[5, "module-tomopt.benchmarks.ladle_furnace.data"]], "tomopt.benchmarks.ladle_furnace.inference": [[5, "module-tomopt.benchmarks.ladle_furnace.inference"]], "tomopt.benchmarks.ladle_furnace.loss": [[5, "module-tomopt.benchmarks.ladle_furnace.loss"]], "tomopt.benchmarks.ladle_furnace.plotting": [[5, "module-tomopt.benchmarks.ladle_furnace.plotting"]], "tomopt.benchmarks.ladle_furnace.volume": [[5, "module-tomopt.benchmarks.ladle_furnace.volume"]], "training (tomopt.benchmarks.ladle_furnace.loss.ladlefurnaceintclassloss attribute)": [[5, "tomopt.benchmarks.ladle_furnace.loss.LadleFurnaceIntClassLoss.training"]], "x02probs() (tomopt.benchmarks.ladle_furnace.inference.edgedetladlefurnacefilllevelinferrer method)": [[5, "tomopt.benchmarks.ladle_furnace.inference.EdgeDetLadleFurnaceFillLevelInferrer.x02probs"]], "smallwallspassivegenerator (class in tomopt.benchmarks.small_walls.data)": [[6, "tomopt.benchmarks.small_walls.data.SmallWallsPassiveGenerator"]], "get_small_walls_volume() (in module tomopt.benchmarks.small_walls.volume)": [[6, "tomopt.benchmarks.small_walls.volume.get_small_walls_volume"]], "get_small_walls_volume_wrapper() (in module tomopt.benchmarks.small_walls.volume)": [[6, "tomopt.benchmarks.small_walls.volume.get_small_walls_volume_wrapper"]], "tomopt.benchmarks.small_walls.data": [[6, "module-tomopt.benchmarks.small_walls.data"]], "tomopt.benchmarks.small_walls.volume": [[6, "module-tomopt.benchmarks.small_walls.volume"]], "ulorrypassivegenerator (class in tomopt.benchmarks.u_lorry.data)": [[7, "tomopt.benchmarks.u_lorry.data.ULorryPassiveGenerator"]], "tomopt.benchmarks.u_lorry.data": [[7, "module-tomopt.benchmarks.u_lorry.data"]], "absintclassifierfromx0 (class in tomopt.inference.volume)": [[8, "tomopt.inference.volume.AbsIntClassifierFromX0"]], "absvolumeinferrer (class in tomopt.inference.volume)": [[8, "tomopt.inference.volume.AbsVolumeInferrer"]], "absx0inferrer (class in tomopt.inference.volume)": [[8, "tomopt.inference.volume.AbsX0Inferrer"]], "denseblockclassifierfromx0s (class in tomopt.inference.volume)": [[8, "tomopt.inference.volume.DenseBlockClassifierFromX0s"]], "genscatterbatch (class in tomopt.inference.scattering)": [[8, "tomopt.inference.scattering.GenScatterBatch"]], "panelx0inferrer (class in tomopt.inference.volume)": [[8, "tomopt.inference.volume.PanelX0Inferrer"]], "scatterbatch (class in tomopt.inference.scattering)": [[8, "tomopt.inference.scattering.ScatterBatch"]], "above_gen_hits (tomopt.inference.scattering.scatterbatch property)": [[8, "tomopt.inference.scattering.ScatterBatch.above_gen_hits"]], "above_hit_effs (tomopt.inference.scattering.scatterbatch property)": [[8, "tomopt.inference.scattering.ScatterBatch.above_hit_effs"]], "above_hit_uncs (tomopt.inference.scattering.scatterbatch property)": [[8, "tomopt.inference.scattering.ScatterBatch.above_hit_uncs"]], "above_hits (tomopt.inference.scattering.scatterbatch property)": [[8, "tomopt.inference.scattering.ScatterBatch.above_hits"]], "add_scatters() (tomopt.inference.volume.absintclassifierfromx0 method)": [[8, "tomopt.inference.volume.AbsIntClassifierFromX0.add_scatters"]], "add_scatters() (tomopt.inference.volume.absvolumeinferrer method)": [[8, "tomopt.inference.volume.AbsVolumeInferrer.add_scatters"]], "add_scatters() (tomopt.inference.volume.denseblockclassifierfromx0s method)": [[8, "tomopt.inference.volume.DenseBlockClassifierFromX0s.add_scatters"]], "below_gen_hits (tomopt.inference.scattering.scatterbatch property)": [[8, "tomopt.inference.scattering.ScatterBatch.below_gen_hits"]], "below_hit_effs (tomopt.inference.scattering.scatterbatch property)": [[8, "tomopt.inference.scattering.ScatterBatch.below_hit_effs"]], "below_hit_uncs (tomopt.inference.scattering.scatterbatch property)": [[8, "tomopt.inference.scattering.ScatterBatch.below_hit_uncs"]], "below_hits (tomopt.inference.scattering.scatterbatch property)": [[8, "tomopt.inference.scattering.ScatterBatch.below_hits"]], "compute_efficiency() (tomopt.inference.volume.absintclassifierfromx0 method)": [[8, "tomopt.inference.volume.AbsIntClassifierFromX0.compute_efficiency"]], "compute_efficiency() (tomopt.inference.volume.absvolumeinferrer method)": [[8, "tomopt.inference.volume.AbsVolumeInferrer.compute_efficiency"]], "compute_efficiency() (tomopt.inference.volume.denseblockclassifierfromx0s method)": [[8, "tomopt.inference.volume.DenseBlockClassifierFromX0s.compute_efficiency"]], "compute_efficiency() (tomopt.inference.volume.panelx0inferrer method)": [[8, "tomopt.inference.volume.PanelX0Inferrer.compute_efficiency"]], "dphi (tomopt.inference.scattering.scatterbatch property)": [[8, "tomopt.inference.scattering.ScatterBatch.dphi"]], "dphi_unc (tomopt.inference.scattering.scatterbatch property)": [[8, "tomopt.inference.scattering.ScatterBatch.dphi_unc"]], "dtheta (tomopt.inference.scattering.scatterbatch property)": [[8, "tomopt.inference.scattering.ScatterBatch.dtheta"]], "dtheta_unc (tomopt.inference.scattering.scatterbatch property)": [[8, "tomopt.inference.scattering.ScatterBatch.dtheta_unc"]], "dtheta_xy (tomopt.inference.scattering.scatterbatch property)": [[8, "tomopt.inference.scattering.ScatterBatch.dtheta_xy"]], "dtheta_xy_unc (tomopt.inference.scattering.scatterbatch property)": [[8, "tomopt.inference.scattering.ScatterBatch.dtheta_xy_unc"]], "dxy (tomopt.inference.scattering.scatterbatch property)": [[8, "tomopt.inference.scattering.ScatterBatch.dxy"]], "dxy_unc (tomopt.inference.scattering.scatterbatch property)": [[8, "tomopt.inference.scattering.ScatterBatch.dxy_unc"]], "gen_hits (tomopt.inference.scattering.scatterbatch property)": [[8, "tomopt.inference.scattering.ScatterBatch.gen_hits"]], "get_muon_trajectory() (tomopt.inference.scattering.scatterbatch static method)": [[8, "tomopt.inference.scattering.ScatterBatch.get_muon_trajectory"]], "get_prediction() (tomopt.inference.volume.absintclassifierfromx0 method)": [[8, "tomopt.inference.volume.AbsIntClassifierFromX0.get_prediction"]], "get_prediction() (tomopt.inference.volume.absvolumeinferrer method)": [[8, "tomopt.inference.volume.AbsVolumeInferrer.get_prediction"]], "get_prediction() (tomopt.inference.volume.absx0inferrer method)": [[8, "tomopt.inference.volume.AbsX0Inferrer.get_prediction"]], "get_prediction() (tomopt.inference.volume.denseblockclassifierfromx0s method)": [[8, "tomopt.inference.volume.DenseBlockClassifierFromX0s.get_prediction"]], "get_scatter_mask() (tomopt.inference.scattering.scatterbatch method)": [[8, "tomopt.inference.scattering.ScatterBatch.get_scatter_mask"]], "hit_effs (tomopt.inference.scattering.scatterbatch property)": [[8, "tomopt.inference.scattering.ScatterBatch.hit_effs"]], "hit_uncs (tomopt.inference.scattering.scatterbatch property)": [[8, "tomopt.inference.scattering.ScatterBatch.hit_uncs"]], "hits (tomopt.inference.scattering.scatterbatch property)": [[8, "tomopt.inference.scattering.ScatterBatch.hits"]], "muon_efficiency (tomopt.inference.volume.absx0inferrer property)": [[8, "tomopt.inference.volume.AbsX0Inferrer.muon_efficiency"]], "muon_mom (tomopt.inference.volume.absx0inferrer property)": [[8, "tomopt.inference.volume.AbsX0Inferrer.muon_mom"]], "muon_mom_unc (tomopt.inference.volume.absx0inferrer property)": [[8, "tomopt.inference.volume.AbsX0Inferrer.muon_mom_unc"]], "muon_poca_xyz (tomopt.inference.volume.absx0inferrer property)": [[8, "tomopt.inference.volume.AbsX0Inferrer.muon_poca_xyz"]], "muon_poca_xyz_unc (tomopt.inference.volume.absx0inferrer property)": [[8, "tomopt.inference.volume.AbsX0Inferrer.muon_poca_xyz_unc"]], "muon_probs_per_voxel_zxy (tomopt.inference.volume.absx0inferrer property)": [[8, "tomopt.inference.volume.AbsX0Inferrer.muon_probs_per_voxel_zxy"]], "muon_theta_in (tomopt.inference.volume.absx0inferrer property)": [[8, "tomopt.inference.volume.AbsX0Inferrer.muon_theta_in"]], "muon_theta_in_unc (tomopt.inference.volume.absx0inferrer property)": [[8, "tomopt.inference.volume.AbsX0Inferrer.muon_theta_in_unc"]], "muon_theta_out (tomopt.inference.volume.absx0inferrer property)": [[8, "tomopt.inference.volume.AbsX0Inferrer.muon_theta_out"]], "muon_theta_out_unc (tomopt.inference.volume.absx0inferrer property)": [[8, "tomopt.inference.volume.AbsX0Inferrer.muon_theta_out_unc"]], "muon_total_scatter (tomopt.inference.volume.absx0inferrer property)": [[8, "tomopt.inference.volume.AbsX0Inferrer.muon_total_scatter"]], "muon_total_scatter_unc (tomopt.inference.volume.absx0inferrer property)": [[8, "tomopt.inference.volume.AbsX0Inferrer.muon_total_scatter_unc"]], "n_hits_above (tomopt.inference.scattering.scatterbatch property)": [[8, "tomopt.inference.scattering.ScatterBatch.n_hits_above"]], "n_hits_below (tomopt.inference.scattering.scatterbatch property)": [[8, "tomopt.inference.scattering.ScatterBatch.n_hits_below"]], "n_mu (tomopt.inference.volume.absx0inferrer property)": [[8, "tomopt.inference.volume.AbsX0Inferrer.n_mu"]], "phi_in (tomopt.inference.scattering.scatterbatch property)": [[8, "tomopt.inference.scattering.ScatterBatch.phi_in"]], "phi_in_unc (tomopt.inference.scattering.scatterbatch property)": [[8, "tomopt.inference.scattering.ScatterBatch.phi_in_unc"]], "phi_out (tomopt.inference.scattering.scatterbatch property)": [[8, "tomopt.inference.scattering.ScatterBatch.phi_out"]], "phi_out_unc (tomopt.inference.scattering.scatterbatch property)": [[8, "tomopt.inference.scattering.ScatterBatch.phi_out_unc"]], "plot_scatter() (tomopt.inference.scattering.scatterbatch method)": [[8, "tomopt.inference.scattering.ScatterBatch.plot_scatter"]], "poca_xyz (tomopt.inference.scattering.scatterbatch property)": [[8, "tomopt.inference.scattering.ScatterBatch.poca_xyz"]], "poca_xyz_unc (tomopt.inference.scattering.scatterbatch property)": [[8, "tomopt.inference.scattering.ScatterBatch.poca_xyz_unc"]], "reco_hits (tomopt.inference.scattering.scatterbatch property)": [[8, "tomopt.inference.scattering.ScatterBatch.reco_hits"]], "theta_in (tomopt.inference.scattering.scatterbatch property)": [[8, "tomopt.inference.scattering.ScatterBatch.theta_in"]], "theta_in_unc (tomopt.inference.scattering.scatterbatch property)": [[8, "tomopt.inference.scattering.ScatterBatch.theta_in_unc"]], "theta_msc (tomopt.inference.scattering.scatterbatch property)": [[8, "tomopt.inference.scattering.ScatterBatch.theta_msc"]], "theta_msc_unc (tomopt.inference.scattering.scatterbatch property)": [[8, "tomopt.inference.scattering.ScatterBatch.theta_msc_unc"]], "theta_out (tomopt.inference.scattering.scatterbatch property)": [[8, "tomopt.inference.scattering.ScatterBatch.theta_out"]], "theta_out_unc (tomopt.inference.scattering.scatterbatch property)": [[8, "tomopt.inference.scattering.ScatterBatch.theta_out_unc"]], "theta_xy_in (tomopt.inference.scattering.scatterbatch property)": [[8, "tomopt.inference.scattering.ScatterBatch.theta_xy_in"]], "theta_xy_in_unc (tomopt.inference.scattering.scatterbatch property)": [[8, "tomopt.inference.scattering.ScatterBatch.theta_xy_in_unc"]], "theta_xy_out (tomopt.inference.scattering.scatterbatch property)": [[8, "tomopt.inference.scattering.ScatterBatch.theta_xy_out"]], "theta_xy_out_unc (tomopt.inference.scattering.scatterbatch property)": [[8, "tomopt.inference.scattering.ScatterBatch.theta_xy_out_unc"]], "tomopt.inference.scattering": [[8, "module-tomopt.inference.scattering"]], "tomopt.inference.volume": [[8, "module-tomopt.inference.volume"]], "total_scatter (tomopt.inference.scattering.scatterbatch property)": [[8, "tomopt.inference.scattering.ScatterBatch.total_scatter"]], "total_scatter_unc (tomopt.inference.scattering.scatterbatch property)": [[8, "tomopt.inference.scattering.ScatterBatch.total_scatter_unc"]], "track_in (tomopt.inference.scattering.scatterbatch property)": [[8, "tomopt.inference.scattering.ScatterBatch.track_in"]], "track_out (tomopt.inference.scattering.scatterbatch property)": [[8, "tomopt.inference.scattering.ScatterBatch.track_out"]], "track_start_in (tomopt.inference.scattering.scatterbatch property)": [[8, "tomopt.inference.scattering.ScatterBatch.track_start_in"]], "track_start_out (tomopt.inference.scattering.scatterbatch property)": [[8, "tomopt.inference.scattering.ScatterBatch.track_start_out"]], "vox_zxy_x0_pred_uncs (tomopt.inference.volume.absx0inferrer property)": [[8, "tomopt.inference.volume.AbsX0Inferrer.vox_zxy_x0_pred_uncs"]], "vox_zxy_x0_preds (tomopt.inference.volume.absx0inferrer property)": [[8, "tomopt.inference.volume.AbsX0Inferrer.vox_zxy_x0_preds"]], "x02probs() (tomopt.inference.volume.absintclassifierfromx0 method)": [[8, "tomopt.inference.volume.AbsIntClassifierFromX0.x02probs"]], "x0_from_scatters() (tomopt.inference.volume.absx0inferrer static method)": [[8, "tomopt.inference.volume.AbsX0Inferrer.x0_from_scatters"]], "xyz_in (tomopt.inference.scattering.scatterbatch property)": [[8, "tomopt.inference.scattering.ScatterBatch.xyz_in"]], "xyz_in_unc (tomopt.inference.scattering.scatterbatch property)": [[8, "tomopt.inference.scattering.ScatterBatch.xyz_in_unc"]], "xyz_out (tomopt.inference.scattering.scatterbatch property)": [[8, "tomopt.inference.scattering.ScatterBatch.xyz_out"]], "xyz_out_unc (tomopt.inference.scattering.scatterbatch property)": [[8, "tomopt.inference.scattering.ScatterBatch.xyz_out_unc"]], "absmuongenerator (class in tomopt.muon.generation)": [[9, "tomopt.muon.generation.AbsMuonGenerator"]], "e_0 (tomopt.muon.generation.muongenerator2016 attribute)": [[9, "tomopt.muon.generation.MuonGenerator2016.E_0"]], "e_c (tomopt.muon.generation.muongenerator2016 attribute)": [[9, "tomopt.muon.generation.MuonGenerator2016.E_c"]], "i_0 (tomopt.muon.generation.muongenerator2016 attribute)": [[9, "tomopt.muon.generation.MuonGenerator2016.I_0"]], "muonbatch (class in tomopt.muon.muon_batch)": [[9, "tomopt.muon.muon_batch.MuonBatch"]], "muongenerator2015 (class in tomopt.muon.generation)": [[9, "tomopt.muon.generation.MuonGenerator2015"]], "muongenerator2016 (class in tomopt.muon.generation)": [[9, "tomopt.muon.generation.MuonGenerator2016"]], "n (tomopt.muon.generation.muongenerator2016 attribute)": [[9, "tomopt.muon.generation.MuonGenerator2016.N"], [9, "tomopt.muon.generation.MuonGenerator2016.n"]], "p1 (tomopt.muon.generation.muongenerator2015 attribute)": [[9, "tomopt.muon.generation.MuonGenerator2015.P1"]], "p2 (tomopt.muon.generation.muongenerator2015 attribute)": [[9, "tomopt.muon.generation.MuonGenerator2015.P2"]], "p3 (tomopt.muon.generation.muongenerator2015 attribute)": [[9, "tomopt.muon.generation.MuonGenerator2015.P3"]], "p4 (tomopt.muon.generation.muongenerator2015 attribute)": [[9, "tomopt.muon.generation.MuonGenerator2015.P4"]], "p5 (tomopt.muon.generation.muongenerator2015 attribute)": [[9, "tomopt.muon.generation.MuonGenerator2015.P5"]], "rod (tomopt.muon.generation.muongenerator2016 attribute)": [[9, "tomopt.muon.generation.MuonGenerator2016.Rod"]], "append_hits() (tomopt.muon.muon_batch.muonbatch method)": [[9, "tomopt.muon.muon_batch.MuonBatch.append_hits"]], "copy() (tomopt.muon.muon_batch.muonbatch method)": [[9, "tomopt.muon.muon_batch.MuonBatch.copy"]], "dtheta() (tomopt.muon.muon_batch.muonbatch method)": [[9, "tomopt.muon.muon_batch.MuonBatch.dtheta"]], "dtheta_x() (tomopt.muon.muon_batch.muonbatch method)": [[9, "tomopt.muon.muon_batch.MuonBatch.dtheta_x"]], "dtheta_y() (tomopt.muon.muon_batch.muonbatch method)": [[9, "tomopt.muon.muon_batch.MuonBatch.dtheta_y"]], "epinv (tomopt.muon.generation.muongenerator2016 attribute)": [[9, "tomopt.muon.generation.MuonGenerator2016.epinv"]], "filter_muons() (tomopt.muon.muon_batch.muonbatch method)": [[9, "tomopt.muon.muon_batch.MuonBatch.filter_muons"]], "flux() (tomopt.muon.generation.absmuongenerator method)": [[9, "tomopt.muon.generation.AbsMuonGenerator.flux"]], "flux() (tomopt.muon.generation.muongenerator2015 method)": [[9, "tomopt.muon.generation.MuonGenerator2015.flux"]], "flux() (tomopt.muon.generation.muongenerator2016 method)": [[9, "tomopt.muon.generation.MuonGenerator2016.flux"]], "from_volume() (tomopt.muon.generation.absmuongenerator class method)": [[9, "tomopt.muon.generation.AbsMuonGenerator.from_volume"]], "generate_set() (tomopt.muon.generation.absmuongenerator method)": [[9, "tomopt.muon.generation.AbsMuonGenerator.generate_set"]], "get_hits() (tomopt.muon.muon_batch.muonbatch method)": [[9, "tomopt.muon.muon_batch.MuonBatch.get_hits"]], "get_xy_mask() (tomopt.muon.muon_batch.muonbatch method)": [[9, "tomopt.muon.muon_batch.MuonBatch.get_xy_mask"]], "mom (tomopt.muon.muon_batch.muonbatch property)": [[9, "tomopt.muon.muon_batch.MuonBatch.mom"]], "muons (tomopt.muon.muon_batch.muonbatch property)": [[9, "tomopt.muon.muon_batch.MuonBatch.muons"]], "p_dim (tomopt.muon.muon_batch.muonbatch attribute)": [[9, "tomopt.muon.muon_batch.MuonBatch.p_dim"]], "ph_dim (tomopt.muon.muon_batch.muonbatch attribute)": [[9, "tomopt.muon.muon_batch.MuonBatch.ph_dim"]], "phi (tomopt.muon.muon_batch.muonbatch property)": [[9, "tomopt.muon.muon_batch.MuonBatch.phi"]], "phi_from_theta_xy() (tomopt.muon.muon_batch.muonbatch static method)": [[9, "tomopt.muon.muon_batch.MuonBatch.phi_from_theta_xy"]], "propagate_d() (tomopt.muon.muon_batch.muonbatch method)": [[9, "tomopt.muon.muon_batch.MuonBatch.propagate_d"]], "propagate_dz() (tomopt.muon.muon_batch.muonbatch method)": [[9, "tomopt.muon.muon_batch.MuonBatch.propagate_dz"]], "reco_mom (tomopt.muon.muon_batch.muonbatch property)": [[9, "tomopt.muon.muon_batch.MuonBatch.reco_mom"]], "remove_upwards_muons() (tomopt.muon.muon_batch.muonbatch method)": [[9, "tomopt.muon.muon_batch.MuonBatch.remove_upwards_muons"]], "scatter_dtheta_dphi() (tomopt.muon.muon_batch.muonbatch method)": [[9, "tomopt.muon.muon_batch.MuonBatch.scatter_dtheta_dphi"]], "scatter_dtheta_xy() (tomopt.muon.muon_batch.muonbatch method)": [[9, "tomopt.muon.muon_batch.MuonBatch.scatter_dtheta_xy"]], "scatter_dxyz() (tomopt.muon.muon_batch.muonbatch method)": [[9, "tomopt.muon.muon_batch.MuonBatch.scatter_dxyz"]], "snapshot_xyz() (tomopt.muon.muon_batch.muonbatch method)": [[9, "tomopt.muon.muon_batch.MuonBatch.snapshot_xyz"]], "th_dim (tomopt.muon.muon_batch.muonbatch attribute)": [[9, "tomopt.muon.muon_batch.MuonBatch.th_dim"]], "theta (tomopt.muon.muon_batch.muonbatch property)": [[9, "tomopt.muon.muon_batch.MuonBatch.theta"]], "theta_from_theta_xy() (tomopt.muon.muon_batch.muonbatch static method)": [[9, "tomopt.muon.muon_batch.MuonBatch.theta_from_theta_xy"]], "theta_x (tomopt.muon.muon_batch.muonbatch property)": [[9, "tomopt.muon.muon_batch.MuonBatch.theta_x"]], "theta_x_from_theta_phi() (tomopt.muon.muon_batch.muonbatch static method)": [[9, "tomopt.muon.muon_batch.MuonBatch.theta_x_from_theta_phi"]], "theta_xy (tomopt.muon.muon_batch.muonbatch property)": [[9, "tomopt.muon.muon_batch.MuonBatch.theta_xy"]], "theta_y (tomopt.muon.muon_batch.muonbatch property)": [[9, "tomopt.muon.muon_batch.MuonBatch.theta_y"]], "theta_y_from_theta_phi() (tomopt.muon.muon_batch.muonbatch static method)": [[9, "tomopt.muon.muon_batch.MuonBatch.theta_y_from_theta_phi"]], "tomopt.muon.generation": [[9, "module-tomopt.muon.generation"]], "tomopt.muon.muon_batch": [[9, "module-tomopt.muon.muon_batch"]], "upwards_muons (tomopt.muon.muon_batch.muonbatch property)": [[9, "tomopt.muon.muon_batch.MuonBatch.upwards_muons"]], "x (tomopt.muon.muon_batch.muonbatch property)": [[9, "tomopt.muon.muon_batch.MuonBatch.x"]], "x_dim (tomopt.muon.muon_batch.muonbatch attribute)": [[9, "tomopt.muon.muon_batch.MuonBatch.x_dim"]], "xy (tomopt.muon.muon_batch.muonbatch property)": [[9, "tomopt.muon.muon_batch.MuonBatch.xy"]], "xyz (tomopt.muon.muon_batch.muonbatch property)": [[9, "tomopt.muon.muon_batch.MuonBatch.xyz"]], "xyz_hist (tomopt.muon.muon_batch.muonbatch property)": [[9, "tomopt.muon.muon_batch.MuonBatch.xyz_hist"]], "y (tomopt.muon.muon_batch.muonbatch property)": [[9, "tomopt.muon.muon_batch.MuonBatch.y"]], "y_dim (tomopt.muon.muon_batch.muonbatch attribute)": [[9, "tomopt.muon.muon_batch.MuonBatch.y_dim"]], "z (tomopt.muon.muon_batch.muonbatch property)": [[9, "tomopt.muon.muon_batch.MuonBatch.z"]], "z_dim (tomopt.muon.muon_batch.muonbatch attribute)": [[9, "tomopt.muon.muon_batch.MuonBatch.z_dim"]], "callback (class in tomopt.optimisation.callbacks.callback)": [[11, "tomopt.optimisation.callbacks.callback.Callback"]], "costcoefwarmup (class in tomopt.optimisation.callbacks.warmup_callbacks)": [[11, "tomopt.optimisation.callbacks.warmup_callbacks.CostCoefWarmup"]], "cycliccallback (class in tomopt.optimisation.callbacks.cyclic_callbacks)": [[11, "tomopt.optimisation.callbacks.cyclic_callbacks.CyclicCallback"]], "epochsave (class in tomopt.optimisation.callbacks.opt_callbacks)": [[11, "tomopt.optimisation.callbacks.opt_callbacks.EpochSave"]], "evalmetric (class in tomopt.optimisation.callbacks.eval_metric)": [[11, "tomopt.optimisation.callbacks.eval_metric.EvalMetric"]], "heatmapgif (class in tomopt.optimisation.callbacks.heatmap_gif)": [[11, "tomopt.optimisation.callbacks.heatmap_gif.HeatMapGif"]], "hitrecord (class in tomopt.optimisation.callbacks.diagnostic_callbacks)": [[11, "tomopt.optimisation.callbacks.diagnostic_callbacks.HitRecord"]], "metriclogger (class in tomopt.optimisation.callbacks.monitors)": [[11, "tomopt.optimisation.callbacks.monitors.MetricLogger"]], "muonresampler (class in tomopt.optimisation.callbacks.data_callbacks)": [[11, "tomopt.optimisation.callbacks.data_callbacks.MuonResampler"]], "nomorenans (class in tomopt.optimisation.callbacks.grad_callbacks)": [[11, "tomopt.optimisation.callbacks.grad_callbacks.NoMoreNaNs"]], "onecycle (class in tomopt.optimisation.callbacks.opt_callbacks)": [[11, "tomopt.optimisation.callbacks.opt_callbacks.OneCycle"]], "optconfig (class in tomopt.optimisation.callbacks.warmup_callbacks)": [[11, "tomopt.optimisation.callbacks.warmup_callbacks.OptConfig"]], "panelcentring (class in tomopt.optimisation.callbacks.detector_callbacks)": [[11, "tomopt.optimisation.callbacks.detector_callbacks.PanelCentring"]], "panelmetriclogger (class in tomopt.optimisation.callbacks.monitors)": [[11, "tomopt.optimisation.callbacks.monitors.PanelMetricLogger"]], "panelupdatelimiter (class in tomopt.optimisation.callbacks.detector_callbacks)": [[11, "tomopt.optimisation.callbacks.detector_callbacks.PanelUpdateLimiter"]], "postwarmupcallback (class in tomopt.optimisation.callbacks.warmup_callbacks)": [[11, "tomopt.optimisation.callbacks.warmup_callbacks.PostWarmupCallback"]], "predhandler (class in tomopt.optimisation.callbacks.pred_callbacks)": [[11, "tomopt.optimisation.callbacks.pred_callbacks.PredHandler"]], "save2hdf5predhandler (class in tomopt.optimisation.callbacks.pred_callbacks)": [[11, "tomopt.optimisation.callbacks.pred_callbacks.Save2HDF5PredHandler"]], "scatterrecord (class in tomopt.optimisation.callbacks.diagnostic_callbacks)": [[11, "tomopt.optimisation.callbacks.diagnostic_callbacks.ScatterRecord"]], "sigmoidpanelsmoothnessschedule (class in tomopt.optimisation.callbacks.detector_callbacks)": [[11, "tomopt.optimisation.callbacks.detector_callbacks.SigmoidPanelSmoothnessSchedule"]], "volumetargetpredhandler (class in tomopt.optimisation.callbacks.pred_callbacks)": [[11, "tomopt.optimisation.callbacks.pred_callbacks.VolumeTargetPredHandler"]], "warmupcallback (class in tomopt.optimisation.callbacks.warmup_callbacks)": [[11, "tomopt.optimisation.callbacks.warmup_callbacks.WarmupCallback"]], "cat_palette (tomopt.optimisation.callbacks.monitors.metriclogger attribute)": [[11, "tomopt.optimisation.callbacks.monitors.MetricLogger.cat_palette"]], "check_mu_batch() (tomopt.optimisation.callbacks.data_callbacks.muonresampler static method)": [[11, "tomopt.optimisation.callbacks.data_callbacks.MuonResampler.check_mu_batch"]], "check_warmups() (tomopt.optimisation.callbacks.warmup_callbacks.postwarmupcallback method)": [[11, "tomopt.optimisation.callbacks.warmup_callbacks.PostWarmupCallback.check_warmups"]], "check_warmups() (tomopt.optimisation.callbacks.warmup_callbacks.warmupcallback method)": [[11, "tomopt.optimisation.callbacks.warmup_callbacks.WarmupCallback.check_warmups"]], "get_loss_history() (tomopt.optimisation.callbacks.monitors.metriclogger method)": [[11, "tomopt.optimisation.callbacks.monitors.MetricLogger.get_loss_history"]], "get_metric() (tomopt.optimisation.callbacks.eval_metric.evalmetric method)": [[11, "tomopt.optimisation.callbacks.eval_metric.EvalMetric.get_metric"]], "get_preds() (tomopt.optimisation.callbacks.pred_callbacks.predhandler method)": [[11, "tomopt.optimisation.callbacks.pred_callbacks.PredHandler.get_preds"]], "get_record() (tomopt.optimisation.callbacks.diagnostic_callbacks.scatterrecord method)": [[11, "tomopt.optimisation.callbacks.diagnostic_callbacks.ScatterRecord.get_record"]], "get_results() (tomopt.optimisation.callbacks.monitors.metriclogger method)": [[11, "tomopt.optimisation.callbacks.monitors.MetricLogger.get_results"]], "h_mid (tomopt.optimisation.callbacks.monitors.metriclogger attribute)": [[11, "tomopt.optimisation.callbacks.monitors.MetricLogger.h_mid"]], "lbl_col (tomopt.optimisation.callbacks.monitors.metriclogger attribute)": [[11, "tomopt.optimisation.callbacks.monitors.MetricLogger.lbl_col"]], "lbl_sz (tomopt.optimisation.callbacks.monitors.metriclogger attribute)": [[11, "tomopt.optimisation.callbacks.monitors.MetricLogger.lbl_sz"]], "leg_sz (tomopt.optimisation.callbacks.monitors.metriclogger attribute)": [[11, "tomopt.optimisation.callbacks.monitors.MetricLogger.leg_sz"]], "on_backwards_begin() (tomopt.optimisation.callbacks.callback.callback method)": [[11, "tomopt.optimisation.callbacks.callback.Callback.on_backwards_begin"]], "on_backwards_end() (tomopt.optimisation.callbacks.callback.callback method)": [[11, "tomopt.optimisation.callbacks.callback.Callback.on_backwards_end"]], "on_backwards_end() (tomopt.optimisation.callbacks.detector_callbacks.panelupdatelimiter method)": [[11, "tomopt.optimisation.callbacks.detector_callbacks.PanelUpdateLimiter.on_backwards_end"]], "on_backwards_end() (tomopt.optimisation.callbacks.grad_callbacks.nomorenans method)": [[11, "tomopt.optimisation.callbacks.grad_callbacks.NoMoreNaNs.on_backwards_end"]], "on_backwards_end() (tomopt.optimisation.callbacks.monitors.metriclogger method)": [[11, "tomopt.optimisation.callbacks.monitors.MetricLogger.on_backwards_end"]], "on_backwards_end() (tomopt.optimisation.callbacks.warmup_callbacks.optconfig method)": [[11, "tomopt.optimisation.callbacks.warmup_callbacks.OptConfig.on_backwards_end"]], "on_epoch_begin() (tomopt.optimisation.callbacks.callback.callback method)": [[11, "tomopt.optimisation.callbacks.callback.Callback.on_epoch_begin"]], "on_epoch_begin() (tomopt.optimisation.callbacks.detector_callbacks.sigmoidpanelsmoothnessschedule method)": [[11, "tomopt.optimisation.callbacks.detector_callbacks.SigmoidPanelSmoothnessSchedule.on_epoch_begin"]], "on_epoch_begin() (tomopt.optimisation.callbacks.heatmap_gif.heatmapgif method)": [[11, "tomopt.optimisation.callbacks.heatmap_gif.HeatMapGif.on_epoch_begin"]], "on_epoch_begin() (tomopt.optimisation.callbacks.monitors.metriclogger method)": [[11, "tomopt.optimisation.callbacks.monitors.MetricLogger.on_epoch_begin"]], "on_epoch_begin() (tomopt.optimisation.callbacks.warmup_callbacks.postwarmupcallback method)": [[11, "tomopt.optimisation.callbacks.warmup_callbacks.PostWarmupCallback.on_epoch_begin"]], "on_epoch_begin() (tomopt.optimisation.callbacks.warmup_callbacks.warmupcallback method)": [[11, "tomopt.optimisation.callbacks.warmup_callbacks.WarmupCallback.on_epoch_begin"]], "on_epoch_end() (tomopt.optimisation.callbacks.callback.callback method)": [[11, "tomopt.optimisation.callbacks.callback.Callback.on_epoch_end"]], "on_epoch_end() (tomopt.optimisation.callbacks.monitors.metriclogger method)": [[11, "tomopt.optimisation.callbacks.monitors.MetricLogger.on_epoch_end"]], "on_epoch_end() (tomopt.optimisation.callbacks.opt_callbacks.epochsave method)": [[11, "tomopt.optimisation.callbacks.opt_callbacks.EpochSave.on_epoch_end"]], "on_epoch_end() (tomopt.optimisation.callbacks.opt_callbacks.onecycle method)": [[11, "tomopt.optimisation.callbacks.opt_callbacks.OneCycle.on_epoch_end"]], "on_epoch_end() (tomopt.optimisation.callbacks.warmup_callbacks.costcoefwarmup method)": [[11, "tomopt.optimisation.callbacks.warmup_callbacks.CostCoefWarmup.on_epoch_end"]], "on_epoch_end() (tomopt.optimisation.callbacks.warmup_callbacks.optconfig method)": [[11, "tomopt.optimisation.callbacks.warmup_callbacks.OptConfig.on_epoch_end"]], "on_epoch_end() (tomopt.optimisation.callbacks.warmup_callbacks.warmupcallback method)": [[11, "tomopt.optimisation.callbacks.warmup_callbacks.WarmupCallback.on_epoch_end"]], "on_mu_batch_begin() (tomopt.optimisation.callbacks.callback.callback method)": [[11, "tomopt.optimisation.callbacks.callback.Callback.on_mu_batch_begin"]], "on_mu_batch_begin() (tomopt.optimisation.callbacks.data_callbacks.muonresampler method)": [[11, "tomopt.optimisation.callbacks.data_callbacks.MuonResampler.on_mu_batch_begin"]], "on_mu_batch_end() (tomopt.optimisation.callbacks.callback.callback method)": [[11, "tomopt.optimisation.callbacks.callback.Callback.on_mu_batch_end"]], "on_pred_begin() (tomopt.optimisation.callbacks.callback.callback method)": [[11, "tomopt.optimisation.callbacks.callback.Callback.on_pred_begin"]], "on_pred_begin() (tomopt.optimisation.callbacks.diagnostic_callbacks.scatterrecord method)": [[11, "tomopt.optimisation.callbacks.diagnostic_callbacks.ScatterRecord.on_pred_begin"]], "on_pred_begin() (tomopt.optimisation.callbacks.pred_callbacks.predhandler method)": [[11, "tomopt.optimisation.callbacks.pred_callbacks.PredHandler.on_pred_begin"]], "on_pred_end() (tomopt.optimisation.callbacks.callback.callback method)": [[11, "tomopt.optimisation.callbacks.callback.Callback.on_pred_end"]], "on_scatter_end() (tomopt.optimisation.callbacks.callback.callback method)": [[11, "tomopt.optimisation.callbacks.callback.Callback.on_scatter_end"]], "on_scatter_end() (tomopt.optimisation.callbacks.diagnostic_callbacks.hitrecord method)": [[11, "tomopt.optimisation.callbacks.diagnostic_callbacks.HitRecord.on_scatter_end"]], "on_scatter_end() (tomopt.optimisation.callbacks.diagnostic_callbacks.scatterrecord method)": [[11, "tomopt.optimisation.callbacks.diagnostic_callbacks.ScatterRecord.on_scatter_end"]], "on_step_end() (tomopt.optimisation.callbacks.callback.callback method)": [[11, "tomopt.optimisation.callbacks.callback.Callback.on_step_end"]], "on_step_end() (tomopt.optimisation.callbacks.detector_callbacks.panelcentring method)": [[11, "tomopt.optimisation.callbacks.detector_callbacks.PanelCentring.on_step_end"]], "on_step_end() (tomopt.optimisation.callbacks.detector_callbacks.panelupdatelimiter method)": [[11, "tomopt.optimisation.callbacks.detector_callbacks.PanelUpdateLimiter.on_step_end"]], "on_train_begin() (tomopt.optimisation.callbacks.callback.callback method)": [[11, "tomopt.optimisation.callbacks.callback.Callback.on_train_begin"]], "on_train_begin() (tomopt.optimisation.callbacks.detector_callbacks.sigmoidpanelsmoothnessschedule method)": [[11, "tomopt.optimisation.callbacks.detector_callbacks.SigmoidPanelSmoothnessSchedule.on_train_begin"]], "on_train_begin() (tomopt.optimisation.callbacks.diagnostic_callbacks.scatterrecord method)": [[11, "tomopt.optimisation.callbacks.diagnostic_callbacks.ScatterRecord.on_train_begin"]], "on_train_begin() (tomopt.optimisation.callbacks.eval_metric.evalmetric method)": [[11, "tomopt.optimisation.callbacks.eval_metric.EvalMetric.on_train_begin"]], "on_train_begin() (tomopt.optimisation.callbacks.heatmap_gif.heatmapgif method)": [[11, "tomopt.optimisation.callbacks.heatmap_gif.HeatMapGif.on_train_begin"]], "on_train_begin() (tomopt.optimisation.callbacks.monitors.metriclogger method)": [[11, "tomopt.optimisation.callbacks.monitors.MetricLogger.on_train_begin"]], "on_train_begin() (tomopt.optimisation.callbacks.warmup_callbacks.postwarmupcallback method)": [[11, "tomopt.optimisation.callbacks.warmup_callbacks.PostWarmupCallback.on_train_begin"]], "on_train_begin() (tomopt.optimisation.callbacks.warmup_callbacks.warmupcallback method)": [[11, "tomopt.optimisation.callbacks.warmup_callbacks.WarmupCallback.on_train_begin"]], "on_train_end() (tomopt.optimisation.callbacks.callback.callback method)": [[11, "tomopt.optimisation.callbacks.callback.Callback.on_train_end"]], "on_train_end() (tomopt.optimisation.callbacks.heatmap_gif.heatmapgif method)": [[11, "tomopt.optimisation.callbacks.heatmap_gif.HeatMapGif.on_train_end"]], "on_train_end() (tomopt.optimisation.callbacks.monitors.metriclogger method)": [[11, "tomopt.optimisation.callbacks.monitors.MetricLogger.on_train_end"]], "on_volume_batch_begin() (tomopt.optimisation.callbacks.callback.callback method)": [[11, "tomopt.optimisation.callbacks.callback.Callback.on_volume_batch_begin"]], "on_volume_batch_end() (tomopt.optimisation.callbacks.callback.callback method)": [[11, "tomopt.optimisation.callbacks.callback.Callback.on_volume_batch_end"]], "on_volume_batch_end() (tomopt.optimisation.callbacks.monitors.metriclogger method)": [[11, "tomopt.optimisation.callbacks.monitors.MetricLogger.on_volume_batch_end"]], "on_volume_begin() (tomopt.optimisation.callbacks.callback.callback method)": [[11, "tomopt.optimisation.callbacks.callback.Callback.on_volume_begin"]], "on_volume_end() (tomopt.optimisation.callbacks.callback.callback method)": [[11, "tomopt.optimisation.callbacks.callback.Callback.on_volume_end"]], "on_volume_end() (tomopt.optimisation.callbacks.monitors.metriclogger method)": [[11, "tomopt.optimisation.callbacks.monitors.MetricLogger.on_volume_end"]], "on_volume_end() (tomopt.optimisation.callbacks.warmup_callbacks.costcoefwarmup method)": [[11, "tomopt.optimisation.callbacks.warmup_callbacks.CostCoefWarmup.on_volume_end"]], "on_x0_pred_begin() (tomopt.optimisation.callbacks.callback.callback method)": [[11, "tomopt.optimisation.callbacks.callback.Callback.on_x0_pred_begin"]], "on_x0_pred_end() (tomopt.optimisation.callbacks.callback.callback method)": [[11, "tomopt.optimisation.callbacks.callback.Callback.on_x0_pred_end"]], "on_x0_pred_end() (tomopt.optimisation.callbacks.pred_callbacks.predhandler method)": [[11, "tomopt.optimisation.callbacks.pred_callbacks.PredHandler.on_x0_pred_end"]], "on_x0_pred_end() (tomopt.optimisation.callbacks.pred_callbacks.save2hdf5predhandler method)": [[11, "tomopt.optimisation.callbacks.pred_callbacks.Save2HDF5PredHandler.on_x0_pred_end"]], "on_x0_pred_end() (tomopt.optimisation.callbacks.pred_callbacks.volumetargetpredhandler method)": [[11, "tomopt.optimisation.callbacks.pred_callbacks.VolumeTargetPredHandler.on_x0_pred_end"]], "print_losses() (tomopt.optimisation.callbacks.monitors.metriclogger method)": [[11, "tomopt.optimisation.callbacks.monitors.MetricLogger.print_losses"]], "resample() (tomopt.optimisation.callbacks.data_callbacks.muonresampler static method)": [[11, "tomopt.optimisation.callbacks.data_callbacks.MuonResampler.resample"]], "schedule() (tomopt.optimisation.callbacks.opt_callbacks.onecycle method)": [[11, "tomopt.optimisation.callbacks.opt_callbacks.OneCycle.schedule"]], "set_wrapper() (tomopt.optimisation.callbacks.callback.callback method)": [[11, "tomopt.optimisation.callbacks.callback.Callback.set_wrapper"]], "style (tomopt.optimisation.callbacks.monitors.metriclogger attribute)": [[11, "tomopt.optimisation.callbacks.monitors.MetricLogger.style"]], "tk_col (tomopt.optimisation.callbacks.monitors.metriclogger attribute)": [[11, "tomopt.optimisation.callbacks.monitors.MetricLogger.tk_col"]], "tk_sz (tomopt.optimisation.callbacks.monitors.metriclogger attribute)": [[11, "tomopt.optimisation.callbacks.monitors.MetricLogger.tk_sz"]], "tomopt.optimisation.callbacks.callback": [[11, "module-tomopt.optimisation.callbacks.callback"]], "tomopt.optimisation.callbacks.cyclic_callbacks": [[11, "module-tomopt.optimisation.callbacks.cyclic_callbacks"]], "tomopt.optimisation.callbacks.data_callbacks": [[11, "module-tomopt.optimisation.callbacks.data_callbacks"]], "tomopt.optimisation.callbacks.detector_callbacks": [[11, "module-tomopt.optimisation.callbacks.detector_callbacks"]], "tomopt.optimisation.callbacks.diagnostic_callbacks": [[11, "module-tomopt.optimisation.callbacks.diagnostic_callbacks"]], "tomopt.optimisation.callbacks.eval_metric": [[11, "module-tomopt.optimisation.callbacks.eval_metric"]], "tomopt.optimisation.callbacks.grad_callbacks": [[11, "module-tomopt.optimisation.callbacks.grad_callbacks"]], "tomopt.optimisation.callbacks.heatmap_gif": [[11, "module-tomopt.optimisation.callbacks.heatmap_gif"]], "tomopt.optimisation.callbacks.monitors": [[11, "module-tomopt.optimisation.callbacks.monitors"]], "tomopt.optimisation.callbacks.opt_callbacks": [[11, "module-tomopt.optimisation.callbacks.opt_callbacks"]], "tomopt.optimisation.callbacks.pred_callbacks": [[11, "module-tomopt.optimisation.callbacks.pred_callbacks"]], "tomopt.optimisation.callbacks.warmup_callbacks": [[11, "module-tomopt.optimisation.callbacks.warmup_callbacks"]], "update_plot() (tomopt.optimisation.callbacks.monitors.metriclogger method)": [[11, "tomopt.optimisation.callbacks.monitors.MetricLogger.update_plot"]], "update_plot() (tomopt.optimisation.callbacks.monitors.panelmetriclogger method)": [[11, "tomopt.optimisation.callbacks.monitors.PanelMetricLogger.update_plot"]], "w_mid (tomopt.optimisation.callbacks.monitors.metriclogger attribute)": [[11, "tomopt.optimisation.callbacks.monitors.MetricLogger.w_mid"]], "wrapper (tomopt.optimisation.callbacks.callback.callback attribute)": [[11, "tomopt.optimisation.callbacks.callback.Callback.wrapper"]], "absblockpassivegenerator (class in tomopt.optimisation.data.passives)": [[12, "tomopt.optimisation.data.passives.AbsBlockPassiveGenerator"]], "abspassivegenerator (class in tomopt.optimisation.data.passives)": [[12, "tomopt.optimisation.data.passives.AbsPassiveGenerator"]], "blockpresentpassivegenerator (class in tomopt.optimisation.data.passives)": [[12, "tomopt.optimisation.data.passives.BlockPresentPassiveGenerator"]], "passiveyielder (class in tomopt.optimisation.data.passives)": [[12, "tomopt.optimisation.data.passives.PassiveYielder"]], "randomblockpassivegenerator (class in tomopt.optimisation.data.passives)": [[12, "tomopt.optimisation.data.passives.RandomBlockPassiveGenerator"]], "voxelpassivegenerator (class in tomopt.optimisation.data.passives)": [[12, "tomopt.optimisation.data.passives.VoxelPassiveGenerator"]], "generate() (tomopt.optimisation.data.passives.abspassivegenerator method)": [[12, "tomopt.optimisation.data.passives.AbsPassiveGenerator.generate"]], "get_data() (tomopt.optimisation.data.passives.abspassivegenerator method)": [[12, "tomopt.optimisation.data.passives.AbsPassiveGenerator.get_data"]], "tomopt.optimisation.data.passives": [[12, "module-tomopt.optimisation.data.passives"]], "absdetectorloss (class in tomopt.optimisation.loss.loss)": [[13, "tomopt.optimisation.loss.loss.AbsDetectorLoss"]], "absmaterialclassloss (class in tomopt.optimisation.loss.loss)": [[13, "tomopt.optimisation.loss.loss.AbsMaterialClassLoss"]], "volumeclassloss (class in tomopt.optimisation.loss.loss)": [[13, "tomopt.optimisation.loss.loss.VolumeClassLoss"]], "volumeintclassloss (class in tomopt.optimisation.loss.loss)": [[13, "tomopt.optimisation.loss.loss.VolumeIntClassLoss"]], "volumemseloss (class in tomopt.optimisation.loss.loss)": [[13, "tomopt.optimisation.loss.loss.VolumeMSELoss"]], "voxelclassloss (class in tomopt.optimisation.loss.loss)": [[13, "tomopt.optimisation.loss.loss.VoxelClassLoss"]], "voxelx0loss (class in tomopt.optimisation.loss.loss)": [[13, "tomopt.optimisation.loss.loss.VoxelX0Loss"]], "forward() (tomopt.optimisation.loss.loss.absdetectorloss method)": [[13, "tomopt.optimisation.loss.loss.AbsDetectorLoss.forward"]], "integer_class_loss() (in module tomopt.optimisation.loss.sub_losses)": [[13, "tomopt.optimisation.loss.sub_losses.integer_class_loss"]], "sub_losses (tomopt.optimisation.loss.loss.absmaterialclassloss attribute)": [[13, "tomopt.optimisation.loss.loss.AbsMaterialClassLoss.sub_losses"]], "sub_losses (tomopt.optimisation.loss.loss.volumeclassloss attribute)": [[13, "tomopt.optimisation.loss.loss.VolumeClassLoss.sub_losses"]], "sub_losses (tomopt.optimisation.loss.loss.volumeintclassloss attribute)": [[13, "tomopt.optimisation.loss.loss.VolumeIntClassLoss.sub_losses"]], "sub_losses (tomopt.optimisation.loss.loss.volumemseloss attribute)": [[13, "tomopt.optimisation.loss.loss.VolumeMSELoss.sub_losses"]], "sub_losses (tomopt.optimisation.loss.loss.voxelclassloss attribute)": [[13, "tomopt.optimisation.loss.loss.VoxelClassLoss.sub_losses"]], "sub_losses (tomopt.optimisation.loss.loss.voxelx0loss attribute)": [[13, "tomopt.optimisation.loss.loss.VoxelX0Loss.sub_losses"]], "tomopt.optimisation.loss.loss": [[13, "module-tomopt.optimisation.loss.loss"]], "tomopt.optimisation.loss.sub_losses": [[13, "module-tomopt.optimisation.loss.sub_losses"]], "training (tomopt.optimisation.loss.loss.absdetectorloss attribute)": [[13, "tomopt.optimisation.loss.loss.AbsDetectorLoss.training"]], "training (tomopt.optimisation.loss.loss.absmaterialclassloss attribute)": [[13, "tomopt.optimisation.loss.loss.AbsMaterialClassLoss.training"]], "training (tomopt.optimisation.loss.loss.volumeclassloss attribute)": [[13, "tomopt.optimisation.loss.loss.VolumeClassLoss.training"]], "training (tomopt.optimisation.loss.loss.volumeintclassloss attribute)": [[13, "tomopt.optimisation.loss.loss.VolumeIntClassLoss.training"]], "training (tomopt.optimisation.loss.loss.volumemseloss attribute)": [[13, "tomopt.optimisation.loss.loss.VolumeMSELoss.training"]], "training (tomopt.optimisation.loss.loss.voxelclassloss attribute)": [[13, "tomopt.optimisation.loss.loss.VoxelClassLoss.training"]], "training (tomopt.optimisation.loss.loss.voxelx0loss attribute)": [[13, "tomopt.optimisation.loss.loss.VoxelX0Loss.training"]], "absvolumewrapper (class in tomopt.optimisation.wrapper.volume_wrapper)": [[14, "tomopt.optimisation.wrapper.volume_wrapper.AbsVolumeWrapper"]], "arbvolumewrapper (class in tomopt.optimisation.wrapper.volume_wrapper)": [[14, "tomopt.optimisation.wrapper.volume_wrapper.ArbVolumeWrapper"]], "fitparams (class in tomopt.optimisation.wrapper.volume_wrapper)": [[14, "tomopt.optimisation.wrapper.volume_wrapper.FitParams"]], "heatmapvolumewrapper (class in tomopt.optimisation.wrapper.volume_wrapper)": [[14, "tomopt.optimisation.wrapper.volume_wrapper.HeatMapVolumeWrapper"]], "panelvolumewrapper (class in tomopt.optimisation.wrapper.volume_wrapper)": [[14, "tomopt.optimisation.wrapper.volume_wrapper.PanelVolumeWrapper"]], "cb_savepath (tomopt.optimisation.wrapper.volume_wrapper.fitparams attribute)": [[14, "tomopt.optimisation.wrapper.volume_wrapper.FitParams.cb_savepath"]], "cbs (tomopt.optimisation.wrapper.volume_wrapper.fitparams attribute)": [[14, "tomopt.optimisation.wrapper.volume_wrapper.FitParams.cbs"]], "cyclic_cbs (tomopt.optimisation.wrapper.volume_wrapper.fitparams attribute)": [[14, "tomopt.optimisation.wrapper.volume_wrapper.FitParams.cyclic_cbs"]], "device (tomopt.optimisation.wrapper.volume_wrapper.fitparams attribute)": [[14, "tomopt.optimisation.wrapper.volume_wrapper.FitParams.device"]], "epoch (tomopt.optimisation.wrapper.volume_wrapper.fitparams attribute)": [[14, "tomopt.optimisation.wrapper.volume_wrapper.FitParams.epoch"]], "epoch_bar (tomopt.optimisation.wrapper.volume_wrapper.fitparams attribute)": [[14, "tomopt.optimisation.wrapper.volume_wrapper.FitParams.epoch_bar"]], "fit() (tomopt.optimisation.wrapper.volume_wrapper.absvolumewrapper method)": [[14, "tomopt.optimisation.wrapper.volume_wrapper.AbsVolumeWrapper.fit"]], "from_save() (tomopt.optimisation.wrapper.volume_wrapper.arbvolumewrapper class method)": [[14, "tomopt.optimisation.wrapper.volume_wrapper.ArbVolumeWrapper.from_save"]], "from_save() (tomopt.optimisation.wrapper.volume_wrapper.heatmapvolumewrapper class method)": [[14, "tomopt.optimisation.wrapper.volume_wrapper.HeatMapVolumeWrapper.from_save"]], "from_save() (tomopt.optimisation.wrapper.volume_wrapper.panelvolumewrapper class method)": [[14, "tomopt.optimisation.wrapper.volume_wrapper.PanelVolumeWrapper.from_save"]], "get_detectors() (tomopt.optimisation.wrapper.volume_wrapper.absvolumewrapper method)": [[14, "tomopt.optimisation.wrapper.volume_wrapper.AbsVolumeWrapper.get_detectors"]], "get_opt_lr() (tomopt.optimisation.wrapper.volume_wrapper.absvolumewrapper method)": [[14, "tomopt.optimisation.wrapper.volume_wrapper.AbsVolumeWrapper.get_opt_lr"]], "get_opt_mom() (tomopt.optimisation.wrapper.volume_wrapper.absvolumewrapper method)": [[14, "tomopt.optimisation.wrapper.volume_wrapper.AbsVolumeWrapper.get_opt_mom"]], "get_param_count() (tomopt.optimisation.wrapper.volume_wrapper.absvolumewrapper method)": [[14, "tomopt.optimisation.wrapper.volume_wrapper.AbsVolumeWrapper.get_param_count"]], "load() (tomopt.optimisation.wrapper.volume_wrapper.absvolumewrapper method)": [[14, "tomopt.optimisation.wrapper.volume_wrapper.AbsVolumeWrapper.load"]], "loss_val (tomopt.optimisation.wrapper.volume_wrapper.fitparams attribute)": [[14, "tomopt.optimisation.wrapper.volume_wrapper.FitParams.loss_val"]], "mean_loss (tomopt.optimisation.wrapper.volume_wrapper.fitparams attribute)": [[14, "tomopt.optimisation.wrapper.volume_wrapper.FitParams.mean_loss"]], "metric_cbs (tomopt.optimisation.wrapper.volume_wrapper.fitparams attribute)": [[14, "tomopt.optimisation.wrapper.volume_wrapper.FitParams.metric_cbs"]], "metric_log (tomopt.optimisation.wrapper.volume_wrapper.fitparams attribute)": [[14, "tomopt.optimisation.wrapper.volume_wrapper.FitParams.metric_log"]], "mu (tomopt.optimisation.wrapper.volume_wrapper.fitparams attribute)": [[14, "tomopt.optimisation.wrapper.volume_wrapper.FitParams.mu"]], "mu_bs (tomopt.optimisation.wrapper.volume_wrapper.fitparams attribute)": [[14, "tomopt.optimisation.wrapper.volume_wrapper.FitParams.mu_bs"]], "n_epochs (tomopt.optimisation.wrapper.volume_wrapper.fitparams attribute)": [[14, "tomopt.optimisation.wrapper.volume_wrapper.FitParams.n_epochs"]], "n_mu_per_volume (tomopt.optimisation.wrapper.volume_wrapper.fitparams attribute)": [[14, "tomopt.optimisation.wrapper.volume_wrapper.FitParams.n_mu_per_volume"]], "opts (tomopt.optimisation.wrapper.volume_wrapper.absvolumewrapper attribute)": [[14, "tomopt.optimisation.wrapper.volume_wrapper.AbsVolumeWrapper.opts"]], "opts (tomopt.optimisation.wrapper.volume_wrapper.arbvolumewrapper attribute)": [[14, "tomopt.optimisation.wrapper.volume_wrapper.ArbVolumeWrapper.opts"]], "opts (tomopt.optimisation.wrapper.volume_wrapper.heatmapvolumewrapper attribute)": [[14, "tomopt.optimisation.wrapper.volume_wrapper.HeatMapVolumeWrapper.opts"]], "opts (tomopt.optimisation.wrapper.volume_wrapper.panelvolumewrapper attribute)": [[14, "tomopt.optimisation.wrapper.volume_wrapper.PanelVolumeWrapper.opts"]], "passive_bar (tomopt.optimisation.wrapper.volume_wrapper.fitparams attribute)": [[14, "tomopt.optimisation.wrapper.volume_wrapper.FitParams.passive_bar"]], "passive_bs (tomopt.optimisation.wrapper.volume_wrapper.fitparams attribute)": [[14, "tomopt.optimisation.wrapper.volume_wrapper.FitParams.passive_bs"]], "pred (tomopt.optimisation.wrapper.volume_wrapper.fitparams attribute)": [[14, "tomopt.optimisation.wrapper.volume_wrapper.FitParams.pred"]], "predict() (tomopt.optimisation.wrapper.volume_wrapper.absvolumewrapper method)": [[14, "tomopt.optimisation.wrapper.volume_wrapper.AbsVolumeWrapper.predict"]], "save() (tomopt.optimisation.wrapper.volume_wrapper.absvolumewrapper method)": [[14, "tomopt.optimisation.wrapper.volume_wrapper.AbsVolumeWrapper.save"]], "sb (tomopt.optimisation.wrapper.volume_wrapper.fitparams attribute)": [[14, "tomopt.optimisation.wrapper.volume_wrapper.FitParams.sb"]], "set_opt_lr() (tomopt.optimisation.wrapper.volume_wrapper.absvolumewrapper method)": [[14, "tomopt.optimisation.wrapper.volume_wrapper.AbsVolumeWrapper.set_opt_lr"]], "set_opt_mom() (tomopt.optimisation.wrapper.volume_wrapper.absvolumewrapper method)": [[14, "tomopt.optimisation.wrapper.volume_wrapper.AbsVolumeWrapper.set_opt_mom"]], "skip_opt_step (tomopt.optimisation.wrapper.volume_wrapper.fitparams attribute)": [[14, "tomopt.optimisation.wrapper.volume_wrapper.FitParams.skip_opt_step"]], "state (tomopt.optimisation.wrapper.volume_wrapper.fitparams attribute)": [[14, "tomopt.optimisation.wrapper.volume_wrapper.FitParams.state"]], "stop (tomopt.optimisation.wrapper.volume_wrapper.fitparams attribute)": [[14, "tomopt.optimisation.wrapper.volume_wrapper.FitParams.stop"]], "tomopt.optimisation.wrapper.volume_wrapper": [[14, "module-tomopt.optimisation.wrapper.volume_wrapper"]], "trn_passives (tomopt.optimisation.wrapper.volume_wrapper.fitparams attribute)": [[14, "tomopt.optimisation.wrapper.volume_wrapper.FitParams.trn_passives"]], "tst_passives (tomopt.optimisation.wrapper.volume_wrapper.fitparams attribute)": [[14, "tomopt.optimisation.wrapper.volume_wrapper.FitParams.tst_passives"]], "val_passives (tomopt.optimisation.wrapper.volume_wrapper.fitparams attribute)": [[14, "tomopt.optimisation.wrapper.volume_wrapper.FitParams.val_passives"]], "volume_id (tomopt.optimisation.wrapper.volume_wrapper.fitparams attribute)": [[14, "tomopt.optimisation.wrapper.volume_wrapper.FitParams.volume_id"]], "volume_inferrer (tomopt.optimisation.wrapper.volume_wrapper.fitparams attribute)": [[14, "tomopt.optimisation.wrapper.volume_wrapper.FitParams.volume_inferrer"]], "warmup_cbs (tomopt.optimisation.wrapper.volume_wrapper.fitparams attribute)": [[14, "tomopt.optimisation.wrapper.volume_wrapper.FitParams.warmup_cbs"]], "plot_hit_density() (in module tomopt.plotting.diagnostics)": [[15, "tomopt.plotting.diagnostics.plot_hit_density"]], "plot_pred_true_x0() (in module tomopt.plotting.predictions)": [[15, "tomopt.plotting.predictions.plot_pred_true_x0"]], "plot_scatter_density() (in module tomopt.plotting.diagnostics)": [[15, "tomopt.plotting.diagnostics.plot_scatter_density"]], "tomopt.plotting.appearance": [[15, "module-tomopt.plotting.appearance"]], "tomopt.plotting.diagnostics": [[15, "module-tomopt.plotting.diagnostics"]], "tomopt.plotting.predictions": [[15, "module-tomopt.plotting.predictions"]], "absdetectorlayer (class in tomopt.volume.layer)": [[16, "tomopt.volume.layer.AbsDetectorLayer"]], "abslayer (class in tomopt.volume.layer)": [[16, "tomopt.volume.layer.AbsLayer"]], "detectorheatmap (class in tomopt.volume.heatmap)": [[16, "tomopt.volume.heatmap.DetectorHeatMap"]], "detectorpanel (class in tomopt.volume.panel)": [[16, "tomopt.volume.panel.DetectorPanel"]], "paneldetectorlayer (class in tomopt.volume.layer)": [[16, "tomopt.volume.layer.PanelDetectorLayer"]], "passivelayer (class in tomopt.volume.layer)": [[16, "tomopt.volume.layer.PassiveLayer"]], "sigmoiddetectorpanel (class in tomopt.volume.panel)": [[16, "tomopt.volume.panel.SigmoidDetectorPanel"]], "volume (class in tomopt.volume.volume)": [[16, "tomopt.volume.volume.Volume"]], "abs2idx() (tomopt.volume.layer.passivelayer method)": [[16, "tomopt.volume.layer.PassiveLayer.abs2idx"]], "assign_budget() (tomopt.volume.heatmap.detectorheatmap method)": [[16, "tomopt.volume.heatmap.DetectorHeatMap.assign_budget"]], "assign_budget() (tomopt.volume.layer.absdetectorlayer method)": [[16, "tomopt.volume.layer.AbsDetectorLayer.assign_budget"]], "assign_budget() (tomopt.volume.layer.paneldetectorlayer method)": [[16, "tomopt.volume.layer.PanelDetectorLayer.assign_budget"]], "assign_budget() (tomopt.volume.panel.detectorpanel method)": [[16, "tomopt.volume.panel.DetectorPanel.assign_budget"]], "assign_budget() (tomopt.volume.volume.volume method)": [[16, "tomopt.volume.volume.Volume.assign_budget"]], "build_xyz_edges() (tomopt.volume.volume.volume method)": [[16, "tomopt.volume.volume.Volume.build_xyz_edges"]], "clamp_params() (tomopt.volume.heatmap.detectorheatmap method)": [[16, "tomopt.volume.heatmap.DetectorHeatMap.clamp_params"]], "clamp_params() (tomopt.volume.panel.detectorpanel method)": [[16, "tomopt.volume.panel.DetectorPanel.clamp_params"]], "conform_detector() (tomopt.volume.layer.absdetectorlayer method)": [[16, "tomopt.volume.layer.AbsDetectorLayer.conform_detector"]], "conform_detector() (tomopt.volume.layer.paneldetectorlayer method)": [[16, "tomopt.volume.layer.PanelDetectorLayer.conform_detector"]], "device (tomopt.volume.volume.volume property)": [[16, "tomopt.volume.volume.Volume.device"]], "draw() (tomopt.volume.volume.volume method)": [[16, "tomopt.volume.volume.Volume.draw"]], "forward() (tomopt.volume.layer.absdetectorlayer method)": [[16, "tomopt.volume.layer.AbsDetectorLayer.forward"]], "forward() (tomopt.volume.layer.abslayer method)": [[16, "tomopt.volume.layer.AbsLayer.forward"]], "forward() (tomopt.volume.layer.paneldetectorlayer method)": [[16, "tomopt.volume.layer.PanelDetectorLayer.forward"]], "forward() (tomopt.volume.layer.passivelayer method)": [[16, "tomopt.volume.layer.PassiveLayer.forward"]], "forward() (tomopt.volume.panel.detectorpanel method)": [[16, "tomopt.volume.panel.DetectorPanel.forward"]], "forward() (tomopt.volume.volume.volume method)": [[16, "tomopt.volume.volume.Volume.forward"]], "get_cost() (tomopt.volume.heatmap.detectorheatmap method)": [[16, "tomopt.volume.heatmap.DetectorHeatMap.get_cost"]], "get_cost() (tomopt.volume.layer.absdetectorlayer method)": [[16, "tomopt.volume.layer.AbsDetectorLayer.get_cost"]], "get_cost() (tomopt.volume.layer.paneldetectorlayer method)": [[16, "tomopt.volume.layer.PanelDetectorLayer.get_cost"]], "get_cost() (tomopt.volume.panel.detectorpanel method)": [[16, "tomopt.volume.panel.DetectorPanel.get_cost"]], "get_cost() (tomopt.volume.volume.volume method)": [[16, "tomopt.volume.volume.Volume.get_cost"]], "get_detectors() (tomopt.volume.volume.volume method)": [[16, "tomopt.volume.volume.Volume.get_detectors"]], "get_device() (tomopt.volume.layer.paneldetectorlayer static method)": [[16, "tomopt.volume.layer.PanelDetectorLayer.get_device"]], "get_efficiency() (tomopt.volume.heatmap.detectorheatmap method)": [[16, "tomopt.volume.heatmap.DetectorHeatMap.get_efficiency"]], "get_efficiency() (tomopt.volume.panel.detectorpanel method)": [[16, "tomopt.volume.panel.DetectorPanel.get_efficiency"]], "get_efficiency() (tomopt.volume.panel.sigmoiddetectorpanel method)": [[16, "tomopt.volume.panel.SigmoidDetectorPanel.get_efficiency"]], "get_gauss() (tomopt.volume.panel.detectorpanel method)": [[16, "tomopt.volume.panel.DetectorPanel.get_gauss"]], "get_hits() (tomopt.volume.heatmap.detectorheatmap method)": [[16, "tomopt.volume.heatmap.DetectorHeatMap.get_hits"]], "get_hits() (tomopt.volume.panel.detectorpanel method)": [[16, "tomopt.volume.panel.DetectorPanel.get_hits"]], "get_lw_z_size() (tomopt.volume.layer.abslayer method)": [[16, "tomopt.volume.layer.AbsLayer.get_lw_z_size"]], "get_panel_zorder() (tomopt.volume.layer.paneldetectorlayer method)": [[16, "tomopt.volume.layer.PanelDetectorLayer.get_panel_zorder"]], "get_passive_z_range() (tomopt.volume.volume.volume method)": [[16, "tomopt.volume.volume.Volume.get_passive_z_range"]], "get_passives() (tomopt.volume.volume.volume method)": [[16, "tomopt.volume.volume.Volume.get_passives"]], "get_rad_cube() (tomopt.volume.volume.volume method)": [[16, "tomopt.volume.volume.Volume.get_rad_cube"]], "get_resolution() (tomopt.volume.heatmap.detectorheatmap method)": [[16, "tomopt.volume.heatmap.DetectorHeatMap.get_resolution"]], "get_resolution() (tomopt.volume.panel.detectorpanel method)": [[16, "tomopt.volume.panel.DetectorPanel.get_resolution"]], "get_resolution() (tomopt.volume.panel.sigmoiddetectorpanel method)": [[16, "tomopt.volume.panel.SigmoidDetectorPanel.get_resolution"]], "get_scaled_xy_span() (tomopt.volume.panel.detectorpanel method)": [[16, "tomopt.volume.panel.DetectorPanel.get_scaled_xy_span"]], "get_xy_mask() (tomopt.volume.heatmap.detectorheatmap method)": [[16, "tomopt.volume.heatmap.DetectorHeatMap.get_xy_mask"]], "get_xy_mask() (tomopt.volume.panel.detectorpanel method)": [[16, "tomopt.volume.panel.DetectorPanel.get_xy_mask"]], "h (tomopt.volume.volume.volume property)": [[16, "tomopt.volume.volume.Volume.h"]], "load_rad_length() (tomopt.volume.layer.passivelayer method)": [[16, "tomopt.volume.layer.PassiveLayer.load_rad_length"]], "load_rad_length() (tomopt.volume.volume.volume method)": [[16, "tomopt.volume.volume.Volume.load_rad_length"]], "lookup_passive_xyz_coords() (tomopt.volume.volume.volume method)": [[16, "tomopt.volume.volume.Volume.lookup_passive_xyz_coords"]], "lw (tomopt.volume.volume.volume property)": [[16, "tomopt.volume.volume.Volume.lw"]], "mu_abs2idx() (tomopt.volume.layer.passivelayer method)": [[16, "tomopt.volume.layer.PassiveLayer.mu_abs2idx"]], "passive_size (tomopt.volume.volume.volume property)": [[16, "tomopt.volume.volume.Volume.passive_size"]], "plot_map() (tomopt.volume.heatmap.detectorheatmap method)": [[16, "tomopt.volume.heatmap.DetectorHeatMap.plot_map"]], "rad_length (tomopt.volume.layer.paneldetectorlayer attribute)": [[16, "tomopt.volume.layer.PanelDetectorLayer.rad_length"]], "rad_length (tomopt.volume.layer.passivelayer attribute)": [[16, "tomopt.volume.layer.PassiveLayer.rad_length"]], "scatter_and_propagate() (tomopt.volume.layer.passivelayer method)": [[16, "tomopt.volume.layer.PassiveLayer.scatter_and_propagate"]], "sig_model() (tomopt.volume.panel.sigmoiddetectorpanel method)": [[16, "tomopt.volume.panel.SigmoidDetectorPanel.sig_model"]], "smooth (tomopt.volume.panel.sigmoiddetectorpanel property)": [[16, "tomopt.volume.panel.SigmoidDetectorPanel.smooth"]], "target (tomopt.volume.volume.volume property)": [[16, "tomopt.volume.volume.Volume.target"]], "tomopt.volume.heatmap": [[16, "module-tomopt.volume.heatmap"]], "tomopt.volume.layer": [[16, "module-tomopt.volume.layer"]], "tomopt.volume.panel": [[16, "module-tomopt.volume.panel"]], "tomopt.volume.scatter_model": [[16, "module-tomopt.volume.scatter_model"]], "tomopt.volume.volume": [[16, "module-tomopt.volume.volume"]], "training (tomopt.volume.heatmap.detectorheatmap attribute)": [[16, "tomopt.volume.heatmap.DetectorHeatMap.training"]], "training (tomopt.volume.layer.absdetectorlayer attribute)": [[16, "tomopt.volume.layer.AbsDetectorLayer.training"]], "training (tomopt.volume.layer.abslayer attribute)": [[16, "tomopt.volume.layer.AbsLayer.training"]], "training (tomopt.volume.layer.paneldetectorlayer attribute)": [[16, "tomopt.volume.layer.PanelDetectorLayer.training"]], "training (tomopt.volume.layer.passivelayer attribute)": [[16, "tomopt.volume.layer.PassiveLayer.training"]], "training (tomopt.volume.panel.detectorpanel attribute)": [[16, "tomopt.volume.panel.DetectorPanel.training"]], "training (tomopt.volume.panel.sigmoiddetectorpanel attribute)": [[16, "tomopt.volume.panel.SigmoidDetectorPanel.training"]], "training (tomopt.volume.volume.volume attribute)": [[16, "tomopt.volume.volume.Volume.training"]], "x (tomopt.volume.heatmap.detectorheatmap property)": [[16, "tomopt.volume.heatmap.DetectorHeatMap.x"]], "x (tomopt.volume.panel.detectorpanel property)": [[16, "tomopt.volume.panel.DetectorPanel.x"]], "xyz_centres (tomopt.volume.volume.volume property)": [[16, "tomopt.volume.volume.Volume.xyz_centres"]], "xyz_edges (tomopt.volume.volume.volume property)": [[16, "tomopt.volume.volume.Volume.xyz_edges"]], "y (tomopt.volume.heatmap.detectorheatmap property)": [[16, "tomopt.volume.heatmap.DetectorHeatMap.y"]], "y (tomopt.volume.panel.detectorpanel property)": [[16, "tomopt.volume.panel.DetectorPanel.y"]], "yield_zordered_panels() (tomopt.volume.layer.paneldetectorlayer method)": [[16, "tomopt.volume.layer.PanelDetectorLayer.yield_zordered_panels"]]}}) \ No newline at end of file +Search.setIndex({"docnames": ["index", "installation", "introduction", "modules", "tomopt", "tomopt.benchmarks", "tomopt.benchmarks.ladle_furnace", "tomopt.benchmarks.small_walls", "tomopt.benchmarks.u_lorry", "tomopt.inference", "tomopt.muon", "tomopt.optimisation", "tomopt.optimisation.callbacks", "tomopt.optimisation.data", "tomopt.optimisation.loss", "tomopt.optimisation.wrapper", "tomopt.plotting", "tomopt.volume"], "filenames": ["index.rst", "installation.rst", "introduction.md", "modules.rst", "tomopt.rst", "tomopt.benchmarks.rst", "tomopt.benchmarks.ladle_furnace.rst", "tomopt.benchmarks.small_walls.rst", "tomopt.benchmarks.u_lorry.rst", "tomopt.inference.rst", "tomopt.muon.rst", "tomopt.optimisation.rst", "tomopt.optimisation.callbacks.rst", "tomopt.optimisation.data.rst", "tomopt.optimisation.loss.rst", "tomopt.optimisation.wrapper.rst", "tomopt.plotting.rst", "tomopt.volume.rst"], "titles": ["TomOpt: Differential Muon Tomography Optimisation", "Installation", "Overview", "tomopt", "tomopt package", "tomopt.benchmarks package", "tomopt.benchmarks.ladle_furnace package", "tomopt.benchmarks.small_walls package", "tomopt.benchmarks.u_lorry package", "tomopt.inference package", "tomopt.muon package", "tomopt.optimisation package", "tomopt.optimisation.callbacks package", "tomopt.optimisation.data package", "tomopt.optimisation.loss package", "tomopt.optimisation.wrapper package", "tomopt.plotting package", "tomopt.volume package"], "terms": {"instal": 0, "test": [0, 1, 2, 6, 8, 9, 12, 14], "extern": 0, "repo": [0, 2], "author": 0, "volum": [0, 1, 2, 4, 8, 10, 12, 13, 14, 15, 16], "infer": [0, 1, 2, 4, 10, 12, 14, 15, 17], "plot": [0, 2, 4, 9, 12, 17], "benchmark": [0, 1, 2, 4], "muon": [2, 4, 6, 9, 12, 15, 16, 17], "optimis": [1, 2, 4, 17], "class_to_x0pr": 4, "arrai": [4, 10, 12, 16], "id2x0": 4, "sourc": [4, 6, 7, 8, 9, 10, 12, 13, 14, 15, 16, 17], "convert": [4, 6, 9, 14], "class": [0, 1, 2, 4, 6, 7, 8, 9, 10, 12, 13, 14, 15, 17], "x0": [4, 6, 9, 12, 13, 14, 15, 16, 17], "predict": [4, 6, 9, 12, 13, 14, 15], "us": [0, 1, 2, 4, 9, 10, 12, 13, 14, 15, 16, 17], "map": [4, 10, 12, 14, 15], "defin": [0, 2, 4, 10, 12, 17], "paramet": [0, 2, 4, 6, 9, 10, 12, 13, 14, 15, 16, 17], "ndarrai": [4, 10, 12, 15, 16], "integ": [4, 9, 14], "id": [1, 4, 12, 14, 17], "dict": [4, 9, 10, 12, 14, 15, 17], "int": [4, 6, 9, 10, 12, 13, 14, 15, 17], "float": [4, 9, 10, 12, 13, 14, 15, 17], "valu": [4, 9, 10, 12, 13, 14, 16, 17], "return": [4, 6, 7, 9, 10, 12, 13, 14, 15, 16, 17], "type": [4, 6, 7, 9, 10, 12, 13, 14, 15, 16, 17], "new": [0, 2, 4, 6, 9, 10, 12, 13, 15, 17], "jacobian": 4, "y": [4, 6, 9, 10, 16, 17], "x": [4, 6, 9, 10, 16, 17], "create_graph": 4, "fals": [1, 4, 6, 10, 12, 14, 15, 17], "allow_unus": 4, "true": [4, 6, 9, 10, 12, 13, 14, 15, 16, 17], "comput": [1, 4, 6, 9, 10, 12, 14, 15, 17], "dy": 4, "dx": 4, "respect": [0, 2, 4], "variabl": [4, 9, 10, 15], "can": [0, 1, 2, 4, 9, 10, 12, 13, 14, 15, 17], "have": [0, 2, 4, 6, 9, 10, 12, 13, 14, 15, 17], "multipl": [4, 9, 12, 14, 15, 17], "element": [4, 10, 17], "If": [0, 1, 2, 4, 9, 10, 12, 13, 14, 15, 17], "ha": [4, 6, 9, 10, 12, 17], "i": [0, 1, 2, 4, 6, 9, 10, 12, 13, 14, 15, 16, 17], "vectoris": 4, "via": [1, 4, 6, 9, 10, 12, 14, 15, 17], "vmap": 4, "tensor": [4, 6, 7, 9, 10, 12, 13, 14, 15, 17], "differenti": [2, 4, 9, 12, 17], "depend": [4, 14], "bool": [4, 9, 12, 13, 14, 15, 17], "graph": 4, "deriv": 4, "construct": 4, "allow": [0, 2, 4, 9, 12, 17], "higher": [4, 9, 12, 14, 17], "order": [1, 4, 9, 12, 13, 14, 15, 16, 17], "product": [0, 2, 4], "default": [4, 10, 12, 14, 15, 17], "specifi": [4, 10, 12, 13, 14, 15, 17], "input": [1, 4], "were": [4, 9, 10], "when": [1, 4, 6, 9, 12, 13, 14, 15, 17], "output": [1, 4, 14], "therefor": [4, 17], "grad": 4, "alwai": [4, 9, 13, 17], "shape": [4, 10, 14], "x0_from_mixtur": 4, "densiti": 4, "weight_frac": 4, "none": [4, 6, 9, 10, 12, 13, 14, 15, 16, 17], "volume_frac": 4, "mixtur": 4, "non": [4, 17], "chemic": 4, "bond": 4, "materi": [4, 9, 12, 13, 14, 17], "base": [4, 6, 7, 8, 9, 10, 12, 13, 14, 15, 17], "http": [1, 4, 9, 12, 17], "cd": [1, 4], "cern": 4, "ch": 4, "record": [0, 2, 4, 9, 10, 12, 15, 16, 17], "1279627": 4, "file": [4, 12, 15], "ph": 4, "ep": 4, "tech": 4, "note": 4, "2010": 4, "013": 4, "pdf": [4, 9, 17], "union": [4, 10, 12, 13, 14, 15, 17], "list": [1, 4, 10, 12, 13, 15, 17], "metr": [4, 9, 10, 12, 17], "kg": 4, "m": [4, 6, 10, 17], "3": [1, 4, 9, 10, 14, 17], "rel": [4, 9, 14, 17], "amount": [4, 9, 10, 12], "each": [1, 4, 9, 10, 12, 14, 15, 17], "weight": [4, 6, 9, 14, 17], "The": [0, 1, 2, 4, 9, 12, 13, 14, 15, 17], "x0targs_to_classtarg": 4, "x02id": [4, 12, 14], "target": [4, 9, 12, 13, 14, 15, 17], "To": [1, 4, 9], "account": [4, 9, 12, 15, 17], "point": [1, 4, 9, 10, 12, 15, 17], "precis": [4, 9, 10, 12, 15, 17], "ar": [0, 1, 2, 4, 9, 10, 12, 13, 14, 15, 16, 17], "which": [0, 1, 2, 4, 9, 10, 12, 13, 14, 15, 17], "closest": 4, "kei": [4, 10, 12], "thi": [0, 1, 2, 4, 6, 9, 10, 12, 13, 14, 16, 17], "mean": [4, 9, 12, 14, 15, 17], "method": [0, 2, 4, 6, 9, 10, 12, 13, 14, 15, 17], "cannot": [4, 9], "detect": [4, 12, 17], "miss": 4, "from": [0, 1, 2, 4, 9, 10, 12, 13, 14, 15, 17], "even": [4, 12], "isn": 4, "t": [4, 9, 10, 17], "modifi": [0, 2, 4, 10], "place": [4, 9, 10, 12, 17], "genscatterbatch": 9, "mu": [9, 12, 15, 17], "scatterbatch": [6, 9, 15], "inform": [0, 2, 9, 10, 14, 15, 17], "hit": [6, 9, 10, 12, 16, 17], "incom": [9, 12, 17], "outgo": 9, "trajectori": [0, 2, 9, 10, 15, 17], "fit": [6, 9, 12, 15, 17], "intend": [9, 17], "diagnost": 9, "purpos": 9, "onli": [6, 8, 9, 10, 12, 13, 15, 17], "track": [9, 12], "carri": 9, "gradient": [0, 2, 9, 12, 15], "w": [9, 10, 17], "r": [9, 10, 17], "detector": [0, 1, 2, 6, 9, 10, 12, 14, 15, 16, 17], "except": [9, 10, 17], "z": [6, 9, 10, 12, 13, 15, 16, 17], "posit": [9, 10, 12, 13, 15, 16, 17], "linear": 9, "perform": [0, 1, 2, 9, 14, 17], "separ": [1, 9], "all": [0, 2, 9, 10, 12, 13, 14, 15, 17], "associ": [9, 10, 12, 15], "layer": [9, 10, 12, 13, 14, 15, 16], "group": [9, 12, 17], "indic": [9, 12, 17], "po": [9, 10, 17], "attribut": [9, 10, 12, 17], "current": [1, 9, 10, 12, 14, 17], "expect": [1, 9, 12, 14, 17], "abov": [6, 9, 10, 17], "passiv": [0, 1, 2, 6, 9, 10, 12, 14, 15, 16, 17], "those": [1, 9, 10, 12, 17], "below": [6, 9, 10, 17], "an": [0, 1, 2, 9, 12, 13, 14, 17], "analyt": 9, "likelihood": [9, 14], "minimis": [0, 2, 9], "uncertainti": [6, 9], "consid": [9, 12], "doe": [9, 10, 12, 17], "e": [0, 1, 2, 9, 10, 12, 14, 16, 17], "g": [0, 1, 2, 9, 10, 12, 14, 17], "third": 9, "set": [0, 1, 2, 9, 10, 12, 13, 14, 15, 17], "sinc": [9, 15, 17], "split": 9, "n_hits_abov": 9, "One": 9, "instanc": [1, 9, 17], "should": [6, 9, 10, 12, 13, 14, 15, 17], "creat": [9, 10, 12], "muonbatch": [9, 10, 12, 15, 17], "As": [0, 2, 9, 12], "part": [0, 2, 9, 12, 17], "initialis": [9, 10, 12, 13, 15, 17], "filter": 9, "_filter_scatt": 9, "avoid": [9, 12], "nan": [9, 12, 17], "inf": 9, "result": [0, 1, 2, 9, 10, 17], "direct": [9, 10], "chang": [9, 10, 17], "mani": [1, 9, 10, 14], "requir": [0, 1, 2, 9, 10, 15, 17], "further": 9, "downstream": 9, "lazi": 9, "basi": 9, "memois": 9, "first": [0, 1, 2, 9, 12, 14, 16], "request": [9, 15], "store": [9, 10, 15, 17], "case": [0, 2, 9, 14], "dtheta": [9, 10], "dphi": 9, "total": [6, 9, 12, 13, 14, 15, 17], "under": [9, 17], "assumpt": 9, "small": [9, 17], "angular": [9, 10], "necessari": [9, 15], "here": [0, 1, 2, 9, 12, 17], "loss": [0, 2, 9, 11, 12, 15], "undergo": [9, 17], "theta": [9, 10], "phi": [9, 10], "0": [6, 7, 8, 9, 10, 12, 15, 17], "pi": [9, 10], "neg": [6, 9, 10, 14], "becom": 9, "one": [9, 12, 14, 15, 17], "tell": 9, "whether": [9, 12, 14, 17], "instead": [9, 10, 12, 14, 17], "larg": [9, 10, 12, 14], "occur": [9, 15], "total_scatt": 9, "quadratur": 9, "sum": [9, 14, 17], "three": [9, 17], "both": [9, 13, 14, 15, 17], "hypothes": 9, "final": [1, 6, 9, 12, 14], "chosen": 9, "hypothesi": 9, "been": [6, 9, 12], "found": [9, 12, 17], "good": [1, 9], "through": [0, 2, 9, 10, 12, 17], "travel": [9, 10], "_compute_track": [], "object": [0, 2, 9, 10, 12, 13, 15, 17], "effici": [6, 9, 10, 12, 17], "static": [6, 9, 10, 12, 17], "_compute_dtheta_dphi_scatt": [], "theta_in": 9, "phi_in": 9, "theta_out": 9, "phi_out": 9, "n": [1, 9, 10, 17], "1": [6, 7, 9, 10, 12, 14, 15, 17], "angl": 10, "str": [9, 10, 12, 13, 14, 15, 16, 17], "dictionari": [9, 10, 12, 14, 15], "_compute_out_var_unc": [], "var": [], "due": [], "error": [12, 14], "propag": [10, 12, 17], "triangl": [], "matrix": [], "assum": [6, 9, 14, 17], "zero": [12, 15, 17], "off": [10, 14], "diagon": [], "warn": 1, "un": [], "correl": [], "probabl": [6, 9, 14, 17], "ok": [], "behaviour": [], "_compute_phi": [], "xy": [9, 10, 12, 13, 15, 16, 17], "compon": [12, 14, 17], "vector": 9, "_compute_scatt": [], "normal": [15, 17], "them": [1, 12, 17], "extract": [], "handl": [0, 1, 2], "locat": [6, 9, 12, 15, 17], "adapt": 12, "misc": [], "3334866": [], "titl": [], "between": [1, 9, 10, 12, 14, 17], "two": [6, 9, 17], "line": [], "brian": [], "math": [], "stackexchang": [], "com": 1, "user": [0, 1, 2, 9, 12, 15, 17], "72614": [], "howpublish": [], "mathemat": [], "stack": [10, 17], "exchang": [], "url": [], "q": [], "version": [1, 14], "2019": [9, 17], "08": [], "26": [], "eprint": [], "_compute_theta": [], "xyz": [6, 9, 10, 17], "_compute_theta_msc": [], "p": [9, 10, 12, 15], "cosin": [], "dot": [], "2": [9, 10, 12, 17], "accord": [9, 10, 12, 15, 17], "resolut": [12, 17], "_compute_xyz_in": [], "level": [1, 6, 9, 17], "top": [9, 17], "_compute_xyz_out": [], "bottom": [9, 12, 16, 17], "_cross_track": [], "option": [9, 10, 12, 13, 14, 15, 16, 17], "_dphi": [], "_dphi_unc": [], "_dtheta": [], "_dtheta_unc": [], "_dtheta_xi": [], "_dtheta_xy_unc": [], "_dxy": [], "_dxy_unc": [], "_extract_hit": [], "take": [1, 12, 17], "combin": [1, 9, 12], "singl": [1, 9, 10, 12, 13, 14, 15, 17], "might": [], "seem": [], "heavi": [], "hand": 9, "invalid": [], "extrem": 10, "spoil": [], "other": [1, 12, 14, 15, 17], "remov": 10, "ani": [1, 10, 12, 15, 17], "least": [6, 9, 10, 14], "high": [1, 12, 14], "some": [12, 14, 17], "configur": [14, 15, 17], "tini": [], "best": [], "manual": [9, 10, 17], "unneed": [], "gain": [], "increas": [12, 14, 16], "number": [1, 6, 9, 10, 12, 13, 14, 15, 17], "avail": [1, 12, 17], "criteria": [], "parallel": [], "far": 14, "its": [1, 6, 10, 12, 13, 14, 17], "1e10": [], "_gen_hit": [], "_hit_eff": [], "_hit_unc": [], "_phi_in": [], "_phi_in_unc": [], "_phi_out": [], "_phi_out_unc": [], "_poca_xyz": [], "_poca_xyz_unc": [], "_reco_hit": [], "_set_dtheta_dphi_scatt": [], "simultan": [], "done": [], "_theta_in": [], "_theta_in_unc": [], "_theta_out": [], "_theta_out_unc": [], "_theta_xy_in": [], "_theta_xy_in_unc": [], "_theta_xy_out": [], "_theta_xy_out_unc": [], "_total_scatt": [], "_total_scatter_unc": [], "_track_coef": [], "_track_in": [], "_track_out": [], "_track_start_in": [], "_track_start_out": [], "_xyz_in": [], "_xyz_in_unc": [], "_xyz_out": [], "_xyz_out_unc": [], "properti": [0, 2, 6, 9, 10, 17], "above_gen_hit": 9, "above_hit_eff": 9, "eff": [6, 7, 9, 17], "above_hit_unc": 9, "above_hit": 9, "below_gen_hit": 9, "below_hit_eff": 9, "below_hit_unc": 9, "below_hit": 9, "delta": 9, "dphi_unc": 9, "dtheta_unc": 9, "dtheta_xi": [9, 10], "theta_xi": [9, 10], "zx": 9, "zy": 9, "plane": [9, 10, 17], "dtheta_xy_unc": 9, "dxy": 9, "distanc": [9, 10, 17], "poca": [6, 9, 12, 16], "dxy_unc": 9, "gen_hit": 9, "get_muon_trajectori": 9, "unc": 9, "lw": [9, 17], "whilst": [9, 12, 17], "No": 9, "maximis": 9, "length": [9, 12, 13, 17], "width": [9, 13, 17], "start": [9, 10, 12, 17], "initi": [9, 10, 12, 17], "vec": 9, "get_scatter_mask": 9, "boolean": [9, 10, 12, 17], "where": [9, 10, 12, 13, 14, 15, 17], "within": [1, 9, 10, 12, 15, 17], "hit_eff": 9, "hit_unc": 9, "get_hit": [9, 10, 17], "per": [6, 9, 12, 13, 14, 15, 17], "n_hits_below": 9, "phi_in_unc": 9, "phi_out_unc": 9, "plot_scatt": 9, "idx": 9, "represent": [9, 12], "index": [9, 10, 17], "poca_xyz": 9, "poca_xyz_unc": 9, "reco_hit": 9, "theta_in_unc": 9, "theta_msc": 9, "theta_msc_unc": 9, "theta_out_unc": 9, "theta_xy_in": 9, "decompos": 9, "theta_xy_in_unc": 9, "theta_xy_out": 9, "theta_xy_out_unc": 9, "total_scatter_unc": 9, "track_in": 9, "track_out": 9, "track_start_in": 9, "track_start_out": 9, "xyz_in": 9, "xyz_in_unc": 9, "xyz_out": 9, "xyz_out_unc": 9, "absintclassifierfromx0": [6, 9], "partial_x0_inferr": [6, 9], "output_prob": [6, 9], "class2float": 9, "absvolumeinferr": [6, 9, 15], "abstract": [9, 10, 13, 14, 15, 17], "multiclass": [9, 14], "classif": [9, 14], "voxelwis": [6, 9, 12, 14, 16], "inherit": [6, 9, 10, 12, 14, 15, 17], "must": [1, 6, 9, 12, 14, 17], "provid": [0, 2, 9, 10, 12, 13, 14, 15, 17], "wai": [1, 9], "dimens": 9, "basic": [1, 9], "inferr": [6, 9, 12], "raw": 9, "most": [1, 9, 16], "In": [1, 9, 10, 12, 15], "latter": [9, 17], "process": [0, 2, 9, 12, 17], "function": [0, 2, 9, 10, 12, 13, 14, 15, 17], "absx0inferr": 9, "partial": 9, "instati": 9, "pass": [0, 2, 9, 10, 12, 17], "probabilit": 9, "otherwis": [9, 12, 13, 14, 17], "argmax": 9, "over": [9, 10, 12, 14, 15, 17], "last": [9, 10, 12], "callabl": [9, 13, 15, 17], "_abc_impl": [], "_abc_data": [], "_reset_var": [], "reset": [], "made": [6, 12, 14], "ad": [9, 10, 12, 17], "batch": [0, 2, 6, 9, 10, 12, 15, 17], "add_scatt": 9, "append": [9, 12, 15], "vairabl": 9, "get_predict": [6, 9], "call": [9, 10, 12, 13, 15, 17], "": [9, 10, 12, 15, 17], "up": [1, 9, 12, 14, 15, 17], "compute_effici": [6, 9], "compuat": 9, "implement": [0, 2, 9, 10, 12, 15, 17], "contain": [0, 2, 6, 9, 10, 12, 13, 14, 15, 17], "whose": [1, 6, 9], "predicion": 9, "dure": [9, 12, 13, 17], "inv_weight": [], "pred": [6, 9, 14, 15, 16], "x02prob": [6, 9], "vox_pr": [6, 9], "overrid": [6, 9, 10, 12, 14, 15, 17], "fed": 9, "given": [6, 9, 10, 13, 14], "individu": [6, 9, 14], "accompani": [], "invers": 9, "design": [0, 1, 2, 12, 14, 15, 17], "divid": 9, "targ": [], "tupl": [10, 12, 13, 15, 17], "everi": [9, 10, 12, 13, 14, 15, 17], "voxel": [6, 9, 12, 13, 14, 17], "approach": [9, 17], "assign": [9, 15, 17], "entireti": 9, "pdg": [9, 17], "model": [1, 9, 10, 12, 17], "describ": [9, 17], "lbl": [9, 17], "gov": [9, 17], "review": [9, 17], "rpp2018": [9, 17], "rev": [9, 17], "passag": [9, 17], "particl": [9, 17], "matter": [9, 17], "onc": [9, 10, 12], "proce": [9, 15], "thusli": 9, "For": [0, 2, 9, 10, 12, 14, 15, 17], "p_ij": 9, "wa": [1, 9, 12, 14], "j": 9, "These": [0, 1, 2, 9, 14], "integr": 9, "uncorrel": [9, 17], "gaussian": [9, 15, 17], "centr": [9, 12, 13, 14, 17], "scale": [9, 15], "equal": [9, 10, 14, 17], "multipli": [9, 14, 17], "e_i": 9, "w_ij": 9, "give": 9, "x_0": 9, "left": [9, 17], "frac": 9, "0136": 9, "mathrm": 9, "rm": 9, "right": 9, "co": 9, "bar": 9, "_": [1, 9], "tot": 9, "differ": [9, 10, 12, 13, 17], "whole": [9, 15], "popul": 9, "rmss": 9, "term": [9, 14], "side": 9, "equat": 9, "addit": [0, 2, 9, 10, 14], "varianc": 9, "squar": [9, 14, 17], "x0_j": 9, "NOT": [9, 10, 17], "natur": 9, "log": [1, 9, 12, 14], "simplifi": 9, "code": [0, 2, 9, 14], "reli": [9, 17], "heavili": 9, "care": [0, 2, 9, 17], "privat": 9, "_combine_scatt": [], "data": [0, 1, 2, 11, 12, 15, 17], "so": 12, "entri": [], "out": [1, 14], "aid": [], "pair": [10, 12], "retriev": [10, 12, 17], "_get_voxel_zxy_x0_pred_unc": [], "incorrect": [], "todo": [9, 12, 14, 16, 17], "correct": [1, 17], "incredibli": [], "slow": [], "recommend": [9, 17], "_get_voxel_zxy_x0_pr": [], "spread": [], "_muon_effici": [], "_muon_probs_per_voxel_zxi": [], "_muon_scatter_var_unc": [], "_muon_scatter_var": [], "_n_mu": [], "_set_var_dimens": [], "_var_order_sz": [], "tot_scatt": [], "mom": [9, 10, 15], "_vox_zxy_x0_pred_unc": [], "_vox_zxy_x0_pr": [], "_weighted_mean": [], "wgt": [], "row": [], "_weighted_rm": [], "root": 1, "muon_effici": [6, 9], "muon_mom": 9, "momenta": [9, 10], "muon_mom_unc": 9, "muon_poca_xyz": [6, 9], "muon_poca_xyz_unc": [6, 9], "muon_probs_per_voxel_zxi": 9, "don": 9, "muon_theta_in": 9, "muon_theta_in_unc": 9, "muon_theta_out": 9, "muon_theta_out_unc": 9, "muon_total_scatt": 9, "muon_total_scatter_unc": 9, "n_mu": [6, 9], "includ": [1, 6, 9, 12, 14, 17], "vox_zxy_x0_pred_unc": 9, "Not": 9, "long": [9, 17], "calcul": [0, 2, 9, 12], "unit": [6, 8, 9, 12, 14, 17], "vox_zxy_x0_pr": 9, "x0_from_scatt": 9, "deltaz": 9, "invert": 9, "height": [1, 6, 9, 14, 17], "momentum": [9, 10, 12, 15], "estim": [1, 9], "denseblockclassifierfromx0": 9, "n_block_voxel": 9, "use_avgpool": 9, "cut_coef": 9, "10000": [6, 7, 9], "ratio_offset": 9, "ratio_coef": 9, "presenc": 9, "denser": 9, "transform": [9, 12], "wise": [9, 12], "binari": [9, 14], "statist": 9, "dens": 9, "block": [9, 13, 14, 17], "against": [9, 12, 13], "light": 9, "background": [9, 13], "bkg": 9, "blk": 9, "sigma": [9, 17], "b": [1, 9], "lowest": [9, 17], "remain": [9, 17], "rescal": [9, 14, 17], "coeffici": [9, 12, 14, 15, 17], "offset": 9, "constrain": 9, "beween": 9, "present": [9, 12, 13], "nearer": 9, "form": [1, 9, 17], "contigu": [9, 17], "blur": 9, "stride": 9, "kernel": [6, 9], "size": [7, 9, 13, 15, 17], "averag": [6, 9, 12, 14], "pool": 9, "actual": [9, 12, 17], "cut": 9, "sigmoid": [9, 14, 17], "kth": 9, "statisitc": 9, "also": [0, 2, 9, 10, 15, 17], "occupi": [9, 17], "wether": 9, "prediciton": 9, "sharp": 9, "sharper": [9, 12, 17], "constant": [1, 9, 10], "ratio": [9, 17], "scatter_batch": [], "panelx0inferr": [9, 15], "paneldetectorlay": [9, 12, 17], "absmuongener": [10, 12, 15], "x_rang": 10, "y_rang": 10, "fixed_mom": 10, "5": [7, 8, 10, 14, 17], "energy_rang": 10, "500": 10, "theta_rang": 10, "2217304763960306": 10, "core": [0, 2, 10], "flux": [0, 1, 2, 10], "generate_set": 10, "kinemat": 10, "sampl": [10, 12, 17], "uniformli": 10, "region": 10, "rang": [10, 12, 15, 17], "absolut": [10, 14, 17], "refer": [10, 15], "frame": [10, 17], "gev": 10, "radian": 10, "_muon_mass2": [], "01116369210198225": [], "_n_bins_energi": [], "200": [], "_n_bins_theta": [], "energi": 10, "suppli": [10, 15, 17], "classmethod": [10, 15], "from_volum": [10, 15], "min_angl": 10, "2617993877991494": 10, "heurist": 10, "d": 10, "balanc": [10, 14], "trade": 10, "realism": 10, "minimum": [10, 17], "boundari": [10, 12, 15, 17], "would": [0, 2, 10, 17], "directli": 10, "toward": 10, "n_muon": 10, "rank": 10, "2pi": 10, "muongenerator2015": 10, "guan": 10, "et": 10, "al": 10, "2015": 10, "arxiv": [10, 12], "1509": 10, "06176": 10, "p1": 10, "102573": 10, "p2": 10, "068287": 10, "p3": 10, "958633": 10, "p4": 10, "0407253": 10, "p5": 10, "817285": 10, "gaisser": 10, "formula": 10, "cosmic": 10, "np": 10, "incid": 10, "muongenerator2016": 10, "shukla": 10, "sanskrith": 10, "2018": 10, "1606": 10, "06907": 10, "e_0": 10, "87": 10, "e_c": 10, "i_0": 10, "88": 10, "38": 10, "1938": 10, "rod": 10, "174": 10, "epinv": 10, "00117096018735363": 10, "xy_p_theta_phi": [10, 12], "init_z": 10, "devic": [6, 7, 10, 15, 17], "cpu": [6, 7, 10, 15, 17], "own": 10, "coordin": [10, 12], "axi": [10, 17], "upward": 10, "mai": [1, 10, 12, 17], "automat": [10, 12, 17], "anticlockwis": 10, "updat": [0, 1, 2, 6, 10, 12, 15, 17], "propagate_dz_dz": 10, "dz": 10, "propagate_dz_d": 10, "scatter_dxi": 10, "dx_vol": 10, "dy_vol": 10, "mask": [10, 17], "shift": 10, "scatter_dtheta_dphi": 10, "dtheta_vol": 10, "dphi_vol": 10, "alter": 10, "eventu": 10, "extend": [0, 2, 10, 12], "about": [10, 12, 14], "reco_mom": 10, "howev": [10, 17], "simul": [0, 2, 10, 17], "measur": 10, "By": [10, 17], "snapshot_xyz": 10, "time": [9, 10, 14, 17], "xyz_hist": 10, "append_hit": 10, "_hit": 10, "_keep_mask": [], "_mom": [], "_phi": [], "_theta": [], "_x": [], "_xy": [], "_xyz": [], "_y": [], "_z": [], "reco_xi": [10, 17], "gen_xi": [10, 17], "either": [10, 12, 13, 17], "copi": [1, 10], "detach": 10, "clone": [1, 10], "theta_ref": 10, "compar": [0, 2, 10, 14, 16], "dtheta_x": 10, "theta_ref_x": 10, "theta_x": 10, "dtheta_i": 10, "theta_ref_i": 10, "theta_i": 10, "filter_muon": 10, "keep_mask": 10, "along": 10, "xy_low": 10, "xy_high": 10, "eas": 10, "n_hit": 10, "lower": [10, 12, 13, 14, 17], "limit": [10, 12], "upper": 10, "get_xy_mask": [10, 17], "correspond": [10, 14, 17], "p_dim": 10, "ph_dim": 10, "phi_from_theta_xi": 10, "work": [0, 1, 2, 10, 15], "xz": 10, "yz": 10, "anti": 10, "clockwis": 10, "propagate_d": 10, "flight": 10, "move": [10, 12, 17], "propagate_dz": 10, "afterward": [10, 17], "thei": [10, 12, 13, 14, 15, 17], "downward": 10, "remove_upwards_muon": 10, "after": [6, 10, 12, 14, 15, 17], "scatter": [0, 2, 6, 10, 12, 15, 17], "run": [6, 10, 12, 15, 17], "make": [1, 10, 12, 16, 17], "sure": [1, 10], "complet": [10, 12], "longer": 10, "scatter_dtheta_xi": 10, "dtheta_x_vol": 10, "dtheta_y_vol": 10, "scatter_dxyz": 10, "dz_vol": 10, "displac": 10, "th_dim": 10, "4": [7, 10, 17], "theta_from_theta_xi": 10, "theta_x_from_theta_phi": 10, "theta_y_from_theta_phi": 10, "upwards_muon": 10, "x_dim": 10, "y_dim": 10, "z_dim": 10, "callback": [0, 1, 2, 6, 11, 15], "wrapper": [11, 12], "valid": [1, 12, 15], "absvolumewrapp": [12, 15, 17], "interject": [12, 15], "variou": [0, 2, 12, 15, 17], "do": [12, 17], "noth": [12, 17], "pleas": [0, 2, 12, 17], "check": [1, 12, 17], "see": [1, 12, 17], "exactli": 12, "write": [12, 15], "volumewrapp": [12, 17], "Their": 12, "fit_param": 12, "fitparam": [12, 15], "style": 12, "It": [12, 14, 17], "read": [0, 2, 12, 15], "rather": [0, 2, 12, 17], "than": [12, 13, 14, 17], "on_": [12, 15], "_begin": [12, 15], "_end": [12, 15], "full": [12, 15, 17], "loop": [12, 15, 17], "set_wrapp": [12, 15], "on_train_begin": [6, 12, 15], "epoch": [12, 13, 15], "n_epoch": [12, 15], "state": [12, 14, 15], "train": [1, 12, 13, 15, 17], "on_epoch_begin": [12, 15], "enumer": [12, 15], "trn_passiv": [12, 15], "passive_b": [12, 15], "on_volume_batch_begin": [6, 12, 15], "load": [1, 12, 13, 15, 17], "on_volume_begin": [12, 15], "muon_batch": [12, 15], "n_mu_per_volum": [12, 15], "mu_b": [12, 15], "on_mu_batch_begin": [12, 15], "irradi": [12, 15], "on_scatter_end": [12, 15], "on_mu_batch_end": [12, 15], "on_x0_pred_begin": [12, 15], "overal": [12, 14, 15], "on_x0_pred_end": [6, 12, 15], "cost": [1, 12, 14, 15, 17], "add": [1, 12, 14, 15, 17], "on_volume_batch_end": [6, 12, 15], "on_backwards_begin": [12, 15], "backpropag": [6, 12, 15], "on_backwards_end": [6, 12, 15], "viii": [12, 15], "ensur": [1, 12, 15, 17], "physic": [12, 15, 17], "absdetectorlay": [12, 15, 17], "conform_detector": [12, 15, 17], "viv": [12, 15], "len": [12, 15], "break": [12, 15], "on_epoch_end": [12, 15], "val_pass": [12, 15], "on_train_end": [12, 15], "yet": [6, 12], "begin": [6, 12, 17], "end": [6, 12], "on_pred_begin": 12, "mode": [12, 15, 17], "on_pred_end": 12, "finish": 12, "latest": 12, "on_step_end": 12, "layout": [6, 12, 13, 17], "on_volume_end": 12, "befor": [1, 6, 12], "cycliccallback": [12, 15], "muonresampl": 12, "resampl": 12, "impact": 12, "check_mu_batch": 12, "determin": [12, 13], "prior": [12, 14, 17], "realist": 12, "gen": 12, "until": [12, 15], "gener": [0, 1, 2, 12, 13, 15, 17], "replac": 12, "hitrecord": [12, 16], "scatterrecord": [12, 16], "get_record": [12, 16], "plot_hit_dens": [12, 16], "distinct": 12, "_to_df": [], "save": [9, 12, 15, 16], "panda": 12, "datafram": [12, 16], "insid": [1, 12, 17], "plot_scatter_dens": [12, 16], "_reset": [], "prepar": [12, 17], "as_df": 12, "access": [1, 12], "evalmetr": [12, 15], "lower_metric_bett": 12, "name": [6, 12, 13, 15], "main_metr": 12, "metric": 12, "metriclogg": [12, 15], "live": 12, "feedback": 12, "main": [12, 17], "better": [12, 17], "get_metr": 12, "nomorenan": 12, "introduc": [1, 12], "need": [1, 12, 14, 15, 17], "heatmapgif": 12, "gif_filenam": 12, "heatmap": 12, "gif": 12, "savenam": [9, 12, 15, 16], "savepath": 12, "_create_gif": [], "imag": 12, "_plot_curr": [], "optimisation_histori": 12, "gif_length": 12, "10": [1, 6, 7, 12, 14, 17], "show_plot": 12, "show": [1, 12], "varieti": 12, "help": 12, "highlight": 12, "problem": [0, 2, 12], "hyper": 12, "without": 12, "print": [12, 14], "histori": 12, "get_loss_histori": 12, "addition": [0, 2, 12], "control": [1, 12, 14], "second": 12, "notebook": [12, 17], "_build_grid_spec": [], "gridspec": [], "snapshot": 12, "_prep_plot": [], "_snapshot_monitor": [], "cat_palett": 12, "tab10": 12, "get": [1, 12], "get_result": 12, "loaded_best": 12, "h_mid": 12, "8": [6, 8, 12, 14], "lbl_col": 12, "black": 12, "lbl_sz": 12, "24": 12, "leg_sz": 12, "16": 12, "info": [1, 12], "clean": 12, "grab": 12, "sub": [12, 17], "print_loss": 12, "rc": 12, "patch": 12, "edgecolor": 12, "whitegrid": 12, "tk_col": 12, "tk_sz": 12, "update_plot": 12, "w_mid": 12, "14": 12, "222222222222221": 12, "panelmetriclogg": 12, "logger": 12, "_set_axes_label": [], "clear": [], "onecycl": 12, "opt_nam": 12, "warmup_length": 12, "init_lr": 12, "init_mom": 12, "mid_lr": 12, "mid_mom": 12, "final_lr": 12, "final_mom": 12, "absoptschedul": 12, "smith": 12, "cycl": 12, "evolut": 12, "lr": [12, 15], "beta_1": [12, 15], "org": [1, 12], "ab": 12, "1803": 12, "09820": 12, "warmup": 12, "phase": 12, "learn": [12, 15, 17], "rate": [12, 15, 17], "decreas": [12, 15, 17], "stabilis": 12, "converg": 12, "instanti": [12, 15, 17], "argument": 12, "anneal": [12, 17], "affect": [12, 17], "schedul": 12, "low": [12, 17], "nomin": [12, 17], "moder": 12, "_activ": [], "inter_cnt": [], "predhandl": [12, 15], "collect": [0, 2, 12], "numpi": 12, "get_pr": [12, 15], "save2hdf5predhandl": 12, "path": [1, 9, 12, 15], "use_volume_target": 12, "overwrit": 12, "compress": 12, "lzf": 12, "volumetargetpredhandl": 12, "hdf5": [1, 12], "cach": 12, "written": 12, "increment": 12, "lookup": [12, 17], "exist": 12, "same": [9, 12, 13, 14, 17], "string": [12, 15, 17], "_open_fil": [], "_write_data": [], "costcoefwarmup": 12, "n_warmup": 12, "warmupcallback": [12, 15], "more": [12, 16, 17], "stabl": 12, "absdetectorloss": [12, 14, 15], "sever": [0, 2, 12, 15], "warm": 12, "kept": 12, "fix": [12, 13, 15, 17], "wait": 12, "activ": 12, "enough": 12, "past": 12, "median": 12, "paneloptconfig": [], "xy_pos_r": 12, "z_pos_rat": 12, "xy_span_r": 12, "budget_r": [], "desir": 12, "step": [12, 17], "cours": 12, "suitabl": 12, "panel": [12, 15], "expand": [], "fraction": [15, 17], "budget": [14, 15, 17], "postwarmupcallback": 12, "obejct": 12, "check_warmup": 12, "act": [12, 17], "prevent": 12, "flag": 12, "warmup_act": 12, "super": 12, "next": [12, 17], "skip": 12, "unset": 12, "panelupdatelimit": 12, "max_xy_step": 12, "max_z_step": 12, "max_xy_span_step": 12, "maximum": [12, 13, 17], "being": [12, 14, 17], "anomol": 12, "enact": 12, "hard": 12, "clamp": 12, "xy_span": [12, 17], "paramat": 12, "goe": 12, "sigmoidpanelsmoothnessschedul": [12, 17], "smooth_rang": 12, "smooth": [6, 12, 17], "sigmoiddetectorpanel": [12, 17], "unphys": 12, "sensit": [12, 17], "outsid": [12, 17], "edg": [12, 17], "close": [12, 14], "resembl": 12, "still": [1, 12], "A": [1, 12, 13, 14, 15, 17], "appropri": [], "come": [], "_set_smooth": [], "At": 12, "detectorheatmap": [15, 17], "re": [6, 7, 17], "init_xyz": 17, "init_xy_span": 17, "m2_cost": 17, "realistic_valid": 17, "n_cluster": 17, "30": 17, "_backward_hook": [], "_buffer": [], "_forward_hook": [], "_forward_pre_hook": [], "_is_full_backward_hook": [], "_load_state_dict_post_hook": [], "_load_state_dict_pre_hook": [], "_modul": [], "_non_persistent_buffers_set": [], "_paramet": [], "_state_dict_hook": [], "assign_budget": 17, "clamp_param": 17, "musigz_low": 17, "musigz_high": 17, "get_cost": 17, "get_effici": 17, "as_2d": 17, "get_resolut": 17, "plot_map": 17, "bpixel": 17, "bsavefig": 17, "filenam": 17, "abslay": 17, "oper": 17, "_n_cost": 17, "learnabl": 17, "how": [1, 14, 17], "type_label": 17, "encod": [14, 17], "extra": 17, "pure": 17, "togeth": [13, 17], "span": [6, 7, 17], "meter": 17, "ax": 17, "divis": 17, "correctli": [1, 17], "relat": [14, 17], "proper": 17, "determinist": 17, "currenc": [14, 17], "lie": 17, "etc": 17, "forward": [1, 14, 17], "get_lw_z_siz": 17, "detectorpanel": [15, 17], "modulelist": [6, 17], "zeroth": [12, 13, 14, 17], "highest": 17, "necessarili": 17, "investig": 17, "bound": 17, "get_devic": 17, "helper": 17, "rais": 17, "get_panel_zord": 17, "rad_length": 17, "yield_zordered_panel": 17, "yield": [13, 17], "iter": [1, 15, 17], "passivelay": 17, "rad_length_func": 17, "step_sz": 17, "01": 17, "pgeant": [1, 17], "develop": 17, "parameteris": 17, "geant": [1, 17], "radiat": 17, "n_x": 17, "n_y": 17, "exampl": [0, 12, 14, 17], "def": 17, "arb_rad_length": 17, "torch": 17, "ones": [12, 14, 17], "lead": 17, "beryllium": 17, "later": 17, "load_rad_length": 17, "select": [14, 17], "travers": [], "_pdg_scatter": [], "log_term": [], "euler": [], "rotat": 17, "matric": [], "convers": 1, "_pgeant_scatt": [], "abs2idx": 17, "possibl": [14, 17], "seri": 17, "mu_abs2idx": 17, "look": 17, "scatter_and_propag": 17, "prespecifi": 17, "neighbour": 17, "infinit": 17, "thin": 17, "rectangular": 17, "despit": [14, 17], "nn": 17, "continu": [1, 17], "2d": [16, 17], "across": 17, "decid": 17, "evalu": [0, 2, 14, 15, 17], "eval": 17, "area": 17, "learnt": 17, "effect": [12, 17], "now": [1, 17], "aspect": [14, 15, 17], "improv": [9, 17], "resiz": 17, "meet": 17, "interpret": [1, 14, 17], "budget_scal": 17, "match": [14, 17], "xyz_low": 17, "xyz_high": 17, "20": 17, "random": [13, 17], "1e": 17, "subtract": 17, "min": 17, "max": 17, "doesn": 17, "overlap": 17, "overridden": [13, 17], "subclass": 17, "although": 17, "recip": 17, "former": 17, "regist": 17, "hook": 17, "while": 17, "silent": 17, "ignor": 17, "pre": [1, 13, 15, 17], "get_gauss": 17, "distribut": [0, 2, 17], "interact": [1, 17], "consist": [0, 2, 14, 17], "reconstruct": 17, "get_scaled_xy_span": 17, "xy2": 17, "li": 17, "border": 17, "slower": [14, 17], "wherea": 17, "transit": 17, "strongli": 17, "approxim": 17, "sig_model": 17, "interfac": 17, "conveni": 17, "respons": 17, "optim": [15, 17], "could": [9, 17], "volumeclassloss": [14, 17], "front": 17, "zxy": 17, "corner": 17, "support": [1, 15, 17], "spars": 17, "_check_pass": [], "_configure_budget": [], "budget_weight": [], "explicit": [], "hierarchi": [], "thu": [], "_n_layer_cost": 17, "softmax": [14, 17], "normalis": [14, 15, 17], "slice": 17, "taken": 17, "_get_devic": [], "system": [0, 1, 2, 17], "amongst": 17, "build_edg": [], "draw": 17, "xlim": 17, "ylim": 17, "zlim": 17, "pertain": 17, "jupyt": [1, 17], "matplotlib": 17, "you": [0, 1, 2, 17], "dimension": 17, "turn": 17, "won": 17, "explicitli": 17, "get_detector": [15, 17], "get_passive_z_rang": 17, "get_pass": 17, "get_rad_cub": [14, 17], "h": [6, 17], "lookup_passive_xyz_coord": 17, "passive_s": 17, "public": [0, 1, 2], "ssh": 1, "your": 1, "github": 1, "profil": [], "follow": [], "instruct": [], "checkout": [], "packag": 3, "git": 1, "gilesstrong": 1, "mode_muon_tomographi": [], "gpu": [], "setup": [], "conda": [], "pytorch": [], "nb_conda_kernel": [], "tomopt": [1, 2], "python": 1, "pip": 1, "ipykernel": [], "cu111": [], "f": 1, "download": 1, "whl": [], "torch_stabl": [], "html": [], "txt": [], "virtual": 1, "environ": 1, "anaconda": [], "miniconda": [], "rememb": [], "restart": [], "shell": [], "attemt": [], "command": 1, "bashrc": [], "env": [], "yml": [], "choic": [], "content": [], "commit": 1, "appar": [], "ipython": [], "displai": [], "pytest": 1, "pull": [], "ran": [], "local": 1, "test_muon": [], "py": [], "tomo_deepinf": 1, "contact": [0, 1, 2], "definit": [0, 1, 2], "gnn": 1, "export": 1, "jit": 1, "trace": 1, "script": 1, "deepvolumeinfer": 1, "we": [0, 1, 2], "find": 1, "host": 1, "easi": [0, 1, 2], "mode_muon_tomography_scatt": 1, "csv": 1, "tomopt_sphinx_them": 1, "appear": 1, "doc": [1, 14], "project": 1, "peopl": 1, "contribut": 1, "summaris": 1, "ladle_furnac": 5, "small_wal": 5, "u_lorri": 5, "ladlefurnacepassivegener": 6, "x0_furnac": 6, "01782": 6, "fill_materi": 6, "hot": 6, "liquid": 6, "steel": [1, 6], "slag_materi": 6, "slag": 6, "abspassivegener": [6, 7, 8, 13], "research": [0, 2, 6, 8], "edgedetladlefurnacefilllevelinferr": 6, "pipelin": 6, "remove_ladl": 6, "avg_3d": 6, "avg_lay": 6, "avg_1d": 6, "ridge_1d_0": 6, "max_div_min": 6, "add_batch_dim": 6, "edge_det": 6, "gauss_1d": 6, "gauss_3d": 6, "laplacian_1d": 6, "max_sub_min": 6, "prewit_1d": 6, "ladl": [1, 6], "thick": 6, "ridge_1d_2": 6, "ridge_1d_4": 6, "ridge_1d_8": 6, "linearcorrectioncallback": 6, "partial_opt": [6, 15], "init_weight": 6, "init_bia": 6, "pocazladlefurnacefilllevelinferr": 6, "fill": [1, 6, 14], "heigh": 6, "pred_height": 6, "ladlefurnaceintclassloss": 6, "pred_int_start": [6, 14], "use_ms": [6, 14], "target_budget": [6, 14], "budget_smooth": [6, 14], "cost_coef": [6, 14], "steep_budget": [6, 14], "debug": [6, 14], "volumeintclassloss": [6, 14], "spreadrangeloss": 6, "compare_init_optimised_2": 6, "df_start": 6, "df_opt_2": 6, "compare_init_to_optimis": 6, "df_opt": 6, "compare_optimised_to_baselin": 6, "df_bl_1": 6, "df_bl_2": 6, "compare_raw_init_to_bias_corrected_init": 6, "get_baseline_detector_1": 6, "9": 6, "get_baseline_detector_2": 6, "get_initial_detector": 6, "smallwallspassivegener": 7, "x0_soil": 7, "2624248696430881": 7, "x0_wall": 7, "08022522418503258": 7, "stop_k": 7, "turn_k": 7, "min_length": 7, "min_height": 7, "get_small_walls_volum": 7, "passive_lwh": 7, "det_height": 7, "get_small_walls_volume_wrapp": 7, "panelvolumewrapp": [7, 15], "ulorrypassivegener": 8, "u_volum": 8, "u_prob": 8, "fill_frac": 8, "x0_lorri": 8, "01757": 8, "bkg_materi": 8, "air": 8, "iron": 8, "figur": 9, "cdf": 9, "precomput": 9, "prob": 9, "tripl": 9, "rtype": 17, "refactor": 9, "panelcentr": 12, "epochsav": 12, "uniqu": 12, "specifc": 12, "resum": 12, "iter_cnt": 12, "optconfig": 12, "nor": 12, "sgd": 12, "opt": [12, 15], "param_group": 12, "param": 12, "impli": 12, "xy_pos_opt": [12, 15], "z_pos_opt": [12, 15], "xy_span_opt": [12, 15], "absblockpassivegener": 13, "block_siz": 13, "block_size_max_half": 13, "cuboid": 13, "_gener": 13, "get_data": 13, "randomli": 13, "orient": 13, "half": 13, "known": 13, "radlengthfunc": 13, "blockpresentpassivegener": 13, "potenti": 13, "passiveyield": [13, 15], "n_passiv": 13, "shuffl": 13, "dataset": 13, "randomblockpassivegener": 13, "sort_x0": 13, "enforce_diff_mat": 13, "unless": 13, "voxelpassivegener": 13, "quantifi": 14, "characteris": 14, "import": 14, "ideal": 14, "task": [0, 2, 14], "algorithm": [0, 2, 14], "gradual": 14, "predefin": 14, "rapidli": 14, "smoothli": 14, "Be": 14, "linearli": 14, "exceed": 14, "less": 14, "steep": 14, "flatten": 14, "slightli": 14, "_get_inference_loss": 14, "quickli": 14, "rise": 14, "veri": 14, "whenev": 14, "absmaterialclassloss": 14, "classifi": 14, "what": [1, 14], "multi": 14, "cross": 14, "entropi": 14, "nll": 14, "bce": 14, "targ2int": 14, "treatabl": 14, "just": [1, 14], "categor": 14, "integer_class_loss": 14, "icl": 14, "volumemseloss": 14, "voxelclassloss": 14, "voxelx0loss": 14, "mse": 14, "int_prob": 14, "target_int": 14, "pred_start_int": 14, "reduct": 14, "regress": 14, "applic": 14, "realli": 14, "like": 14, "aim": [1, 14], "penalis": 14, "produc": [14, 16], "0154": 14, "greater": 14, "0007": 14, "8773": 14, "unreduc": 14, "loss_func": 15, "partial_scatter_inferr": 15, "partial_volume_inferr": 15, "mu_gener": 15, "_build_opt": 15, "qualiti": 15, "life": 15, "val_loss": 15, "broken": 15, "_fit_epoch": 15, "_scan_volum": 15, "mechan": 15, "abl": 15, "awar": 15, "uninitialis": 15, "plan": 15, "cb": 15, "cb_savepath": 15, "train_weight": 15, "count": 15, "reach": 15, "get_opt_lr": 15, "get_opt_mom": 15, "get_param_count": 15, "trainabl": 15, "pred_cb": 15, "pred_callback": 15, "set_opt_lr": 15, "set_opt_mom": 15, "arbvolumewrapp": 15, "arbitrari": 15, "whatev": 15, "paramt": 15, "from_sav": 15, "kwarg": 15, "cyclic_cb": 15, "epoch_bar": 15, "progressbar": 15, "loss_val": 15, "mean_loss": 15, "metric_cb": 15, "metric_log": 15, "passive_bar": 15, "nbprogressbar": 15, "consoleprogressbar": 15, "sb": 15, "skip_opt_step": 15, "stop": 15, "tst_passiv": 15, "volume_id": 15, "volume_inferr": 15, "warmup_cb": 15, "heatmapvolumewrapp": 15, "mu_opt": 15, "norm_opt": 15, "sig_opt": 15, "adjust": 15, "budget_opt": 15, "hit_df": 16, "scatter_df": 16, "plot_pred_true_x0": 16, "revis": 16, "intuit": 16, "build_xyz_edg": 17, "xyz_centr": 17, "xyz_edg": 17, "librari": [0, 1, 2], "our": [0, 1, 2], "disclaim": [0, 1, 2], "specif": [0, 2], "unstabl": [0, 2], "tune": [0, 2], "sai": [0, 2], "polish": [0, 2], "fellow": [0, 2], "field": [0, 2], "interest": [0, 2], "serious": [0, 2], "u": [0, 2], "love": [0, 2], "wish": [0, 2], "geometri": [0, 2], "arriv": [0, 2], "ground": [0, 2], "truth": [0, 2], "modular": [0, 2], "easili": [0, 2], "extens": [0, 2], "constraint": [0, 2], "submodul": [0, 2], "ongo": [0, 2], "concret": [0, 2], "real": [0, 2], "world": [0, 2], "literatur": [0, 2], "util": [0, 2], "visualis": [0, 2], "throughout": [0, 2], "codebas": [0, 2], "usag": 1, "poetri": 1, "offici": 1, "curl": 1, "ssl": 1, "python3": 1, "self": 1, "pyenv": 1, "bash": 1, "plugin": 1, "config": 1, "everyth": 1, "unfamiliar": 1, "prepend": 1, "stuff": 1, "execut": 1, "tomographi": 2, "few": 1, "getting_start": 1, "four": 1, "00_hello_world": 1, "ipynb": 1, "workflow": 1, "01_indepth_tutorial_single_cycl": 1, "go": 1, "02_indepth_tutotial_optimisation_and_callback": 1, "03_fixed_budget_mod": 1, "maintain": 1, "cover": 1, "furnac": 1, "plant": 1, "fulli": 1, "reproduc": 1, "manner": 1, "experienc": 1, "want": 1, "browser": 1, "machin": 1, "server": 1, "On": 1, "port": 1, "8889": 1, "pick": 1, "anoth": 1, "l": 1, "localhost": 1, "8888": 1, "usernam": 1, "cluster_hostnam": 1, "layperson": 1, "tree": 1, "ask": 1, "authent": 1, "token": 1, "shown": 1, "intermedi": 1, "gatewai": 1, "similar": 1, "crucial": 1, "chain": 1, "8890": 1, "gateway_hostnam": 1}, "objects": {"tomopt.benchmarks.ladle_furnace": [[6, 0, 0, "-", "data"], [6, 0, 0, "-", "inference"], [6, 0, 0, "-", "loss"], [6, 0, 0, "-", "plotting"], [6, 0, 0, "-", "volume"]], "tomopt.benchmarks.ladle_furnace.data": [[6, 1, 1, "", "LadleFurnacePassiveGenerator"]], "tomopt.benchmarks.ladle_furnace.inference": [[6, 1, 1, "", "EdgeDetLadleFurnaceFillLevelInferrer"], [6, 1, 1, "", "LinearCorrectionCallback"], [6, 1, 1, "", "PocaZLadleFurnaceFillLevelInferrer"]], "tomopt.benchmarks.ladle_furnace.inference.EdgeDetLadleFurnaceFillLevelInferrer": [[6, 2, 1, "", "avg_1d"], [6, 2, 1, "", "avg_3d"], [6, 2, 1, "", "avg_layers"], [6, 2, 1, "", "edge_det"], [6, 2, 1, "", "gauss_1d"], [6, 2, 1, "", "gauss_3d"], [6, 2, 1, "", "laplacian_1d"], [6, 2, 1, "", "max_div_min"], [6, 2, 1, "", "max_sub_min"], [6, 2, 1, "", "negative"], [6, 2, 1, "", "prewit_1d"], [6, 2, 1, "", "remove_ladle"], [6, 2, 1, "", "ridge_1d_0"], [6, 2, 1, "", "ridge_1d_2"], [6, 2, 1, "", "ridge_1d_4"], [6, 2, 1, "", "ridge_1d_8"], [6, 2, 1, "", "x02probs"]], "tomopt.benchmarks.ladle_furnace.inference.LinearCorrectionCallback": [[6, 2, 1, "", "on_backwards_end"], [6, 2, 1, "", "on_train_begin"], [6, 2, 1, "", "on_volume_batch_begin"], [6, 2, 1, "", "on_x0_pred_end"]], "tomopt.benchmarks.ladle_furnace.inference.PocaZLadleFurnaceFillLevelInferrer": [[6, 2, 1, "", "compute_efficiency"], [6, 2, 1, "", "get_prediction"], [6, 3, 1, "", "muon_efficiency"], [6, 3, 1, "", "muon_poca_xyz"], [6, 3, 1, "", "muon_poca_xyz_unc"], [6, 3, 1, "", "n_mu"], [6, 3, 1, "", "pred_height"], [6, 3, 1, "", "smooth"]], "tomopt.benchmarks.ladle_furnace.loss": [[6, 1, 1, "", "LadleFurnaceIntClassLoss"], [6, 1, 1, "", "SpreadRangeLoss"]], "tomopt.benchmarks.ladle_furnace.loss.SpreadRangeLoss": [[6, 2, 1, "", "on_volume_batch_begin"], [6, 2, 1, "", "on_volume_batch_end"], [6, 2, 1, "", "on_x0_pred_end"]], "tomopt.benchmarks.ladle_furnace.plotting": [[6, 4, 1, "", "compare_init_optimised_2"], [6, 4, 1, "", "compare_init_to_optimised"], [6, 4, 1, "", "compare_optimised_to_baselines"], [6, 4, 1, "", "compare_raw_init_to_bias_corrected_init"]], "tomopt.benchmarks.ladle_furnace.volume": [[6, 4, 1, "", "get_baseline_detector_1"], [6, 4, 1, "", "get_baseline_detector_2"], [6, 4, 1, "", "get_initial_detector"]], "tomopt.benchmarks.small_walls": [[7, 0, 0, "-", "data"], [7, 0, 0, "-", "volume"]], "tomopt.benchmarks.small_walls.data": [[7, 1, 1, "", "SmallWallsPassiveGenerator"]], "tomopt.benchmarks.small_walls.volume": [[7, 4, 1, "", "get_small_walls_volume"], [7, 4, 1, "", "get_small_walls_volume_wrapper"]], "tomopt.benchmarks.u_lorry": [[8, 0, 0, "-", "data"]], "tomopt.benchmarks.u_lorry.data": [[8, 1, 1, "", "ULorryPassiveGenerator"]], "tomopt": [[4, 0, 0, "-", "core"], [4, 0, 0, "-", "utils"], [4, 0, 0, "-", "version"]], "tomopt.inference": [[9, 0, 0, "-", "scattering"], [9, 0, 0, "-", "volume"]], "tomopt.inference.scattering": [[9, 1, 1, "", "GenScatterBatch"], [9, 1, 1, "", "ScatterBatch"]], "tomopt.inference.scattering.ScatterBatch": [[9, 3, 1, "", "above_gen_hits"], [9, 3, 1, "", "above_hit_effs"], [9, 3, 1, "", "above_hit_uncs"], [9, 3, 1, "", "above_hits"], [9, 3, 1, "", "below_gen_hits"], [9, 3, 1, "", "below_hit_effs"], [9, 3, 1, "", "below_hit_uncs"], [9, 3, 1, "", "below_hits"], [9, 3, 1, "", "dphi"], [9, 3, 1, "", "dphi_unc"], [9, 3, 1, "", "dtheta"], [9, 3, 1, "", "dtheta_unc"], [9, 3, 1, "", "dtheta_xy"], [9, 3, 1, "", "dtheta_xy_unc"], [9, 3, 1, "", "dxy"], [9, 3, 1, "", "dxy_unc"], [9, 3, 1, "", "gen_hits"], [9, 2, 1, "", "get_muon_trajectory"], [9, 2, 1, "", "get_scatter_mask"], [9, 3, 1, "", "hit_effs"], [9, 3, 1, "", "hit_uncs"], [9, 3, 1, "", "hits"], [9, 3, 1, "", "n_hits_above"], [9, 3, 1, "", "n_hits_below"], [9, 3, 1, "", "phi_in"], [9, 3, 1, "", "phi_in_unc"], [9, 3, 1, "", "phi_out"], [9, 3, 1, "", "phi_out_unc"], [9, 2, 1, "", "plot_scatter"], [9, 3, 1, "", "poca_xyz"], [9, 3, 1, "", "poca_xyz_unc"], [9, 3, 1, "", "reco_hits"], [9, 3, 1, "", "theta_in"], [9, 3, 1, "", "theta_in_unc"], [9, 3, 1, "", "theta_msc"], [9, 3, 1, "", "theta_msc_unc"], [9, 3, 1, "", "theta_out"], [9, 3, 1, "", "theta_out_unc"], [9, 3, 1, "", "theta_xy_in"], [9, 3, 1, "", "theta_xy_in_unc"], [9, 3, 1, "", "theta_xy_out"], [9, 3, 1, "", "theta_xy_out_unc"], [9, 3, 1, "", "total_scatter"], [9, 3, 1, "", "total_scatter_unc"], [9, 3, 1, "", "track_in"], [9, 3, 1, "", "track_out"], [9, 3, 1, "", "track_start_in"], [9, 3, 1, "", "track_start_out"], [9, 3, 1, "", "xyz_in"], [9, 3, 1, "", "xyz_in_unc"], [9, 3, 1, "", "xyz_out"], [9, 3, 1, "", "xyz_out_unc"]], "tomopt.inference.volume": [[9, 1, 1, "", "AbsIntClassifierFromX0"], [9, 1, 1, "", "AbsVolumeInferrer"], [9, 1, 1, "", "AbsX0Inferrer"], [9, 1, 1, "", "DenseBlockClassifierFromX0s"], [9, 1, 1, "", "PanelX0Inferrer"]], "tomopt.inference.volume.AbsIntClassifierFromX0": [[9, 2, 1, "", "add_scatters"], [9, 2, 1, "", "compute_efficiency"], [9, 2, 1, "", "get_prediction"], [9, 2, 1, "", "x02probs"]], "tomopt.inference.volume.AbsVolumeInferrer": [[9, 2, 1, "", "add_scatters"], [9, 2, 1, "", "compute_efficiency"], [9, 2, 1, "", "get_prediction"]], "tomopt.inference.volume.AbsX0Inferrer": [[9, 2, 1, "", "get_prediction"], [9, 3, 1, "", "muon_efficiency"], [9, 3, 1, "", "muon_mom"], [9, 3, 1, "", "muon_mom_unc"], [9, 3, 1, "", "muon_poca_xyz"], [9, 3, 1, "", "muon_poca_xyz_unc"], [9, 3, 1, "", "muon_probs_per_voxel_zxy"], [9, 3, 1, "", "muon_theta_in"], [9, 3, 1, "", "muon_theta_in_unc"], [9, 3, 1, "", "muon_theta_out"], [9, 3, 1, "", "muon_theta_out_unc"], [9, 3, 1, "", "muon_total_scatter"], [9, 3, 1, "", "muon_total_scatter_unc"], [9, 3, 1, "", "n_mu"], [9, 3, 1, "", "vox_zxy_x0_pred_uncs"], [9, 3, 1, "", "vox_zxy_x0_preds"], [9, 2, 1, "", "x0_from_scatters"]], "tomopt.inference.volume.DenseBlockClassifierFromX0s": [[9, 2, 1, "", "add_scatters"], [9, 2, 1, "", "compute_efficiency"], [9, 2, 1, "", "get_prediction"]], "tomopt.inference.volume.PanelX0Inferrer": [[9, 2, 1, "", "compute_efficiency"]], "tomopt.muon": [[10, 0, 0, "-", "generation"], [10, 0, 0, "-", "muon_batch"]], "tomopt.muon.generation": [[10, 1, 1, "", "AbsMuonGenerator"], [10, 1, 1, "", "MuonGenerator2015"], [10, 1, 1, "", "MuonGenerator2016"]], "tomopt.muon.generation.AbsMuonGenerator": [[10, 2, 1, "", "flux"], [10, 2, 1, "", "from_volume"], [10, 2, 1, "", "generate_set"]], "tomopt.muon.generation.MuonGenerator2015": [[10, 5, 1, "", "P1"], [10, 5, 1, "", "P2"], [10, 5, 1, "", "P3"], [10, 5, 1, "", "P4"], [10, 5, 1, "", "P5"], [10, 2, 1, "", "flux"]], "tomopt.muon.generation.MuonGenerator2016": [[10, 5, 1, "", "E_0"], [10, 5, 1, "", "E_c"], [10, 5, 1, "", "I_0"], [10, 5, 1, "", "N"], [10, 5, 1, "", "Rod"], [10, 5, 1, "", "epinv"], [10, 2, 1, "", "flux"], [10, 5, 1, "", "n"]], "tomopt.muon.muon_batch": [[10, 1, 1, "", "MuonBatch"]], "tomopt.muon.muon_batch.MuonBatch": [[10, 2, 1, "", "append_hits"], [10, 2, 1, "", "copy"], [10, 2, 1, "", "dtheta"], [10, 2, 1, "", "dtheta_x"], [10, 2, 1, "", "dtheta_y"], [10, 2, 1, "", "filter_muons"], [10, 2, 1, "", "get_hits"], [10, 2, 1, "", "get_xy_mask"], [10, 3, 1, "", "mom"], [10, 3, 1, "", "muons"], [10, 5, 1, "", "p_dim"], [10, 5, 1, "", "ph_dim"], [10, 3, 1, "", "phi"], [10, 2, 1, "", "phi_from_theta_xy"], [10, 2, 1, "", "propagate_d"], [10, 2, 1, "", "propagate_dz"], [10, 3, 1, "", "reco_mom"], [10, 2, 1, "", "remove_upwards_muons"], [10, 2, 1, "", "scatter_dtheta_dphi"], [10, 2, 1, "", "scatter_dtheta_xy"], [10, 2, 1, "", "scatter_dxyz"], [10, 2, 1, "", "snapshot_xyz"], [10, 5, 1, "", "th_dim"], [10, 3, 1, "", "theta"], [10, 2, 1, "", "theta_from_theta_xy"], [10, 3, 1, "", "theta_x"], [10, 2, 1, "", "theta_x_from_theta_phi"], [10, 3, 1, "", "theta_xy"], [10, 3, 1, "", "theta_y"], [10, 2, 1, "", "theta_y_from_theta_phi"], [10, 3, 1, "", "upwards_muons"], [10, 3, 1, "", "x"], [10, 5, 1, "", "x_dim"], [10, 3, 1, "", "xy"], [10, 3, 1, "", "xyz"], [10, 3, 1, "", "xyz_hist"], [10, 3, 1, "", "y"], [10, 5, 1, "", "y_dim"], [10, 3, 1, "", "z"], [10, 5, 1, "", "z_dim"]], "tomopt.optimisation.callbacks": [[12, 0, 0, "-", "callback"], [12, 0, 0, "-", "cyclic_callbacks"], [12, 0, 0, "-", "data_callbacks"], [12, 0, 0, "-", "detector_callbacks"], [12, 0, 0, "-", "diagnostic_callbacks"], [12, 0, 0, "-", "eval_metric"], [12, 0, 0, "-", "grad_callbacks"], [12, 0, 0, "-", "heatmap_gif"], [12, 0, 0, "-", "monitors"], [12, 0, 0, "-", "opt_callbacks"], [12, 0, 0, "-", "pred_callbacks"], [12, 0, 0, "-", "warmup_callbacks"]], "tomopt.optimisation.callbacks.callback": [[12, 1, 1, "", "Callback"]], "tomopt.optimisation.callbacks.callback.Callback": [[12, 2, 1, "", "on_backwards_begin"], [12, 2, 1, "", "on_backwards_end"], [12, 2, 1, "", "on_epoch_begin"], [12, 2, 1, "", "on_epoch_end"], [12, 2, 1, "", "on_mu_batch_begin"], [12, 2, 1, "", "on_mu_batch_end"], [12, 2, 1, "", "on_pred_begin"], [12, 2, 1, "", "on_pred_end"], [12, 2, 1, "", "on_scatter_end"], [12, 2, 1, "", "on_step_end"], [12, 2, 1, "", "on_train_begin"], [12, 2, 1, "", "on_train_end"], [12, 2, 1, "", "on_volume_batch_begin"], [12, 2, 1, "", "on_volume_batch_end"], [12, 2, 1, "", "on_volume_begin"], [12, 2, 1, "", "on_volume_end"], [12, 2, 1, "", "on_x0_pred_begin"], [12, 2, 1, "", "on_x0_pred_end"], [12, 2, 1, "", "set_wrapper"], [12, 5, 1, "", "wrapper"]], "tomopt.optimisation.callbacks.cyclic_callbacks": [[12, 1, 1, "", "CyclicCallback"]], "tomopt.optimisation.callbacks.data_callbacks": [[12, 1, 1, "", "MuonResampler"]], "tomopt.optimisation.callbacks.data_callbacks.MuonResampler": [[12, 2, 1, "", "check_mu_batch"], [12, 2, 1, "", "on_mu_batch_begin"], [12, 2, 1, "", "resample"]], "tomopt.optimisation.callbacks.detector_callbacks": [[12, 1, 1, "", "PanelCentring"], [12, 1, 1, "", "PanelUpdateLimiter"], [12, 1, 1, "", "SigmoidPanelSmoothnessSchedule"]], "tomopt.optimisation.callbacks.detector_callbacks.PanelCentring": [[12, 2, 1, "", "on_step_end"]], "tomopt.optimisation.callbacks.detector_callbacks.PanelUpdateLimiter": [[12, 2, 1, "", "on_backwards_end"], [12, 2, 1, "", "on_step_end"]], "tomopt.optimisation.callbacks.detector_callbacks.SigmoidPanelSmoothnessSchedule": [[12, 2, 1, "", "on_epoch_begin"], [12, 2, 1, "", "on_train_begin"]], "tomopt.optimisation.callbacks.diagnostic_callbacks": [[12, 1, 1, "", "HitRecord"], [12, 1, 1, "", "ScatterRecord"]], "tomopt.optimisation.callbacks.diagnostic_callbacks.HitRecord": [[12, 2, 1, "", "on_scatter_end"]], "tomopt.optimisation.callbacks.diagnostic_callbacks.ScatterRecord": [[12, 2, 1, "", "get_record"], [12, 2, 1, "", "on_pred_begin"], [12, 2, 1, "", "on_scatter_end"], [12, 2, 1, "", "on_train_begin"]], "tomopt.optimisation.callbacks.eval_metric": [[12, 1, 1, "", "EvalMetric"]], "tomopt.optimisation.callbacks.eval_metric.EvalMetric": [[12, 2, 1, "", "get_metric"], [12, 2, 1, "", "on_train_begin"]], "tomopt.optimisation.callbacks.grad_callbacks": [[12, 1, 1, "", "NoMoreNaNs"]], "tomopt.optimisation.callbacks.grad_callbacks.NoMoreNaNs": [[12, 2, 1, "", "on_backwards_end"]], "tomopt.optimisation.callbacks.heatmap_gif": [[12, 1, 1, "", "HeatMapGif"]], "tomopt.optimisation.callbacks.heatmap_gif.HeatMapGif": [[12, 2, 1, "", "on_epoch_begin"], [12, 2, 1, "", "on_train_begin"], [12, 2, 1, "", "on_train_end"]], "tomopt.optimisation.callbacks.monitors": [[12, 1, 1, "", "MetricLogger"], [12, 1, 1, "", "PanelMetricLogger"]], "tomopt.optimisation.callbacks.monitors.MetricLogger": [[12, 5, 1, "", "cat_palette"], [12, 2, 1, "", "get_loss_history"], [12, 2, 1, "", "get_results"], [12, 5, 1, "", "h_mid"], [12, 5, 1, "", "lbl_col"], [12, 5, 1, "", "lbl_sz"], [12, 5, 1, "", "leg_sz"], [12, 2, 1, "", "on_backwards_end"], [12, 2, 1, "", "on_epoch_begin"], [12, 2, 1, "", "on_epoch_end"], [12, 2, 1, "", "on_train_begin"], [12, 2, 1, "", "on_train_end"], [12, 2, 1, "", "on_volume_batch_end"], [12, 2, 1, "", "on_volume_end"], [12, 2, 1, "", "print_losses"], [12, 5, 1, "", "style"], [12, 5, 1, "", "tk_col"], [12, 5, 1, "", "tk_sz"], [12, 2, 1, "", "update_plot"], [12, 5, 1, "", "w_mid"]], "tomopt.optimisation.callbacks.monitors.PanelMetricLogger": [[12, 2, 1, "", "update_plot"]], "tomopt.optimisation.callbacks.opt_callbacks": [[12, 1, 1, "", "EpochSave"], [12, 1, 1, "", "OneCycle"]], "tomopt.optimisation.callbacks.opt_callbacks.EpochSave": [[12, 2, 1, "", "on_epoch_end"]], "tomopt.optimisation.callbacks.opt_callbacks.OneCycle": [[12, 2, 1, "", "on_epoch_end"], [12, 2, 1, "", "schedule"]], "tomopt.optimisation.callbacks.pred_callbacks": [[12, 1, 1, "", "PredHandler"], [12, 1, 1, "", "Save2HDF5PredHandler"], [12, 1, 1, "", "VolumeTargetPredHandler"]], "tomopt.optimisation.callbacks.pred_callbacks.PredHandler": [[12, 2, 1, "", "get_preds"], [12, 2, 1, "", "on_pred_begin"], [12, 2, 1, "", "on_x0_pred_end"]], "tomopt.optimisation.callbacks.pred_callbacks.Save2HDF5PredHandler": [[12, 2, 1, "", "on_x0_pred_end"]], "tomopt.optimisation.callbacks.pred_callbacks.VolumeTargetPredHandler": [[12, 2, 1, "", "on_x0_pred_end"]], "tomopt.optimisation.callbacks.warmup_callbacks": [[12, 1, 1, "", "CostCoefWarmup"], [12, 1, 1, "", "OptConfig"], [12, 1, 1, "", "PostWarmupCallback"], [12, 1, 1, "", "WarmupCallback"]], "tomopt.optimisation.callbacks.warmup_callbacks.CostCoefWarmup": [[12, 2, 1, "", "on_epoch_end"], [12, 2, 1, "", "on_volume_end"]], "tomopt.optimisation.callbacks.warmup_callbacks.OptConfig": [[12, 2, 1, "", "on_backwards_end"], [12, 2, 1, "", "on_epoch_end"]], "tomopt.optimisation.callbacks.warmup_callbacks.PostWarmupCallback": [[12, 2, 1, "", "check_warmups"], [12, 2, 1, "", "on_epoch_begin"], [12, 2, 1, "", "on_train_begin"]], "tomopt.optimisation.callbacks.warmup_callbacks.WarmupCallback": [[12, 2, 1, "", "check_warmups"], [12, 2, 1, "", "on_epoch_begin"], [12, 2, 1, "", "on_epoch_end"], [12, 2, 1, "", "on_train_begin"]], "tomopt.optimisation.data": [[13, 0, 0, "-", "passives"]], "tomopt.optimisation.data.passives": [[13, 1, 1, "", "AbsBlockPassiveGenerator"], [13, 1, 1, "", "AbsPassiveGenerator"], [13, 1, 1, "", "BlockPresentPassiveGenerator"], [13, 1, 1, "", "PassiveYielder"], [13, 1, 1, "", "RandomBlockPassiveGenerator"], [13, 1, 1, "", "VoxelPassiveGenerator"]], "tomopt.optimisation.data.passives.AbsPassiveGenerator": [[13, 2, 1, "", "generate"], [13, 2, 1, "", "get_data"]], "tomopt.optimisation.loss": [[14, 0, 0, "-", "loss"], [14, 0, 0, "-", "sub_losses"]], "tomopt.optimisation.loss.loss": [[14, 1, 1, "", "AbsDetectorLoss"], [14, 1, 1, "", "AbsMaterialClassLoss"], [14, 1, 1, "", "VolumeClassLoss"], [14, 1, 1, "", "VolumeIntClassLoss"], [14, 1, 1, "", "VolumeMSELoss"], [14, 1, 1, "", "VoxelClassLoss"], [14, 1, 1, "", "VoxelX0Loss"]], "tomopt.optimisation.loss.loss.AbsDetectorLoss": [[14, 2, 1, "", "forward"]], "tomopt.optimisation.loss.sub_losses": [[14, 4, 1, "", "integer_class_loss"]], "tomopt.optimisation.wrapper": [[15, 0, 0, "-", "volume_wrapper"]], "tomopt.optimisation.wrapper.volume_wrapper": [[15, 1, 1, "", "AbsVolumeWrapper"], [15, 1, 1, "", "ArbVolumeWrapper"], [15, 1, 1, "", "FitParams"], [15, 1, 1, "", "HeatMapVolumeWrapper"], [15, 1, 1, "", "PanelVolumeWrapper"]], "tomopt.optimisation.wrapper.volume_wrapper.AbsVolumeWrapper": [[15, 2, 1, "", "fit"], [15, 2, 1, "", "get_detectors"], [15, 2, 1, "", "get_opt_lr"], [15, 2, 1, "", "get_opt_mom"], [15, 2, 1, "", "get_param_count"], [15, 2, 1, "", "load"], [15, 5, 1, "", "opts"], [15, 2, 1, "", "predict"], [15, 2, 1, "", "save"], [15, 2, 1, "", "set_opt_lr"], [15, 2, 1, "", "set_opt_mom"]], "tomopt.optimisation.wrapper.volume_wrapper.ArbVolumeWrapper": [[15, 2, 1, "", "from_save"]], "tomopt.optimisation.wrapper.volume_wrapper.FitParams": [[15, 5, 1, "", "cb_savepath"], [15, 5, 1, "", "cbs"], [15, 5, 1, "", "cyclic_cbs"], [15, 5, 1, "", "device"], [15, 5, 1, "", "epoch"], [15, 5, 1, "", "epoch_bar"], [15, 5, 1, "", "loss_val"], [15, 5, 1, "", "mean_loss"], [15, 5, 1, "", "metric_cbs"], [15, 5, 1, "", "metric_log"], [15, 5, 1, "", "mu"], [15, 5, 1, "", "mu_bs"], [15, 5, 1, "", "n_epochs"], [15, 5, 1, "", "n_mu_per_volume"], [15, 5, 1, "", "passive_bar"], [15, 5, 1, "", "passive_bs"], [15, 5, 1, "", "pred"], [15, 5, 1, "", "sb"], [15, 5, 1, "", "skip_opt_step"], [15, 5, 1, "", "state"], [15, 5, 1, "", "stop"], [15, 5, 1, "", "trn_passives"], [15, 5, 1, "", "tst_passives"], [15, 5, 1, "", "val_passives"], [15, 5, 1, "", "volume_id"], [15, 5, 1, "", "volume_inferrer"], [15, 5, 1, "", "warmup_cbs"]], "tomopt.optimisation.wrapper.volume_wrapper.HeatMapVolumeWrapper": [[15, 2, 1, "", "from_save"]], "tomopt.optimisation.wrapper.volume_wrapper.PanelVolumeWrapper": [[15, 2, 1, "", "from_save"]], "tomopt.plotting": [[16, 0, 0, "-", "appearance"], [16, 0, 0, "-", "diagnostics"], [16, 0, 0, "-", "predictions"]], "tomopt.plotting.diagnostics": [[16, 4, 1, "", "plot_hit_density"], [16, 4, 1, "", "plot_scatter_density"]], "tomopt.plotting.predictions": [[16, 4, 1, "", "plot_pred_true_x0"]], "tomopt.utils": [[4, 4, 1, "", "class_to_x0preds"], [4, 4, 1, "", "jacobian"], [4, 4, 1, "", "x0_from_mixture"], [4, 4, 1, "", "x0targs_to_classtargs"]], "tomopt.volume": [[17, 0, 0, "-", "heatmap"], [17, 0, 0, "-", "layer"], [17, 0, 0, "-", "panel"], [17, 0, 0, "-", "scatter_model"], [17, 0, 0, "-", "volume"]], "tomopt.volume.heatmap": [[17, 1, 1, "", "DetectorHeatMap"]], "tomopt.volume.heatmap.DetectorHeatMap": [[17, 2, 1, "", "assign_budget"], [17, 2, 1, "", "clamp_params"], [17, 2, 1, "", "get_cost"], [17, 2, 1, "", "get_efficiency"], [17, 2, 1, "", "get_hits"], [17, 2, 1, "", "get_resolution"], [17, 2, 1, "", "get_xy_mask"], [17, 2, 1, "", "plot_map"], [17, 3, 1, "", "x"], [17, 3, 1, "", "y"]], "tomopt.volume.layer": [[17, 1, 1, "", "AbsDetectorLayer"], [17, 1, 1, "", "AbsLayer"], [17, 1, 1, "", "PanelDetectorLayer"], [17, 1, 1, "", "PassiveLayer"]], "tomopt.volume.layer.AbsDetectorLayer": [[17, 2, 1, "", "assign_budget"], [17, 2, 1, "", "conform_detector"], [17, 2, 1, "", "forward"], [17, 2, 1, "", "get_cost"]], "tomopt.volume.layer.AbsLayer": [[17, 2, 1, "", "forward"], [17, 2, 1, "", "get_lw_z_size"]], "tomopt.volume.layer.PanelDetectorLayer": [[17, 2, 1, "", "assign_budget"], [17, 2, 1, "", "conform_detector"], [17, 2, 1, "", "forward"], [17, 2, 1, "", "get_cost"], [17, 2, 1, "", "get_device"], [17, 2, 1, "", "get_panel_zorder"], [17, 2, 1, "", "yield_zordered_panels"]], "tomopt.volume.layer.PassiveLayer": [[17, 2, 1, "", "abs2idx"], [17, 2, 1, "", "forward"], [17, 2, 1, "", "load_rad_length"], [17, 2, 1, "", "mu_abs2idx"], [17, 2, 1, "", "scatter_and_propagate"]], "tomopt.volume.panel": [[17, 1, 1, "", "DetectorPanel"], [17, 1, 1, "", "SigmoidDetectorPanel"]], "tomopt.volume.panel.DetectorPanel": [[17, 2, 1, "", "assign_budget"], [17, 2, 1, "", "clamp_params"], [17, 2, 1, "", "forward"], [17, 2, 1, "", "get_cost"], [17, 2, 1, "", "get_efficiency"], [17, 2, 1, "", "get_gauss"], [17, 2, 1, "", "get_hits"], [17, 2, 1, "", "get_resolution"], [17, 2, 1, "", "get_scaled_xy_span"], [17, 2, 1, "", "get_xy_mask"], [17, 3, 1, "", "x"], [17, 3, 1, "", "y"]], "tomopt.volume.panel.SigmoidDetectorPanel": [[17, 2, 1, "", "get_efficiency"], [17, 2, 1, "", "get_resolution"], [17, 2, 1, "", "sig_model"], [17, 3, 1, "", "smooth"]], "tomopt.volume.volume": [[17, 1, 1, "", "Volume"]], "tomopt.volume.volume.Volume": [[17, 2, 1, "", "assign_budget"], [17, 2, 1, "", "build_xyz_edges"], [17, 3, 1, "", "device"], [17, 2, 1, "", "draw"], [17, 2, 1, "", "forward"], [17, 2, 1, "", "get_cost"], [17, 2, 1, "", "get_detectors"], [17, 2, 1, "", "get_passive_z_range"], [17, 2, 1, "", "get_passives"], [17, 2, 1, "", "get_rad_cube"], [17, 3, 1, "", "h"], [17, 2, 1, "", "load_rad_length"], [17, 2, 1, "", "lookup_passive_xyz_coords"], [17, 3, 1, "", "lw"], [17, 3, 1, "", "passive_size"], [17, 3, 1, "", "target"], [17, 3, 1, "", "xyz_centres"], [17, 3, 1, "", "xyz_edges"]]}, "objtypes": {"0": "py:module", "1": "py:class", "2": "py:method", "3": "py:property", "4": "py:function", "5": "py:attribute"}, "objnames": {"0": ["py", "module", "Python module"], "1": ["py", "class", "Python class"], "2": ["py", "method", "Python method"], "3": ["py", "property", "Python property"], "4": ["py", "function", "Python function"], "5": ["py", "attribute", "Python attribute"]}, "titleterms": {"tomopt": [0, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17], "differenti": 0, "muon": [0, 10], "tomographi": 0, "optimis": [0, 11, 12, 13, 14, 15], "packag": [0, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17], "overview": [0, 2], "document": 0, "index": 0, "subpackag": [4, 5, 11], "submodul": [4, 6, 7, 8, 9, 10, 12, 13, 14, 15, 16, 17], "core": 4, "modul": [4, 6, 7, 8, 9, 10, 12, 13, 14, 15, 16, 17], "util": 4, "version": 4, "infer": [6, 9], "scatter": 9, "volum": [6, 7, 9, 17], "gener": 10, "muon_batch": 10, "callback": 12, "cyclic_callback": 12, "data_callback": 12, "diagnostic_callback": 12, "eval_metr": 12, "grad_callback": 12, "heatmap_gif": 12, "loss_callback": [], "monitor": 12, "opt_callback": 12, "pred_callback": 12, "warmup_callback": 12, "detector_callback": 12, "heatmap": 17, "layer": 17, "panel": 17, "scatter_model": 17, "instal": 1, "window": [], "usag": [], "test": [], "extern": 1, "repo": 1, "author": 1, "benchmark": [5, 6, 7, 8], "ladle_furnac": 6, "data": [6, 7, 8, 13], "loss": [6, 14], "plot": [6, 16], "small_wal": 7, "u_lorri": 8, "passiv": 13, "sub_loss": 14, "wrapper": 15, "volume_wrapp": 15, "appear": 16, "diagnost": 16, "predict": 16, "As": 1, "depend": 1, "For": 1, "develop": 1, "exampl": 1, "run": 1, "notebook": 1, "remot": 1, "cluster": 1}, "envversion": {"sphinx.domains.c": 2, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 8, "sphinx.domains.index": 1, "sphinx.domains.javascript": 2, "sphinx.domains.math": 2, "sphinx.domains.python": 3, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.intersphinx": 1, "sphinx.ext.todo": 2, "sphinx.ext.viewcode": 1, "sphinx": 57}, "alltitles": {"tomopt": [[3, "tomopt"]], "tomopt package": [[4, "tomopt-package"]], "Subpackages": [[4, "subpackages"], [5, "subpackages"], [11, "subpackages"]], "Submodules": [[4, "submodules"], [6, "submodules"], [7, "submodules"], [8, "submodules"], [9, "submodules"], [10, "submodules"], [12, "submodules"], [13, "submodules"], [14, "submodules"], [15, "submodules"], [16, "submodules"], [17, "submodules"]], "tomopt.core module": [[4, "module-tomopt.core"]], "tomopt.utils module": [[4, "module-tomopt.utils"]], "tomopt.version module": [[4, "module-tomopt.version"]], "tomopt.benchmarks package": [[5, "tomopt-benchmarks-package"]], "tomopt.benchmarks.ladle_furnace package": [[6, "tomopt-benchmarks-ladle-furnace-package"]], "tomopt.benchmarks.ladle_furnace.data module": [[6, "module-tomopt.benchmarks.ladle_furnace.data"]], "tomopt.benchmarks.ladle_furnace.inference module": [[6, "module-tomopt.benchmarks.ladle_furnace.inference"]], "tomopt.benchmarks.ladle_furnace.loss module": [[6, "module-tomopt.benchmarks.ladle_furnace.loss"]], "tomopt.benchmarks.ladle_furnace.plotting module": [[6, "module-tomopt.benchmarks.ladle_furnace.plotting"]], "tomopt.benchmarks.ladle_furnace.volume module": [[6, "module-tomopt.benchmarks.ladle_furnace.volume"]], "tomopt.benchmarks.small_walls package": [[7, "tomopt-benchmarks-small-walls-package"]], "tomopt.benchmarks.small_walls.data module": [[7, "module-tomopt.benchmarks.small_walls.data"]], "tomopt.benchmarks.small_walls.volume module": [[7, "module-tomopt.benchmarks.small_walls.volume"]], "tomopt.benchmarks.u_lorry package": [[8, "tomopt-benchmarks-u-lorry-package"]], "tomopt.benchmarks.u_lorry.data module": [[8, "module-tomopt.benchmarks.u_lorry.data"]], "tomopt.inference package": [[9, "tomopt-inference-package"]], "tomopt.inference.scattering module": [[9, "module-tomopt.inference.scattering"]], "tomopt.inference.volume module": [[9, "module-tomopt.inference.volume"]], "tomopt.muon package": [[10, "tomopt-muon-package"]], "tomopt.muon.generation module": [[10, "module-tomopt.muon.generation"]], "tomopt.muon.muon_batch module": [[10, "module-tomopt.muon.muon_batch"]], "tomopt.optimisation package": [[11, "tomopt-optimisation-package"]], "tomopt.optimisation.callbacks package": [[12, "tomopt-optimisation-callbacks-package"]], "tomopt.optimisation.callbacks.callback module": [[12, "module-tomopt.optimisation.callbacks.callback"]], "tomopt.optimisation.callbacks.cyclic_callbacks module": [[12, "module-tomopt.optimisation.callbacks.cyclic_callbacks"]], "tomopt.optimisation.callbacks.data_callbacks module": [[12, "module-tomopt.optimisation.callbacks.data_callbacks"]], "tomopt.optimisation.callbacks.detector_callbacks module": [[12, "module-tomopt.optimisation.callbacks.detector_callbacks"]], "tomopt.optimisation.callbacks.diagnostic_callbacks module": [[12, "module-tomopt.optimisation.callbacks.diagnostic_callbacks"]], "tomopt.optimisation.callbacks.eval_metric module": [[12, "module-tomopt.optimisation.callbacks.eval_metric"]], "tomopt.optimisation.callbacks.grad_callbacks module": [[12, "module-tomopt.optimisation.callbacks.grad_callbacks"]], "tomopt.optimisation.callbacks.heatmap_gif module": [[12, "module-tomopt.optimisation.callbacks.heatmap_gif"]], "tomopt.optimisation.callbacks.monitors module": [[12, "module-tomopt.optimisation.callbacks.monitors"]], "tomopt.optimisation.callbacks.opt_callbacks module": [[12, "module-tomopt.optimisation.callbacks.opt_callbacks"]], "tomopt.optimisation.callbacks.pred_callbacks module": [[12, "module-tomopt.optimisation.callbacks.pred_callbacks"]], "tomopt.optimisation.callbacks.warmup_callbacks module": [[12, "module-tomopt.optimisation.callbacks.warmup_callbacks"]], "tomopt.optimisation.data package": [[13, "tomopt-optimisation-data-package"]], "tomopt.optimisation.data.passives module": [[13, "module-tomopt.optimisation.data.passives"]], "tomopt.optimisation.loss package": [[14, "tomopt-optimisation-loss-package"]], "tomopt.optimisation.loss.loss module": [[14, "module-tomopt.optimisation.loss.loss"]], "tomopt.optimisation.loss.sub_losses module": [[14, "module-tomopt.optimisation.loss.sub_losses"]], "tomopt.optimisation.wrapper package": [[15, "tomopt-optimisation-wrapper-package"]], "tomopt.optimisation.wrapper.volume_wrapper module": [[15, "module-tomopt.optimisation.wrapper.volume_wrapper"]], "tomopt.plotting package": [[16, "tomopt-plotting-package"]], "tomopt.plotting.appearance module": [[16, "module-tomopt.plotting.appearance"]], "tomopt.plotting.diagnostics module": [[16, "module-tomopt.plotting.diagnostics"]], "tomopt.plotting.predictions module": [[16, "module-tomopt.plotting.predictions"]], "tomopt.volume package": [[17, "tomopt-volume-package"]], "tomopt.volume.heatmap module": [[17, "module-tomopt.volume.heatmap"]], "tomopt.volume.layer module": [[17, "module-tomopt.volume.layer"]], "tomopt.volume.panel module": [[17, "module-tomopt.volume.panel"]], "tomopt.volume.scatter_model module": [[17, "module-tomopt.volume.scatter_model"]], "tomopt.volume.volume module": [[17, "module-tomopt.volume.volume"]], "TomOpt: Differential Muon Tomography Optimisation": [[0, "tomopt-differential-muon-tomography-optimisation"]], "Overview": [[0, "overview"], [2, "overview"]], "Package overview": [[0, "package-overview"]], "Package documentation": [[0, "package-documentation"]], "Index": [[0, "index"]], "Installation": [[1, "installation"]], "As a dependency": [[1, "as-a-dependency"]], "For development": [[1, "for-development"]], "Examples": [[1, "examples"]], "Running notebooks in a remote cluster": [[1, "running-notebooks-in-a-remote-cluster"]], "External repos": [[1, "external-repos"]], "Authors": [[1, "authors"]]}, "indexentries": {}}) \ No newline at end of file diff --git a/docs/_build/html/tomopt.benchmarks.html b/docs/_build/html/tomopt.benchmarks.html index c53d1f57..11e6cf77 100644 --- a/docs/_build/html/tomopt.benchmarks.html +++ b/docs/_build/html/tomopt.benchmarks.html @@ -15,8 +15,6 @@ - - @@ -315,9 +313,6 @@

        Subpackages - - - diff --git a/docs/_build/html/tomopt.benchmarks.ladle_furnace.html b/docs/_build/html/tomopt.benchmarks.ladle_furnace.html index a127c7d3..acaa6af1 100644 --- a/docs/_build/html/tomopt.benchmarks.ladle_furnace.html +++ b/docs/_build/html/tomopt.benchmarks.ladle_furnace.html @@ -15,8 +15,6 @@ - - @@ -540,11 +538,6 @@

        Submodulesproperty muon_efficiency: Tensor

        Returns: (muons,1) tensor of the efficiencies of the muons

        -
        -
        Return type:
        -

        Tensor

        -
        -
        @@ -552,11 +545,6 @@

        Submodulesproperty muon_poca_xyz: Tensor

        Returns: (muons,xyz) tensor of PoCA locations

        -
        -
        Return type:
        -

        Tensor

        -
        -

        @@ -564,11 +552,6 @@

        Submodulesproperty muon_poca_xyz_unc: Tensor

        Returns: (muons,xyz) tensor of PoCA location uncertainties

        -
        -
        Return type:
        -

        Tensor

        -
        -

        @@ -576,11 +559,6 @@

        Submodulesproperty n_mu: int

        Returns: Total number muons included in the inference

        -
        -
        Return type:
        -

        int

        -
        -

        @@ -588,22 +566,12 @@

        Submodulesproperty pred_height: Tensor

        Returns: (h) tensor of fill-height prediction

        -
        -
        Return type:
        -

        Tensor

        -
        -

        property smooth: Tensor
        -
        -
        Return type:
        -

        Tensor

        -
        -
        -
        +
        @@ -615,11 +583,6 @@

        Submodulesclass tomopt.benchmarks.ladle_furnace.loss.LadleFurnaceIntClassLoss(*, pred_int_start=0, use_mse, target_budget, budget_smoothing=10, cost_coef=None, steep_budget=True, debug=False)[source]

        Bases: VolumeIntClassLoss

        Research tested only: no unit tests

        -
        -
        -training: bool
        -
        -
        @@ -828,10 +791,7 @@

        Submodulestomopt.benchmarks.ladle_furnace.loss module

        -property above_hit_effs: Optional[Tensor]
        +property above_hit_effs: Tensor | None

        Returns: (muons,hits,effs) tensor of hit efficiencies in the “above” detectors

        -
        -
        Return type:
        -

        Optional[Tensor]

        -
        -
        -property above_hit_uncs: Optional[Tensor]
        +property above_hit_uncs: Tensor | None

        Returns: (muons,hits,xyz) tensor of uncertainties on hits in the “above” detectors

        -
        -
        Return type:
        -

        Optional[Tensor]

        -
        -
        -property above_hits: Optional[Tensor]
        +property above_hits: Tensor | None

        Returns: (muons,hits,xyz) tensor of recorded hits in the “above” detectors

        -
        -
        Return type:
        -

        Optional[Tensor]

        -
        -
        -property below_gen_hits: Optional[Tensor]
        +property below_gen_hits: Tensor | None

        Returns: (muons,hits,xyz) tensor of true hits in the “below” detectors

        -
        -
        Return type:
        -

        Optional[Tensor]

        -
        -
        -property below_hit_effs: Optional[Tensor]
        +property below_hit_effs: Tensor | None

        Returns: (muons,hits,eff) tensor of hit efficiencies in the “below” detectors

        -
        -
        Return type:
        -

        Optional[Tensor]

        -
        -
        -property below_hit_uncs: Optional[Tensor]
        +property below_hit_uncs: Tensor | None

        Returns: (muons,hits,xyz) tensor of uncertainties on hits in the “below” detectors

        -
        -
        Return type:
        -

        Optional[Tensor]

        -
        -
        -property below_hits: Optional[Tensor]
        +property below_hits: Tensor | None

        Returns: (muons,hits,xyz) tensor of recorded hits in the “below” detectors

        -
        -
        Return type:
        -

        Optional[Tensor]

        -
        -
        @@ -427,11 +385,6 @@

        Submodulesproperty dphi: Tensor

        Returns: (muons,1) delta phi between incoming & outgoing muons

        -
        -
        Return type:
        -

        Tensor

        -
        -

        @@ -439,11 +392,6 @@

        Submodulesproperty dphi_unc: Tensor

        Returns: (muons,1) uncertainty on dphi

        -
        -
        Return type:
        -

        Tensor

        -
        -

        @@ -451,11 +399,6 @@

        Submodulesproperty dtheta: Tensor

        Returns: (muons,1) delta theta between incoming & outgoing muons

        -
        -
        Return type:
        -

        Tensor

        -
        -

        @@ -463,11 +406,6 @@

        Submodulesproperty dtheta_unc: Tensor

        Returns: (muons,1) uncertainty on dtheta

        -
        -
        Return type:
        -

        Tensor

        -
        -

        @@ -475,11 +413,6 @@

        Submodulesproperty dtheta_xy: Tensor

        Returns: (muons,xy) delta theta_xy between incoming & outgoing muons in the zx and zy planes

        -
        -
        Return type:
        -

        Tensor

        -
        -

        @@ -487,11 +420,6 @@

        Submodulesproperty dtheta_xy_unc: Tensor

        Returns: (muons,xy) uncertainty on dtheta_xy

        -
        -
        Return type:
        -

        Tensor

        -
        -

        @@ -499,11 +427,6 @@

        Submodulesproperty dxy: Tensor

        Returns: (muons,xy) distances in x & y from PoCA to incoming|outgoing muons

        -
        -
        Return type:
        -

        Tensor

        -
        -

        @@ -511,23 +434,13 @@

        Submodulesproperty dxy_unc: Tensor

        Returns: (muons,xy) uncertainty on dxy

        -
        -
        Return type:
        -

        Tensor

        -
        -

        -property gen_hits: Optional[Tensor]
        +property gen_hits: Tensor | None

        Returns: (muons,hits,xyz) tensor of true hits

        -
        -
        Return type:
        -

        Optional[Tensor]

        -
        -
        @@ -573,26 +486,16 @@

        Submodules
        -property hit_effs: Optional[Tensor]
        +property hit_effs: Tensor | None

        Returns: (muons,hits,eff) tensor of hit efficiencies

        -
        -
        Return type:
        -

        Optional[Tensor]

        -
        -

        -property hit_uncs: Optional[Tensor]
        +property hit_uncs: Tensor | None

        Returns: (muons,hits,xyz) tensor of uncertainties on hits

        -
        -
        Return type:
        -

        Optional[Tensor]

        -
        -
        @@ -600,35 +503,20 @@

        Submodulesproperty hits: Dict[str, Dict[str, Tensor]]

        Returns: Dictionary of hits, as returned by get_hits()

        -
        -
        Return type:
        -

        Dict[str, Dict[str, Tensor]]

        -
        -

        -property n_hits_above: Optional[int]
        +property n_hits_above: int | None

        Returns: Number of hits per muon in the “above” detectors

        -
        -
        Return type:
        -

        Optional[int]

        -
        -
        -property n_hits_below: Optional[int]
        +property n_hits_below: int | None

        Returns: Number of hits per muon in the “below” detectors

        -
        -
        Return type:
        -

        Optional[int]

        -
        -
        @@ -636,11 +524,6 @@

        Submodulesproperty phi_in: Tensor

        Returns: (muons,1) phi of incoming muons

        -
        -
        Return type:
        -

        Tensor

        -
        -

        @@ -648,11 +531,6 @@

        Submodulesproperty phi_in_unc: Tensor

        Returns: (muons,1) uncertainty on phi_in

        -
        -
        Return type:
        -

        Tensor

        -
        -

        @@ -660,11 +538,6 @@

        Submodulesproperty phi_out: Tensor

        Returns: (muons,1) phi of outgoing muons

        -
        -
        Return type:
        -

        Tensor

        -
        -

        @@ -672,11 +545,6 @@

        Submodulesproperty phi_out_unc: Tensor

        Returns: (muons,1) uncertainty on phi_out

        -
        -
        Return type:
        -

        Tensor

        -
        -

        @@ -701,11 +569,6 @@

        Submodulesproperty poca_xyz: Tensor

        Returns: (muons,xyz) xyz location of PoCA

        -
        -
        Return type:
        -

        Tensor

        -
        -

        @@ -713,23 +576,13 @@

        Submodulesproperty poca_xyz_unc: Tensor

        Returns: (muons,xyz) uncertainty on poca_xyz

        -
        -
        Return type:
        -

        Tensor

        -
        -

        -property reco_hits: Optional[Tensor]
        +property reco_hits: Tensor | None

        Returns: (muons,hits,xyz) tensor of recorded hits

        -
        -
        Return type:
        -

        Optional[Tensor]

        -
        -
        @@ -737,11 +590,6 @@

        Submodulesproperty theta_in: Tensor

        Returns: (muons,1) theta of incoming muons

        -
        -
        Return type:
        -

        Tensor

        -
        -

        @@ -749,11 +597,6 @@

        Submodulesproperty theta_in_unc: Tensor

        Returns: (muons,1) uncertainty on theta_in

        -
        -
        Return type:
        -

        Tensor

        -
        -

        @@ -761,11 +604,6 @@

        Submodulesproperty theta_msc: Tensor

        Returns: (muons,1) theta_msc; the total amount of angular scattering

        -
        -
        Return type:
        -

        Tensor

        -
        -

        @@ -773,11 +611,6 @@

        Submodulesproperty theta_msc_unc: Tensor

        Returns: (muons,1) uncertainty on total_scatter

        -
        -
        Return type:
        -

        Tensor

        -
        -

        @@ -785,11 +618,6 @@

        Submodulesproperty theta_out: Tensor

        Returns: (muons,1) theta of outgoing muons

        -
        -
        Return type:
        -

        Tensor

        -
        -

        @@ -797,11 +625,6 @@

        Submodulesproperty theta_out_unc: Tensor

        Returns: (muons,1) uncertainty on theta_out

        -
        -
        Return type:
        -

        Tensor

        -
        -

        @@ -809,11 +632,6 @@

        Submodulesproperty theta_xy_in: Tensor

        Returns: (muons,xy) decomposed theta and phi of incoming muons in the zx and zy planes

        -
        -
        Return type:
        -

        Tensor

        -
        -

        @@ -821,11 +639,6 @@

        Submodulesproperty theta_xy_in_unc: Tensor

        Returns: (muons,xy) uncertainty on theta_xy_in

        -
        -
        Return type:
        -

        Tensor

        -
        -

        @@ -833,11 +646,6 @@

        Submodulesproperty theta_xy_out: Tensor

        Returns: (muons,xy) decomposed theta and phi of outgoing muons in the zx and zy planes

        -
        -
        Return type:
        -

        Tensor

        -
        -

        @@ -845,11 +653,6 @@

        Submodulesproperty theta_xy_out_unc: Tensor

        Returns: (muons,xy) uncertainty on theta_xy_out

        -
        -
        Return type:
        -

        Tensor

        -
        -

        @@ -857,11 +660,6 @@

        Submodulesproperty total_scatter: Tensor

        Returns: (muons,1) theta_msc; the total amount of angular scattering

        -
        -
        Return type:
        -

        Tensor

        -
        -

        @@ -869,59 +667,34 @@

        Submodulesproperty total_scatter_unc: Tensor

        Returns: (muons,1) uncertainty on total_scatter

        -
        -
        Return type:
        -

        Tensor

        -
        -

        -property track_in: Optional[Tensor]
        +property track_in: Tensor | None

        Returns: (muons,xyz) incoming xyz vector

        -
        -
        Return type:
        -

        Optional[Tensor]

        -
        -
        -property track_out: Optional[Tensor]
        +property track_out: Tensor | None

        Returns: (muons,xyz) outgoing xyz vector

        -
        -
        Return type:
        -

        Optional[Tensor]

        -
        -
        -property track_start_in: Optional[Tensor]
        +property track_start_in: Tensor | None

        Returns: (muons,xyz) initial point of incoming xyz vector

        -
        -
        Return type:
        -

        Optional[Tensor]

        -
        -
        -property track_start_out: Optional[Tensor]
        +property track_start_out: Tensor | None

        Returns: (muons,xyz) initial point of outgoing xyz vector

        -
        -
        Return type:
        -

        Optional[Tensor]

        -
        -
        @@ -929,11 +702,6 @@

        Submodulesproperty xyz_in: Tensor

        Returns: (muons,xyz) inferred xy position of muon at the z-level of the top of the passive volume

        -
        -
        Return type:
        -

        Tensor

        -
        -

        @@ -941,11 +709,6 @@

        Submodulesproperty xyz_in_unc: Tensor

        Returns: (muons,xyz) uncertainty on xyz_in

        -
        -
        Return type:
        -

        Tensor

        -
        -

        @@ -953,11 +716,6 @@

        Submodulesproperty xyz_out: Tensor

        Returns: (muons,xyz) inferred xy position of muon at the z-level of the bottom of the passive volume

        -
        -
        Return type:
        -

        Tensor

        -
        -

        @@ -965,11 +723,6 @@

        Submodulesproperty xyz_out_unc: Tensor

        Returns: (muons,xyz) uncertainty on xyz_out

        -
        -
        Return type:
        -

        Tensor

        -
        -

        @@ -1170,11 +923,6 @@

        Submodulesproperty muon_efficiency: Tensor

        Returns: (muons,1) tensor of the efficiencies of the muons

        -
        -
        Return type:
        -

        Tensor

        -
        -
        @@ -1182,11 +930,6 @@

        Submodulesproperty muon_mom: Tensor

        Returns: (muons,1) tensor of the momenta of the muons

        -
        -
        Return type:
        -

        Tensor

        -
        -

        @@ -1194,11 +937,6 @@

        Submodulesproperty muon_mom_unc: Tensor

        Returns: (muons,1) tensor of the uncertainty on the momenta of the muons

        -
        -
        Return type:
        -

        Tensor

        -
        -

        @@ -1206,11 +944,6 @@

        Submodulesproperty muon_poca_xyz: Tensor

        Returns: (muons,xyz) tensor of PoCA locations

        -
        -
        Return type:
        -

        Tensor

        -
        -

        @@ -1218,11 +951,6 @@

        Submodulesproperty muon_poca_xyz_unc: Tensor

        Returns: (muons,xyz) tensor of PoCA location uncertainties

        -
        -
        Return type:
        -

        Tensor

        -
        -

        @@ -1234,7 +962,6 @@

        SubmodulesTensor :returns: (muons,z,x,y) tensor of probabilities that the muons’ PoCAs were located in the given voxels.

        @@ -1243,11 +970,6 @@

        Submodulesproperty muon_theta_in: Tensor

        Returns: (muons,1) tensor of the thetas of the incoming muons

        -
        -
        Return type:
        -

        Tensor

        -
        -
        @@ -1255,11 +977,6 @@

        Submodulesproperty muon_theta_in_unc: Tensor

        Returns: (muons,1) tensor of the uncertainty on the theta of the incoming muons

        -
        -
        Return type:
        -

        Tensor

        -
        -

        @@ -1267,11 +984,6 @@

        Submodulesproperty muon_theta_out: Tensor

        Returns: (muons,1) tensor of the thetas of the outgoing muons

        -
        -
        Return type:
        -

        Tensor

        -
        -

        @@ -1279,11 +991,6 @@

        Submodulesproperty muon_theta_out_unc: Tensor

        Returns: (muons,1) tensor of the uncertainty on the theta of the outgoing muons

        -
        -
        Return type:
        -

        Tensor

        -
        -

        @@ -1291,11 +998,6 @@

        Submodulesproperty muon_total_scatter: Tensor

        Returns: (muons,1) tensor of total angular scatterings

        -
        -
        Return type:
        -

        Tensor

        -
        -

        @@ -1303,11 +1005,6 @@

        Submodulesproperty muon_total_scatter_unc: Tensor

        Returns: (muons,1) tensor of uncertainties on the total angular scatterings

        -
        -
        Return type:
        -

        Tensor

        -
        -

        @@ -1315,11 +1012,6 @@

        Submodulesproperty n_mu: int

        Returns: Total number muons included in the inference

        -
        -
        Return type:
        -

        int

        -
        -

        @@ -1330,11 +1022,8 @@

        Submodules -
        Return type:
        -

        Tensor

        -
        -
        Returns:
        -

        (z,x,y) tensor of uncertainties on voxelwise X0s

        +
        Returns:
        +

        (z,x,y) tensor of uncertainties on voxelwise X0s

        @@ -1344,11 +1033,6 @@

        Submodulesproperty vox_zxy_x0_preds: Tensor

        Returns: (z,x,y) tensor of voxelwise X0 predictions

        -
        -
        Return type:
        -

        Tensor

        -
        -
        @@ -1687,9 +1371,6 @@

        Submodules - - - diff --git a/docs/_build/html/tomopt.muon.html b/docs/_build/html/tomopt.muon.html index 154b5e96..fe637d87 100644 --- a/docs/_build/html/tomopt.muon.html +++ b/docs/_build/html/tomopt.muon.html @@ -15,8 +15,6 @@ - - @@ -672,22 +670,12 @@

        Submodules
        property mom: Tensor
        -
        -
        Return type:
        -

        Tensor

        -
        -
        -

        +
        property muons: Tensor
        -
        -
        Return type:
        -

        Tensor

        -
        -
        -
        +
        @@ -702,12 +690,7 @@

        Submodules
        property phi: Tensor
        -
        -
        Return type:
        -

        Tensor

        -
        -
        -

        +
        @@ -770,12 +753,7 @@

        Submodules
        property reco_mom: Tensor
        -
        -
        Return type:
        -

        Tensor

        -
        -
        -

        +
        @@ -866,12 +844,7 @@

        Submodules
        property theta: Tensor
        -
        -
        Return type:
        -

        Tensor

        -
        -
        -

        +
        @@ -900,12 +873,7 @@

        Submodules
        property theta_x: Tensor
        -
        -
        Return type:
        -

        Tensor

        -
        -
        -

        +
        @@ -934,22 +902,12 @@

        Submodules
        property theta_xy: Tensor
        -
        -
        Return type:
        -

        Tensor

        -
        -
        -

        +
        property theta_y: Tensor
        -
        -
        Return type:
        -

        Tensor

        -
        -
        -
        +
        @@ -978,22 +936,12 @@

        Submodules
        property upwards_muons: Tensor
        -
        -
        Return type:
        -

        Tensor

        -
        -
        -

        +
        property x: Tensor
        -
        -
        Return type:
        -

        Tensor

        -
        -
        -
        +
        @@ -1003,42 +951,22 @@

        Submodules
        property xy: Tensor
        -
        -
        Return type:
        -

        Tensor

        -
        -
        -

        +
        property xyz: Tensor
        -
        -
        Return type:
        -

        Tensor

        -
        -
        -
        +
        property xyz_hist: List[Tensor]
        -
        -
        Return type:
        -

        List[Tensor]

        -
        -
        -
        +
        property y: Tensor
        -
        -
        Return type:
        -

        Tensor

        -
        -
        -
        +
        @@ -1048,12 +976,7 @@

        Submodules
        property z: Tensor
        -
        -
        Return type:
        -

        Tensor

        -
        -
        -

        +
        @@ -1199,9 +1122,6 @@

        Submodules - - - diff --git a/docs/_build/html/tomopt.optimisation.callbacks.html b/docs/_build/html/tomopt.optimisation.callbacks.html index 35eef857..7fdf6452 100644 --- a/docs/_build/html/tomopt.optimisation.callbacks.html +++ b/docs/_build/html/tomopt.optimisation.callbacks.html @@ -15,8 +15,6 @@ - - @@ -595,7 +593,7 @@

        Submodules
        -wrapper: Optional[AbsVolumeWrapper] = None
        +wrapper: Optional[AbsVolumeWrapper] = None

        @@ -1819,9 +1817,6 @@

        Submodules - - - diff --git a/docs/_build/html/tomopt.optimisation.data.html b/docs/_build/html/tomopt.optimisation.data.html index eda1e3e8..44f8eaf0 100644 --- a/docs/_build/html/tomopt.optimisation.data.html +++ b/docs/_build/html/tomopt.optimisation.data.html @@ -15,8 +15,6 @@ - - @@ -488,9 +486,6 @@

        Submodules - - - diff --git a/docs/_build/html/tomopt.optimisation.html b/docs/_build/html/tomopt.optimisation.html index 69dc3f06..01645ca5 100644 --- a/docs/_build/html/tomopt.optimisation.html +++ b/docs/_build/html/tomopt.optimisation.html @@ -15,8 +15,6 @@ - - @@ -316,9 +314,6 @@

        Subpackages - - - diff --git a/docs/_build/html/tomopt.optimisation.loss.html b/docs/_build/html/tomopt.optimisation.loss.html index 83fe5db1..3ab07c79 100644 --- a/docs/_build/html/tomopt.optimisation.loss.html +++ b/docs/_build/html/tomopt.optimisation.loss.html @@ -15,8 +15,6 @@ - - @@ -305,11 +303,6 @@

        Submodules -
        -training: bool
        -
        -
        @@ -348,16 +341,6 @@

        Submodules -
        -sub_losses: Dict[str, Tensor]
        -

        - -
        -
        -training: bool
        -
        -
        @@ -399,16 +382,6 @@

        Submodules -
        -sub_losses: Dict[str, Tensor]
        -

        - -
        -
        -training: bool
        -
        -
        @@ -447,16 +420,6 @@

        Submodules -
        -sub_losses: Dict[str, Tensor]
        -

        - -
        -
        -training: bool
        -
        -
        @@ -464,16 +427,6 @@

        Submodulesclass tomopt.optimisation.loss.loss.VolumeMSELoss(*, target_budget, budget_smoothing=10, cost_coef=None, steep_budget=True, debug=False)[source]

        Bases: AbsDetectorLoss

        TODO: Add unit tests and docs

        -
        -
        -sub_losses: Dict[str, Tensor]
        -
        - -
        -
        -training: bool
        -
        -

        @@ -511,16 +464,6 @@

        Submodules -
        -sub_losses: Dict[str, Tensor]
        -

        - -
        -
        -training: bool
        -
        -
        @@ -555,16 +498,6 @@

        Submodules -
        -sub_losses: Dict[str, Tensor]
        -

        - -
        -
        -training: bool
        -
        -

        @@ -647,39 +580,14 @@

        Submodulestomopt.optimisation.loss.loss module

      • tomopt.optimisation.loss.sub_losses module

      @@ -1637,7 +1620,6 @@

      SubmodulesArbVolumeWrapper

    • FitParams @@ -1700,9 +1680,6 @@

      Submodules - - - diff --git a/docs/_build/html/tomopt.plotting.html b/docs/_build/html/tomopt.plotting.html index 1f257ac5..8466121a 100644 --- a/docs/_build/html/tomopt.plotting.html +++ b/docs/_build/html/tomopt.plotting.html @@ -15,8 +15,6 @@ - - @@ -381,9 +379,6 @@

      Submodules - - - diff --git a/docs/_build/html/tomopt.volume.html b/docs/_build/html/tomopt.volume.html index a0a9a01e..9c30da98 100644 --- a/docs/_build/html/tomopt.volume.html +++ b/docs/_build/html/tomopt.volume.html @@ -15,8 +15,6 @@ - - @@ -332,30 +330,15 @@

      Submodules -
      -training: bool
      -
      -
      property x: Tensor
      -
      -
      Return type:
      -

      Tensor

      -
      -
      -
      +
      property y: Tensor
      -
      -
      Return type:
      -

      Tensor

      -
      -
      -
      +
      @@ -451,11 +434,6 @@

      Submodules -
      -training: bool
      -
      -
      @@ -507,11 +485,6 @@

      Submodules -
      -training: bool
      -

      -
      @@ -635,16 +608,6 @@

      Submodules -
      -rad_length: Optional[Tensor]
      -

      - -
      -
      -training: bool
      -
      -
      yield_zordered_panels()[source]
      @@ -781,11 +744,6 @@

      Submodules -
      -rad_length: Optional[Tensor]
      -

      -
      scatter_and_propagate(mu, mask=None)[source]
      @@ -810,11 +768,6 @@

      Submodules -
      -training: bool
      -

      - @@ -898,8 +851,9 @@

      Submodules
      forward()[source]
      -

      Defines the computation performed at every call.

      -

      Should be overridden by all subclasses.

      +

      Define the computation performed at every call.

      +

      Should be overridden by all subclasses. +:rtype: None

      Note

      Although the recipe for forward pass needs to be defined within @@ -907,11 +861,6 @@

      Submodules -
      Return type:
      -

      None

      -
      -

      @@ -968,7 +917,12 @@

      Submodules
      get_hits(mu)[source]
      -

      The main interaction method with the panel: returns hits for the supplied muons. +

      +
      Return type:
      +

      Dict[str, Tensor]

      +
      +
      +

      The main interaction method with the panel: returns hits for the supplied muons. Hits consist of:

      reco_xy: (muons,xy) tensor of reconstructed xy positions of muons included simulated resolution @@ -978,11 +932,6 @@

      Submodules -
      Return type:
      -

      Dict[str, Tensor]

      -
      -

      @@ -1041,30 +990,15 @@

      Submodules -
      -training: bool
      -

      -
      property x: Tensor
      -
      -
      Return type:
      -

      Tensor

      -
      -
      -
      +
      property y: Tensor
      -
      -
      Return type:
      -

      Tensor

      -
      -
      -
      +
      @@ -1185,16 +1119,6 @@

      Submodules
      property smooth: Tensor
      -
      -
      Return type:
      -

      Tensor

      -
      -
      -
      - -
      -
      -training: bool
      @@ -1259,12 +1183,7 @@

      Submodules
      property device: device
      -
      -
      Return type:
      -

      device

      -
      -
      -
      +
      @@ -1374,11 +1293,6 @@

      Submodulesproperty h: Tensor

      Returns: The height of the volume (including both passive and detector layers), as computed from the z position of the zeroth layer.

      -
      -
      Return type:
      -

      Tensor

      -
      -
      @@ -1427,11 +1341,6 @@

      Submodulesproperty lw: Tensor

      Returns: The length and width of the passive volume

      -
      -
      Return type:
      -

      Tensor

      -
      -

      @@ -1439,52 +1348,27 @@

      Submodulesproperty passive_size: float

      Returns: The size of voxels in the passive volume

      -
      -
      Return type:
      -

      float

      -
      -

      -property target: Optional[Tensor]
      +property target: Tensor | None

      Returns: The “target” value of the volume. This could be e.g. the class ID of the passive-volume configuration which is currently loaded. See e.g. VolumeClassLoss. The target can be set as part of the call to load_rad_length()

      -
      -
      Return type:
      -

      Optional[Tensor]

      -
      -
      -
      -
      -training: bool
      -
      -
      property xyz_centres: Tensor

      xyz locations of the centres of voxels in the passive layers of the volume.

      -
      -
      Return type:
      -

      Tensor

      -
      -
      property xyz_edges: Tensor

      xyz locations of low-left-front edges of voxels in the passive layers of the volume.

      -
      -
      Return type:
      -

      Tensor

      -
      -
      @@ -1541,7 +1425,6 @@

      SubmodulesDetectorHeatMap.get_resolution()

    • DetectorHeatMap.get_xy_mask()
    • DetectorHeatMap.plot_map()
    • -
    • DetectorHeatMap.training
    • DetectorHeatMap.x
    • DetectorHeatMap.y
    @@ -1554,13 +1437,11 @@

    SubmodulesAbsDetectorLayer.conform_detector()
  • AbsDetectorLayer.forward()
  • AbsDetectorLayer.get_cost()
  • -
  • AbsDetectorLayer.training
  • AbsLayer
  • PanelDetectorLayer
  • @@ -1580,9 +1459,7 @@

    SubmodulesPassiveLayer.forward()
  • PassiveLayer.load_rad_length()
  • PassiveLayer.mu_abs2idx()
  • -
  • PassiveLayer.rad_length
  • PassiveLayer.scatter_and_propagate()
  • -
  • PassiveLayer.training
  • @@ -1599,7 +1476,6 @@

    SubmodulesDetectorPanel.get_resolution()
  • DetectorPanel.get_scaled_xy_span()
  • DetectorPanel.get_xy_mask()
  • -
  • DetectorPanel.training
  • DetectorPanel.x
  • DetectorPanel.y
  • @@ -1609,7 +1485,6 @@

    SubmodulesSigmoidDetectorPanel.get_resolution()
  • SigmoidDetectorPanel.sig_model()
  • SigmoidDetectorPanel.smooth
  • -
  • SigmoidDetectorPanel.training
  • @@ -1633,7 +1508,6 @@

    SubmodulesVolume.lw
  • Volume.passive_size
  • Volume.target
  • -
  • Volume.training
  • Volume.xyz_centres
  • Volume.xyz_edges
  • @@ -1658,9 +1532,6 @@

    Submodules - - - diff --git a/docs/requirements.txt b/docs/requirements.txt deleted file mode 100644 index 2f279ff0..00000000 --- a/docs/requirements.txt +++ /dev/null @@ -1,6 +0,0 @@ -sphinx --e git+https://github.com/GilesStrong/tomopt_sphinx_theme#egg=tomopt_sphinx_theme -sphinx_rtd_theme -sphinx_autodoc_typehints -sphinx_autodoc_annotation -m2r2 \ No newline at end of file diff --git a/docs/source/index.rst b/docs/source/index.rst index 98545939..978ce3c2 100644 --- a/docs/source/index.rst +++ b/docs/source/index.rst @@ -3,6 +3,8 @@ TomOpt: Differential Muon Tomography Optimisation =================================================== +.. mdinclude:: introduction.md + Package overview ---------------------------------------------------- diff --git a/docs/source/installation.md b/docs/source/installation.md index d1a50e38..7fce49cf 100644 --- a/docs/source/installation.md +++ b/docs/source/installation.md @@ -1,76 +1,103 @@ ## Installation +### As a dependency -N.B. Whilst the repo is private, you will need to make sure that you have registered the public ssh key of your computer/instance with your [GitHub profile](https://github.com/settings/keys). Follow [these instructions](https://docs.github.com/en/github/authenticating-to-github/connecting-to-github-with-ssh/checking-for-existing-ssh-keys) to check for existing keys or [these](https://docs.github.com/en/github/authenticating-to-github/connecting-to-github-with-ssh/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent) to generate a new key. After that follow [this](https://docs.github.com/en/github/authenticating-to-github/connecting-to-github-with-ssh/adding-a-new-ssh-key-to-your-github-account) to associate the key. +For dependency usage, `tomopt` can be installed via e.g. -Checkout package: - -``` -git clone git@github.com:GilesStrong/mode_muon_tomography.git -cd mode_muon_tomography +```bash +pip install tomopt ``` -*N.B.* For GPU usage, it is recommended to manually setup conda and install PyTorch according to system, e.g.: -``` -conda activate root -conda install nb_conda_kernels -conda create -n tomopt python=3.8 pip ipykernel -conda activate tomopt -pip install torch==1.8.1+cu111 -f https://download.pytorch.org/whl/torch_stable.html -pip install -r requirements.txt -``` +### For development -Minimum python version is 3.8. Recommend creating a virtual environment, e.g. assuming your are using [Anaconda](https://www.anaconda.com/products/individual)/[Miniconda](https://docs.conda.io/en/latest/miniconda.html) (if installing conda for the first time, remember to restart the shell before attemting to use conda, and that by default conda writes the setup commands to `.bashrc`): +Check out the repo locally: -``` -conda activate root -conda install nb_conda_kernels -conda env create -f environment.yml -conda activate tomopt +```bash +git clone git@github.com:GilesStrong/tomopt.git +cd tomopt ``` -Otherwise set up a suitable environment using your python distribution of choice using the contents of `environment.yml`. Remember to activate the correct environment each time, via e.g. `conda activate tomopt`. +For development usage, we use [`poetry`](https://python-poetry.org/docs/#installing-with-the-official-installer) to handle dependency installation. +Poetry can be installed via, e.g. -Install package and dependencies +```bash +curl -sSL https://install.python-poetry.org | python3 - +poetry self update ``` -pip install -r requirements.txt -pip install -e . + +and ensuring that `poetry` is available in your `$PATH` + +TomOpt requires `python >= 3.10`. This can be installed via e.g. [`pyenv`](https://github.com/pyenv/pyenv): + +```bash +curl https://pyenv.run | bash +pyenv update +pyenv install 3.10 +pyenv local 3.10 ``` -Install git-hooks: +Install the dependencies: +```bash +poetry install +poetry self add poetry-plugin-export +poetry config warnings.export false +poetry run pre-commit install ``` -pre-commit install + +Finally, make sure everything is working as expected by running the tests: + +```bash +poetry run pytest tests ``` -### Windows usage +For those unfamiliar with `poetry`, basically just prepend commands with `poetry run` to use the stuff installed within the local environment, e.g. `poetry run jupyter notebook` to start a jupyter notebook server.. This local environment is basically a python virtual environment. To correctly set up the interpreter in your IDE, use `poetry run which python` to see the path to the correct python executable. -Apparently when using Windows, the environment must also be activated within ipython using: +## Examples -``` -python -m ipykernel install --user --name tomopt --display-name "Python (tomopt)" -``` +A few examples are included to introduce users and developers to the TomOpt library. These take the form of Jupyter notebooks. In `examples/getting_started` there are four ordered notebooks: + +- `00_Hello_World.ipynb` aims to show the user the high-level classes in TomOpt and the general workflow. +- `01_Indepth_tutorial_single_cycle.ipynb` aims to show developers what is going on in a single update iteration. +- `02_Indepth_tutotial_optimisation_and_callbacks.ipynb` aims to show users and developers the workings of the callback system in TomOpt +- `03_fixed_budget_mode.ipynb` aims to show users and developers how to optimise such that the detector maintains a constant cost. + +In `examples/benchmarks` there is a single notebook that covers the optimisation performed in our first publication, in which we optimised a detector to estimate the fill-height of a ladle furnace at a steel plant. As a disclaimer, this notebook may not fully reproduce our result, and is designed to be used in an interactive manner by experienced users. -## Testing -Testing is handled by `pytest` and is set up to run during pull requests. Tests can be manually ran locally via: +### Running notebooks in a remote cluster +If you want to run notebooks on a remote cluster but access them on the browser of your local machine, you need to forward the notebook server from the cluster to your local machine. + +On the cluster, run: ``` -pytest tests/ +poetry run jupyter notebook --no-browser --port=8889 ``` -to run all tests, or, e.g.: +On your local computer, you need to set up a forwarding that picks the flux of data from the cluster via a local port, and makes it available on another port as if the server was in the local machine: +``` +ssh -N -f -L localhost:8888:localhost:8889 username@cluster_hostname +``` + +The layperson version of this command is: *take the flux of info from the port `8889` of `cluster_hostname`, logging in as `username`, get it inside the local machine via the port `8889`, and make it available on the port `8888` as if the jupyter notebook server was running locally on the port `8888`* +You can now point your browser to [http://localhost:8888/tree](http://localhost:8888/tree) (you will be asked to copy the server authentication token, which is the number that is shown by jupyter when you run the notebook on the server) + +If there is an intermediate machine (e.g. a gateway) between the cluster and your local machine, you need to set up a similar port forwarding on the gateway machine. The crucial point is that the input port of each machine must be the output port of the machine before it in the chain. For instance: ``` -pytest tests/test_muon.py +jupyter notebook --no-browser --port=8889 # on the cluster +ssh -N -f -L localhost:8888:localhost:8889 username@cluster_hostname # on the gateway. Makes the notebook running on the cluster port 8889 available on the local port 8888 +ssh -N -f -L localhost:8890:localhost:8888 username@gateway_hostname # on your local machine. Picks up the server available on 8888 of the gateway and makes it available on the local port 8890 (or any other number, e.g. 8888) ``` ## External repos +N.B. Most are not currently public + - [tomo_deepinfer](https://github.com/GilesStrong/mode_muon_tomo_inference) (contact @GilesStrong for access) separately handles training and model definition of GNNs used for passive volume inference. Models are exported as JIT-traced scripts, and loaded here using the `DeepVolumeInferer` class. We still need to find a good way to host the trained models for easy download. - [mode_muon_tomography_scattering](https://github.com/GilesStrong/mode_muon_tomography_scattering) (contact @GilesStrong for access) separately handles conversion of PGeant model from root to HDF5, and Geant validation data from csv to HDF5. - [tomopt_sphinx_theme](https://github.com/GilesStrong/tomopt_sphinx_theme) public. Controls the appearance of the docs. ## Authors -The TomOpt project, and its continued development and support, is the result of the combined work of many people, whose contributions are summarised in [the author list](https://github.com/GilesStrong/mode_muon_tomography/blob/main/AUTHORS.md) \ No newline at end of file +The TomOpt project, and its continued development and support, is the result of the combined work of many people, whose contributions are summarised in [the author list](https://github.com/GilesStrong/tomopt/blob/main/AUTHORS.md) \ No newline at end of file diff --git a/docs/source/introduction.md b/docs/source/introduction.md new file mode 100644 index 00000000..0930cac8 --- /dev/null +++ b/docs/source/introduction.md @@ -0,0 +1,23 @@ +This repo provides a library for the differential optimisation of scattering muon tomography systems. For an overview, please read our first publication [here](https://arxiv.org/abs/2309.14027). + +As a disclaimer, this is a library designed to be extended by users for their specific tasks: e.g. passive volume definition, inference methods, and loss functions. Additionally, optimisation in TomOpt can be unstable, and requires careful tuning by users. This is to say that it is not a polished product for the general public, but rather fellow researchers in the field of optimisation and muon tomography. + +If you are interested in using this library seriously, please contact us; we would love to here if you have a specific use-case you wish to work on. + + +## Overview + +The TomOpt library is designed to optimise the design of a muon tomography system. The detector system is defined by a set of parameters, which are used to define the geometry of the detectors. The optimisation is performed by minimising a loss function, which is defined by the user. The loss function is evaluated by simulating the muon scattering process through the detector system and passive volumes. The information recorded by the detectors is then passed through an inference system to arrive at a set of task-specific parameters. These are then compared to the ground truth, and the loss is calculated. The gradient of the loss with respect to the detector parameters is then used to update the detector parameters. + +The TomOpt library is designed to be modular, and to allow for the easy addition of new inference systems, loss functions, and passive volume definitions. The library is also designed to be easily extensible to new optimisation algorithms, and to allow for the easy addition of new constraints on the detector parameters. + +TomOpt consists of several submodules: + +- benchmarks: and ongoing collection of concrete implementations and task-specific extensions that are used to test the library on real-world problems. +- inference: provides classes that infer muon-trajectories from detector data, and infer properties of passive volumes from muon-trajectories. +- muon: provides classes for handling muon batches, and generating muons from literature flux-distributions +- optimisation: provides classes for handling the optimisation of detector parameters, and an extensive callback system to modify the optimisation process. +- plotting: various plotting utilities for visualising the detector system, the optimisation process, and results +- volume: contains classes for defining passive volumes and detector systems +- core: core objects used by all parts of the code +- utils: various utilities used throughout the codebase \ No newline at end of file diff --git a/environment.yml b/environment.yml deleted file mode 100644 index 439ac52b..00000000 --- a/environment.yml +++ /dev/null @@ -1,8 +0,0 @@ -name: tomopt -channels: - - conda-forge - - defaults -dependencies: - - python==3.8 - - pip - - ipykernel \ No newline at end of file diff --git a/examples/benchmarks/ladle_furnace.ipynb b/examples/benchmarks/ladle_furnace.ipynb index 211845c7..7a946072 100644 --- a/examples/benchmarks/ladle_furnace.ipynb +++ b/examples/benchmarks/ladle_furnace.ipynb @@ -15,16 +15,7 @@ "cell_type": "code", "execution_count": 2, "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/Users/giles/anaconda3/envs/tomopt/lib/python3.8/site-packages/tqdm/auto.py:22: TqdmWarning: IProgress not found. Please update jupyter and ipywidgets. See https://ipywidgets.readthedocs.io/en/stable/user_install.html\n", - " from .autonotebook import tqdm as notebook_tqdm\n" - ] - } - ], + "outputs": [], "source": [ "import torch" ] @@ -3544,9 +3535,9 @@ ], "metadata": { "kernelspec": { - "display_name": "Python [conda env:tomopt]", + "display_name": "Python 3 (ipykernel)", "language": "python", - "name": "conda-env-tomopt-py" + "name": "python3" }, "language_info": { "codemirror_mode": { @@ -3558,7 +3549,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.8.0" + "version": "3.10.13" }, "toc": { "base_numbering": 1, diff --git a/examples/getting_started/00_Hello_World.ipynb b/examples/getting_started/00_Hello_World.ipynb index a3f964d6..2484ad36 100644 --- a/examples/getting_started/00_Hello_World.ipynb +++ b/examples/getting_started/00_Hello_World.ipynb @@ -35,16 +35,7 @@ "cell_type": "code", "execution_count": 2, "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/Users/giles/anaconda3/envs/tomopt/lib/python3.8/site-packages/tqdm/auto.py:22: TqdmWarning: IProgress not found. Please update jupyter and ipywidgets. See https://ipywidgets.readthedocs.io/en/stable/user_install.html\n", - " from .autonotebook import tqdm as notebook_tqdm\n" - ] - } - ], + "outputs": [], "source": [ "from tomopt.core import *" ] @@ -53,16 +44,7 @@ "cell_type": "code", "execution_count": 3, "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/Users/giles/anaconda3/envs/tomopt/lib/python3.8/site-packages/scipy/__init__.py:138: UserWarning: A NumPy version >=1.16.5 and <1.23.0 is required for this version of SciPy (detected version 1.23.0)\n", - " warnings.warn(f\"A NumPy version >={np_minversion} and <{np_maxversion} is required for this version of \"\n" - ] - } - ], + "outputs": [], "source": [ "import torch\n", "from torch import Tensor\n", @@ -197,14 +179,12 @@ "outputs": [ { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAgQAAAH3CAYAAADE7Ee8AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAgAElEQVR4nOydeXhb1Zn/v1f7Lsv77qzO5thxYjskgYRAGaAtDLRNmwANS4FCJxTa/lqgQAstMy0DdChpKR3CJEBayjJTKJQwQFkK0yYB0hA73vctiTfJ1r7ce35/mHuRZFmbtVzZ5/M8fp7Eks49kq7v+d73fN/3ZQghoFAoFAqFsrCRpHsCFAqFQqFQ0g8VBBQKhUKhUKggoFAoFAqFQgUBhUKhUCgUUEFAoVAoFAoFVBBQKBQKhUIBIIvwOM1JpFAoFApl/sDM9gCNEFAoFAqFQqGCgEKhUCgUChUEFAqFQqFQQAUBhUKhUCgURDYVUigUCiUFeL1eDA4OwuVypXsqlHmASqVCaWkp5HJ51K9hIjQ3olkGFAqFkgJ6enqg1+uRk5MDhpnVCE6hRIQQgvHxcVitVixevDj4YZplQKFQKGLG5XJRMUBJCAzDICcnJ+ZoExUEFAqFIhKoGKAkinjOJSoIKBQKhSLw0ksvgWEYtLa2RnzuI488AofDIfz/85//PCwWy5znsGjRIqxduxZr167F6tWrcffdd0e827VYLHjsscfiPuZLL72E5ubmuF8PAAcOHMCePXvmNEY6oYKAQqFQxEhhIcAwifspLIzqsM8++yzOPvtsPPvssxGfGywIXnvtNWRlZcX9lv1555130NjYiKNHj6K7uxvf/OY3wz4/HYLA5/PFfby5wrJswsekgoBCoVDEyJkzKR/PZrPhgw8+wJNPPok//OEPwu9ZlsX/+3//D1VVVaiursbevXvx6KOPYnh4GNu3b8f27dsBTN/Zj42N4Y477sCvf/1r4fX33nsvHnroIQDAgw8+iPr6elRXV+PHP/5xxDnpdDo8/vjjeOmllzAxMTHrGHfccQe6urqwbt06fP/73w97rKeffhrV1dWoqanB17/+dfztb3/Dn/70J3z/+9/HunXr0NXVhePHj+Oss85CdXU1Lr/8cpjNZgDAueeei9tuuw11dXX45S9/GXH+AHDzzTejrq4Oa9asEebx9ttv47LLLhOe8+abb+Lyyy8HALzxxhvYtGkT1q9fjx07dsBmswmf7+23347169fjhRdewKOPPorVq1ejuroaO3fujGouYSGEhPuhUCgUSgpobm4O/AWQ+J8IHDx4kFx33XWEEEI2bdpEPvroI0IIIY899hj58pe/TLxeLyGEkPHxcUIIIRUVFWR0dFR4Pf//Y8eOka1btwq/X7VqFenv7yf/+7//S2644QbCcRxhWZZ84QtfIO+9996MeQSPSwghNTU15PDhw7OO0dPTQ9asWSM8f7bnNTU1keXLlwvj8+/l6quvJi+88ILw+rVr15J3332XEELIPffcQ2699VZCCCHbtm0jN998c8jPb//+/eRf/uVfZvyeP4bP5yPbtm0jn3zyCeE4jqxYsYKMjIwQQgjZtWsX+dOf/kRGR0fJOeecQ2w2GyGEkJ///OfkvvvuEz6XBx54QBi3qKiIuFwuQgghZrN5xnFnnFPTzLrm0wgBhUKhUABMbxfwd5o7d+4Utg3eeustfPOb34RMNl26Jjs7O+w4tbW1GBkZwfDwMD755BOYTCaUlZXhjTfewBtvvIHa2lqsX78era2t6OjoiGpu5NMU+WjHmO15b7/9Nnbs2IHc3NxZ38vk5CQsFgu2bdsGALj66qvx17/+VXj8a1/7WlRz5nn++eexfv161NbW4uTJk2hubgbDMPj617+OgwcPwmKx4O9//zsuvvhiHD58GM3NzdiyZQvWrVuHp556Cn19fSGPXV1djSuvvBIHDx4Uvpu5QAsTUSgUCgUTExN4++230djYCIZhwLIsGIbBgw8+GNd4O3bswIsvvojTp08LixghBHfeeWdEP0AwVqsVvb29qKysnHWM3t7egP/P9ry9e/fG/maC0Gq1UT+3p6cHDz30ED788EOYTCZcc801gkHy2muvxSWXXAKVSoUdO3ZAJpOBEIILLrhgVg+H/7H//Oc/469//SteeeUV/Ou//isaGxvnJAxohIBCoVAoePHFF/H1r38dfX196O3txcDAABYvXoz3338fF1xwAX77298KJjp+L1+v18NqtYYc72tf+xr+8Ic/4MUXX8SOHTsAABdeeCH+67/+S9gTHxoawsjISNh52Ww2fOtb38Jll10Gk8k06xjBc5nteeeddx5eeOEFjI+Pz/pejEYjTCYT3n//fQDAM888I0QLYmVq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\n", + "image/png": "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c+dO7Nu3DxkZGbjuuut8Xvf4449j+fLlSExMxLJly/DQQw/Jz5WUlAAA1q1bB47jcNpppyl6HwB0dXVh165dSE1NhclkwsaNG/HRRx9h9+7duPPOO1FZWSlvG2nbdnZ24gtf+AKSk5NhsVhwySWXoKenR/7MO+64A2vXrsXjjz+OkpISJCYmzrodAvHJJ5/grLPOQnp6OlJSUnDqqafi008/lZ+/5pprcP755/u8x+12IzMzE0888QQATzfMu+++GyUlJUhKSsKaNWvw17/+VX793r17wXEcXnvtNWzYsAEJCQn497//jcrKSpx++ukwm82wWCzYsGED9u/fP6f1mBeMIAiCIAhVMTk5yerq6tjk5OTxBw8cYAyI/L8DB4Ia+xNPPME2btzIGGPslVdeYaWlpUwURfn5V199lWm1Wnbbbbexuro6VlFRwe666y7GGGMDAwMsPz+f/fSnP2VHjx5lR48eZYwx9uSTT7KUlBT5MzZu3Mh+8pOf+Cx3w4YN8mN2u51lZGSwW265hdXX17NPP/2UnXXWWez000+fdtzvvvsuA8DsdvuU5+677z4GgPX09DDGGPvTn/7EcnJy2AsvvMBaW1vZCy+8wFJTU9nu3bsZY4x9/PHHDAB766232NGjR9nAwICi942OjrJFixaxk08+mb3//vusqamJ/fnPf2b/+c9/2MTEBPv+97/PVq5cKW+biYkJJggCW7t2LTvppJPY/v372Ycffsg2bNjATj31VHn8t99+OzOZTOycc85hn376KausrAx6GzDG2Ntvv83++Mc/svr6elZXV8e+9rWvsaysLDYyMsIYY2zfvn1Mq9WyI0eOyO/529/+xkwmExsdHWWMMfazn/2MLVu2jP3zn/9kLS0t7Mknn2QJCQls7969PmNYvXo1e+ONN1hzczMbGBhgK1euZF/96ldZfX09a2xsZM8//zyrqKgIOM6Av58QQcKZIAiCIFRGLAvn8vJydv/99zPGGHO73Sw9PZ29++678vNbt25ll1122bTvLyoqYvfdd5/PY/7C+b777mOlpaXy3w0NDQwAq6+vZ4wx9j//8z/sc5/7nM9nHD58mAFgDQ0NAZc7k2h87bXXGAD20UcfMcYYKy0tZc8884zPa/7nf/6Hbd26lTHGWFtbGwPADh486POa2d736KOPMrPZLAttf26//Xa2Zs0an8feeOMNptVqWWdnp/xYbW0tA8A+/vhj+X16vZ719vYG/Fwl2yAQgiAws9nMXnnlFfmxFStWsF/84hfy3xdccAG76qqrGGOMORwOZjQa2X/+8x+fz/na177Gdu3a5TOGl156yec1ZrNZvsCYjXAKZ7JqEARBEAQREhoaGvDxxx9j165dAACdToevfOUr8m16AKioqMD27dvntZydO3eivb0dH374IQDg6aefxvr167Fs2TIAQGVlJd59910kJyfL/6TnWlpagl4eYwyAZ9Lg+Pg4Wlpa8LWvfc3n83/2s5/N+NlK3ldRUYF169YhNTVV8djq6+tRUFCAgoIC+bEVK1bAarWivr5efqyoqAgZGRnBrroPPT09+PrXv46ysjKkpKTAYrFgbGwMnZ2d8muuvfZaPPnkk/LrX3vtNVxzzTUAgObmZkxMTOCss87y2QZPPfXUlG23ceNGn79vvPFGXHvttTjzzDPxv//7v3P6HkMBpWoQBEEQBBESnnjiCfA8j9zcXPkxxhgSEhLwm9/8BikpKXJL5PmQnZ2NM844A8888wy2bNmCZ555xseDPDY2hgsuuAC/+MUvprw3mHQMCUmAFhcXY2xsDADw2GOPYfPmzT6vm6m9s5L3hWLbTIfJZJr3Z1x55ZUYGBjAAw88gKKiIiQkJGDr1q0+kw2vuOIK/OhHP8IHH3yA//znPygpKcHJJ58M4Pg22LNnD/Ly8nw+OyEhYcbx3nHHHbj00kuxZ88evPbaa7j99tvx3HPPyf74SEHCmSAIgiCIecPzPJ566ince++9+NznPufz3I4dO/Dss8/im9/8JlavXo23334bV199dcDPMRgMcsvxmbjssstw8803Y9euXWhtbcXOnTvl59avX48XXngBxcXF0OnmJ3UmJyfxu9/9Dqeccopcsc3NzUVraysuu+yyadcBgM96ZGVlzfq+1atX4/HHH8fg4GDAqnOgbbN8+XIcPnwYhw8flqvOdXV1GBoawooVK4Jf4RnYt28fHnroITka8PDhw1MmXKalpWHHjh148skn8cEHH/h8zytWrEBCQgI6Oztx6qmnBr38JUuWYMmSJbjhhhuwa9cuPPnkkyScCYIgCIKIPV599VXY7XZ87WtfQ0pKis9zF198MZ544gl885vfxO23347t27ejtLQUO3fuBM/z+Mc//oEf/vCHADxV3ffeew87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", "text/plain": [ - "
    " + "
    " ] }, - "metadata": { - "needs_background": "light" - }, + "metadata": {}, "output_type": "display_data" } ], @@ -368,7 +348,7 @@ }, { "cell_type": "code", - "execution_count": 18, + "execution_count": 17, "metadata": {}, "outputs": [], "source": [ @@ -377,7 +357,7 @@ }, { "cell_type": "code", - "execution_count": 30, + "execution_count": 18, "metadata": { "scrolled": false }, @@ -391,9 +371,9 @@ }, { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAABAgAAAQICAYAAACAmekaAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAgAElEQVR4nOzdeXiU5dn+8e9kX0kIIQk7JGwBDIQkIKuRRVDZXFjaCi5BllZx90WtrbW2tbV9qfBrQQTBFRcURBD6iiSAqJgQdiNgQiJBtrBlIXvm98dISiQhCczMMzM5P8fBMZmZZ577nHjLwVxzP9dtMpvNZkRERERERESkSXMzOoCIiIiIiIiIGE8FAhERERERERFRgUBEREREREREVCAQEREREREREVQgEBERERERERFUIBARERERERERwMPoAI5i165deHt7Gx3DYRQWFhIQEGB0DHFgmiNSH80RqY/miDSE5onUR3NE6qM5UlNpaSl9+vSp9TkVCH7i7e1NdHS00TEcRkpKCgkJCUbHEAemOSL10RyR+miOSENonkh9NEekPpojNWVkZNT5nC4xEBEREREREREVCEREREREREREBQIRERERERERQQUCEREREREREUFNCkVERERERGwqPz+fkydPUl5ebnSUJikoKOiKjflcjaenJ2FhYTRr1qzRr1WBQERERERExEby8/M5ceIEbdq0wdfXF5PJZHSkJqegoIDAwECjY9iF2WymuLiYo0ePAjS6SKBLDERERERERGzk5MmTtGnTBj8/PxUHxOZMJhN+fn60adOGkydPNvr1KhCIiIiIiIjYSHl5Ob6+vkbHkCbG19f3qi5pUYFARERERETEhrRyQOztauecCgQiIiIiIiIiogKBiIiIiIiIWM/vfvc7XnzxxQYff+utt7Jx40YbJpKG0i4GIiIiIiIiTVhsbGz1zyUlJbi7u+Pp6QlA69atWbduXaPO9/zzzzfq+MaeX2xHBQIREREREZEmbOfOndU/T506lcTERJKSkmo9tqKiAg8PfYx0VbrEQERERERERGo1bNgwFi5cyJQpU+jduzfffPMN27Zt48477yQ+Pp4BAwbw2GOPcfbs2erXzJ07t3oVQW5uLt26dePjjz9m1KhR9O3bl1//+tcUFBTUGGPDhg0AfPTRR4wZM4bFixczePBg+vfvz0svvVQj08aNGxk1ahSxsbE8/PDDPPXUU8ydO9cOvw3X5/Cln8cff5wPPviAs2fP4ufnx80338y8efMIDg6u9fjXXnuN559/npMnT9KvXz9effVVunTpYufUIiIiIiIil/twRy7vpx2xy1iT4ttxR1zbaz7Phx9+yMKFC4mKiqK8vJw9e/bw+9//nujoaM6cOcNDDz3ESy+9xJ///Oc6z/H555/zwQcfUFVVxbRp01i+fDkPPvhgrccePnyYyspKNm3axOHDh5k0aRJDhw6lf//+5OTk8MgjjzBv3jwSExNJTk7mkUceYcyYMdf8PsUJVhBMnz6dffv2kZ+fz4EDBygpKeHhhx+u9djNmzfz0EMP8cYbb3D69Gn69evHuHHjqKystHNqERERERER1zBlyhS6dOmCm5sb3t7eJCQkcN111+Hh4UFYWBhJSUls3779iuf4zW9+Q7NmzQgODuamm25i//79dR4bGBjIrFmz8PLyolu3bsTExFQfv27dOvr168eIESPw8PBg5MiRJCQkWPX9NmUOv4Kge/fuNe67ublx6NChWo9dunQpU6ZMYejQoYClOcaiRYvYunUriYmJto4qIk3Zng8gtAu07mN0EhEREXFgd8S1tcq3+vbUunXrGvf37dvHvHnz+O677yguLsZsNtd7jpYtW1b/7OvrS1FRUZ3HhoaGYjKZqu/7+flVH3/ixAlatWp1WT59KWwdDl8gAFi4cCH/8z//Q0FBAb6+vqxYsaLW4/bs2cOsWbOq7/v4+BAdHc2ePXvqLRAUFhaSkpJixdTOTb8PqY/myH+5V1xg0LaZFAZEkh73d6PjOAzNEamP5og0hOaJ1MfR50hQUFCN6+0dXUVFBaWlpdWZq6qqatwHePjhhxk9ejR/+tOf8Pf3Jzk5md/97nfVx5SXl1NWVkZBQUH1B/uioqLqnRFKS0upqKioMUZxcTEFBQWUlJRQWVlZY7xLMwUHB7Nr164azx85coSWLVvW+Xv++fmaipKSklr/3wgPD6/zNU5RIJg9ezazZ88mOzubpUuX1tlToKCggKCgoBqPBQcHk5+fX+8YAQEBWppyiZSUFK26kCvSHLnEgQ1grqRZwSESuwZB69j6X9MEaI5IfTRHpCE0T6Q+jj5HMjIyCAwMNDpGg3l4eODt7V2d2c3NDV9f3xrv4cKFC4SGhhIeHk5ubi5vvvkmJpOp+hhPT0+8vLwIDAzE398fAH9//+rnvb298fDwqHUMHx8f3N3da4x3aaYJEybw2muvkZqayg033EBycjLp6emMGTOmzt9zQUGBU/03sBYfH58aW1helJGRUedrHL4HwaU6duzI2LFj62xAERgYyPnz52s8du7cOZo1a2aPeCLSVGUlg4cPePpB6lKj04iIiIjY1PPPP8/bb79N3759efjhh7n11lvtNnanTp34xz/+wV//+lfi4+P55JNPGD16NF5eXnbL4MqcYgXBpSoqKsjJyaG0tBRvb+8az8XExJCenl59v6SkhIyMDGJiYuwdU0Saksxk6DAQgtrBnvfhphfAt/adVkREREQc2Ztvvlnj/qZNmy47ZsSIEYwYMaLGY/fcc0/1zy+++GL1z23btuXAgQM1jk1KSiIpKanWMW6//XZuv/32Gse/8sorNe7fdNNN3HTTTdX3p06dysCBA+t6S9IIDr2CoLS0lFdeeYXTp08DkJmZydy5c0lMTLysOACWifbuu++ydetWSkpKeO6552jTpg1Dhgyxd3QRaSrOH4W8AxB5IyQkQUUx7H7X6FQiIiIiLuvzzz8nPz+f8vJyVq1aRXp6OqNGjTI6lktw6AIBwKpVq+jWrRv+/v4MGzaM6Oho3n3X8o/vP//5z/Ts2bP62BtuuIF58+Zx1113ERISwldffcWaNWtwd3c3Kr6IuLqsFMtt1I3Qqje0TYC0pdCAbr4iIiIi0nhff/01I0eOpF+/fixbtoyXX36ZyMhIo2O5BIe+xMDb25sNGzbU+fzTTz/N008/XeOxny9XERGxqaxk8G8JYT8VK+OTYPUsyN4KnYYam01ERETEBT3zzDM888wzRsdwSQ6/gkBExGFVVVlWEEQmgttPf532vA18m0PqEgODiYiIiIg0ngoEIiJX6+R+KDpl6T9wkacPxN4F362D/GPGZRMRERERaSQVCERErlZmsuU26saaj8ffB1UVkP6G/TOJiIiIiFwlFQhERK5W5iYI7QbNWtd8PCQSoobDjuVQWWFINBERERGRxlKBQETkapSXwA9fXb564KKEJCj4EQ6ut28uEREREZGrpAKBiMjV+OErqCip2X/gUl1GQbO2kLrUvrlERERE7Cg3N5du3bpx5swZABYtWsScOXPqPH7Dhg0MGzbsmsa89dZb2bhx4zWdQ2qn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c7D/I+ueV0RERKSRpk6dSq9evYiNjSU2NpaRI0fy9ttvW+XcCxYsYObMmVY5V13n79GjR3X22NhY3nvvvTqPX716NZMmTSI+Pp6BAwfy0EMPcfz48ernt2/fTrdu3Wqc74knnqh+vqSkhDlz5jB8+HC6devGRx/V/Ldcbm7uZa+PjY1lzpw5V3wfK1euZNiwYfTu3ZupU6eSnZ3d4MzW4mH1M4qIuJJju6H4LEQNs/65OwyyrEpIXQqxd1n//CIiIiKN8Mgjj5CUlATArl27uOeee+jatSsJCQkGJ6vfkCFDeOWVVxp0bFFREY888gh9+vShqqqKP/7xj8yZM4f333+/+hg/Pz927txZ6+tNJhN9+/Zl6tSp/Pa3v61znM8//5yQkJAGZfrmm2/405/+xOLFi7nuuuuYP38+s2fPZu3atbi7uzcoszVoBYGIyJVk/dR/IDLR+uc2mSxbHv6YDkfTrX9+ERERkavUp08foqKiOHjwYPVjubm5/OY3v2HAgAEMHTqUv/71r5SVlQFw/vx55syZQ//+/YmLi2Ps2LHs3r2b//znP7zyyits3bq1+pv0goICo94WAL/61a8YMGAAvr6++Pv7k5SUxO7du6vfS328vb255557SEhIwNPT0yqZVq5cya233kpCQgI+Pj489NBDnDhxgrS0NKtkbiitIBARuZLMZAjvBQFhtjl/78mw8TlIWwpt+tpmDBEREXEo926497LHRnUcxZTuUyiuKObXG3992fPjO49nQucJnC05y6Mpj172/ORukxndaTTHi47z1NanAFg2etlV5TObzezYsYOsrCz69OkDWJbV33333dx5553MmzePgoICHnjgAV555RUefPBBli5dSmlpKcnJyfj4+JCdnY2Pjw+9e/fm4MGD7Nu374rf8KelpTFr1qw6n4+Li7vi67/55hv69+9Ps2bNGDFiBA888AD+/v4Ner9fffUVnTp1wsvrv9tZl5SUMGTIEIDqSwzatWvXoPNdjQMHDjBlypTq+97e3kRFRXHgwAH69+/foMzWoAKBiEhdyi7Ake3Qb4btxvAJgpiJsPs9uOkF8G1uu7FEREREruDll19m4cKFlJeXU1JSwtSpU+nRowcAycnJeHt7M3v2bABatGjBrFmz+OMf/8iDDz6Ip6cn58+fJzs7m+joaCIjIxs1dnx8fPW35Y01evRo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6aWX6p///KcMw1DHjh11xx136LbbbtP5559vdn4AAAAAAMALGtUg+PLLL9WkSRM9+uijyszMVLNmzczOCwAAAAAAeFGjrv8fMmSIQkJC9NJLLykyMlIjR46U0+k0OzcAAAAAAOAljWoQvP3229q3b59efPFFtWvXTgsXLtS1116rdu3aafz48fr888/NzhMAAAAAAHhQo1cQbNOmjR5++GHl5eUpNzdXGRkZOnbsmJ5//nldfvnlstls2rVrl/bv329mvgAAAAAAwANMecTAFVdcodmzZ2v//v1asmSJ+vTpI0natGmT2rVrp5SUFC1fvtyMUwEAAAAAAA8w9RmETZs21W233abs7Gx98803euqpp3TBBRfoL3/5i26++WYzTwUAAAAAAExkaoOgopiYGE2aNEnffPON3n//fd10002eOhUAAAAAAHBTox5z2BA2m03JyclKTk729KkAAAAAAEAjeewKAnfl5OSoX79+Sk5O1ty5c6ts37dvn+644w4NHjxYAwcO1ObNm8u3vfrqq0pOTla/fv304YcfejNtAAga1GkAwJEjRzRixAj17dtXI0aMUFFRUbX7xcXFadCgQRo0aJDuvfdeL2cJoL48fgVBY5SWliozM1MLFy6U3W7X0KFD5XA41L59+/J9Zs+ereuvv1633nqrdu3apYyMDG3cuFG7du1SVlaWsrKy5HK5NGLECL3//vsKCQnx4YgAILBQpwEAkjR37lz16NFDGRkZmjt3rubOnavHH3+8yn7NmjXT6tWrfZAhgIaw5BUEeXl5iomJUXR0tMLCwpSSkqLs7OxK+9hsNh07dkyS9OOPP6pt27aSpOzsbKWkpCgsLEzR0dGKiYlRXl6e18cAAIGMOg0AkH6u6YMHD5YkDR48WBs2bPBxRgDcYckrCFwulyIjI8u/t9vtVf54/O1vf6uRI0dq6dKl+umnn7Rw4cLyYy+//PJKx7pcLu8kDgBBgjoNAJCkH374obwBfO655+qHH36odr/i4mKlpqYqNDRUGRkZuvbaa72ZJoB6smSDoD6ysrI0ZMgQ3XXXXdqxY4fGjh2rtWvXNjpecXGx8vPzTczQM06ePOkXeZotGMcdjGOWgnfcgcjMOm2lGh3s79FgHj9jD86xQxo+fLi+//77Kq8/9NBDlb632Wyy2WzVxnA6nbLb7SosLNSwYcPUoUMHtWvX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aaPDhw+rZcuW1a5ntVolSe3bt1evXr20Y8eOersDYLVaK50e6HA4nPM7e52DBw8qOjpa5eXl+uWXX9SiRQt/p+p1rsz97HmOGDFCTz31lN/yCwR//B0dOnSoyu+ooTr7ADMhIUHTp0/X0aNHa6wLcI+vanJycrKOHz+u8vJyhYaG1rjteiP+iRMnNG7cON17773q2rWr8/kzZx+EhYVp6NChevnll2uMdfZc3K3JrrzWG/El6fPPP9cLL7ygZcuWKSwsrNLrJfc/Hz2py1arVVu2bKn02l69erkc29X4Z6xdu1aZmZlVXi/5dv+gprrsjfm76vvvv9fDDz+sF198sdL7cWb+UVFRstvtysvL83qDoKba7I3tH8GD7QX1CV8xMJHNZtOqVaskSatWrVJSUlKVdUpKSpyniR49elRbt25Vp06d/JqnN8XHx6ugoECFhYUqKytTVlaWbDZbpXVsNpvzasjr1q1T7969z/mftPrClbmf/X37nJwc/UP+tgAABrNJREFUXXzxxf5O01Rn/iYMw9A333yj8847z3nQ09D99NNPzmtt5OXl6fTp0w2iMVafeFKTLRaLrrjiCq1bt07S71d3/+Pftzfil5WVKSMjQ2lpabrqqqsqLTtTPwzD0Pr16xUbG1trTE9qss1mU1ZWlsrKylRYWKiCggJddtlldZqzK/F37NihzMxMPf/884qKinI+743PR0/qcr9+/bRx40aVlJSopKREGzduVL9+/bweX5J2796t48ePq1u3bs7n/LV/UFNd9sb8XXHgwAHdfffdmjVrljp27Oh8/tSpUzpx4oTz588++8ylbb6uaqrNrr53gOT63zoQCDiDwETp6emaMGGCVq5cqXbt2mnu3LmSpG3btmn58uV67LHHtHv3bk2dOlUWi0WGYei2226r1w2C0NBQZWZmauzYsaqoqNCwYcMUGxurefPmqUuXLkpKStLw4cM1adIk2e12RUREaM6cOWan7RWuzH3p0qXKyclRSEiIIiIi9Pjjj5udtldNnDhRW7ZsUXFxsfr376+7775b5eXlkqQbb7xRCQkJ+uSTT2S329W0aVPNnDnT5Iy9p7a5r1u3Tq+//rpCQkLUpEkTPf300w2iMVafeFqTJ02apHvvvVdz585VXFycRowY4fX477//vr766isdO3bMedD+xBNPKC4uTv/85z9VXFwswzDUuXNnTZ8+vdaYntTk2NhYXX311Ro0aJBCQkKUmZlZ6fR3V7gSf9asWTp16pTGjx8vSWrbtq1eeOEFr3w+elKXIyMjdeedd2r48OGSpIyMDEVGRno9vvT72QODBg2qVBO8tX/gbl32xvxdif/cc8/p2LFjzu05JCREb7/9to4cOaKMjAxJUkVFha655poq1yfwRvyaanNN7x1QHbaX6lX391fXz054n8VoCJeHBwAAAAAAHuErBgAAAAAAgAYBAAAAAACgQQAAAAAAAESDAAAAAAAAiAYBAAAAAAAQDQIAAAAAACAaBAAAAAAAQDQIAAAAAACAaBAAAAAAAADRIADqzDAM2e12WSwWZWVlVVr222+/qUePHgoNDdWmTZtMyhAAgldubq4sFosyMjKqXf7555/LYrEoPT3dz5kBgHvY94Q/0SAA6shisWjx4sWKiorSrbfeKofD4Vz20EMPaevWrZoyZYr69OljYpYAEJyuvPJKxcbG6rXXXtOvv/5aZfnChQslSWPHjvV3agDgFvY94U80CAA3tGvXTi+++KIOHz6s0aNHS5JycnI0e/Zs9enTRw8//LDJGQJAcLJYLBo7dqyOHTumt99+u9KyEydO6M0331R8fLx69eplUoYAUHfse8JfQqZNmzbN7CSA+iguLk779+/Xm2++KUmaMmWKDMPQhx9+qKioKJOzA4DgFRsbq3nz5uno0aO65ZZbnM8vXbpUK1eu1IMPPqjevXubmCEA1B37nvAHi2EYhtlJAPXVyZMn1b17d+3cuVOStGjRIo0cOdLkrAAA1113nVauXKndu3erY8eOkqS//vWv2rp1qw4cOKCWLVuanCEA1B37nvA1vmIAeKBZs2YaMGCAJCkqKkrXX3+9yRkBACQpPT1dhmHolVdekSTl5+dr06ZNGjx4MM0BAPUW+57wNRoEgAdyc3P1wgsvKCoqSkeOHNF9991ndkoAAElJSUm6+OKLtXjxYp0+fZqLEwJoENj3hK/RIADcVFxcrFtuuUXNmzfXli1blJCQoGeffVYffPCB2akBQNA7c7HCffv2ae3atVq6dKk6duyopKQks1MDALew7wl/oEEAuGncuHEqKirSc889p4suukhLlixRRESERo0apZ9++sns9AAg6I0ePVp/+tOfNG7cOOeVvy0Wi9lpAYBb2PeEP9AgANywaNEirVixQjfccINuvvlmSVKHDh30/PPPy+FwaMyYMSZnCACwWq1KTU3VgQMH1KhRI+etwQCgvmHfE/7CbQ6BOtqzZ4/S0tJktVqVlZWlJk2aOJd16dJFu3fv1sqVK2W1WtWzZ08TMwUANG3aVMuXL9dVV12lO+64w+x0AKDO2PeEP3GbQwAA0GA98sgjyszM1FtvvaWhQ4eanQ4AAAGNBgEAAGiQTp06pdjYWEnSjz/+qNDQUJMzAgAgsPFJCQAAGpSNGzfqk08+0fvvv68DBw7o2WefpTkAAIAL+LQEAAANyvr16zV9+nS1adNG999/P9ceAADARXzFAAAAAAAAcJtDAAAAAABAgwAAAAAAAIgGAQAAAAAAEA0CAAAAAAAgGgQAAAAAAEA0CAAAAAAAgKT/Bwt9pgxEeP+fAAAAAElFTkSuQmCC\n", + "image/png": "iVBORw0KGgoAAAANSUhEUgAABZkAAAWZCAYAAAAfMxtfAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuNSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/xnp5ZAAAACXBIWXMAAA9hAAAPYQGoP6dpAAEAAElEQVR4nOzdd3hUdd6G8XtS6L13CBYUBEMTQQVEwS4oKiLWtfe+61rX8q6ra0Gx7OoqWFZksSJiQV2KK9IURcQGoUvvhoSUef84JBIpJpDkJDP357q85nDmzJmHcEB4cub7i0Sj0SiSJEmSJEmSJO2BhLADSJIkSZIkSZLKL0tmSZIkSZIkSdIes2SWJEmSJEmSJO0xS2ZJkiRJkiRJ0h6zZJYkSZIkSZIk7TFLZkmSJEmSJEnSHrNkliRJkiRJkiTtsaSwA8SL3NxcsrOzSUhIIBKJhB1HkiRJkiRJknYrGo2Sm5tLUlISCQm7vl/ZkrmUZGdnM3v27LBjSJIkSZIkSVKRtG/fngoVKuzyeUvmUpLX9Ldv357ExMSQ08SXrKwsPvzwQ/r160dycnLYcaRS4XWveOW1r3jkda945bWveOR1r3jltR+enJwcZs+evdu7mMGSudTkjchITEy0ZC5lubm5RKNRv/aKK173ilde+4pHXveKV177ikde94pXXvvh+73xvy78J0mSJEmSJEnaY5bMkiRJkiRJkqQ9ZsksSZIkSZIkSdpjlsySJEmSJEmSpD1mySxJkiRJkiRJ2mNJYQeQJEmSJEmSfisnJ4esrKywY6gMyMrKIikpiYyMDHJycsKOU+4lJiaSnJxcrOe0ZJYkSZIkSVKZEY1GWb58ORs2bCAajYYdR2VANBqlUaNGLF68mEgkEnacmFCxYkXq1atHjRo1iuV8lsySJEmSJEkqMzZs2MD69eupX78+VatWtVQUubm5bN68mWrVqpGQ4PTfvRGNRsnKymLDhg0sXboUoFiKZktmSZIkSZIklQnRaJSVK1dSo0YN6tWrF3YclRG5ubls3bqVSpUqWTIXg8qVK1O9enWWLFnC6tWri6Vk9ldFkiRJkiRJZUJOTg45OTnF9hF+STsXiUSoWbMmmZmZxTL73JJZkiRJkiRJZUJ2djYASUl++F4qaXmL/xXHYoqWzJIkSZIkSSpTnMMslbzi/H1mySxJkiRJkiRJ2mOWzJIkSZIkSZKkPWbJLEmSJEmSJMWwW265hTZt2uzx64cNG0abNm1YsmRJMaZSLHGKuiRJkiRJklSKilL4fv/99yWYRCoelsySJEmSJElSKXrwwQcL/HjmzJmMGjWKQYMG0blz52J/v3vvvZe77757j19/+eWXc8kll1ChQoViTKVYYsksSZIkSZIklaL+/fsX+HFOTg6jRo0iNTV1h+d+a/PmzVSrVq1I75ecnFzkjNtLSkoiKckaUbvmTGZJkiRJkiSpDGrTpg233HILkydPZtCgQaSmpvLHP/4RgHnz5nHXXXdx/PHH07FjR1JTUznjjDN47733djjPzmYyn3POOfTp04cVK1Zw7bXX0rlzZzp27MiVV17JihUrChy7s5nMeefcuHEjd9xxB926daNDhw6cd955zJs3b4cMS5Ys4eqrr6ZTp0506tSJyy+/nMWLF9OnTx/OOeec4vhyKUR+C0KSJEmSJEllXjQaZUtWTtgxCqicnEgkEinR95g9ezYffvghgwYNYuDAgfkjK6ZNm8YXX3zBUUcdRbNmzdiwYQNjxozhuuuuY+vWrb97RzRAeno6Z599Nl26dOGmm27ixx9/ZOTIkWzevJkXXnihUPkuvPBCGjRowDXXXMPy5csZMWIEV1xxBePGjSMxMRGAdevWMWTIENasWcOZZ55J69atmTFjBueddx7p6el7/sVRmWHJLEmSJEmSpDItGo1y2j+mMHPhurCjFNClZW1GX9a9RIvmn376iRdeeIFDDz20wP7+/fszePDgAvvOPfdcBgwYwNNPP12oknndunVceumlXHDBBfn7IpEIL7/8MvPmzWOfffb53XMcfPDB3H777fk/rl27Ng888AD/+9//6NmzJwDPPvssy5cv59FHH+X4448H4KyzzuLBBx/kueee+933UNnnuAxJkiRJkiSVeSV7v3DZ1bZt2x0KZoAqVarkb2dkZLBu3TrS09Pp1q0baWlpbN68+XfPnZiYyJAhQwrs69atGwCLFi0qVL7fjrrY2ev/+9//0qhRI4477rgCx1544YWFeg+Vfd7JLEmSJEmSpDItEokw+rLucTkuo0WLFjvdv3nzZoYNG8a4ceNYuXLlDs9v3LjxdxcIrF+/fv74jTw1a9YEYP369YXK16xZs999/ZIlS+jYseMOX6u6detSo0aNQr2PyjZLZsW+jcuokLUx7BSS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h7Vr13LXXXdx/PHH07FjR1JTUznjjDN47733CvVeu5rJ/J///Idjjz2Wgw46iL59+zJixAiiO/nE94oVK/jb3/7GySefTJcuXejQoQMnn3wyr7zySoHjbrnlFp544gkAjjrqKNq0aUObNm1444038p/f2UzmadOmcf7559OpUycOPvhgBg4cyNixY3c4bsCAAZx77rnMmzePCy+8kI4dO9K1a1duueUWNm/eXKivhUqOdzJrR7m58OOHMOUJWDD51/2tjoDuV8J+x8BOvsNWrqT0hPn/hbSJ0O2SsNNIkiRJkqTfE41CVnrYKQpKrrLHI0NPPfVUnn32Wd58802OOOKIAs/ljdEYOHAg06ZN44svvuCoo46iWbNmbNiwgTFjxnDdddexdetW+vfvX+T3HjFiBPfffz9t27blxhtvJD09neeff566devucOz333/P+PHj6devH82bNyczM5MPPviAu+++m/Xr13PFFVcAMGjQIDZv3sz48eP585//TO3atQHo1KnTLnN88sknXHXVVTRo0IALL7yQKlWqMGbMGG688UaWL1/ORRddVOD4FStWcN5553HMMcdw9NFHM3PmTN58800SEhL461//WuSvg4qPJbN+lbUFvhoJU56CNT8G+yKJcNCpQbncpGO4+YpT3lzmBZ9Cbg4kJIabR5IkSZIk7Vo0Cs8fA4unhp2koOaHwh/e36OiuXXr1nTs2JGPPvqITZs2Ub16dQByc3N5++23adCgAYcffjiZmZkMHjy4wGvPPfdcBgwYwNNPP13kknnjxo0MHTqU/fffn5EjR1KpUiUgKLSPO+64HY4/5JBD+Oijj4hs93M8//zzOffcc3nuuee46KKLqFChAh07dqRNmzaMHz+eo48+mmbNmu02R05ODvfeey/VqlVj9OjR1K9fH4CzzjqLM888k6FDh3LyySfToMGvn6BftGgRw4YNo1+/fgAMHjyYzZs38/bbb3PrrbdSrVq1In0tVHzK+e2oKhabV8In/wePtoOx1wcFc8Wa0OMauO5rGPiv2CqYARofDBVrQMZ6WD477DSSJEmSJOl37dkdw2XZwIEDyczMZNy4cfn7PvvsM37++WcGDBhAYmIiVapUyX8uIyODdevWkZ6eTrdu3UhLSyvyqIhPP/2ULVu2MGTIkPyCGaBRo0acdNJJOxxfqVKl/IJ569atrFu3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Mi8h7ABx54L3oMPpFsxlUeVa0Dg12E6bHGYSSZIkSZIkqdzwTubSFomEnUC7k9ITln0RjMw4eFDYaSRJkiRJUoyaOnUq5557boF9FStWpGHDhhx++OFcfPHFNGlSsp+yHjFiBDVq1ODUU08t0ffZnVtuuYU333xzp88NHz6cHj16/O45Pv30Uz788EO++eYbfvjhB7Kysnjrrbc48MADd/ma7777jqeeeorp06ezefNm6tevT2pqKg8++CBJSTuvTOfNm0f//v3JysriySef5Oijj85/bsmSJRx11FG7fL/ExES+/fbb3/25AKxYsYKHH36YSZMmkZ6ezn777ccll1zCMcccU+C4qVOnMm7cOGbMmMGyZcuoUqUKrVu35sILL6R3796Feq/iYsksbS+lJ/xvKKRNhGjUbwpIkiRJkqQSdfLJJ3P44YcDsGXLFmbPns2oUaP4+OOPGTduHNWqVSux937xxRdp2rRpqCVzngcffHCHffvtt1+hXjt27FjGjh3L/vvvT0pKCj/88MNuj//444+59tprOeigg7j44oupXr06K1euZObMmeTm5u70NdFolDvvvJPk5GSysrJ2ee7DDz+ck08+eYf9CQmFGyixfv16zjrrLNauXcv5559Po0aNGDt2LNdccw0PPPAAAwYMyD/24YcfZuXKlfTt25f999+fjRs38sYbb3DppZdyzTXXcOWVVxbqPYuDJbO0vRaHQkIybFgM69KgTuuwE0mSJEmSpBjWrl07+vfvn//jM888k+rVqzN8+HCmTJlC3759Q0xXerb/GhTV9ddfzz333EOFChUYNmzYbkvmVatW8ac//Yn+/ftz3333ESnkDYavvfYac+bM4aKLLmLYsGG7PK5169Z79XN55plnWLJkCU8//TR9+vQB4LTTTmPQoEH87W9/45hjjqFy5coA3HzzzXTq1InExMT81w8ZMoQBAwbw9NNPc/bZZ1OzZs09zlIUzmSWtlehKjTrGmynTQo3iyRJkiRJikv169cHIDl5xzW9xowZw6BBg+jYsSOpqakMGTKE//3vfzsc9/rrr3PqqafSuXNnOnbsSN++ffnTn/5Eeno6AG3atGHp0qVMmzaNNm3a5P8Xlmg0yubNm3d5J/HuNGzYkAoVKhTq2JEjR5KRkcHNN99MJBIhPT2d7Ozs3b5m7dq1PPTQQ1x22WUlPsJk7NixtGjRIr9ghmDUxtlnn826deuYPPnXdcS6du1aoGAGqFSpEr179yYrK4u0tLQSzbo972SWfiulJyz6LCiZO58fdhpJkiRJkrRNelb6Lp9LTEikYmLFQh2bEEmgUlKlPTp2S/YWotEoAFWSqxQq9+5s2bKFtWvXApCRkcE333zD8OHDadmyJYceemiBYx966CGeffZZjjzySK6//npyc3N55513uOiii3j88cfz73p+6623uPXWWznyyCMZOHAgSUlJLF26lP/+97/88ssvVKlShQcffJD777+f2rVrc9lllxUqa25uLuvXry/0z61OnTqFPrZz58788ssvVKhQgW7dunH99dfTrl27Qr++sCZPnkxKSgrTpk3j73//O4sWLSI5OZnu3btz22230apVqx1e88ADD1CrVi3+8Ic/MHbs2N2ePzMzM//Xc3sVKlT43dEnK1euZMWKFZx00kk7PJeamgrA7Nmz6dev327Ps3z5cqBoX/+9Zcks/VZKT5j4t6Bkdi6zJEmSJEllRrdXuu3yuSOaHsFTRz+V/+Pe/+nNluwtOz22S8MuDD92eP6Pj339WNZlrtvpse3qtuPVE1/N//GAtwaw7JdlAMw+b3aR8u/M0KFDGTp0aIF9qampPP7441Sq9Gu5PXv2bJ599lmuvvpqrrrqqvz9Z599NmeeeSb3338/Rx99NJFIhI8++oh99tmHf/zjHwXOe8MNN+Rv9+/fn8cee4x69eoVerzDsmXLdru43W99//33v3tMvXr1OP/882nXrh2VK1dmzpw5vPDCCwwePJgRI0bQqVOnQr9fYSxYsICEhASuv/56hgwZQteuXfn+++/55z//yVlnncXbb7+dfyc5wOeff85bb73F888/X6i7pUeNGsWoUaN22H/44Yfz3HPP7fa1K1euBII7s38rb9+KFSt2e47vvvuOjz76iNTUVFq0aPG7eYuLJbP0W826QFJl+GUVrPoOGux6JVJJkiRJkqS9MXjw4Pw7UzMzM/nxxx8ZPnw4559/PiNGjMgvF999910ikQgnn3zyDnfK9u7dm2HDhrFgwQJSUlKoXr06K1asYMaMGXTp0qXYstavX5/hw4f//oFFcNNNNxX4cd++fTnuuOMYOHAg9913H2+88Uaxvt8vv/xCTk4Ol112Gddff33+ezZp0oQ///nPjBgxgptvvhmArVu3ctddd3Hcccdx2GGHFer8/fr1Y/DgwTvsr1279u++NiMjA2CnZXbFihULHLMzGzZs4NprryUpKYn77ruvUHmLiyWz9FtJFaFld5j3SXA3syWzJEmSJEllwtSzpu7yucSEgrNpJ5wxYZfHJkQKLlP2/sD3C33sWwPeyh+XURxatWpFjx498n985JFH0rVrV84880z+/ve/89BDDwEwb948otHobhcCXLNmDSkpKVx66aVMmzaNIUOGUL9+fbp160bPnj057rjjCj27eGcqVqxYIGtJadOmDX369OGDDz5gzZo1hSpoC6tixYqkp6dz6qmnFth/0kkncfvttzNt2rT8fc888wwrV67kxRdfLPT5GzVq9Ltfo7Vr15KTk5P/4+TkZGrVqpV/5/rWrVt3eE1mZiZAgbvbt7d582Yuvvhili5dypNPPsl+++1X6MzFwZJZ2pmUnr+WzN0uDTuNJEmSJEmiaDOQS+rYykmVC33snurYsSPVq1fns88+y9+Xm5tLYmIizz77LJFdjPbMKxZbtWrFe++9x2effcaUKVOYOnUqY8eO5amnnuKVV16hbt26e5QrJydnp/OGd2X7sRNF1bRpUwDWrVtXrCVzw4YNSUtLo169egX2JycnU7t2bTZu3AgEoyv++c9/cuaZZ5KRkcHChQuBoMgHWLVqFQsXLqRJkyY7XaBxd0477TSWLl2a/+NDDjmEl156iQYNGgA7H4mRt29nozTS09O59NJLmTNnDkOHDqVXr15FylMcLJmlnUnpGTwumAy5OfCb74ZKkiRJkiSVpJycHDZv3pz/41atWvHpp5/SrFkzWrZs+buvr1ChAr1796Z3794AjB07lhtvvJFXXnmFq6++eo8y/fzzz8U+k3lX8krd4l68rkOHDqSlpbF8+XL22Wef/P1bt25l7dq1+XOM16xZw9atW3nxxRd3eifzX/7yFwDGjRtX4DyF8fe//z3/zmSAGjVqANCgQQMaNmzIV199tcNrZs2aBcBBBx1UYH9GRgaXXnopX375JQ899NBu73QvSZbM0s40Ohgq1oSMDbD8a2jSMexEkiRJkiQpTkyaNIn09PQCi96dfPLJvPzyyzz66KM88sgjJCQUHOOxZs2a/DuU165du0M5e+CBwTjQ9evX5++rWrUqGzZsKHSu4p7JnJ6eTmJiYv684TxffPEFEyZMoGPHjtSpU4fc3FwANm3axOrVq6ldu/Yel88nn3wyb7/9NiNHjuT222/P3z9q1Chyc3Pp2TO48bBZs2Y89thjO7x+2rRp/Pvf/+aiiy6iffv2O72z+Pd07tx5l8+dcMIJPP/883zyySf06dMHCL7h8PLLL1OrVi2OOOKI/GMzMzO5/PLLmTFjBg888ADHH398kbMUF0tmaWcSk6DVYfD9uGBkhiWzJEmSJEkqAXPmzOHtt98Ggrtpf/zxR0aPHk1ycjLXXXdd/nEHH3wwl19+OU8//TQLFy6kX79+1KtXjxUrVvDll1+ycOFCPvroIwAuvPBCatSoQZcuXWjUqBHr1q3jtddeIykpiRNOOCH/nB06dOD1119n2LBhpKSkEIlECjz/W8U9k3nhwoVcfPHFHHXUUbRq1YpKlSoxd+5c3njjDSpXrsxdd91V4PiPPvqIW2+9lauuuqrA3djfffcdn3zyCQDTp08HYPTo0fkjMc455xyqV68OwOGHH86xxx7LSy+9xLp16+jSpQs//PADo0aNonXr1pxzzjkAVK9enWOPPXaHzOnp6UAw0uToo4/e4fn58+fn/3r+1tFHH03VqlV3+zW55JJL+OCDD7jxxhu54IILaNiwIWPHjmX27Nncf//9VKny62iXm266ic8++4xevXoRjUZ3eN9OnTrRvHnz3b5fcbFklnYlpWdQMs+fCIddG3YaSZIkSZIUg8aMGcOYMWMASEhIoFatWhx22GFccskldOjQocCx1113HQcddBAvvfQSzz33HJmZmdSvX58DDjiAG264If+4wYMH89577/Hqq6+yYcMGatWqxUEHHcTf/va3AndHX3fddaxbt44XXniBTZs2Aey2ZC5u9erVo3v37kydOpV33nmHrVu3Ur9+ffr3789ll11W6IL022+/3eGu43//+9/52yeffHJ+yQzBuIo2bdrw5ptv8sEHH1CrVi1OP/10rrvuOqpVq7ZXP6dPP/2UTz/9dKfPffjhh79bMteuXZuRI0fy97//nX//+9+kp6ez3377MXToUI477rgCx86ZMweAiRMnMnHixB3Odf/995dayRyJFudymNqlnJwcZs2aRWpqKomJzvctTVlZWYwbN47jjz++aIPYV8yBp3tAchX400JI2vPVV6XStsfXvVTOee0rHnndK1557SsexcN1n5GRQVpaGikpKVSqVCnsOCoj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p04tchYpdPkjMyaGm0OSJO0oawt8NTLY7nJBuFlU+vY9Glr3hpyt8PE9YaeRJEkqslIvmVetWgVAgwYNCuyfMGECAMceeyy1a9fO33/qqacC8O233xb5va6//npuuOEG2rZtyxNPPMHpp5/O0KFD6d+/P9FodLevXb58OV26dGH06NGcccYZPPHEE1x00UVMnTqVww8/nEmTnG2rcialV/DoXGZJksqe7Rf826dP2GlU2iKRbXczR+Cb12HJjLATSZIkFUlSab9h3mzl9PR0atasmb9/8uTJRCIR+vQp+Jfqxo0bA7B+/foivc+cOXMYNmwYp556Kq+//nr+/pSUFK655pr88nhXXnrpJVavXs1bb71F//798/f379+fjh078vzzz9OzZ88iZZJC1aI7JCTB+oXBxzBrtwo7kSRJypM3KqPTeS74F68atYfUITDrZfjgNvjD+0H5LEmSVA6U+p3MdevWBWD+/Pn5+9LT0/MXAjz00EMLHJ+VlQVA9erVi/Q+I0eOJBqNct111xXYf/HFF1OlShVefvnl3b5+w4YNADRpUnAeXt6Pq1atWqQ8UugqVoOmXYJt5zJLklR2rJzrgn8K9LkNkirD4s9h7jthp5EkSSq0Ur+TuWPHjrz//vs8/fTTHHbYYQA899xzZGRkULt27R1mNefNcM67o7mwpk+fTkJCAoccckiB/ZUqVSI1NZXp06fv9vV9+/bl//7v/7jiiit46KGH2HfffVmyZAl33HEHdevW5ZprrilSnjxZWVnk5ubu0Wu1Z/K+UZH3GM8SWh5G4uLPyZ0/gZz2Z4YdRyXI617xymtf5VHC9OEkArn7HUNO5XpQxOvX6z6GVK5PwqFXkPjpw0TH30l266MgsULYqcosr33FI697xSuv/fDk5OQU6rhSL5nPPvts3nvvPUaOHMn3339P48aNee+994hEIgwZMoTIbz4S9tlnnwGw//77F+l9li1bRr169ahYseIOzzVt2pTPPvuMnJwcEhN3/nHEXr168eSTT3LnnXfSu3fv/P3t2rVj6tSp7LPPPkXKk+fDDz/83XnQKhnjx48PO0Lo6m6qwOHA1u/G80HSu34EMw543Steee2rvEjI3cox37xEIjA1+0BWjhu3x+fyuo8NiTltODqpJpXWpfHdSzczv8ExYUcq87z2FY+87hWvvPZLXyQSoWnTpr97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QXuevkxLly7V0KFDNXjwYEnSjBkztHnzZq1atUoPP/zwJfuHh4crPDxckjRnzhybnPNyDAZDpfZ3JlOt7lSzq6ENrUcb2gbtaD13brtq1app165d6tatmz766CN17drVbtdy5X7Y3b6HvG+tRxtajza0Hm1oPdqu6mrevLmee+45Pffcc9q0aZMWL16sNWvWqKCgQOvWrdO6desUFBSkmJgYjRo1SiEhIc4uGR7m4qkz+vTpo48//thhAbPJhVNnbN++XZs3b3ZYwGxy4dQZPXv2lFQyqIWAGSZ2DZkdrbCwUJmZmRo7dqx5m7e3tyIiIrRjxw6XOOfu3bstqsOZ3LFmV0MbWo82tA3asWr65JNPdN999+nYsWPq06ePli9frnvvvdfm13H1fthdX//uWrcroQ2tRxtajzYErGNa1yk/P19vv/22li1bpm3btiknJ0evvfaaXnvtNd1www0aM2YMiwXCpkxBc926dfXxxx/rzjvvdGjAbBIXF6ft27fr448/liSHBswm3bp10+rVq9W/f39J0saNGwmYYeawkPnkyZNKSUnRli1bdODAAeXn58vf318tWrRQr1699MADD6h+/fpWXSMvL08Gg0GBgYGltgcGBio7O9slzhkWFiYfHx+LanE0g8Gg3bt3u1XNroY2tB5taBu0o/UKCwu1Z88eZ5dhkR49emjbtm0aOHCg9u7dq2HDhmnGjBl69tlnbXodV++H3e31z/vWerSh9WhD69GG1nPnPhi25+/vr7Fjx2rs2LH66aeftGTJEr311ls6duyYvv32W3377bfmxQLHjh2r7t27O7tkeIC5c+ea/75582alp6c7PFxNT0/X5s2bS9Xk6LA7Pz9f06ZNMz+eNm2aunXrxi91IMlBIfOrr76quLg4nTt3TpJkNBrNz+3YsUNr1qzRM888oxdeeEGTJk1yRElO4+Pj43Y/XLpjza6GNrQebWgbtKPl3L3dWrVqpa1btyo6OlqbNm3StGnTtHfvXi1evFjVq1d3dnkO4a6vf3et25XQhtajDa1HG1qOdkN5WrVqpS5duujbb7/V8ePHJZXkDabFAlNSUtSjRw/Nnz9fHTt2dHK1cFcXzsE8adIk89QZjpwm4uI5mOfOnav4+HhJcljQfOEczNu2bZMkRUZGKioqyimjquF67B4yP/vss3rxxRfNwXLz5s0VEhIi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", "text/plain": [ - "
    " + "
    " ] }, "metadata": {}, @@ -417,7 +397,7 @@ " }\n", " \n", " \n", - " 100.00% [15/15 02:21<00:00]\n", + " 100.00% [15/15 02:27<00:00]\n", "

    \n", " " ], @@ -428,11 +408,18 @@ "metadata": {}, "output_type": "display_data" }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Automatically setting cost coefficient to 0.3494749963283539\n" + ] + }, { "name": "stderr", "output_type": "stream", "text": [ - "/Users/giles/cernbox/mode_muon_tomography/tomopt/optimisation/callbacks/monitors.py:219: UserWarning: Attempting to set identical left == right == 1.0 results in singular transformations; automatically expanding.\n", + "/Users/giles/cernbox/tomopt_poetry/tomopt/optimisation/callbacks/monitors.py:219: UserWarning: Attempting to set identical low and high xlims makes transformation singular; automatically expanding.\n", " ax.set_xlim(1 / self.n_trn_batches, x[-1])\n" ] }, @@ -440,21 +427,21 @@ "name": "stdout", "output_type": "stream", "text": [ - "CostCoefWarmup: Warmed up, average error = 0.6577121615409851\n", + "CostCoefWarmup: Warmed up, average error = 0.3494749963283539\n", "OptConfig: Optimiser warm-up completed\n", "+-------------+-------------+------------------------+\n", "| Param | Median Grad | LR |\n", "+-------------+-------------+------------------------+\n", - "| xy_pos_opt | 1.8608152 | 0.005373988870601767 |\n", - "| z_pos_opt | 611.6209 | 1.6349996911423315e-05 |\n", - "| xy_span_opt | 0.3681875 | 0.02716007563992585 |\n", + "| xy_pos_opt | 0.424169 | 0.02357550859812756 |\n", + "| z_pos_opt | 74.458954 | 0.00013430218236947774 |\n", + "| xy_span_opt | 0.11214771 | 0.08916811490351816 |\n", "+-------------+-------------+------------------------+\n" ] }, { "data": { "text/plain": [ - "
    " + "
    " ] }, "metadata": {}, @@ -468,7 +455,7 @@ " mu_bs=250,\n", " trn_passives=passives,\n", " val_passives=passives,\n", - " cbs=[CostCoefWarmup(n_warmup=5),\n", + " cbs=[CostCoefWarmup(n_warmup=1),\n", " OptConfig(n_warmup=5, rates={'xy_pos_opt':0.01, 'z_pos_opt':0.01, 'xy_span_opt':0.01}),\n", " MuonResampler(),\n", " NoMoreNaNs(),\n", @@ -478,7 +465,7 @@ }, { "cell_type": "code", - "execution_count": 31, + "execution_count": 19, "metadata": {}, "outputs": [ { @@ -488,10 +475,10 @@ " (layers): ModuleList(\n", " (0): PanelDetectorLayer(\n", " (panels): ModuleList(\n", - " (0): located at xy=tensor([0.1927, 0.2786]), z=tensor([0.8993]), and xy span tensor([1.0820, 1.0164]) with budget scale tensor([1.])\n", - " (1): located at xy=tensor([0.2760, 0.1745]), z=tensor([0.8877]), and xy span tensor([0.9254, 0.9005]) with budget scale tensor([1.])\n", - " (2): located at xy=tensor([0.2459, 0.2656]), z=tensor([0.9145]), and xy span tensor([1.0211, 1.0309]) with budget scale tensor([1.])\n", - " (3): located at xy=tensor([0.2694, 0.2133]), z=tensor([0.9378]), and xy span tensor([0.9961, 0.9493]) with budget scale tensor([1.])\n", + " (0): located at xy=tensor([0.1907, 0.2327]), z=tensor([0.9992]), and xy span tensor([1.0216, 1.0415]) with budget scale tensor([1.])\n", + " (1): located at xy=tensor([0.3111, 0.3297]), z=tensor([0.9991]), and xy span tensor([1.0324, 1.0148]) with budget scale tensor([1.])\n", + " (2): located at xy=tensor([0.2678, 0.2853]), z=tensor([0.8348]), and xy span tensor([1.0111, 1.0171]) with budget scale tensor([1.])\n", + " (3): located at xy=tensor([0.2258, 0.1795]), z=tensor([0.8001]), and xy span tensor([1.0123, 1.0068]) with budget scale tensor([1.])\n", " )\n", " )\n", " (1): PassiveLayer located at z=tensor([0.8000])\n", @@ -502,17 +489,17 @@ " (6): PassiveLayer located at z=tensor([0.3000])\n", " (7): PanelDetectorLayer(\n", " (panels): ModuleList(\n", - " (0): located at xy=tensor([0.2820, 0.2498]), z=tensor([0.1998]), and xy span tensor([1.0094, 0.9981]) with budget scale tensor([1.])\n", - " (1): located at xy=tensor([0.2444, 0.2613]), z=tensor([0.1550]), and xy span tensor([1.0011, 0.9974]) with budget scale tensor([1.])\n", - " (2): located at xy=tensor([0.2582, 0.2517]), z=tensor([0.0220]), and xy span tensor([1.0300, 1.0014]) with budget scale tensor([1.])\n", - " (3): located at xy=tensor([0.2039, 0.2630]), z=tensor([0.0007]), and xy span tensor([0.9342, 1.0110]) with budget scale tensor([1.])\n", + " (0): located at xy=tensor([0.2688, 0.2889]), z=tensor([0.1244]), and xy span tensor([1.0068, 1.0052]) with budget scale tensor([1.])\n", + " (1): located at xy=tensor([0.2404, 0.2097]), z=tensor([0.1493]), and xy span tensor([1.0005, 0.9872]) with budget scale tensor([1.])\n", + " (2): located at xy=tensor([0.2485, 0.2452]), z=tensor([0.1300]), and xy span tensor([1.0041, 0.9988]) with budget scale tensor([1.])\n", + " (3): located at xy=tensor([0.2256, 0.2338]), z=tensor([0.1121]), and xy span tensor([1.0046, 1.0107]) with budget scale tensor([1.])\n", " )\n", " )\n", " )\n", ")" ] }, - "execution_count": 31, + "execution_count": 19, "metadata": {}, "output_type": "execute_result" } @@ -524,19 +511,17 @@ }, { "cell_type": "code", - "execution_count": 32, + "execution_count": 20, "metadata": {}, "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAs4AAALfCAYAAABxZkQSAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuNSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/xnp5ZAAAACXBIWXMAAA9hAAAPYQGoP6dpAAEAAElEQVR4nOydd3gc5bn279kmaZt21ZtVLMu927jIFIMhQEINSQ6G0EkOhO8kQAolCZATMIcQWkiABCc2EIyBECBgCITi0BzAYPVi9W5JllayVqttM+/3h5jx7mol7UpbZrXP77p8gbbMvrMzO3PPM/d7PxxjjIEgCIIgCIIgiClRRHsABEEQBEEQBBELkHAmCIIgCIIgiAAg4UwQBEEQBEEQAUDCmSAIgiAIgiACgIQzQRAEQRAEQQQACWeCIAiCIAiCCAASzgRBEARBEAQRACScCYIgCIIgCCIASDgTBEEQBEEQRACQcCYIIi5pbW0Fx3HYvXt3tIcSNPv37wfHcdi/f3+0h0IQBBFXkHAmCEL2nHfeedBqtRgZGZn0NZdeeik0Gg0GBgYiODKCIAginiDhTBCE7Ln00ksxNjaGl19+2e/zNpsNr776Ks466yykpqZGeHQEQRBEvEDCmSAI2XPeeefBYDBgz549fp9/9dVXMTo6iksvvTTCIyP8MTo6Gu0hEARBhAUSzgRByJ6kpCR885vfxLvvvou+vr4Jz+/ZswcGgwHnnXceAKC5uRnf/va3kZKSAq1Wi02bNmHfvn3Tfs7WrVuxdevWCY9feeWVKCwslP4W/dG//e1v8Yc//AHz58+HVqvF1772NXR0dIAxhl//+tfIy8tDUlISzj//fAwODk5Y7ptvvomTTjoJOp0OBoMB3/jGN1BdXR34F+PBhx9+iG9/+9vIz89HQkIC5s2bh5tuugljY2PSa3bt2gWO43Do0KEJ79+xYweUSiW6urqkxz799FOcddZZSE5OhlarxSmnnIKPP/7Y63133XUXOI5DTU0NLrnkEpjNZpx44okAgCNHjuCqq65CXl4eEhISkJ2djfPPPx+tra0zWkeCIIhoQ8KZIIiY4NJLL4Xb7cYLL7zg9fjg4CDeeustXHjhhUhKSkJvby9KS0vx1ltv4Qc/+AHuuece2O12nHfeeZNaPWbKs88+i8ceewz/8z//gx//+Mf497//je985zv4xS9+gX/+85+45ZZb8P3vfx+vvfYafvKTn3i995lnnsE3vvEN6PV63HffffjlL3+JmpoanHjiiTMSli+++CJsNhuuv/56PProozjzzDPx6KOP4vLLL5de861vfQtJSUl49tln/a7L1q1bkZubCwB47733cPLJJ+PYsWO48847sWPHDgwNDeG0007DZ599NuH93/72t2Gz2bBjxw5873vfAwBcdNFFePnll3HVVVfhscceww9/+EOMjIygvb096PUjCIKQBYwgCCIGcLvdLDs7m23evNnr8SeeeIIBYG+99RZjjLEbb7yRAWAffvih9JqRkRFWVFTECgsLGc/zjDHGWlpaGAC2a9cu6XWnnHIKO+WUUyZ89hVXXMEKCgqkv8X3pqens6GhIenx2267jQFgq1atYi6XS3p8+/btTKPRMLvdLo3HZDKx733ve16fc+TIEZacnDzhcV/ef/99BoC9//770mM2m23C6+69917GcRxra2vzGktOTo70PTDG2Jdffun1XQiCwEpKStiZZ57JBEHw+oyioiJ2xhlnSI/deeedDADbvn2712dbLBYGgN1///1TrgtBEEQsQRVngiBiAqVSiYsvvhgHDhzwqsju2bMHmZmZ2LZtGwDgjTfewIYNGyS7AADo9Xp8//vfR2trK2pqakI2pm9/+9tITk6W/t64cSMA4Lvf/S5UKpXX406nU7JB/Otf/8LQ0BC2b9+Oo0ePSv+USiU2btyI999/P+ixJCUlSf8/OjqKo0ePorS0FIwxL2vG5Zdfju7ubq/PePbZZ5GUlISLLroIAFBWVoaGhgZccsklGBgYkMY3OjqKbdu24YMPPoAgCF6ff911100Yj0ajwf79+2GxWIJeH4IgCDlCwpkgiJhBnPwnThLs7OzEhx9+iIsvvhhKpRIA0NbWhkWLFk1475IlS6TnQ0V+fr7X36KInjdvnt/HRQHZ0NAAADjttNOQnp7u9e/tt9/26+Oejvb2dlx55ZVISUmBXq9Heno6TjnlFADA8PCw9LozzjgD2dnZkl1DEAQ899xzOP/882EwGLzGd8UVV0wY386dO+FwOLyWCQBFRUVefyckJOC+++7Dm2++iczMTJx88sn4zW9+gyNHjgS9bgRBEHJBNf1LCIIg5MG6deuwePFiPPfcc7j99tvx3HPPgTEWsjQNjuPAGJvwOM/zfl8vivVAHxeX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Iz09Hddff73X63bu3IklS5YgMTERixcvxmOPPSY9V1RUBABYs2YNOI7D1q1bA3ofAHR2dmL79u1ISUmBTqfD+vXr8emnn2L37t341a9+hfLycum7Eb/b9vZ2nH/++dDr9TAajfjOd76D3t5eaZl33XUXVq9ejZ07d6KoqAiJiYnTfg/++Pzzz3HGGWcgLS0NycnJOOWUU/Dll19Kz1999dU455xzvN7jcrmQkZGBP//5zwDGu2Hee++9KCoqQlJSElatWoW//e1v0uv3798PjuPw5ptvYt26dUhISMBHH32E8vJynHrqqTAYDDAajVi3bh0OHjw4o/WYFYwgCIIgCFkxNjbGampq2NjY2PEHv/iCMSDy/774Iqix//nPf2br169njDH22muvseLiYiYIgvT866+/zpRKJbvjjjtYTU0NKysrYzt27GCMMTYwMMDy8vLY//7v/7Kenh7W09PDGGNs165dLDk5WVrG+vXr2S9+8Quvz123bp30mMViYenp6ey2225jtbW17Msvv2RnnHEGO/XUUycd9/vvv88AMIvFMuG5hx56iAFgvb29jDHG/vrXv7Ls7Gz20ksvsebmZvbSSy+xlJQUtnv3bsYYY5999hkDwN555x3W09PDBgYGAnrfyMgImz9/PjvppJPYhx9+yBoaGtjzzz/PPvnkE2az2diPf/xjtmzZMum7sdlsjOd5tnr1anbiiSeygwcPsv/85z9s3bp17JRTTpHGf+eddzKdTsfOOuss9uWXX7Ly8vKgvwPGGHv33XfZM888w2pra1lNTQ275pprWGZmJjt27BhjjLGPP/6YKZVK1t3dLb3n73//O9PpdGxkZIQxxtjdd9/NFi9ezP75z3+ypqYmtmvXLpaQkMD279/vNYaVK1eyt99+mzU2NrKBgQG2bNky9t3vfpfV1tayw4cPsxdeeIGVlZX5Haff30+IIOFMEARBEDIjloVzaWkpe/jhhxljjLlcLpaWlsbef/996fnNmzezSy+9dNL3FxQUsIceesjrMV/h/NBDD7Hi4mLp7/r6egaA1dbWMsYY+/Wvf82+9rWveS2jo6ODAWD19fV+P3cq0fjmm28yAOzTTz9ljDFWXFzM9uzZ4/WaX//612zz5s2MMcZaWloYAHbo0CGv10z3vj/+8Y/MYDBIQtuXO++8k61atcrrsbfffpsplUrW3t4uPVZdXc0AsM8++0x6n1qtZn19fX6XG8h34A+e55nBYGCvvfaa9NjSpUvZfffdJ/197rnnsiuvvJIxxpjdbmdarZZ98sknXsu55ppr2Pbt273G8Morr3i9xmAwSBcY0xFO4UxWDYIgCIIgQkJ9fT0+++wzbN++HQCgUqnwX//1X9JtegAoKyvDtm3bZvU5F198MVpbW/Gf//wHAPDss89i7dq1WLx4MQCgvLwc77//PvR6vfRPfK6pqSnoz2OMARifNDg6OoqmpiZcc801Xsu/++67p1x2IO8rKyvDmjVrkJKSEvDYamtrMW/ePMybN096bOnSpTCZTKitrZUeKygoQHp6erCr7kVvby++973voaSkBMnJyTAajbBarWhvb5dec+2112LXrl3S6998801cffXVAIDGxkbYbDacccYZXt/B008/PeG7W79+vdffN998M6699lqcfvrp+L//+78ZbcdQQKkaBEEQBEGEhD//+c9wu93IycmRHmOMISEhAb///e+RnJwstUSeDVlZWTjttNOwZ88ebNq0CXv27PHyIFutVpx77rm47777Jrw3mHQMEVGAFhYWwmq1AgCefPJJbNy40et1U7V3DuR9ofhuJkOn0816GVdccQUGBgbwyCOPoKCgAAkJCdi8ebPXZMPLL78ct956Kw4cOIBPPvkERUVFOOmkkwAc/w727duH3Nxcr2UnJCRMOd677roLl1xyCfbt24c333wTd955J/bu3Sv54yMFCWeCIAiCIGaN2+3G008/jQceeABf+9rXvJ674IIL8Nxzz+G6667DypUr8e677+Kqq67yuxyNRiO1HJ+KSy+9FD/72c+wfft2NDc34+KLL5aeW7t2LV566SUUFhZCpZqd1BkbG8Of/vQnnHzyyVLFNicnB83Nzbj00ksnXQcAXuuRmZk57ftWrlyJnTt3YnBw0G/V2d93s2TJEnR0dKCjo0OqOtfU1GBoaAhLly4NfoWn4OOPP8Zjjz0mRQN2dHRMmHCZmpqKCy64ALt27cKBAwe8tvPSpUuRkJCA9vZ2nHLKKUF//sKFC7Fw4ULcdNNN2L59O3bt2kXCmSAIgiCI2OP111+HxWLBNddcg+TkZK/nLrroIvz5z3/GddddhzvvvBPbtm1DcXExLr74Yrjdbrzxxhu45ZZbAIxXdT/44ANcfPHFSEhIQFpamt/P++Y3v4nrr78e119/PU499VSvKvcNN9yAJ598Etu3b8fPfvYzpKSkoLGxEXv37sXOnTunrAz39fXBbrdjZGQEX3zxBX7zm9/g6NGj+Pvf/y695le/+hV++MMfIjk5GWeddRYcDgcOHjwIi8WCm2++GRkZGUhKSsI///lP5OXlITExEcnJydO+b/v27dixYwcuuOAC3HvvvcjOzsahQ4eQk5ODzZs3o7CwEC0tLSgrK0NeXh4MBgNOP/10rFixApdeeikefvhhuN1u/OAHP8App5wywe4QKJWVlTAYDNLfHMdh1apVKCkpwTPPPIP169fj2LFj+OlPf+q3Sn7ttdfinHPOAc/zuOKKK6THDQYDfvKTn+Cmm26CIAg48cQTMTw8jI8//hhGo9HrtZ6MjY3hpz/9Kb71rW+hqKgInZ2d+Pzzz3HRRRfNaP1mRchd0wRBEARBzIpYnBx4zjnnsK9//et+n/v0008ZACnN4aWXXmKrV69mGo2GpaWlsW9+85vSaw8cOMBWrlzJEhISmChTfCcHinznO99hANhf/vKXCc8dPnyYXXjhhcxkMrGkpCS2ePFiduONN3olfHgiTkoDwDiOYwaDga1atYr99Kc/ldI9PHn22WeldTCbzezkk09mf//736Xnn3zySTZv3jymUCi8Ei6me19rayu76KKLmNFoZFqtlq1fv16alGi329lFF13ETCYTA8B27drFGGOsra2NnXfeeUyn0zGDwcC+/e1vsyNHjkjL9DepcLrvwPOfUqlkjDH25ZdfsvXr17PExERWUlLCXnzxRb+TOQVBYAUFBX73B0EQ2MMPP8wWLVrE1Go1S09PZ2eeeSb797//7TUGzwmKDoeDXXzxxWzevHlMo9GwnJwc9v/+3/+bdPJfOCcHcox95XgnCIIgCEIW2O12tLS0eGfuxlDnQCK+sVqtyM3Nxa5du/DNb34z4p/v9/cTIsiqQRAEQRCxQH7+uIidQSe/GZOWRqKZCBhBEHD06FE88MADMJlMOO+886I9pJBDwpkgCIIgYoX8fBKyhGxpb29HUVER8vLysHv37llPzJQjc2+NCIIgCIIgiIhTWFiIue4ApgYoBEEQBEEQBBEAJJwJgiAIgiAIIgBIOBMEQRAEQRBEAJBwJgiCIAiCIIgAIOFMEARBEARBEAFAwpkgCIIgCIIgAoDi6AiCIAgiRmhvp/4n/mhtbUVRUREOHTqE1atXR3s4xByGhDNBEARBxACx0HH7yiuvxFNPPQUAUKvVyM/Px+WXX47bb789rM0w5s2bh56eHqSlpYXtMwCA4zi8/PLLuOCCC8L6OYR8IasGQRAEQcQAR49GVjQD458XbIX7rLPOQk9PDxoaGvDjH/8Yd911F+6///7wDPArlEolsrKy5mSnuulwuVzRHkJcQcKZIAiCIIiQkZCQgKysLBQUFOD666/H6aefjn/84x8AgAcffBArVqyATqfDvHnz8IMf/ABWq1V6b1tbG84991yYzWbodDosW7YMb7zxBgDAYrHg0ksvRXp6OpKSklBSUoJdu3YBGLdqcByHsrIyCIKAvLw8PP74417jOnToEBQKBdra2gAAQ0NDuPbaa5Geng6j0YjTTjsN5eXlM17vgYEBbN++Hbm5udBqtVixYgWee+456fmnn34aqampcDgcXu+74IILcNlll0l/v/rqq1i7di0SExMxf/58/OpXv4Lb7Zae5zgOjz/+OM477zzodDrcc889U343RGgh4UwQBEEQRNhISkqC0+kEACgUCvzud79DdXU1nnrqKbz33nv42c9+Jr32hhtugMPhwAcffIDKykrcd9990Ov1AIBf/vKXqKmpwZtvvona2lo8/vjjfq0ZCoUC27dvx549e7wef/bZZ7FlyxYUFBQAAL797W+jr68Pb775Jr744gusXbsW27Ztw+Dg4IzW0263Y926ddi3bx+qqqrw/e9/H5dddhk+++wz6fN4npcuIgCgr68P+/btw9VXXw0A+PDDD3H55ZfjRz/6EWpqavDHP/4Ru3fvxj333OP1WXfddRcuvPBCVFZW4uqrrw74uyFCACMIgiAIQlaMjY2xmpoaNjY2Jj32xReMAZH/98UXgY/7iiuuYOeffz5jjDFBENi//vUvlpCQwH7yk5/4ff2LL77IUlNTpb9XrFjB7rrrLr+vPffcc9lVV13l97mWlhYGgB06dIgxxtihQ4cYx3Gsra2NMcYYz/MsNzeXPf7444wxxj788ENmNBqZ3W73Wk5xcTH74x//OOn6AWAvv/zypM/78o1vfIP9+Mc/lv6+/vrr2dlnny39/cADD7D58+czQRAYY4xt27aN7dixw2sZzzzzDMvOzvYaw4033uj1mqm+m3jE3+8nVMSfGYggCIIgiLDx+uuvQ6/Xw+Vy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", "text/plain": [ - "
    " + "
    " ] }, - "metadata": { - "needs_background": "light" - }, + "metadata": {}, "output_type": "display_data" } ], @@ -557,7 +542,7 @@ }, { "cell_type": "code", - "execution_count": 33, + "execution_count": 21, "metadata": {}, "outputs": [ { @@ -587,7 +572,7 @@ }, { "cell_type": "code", - "execution_count": 34, + "execution_count": 22, "metadata": {}, "outputs": [], "source": [ @@ -596,14 +581,14 @@ }, { "cell_type": "code", - "execution_count": 35, + "execution_count": 23, "metadata": {}, "outputs": [ { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAfIAAAM7CAYAAACx6RKFAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAgAElEQVR4nOzdeVxU5f4H8M8ZGHbEXFJTUVABdy92zQ0VFRPNSFzR0EDMjYuZqaDmkqZimpmpgGYqmeGCS2W5oOJSmhuG5fJTURQRUzIBgQHm/P7gOlfSgWdgYJjx83695vW6zHznOc/x9n2+c855znMkWZZlEBERkVFSGLoDREREVHos5EREREaMhZyIiMiIsZATEREZMRZyIiIiI8ZCTkREZMTMDd2BsvCuM0E8WK0un06oxe/ekwsKhGMlMzPxPtjZCIf+2b2ecOzfjSXhWHO3R8KxAHCx/2yd4sn0qe+6GLoLVAqK2lcM3YUXXpmOyLOzs/HgwQPwVnQiIiLD0FrI161bhyNHjjz3s5UrV6JZs2aws7PDyy+/DHt7e/Tv3x+nTp0qt44SERHRs7QW8qCgIKxdu7bIe7IsY/DgwQgJCcGlS5egUChQo0YNPH78GLt27ULHjh2xcuXKcu80ERERFdLp1PrKlSuxbds21K9fHzt37kR2djbS0tKQkZGBlStXokqVKpg4cSKOHj2qc0fU5XUNm4gqFHOZqGLpNNlt7dq1sLCwwHfffYeWLVtq3re1tcW4cePQrl07tG/fHosXL4aHh0eJ7d26dQsLFy7EhQsXYG5uDrVaDRcXF4SFhcHJyUn3vSEig2AuExmOToX8ypUraNu2bZEi/rS2bduiS5cu+OWXX4TamzFjBiZPnozWrVtr3ktISEBYWBi+/fZbXbpGRAbEXCYyHJ1Orb/88suoU6dOsTF2dnbIysoSak+lUhVJfABo06aNLl0iokqAuUxkOMUekT9+/BhqtRoKRWG979atG+Li4lBQUACz59zn/Pfff+Pnn39GgwYNhDbu6uqKsLAweHh4wN7eHllZWYiPj4erq2spdoWIDIW5TGQ4xRbyHTt2wN7eHq1bt0bbtm1Rq1YtpKSkYOrUqVi6dGmR2KSkJAQGBiI9PR1jxowR2vicOXNw4MABnDlzBpmZmbCzs4Onpye8vLxKv0dEVOGYy0SGI8laVnOZN28eEhIScO7cOdy4caMwWJIgyzIkSUJiYiKaNWsGAHj33Xfx5ZdfQpZluLm54ddff4WdnV25d9677n/Eg/PzhUN1WoFNEr86Icvis3klcx2mL1hYCIc+6O4oHJvhKL6yW24N3WYqXw+ZrFM8mT6u7GacuLKb4WmtFh9++KHmfz98+FBT1J+8np6J+uRU+6BBg7B8+fIKKeJERERUzBG5LpKTk1GlShVUrVpVH30SxiPy/+IROZkAHpEbJx6RG55eHpri6CheHIiIiEh/+BhTIiIiI8ZCTkREZMRYyImIiIwYCzkREZER08tkt9Ly9/dHXl5ekfee3KfO9ZmJjAvzmcgwhAu5j48PmjRpgiVLluht4x988AFmzpyJlStXPnfJVyIyHsxnIsMQLuRxcXF49OiRXjfeunVr+Pj44PLly1zKkcjIMZ+JDEO4kNvY2MBCh4VHRAUFBem9zeeSxBc3kcrpaEKSyulKhkJ838xU4uv/SAXi7SpyxWPJdFVYPhORhvBkt7CwMMTFxWHlypXPXAcjIiIiwxA+RExNTUXjxo0REhKCKVOmwM3NDdWqVdM84vRpkiRh7969eu0oERERPUu4kD89yS0nJwcJCQlaYyUdTmMTERFR6QkX8kOHDpVnP4iIiKgUhAt5165dy7MfGiqVqlwm1RFRxWM+E5W/Uq3slpqaii1btmDp0qXYtWsXAOD06dM6TYI7ePAgPD094eXlhT179mje56xXIuPDfCYyHJ3uh3r48CGCg4MRExMDtbrw+dPDhw+Hj48PQkJCcPPmTWzbtg0dOnQosa2IiAjs3LkTarUaEydORG5uLvr37w89PB6diCoY85nIcIQLeWZmJrp164bffvsNdevWRbdu3bBp0ybN5/b29khNTUWvXr1w7tw5NG7cuNj2lEolHBwcAACrVq3CyJEjUadOHU6UIzJCzGciwxE+tR4eHo7ffvsNY8aMwbVr1xAdHV3k871792LOnDnIysrCwoULS2yvbt26WLhwIR4/fgw7Ozt88cUX+Oijj3D9+nXd94KIDIr5TGQ4woV8y5YtcHR0xBdffKF18sqsWbPQpEkTHD16tMT2FixYAFdXV80v9jp16mDjxo3w9vYW7RIRVRLMZyLDET61npycjH79+pX4MISWLVsWmeyidcPm5vD19S3yXo0aNTBjxgzRLgEq8cl1sqwWjtVpiVZdTh3qcr1Qh3ZlexvhWLMc8T5YpQuH6rScK5keveQzEZWK8BG5vb09bt26VWLczZs3YW9vX6ZOERERkRjhQt6pUyecPn0aJ06c0Bpz7NgxnD17Fh07dtRL54iIiKh4woU8NDQUANCnTx+sXLkSv//+OwBAlmXcuXMHa9euRf/+/SFJEt5///3y6S0REREVIck63Oi5fv16jB07VuvCL5IkYenSpZg4caLeOlgc75pjhWNN+hp5zZeEYzObiMc+riX+75DrIBwKAPh90STdvkAmT33XxdBdoFJQ1L5i6C688HRa2e2dd95BQkICRo8ejSZNmsDKygpKpRKOjo54++23cfLkyTIV8ZycHKhUqlJ/n4gqB+YyUcXRaWU3AHBzc0NERIReNn716lV8+umncHBwQL9+/TBz5kwoFArMmDEDnp6eetkGEZU/5jKR4QgX8saNG+Odd97BiBEj4OjoqJeNz549GxMnTkRKSgpCQkKwd+9eWFpaIigoiMlPZESYy0SGo9N95LNnz8acOXPQrVs3vPPOOxgwYACsra1LvXG1Wo127doBAE6ePInq1asXdspc5xMFRGRAzGUiwxG+Rp6amoply5ahTZs2OHjwIEaOHInatWsjKCgIx44dK9XGnZycMGPGDKjVaixatAgAEBUVhRo1apSqPSIyDOYykeHoNGv9iT/++AMbNmzApk2bcOfOHUiSBGdnZ4wcOVKnU+9qtRoHDx5Ez549Ne/t2rULvXr1EjrS56z1/zbLWetkYGXNZYCz1o0VZ60bXqkK+ROyLCMuLg6xsbHYvXs3UlNTIUkSunXrhqCgIAwYMABKpVKf/S3Cu9Y48WBd+qHDc9V1KuTlpVpV4dC/W1QXjs2uKX5Tg8pOOBQA8Hs4CzkVxUJunFjIDU+n28/+SZIktGvXDh4eHmjfvj0kSdL8Mh8+fDgcHR2xZs0affWViIiI/qFUM1Hy8/OxZ88eREdH44cffkBubi5kWUaHDh0QGBiITp06YevWrVi+fDnGjh2Lhw8fYsqUKfruOxER0QtPp1PrJ06cQHR0NLZs2YL09HTIsow6derA398fAQEBcHV1LRJ/5swZ/Pvf/0adOnWQkpKi987z1Pp/8dQ6mQCeWjdOPLVueMJH5E2aNMH169chyzKUSiX69++PgIAAeHt7Q6F4/oDftm1bWFlZISMjQ28dJiIiov8RLuTXrl1Dq1atEBAQgOHDhwvdVpKTk4P33nsPrVu3LjH2wYMHmntPici4MZ+JKo5wIT99+jTc3d11atzKygoLFix47mdJSUlF/p42bRrCw8MBFN6TSkTGg/lMZDhluv1Mm8TERLRs2bLYmG7dusHKygovv/wyZFnGpUuX4ObmBkmSsHHjRqHt8Br5f/EaORmYPvKZ18iNE6+RG55Os9bPnj2LyMhIJCcnQ6VS4enfAGq1Gjk5Obh79y5u376N/Pz8Ytvavn07Zs+eDT8/P3Tq1An+/v6Ijo4u3V4QkUExn4kMR7iQnzp1Cl26dClSwCVJKlLMpf8enZZ0NA4A1atXx2effYbw8HAkJibq2m8iqkSYz0SGI3zudNGiRcjNzcWAAQPw/fffY/z48ZAkCd9//z12796NCRMmQKFQoGnTpjh58qRQm+bm5pgxY4bmdBwRGS/mM5FhCF8jr1OnDszMzJCUlASlUonjx4/Dw8MDO3bsgI+PDwDgq6++wqhRo7BgwQKEhoaWa8cBwLvOhPJpWJdBSJd12VU6XHvXgVz3ZeHYe6/psC57ffE+qF4SX8seAG5MmKxTPJk+XiM3TrxGbnjCR+Tp6elwd3fXrJ3eokULAIWLvjwREBAAJycnxMTE6LmbRERE9DzChdzW1hZmTx19Ojg4oHr16rh48WKRuDZt2uDq1av66yERERFpJVzIXV1dcfbsWajV6iLvnT59ukhcZmam/npHRERExRIu5L6+vrh16xaGDRuG69evAyi8dzQ5ORnr168HAPz66684fPgwnJ2dy6WzREREVJRwIQ8ODoa7uzu2bNmCiRMnat6ztrbGqFGjULduXXTs2BH5+fkICgrSuSNqtRppaWlFjviJyPgwl4kqlnAht7a2xrFjx7B48WL07t0bAFC7dm189913aNiwIVJTU2FpaYmpU6diwgSx2eTTp08HAJw/fx6vv/46goOD8cYbbyAhIaEUu0JEhsJcJjIcnVZ2s7KywgcffFDkPU9PT1y7dg1//vknqlevrvVJaM9z+/ZtAMCyZcuwZs0aNGzYEGlpaZg8eTK+/vprXbpGRAbEXCYyHPGqW4KaNWtCoVBg37592L17t07fNTMzQ8OGDQEAtWrV4ik5IiPFXCaqeHor5E+MHDkSvr6+QrGZmZnw9fVFSkoKtm7ditzcXMydOxevvPKKvrtFROWIuUxkODqdWhclujxjbGwsVCoVLl26BCsrK0iSBBcXFwwcOLA8ukVE5YS5TGQ45VLIdWFhYYFWrVpp/vbz8xP/si7Lo5bXo0nL6dShLIu3K91/KByrthBfojXPQbwPlnWyhGPJNJUpl4mo1PR+ap2IiIgqDgs5ERGREWMhJyIiMmIs5EREREZM62S3wMDAUjX4999/l7oz6enpeOmllyDpMtmMiCod5jJRxdFayNevXw9JkoRvJXuaaPJu374dqamp8PT0xOTJk2FpaYmcnBzMnj0bHTt21Hm7RGQYzGUiw9FayGfPnl3uG//mm28QHR2NcePGYfXq1XByckJaWhrGjx/P5CcyIsxlIsMxaCFXKpWwsbGBra0t6tevD6BwWUeejiMyLsxlIsMx6IIw3bt3x7hx4+Di4oIxY8bAw8MDR48eRfv27Q3ZLSLSEXOZyHB0mrWuUqmwceNGXLlyRfPed999h2bNmsHOzg7du3fHuXPnhNt79913ERAQAFmW8corr+DBgwfw9/d/5glrRFS5MZeJDEeSBWezpaeno3Pnzrh8+TKioqIwatQoXLlyBS1btkTeU8uf2tvb49y5c3B2di63Tj/h7TKtXNotqG4nHCvrcOpQkavDMrE6PA42xbOKeLsAMp0LhGOr1he/C6Fp9TTh2M3to4Rj6cWgvuti6C5QKShqXyk5iMqVcLVYvHgxLl26hM6dO+PVV18FAKxatQp5eXkIDAxEZmYmoqKikJGRgY8//rjcOkxlUxmKOBER6Y/wEXmzZs2QkZGB69evQ6lUAgAaNmyIW7du4f/+7/80R+Cvvvoq7t27h+Tk5PLr9X/xiLyQLkfklaWQ84ic/olH5MaJR+SGJ1wtbty4gddee01TxC9evIjk5GQ4OzsXOY3u7OyMe/fu6b+nRERE9AzhQm5nZ4ecnBzN33v27AEA9OjRo0hcamoqbGxs9NQ9IiIiKo5wIXdzc8OxY8fw559/oqCgAJs2bYIkSejXr58m5uTJk/jll1/Qpk0boTYzMzN17zERVTrMZSLDES7ko0ePxqNHj9C8eXM0atQICQkJcHJyQu/evQEA48ePR48ePSDLMsaOHSvUZqdOnbB169bS9ZyIKg3mMpHhCBdyf39/fPbZZ3j8+DGSk5Ph5uaG2NhYmJmZAQAOHz6MvLw8LF++HIMHDxZq083NDRcvXsSIESPw66+/lm4PiMjgmMtEhiM8a/0JlUqFv//+GzVr1izy/rFjx9CiRQtUrVpVuK0RI0Zg48aNSExMRFRUFG7cuIH27dujfv36GDFiRInf56z1Qpy1ToZW1lwGOGvdWHHWuuHpvESrhYXFM0UcADp37qzzxp/8hmjZsiVWrFiBjIwMnDp1CklJSTq3RUSGw1wmMhydC/nJkyexevVqHD16FHfu3IFSqUS9evXg6emJCRMmoFmzZsJt+fr6Fvnb3t4e3bt317VLRGRgzGUiw9Hp1HpoaCg++eQTrc8oVyqVWL58ufBkt7LiqfVCPLVOpoCn1o0TT60bnvAR+aZNm7B48WLUqFEDc+bMwRtvvIF69epBlmXcvHkT27Ztw8cff4zg4GA0btwYPXv2LM9+AwCS+9cWjrV+ID4V4HEt8eJslyLeboFSvN088d8SyGyZKxxbtVqWcKxrtT+FY/9V5ZZwLBER6Y/wYd+KFStgZWWF+Ph4jB8/Ho6OjlAoFDAzM4OzszOmTp2KvXv3QqFQcK11IiKiCiJcyBMTE9G9e3c0bdpUa0z79u3h6emJU6dO6aVzREREVDzhQl6lShUUFJR8fdXS0hLW1tZl6hQRERGJES7kgwcPxqFDh3D+/HmtMUlJSYiLi4OPj0+pOqNSqYqs505Exom5TFRxtBbyO3fuFHmNGzcOzs7O8PT0RHh4OG7evAm1Wg0AePjwIbZu3YquXbuiWbNmWLJkidDGk5KSEBISgsmTJyMhIQH9+vVD3759NQ9kISLjwFwmMhyts9br1asH6Tm3VsmyjOnTp2P69OkwMzODubk5cnP/N2v63r17qFu3LrKySp4d/eGHH2L8+PHIyMjAmDFjsHv3btjb2yMgIAB9+vQp5S4RUUVjLhMZjtZC7ujo+NxCLkL0e/n5+ejYsSNkWcann36KWrVqFXbKXOd1aojIgJjLRIajNctu3LhRqgZTUlLw5ZdfCsXWrVsXkyZNQkFBAWxtbbFs2TLY2dk9dwlYIqq8mMtEhqPzQ1O0+fHHHxEZGYk9e/ZArVYjPz+/xO/k5+cjPj4eDRs2hK2tLdavXw8HBweMHDkSNjY2JX6/+bRlwv0z5QVhHrkbfkGYtg43hWMBYGqzH3WKp8qtrLkMcGU3Y8WV3QyvTOe97t69iy+//BJr165FcnKyZunWJk2aiG3c3Bw9evTQ/B0aGlqW7hCRgTCXiQynVIV83759iIyMxPfff4/8/HzIsoxq1aphyJAh8Pf3R/v27fXdz+fKeVn8aDi7rnisVCtbOLbASuxoAwDybcT7kF+15DMaT9Sr/Zdw7Ms2mcKxDWweCMc2tUoRjiUiIv0RLuT37t3DunXrsGbNGty4cUNz9C1JEmJjY9G3b18olcpy6ygRERE9q8RCHhcXh8jISOzatUtz9N26dWsEBgZi48aNOHv2LN56662K6CsRERH9g9ZC/sknn2DNmjW4du2a5tS5n58fAgMD8a9//QsAEBsbW2EdJSIiomdpLeTTpk2DtbU1hg8fjsGDB6N3797lek+oLMulvm+diCoP5jJRxSq2MmdnZyM+Ph5KpRLm5ubo1asXFArh5dlLlJycjLlz5+L69eu4d+8emjdvjvr16yM0NJT3nxIZEeYykeForcqJiYmYNGkScnNz8dVXX6Fv376oW7cupk6diosXL+pl43PnzsXMmTNx6NAhbNq0Ca+99hoCAgIwY8YMvbRPRBWDuUxkOFoLefPmzbF06VKkpKRgx44dePPNN5Geno4lS5agRYsWaNeuHa5evVqmjWdmZsLJyQkA0KZNG5w9exYtWrTAo0ePytQuEVUs5jKR4ZR40dvMzAw+Pj7w8fHB/fv3ER0djfXr1+P06dMACm8/e/311zF06FD4+vrCwcFBeOP16tXDrFmz0KVLFxw+fBgtWrTA4cOH+TxzIiPDXCYynFIv0Xru3DmsW7cOmzdvRnp6OiRJglKp1BR1Pz+/EttQqVTYunUrrl69iqZNm2LAgAFITExEgwYN8NJLL5X4/UZLPxXur6zUZUEY8ecom1+pBAvCOIov3KLLgjBN7O4Jx3rYXxaOBYB+zr/pFE+VW1lzGeASrcaKS7QaXpnXWlepVNi1axfWr1+Pffv2oaCgAJIkoaCgQF991IqFvBALOZkCFnLjxEJueHp7aApQuPb6hg0bsGHDBvzxxx/6apaIiIi00GshJyIiooqlv5vCiYiIqMKxkBMRERkxFnIiIiIjxkJORERkxFjIiYiIjBgLORERkRErv+eSVjC1Wo05c+bg8uXLsLCwwPz589GgQYNiv3P+/HksWbIE0dHRWmPy8vIwffp0pKSkQKVSYdy4cejRo8dzYwsKCjBz5kwkJSVBkiTMnTsXLi7FL3Lx4MED+Pr6Yt26dWjUqFGxsf3794ednR2AwiUxFy5cqDU2MjISBw8eRF5eHvz8/DBo0KDnxsXGxmLHjh0AgNzcXFy8eBHHjx9HlSpVnonNy8tDaGgoUlJSoFAoMG/ePK19VqlUCAsLw61bt2BnZ4dZs2ahYcOGxe4f0ROmns/MZdIr2UTs3btXnjZtmizLsnzu3Dl57NixxcZHRUXJb7zxhjxo0KBi47Zt2ybPnz9flmVZ/uuvv+SuXbtqjd2/f78cGhoqy7IsnzhxosQ+qFQqefz48XKvXr3kq1evFhubk5Mj+/j4FBvzxIkTJ+QxY8bIBQUFcmZmpvz5558LfW/OnDnyt99+q/Xz/fv3yyEhIbIsy/KxY8fk4OBgrbHR0dHyzJkzZVmW5WvXrsmBgYFCfSCSZdPOZ+Yy6ZvJnFo/c+YMPDw8ABQ+fenChQvFxjs6OmLFihUlttu7d29MnDgRACDLMszMzLTG9uzZE/PmzQMA3Llz57m/hJ8WHh6OoUOH4uWXXy6xH5cuXUJ2djYCAwMxYsQIJCQkaI09duwYXFxcMGHCBIwdOxbdunUrsf3ExERcvXoVQ4YM0Rrj5OSEgoICqNVqZGZmwtxc+wmdq1evokuXLgAAZ2dnXLt2rcQ+ED1hyvnMXCZ9M5lT65mZmZpTVUDhU9vy8/O1/gf6+uuv4/bt2yW2a2trq2k/JCQE7733XrHx5ubmmDZtGvbv34/PP/9ca1xsbCyqVasGDw8PREVFldgPKysrjBo1CoMGDcKNGzcwevRo/PTTT8/dv7/++gt37txBREQEbt++jXHjxuGnn36CJEla24+MjMSECROK7YONjQ1SUlLg7e2Nv/76CxEREVpjmzZtikOHDqFnz544f/480tLSUFBQUOzASfSEKeczc5n0zWSOyO3s7JCVlaX5W61WF/srUxepqakYMWIEfHx80K9fvxLjw8PDsXfvXnz44Yd4/Pjxc2O2b9+On3/+Gf7+/rh48SKmTZuGP//8U2ubTk5OePPNNyFJEpycnFC1alWt8VWrVkXnzp1hYWEBZ2dnWFpaIj09XWvbjx49QlJSEtq3b1/sfq1fvx6dO3fG3r17sWvXLoSGhiI3N/e5sQMGDICdnR2GDRuG/fv3o3nz5kx8EmbK+cxcJn0zmULu7u6OI0eOAAASEhJKnJQi6v79+wgMDMSUKVMwcODAYmN37tyJyMhIAIC1tTUkSYJC8fx/4k2bNuHrr79GdHQ0mjZtivDwcNSsWVNr29u2bcOiRYsAAGlpacjMzNQa37ZtWxw9ehSyLCMtLQ3Z2dmoWrWq1rZPnTqFDh06FLtvAFClShXY29sDABwcHJCfn6/1KXeJiYno0KEDNm/ejN69e6N+/foltk/0hCnnM3OZ9M1kTq17eXnh+PHjGDp0KGRZxoIFC/TSbkREBB49eoRVq1Zh1apVAIA1a9bAysrqmdhevXohLCwMw4cPR35+PqZPn/7cuNIYOHAgwsLC4OfnB0mSsGDBAq1HKJ6enjh16hQGDhwIWZYxa9asYn9BJyUloV69eiX24Z133sH06dMxbNgw5OXlYdKkSbCxef5jXBs0aIDly5cjIiIC9vb2+Pjjj8V2lAimnc/MZdI3Pv2MiIjIiJnMqXUiIqIXEQs5ERGREWMhJyIiMmIs5EREREaMhZyIiMiIsZATEREZMaO+j9y71jjxYLX4XXayrC5Fb/TbB0mXlZMsLYRD7/dqKBz7d2Pty0D+k+SWIRwLAJd9Z+kUT6ZPfVc/i75QxVLUvmLoLrzwjLqQE+lKH8WCAxeR8dPXD8fKMB6wkBMREZUDtVqNOXPm4PLly7CwsMD8+fPRoEEDzeebNm1CbGwsJElCYGAg+vTpA1mW0aVLF80z39u0aYPJkycXu50yF3J/f39s3rwZ+fn5ZW2KqNypUfbLJpxYQmT89DEWAMWPBwcOHIBKpUJMTAwSEhKwaNEirF69GgCQnp6OzZs3Y8eOHcjNzUXfvn3h7e2N5ORkNG/evNgn0unSB2H6WOVVrS6n69JEVKGYy0SFzpw5Aw8PDwCFR9YXLlzQfFatWjXs3LkTSqUS9+/fh6WlJSRJwu+//460tDT4+/tj9OjRuH79eonb0XpE7uzsLNTR+/fvPxMvSZLQw+dv3bqFhQsX4sKFCzA3N4darYaLiwvCwsLg5OQktH0iXRToYSIjr0c9i7lMxkYfYwEAbI+JQUxMjObvIUOGYMiQIQAKn3tvZ2en+czMzAz5+fmah+SYm5vj66+/xooVK+Dv7w8AqFmzJt599114e3vj9OnTmDJlCrZv315sH7SOSffu3dP67N3nuXHjhuZ/F/fQ+6fNmDEDkydPRuvWrTXvJSQkICwsDN9++63wtonIsJjL9KJ6unD/k52dHbKysjR/q9XqZ5509/bbb2Pw4MEYPXo0Tpw4gdatW2uecPfqq6/i3r17kGW52Lqq9dT6+fPnNc+17dq1K3777TfcunXrmVf//v0hSVKR95KTk4X+AVQqVZHEBwpPPxCVFzXkMr/oWcxlMjb6GAtKGg/c3d1x5MgRAIU/bF1c/jdT/vr16wgODoYsy1AqlbCwsIBCocAXX3yBDRs2AAAuXbqEOnXqlHhwrPWIvFGjRjh69CjCw8Mxd+5c9O7dG2vWrIG3t3eRuCfPsK1bt26xG3oeV1dXhIWFwcPDA/b29sjKykJ8fDxcXV11bouIDIe5TPQsLy8vHD4vFgYAACAASURBVD9+HEOHDoUsy1iwYAG++uorODo6okePHnBzc8OQIUMgSRI8PDzQrl07uLq6YsqUKYiPj4eZmRkWLlxY4naEnkd+/vx5+Pv74/fff0dgYCCWLVumOe/v7++Pb775BgUFBTrvpCzLOHDgAM6cOaO5luDu7g4vLy+h0/NcEOa/uCCMsKzUBiUHlcC2zk099MS0lDWXAS4IY6wqw33UpaGPsQCoHOOB0Lyd1q1b48yZM5g5cyaWLl2KAwcOYN26dfD09CzTxiVJgpeXF7y8vMrUDhEZFnOZyHCEJ+AqlUqEh4fjzTffxMiRI+Hl5YXx48cXuZBf4QR/6RcysmubCh32zVz86N1MpUOzOvxfm3PTruSgSqBAD7dKEpHxM6WxQOc7aTp16oTffvsNkyZNwhdffCF82oyIiIj0r1QLwtjY2CAyMhI//PADmjZtCkdHR333i6hccNY6EQEVM2u9opRpbQtvb+9nZrETERFRxeEiVfRCKagkv6CJyLBMaSzg8x+IiIiMGI/I6YVSWa5pEZFhmdJYYNBC7u/vj7y8vCLvPVlTluszExkX5jORYRi0kH/wwQeYOXMmVq5cqVkknqg8mdK9o5UN85mMiSmNBcKF3MfHB02aNMGSJUv0tvHWrVvDx8cHly9f5opQREaO+UxkGMKFPC4uDo8ePdJ7B4KCgvTeJpE25bSKPv0X85mMhSmNBcKF3MbGBhYW4g/nqGzK60EokqTDxP/yOtuYK77uqnm2+L+DpBbvsCJfOJSIiPRIuAqFhYUhLi4OK1eufGZCC5GxKIBc5hcRGT99jAWVZTwQPiJPTU1F48aNERISgilTpsDNzQ3VqlWDQvHsbwFJkrB37169dpSIiIieJVzIn57klpOTg4SEBK2xfJAKVVYFleMHNBEZmCmNBcKF/NChQ+XZDw2VSmXU1+KJ6H+Yz0TlT7iQd+3aVa8bPnjwIObNmwdzc3NMmjQJffr0AVA463Xjxo163RbRE6Y0U7UyYT6TsTGlsaBUC8Kkpqbi6NGjuHXrFho3bgwfHx+cPn0arVu3hlKpFGojIiICO3fuhFqtxsSJE5Gbm4v+/ftDNqGb9IleFMxnIsPRqZA/fPgQwcHBiImJgVpd+Htm+PDh8PHxQUhICG7evIlt27ahQ4cOJbalVCrh4OAAAFi1ahVGjhyJOnXq8Po6lasC8L+v8sB8JmNjSmOB8O1nmZmZ6NatG7755hvUrl0bw4YNK/Jr297eHqmpqejVqxeuXr1aYnt169bFwoUL8fjxY9jZ2eGLL77ARx99hOvXr5duT4jIYJjPRIYjXMjDw8Px22+/YcyYMbh27Rqio6OLfL53717MmTMHWVlZWLhwYYntLViwAK6urppf7HXq1MHGjRvh7e2t4y4QiVPLZX/Rs5jPZGz0MRZUlvFAkgUvYrm6uiI3NxfXrl3TPBBBoVDg7bffLjKZxdXVFbIs48qVK+XT46d41x4vHCvnl8/SYzqt7KYLhQ6nfZ5zL782GR2dhGP/chFf2S23mm7/RV+d8r5O8fpy+dYrZW7Dtf4dPfSE/kl918XQXaBSUNQu/7G+POhjLAAqx3ggfI08OTkZ/fr1K/GpRi1btsSePXvK3DEROhVnHX46SeX05Ca5oEA8WIdQqXZN4VhFvvi/g4UOS+vLZsZxvcmUrosRUemZ0lggfChnb2+PW7dulRh38+ZN2Nvbl6lTREREJEa4kHfq1AmnT5/GiRMntMYcO3YMZ8+eRceOHfXSOSJ9K4BU5hcRGT99jAWVZTwQLuShoaEAgD59+mDlypX4/fffAQCyLOPOnTtYu3Yt+vfvD0mS8P77hrn+SURE9KIRvkb+2muvYc2aNRg7dixCQkIAFK6p/s033+Cbb77R/L106VJ4eHiUqjM5OTlQKBRc0pHKjVquHL+gTR1zmSo7UxoLdJpy/c477yAhIQGjR49GkyZNYGVlBaVSCUdHR7z99ts4efIkJk6cKNze1atXMX78eISFheHnn39Gnz590KdPnwpb152I9IO5TGQ4Oi/R6ubmhoiICL1sfPbs2Zg4cSJSUlIQEhKCvXv3wtLSEkFBQfD09NTLNoieVlmuaZka5jIZG1MaC4QLeePGjfHOO+9gxIgRcHR01MvG1Wo12rVrBwA4efIkqlevXtgp81ItAU9EBsJcJjIc4VPrycnJmD17NpydndGzZ098/fXXyM7OLtPGnZycMGPGDKjVaixatAgAEBUVhRo1apSpXSJtCqAo84uexVwmY6OPsaCyjAfCvUhNTcWyZcvQpk0bHDx4ECNHjkTt2rURFBSEY8eOlWrj8+fPh6enJxRPrUxWq1YtoSVeiajyYC4TGY7wEq1P++OPP7BhwwZs2rQJd+7cgSRJcHZ2xsiRI/V66r0kvWu8Kx5sbCu76UCXld2ymrwkHJtRT/y0aK54swCAP+ZP0u0LenLypvgStdq81iBJDz2hf+ISrcbJWJdo1cdYAFSO8aBUhfwJWZYRFxeH2NhY7N69G6mpqZAkCd26dUNQUBAGDBgg/Hzy0tBlrXXoUpxVeeKxuqyJrssK++Y69NdS/BafDPe64rH1xPuQp+Nifn98zEJORbGQGycWcsOPB2U6wS9JEtq1awcPDw+0b98ekiRBrVbj4MGDGD58OBwdHbFmzRp99ZWozExlJSciKhtTWtmtVFNK8/PzsWfPHkRHR+OHH35Abm4uZFlGhw4dEBgYiE6dOmHr1q1Yvnw5xo4di4cPH2LKlCn67jsREdELT6dCfuLECURHR2PLli1IT0+HLMuoU6cO/P39ERAQAFdXV03shx9+iD59+uDf//43PvvsMxZyqhQK5Moxy5SIDMuUxgLhQt6kSRNcv34dsixDqVSif//+CAgIgLe3d5GZqk9r27YtrKyskJGRobcOExER0f8IF/Jr166hVatWCAgIwPDhw4XuD83JycF7772H1q1blxj74MEDzSISROVFXUnu+zR1zGeq7ExpLBAu5KdPn4a7u7tOjVtZWWHBggXP/SwpqehMv2nTpiE8PBxA4eISRGQ8mM9EhiNcyHUp4omJiWjZsmWxMQEBAbCyssLLL78MWZaRlJSEWbNmQZIkbNy4UXhbRLqoLLNMTQ3zmYyNKY0FOk12O3v2LCIjI5GcnAyVSoWnb0FXq9XIycnB3bt3cfv2beTn5xfb1vbt2zF79mz4+fmhU6dO8Pf3R3R0dOn2gogMivlMZDjChfzUqVPo0qVLkQIuSVKRYi5Jhb9wSjoaB4Dq1avjs88+Q3h4OBITE3XtN1GpmNJM1cqE+UzGxpTGAuE9WbRoEXJzczFgwAB8//33GD9+PCRJwvfff4/du3djwoQJUCgUaNq0KU6ePCnUprm5OWbMmKE5HUdExov5TGQYwkfkP//8M1555RVs2rQJSqUSDg4OWLVqFfLy8uDj44M33ngD7u7uGDVqFJYtW4bQ0FDhTvj6+sLX17dUOyBMl2VXdaHDsqs6rbWem6tDrEo4NLOu+LKrj+uIdyGvWvmsI69vahO6LlZZVUg+E5WRKY0Fwkfk6enpcHd316yd3qJFCwDAmTNnNDEBAQFwcnJCTEyMnrtJREREzyN8RG5rawuzpx484uDggOrVq+PixYtF4tq0aYN9+/bpr4dEelRZnh9MRIZlSmOB8J64urri7NmzUKvVRd47ffp0kbjMzEz99Y6IiIiKJVzIfX19cevWLQwbNgzXr18HAHTr1g3JyclYv349AODXX3/F4cOH4ezsXC6dJSqrAllR5hcRGT99jAWVZTwQ7kVwcDDc3d2xZcsWTJw4UfOetbU1Ro0ahbp166Jjx47Iz89HUFCQzh1Rq9VIS0srcsRPRMaHuUxUsYQLubW1NY4dO4bFixejd+/eAIDatWvju+++Q8OGDZGamgpLS0tMnToVEyZMEGpz+vTpAIDz58/j9ddfR3BwMN544w0kJCSUYleISqaGoswvehZzmYyNPsaCyjIe6LSym5WVFT744IMi73l6euLatWv4888/Ub16da1PQnue27dvAwCWLVuGNWvWoGHDhkhLS8PkyZPx9ddf69I1IjIg5jKR4ehUyItTs2ZNAMC+ffuQk5ODN998U/i7ZmZmaNiwIQCgVq1aPCVH5aZANp17Rysj5jIZC1MaC/R+XmDkyJHCi0FkZmbC19cXKSkp2Lp1K3JzczF37ly88sor+u4WEZUj5jKR4ejtiPxposszxsbGQqVS4dKlS7CysoIkSXBxccHAgQPLo1tEJnXvaGXCXCZjY0pjQbkUcl1YWFigVatWmr/9/PzEvyyV06kRs/L5P1iX3uqynKtUrapwrFmOeB8KrMSXn1VW06FhMkllymUiKjWDF3KiiqSuJPd9EpFhmdJYYDp7QkRE9ALiETm9UEzpuhgRlZ4pjQWmsydEREQvIK1H5IGBgaVq8O+//y51Z9LT0/HSSy9BKq9JbPTCM6V7Rysz5jJVdqY0Fmgt5OvXr4ckScK3kj1NNHm3b9+O1NRUeHp6YvLkybC0tEROTg5mz56Njh076rxdIjIM5jKR4Wgt5LNnzy73jX/zzTeIjo7GuHHjsHr1ajg5OSEtLQ3jx49n8lO5qCxrI5sa5jIZG1MaCwxayJVKJWxsbGBra4v69esDKFzWkafjiIwLc5nIcAw6a7179+4YN24cXFxcMGbMGHh4eODo0aNo3769IbtFJqyyPD/Y1DCXydiY0lig056oVCps3LgRV65c0bz33XffoVmzZrCzs0P37t1x7tw54fbeffddBAQEQJZlvPLKK3jw4AH8/f2fecIaEVVuzGWiZ6nVasyaNQtDhgyBv78/bt68WeTzTZs2YcCAARg4cCD27NkDAMjJycF//vMfDBs2DKNHj0Z6enqJ2xE+Ik9PT0fnzp1x+fJlREVFwcXFBVeuXMHAgQORl5cHADh8+DC6deuGc+fOwdnZWajddu3aoV27dqLdKCLfqY5wrCI7Tzg2t5aNcKxZjvhSquZZ4n1QK82EY++2txWOzWgk/jQqhwYPhWOb1UgTjjUktU4L5ZIuypLLRBWtIsaCAwcOQKVSISYmBgkJCVi0aBFWr14NoLCmbt68GTt27EBubi769u0Lb29vbN68GS4uLvjPf/6DH374AatWrcLMmTOL3Y7wEfnixYtx6dIldO7cGa+++ioAYNWqVcjLy0NgYCAyMzMRFRWFjIwMfPzxx2XYdSIiIuN35swZeHh4AADatGmDCxcuaD6rVq0adu7cCaVSifv378PS0hKSJBX5TpcuXfDLL7+UuB3hI/Ldu3ejbt26OHDgAJRKJQBg586dkCQJ06dPh42NDYKCghAREYH9+/frtLNEFcWUrosRUenpayyIiYlBTEyM5u8hQ4ZgyJAhAAof72tnZ6f5zMzMDPn5+TA3Lyy95ubm+Prrr7FixQr4+/trvmNvbw8AsLW1RUZGRol9EC7kN27cQJ8+fTRF/OLFi0hOTkajRo2KnEZ3dnYu8quDiIjIVD1duP/Jzs4OWVlZmr/VarWmiD/x9ttvY/DgwRg9ejROnDhR5DtZWVmoUqVKiX0Q/kliZ2eHnJz/ParyyYX5Hj16FIlLTU2FjY34NWaiilQARZlfRGT89DEWlDQeuLu748iRIwCAhIQEuLi4aD67fv06goODIcsylEolLCwsoFAo4O7ujvj4eADAkSNH0LZt2xL3RfiI3M3NDceOHcOff/6JatWqYdOmTZAkCf369dPEnDx5Er/88gu6dOki1OY/TzsQmQK1Wo05c+bg8uXLsLCwwPz589GgQQPN5+vWrcP3338PSZIwduxYeHl5GbC3+sFcJnqWl5cXjh8/jqFDh0KWZSxYsABfffUVHB0d0aNHD7i5uWHIkCGQJAkeHh5o164dWrZsiWnTpsHPzw9KpRJLly4tcTvChXz06NEYOXIkmjdvDhsbGyQnJ8PZ2Rm9e/cGAIwfPx4bN26ELMsYO3asUJudOnXCzJkzMWjQINFuEJWJugLWVy5upuqjR4+wceNG7Nu3D9nZ2XjrrbdMopAzl8nYVMRYoFAo8NFHHxV5r1GjRpr/HRwcjODg4CKfW1tb4/PPP9dtO6KB/v7++Oyzz/D48WMkJyfDzc0NsbGxMDMrvE3q8OHDyMvLw/LlyzF48GChNt3c3HDx4kWMGDECv/76q04dJzKUmJgY+Pr6al5PT3QBip+pam1tjVdeeQXZ2dnIzs42mZXPmMtEhqPTym4hISEYO3Ys/v77b9SsWbPIZ1FRUWjRogWqVq0q3J6lpSVmzZqFxMREREVFYd68eWjfvj3q16+PESNG6NI1IiH6uMZd3OQWoOSZqnXq1EHfvn1RUFCAMWPGlLk/lQFzmYyNKc130XmJVgsLi2eKOAB07txZ540/ebJay5YtsWLFCmRkZODUqVNISkrSuS2iyqK4mapHjhzBvXv3EBcXBwAYNWoU3N3d0apVK4P0VV+Yy0SGo3MhP3nyJFavXo2jR4/izp07UCqVqFevHjw9PTFhwgQ0a9ZMuC1fX98if9vb26N79+66dolImLoC7iN3d3fHoUOH0KdPn2dmqjo4OMDKygoWFhaQJAn29vZ49OhRufepvDGXydhUxFhQUXQq5KGhofjkk0+KPKM8NzcXly5dwqVLl7B27VosX75ceLJb//79devtP9zyEl+aVJlVcswTeeLNwjZVPLbA0lo4NqeGeLs5DVTCsVWqi/9DuFX/Uzi2ncMN4VhTV9JM1Z9//hmDBw/W3GrSqVMnQ3e5zMqay0RUesKFfNOmTVi8eDFq1KiBOXPm4I033kC9evUgyzJu3ryJbdu24eOPP0ZwcDAaN26Mnj17lme/iUqloALWVy5ppmpISAhCQkLKvR9EpF1FjAUVRfjcwooVK2BlZYX4+HiMHz8ejo6OUCgUMDMzg7OzM6ZOnYq9e/dCoVBwrXUiIqIKInxEnpiYiO7du6Np06ZaY9q3bw9PT08cP35cL50j0jdTui5GRKVnSmOB8J5UqVIFBQUlP7LT0tIS1tbi14KJiIio9IQL+eDBg3Ho0CGcP39ea0xSUhLi4uLg4+NTqs6oVKoi67kT6VsBpDK/qGTMZars9DEWVJbxQGshv3PnTpHXuHHj4OzsDE9PT4SHh+PmzZtQq9UAgIcPH2Lr1q3o2rUrmjVrhiVLlghtPCkpCSEhIZg8eTISEhLQr18/9O3bV/NAFiIyDsxlIsPReo28Xr16z10+UpZlTJ8+HdOnT4eZmRnMzc2Rm5ur+fzevXuoW7dukQUxtPnwww8xfvx4ZGRkYMyYMdi9ezfs7e0REBCAPn36lHKXiLQzpetilQlzmYyNKY0FWgu5o6NjqdeBFv1efn4+OnbsCFmW8emnn6JWrVqFnTLXeZ0aIjIg5jKR4WjNshs3bpSqwZSUFHz55ZdCsXXr1sWkSZNQUFAAW1tbLFu2DHZ2ds9dApZIHwpM6Fd4ZcJcJmNjSmOB3n4u//jjj4iMjMSePXugVqsxa9asEr8THh6O+Ph4NGzYELa2tli/fj2srKywYMECfXWLiCoAc5nIcMpUyO/evYsvv/wSa9euRXJysmbp1iZNmoht3NwcPXr00PwdGhqq0/ZV1eSSg/4rt6Z4rLL2Y+HYDEu7koP+K89eLRyLauLLrtauIb5Wdy3bDOFYF7s04djW1jeFYw1JXUlmmZqasuYyUUUzpbGgVIV83759iIyMxPfff4/8/HzIsoxq1aphyJAh8Pf3R/v27fXdTyIiInoO4UJ+7949rFu3DmvWrMGNGzc0R9+SJCE2NhZ9+/aFUqkst44S6YMpXRcjotIzpbGgxEIeFxeHyMhI7Nq1S3P03bp1awQGBmLjxo04e/Ys3nrrrYroKxEREf2D1kL+ySefYM2aNbh27Zrm1Lmfnx8CAwPxr3/9CwAQGxtbYR0l0ge1bDrXxYio9ExpLNBayKdNmwZra2sMHz4cgwcPRu/evcv1nlBZlkt93zoRVR7MZaKKVWxlzs7ORnx8PJRKJczNzdGrVy8oFPq7rpCcnIy5c+fi+vXruHfvHpo3b4769esjNDSU959SuSgQf7wA6YC5TMbGlMYCrXuSmJiISZMmITc3F1999RX69u2LunXrYurUqbh48aJeNj537lzMnDkThw4dwqZNm/Daa68hICAAM2bM0Ev7RFQxmMtEhqO1kDdv3hxLly5FSkoKduzYgTfffBPp6elYsmQJWrRogXbt2uHq1atl2nhmZiacnJwAAG3atMHZs2fRokULPHokfl80kS7UslTmFz2LuUzGRh9jQWUZD0q86G1mZgYfHx/4+Pjg/v37iI6Oxvr163H69GkAhbefvf766xg6dCh8fX3h4OAgvPF69eph1qxZ6NKlCw4fPowWLVrg8OHDfJ45kZFhLhMZjk4XCWrUqIFJkybh/PnzOHPmDCZMmICXXnoJ+/fvR1BQEGrVqgUfHx9s3rxZqL2FCxfC1dUVx48fR6tWrTB16lRUrVoVn376aal2hqgkaijK/KJnMZfJ2OhjLKgs44EkP1nZpZRUKhV27dqF9evXY9++fSgoKIAkSSgoKNBXH7VyXi4+SMhm5bNEK64YfonWWuW0RGsrhxThWE/7P4RjAaB7w8s6xevLB+eHlLmNJa1j9NAT+if1XRdDd4FKQVH7iqG7UCr6GAuAyjEelPl+MgsLCwwaNAiDBg3C3bt3sWHDBmzYsEEffSvR9YnvV8h2yHQUVJJrWvQsYy0IZJxMaSzQ63mB2rVrY9q0afjjD92OzoiIiKh0ym+FF6JKqLLMMiUiwzKlsaByXKknIiKiUuEROb1Q1Cb0xCMiKj1TGgtMZ0+IiIheQDwipxdKAUznuhgRlZ4pjQUmU8jVajXmzJmDy5cvw8LCAvPnz0eDBg2K/c758+exZMkSREdHa43Jy8vD9OnTkZKSApVKhXHjxqFHjx7PjS0oKMDMmTORlJQESZIwd+5cuLgUf2/sgwcP4Ovri3Xr1qFRo0bFxvbv3x92doX3rderVw8LFy7UGhsZGYmDBw8iLy8Pfn5+GDRo0HPjYmNjsWPHDgBAbm4uLl68iOPHj6NKlSrPxObl5SE0NBQpKSlQKBSYN2+e1j6rVCqEhYXh1q1bsLOzw6xZs9CwYcNi94/oCVPPZ+Yy6ZPJFPIDBw5ApVIhJiYGCQkJWLRoEVavXq01fs2aNdi9e3eJS0ju3r0bVatWxSeffIKHDx/irbfe0pr4hw4dAgB8++23OHnyJJYtW1ZsH/Ly8jBr1ixYWVmVuH+5ubmQZbnYQeqJkydP4ty5c9i8eTOys7Oxbt06rbG+vr7w9fUFUPjgiwEDBjw38QEgPj4e+fn5+Pbbb3H8+HF89tlnWLFixXNjt2zZAhsbG2zZsgXXr1/HvHnz8OWXX5bY9/JmSjNVTZkp5zNzuXIwpbHAZK6RnzlzBh4eHgAKH9pw4cKFYuMdHR21/of7tN69e2PixIkACp+zbGZmpjW2Z8+emDdvHgDgzp07WpPoifDwcAwdOhQvv/xyif24dOkSsrOzERgYiBEjRiAhIUFr7LFjx+Di4oIJEyZg7Nix6NatW4ntJyYm4urVqxgyRPtqR05OTigoKIBarUZmZmaxz6e/evUqunTpAgBwdnbGtWvXSuwD0ROmnM/MZdI3kzkiz8zM1JyqAgof9pKfn6/1P9DXX38dt2/fLrFdW1tbTfshISF47733io03NzfHtGnTsH//fnz++eda42JjY1GtWjV4eHggKiqqxH5YWVlh1KhRGDRoEG7cuIHRo0fjp59+eu7+/fXXX7hz5w4iIiJw+/ZtjBs3Dj/99BMkSfsv0MjISEyYMKHYPtjY2CAlJQXe3t7466+/EBERoTW2adOmOHToEHr27Inz588jLS0NBQUFxQ6cFcGUZqqaMlPOZ+Zy5WBKY4HJ7ImdnR2ysrI0f6vV6mJ/ZeoiNTUVI0aMgI+PD/r161difHh4OPbu3YsPP/wQjx8/f9327du34+eff4a/vz8uXryIadOm4c8//9TappOTE958801IkgQnJydUrVpVa3zVqlXRuXNnWFhYwNnZGZaWlkhPT9fa9qNHj5CUlIT27dsXu1/r169H586dsXfvXuzatQuhoaHIzc19buyAAQNgZ2eHYcOGYf/+/WjevLnRJz5VHFPOZ+Yy6ZvJFHJ3d3ccOXIEAJCQkFDipBRR9+/fR2BgIKZMmYKBAwcWG7tz505ERkYCAKytrSFJEhSK5/8Tb9q0CV9//TWio6PRtGlThIeHo2bNmlrb3rZtGxYtWgQASEtLQ2Zmptb4tm3b4ujRo5BlGWlpacjOzkbVqlW1tn3q1Cl06NCh2H0DgCpVqsDe3h4A4ODggPz8fK0Px0lMTESHDh2wefNm9O7dG/Xr1y+x/YqghlTmF5U/U85n5nLloI+xoLKMByZzat3LywvHjx/H0KFDIcsyFixYoJd2IyIi8OjRI6xatQqrVq0CUDix5nkTWnr16oWwsDAMHz4c+fn5mD59utBENhEDBw5EWFgY/Pz8IEkSFixYoPUIxdPTE6dOncLAgQMhyzJmzZpV7C/opKQk1KtXr8Q+vPPOO5g+fTqGDRuGvLw8TJo0CTY2Ns+NbdCgAZYvX46IiAjY29vj448/FttRIph2PjOXSd/K/BhTImMScCqgzG189e+v9NATIjIkfYwFQOUYD0zm1DoREdGLyGROrROJMKWZqkRUeqY0FpjOnhAREb2AeEROLxRTWs2JiErPlMYCHpETEREZMR6R0wulstz3SUSGZUpjAY/IiYiIjJhRH5F71x5fPg2X1631ah3atVCKxxaz7vI/3fdqKBz7d2PxdmWXrJKDnvJ/g2bqFK8vpnRdzNSo7+pn9TaqWIraVwzdhVIxpbGgzEfk2dnZyMjI0EdfiIiISEclFvJHjx7hxx9/xP79+5GXl6d5f8uWLWjatCns7OxQtWpVZVDnywAAIABJREFUuLi4CD3Fi8iQ1LKizC8iMn76GAsqy3hQ7Kn16OhoBAcHIzMzEwBQv359/Pjjj0hMTISfnx9kWYaVlRWUSiWuXr2KcePG4dy5c1i9enWFdJ6IiOhFp/XnxC+//IKAgADk5OTA29sbnTt3xu3btzFkyBB89NFHsLe3R0xMDDIzM/H3338jPj4ezs7OiIqKQmxsrM4dUavVZdoRIhFqWSrzi4rHXCZjoI+xoLKMB1qPyBcvXgwA2LdvH7p27QoAWLt2Ld59911IkoSoqCgMGjRIE+/h4YHvvvsO//rXv7By5Ur4+vqWuPFbt25h4cKFuHDhAszNzaFWq+Hi4oKwsDA4OTmVdd+IqIIwl4kMR2shP378ODp37qwp4gAQFBSEhQsX4saNG/Dx8XnmO25ubmjXrh3Onj0rtPEZM2Zg8uTJaN26tea9hIQEhIWF4dtvv9VlP4iEmNK9o5UJc5mMjSmNBVpPrT969Oi5D7Bv1aoVAGh9Lq+DgwNycnKENq5SqYokPgC0adNG6LtEVHkwl4kMR+sRecOGDXHixAlkZWXB1tZW8/7nn3+OcePGPfc62F9//YXjx4+jUaNGQht3dXVFWFgYPDw8YG9vj6ysLMTHx8PV1bUUu0JUsspyTcvUMJfJ2JjSWKC1kPv5+WHu3Lno168fli9fjpYtWwIonLlev379Z+IvXbqEUaNG4eHDh3j//feFNj5nzhwcOHAAZ86cQWZmJuzs7ODp6QkvL69S7g4RGQJzmchwtBbyadOmIT4+HocPH0abNm1w7tw5zWn1fxo3bhyioqIgyzJeffVVfPDBB0IblyQJXl5eFZPsuqzWpssKbIpy+lWXny8ea2MtHGqeI75vygzxfcu5aSMca0im9Cu8MqnQXCbSA1MaC7ReI7eyssL+/fuxaNEitGjRAi4u2pdPtLKygo2NDSZMmIC4uDhYWlqWS2eJiIioqGKXpTEzM8PUqVNx/vx5rZPbgMLTaunp6VixYgXs7e313kkifTGV+0aJqGxeiPvIdeHg4KCPZoiIiEhHRv30MyJdVZZf0ERkWKY0FlSOFd+JiIioVHhETi8UU1rNiYhKz5TGAhZyIiKicqBWqzFnzhxcvnwZFhYWmD9/Pho0aKD5fP369fjhhx8AAF27dkVwcDBkWUaXLl3QsGFDAIUrJE6ePLnY7Ri0kPv7+xd5xjkAyLIMSZK4PjOVC1O6LlbZMJ/JmFTEWHDgwAGoVCrExMQgISEBixYt0jzm+9atW9i9eze2bt0KhUIBPz8/9OzZE9bW1mjevDkiIiKEtyNcyH18fNCkSRMsWbJE973R4oMPPsDMmTOxcuVKmJmZ6a1dIqp4zGd6EcXExCAmJkbz95AhQzBkyBAAwJkzZ+Dh4QGg8Mj6woULmrjatWtj7dq1mlzJz8+HpaUlfv/9d6SlpcHf3x9WVlYICwuDs7NzsX0QLuRxcXF49OiR+N4JaN26NXx8fHD58mWuCEUVgkfk5Yf5TMZEX2PB04X7n54sV/yEmZkZ8vPzYW5uDqVSiWrVqkGWZSxevBjNmjWDk5MT7t+/j3fffRfe3t44ffo0pkyZgu3btxfbB+FCbmNjAwsLC9FwYUFBQXpv84WTLfa0OQBQPn72YTfa8aYG0g3zmeh/7OzskJWVpflbrVbD3Px/ZTc3NxfTp0+Hra0tZs+eDQBo0aKF5ij91Vdfxb179zSXqLQRHqnDwsIQFxeHlStXPnMdjMhYmMpKTkRUNhWxspu7uzuOHDkCAEhISCiy1Lksyxg/fjxcXV3x0UcfaYr3F198gQ0bNgAofBhZnTp1ii3igA5H5KmpqWjcuDFCQkIwZcoUuLm5oVq1alAonv0tIEkS9u7dK9o0ERGRyfHy8sLx48cxdOhQyLKMBQsW4KuvvoKjoyPUajV+/fVXqFQqHD16FADw/vvv491338WUKVMQHx8PMzMzLFy4sMTtCBfypye55eTkICEhQWtsSb8eiAyFR9REBFTMWKBQKPDRRx8Vea9Ro0aa/52YmPjc70VFRem0HeFCfujQIZ0aJiIiovInXMi7du1anv3QUKlU5TKpjggAZB6RVyjmM1VWpjQWlGpacmpqKrZs2YKlS5di165dAIDTp0/rNAnu4MGD8PT0hJeXF/bs2aN5n7NeiYwP85nIcHRa2e3hw4cIDg5GTEwM1OrC25iGDx8OHx8fhISE4ObNm9i2bRs6dOhQYlsRERHYuXMn1Go1Jk6ciNzcXPTv3x+yLJduT4gEmNL6ypUJ85mMjSmNBcKFPDMzE926dft/9u47LIqrbQP4PXQpii0WFAUF7BrMq1hQsJcYIhYsHyoEY30xxoZgsBeMNTaUWCKxgAlRYnxjLIgliR2DieVTURSxRDQKSll2vj/83DdEl52FXXZ3vH/XxXW57Nkzz6rPOXNmzpyD3377DU5OTvDx8cG2bdtU7zs4OCAzMxPdunXD+fPnUb9+/WLrs7S0VO1jvnbtWgwfPlzSNHsiMj7MZyLDkXxpPSoqCr/99htGjRqF69evIzY2tsj7+/fvx6xZs5CTkyNpuryTkxMWLlyI58+fw97eHqtXr8acOXNw48YN7b8FkUR8jlw/mM9kasriOfKyIrkjj4+Ph7OzM1avXq128kpkZCTc3NxUz8QVZ8GCBfDw8FCdsdeoUQNbt25Fz549pYZEREaC+UxkOJIvraenp6NPnz4aN0No2rRpkckuag9sYQF/f/8iv6tSpQoiIiKkhgQUSl9uVBSllxUELeYAKqXfA9QmBhRKLypUrSy9rEJ6vJbZ0mNQWhrHmakmcpqpakx0ks9EZUhObYHkHsvBwQG3b9/WWO7WrVtwcHAoVVBEREQkjeSOvF27djhz5gx+/fVXtWWOHz+Oc+fOoW3btjoJjkjX5HJPjIhK5628Rx4WFgYA6NWrF9asWYPff/8dwMuF3+/evYsvv/wSffv2hSAI+PTTT/UTLRERERUh+R5569atERMTg9GjRyM0NBTAyzXVt2/fju3bt6teL126VLWROpGxkdN9MSIqOTm1BVqt7DZixAikpKRg5MiRcHNzg42NDSwtLeHs7Iz/+Z//wcmTJzFhwoQSB5Obm4v8/PwSf56IjANzmajsaLWyGwA0aNAA0dHROjn4tWvXsGzZMlSoUAF9+vTBjBkzYGZmhoiICPj6+urkGER/Zyz3tOSGuUymRk5tgeSOvH79+hgxYgSGDRsGZ2dnnRx85syZmDBhAjIyMhAaGor9+/fD2toaISEhTH4iE8JcJjIcrZ4jnzlzJmbNmgUfHx+MGDEC/fr1Q7ly5Up8cKVSiVatWgEATp48icqVXz4PbWGh9YUCIkm49Ld+MJfJ1MipLZB8jzwzMxPLly9HixYtcPjwYQwfPhzVq1dHSEgIjh8/XqKDu7i4ICIiAkqlEosWLQLwckP1KlWqlKg+IjIM5jKR4UjuyCtXrozQ0FCcOXMGFy9exOTJk+Hg4IBNmzahY8eOcHNzw7x585Ceni754PPmzYOvry/MzP4bRrVq1SSt1U5UEkoIpf6h1zGXydTooi0wlvZAEEuxz6Aoijh06BASEhKQmJiIzMxMCIIAHx8fhISEoF+/frC0tNRlvEX0rBWqn4q12FddK/raCUrDsrl/l9NS+vyGp3WkXxbNLy+5KADgj/kTtfuAjrT8T+mXDD3bc74OIqF/Ut5zN3QIVAJm1a8aOoQS0UVbABhHe6DV42f/JAgCWrVqBW9vb3h5eUEQBCiVShw+fBhDhw6Fs7MzYmJidBUrUamJolDqHyIyfbpoC4ylPSjRTBSFQoF9+/YhNjYWP/zwA/Ly8iCKItq0aYPg4GC0a9cOu3btwsqVKzF69Gg8efIEU6ZM0XXsREREbz2tOvJff/0VsbGxiI+PR1ZWFkRRRI0aNRAYGIigoCB4eHioyn722Wfo1asX/vWvf2HFihXsyMkoyOnZUSIqOTm1BZI7cjc3N9y4cQOiKMLS0hJ9+/ZFUFAQevbsWWSCy9+1bNkSNjY2ePbsmc4CJiIiov+S3JFfv34dzZo1Q1BQEIYOHSrpsZLc3Fx88sknaN68ucayjx49Uj17SqQvcnp21Jgxn8nYyaktkNyRnzlzBp6enlpVbmNjgwULFrzxvbS0tCKvp02bhqioKAAvn0klItPBfCYyHMkduTadeGpqKpo2bVpsmaCgINjY2OCdd96BKIpIS0tDZGQkBEHA1q1bJR+LSBvGMstUbpjPZGrk1BZoNdnt3LlzWL9+PdLT05Gfn4+/P4KuVCqRm5uLe/fu4c6dO1AoFMXW9e2332LmzJkYPHgw2rVrh8DAQMTGxpbsWxCRQTGfiQxHckd++vRpdOjQoUgHLghCkc5c+P8FTzSNxoGXK8WtWLECUVFRSE1N1TZuohKR01m4MWE+k6mRU1sgeUGYRYsWIS8vD/369cPevXsxduxYCIKAvXv3IjExEePGjYOZmRkaNmyIkydPSqrTwsICERERqstxRGS6mM9EhiF5RP7zzz+jZs2a2LZtGywtLVGhQgWsXbsWBQUF8PPzw/vvvw9PT0989NFHWL58OcLCwiQH4e/vD39/f+2jLyyUXlap1L5+SfVKb7BEhfSlX5U5z0sSjUY51V2ll60pvd6Cilr8WxiQnJ4dNVYlzmeiMiSntkDyiDwrKwuenp6qtdObNGkCADh79qyqTFBQEFxcXBAXF6fjMImIiOhNJHfkdnZ2MP/b5hwVKlRA5cqVcenSpSLlWrRogWvXrukuQiIdEsXS/xCR6dNFW2As7YHkjtzDwwPnzp2D8m+XqD08PHDmzJki5bKzs3UXHRERERVLckfu7++P27dvY8iQIbhx4wYAwMfHB+np6diyZQsA4NSpUzhy5AhcXaXfhyUqS2Wx25FSqURkZCQCAgIQGBiIW7duFXk/OTkZAwcOxIABAzBr1ixODCMyADntfia5Ix8/fjw8PT0RHx+PCRMmqH5Xrlw5fPTRR3ByckLbtm2hUCgQEhKidSBKpRL3798vMuInMkUHDx5Efn4+4uLiMGnSJCxatEj1XnZ2Nj7//HNER0dj165dcHJywuPHjw0Yre4xl4nKluSOvFy5cjh+/DgWL16MHj16AACqV6+O77//HnXr1kVmZiasra0xdepUjBs3TlKd4eHhAIALFy6ge/fuGD9+PN5//32kpKSU4KsQaaaLM/C4uDjVzGx/f//XJneePXsW3t7eAF7OGbl48aLqvfPnz8Pd3R1RUVEYMmQIqlSpgkqVKpXp34E+MJfJ1MhpRK7Vym42NjaYPHlykd/5+vri+vXrePjwISpXrqx2J7Q3uXPnDgBg+fLliImJQd26dXH//n1MmjQJX3/9tTahEZWZgIAABAQEqH0/Ozsb9vb2qtfm5uZQKBSwsLDA48ePcfLkSezevRu2trYYOnQoWrRoYfLrkTOXiQxHeq+rQdWqVWFmZoaffvoJiYmJWn3W3NwcdevWBQBUq1aNl+RIb0Qd/Ghib2+PnJwc1WulUgkLi5fnzI6OjmjatCmqVq0KOzs7vPfee689+WHKmMtkKnTRFhjL7BaddeSvDB8+XPJiENnZ2fD390dGRgZ27dqFvLw8zJ49GzVrarESCZGR8fT0xNGjRwEAKSkpcHd3V73XuHFjXL16FVlZWVAoFLhw4QLq169vqFB1hrlMZDhaXVqXSuos3ISEBOTn5+Py5cuwsbGBIAhwd3dH//799REWUZnc0+ratStOnDiBQYMGQRRFLFiwAJs3b4azszM6d+6MSZMmqSaE9ujRo0hHb6qYy2RqjOX+ti7opSPXhpWVFZo1a6Z6PXjwYANGQ1R6ZmZmmDNnTpHf1atXT/Xn3r17o3fv3mUdlt4xl4kMw+AdeZnRYhKeVmU1bNf6d4KVpfSyL/RztmiRq8Xa8Fr87zCvmFeCaAzAWG5qEZFhyagt0Pk9ciIiIio7b8+InAjyui9GRCUnp7aAI3IiIiITpnZEHhwcXKIK//rrrxIHk5WVhYoVK0IQ5HOmRMaFy5qXDeYyGTs5tQVqO/ItW7ZAEIQSbeggNXm//fZbZGZmwtfXF5MmTYK1tTVyc3Mxc+ZMtG3bVuvjEpFhMJeJDEdtRz5z5ky9H3z79u2IjY3FmDFjsG7dOri4uOD+/fsYO3Ysk5/0Qk73xYwJc5lMjZzaAoN25JaWlrC1tYWdnR1q164N4OWyjrwcR2RamMtEhmPQWeudOnXCmDFj4O7ujlGjRsHb2xvHjh2Dl5eXIcMiOZPRWbgxYS6TyZFRW6DVrPX8/Hxs3boVV69eVf3u+++/R6NGjWBvb49OnTrh/Pnzkuv7+OOPERQUBFEUUbNmTTx69AiBgYGv7bBGRMaNuUxkOJJH5FlZWWjfvj2uXLmCDRs2wN3dHVevXkX//v1RUFAAADhy5Ah8fHxw/vx5uLq6Sqq3VatWaNWqVcmiJ9KSnGaqGhvmMpkSObUFkjvyxYsX4/Lly/D29sZ7770HAFi7di0KCgoQHByML774Atu3b8fHH3+M+fPnY+PGjXoL+pUXzZ0ll7V8WiC5bO471tLrzSmUXNb8ufTlXJXW0r/bw+Y2kss+c5W+raRDXemPEjZ9J1NyWSIi0h3Jl9YTExPh5OSEgwcPonnz5gCA3bt3QxAEhIeHw9bWFiEhIfD09MSBAwf0FjBRqchlA2IiKh0ZbUguuSO/efMmWrduDUvLlxt/XLp0Cenp6XB1dS1yGd3V1RUPHjzQfaRERET0GsmX1u3t7ZGbm6t6vW/fPgBA586di5TLzMyEra2tjsIj0i05PTtKRCUnp7ZA8oi8QYMGOH78OB4+fIjCwkJs27YNgiCgT58+qjInT57EL7/8ghYtWkiqMzs7W/uIicjoMJeJDEdyRz5y5Eg8ffoUjRs3Rr169ZCSkgIXFxf06NEDADB27Fh07twZoihi9OjRkups164ddu3aVbLIiUpCJvfEjA1zmUzO23iPPDAwECtWrMDz58+Rnp6OBg0aICEhAebm5gBePnpWUFCAlStXYuDAgZLqbNCgAS5duoRhw4bh1KlTJfsGRGRwzGUiw9FqZbfQ0FCMHj0af/31F6pWrVrkvQ0bNqBJkyZwdHSUXJ+1tTUiIyORmpqKDRs2YO7cufDy8kLt2rUxbNgwbUIjkkRO98WMCXOZTI2c2gKtl2i1srJ6rRMHgPbt22t98Fc7qzVt2hSrVq3Cs2fPcPr0aaSlpWldFxEZDnOZyHC07shPnjyJdevW4dixY7h79y4sLS1Rq1Yt+Pr6Yty4cWjUqJHkuvz9/Yu8dnBwQKdOnbQNiUg6I7mnJTfMZTI5MmoLtFprPSwsDG3btsXWrVuRlpaGvLw8ZGdn4/Lly1i3bh3effddREdHS66vb9++WgdMRMaHuUxkOJJH5Nu2bcPixYtRpUoVzJo1C++//z5q1aoFURRx69YtfPPNN5g/fz7Gjx+P+vXro0uXLvqMGwCQ2dZKclnzPOllFVo8Bm97T/pFjUIr6Uu/5lWUHkNeDenLz9pXeS65bOOq9ySXbed4TXJZw5LPfTEiKg35tAWSR+SrVq2CjY0NkpOTMXbsWDg7O8PMzAzm5uZwdXXF1KlTsX//fpiZmWH+/Pn6jJmIiIj+n+ThZGpqKjp16oSGDRuqLePl5QVfX1+cOHFCJ8ER6ZyM7osRUSmUQVugVCoxa9YsXLlyBVZWVpg3bx7q1Kmjen/Lli344YcfAAAdO3bE+PHjkZubiylTpuDRo0ews7NDVFQUKlWqVOxxJI/Iy5cvj8JCzTt9WVtbo1y5clKrJSIikqWDBw8iPz8fcXFxmDRpEhYtWqR67/bt20hMTMTOnTsRHx+P48eP4/Lly9ixYwfc3d2xfft2fPjhh1i7dq3G40juyAcOHIikpCRcuHBBbZm0tDQcOnQIfn5+UqstIj8/v8h67kQ6J5OVnIwdc5mMXhms7Hb27Fl4e3sDAFq0aIGLFy+q3qtevTq+/PJLmJubQxAEKBQKWFtbF/lMhw4d8Msvv2j8Kmo78rt37xb5GTNmDFxdXeHr64uoqCjcunULSuXLva2fPHmCXbt2oWPHjmjUqBGWLFmi8cDAy44/NDQUkyZNQkpKCvr06YPevXurNmQhItPAXKa3VVxcHPz9/VU/cXFxqveys7Nhb2+vem1ubg6FQgEAsLS0RKVKlSCKIqKiotCoUSO4uLggOzsbDg4OAAA7Ozs8e/ZMYwxq75HXqlULgvD6rD5RFBEeHo7w8HCYm5vDwsICeXl5qvcfPHgAJycn5OTkaDz4Z599hrFjx+LZs2cYNWoUEhMT4eDggKCgIPTq1Uvj54m0JqPVnIwJc5lMjo7agoCAAAQEBLzxPXt7+yJ9oVKphIXFf7vdvLw8hIeHw87ODjNnznztMzk5OShfvrzGGNR25M7Ozm/syKWQ+jmFQoG2bdtCFEUsW7YM1apVexmUhdbr1BCRATGXiV7n6emJpKQk9OrVCykpKXB3d1e9J4oixo4di9atW+Pjjz8u8pnk5GQ0a9YMR48eRcuWLTUeR22W3bx5s0SBZ2RkYOPGjZLKOjk5YeLEiSgsLISdnR2WL18Oe3v7Ny4BS6QLIu9x6wVzmUxNWbQFXbt2xYkTJzBo0CCIoogFCxZg8+bNcHZ2hlKpxKlTp5Cfn49jx44BAD799FMMHjwY06ZNw+DBg2FpaYmlS5dqPI4girr5Ov/5z3+wfv167Nu3D0qlUnUfoDgKhQLJycmoW7cu7OzssGXLFlSoUAHDhw+Hra3mVVk85iyXHJ95nuYyqri0WhBGetlC6WvSGMWCMM2q3ZVc1rvi/0ouCwBjPZK0Kq8rdTYtLnUdt4Kn6iASeSltLgOA8p675kJkdMyqXzV0CCWii7YAMI72oFTXve7du4eNGzfiyy+/RHp6umrjBDc3N2kHt7BA586dVa/DwsJKEw6RZhyR6wVzmUyOjNqCEnXkP/30E9avX4+9e/dCoVBAFEVUqlQJAQEBCAwMhJeXl67jfKP8ikrJZUUtVpW3ddI8S/CVZ9aaJyK8UmgnPV6hvPRR9juVpMdbq/xfkss2cZA+Im9pc1NyWSIi0h3JHfmDBw+wadMmxMTE4ObNm6rRtyAISEhIQO/evWFpaam3QIl0grPWiQiQVVugsSM/dOgQ1q9fjz179qhG382bN0dwcDC2bt2Kc+fO4cMPPyyLWImIiOgf1Hbkn3/+OWJiYnD9+nXVpfPBgwcjODgY7777LgAgISGhzAIl0gVBRvfFiKjk5NQWqO3Ip02bhnLlymHo0KEYOHAgevTooddnQkVRLPFz60RkPJjLRGWr2J75xYsXSE5OhqWlJSwsLNCtWzeYmWkxa0yD9PR0zJ49Gzdu3MCDBw/QuHFj1K5dG2FhYXz+lPRDRmfhxoS5TCZHRm2B2l45NTUVEydORF5eHjZv3ozevXvDyckJU6dOxaVLl3Ry8NmzZ2PGjBlISkrCtm3b0Lp1awQFBSEiIkIn9RNR2WAuExmO2o68cePGWLp0KTIyMvDdd9/hgw8+QFZWFpYsWYImTZqgVatWuHbtWqkOnp2dDRcXFwAvd4Y5d+4cmjRpgqdPn5aqXiK1RKH0P/Qa5jKZHF20BUbSHmi86W1ubg4/Pz/4+fnhzz//RGxsLLZs2YIzZ84AePn4Wffu3TFo0CD4+/ujQoUKkg9eq1YtREZGokOHDjhy5AiaNGmCI0eOcD9zIhPDXCYyHK1ueFepUgUTJ07EhQsXcPbsWYwbNw4VK1bEgQMHEBISgmrVqsHPzw87duyQVN/ChQvh4eGBEydOoFmzZpg6dSocHR2xbNmyEn0ZIo24H7leMJfJ5JTBfuRlpdRrrefn52PPnj3YsmULfvrpJxQWFkIQBBQWFuoqRrVcVmleTP4Vfa3slnfN8Cu7VdHTym7vOd6SXLaL/e+SywJA6zppWpXXlbrRS0pdx83Rk3UQCf0T11o3Taa61rou2gLAONqDUj9PZmVlhQEDBmDAgAG4d+8evvrqK3z11Ve6iE2jtH9PKpPjkIwYyRk0vc5UOwQyUTJqC3T3LBmA6tWrY9q0afjjjz90WS0RERGpob8VXoiMkYzOwomoFGTUFuh0RE5ERERliyNyersYyXOfRGRgMmoLOCInIiIyYRyR01tFTjseEVHJyakt4IiciIjIhMlmRK5UKjFr1ixcuXIFVlZWmDdvHurUqVPsZy5cuIAlS5YgNjZWbZmCggKEh4cjIyMD+fn5GDNmDDp37vzGsoWFhZgxYwbS0tIgCAJmz54Nd/fiF7l49OgR/P39sWnTJtSrV6/Ysn379oW9vT2Al0tiLly4UG3Z9evX4/DhwygoKMDgwYMxYMCAN5ZLSEjAd999BwDIy8vDpUuXcOLECZQv//pCNwUFBQgLC0NGRgbMzMwwd+5ctTHn5+dj+vTpuH37Nuzt7REZGYm6desW+/3KhIzOwuVM7vnMXDYCMmoLZNORHzx4EPn5+YiLi0NKSgoWLVqEdevWqS0fExODxMREjWtBJyYmwtHREZ9//jmePHmCDz/8UG3iJyUlAQB27tyJkydPYvny5cXGUFBQgMjISNjY2Gj8fnl5eRBFsdhG6pWTJ0/i/Pnz2LFjB168eIFNmzapLevv7w9/f38AL3ew6tev3xsTHwCSk5OhUCiwc+dOnDhxAitWrMCqVaveWDY+Ph62traIj4/HjRs3MHfuXGzcuFFj7ESAvPOZuUy6JptL62fPnoW3tzeAl7svXbx4sdjyzs7Oav/j/l2PHj0wYcIEAIAoijA3N1dbtkuXLpg7dy4A4O7du2qT6JWoqCgMGjQI77zzjsY4Ll++jBcvXiA4OBjDhg1DSkqK2rLHjx+Hu7s7xo0bh9GjR8PHx0dj/ampqbh27RoCAgLUlnFxcUFhYSGUSiWys7NhYaH+PPDatWvo0KEDAMDV1RXXr1/XGAPRK3LOZ+Yy6Zo+M06xAAAgAElEQVRsRuTZ2dmqS1XAy13bFAqF2v+g3bt3x507dzTWa2dnp6o/NDQUn3zySbHlLSwsMG3aNBw4cABffPGF2nIJCQmoVKkSvL29sWHDBo1x2NjY4KOPPsKAAQNw8+ZNjBw5Ej/++OMbv9/jx49x9+5dREdH486dOxgzZgx+/PFHCIL6xy3Wr1+PcePGFRuDra0tMjIy0LNnTzx+/BjR0dFqyzZs2BBJSUno0qULLly4gPv376OwsLDYhpPoFTnnM3OZdE02I3J7e3vk5OSoXiuVymLPMrWRmZmJYcOGwc/PD3369NFYPioqCvv378dnn32G58+fv7HMt99+i59//hmBgYG4dOkSpk2bhocPH6qt08XFBR988AEEQYCLiwscHR3Vlnd0dET79u1hZWUFV1dXWFtbIysrS23dT58+RVpaGry8vIr9Xlu2bEH79u2xf/9+7NmzB2FhYcjLy3tj2X79+sHe3h5DhgzBgQMH0LhxY6NIfEEs/Q/pn5zzmblsHHTRFhhLeyCbjtzT0xNHjx4FAKSkpGiclCLVn3/+ieDgYEyZMgX9+/cvtuzu3buxfv16AEC5cuUgCALMzN78V7xt2zZ8/fXXiI2NRcOGDREVFYWqVauqrfubb77BokWLAAD3799Hdna22vItW7bEsWPHIIoi7t+/jxcvXsDR0VFt3adPn0abNm2K/W4AUL58eTg4OAAAKlSoAIVCoXaXu9TUVLRp0wY7duxAjx49ULt2bY31E70i53xmLpOuyebSeteuXXHixAkMGjQIoihiwYIFOqk3OjoaT58+xdq1a7F27VoALyfWvGlCS7du3TB9+nQMHToUCoUC4eHhkiaySdG/f39Mnz4dgwcPhiAIWLBggdoRiq+vL06fPo3+/ftDFEVERkYWewadlpaGWrVqaYxhxIgRCA8Px5AhQ1BQUICJEyfC1tb2jWXr1KmDlStXIjo6Gg4ODpg/f760L6pvMlrNSc7knM/MZSMho7ag1PuRE5kS15XLSl3HjQmf6iASIjIkXbQFgHG0B7IZkRNJwtNWIgJk1RbI5h45ERHR24gjcnq7yOgsnIhKQUZtAUfkREREJowjcnqrGMtzn0RkWHJqCzgiJyIiMmEmPSLvWStUeuFiljR8jVKpfTC6rtfGWnpZQfr52J8da0ou+1c96X9nhW5vXvFKnesBEVqV1xkZnYXLjfKebhZ9obJlVv2qoUMoGRm1BRyRExERmTCTHpETaU1GZ+FEVAoyaguKHZGLooiYmBh07twZDRs2RNeuXbF+/XoUFBSo/cynn36qdoN6IiIi0i21I3JRFNGvXz/s2bMHr1ZxvXLlCg4fPozVq1cjISEBbm5ur33u4cOHuHnzptaBKJVKtRsSEOmKnGaqGivmMpkCObUFarNtzZo12L17N+rXr4/du3fjjz/+wJYtW1CvXj38/vvvaNu2LVJSUkp18Nu3b2Ps2LHo0KEDunTpAh8fH3z88cdIS0srVb1EVLaYy0SGo3ZEvmXLFtjZ2eHAgQNwdnYGADRo0ACDBg1CUFAQduzYgW7duuHo0aNo0KBBiQ4eERGBSZMmoXnz5qrfpaSkYPr06di5c2eJ6iQqlox2PDImzGUyOTJqC9SOyC9fvgwvLy9VJ/6KlZUVtm3bhuHDh+PPP/9Ejx49cPfu3RIdPD8/v0jiA0CLFi1KVBcRGQ5zmchwir1HbmVlpfaDGzduxKNHj7B371707t0bx44dg729vVYH9/DwwPTp0+Ht7Q0HBwfk5OQgOTkZHh4eWtVDJJmM7osZE+YymRwZtQVqO/L69evj1KlTePr0KcqXL//a+2ZmZti5cyc6dOiAc+fO4YMPPsC+ffu0OvisWbNw8OBBnD17FtnZ2bC3t4evry+6du2q/TchIoNhLhMZjtqOfMCAAYiMjMSAAQMQExPz2iV2ALC1tcW+ffvg5eWF5ORktG/fXqtRuSAI6Nq1K5OdyoycZqoaE+YymRo5tQVqO/LJkydjz549OHDgAFxcXNC6dWv8/PPPr5V75513kJSUhC5duuDcuXMQtFkKtSwpFNLLilr8C2vzfbV5JCc3T3pZLZZztcyR/t2s/pL+3XJv2UouS0REuqO2Z7GxscGRI0cwbdo0VK9eHdbW6juLOnXq4NSpUxg4cKBegiTSGVEHP0Rk+nTRFhhJe1DsENHOzg4LFy5ERkYG9u7dW2xFFStWxM6dO5GamoolS5boNEgiIiJ6M8lrrdvZ2Ukq16hRIzRq1KjEARHpk5zuixFRycmpLeA6ikRERCaMu5/R20VGZ+FEVAoyags4IiciIjJhBh2RBwYGvrYlqiiKEASB6zOTfsjoLNzYMJ/JpMioLTBoRz558mTMmDEDa9asgbm5uSFDIaJSYj4TGYbkjtzPzw9ubm46fbSsefPm8PPzw5UrV7giFJUJOc1UNTbMZzIlcmoLJHfkhw4dwtOnT3UeQEhIiM7rJCLDYD4TlT3JHbmtrW2xu6EZhDZLqVpocRdBm+VctVl2VanUT72KQslFLXOklxXNpccgmsvo9JaIyIRIbqmnT5+OQ4cOYc2aNa9NaCEiIiLDkDxMzczMRP369REaGoopU6agQYMGqFSpEszeMHIUBAH79+/XaaBEOsELB0QEyKotkNyR/32SW25uLlJSUtSWNdod0IiIiGRGckeelJSkzziIyoScZqoSUcnJqS2Q3JF37NhRn3Go5OfnG9+kOiIqEeYzkf6VaInWzMxMxMfHY+nSpdizZw8A4MyZM1pNgjt8+DB8fX3RtWtX7Nu3T/V7Pr5CeiWT/YeNDfOZTI6M9iPXamW3J0+eYPz48YiLi4Py/x+lGjp0KPz8/BAaGopbt27hm2++QZs2bTTWFR0djd27d0OpVGLChAnIy8tD3759IWrzSBkRGQXmM5HhSO7Is7Oz4ePjg99++w1OTk7w8fHBtm3bVO87ODggMzMT3bp1w/nz51G/fv1i67O0tESFChUAAGvXrsXw4cNRo0YNTpQj/WK/ohfMZzI5MmoLJF9aj4qKwm+//YZRo0bh+vXriI2NLfL+/v37MWvWLOTk5GDhwoUa63NycsLChQvx/Plz2NvbY/Xq1ZgzZw5u3Lih/bcgIoNiPhMZjuSOPD4+Hs7Ozli9erXaySuRkZFwc3PDsWPHNNa3YMECeHh4qM7Ya9Soga1bt6Jnz55SQyLSmiCW/odex3wmU6OLtkBTe6BUKhEZGYmAgAAEBgbi1q1br5XJyspC9+7dkZeXB+DljoHe3t4IDAxEYGAgli5dqvG7SL60np6ejj59+mjc1ahp06ZFJruoPbCFBfz9/Yv8rkqVKoiIiJAaknZLnhZKX5oU2lwO1Neyq9rUW8FBclFBi2otc6SXVVrxEurbTCf5TCQzBw8eRH5+PuLi4pCSkoJFixZh3bp1qvePHTuGpUuX4uHDh6rfpaeno3HjxoiOjpZ8HMk9i4ODA27fvq2x3K1bt+DgIL1jISpTMpmlSkSlVAaz1s+ePQtvb28AQIsWLXDx4sUi75uZmWHz5s1wdHRU/e7333/H/fv3ERgYiJEjR0q6PSW5I2/Xrh3OnDmDX3/9VW2Z48eP49y5c2jbtq3UaolkR8rlNKVSiZCQEOzYscMAERKRrsTFxcHf31/1ExcXp3ovOzsb9vb2qtfm5uZQ/G1Trnbt2qFixYpF6qtatSo+/vhjxMbGYtSoUZgyZYrGGCRfWg8LC8PevXvRq1cvzJ07Fz4+PgBeXs+/e/cu9u3bh+nTp0MQBHz66adSqyUqU2Vxj1vT5TQAWLFihV62BSYiaXTVFgQEBCAgIOCN79nb2yMn57/3KJVKJSw07MTZpEkT1S3s9957Dw8ePIAoisU+ASJ5RN66dWvExMTg+fPnCA0NRbNmzSAIArZv347atWtj1KhRePz4MZYuXaq6lEAkR8WdgQOaL6f9+OOPEASBeUIkc56enjh69CgAICUlBe7u7ho/s3r1anz11VcAgMuXL0t6jFOrBWFGjBgBLy8vrFixAkeOHMHt27dRWFiIGjVqoEOHDggNDUXLli21qbKI3NxcmJmZcUlH0h8dnIUXdwYOqL+cZmFhgatXr2Lv3r344osvsGbNmtIHY6SYy2T0yuDqXNeuXXHixAkMGjQIoihiwYIF2Lx5M5ydndG5c+c3fubjjz/GlClTkJycDHNzc0mPc2vVkQNAgwYNtJpNV5xr165h2bJlqFChAvr06YMZM2bAzMwMERER8PX11ckxiMpacZfTdu/ejfv372P48OHIyMiApaUlnJyc0KFDB0OFqxPMZaLXmZmZYc6cOUV+V69evdfKHT58WPXnChUqYMOGDVodR3JHXr9+fYwYMQLDhg2Ds7OzVgdRZ+bMmZgwYQIyMjIQGhqK/fv3w9raGiEhIUx+0o8yOAv39PREUlISevXq9drltKlTp6r+vGrVKlSpUsXkO3GAuUwmSEZPoGj1HPnMmTMxa9Ys+Pj4YMSIEejXrx/KlStX4oMrlUq0atUKAHDy5ElUrlz5ZVAaJgMQGbOSXE4zdcxlIsORnGWZmZnYtm0btm7disOHDyMpKQnjxo3DgAEDMGLECLRv317rg7u4uCAiIgJz587FokWLAAAbNmxAlSpVtK6LSIqymLUu9XLav//9b/0HU0aYy2Rq5LRKo+RZ65UrV0ZoaCjOnDmDixcvYvLkyXBwcMCmTZvQsWNHuLm5Yd68eUhPT5d88Hnz5sHX1xdmf1vxrFq1apJu7hOR8WAuExmOIJZin0FRFHHo0CEkJCQgMTERmZmZEAQBPj4+CAkJQb9+/WBpaanLeIvo6aLF8+qFWqxNqsW+6lotu6oNbZaU1eKf8IWni+SyT+tK/7fLKy+5KADg96iJ2n1ARxqHLS91Hb8vMkzscqe8p/nRHDI+ZtWvGjqEEtFFWwAYR3tQql5IEAS0atUK3t7e8PLygiAIUCqVOHz4MIYOHQpnZ2fExMToKlYiIiL6hxLNRFEoFNi3bx9iY2Pxww8/IC8vD6Iook2bNggODka7du2wa9curFy5EqNHj8aTJ08kLTNHpHcyui9GRKUgo7ZAq478119/RWxsLOLj45GVlQVRFFGjRg0EBgYiKCgIHh4eqrKfffYZevXqhX/9619YsWIFO3IiIiI9kNyRu7m54caNGxBFEZaWlujbty+CgoLQs2fPIhNc/q5ly5awsbHBs2fPdBYwUWnIaaYqEZWcnNoCyR359evX0axZMwQFBWHo0KGSHivJzc3FJ598gubNm2ss++jRI9Wzp0Rk2pjPRGVHckd+5swZeHp6alW5jY0NFixY8Mb30tLSiryeNm0aoqKiALx8JpVIL2R0Fm5MmM9kcmTUFkjuyLXpxFNTU9G0adNiywQFBcHGxgbvvPMORFFEWloaIiMjIQgCtm7dKvlYRGR4zGciw9Fqstu5c+ewfv16pKenIz8/H39/BF2pVCI3Nxf37t3DnTt3imye/ibffvstZs6cicGDB6Ndu3YIDAxEbGxsyb4FkURyui9mTJjPZGrk1BZI7shPnz6NDh06FOnABUEo0pm/2jNV02gceLlS3IoVKxAVFYXU1FRt4yYiI8J8JjIcyQvCLFq0CHl5eejXrx/27t2LsWPHQhAE7N27F4mJiRg3bhzMzMzQsGFDnDx5UlKdFhYWiIiIUF2OI9I7UQc/9EbMZzIpumgLjOS/ueQR+c8//4yaNWti27ZtsLS0RIUKFbB27VoUFBTAz88P77//Pjw9PfHRRx9h+fLlCAsLkxyEv78//P39tY8+X4ulVPVFKX3pV1GLpV8Lsx6XJBqN8irWl1w220l6vfmVtVhSlmStxPksU91ran5qx5Qd0GL1a9IPySPyrKwseHp6qtZOb9KkCQDg7NmzqjJBQUFwcXFBXFycjsMk0hGZnIETUSnJaEQuuSO3s7ODubm56nWFChVQuXJlXLp0qUi5Fi1a4Nq1a7qLkIiIiNSSfGndw8MD586dg1KpVK3k5uHhgTNnzhQpl52drdsIiXRIMHQARGQU5NQWSB6R+/v74/bt2xgyZAhu3LgBAPDx8UF6ejq2bNkCADh16hSOHDkCV1dXvQRLRERERUnuyMePHw9PT0/Ex8djwoQJqt+VK1cOH330EZycnNC2bVsoFAqEhIRoHYhSqcT9+/eh1GLyGJHWZHJPzJgxl8kkvI33yMuVK4fjx49j8eLF6NGjBwCgevXq+P7771G3bl1kZmbC2toaU6dOxbhx4yTVGR4eDgC4cOECunfvjvHjx+P9999HSkpKCb4KERkKc5nIcLRa2c3GxgaTJ08u8jtfX19cv34dDx8+ROXKldXuhPYmd+7cAQAsX74cMTExqFu3Lu7fv49Jkybh66+/1iY0IknktJqTMWEuk6mRU1sgvdfVoGrVqjAzM8NPP/2ExMRErT5rbm6OunXrAgCqVavGS3JEJoq5TFT2dNaRvzJ8+HDJi0FkZ2fD398fGRkZ2LVrF/Ly8jB79mzUrFlT12ERvSSTe2LGhrlMJkdG98i1urQuldTlGRMSEpCfn4/Lly/DxsYGgiDA3d0d/fv310dYRKQnzGUiw9FLR64NKysrNGvWTPV68ODBWnzYUnpZQecXH17Ky5Mego2N9Hq1iVfU4vKlFmeQSi3+es0c86UXNiQjOYOWo1LlMlFZk1FboKfejYiIiMqCwUfkRGVJTjNViajk5NQWcERORERkwjgip7eLjM7CiagUZNQWqO3Ig4ODS1ThX3/9VeJgsrKyULFiRQiCnJazJ3r7MJeJyo7ajnzLli0QBEHyo2R/JzV5v/32W2RmZsLX1xeTJk2CtbU1cnNzMXPmTLRt21br4xJpIqf7YsaEuUymRk5tgdqOfObMmXo/+Pbt2xEbG4sxY8Zg3bp1cHFxwf379zF27FgmP5EJYS4TGY5BO3JLS0vY2trCzs4OtWvXBvByWUdejiO9kdFZuDFhLpPJkVFbYNDJbp06dcKYMWPg7u6OUaNGwdvbG8eOHYOXl5chwyIiLTGXiQxHq8fP8vPzsXXrVly9elX1u++//x6NGjWCvb09OnXqhPPnz0uu7+OPP0ZQUBBEUUTNmjXx6NEjBAYGvrbDGpGuCGLpf+h1zGUyNbpoC4ylPZA8Is/KykL79u1x5coVbNiwAe7u7rh69Sr69++PgoICAMCRI0fg4+OD8+fPw9XVVVK9rVq1QqtWrUoU/DNP6RsyWD1VSC77oor0tUmt/iqUXNa8QPpSqoXNa0ku+9hderzPXKXH4FD3seSyzd+5K7ksyVNpcpmISk7yiHzx4sW4fPky2rdvj/feew8AsHbtWhQUFCA4OBjZ2dnYsGEDnj17hvnz5+stYKJSkcluR0RUSjLa/UxyR56YmAgnJyccPHgQzZs3BwDs3r0bgiAgPDwctra2CAkJgaenJw4cOKC3gImIiOi/JHfkN2/eROvWrWFp+fIy7qVLl5Ceng5XV9cil9FdXV3x4MED3UdKpAsyOQMnolJ6G0fk9vb2yM3NVb3et28fAKBz585FymVmZsLW1lZH4REREVFxJHfkDRo0wPHjx/Hw4UMUFhZi27ZtEAQBffr0UZU5efIkfvnlF7Ro0UJSndnZ2dpHTFQKcpmlamyYy2Rq5DRrXXJHPnLkSDx9+hSNGzdGvXr1kJKSAhcXF/To0QMAMHbsWHTu3BmiKGL06NGS6mzXrh127dpVssiJyGgwl4kMR3JHHhgYiBUrVuD58+dIT09HgwYNkJCQAHNzcwAvHz0rKCjAypUrMXDgQEl1NmjQAJcuXcKwYcNw6tSpkn0DIm3I5J6YsWEuk8mR0T1yrVZ2Cw0NxejRo/HXX3+hatWqRd7bsGEDmjRpAkdHR8n1WVtbIzIyEqmpqdiwYQPmzp0LLy8v1K5dG8OGDdMmNCIyIOYykeFovUSrlZXVa504ALRv317rg7/aWa1p06ZYtWoVnj17htOnTyMtLU3ruoikEEqwmx9pxlwmUyOntkDrjvzkyZNYt24djh07hrt378LS0hK1atWCr68vxo0bh0aNGkmuy9/fv8hrBwcHdOrUSduQiMjAmMtEhqNVRx4WFobPP/+8yB7leXl5uHz5Mi5fvowvv/wSK1eulDzZrW/fvtpF+w8PW5hLLmuWL71svqP0MzXbTOnLoyqlF4VCiyf48qpJX362XNXnkstqs+xql0p/SC5rUPI5CTcqpc1lojIno7ZA8mS3bdu2YfHixahcuTJWr16NmzdvQqFQoKCgANeuXcOiRYtgY2OD8ePH4+DBg/qMmYiIiP6f5BH5qlWrYGNjg+TkZDRs2LDIe66urpg6dSo6dOiADh06YP78+ejSpYvOgyUqLWN57pOIDEtObYHkEXlqaio6der0Wif+d15eXvD19cXp06d1EhwREREVT/KIvHz58igs1Lxlp7W1NcqVK1eqoIj0RkZn4URUCjJqCySPyAcOHIikpCRcuHBBbZm0tDQcOnQIfn5+JQomPz+/yHruRGSamMtEZUdtR3737t0iP2PGjIGrqyt8fX0RFRWFW7duQalUAgCePHmCXbt2oWPHjmjUqBGWLFki6eBpaWkIDQ3FpEmTkJKSgj59+qB3796qDVmIdE0uaysbG+YymRo5rbWu9tJ6rVq1IAjCa78XRRHh4eEIDw+Hubk5LCwskJeXp3r/wYMHcHJyQk5OjsaDf/bZZxg7diyePXuGUaNGITExEQ4ODggKCkKvXr1K+JWIqKwxl4kMR21H7uzs/MaOXAqpn1MoFGjbti1EUcSyZctQrVq1l0FZaL1ODZE0RnIGLTfMZTI5MmoL1GbZzZs3S1RhRkYGNm7cKKmsk5MTJk6ciMLCQtjZ2WH58uWwt7d/4xKwRGS8mMtEhqOz0+X//Oc/WL9+Pfbt2welUonIyEiNn4mKikJycjLq1q0LOzs7bNmyBTY2NliwYIGuwiIqwljuackNc5lMjZzaglJ15Pfu3cPGjRvx5ZdfIj09XbV0q5ubm7SDW1igc+fOqtdhYWFaHT+vklJ6YS3+1SrVfSK57GOripLLKstJj1ew0vyo3yuVqmRLLuvimCW5rGf5dMllvWxuSi5L8lPaXCaikitRR/7TTz9h/fr12Lt3LxQKBURRRKVKlRAQEIDAwEB4eXnpOk4i3ZDRWTgRlYKM2gLJHfmDBw+wadMmxMTE4ObNm6rRtyAISEhIQO/evWFpqcWuIERERFRqGjvyQ4cOYf369dizZ49q9N28eXMEBwdj69atOHfuHD788MOyiJWo1OR0X4yISk5ObYHajvzzzz9HTEwMrl+/rrp0PnjwYAQHB+Pdd98FACQkJJRZoERERPQ6tR35tGnTUK5cOQwdOhQDBw5Ejx499PpMqCiKJX5unUgyUUan4UaKuUwmQUZtQbE984sXL5CcnAxLS0tYWFigW7duMDOTvDy7Runp6Zg9ezZu3LiBBw8eoHHjxqhduzbCwsL4/CmRCWEuExmO2l45NTUVEydORF5eHjZv3ozevXvDyckJU6dOxaVLl3Ry8NmzZ2PGjBlISkrCtm3b0Lp1awQFBSEiIkIn9RP9k1zWVjY2zGUyNWWx1vqrNVVePdF169at18pkZWWhe/fuqqXOc3Nz8e9//xtDhgzByJEjkZWl+ZFhtR1548aNsXTpUmRkZOC7777DBx98gKysLCxZsgRNmjRBq1atcO3aNY0HKE52djZcXFwAAC1atMC5c+fQpEkTPH36tFT1ElHZYi4Tve7gwYPIz89HXFwcJk2ahEWLFhV5/9ixYwgODsbDhw9Vv9uxYwfc3d2xfft2fPjhh1i7dq3G42i8Tm5ubg4/Pz989913yMjIwNKlS9GkSROcOXMGGRkZAIDu3btj8+bN+Ouvv7T6krVq1UJkZCQOHjyIGTNmoEmTJjhy5Aj3Myf9EXXwQ69hLpPJ0UVboKE9OHv2LLy9vQG8PMG9ePFikffNzMywefNmODo6vvEzHTp0wC+//KLxq2h1w7tKlSqYOHEiLly4gLNnz2LcuHGoWLEiDhw4gJCQEFSrVg1+fn7YsWOHpPoWLlwIDw8PnDhxAs2aNcPUqVPh6OiIZcuWaRMWERkYc5neVnFxcfD391f9xMXFqd7Lzs6Gvb296rW5uTkUCoXqdbt27VCxYtHVQbOzs+Hg4AAAsLOzw7NnzzTGUOJp6O+++y5WrVqFpUuXYs+ePdiyZQt++uknfP/999i7dy8GDx6ssQ4rKysMHTq0yO9atGhR0pCINBK0WNWXpGMuk6nRVVsQEBCAgICAN75nb29fZEtvpVKp8emvv38mJycH5cuX1xhDqZ8ns7KywoABAzBgwADcu3cPX331Fb766qvSVivJzXGTyuQ4RKR/ZtWvGjoEvTjAk8e3lqenJ5KSktCrVy+kpKTA3d1d0meSk5PRrFkzHD16FC1bttT4Gd09SwagevXqmDZtGv744w9dVkukO7xHTkRAmdwj79q1K6ysrDBo0CAsXLgQ06dPx+bNm3Ho0CG1nxk8eDD+93//F4MHD0ZcXBzGjx+v8asIoiijp+KJNGg7cGmp6/g5nleCiEydLtoCwDjaA/0t1UZkhPgcOBEB8moLdHppnYiIiMoWR+T0duGdJCICZNUWcERORERkwjgip7eKnO6LEVHJyaktkE1HrlQqMWvWLFy5cgVWVlaYN28e6tSpU+xnLly4gCVLliA2NlZtmYKCAoSHhyMjIwP5+fkYM2YMOnfu/MayhYWFmDFjBtLS0iAIAmbPnq3xucFHjx7B398fmzZtQr169Yot27dvX9UqQbVq1cLChQvVll2/fj0OHz6MgoICDB48GAMGDHhjuYSEBHz33XcAgLy8PFy6dAknTpx44yIEBQUFCAsLQ0ZGBszMzDB37ly1Mefn52P69Om4ffs27O3tERkZibp16xb7/YhekXs+M5dJl2TTkf99cfqUlBQsWrQI69atU1s+JlQV+x4AACAASURBVCYGiYmJGteCTkxMhKOjIz7//HM8efIEH374odrET0pKAgDs3LkTJ0+exPLly4uNoaCgAJGRkbCxsdH4/fLy8iCKYrGN1CsnT57E+fPnsWPHDrx48QKbNm1SW/bVsoLAyx2s+vXrp3YloeTkZCgUCuzcuRMnTpzAihUrsGrVqjeWjY+Ph62tLeLj43Hjxg3MnTsXGzdu1Bi73snoLFzO5JzPzGUjIaO2QDb3yDUtTv9Pzs7Oav/j/l2PHj0wYcIEAIAoijA3N1dbtkuXLpg7dy4A4O7duxqX1ouKisKgQYPwzjvvaIzj8uXLePHiBYKDgzFs2DCkpKSoLXv8+HG4u7tj3LhxGD16NHx8fDTWn5qaimvXrqldahAAXFxcUFhYCKVSiezs7GKXGrx27Ro6dOgAAHB1dcX169c1xkD0ipzzmblMuiabEbm6xenV/Qft3r077ty5o7FeOzs7Vf2hoaH45JNPii1vYWGBadOm4cCBA/jiiy/UlktISEClSpXg7e2NDRs2aIzDxsYGH330EQYMGICbN29i5MiR+PHHH9/4/R4/foy7d+8iOjoad+7cwZgxY/Djjz9CEAS19a9fvx7jxo0rNgZbW1tkZGSgZ8+eePz4MaKjo9WWbdiwIZKSktClSxdcuHAB9+/fR2FhYbENZ1mQ030xOZNzPjOXjYOc2gLZjMhLsji9VJmZmRg2bBj8/PzQp08fjeWjoqKwf/9+fPbZZ3j+/Pkby3z77bf4+eefERgYiEuXLmHatGlF9qT9JxcXF3zwwQcQBAEuLi5wdHRUW97R0RHt27eHlZUVXF1dYW1tXezm9E+fPkVaWhq8vLyK/V5btmxB+/btsX//fuzZswdhYWHIy8t7Y9l+/frB3t4eQ4YMwYEDB9C4cWOTT3wqO3LOZ+Yy6ZpsOnJPT08cPXoUACQvTi/Fn3/+ieDgYEyZMgX9+/cvtuzu3buxfv16AEC5cuUgCALMzN78V7xt2zZ8/fXXiI2NRcOGDREVFYWqVauqrfubb75RbUp///59ZGdnqy3fsmVLHDt2DKIo4v79+3jx4kWR/W7/6fTp02jTpk2x3w0Aypcvr9per0KFClAoFCgsLHxj2dTUVLRp0wY7duxAjx49ULt2bY31lwlRLP0P6Z2c85m5bCR00RYYSXsgm0vrXbt2xYkTJzBo0CCIoogFCxbopN7o6Gg8ffoUa9euxdq1awG8nFjzpgkt3bp1w/Tp0zF06FAoFAqEh4dLmsgmRf/+/TF9+nQMHjwYgiBgwYIFakcovr6+OH36NPr37w9RFBEZGVnsGXRaWhpq1aqlMYYRI0YgPDwcQ4YMQUFBASZOnAhbW9s3lq1Tpw5WrlyJ6OhoODg4YP78+dK+KBHknc/MZdI1bppCb5UOfp+Xuo6je6boIBIiMiRdtAWAcbQHsrm0TkRE9DaSzaV1Ikl4/YmIAFm1BRyRExERmTCOyOmtIqdnR4mo5OTUFnBETkREZMI4Iqe3i1JGp+FEVHIyagtMuiPv6TrZ0CEAyjcvolBqtsVv/vB3orn65Rr/6dG/Kksu+9RFer0KtxeSywLA9UHhWpUn+VPe082iL1S2zKpfNXQIbz2T7siJtCafk3AiKg0ZtQW8R05ERGTCOCKnt4qcZqoSUcnJqS1Q25HfvXu3VBXXrFlTq/JKpVLthgREZDqYy0RlS21HXqtWrWL3vC2OIAhQKBQay92+fRsLFy7ExYsXYWFhAaVSCXd3d0yfPh0uLi4lOjZRsbi1gF4wl8nkyKgtUNuRR0ZGYsGCBVAoFHBwcEClSpV0fvCIiAhMmjQJzZs3V/0uJSUF06dPx86dO3V+PCLSD+YykeGo7chnzZqFFi1aICAgADY2Njh27Jik7fG0kZ+fXyTxAaBFixY6PQbR38npvpgxYS6TqZFTW1DsZLcPP/wQy5Ytw7///W+MHDkS//nPf3R6cA8PD0yfPh3e3t5wcHBATk4OkpOT4eHhodPjEJF+MZeJDEfjrPVx48Zh3759+PHHH7Fv3z706tVLZwefNWsWDh48iLNnzyI7Oxv29vbw9fVF165ddXYMoiJkdBZuTJjLZHJk1BZIevxs2bJleP78OZKTk3XakQuCgK5du5Y82c20mIyXX6CfevXlufSV0gRLS8llLbOl/++1+kv630PhLekr0ZH8lDqXiajEJHXkHh4eSEpK0ncsRHonlMFMVaVSiVmzZuHKlSuwsrLCvHnzUKdOHdX7W7ZswQ8//AAA6NixI8aPH6/3mIioqLJoC8oKH/Yk0rGDBw8iPz8fcXFxmDRpEhYtWqR67/bt20hMTMTOnTsRHx+P48eP4/LlywaMlohMHVd2o7eLsvRVxMXFIS4uTvU6ICAAAQEBqtdnz56Ft7c3gJczty9evKh6r3r16vjyyy9hbm4OAFAoFLC2ti59UESkHR20BcaCHTmRlv7Zcf/Tq8ler5ibm0OhUMDCwgKWlpaoVKkSRFHE4sWL0ahRIy6YQkSlwo6c3iplcV/M3t4eOTk5qtdKpRIWFv9Ntby8PISHh8POzg4zZ87UezxE9DreIycitTw9PXH06FEAL1c3c3f/7z7boihi7Nix8PDwwJw5c1SX2ImISoojcnq7lMFJeNeuXXHixAkMGjQIoihiwYIF2Lx5M5ydnaFUKnHq1Cnk5+fj2LFjAIBPP/0U7777rv4DI6L/ks+A3LAdeWBgIAoKij7fLYoiBEHg+sxksszMzDBnzpwiv6tXr57qz6mpqWUdUplgPhMZhuSO3M/PD25ubliyZInODj558mTMmDEDa9as4SVGKhsyui9mbJjPZFJk1BZI7sgPHTqEp0+f6vTgzZs3h5+fH65cucIVoYhMHPOZyDAkd+S2trawsrLSeQAhISEl/7BSizMqGy2e1VUUah+LFKKeHlzU4szSMkf6d1NaSJ8LKVqaxtmtnHY8MkalymeiMiSntkBySz19+nQcOnQIa9asee0+GBERERmG5BF5ZmYm6tevj9DQUEyZMgUNGjRApUqVYGb2+rmAIAjYv3+/TgMl0gkZ3RcjolKQUVsguSP/+yS33NxcpKSkqC0rCEawexgREdFbQHJHzt3PSA4EGa2vTEQlJ6e2QHJH3rFjR33GoZKfn6+XSXVEVPaYz0T6V6IlWjMzMxEfH4+lS5diz549AIAzZ85oNQnu8OHD8PX1RdeuXbFv3z7V7znrlfRKFEv/Q69hPpPJ0UVbYCTtgVYruz158gTjx49HXFwclMqX1yWGDh0KPz8/hIaG4tatW/jmm2/Qpk0bjXVFR0dj9+7dUCqVmDBhAvLy8tC3b1+IRvIXQ0TSMZ+JDEdyR56dnQ0fHx/89ttvcHJygo+PD7Zt26Z638HBAZmZmejWrRvOnz+P+vXrF1ufpaUlKlSoAABYu3Ythg8fjho1anCiHOkX+xW9YD6TyZFRWyD50npUVBR+++03jBo1CtevX0dsbGyR9/fv349Zs2YhJycHCxcu1Fifk5MTFi5ciOfPn8Pe3h6rV6/GnDlzcOPGDe2/BREZFPOZyHAkd+Tx8fFwdnbG6tWr1U5eiYyMhJubm2pXp+IsWLAAHh4eqjP2GjVqYOvWrejZs6fUkIi0JohiqX/odcxnMjW6aAuMpT2QfGk9PT0dffr00bgZQtOmTYtMdlF7YAsL+Pv7F/ldlSpVEBERITUk7eTnSy+rzeXAQi2eYbDQz2ZzYjnps4LNFNos5yo9BuUTXkJ9m5V5PhORiuSexcHBAbdv39ZY7tatW3BwcChVUER6YyRn0ERkYDJqCyRfWm/Xrh3OnDmDX3/9VW2Z48eP49y5c2jbtq1OgiMiIqLiSe7Iw8LCAAC9evXCmjVr8PvvvwMARFHE3bt38eWXX6Jv374QBAGffvqpfqIlKi2lDn6IyPTpoi0wkvZA8qX11q1bIyYmBqNHj0ZoaCiAl2uqb9++Hdu3b1e9Xrp0Kby9vfUTLRERERWh1eyrESNGwMvLCytWrMCRI0dw+/ZtFBYWokaNGujQoQNCQ0PRsmXLEgeTm5sLMzMzLulIemMss0zljrlMxk5ObYHW06gbNGiA6OhonRz82rVrWLZsGSpUqIA+ffpgxowZMDMzQ0REBHx9fXVyDCLSP+YykeFI7sjr16+PESNGYNiwYXB2dtbJwWfOnIkJEyYgIyMDoaGh2L9/P6ytrRESEsLkJ/2Q0Vm4MWEuk8mRUVug1XPkM2fOxKxZs+Dj44MRI0agX79+KFeuXIkPrlQq0apVKwDAyZMnUbly5ZdB6el5ayLSD+YykeFInrWemZmJ5cuXo0WLFjh8+DCGDx+O6tWrIyQkBMePHy/RwV1cXBAREQGlUolFixYBADZs2IAqVaqUqD4ijWSy25GxYS6TyZHR7meSO/LKlSsjNDQUZ86cwcWLFzF58mQ4ODhg06ZN6NixI9zc3DBv3jykp6dLPvi8efPg6+sLM7P/hlGtWjVJa7UTkfFgLhMZjiCWYp9BURRx6NAhJCQkIDExEZmZmRAEAT4+PggJCUG/fv1gaWmpy3iL6Ok6GbCUeOkuLw+QGotCod3Sq1JZWLysW2rZHGlrpIrvVIKQ9VRS2dwmtSTv+vPYwwrmudLKPq8BWDyXVlZhC1yaM1FaYR3r/u7MUtex//xsHURC/6S8527oEKgEzKpfNXQIJaKLtgAwjvZA8oj8TQRBQKtWreDt7Q0vLy8IggClUonDhw9j6NChcHZ2RkxMjK5ifZ3UThyQ3okD+unEAemdOCC5EwcguRMHoNXWfVI7cUB6J65tWSIiKl6JZqIoFArs27cPsbGx+OGHH5CXlwdRFNGmTRsEBwejXbt22LVrF1auXInRo0fjyZMnmDJliq5jJ9KanJ4dJaKSk1NboFVH/uuvvyI2Nhbx8fHIysqCKIqoUaMGAgMDERQUBA8PD1XZzz77DL169cK//vUvrFixgh05ERGRHkjuyN3c3HDjxg2Iovh/7d1pWFNn2gfw/wHCjvuOG1RRFMVip64ouOJKxV0HFbTjWpdxqoC7VSutrVWnVrALira1Km4dK6JVRx21KmKxor4giiKiFbeoECDP+4EhUwqBEwiExP/vuviQ5M5z7tje5845Oc9zoFAoMGTIEAQEBKBfv34FLnD5o/bt28Pa2hrPnz/XW8JEZWJC38KJqAwqYF+gVquxdOlSXL9+HZaWllixYgWaNGmief2HH37A999/DwsLC0ydOhXe3t548uQJ+vbtCxeXvGtGevXqhfHjxxe7HdmNPCkpCW3btkVAQADGjh0ra1pJZmYmZs+eDXd39xJjHz16pJl7SkTGjfVMBBw5cgQqlQo7duxAXFwcVq9ejS+++AIA8PDhQ0RGRmL37t3IysrCmDFj0KVLF1y9ehUDBw7EokWLZG9HdiO/cOECPDw8dPoQ1tbWWLVqVZGvJScnF3g8f/58hIaGAsibk0pULnhEXi5Yz2R09LQv2LFjB3bs2KF5PHLkSIwcORIAcPHiRc1NxNq1a4crV65o4n799Ve8+eabsLS0hKWlJRo3boxr167hypUr+O233/DXv/4VNWrUwMKFC1GnTp1ic5DdyHVp4vHx8WjTpk2xMQEBAbC2tkadOnUghEBycjIWL14MSZKwdetW2dsiIsNjPdPr6o+N+8+USiXs7e01j83NzZGTkwMLCwsolUo4ODhoXrOzs4NSqYSzszPc3NzQuXNn7N+/HytWrMD69euLzUGni91iY2MRFhaGlJQUqFQq/HEKulqtRmZmJu7fv4+7d+8ip4SpVrt378aSJUswevRodOnSBf7+/oiMjNQlHSLd8Yi8XLCeyehUwL7A3t4eL/4wlVitVmuWLf7zay9evICDgwPatm2rWfq8d+/eJTZxQIdGfv78eXTr1q1AA5ckqUAzlyQJAEo8GgfyVor77LPPEBoaivj4eLlpEFElxHomKszDwwPHjh1D//79ERcXp7mADQDatm2Lzz77DFlZWVCpVEhKSoKLiwvmz5+PPn36oH///jhz5gxat25d4nZkN/LVq1cjKysLw4YNw4QJE3Dw4EFs2rQJBw4cgFqtRnR0NDZt2oQWLVrg3Llzssa0sLDAggULEBUVhTIsMEckXzmt9UOsZzIyFbAv6N27N06fPo1Ro0ZBCIFVq1bhm2++QePGjdGzZ0/4+/tjzJgxEEJgzpw5sLKywty5cxESEoLvvvsONjY2WLFiRYnbkb1Ea/369WFubo7k5GQoFAqcPn0anp6e2LNnD3x9fQEA33zzDSZOnIhVq1YhKCiobP8CMvRrocM21Dr8V8tS6Z6MvmVlyY/V4Q5Tma0byo591sRSdqyqquxQAED8GsMs0erTekGZxzj020o9ZEJ/xiVajZOxLtGqj30BUDn2B7I7QEZGBvr27atZO93NzQ1A3lV5+Y08ICAAK1aswI4dOyqkkUOlQ8OtDEcIubmyQ3Me/l4uKag6N5Udq9ThtvNZNYzjUNeUVnMi49C3QcnTb41ZjHGUfiGmtC+Qvda6nZ0dzM3NNY+rVq2KmjVrIiEhoUBcu3btkJiYqL8MiYiISCvZR+QtWrRAbGws1Gq1ZiW3Fi1a4MKFCwXilEqlfjMk0icT+hZORGVgQvsC2Ufkfn5+uHPnDsaMGYObN28CALy8vJCSkoKIiAgAwC+//ILjx4/D2dm5XJIlIiKigmQ38hkzZsDDwwM//PADZs2apXnOxsYGEydOhKOjIzp37oycnBxMmjRJ50TUajXS09Oh1uWiNCJdqUXZ/6hYrGUyCvrYF1SS/YHsRm5jY4NTp07ho48+go+PDwCgXr16OHDgAJo2bYq0tDRYWVlh3rx5mD59uqwxQ0JCAACXL19G3759MWPGDAwcOBBxcXGl+ChEZCisZSLD0WllN2tra/zjH/8o8Jy3tzeSkpLw8OFD1KxZU+ud0Ipy9+5dAMDatWuxefNmNG3aFOnp6Zg7dy62bdumS2pE8pjQ72KVCWuZjI4J7Qvkd90S1K5dG2ZmZjh8+DD279+v03vNzc3RtGlTAEDdunV5So7ISLGWiSqe3hp5vvHjx8PPz09WrFKphJ+fH1JTU7Fz505kZWVh2bJlaNCggb7TIsojRNn/qBDWMhkdfewLKsn+QKdT63LJXZ4xKioKKpUK165dg7W1NSRJgouLC4YNG1YeaRFROWEtExlOuTRyXVhaWqJt27aax6NHjzZgNmTyKsk3aFPEWiajYkL7AoM38rIQDrblMq6Uo8Pves9flByTz1IhPwcL+bFCh6VfdaGWnwLMauiwNjwREemNUTdyIp1VknmfRGRgJrQv0PvFbkRERFRxeEROrxfB6VBEBJPaF2ht5IGBgaUa8OnTp6VOJiMjA9WrV4ckSaUeg4gMj7VMVHG0NvKIiAhIkiR7KtkfyS3e3bt3Iy0tDd7e3pg7dy6srKyQmZmJJUuWoHPnzjpvl6hEJnSlamXCWiajY0L7Aq2NfMmSJeW+8W+//RaRkZGYOnUqvvjiCzg5OSE9PR3Tpk1j8RMZEdYykeEYtJErFArY2trCzs4OjRo1ApC3rCNPx1G5MaErVSsT1jIZHRPaFxj0YrcePXpg6tSpcHFxweTJk+Hp6YmTJ0+iY8eOhkyLiHTEWiYyHJ2mn6lUKmzduhU3btzQPHfgwAG0atUK9vb26NGjBy5duiR7vL/97W8ICAiAEAINGjTAo0eP4O/vX+gOa0R6YyJrK1c2rGUyOq/jWusZGRno2rUrrl+/jvDwcLi4uODGjRsYNmwYsrOzAQDHjx+Hl5cXLl26BGdnZ1njvv3223j77bdLlz0RVRqsZSLDkN3IP/roI1y7dg2enp546623AAAbN25EdnY2AgMDsX79enz77bf429/+hpUrV+Krr74qt6TzPW5XQ3as5TP5y5hmVTPXYVz5OZjlyv/2pvaQf9eoZ03k56tsKn/upINzhuxYj7p3ZccaVCX5Bk1EBmZC+wLZp9b3798PR0dHHDlyBO7u7gCAvXv3QpIkhISEwNbWFpMmTYKHhwdiYmLKLWEiIiL6H9mN/NatW+jQoQMUirw7aSQkJCAlJQXOzs4FTqM7OzvjwYMH+s+USB9M5DcxIiojE/qNXHYjt7e3R2ZmpubxwYMHAQA9e/YsEJeWlgZb2/K5KxkREREVJLuRt2zZEqdOncLDhw+Rm5uL7du3Q5IkDBo0SBNz7tw5nDlzBu3atZM1plKp1D1jorJQq8v+R4Wwlsno6GNfUEn2B7Ib+bvvvotnz56hdevWeOONNxAXFwcnJyf4+PgAAKZNm4aePXtCCIEpU6bIGrNLly7YuXNn6TInokqDtUxkOLIbub+/Pz777DO8fPkSKSkpaNmyJaKiomBunnfF9PHjx5GdnY1169ZhxIgRssZs2bIlEhISMG7cOPzyyy+l+wREujCR38QqG9YyGR0T+o1cp5XdZs6ciSlTpuDp06eoXbt2gdfCw8Ph5uaGatWqyR7PysoKixcvRnx8PMLDw/HBBx+gY8eOaNSoEcaNG6dLakRkQKxlIsPReYlWS0vLQk0cALp27arzxvPvrNamTRts2LABz58/x/nz55GcnKzzWESyVJJv0KaGtUxGx4T2BTo38nPnzuGLL77AyZMnce/ePSgUCjRs2BDe3t6YPn06WrVqJXssPz+/Ao8dHBzQo0cPXVMiIgNjLRMZjk6NPCgoCB9//HGBe5RnZWXh2rVruHbtGr788kusW7dO9sVuQ4YM0S1borIyoTseVSasZTI6JrQvkN3It2/fjo8++gi1atXC0qVLMXDgQDRs2BBCCNy+fRu7du3CypUrMWPGDDRr1gy9evUqz7wBAI9d5N8i0SxH/neWrFrypxRYp8tfHhU63NFR6DBsZl35y8/a1H0hO/Yv9e7Iju1f/bLsWCIi0h/Z3W3Dhg2wtrbGiRMn4OrqWuA1Z2dnzJs3D926dUO3bt2wcuXKCmnkRLoSonLM+yQiwzKlfYHs6Wfx8fHo0aNHoSb+Rx07doS3tzfOnz+vl+SIiIioeLKPyKtUqYLc3JJP4VpZWcHGxqZMSRGVGxP6XYyIysCE9gWyj8hHjBiBY8eO4fJl7b+FJicn4+jRo/D19S1VMiqVqsB67kRknFjLRBVHayO/d+9egb+pU6fC2dkZ3t7eCA0Nxe3bt6H+7zqzT548wc6dO9G9e3e0atUKa9askbXx5ORkzJw5E3PnzkVcXBwGDRqEAQMGaG7IQqR3JrKSU2XDWiaj8zqs7NawYUNIUuHLrIUQCAkJQUhICMzNzWFhYYGsrCzN6w8ePICjoyNevCj56uhFixZh2rRpeP78OSZPnoz9+/fDwcEBAQEB6N+/fyk/EhFVNNYykeFobeSNGzcuspHLIfd9OTk56Ny5M4QQ+PTTT1G3bt28pCx0XqeGSJ5KcrciU8NaJqNjQvsCrVV269atUg2YmpqKr776Slaso6Mj5syZg9zcXNjZ2WHt2rWwt7cvcglYIqq8WMtEhqO3r8s//fQTwsLCcPDgQajVaixevLjE94SGhuLEiRNo2rQp7OzsEBERAWtra6xatUpfaREVVEl+0zI1rGUyOia0LyhTI79//z6++uorfPnll0hJSdEs3dq8eXN5G7ewQM+ePTWPg4KCypIOERkIa5nIcErVyA8fPoywsDD8+OOPyMnJgRACNWrUwMiRI+Hv74+OHTvqO88iqWrIX5pUl+VRHZs9lB1717qW/BQUOvwmo8OXxWq1lbJjm1f/XXZs5yqJsmM9bR7IjjUkYUK/ixFR6ZnSvkB2I3/w4AG+/vprbN68Gbdu3dIcfUuShKioKAwYMAAKhaLcEiUiIqLCSmzkR48eRVhYGPbt26c5+nZ3d0dgYCC2bt2K2NhYvPPOOxWRK1HZmdDvYkRUBia0L9DayD/++GNs3rwZSUlJmlPno0ePRmBgIN58800AQFRUVIUlSkRERIVpbeTz58+HjY0Nxo4dixEjRsDHx6dc54QKIUo9b51INhNaX7myYi2TUTChfUGxnfnVq1c4ceIEFAoFLCws0KdPH5iZyV6evUQpKSlYtmwZbt68iQcPHqB169Zo1KgRgoKCOP+UyIiwlokMR2tXjo+Px5w5c5CVlYVvvvkGAwYMgKOjI+bNm4eEhAS9bHzZsmVYuHAhjh07hu3bt6NDhw4ICAjAggUL9DI+USFCXfY/KoS1TEZHH/uCSrI/0NrIW7dujU8++QSpqanYs2cPBg8ejIyMDKxZswZubm54++23kZgof3pSUZRKJZycnAAA7dq1Q2xsLNzc3PDs2bMyjUtEFYu1TGQ4Jf7obW5uDl9fX/j6+uL3339HZGQkIiIicOHCBQB508/69u2LUaNGwc/PD1WrVpW98YYNG2Lx4sXo1q0bjh8/Djc3Nxw/fpz3M6dyI0zod7HKhLVMxsaU9gU6/eBdq1YtzJkzB5cvX8bFixcxffp0VK9eHTExMZg0aRLq1q0LX19ffPfdd7LG+/DDD9GiRQucPn0abdu2xbx581CtWjV8+umnpfowRGQYrGUiw5GEKNtkOpVKhX379iEiIgKHDx9Gbm4uJElCbq4Oq66VUtON8u57DqD8Vna7bboru/WrFS87dpB9suxYAKjdIFWneH3poxhV5jEOZ3+vh0zoz9T3XQydQrno28Dd0CmUqxj1TkOnUCr62BcAlWN/UOZG/kf379/Hli1bsGXLFly9elVfwxLpDRs5EQFs5ERGq7f5yDKPEZO7Qw+ZEJEh6WNfAFSO/YH+JoUTERFRhSu/pdqIKqNKMu+TiAzMhPYFPCInIiIyYvyNnIiIyIjxiJyIiMiIsZETEREZMZO52E2tVmPp0qW4fv06LC0tsWLFCjRp0qTY91y+fBlr1qxBZGSk1pjs7GyEhIQgNTUVKpUKU6dORc+ePYuMzc3NxcKFC5GcnAxJkrBs2TK4uBS/yMWjR4/g5+eHr7/+Gm+88UaxsUOGt/db7AAAIABJREFUDIG9vT2AvCUxP/zwQ62xYWFh+Pnnn5GdnY3Ro0dj+PDhRcZFRUVhz549AICsrCwkJCTg9OnTqFKlSqHY7OxsBAUFITU1FWZmZvjggw+05qxSqRAcHIw7d+7A3t4eixcvRtOmTYv9fET5TL2eWcukV8JEREdHi/nz5wshhLh06ZKYMmVKsfHh4eFi4MCBYvjw4cXG7dq1S6xYsUIIIcTjx49F9+7dtcbGxMSIoKAgIYQQZ8+eLTEHlUolpk2bJvr06SMSExOLjc3MzBS+vr7FxuQ7e/asmDx5ssjNzRVKpVKsX79e1vuWLl0qvv/+e62vx8TEiJkzZwohhDh16pSYMWOG1tjIyEixcOFCIYQQSUlJIjAwUFYOREKYdj2zlknfTObU+sWLF+Hp6Qkg7+5LV65cKTa+cePG2LBhQ4nj+vj4YNasWQAAIQTMzc21xvbq1QsffPABAODevXtFfhP+o9DQUIwaNQp16tQpMY9r167h1atXCAwMxLhx4xAXF6c19tSpU3BxccH06dMxZcoUeHl5lTh+fHw8EhMTMXKk9kUSnJyckJubC7VaDaVSCQsL7Sd0EhMT0a1bNwCAs7MzkpKSSsyBKJ8p1zNrmfTNZE6tK5VKzakqIO+ubTk5OVr/B+3bty/u3r1b4rh2dnaa8WfOnInZs2cXG29hYYH58+cjJiYG69ev1xoXFRWFGjVqwNPTE+Hh4SXmYW1tjYkTJ2L48OG4desW3n33XRw6dKjIz/f48WPcu3cPmzZtwt27dzF16lQcOnQIkqR9wfmwsDBMnz692BxsbW2RmpqKfv364fHjx9i0aZPWWFdXVxw7dgy9evXC5cuXkZ6ejtzc3GJ3nET5TLmeWcukbyZzRG5vb48XL15oHqvV6mK/ZeoiLS0N48aNg6+vLwYNGlRifGhoKKKjo7Fo0SK8fPmyyJjdu3fjP//5D/z9/ZGQkID58+fj4UPtN2txcnLC4MGDIUkSnJycUK1aNa3x1apVQ9euXWFpaQlnZ2dYWVkhIyND69jPnj1DcnIyOnbsWOznioiIQNeuXREdHY19+/YhKCgIWVlZRcYOHToU9vb2GDNmDGJiYtC6dWsWPslmyvXMWiZ9M5lG7uHhgX//+98AgLi4uBIvSpHr999/R2BgIN5//30MGzas2Ni9e/ciLCwMAGBjYwNJkmBmVvQ/8fbt27Ft2zZERkbC1dUVoaGhqF27ttaxd+3ahdWrVwMA0tPToVQqtca3b98eJ0+ehBAC6enpePXqFapVq6Z17PPnz6NTp07FfjYAqFKlChwcHAAAVatWRU5Ojta73MXHx6NTp0747rvv4OPjg0aNGpU4PlE+U65n1jLpm8mcWu/duzdOnz6NUaNGQQiBVatW6WXcTZs24dmzZ9i4cSM2btwIANi8eTOsra0Lxfbp0wfBwcEYO3YscnJyEBISUmRcaQwbNgzBwcEYPXo0JEnCqlWrtB6heHt74/z58xg2bBiEEFi8eHGx36CTk5PRsGHDEnOYMGECQkJCMGbMGGRnZ2POnDmwtbUtMrZJkyZYt24dNm3aBAcHB6xcuVLeByWCadcza5n0jSu7ERERGTGTObVORET0OmIjJyIiMmJs5EREREaMjZyIiMiIsZETEREZMTZyIiIiI2bU88j7uQbLD85Vy4+10GHVIl3G1YHa1kp2rLCW/5/xkZt9yUH/9bz4m00VkNvslfxgAEmjQnSKJ9Onvq+fRV+oYpnVu2HoFF57PCInIiIyYmzkRERERqzEc7KZmZnYsWMHfvrpJ8THx2vWBlar1bC3t0f9+vXRpk0bDBgwAKNGjYJCoaiIvImIiAglNPLo6GgEBAQgPT0dRa3k+uTJEzx58gQJCQnYuXMnQkJCsH37ds29a3WhVqu13pCAiIwHa5moYmlt5OfPn9fc4m/SpEl455130LJlS9SvX19z44DMzEykpaUhISEBe/bswZYtW9C3b1+cPXsW7u7uJW78zp07+PDDD3HlyhVYWFhArVbDxcUFwcHBcHJy0tNHJKLyxlomMhytjXz58uVQq9U4cOAA+vXrV2SMtbU1nJyc4OTkhP79++Odd97B4MGDsWTJEuzdu7fEjS9YsABz584t0PTj4uIQHByM77//vhQfh4gMgbVMZDhaz3/95z//gaenp9YmXpQBAwage/fuOHfunKx4lUpV6Mi9Xbt2srdHRJUDa5nIcLQekefm5qJ69eo6D+jg4IDnz5/Lim3RogWCg4Ph6ekJBwcHvHjxAidOnECLFi103i4RGQ5rmchwtDZyV1dX/Pzzz7h//z7q1asna7Bbt27h6NGjaNWqlaz4pUuX4siRI7h48SKUSiXs7e3h7e2N3r17y8ueiCoF1jKR4Wht5HPmzMGoUaPQpUsXLFu2DIMGDULVqlWLjH3x4gUOHDiA+fPn49WrV3jvvfdkbVySJPTu3ZvFTmTkWMtEhqO1kY8YMQJXr17F8uXLMX78eEiSBEdHR9SvXx+2traQJAmvXr3C/fv3cffuXeTm5gIA5s2bB39//wpJXljIn+Ii6bKUahFT7bRS6zCuJMkONXuZJTtW5OTIjrVU2sqOtXoi/9/31W0b2bFERKQ/xc4jX7p0KQYPHow1a9YgOjoad+7cwZ07dwrF1alTBz4+Ppg6dSo6dOhQbskSERFRQSWu7Obh4YFvv/0WAHD//n2kpaXhxYsXMDc3h52dHRo0aIBatWqVe6JERERUmE53P6tXr57sC9+IiIio/HEdRSIiIiPGRk5ERGTE2MiJiIiMGBs5ERGREdPpYjd98/f3R3Z2doHnhBCQJIk3WiAyMqxnIsOQ3ch9fX3RvHlzrFmzRm8b/8c//oGFCxfi888/h7m5ud7GJaKKx3omMgzZjfzo0aN49uyZXjfu7u4OX19fXL9+nUs7Ehk51jORYchu5La2trC0tNR7ApMmTSr9m3VZddXWSnaspJK/5KmwVshPQpfVXHNydYiVP7DihfzYXEv5l1CorXRY1pZMVpnqmYhKRfaeOjg4GEePHsXnn39e6HcwIiIiMgzZR+RpaWlo1qwZZs6ciffffx8tW7ZEjRo1YGZW+LuAJEmIjo7Wa6JERERUmOxG/seL3DIzMxEXF6c1VtLhLl9ERERUerIb+bFjx8ozDyIiIioF2Y28e/fu5ZmHhkqlKpeL6oio4rGeicpfqVZ2S0tLww8//IBPPvkE+/btAwBcuHBBp4vgfv75Z3h7e6N37944ePCg5nle9UpkfFjPRIaj08puT548wYwZM7Bjxw6o1XnTmMaOHQtfX1/MnDkTt2/fxq5du9CpU6cSx9q0aRP27t0LtVqNWbNmISsrC0OGDIEQnMZEZGxYz0SGI7uRK5VKeHl54ddff4WjoyO8vLywfft2zesODg5IS0tDnz59cOnSJTRr1qzY8RQKBapWrQoA2LhxI8aPH4/69evzQjkiI8R6JjIc2afWQ0ND8euvv2Ly5MlISkpCZGRkgdejo6OxdOlSvHjxAh9++GGJ4zk6OuLDDz/Ey5cvYW9vj3/+859Yvnw5bt68qfunICKDYj0TGY7sRv7DDz+gcePG+Oc//6n14pXFixejefPmOHnyZInjrVq1Ci1atNB8Y69fvz62bt2Kfv36yU2JiCoJ1jOR4cg+tZ6SkoJBgwaVeDOENm3aFLjYReuGLSzg5+dX4LlatWphwYIFclPS6VI9XZZd1YWUpcO4FvJvJCF0iIVCfqyZSv4SrZbP5acgLHgK9XWml3omolKR3QodHBxw586dEuNu374NBweHMiVFRERE8shu5F26dMGFCxdw9uxZrTGnTp1CbGwsOnfurJfkiIiIqHiyG3lQUBAAoH///vj888/x22+/AQCEELh37x6+/PJLDBkyBJIk4e9//3v5ZEtEREQFSEKHiZ4RERGYMmWK1oVfJEnCJ598glmzZuktweL4tJH/+5uUW07zWXW43ahOv5HrMm1Hh9/IM+vZyY590lz+ilxZ1WWHAgASls/R7Q1k8tT3XQydApWCWb0bhk7htafTym4TJkxAXFwc3n33XTRv3hzW1tZQKBRo3Lgx/vrXv+LcuXNlauKZmZlQqVSlfj8RVQ6sZaKKo9PKbgDQsmVLbNq0SS8bT0xMxKeffoqqVati0KBBWLhwIczMzLBgwQJ4e3vrZRtEVP5Yy0SGI7uRN2vWDBMmTMC4cePQuHFjvWx8yZIlmDVrFlJTUzFz5kxER0fDysoKkyZNYvETGRHWMpHh6DSPfMmSJVi6dCm8vLwwYcIEDB06FDY2NqXeuFqtxttvvw0AOHfuHGrWrJmXlIXOJwqIyIBYy0SGI/s38rS0NKxduxbt2rXDzz//jPHjx6NevXqYNGkSTp06VaqNOzk5YcGCBVCr1Vi9ejUAIDw8HLVq1SrVeERkGKxlIsPR6ar1fFevXsWWLVuwfft23Lt3D5IkwdnZGePHj9fp1LtarcbPP/+MXr16aZ7bt28f+vTpI+tIn1et/xevWicDK2stA7xq3VjxqnXDK1UjzyeEwNGjRxEVFYX9+/cjLS0NkiTBy8sLkyZNwtChQ6FQKPSZbwE+7RbLD86V33ClTPn3VS83WTpc8WtjLX/YxtVkxz5vpEMjr6rbEq2/rmUjp4LYyI0TG7nh6TT97M8kScLbb78NT09PdOzYEZIkab6Zjx07Fo0bN8bmzZv1lSsRERH9SamuRMnJycHBgwcRGRmJf/3rX8jKyoIQAp06dUJgYCC6dOmCnTt3Yt26dZgyZQqePHmC999/X9+5ExERvfZ0OrV+9uxZREZG4ocffkBGRgaEEKhfvz78/f0REBCAFi1aFIi/ePEi/vKXv6B+/fpITU3Ve/I8tf5fPLVOJoCn1o0TT60bnuwj8ubNm+PmzZsQQkChUGDIkCEICAhAv379YGZW9Bn69u3bw9raGs+f63A/TCIiIpJNdiNPSkpC27ZtERAQgLFjx8qaVpKZmYnZs2fD3d29xNhHjx5p5p4SkXFjPRNVHNmN/MKFC/Dw8NBpcGtra6xatarI15KTkws8nj9/PkJDQwHkzUklIuPBeiYyHNmNXJcmHh8fjzZt2hQbExAQAGtra9SpUwdCCCQnJ2Px4sWQJAlbt26VvS0iMjzWM5Hh6HTVemxsLMLCwpCSkgKVSoU/XienVquRmZmJ+/fv4+7du8jJySl2rN27d2PJkiUYPXo0unTpAn9/f0RGRpbuUxCRQbGeiQxHdiM/f/48unXrVqCBS5JUoJlL/12NrKSjcQCoWbMmPvvsM4SGhiI+Pl7XvImoEmE9ExmO7AVhVq9ejaysLAwdOhQ//vgjpk2bBkmS8OOPP2L//v2YPn06zMzM4OrqinPnzska08LCAgsWLNCcjiMi48V6JjIM2fPI69evD3NzcyQnJ0OhUOD06dPw9PTEnj174OvrCwD45ptvMHHiRKxatQpBQUHlmjgA9HMNlh+s1mHHolbrnowcufLHVd9LK5cUngxvLz+2ufy54arquv2bJb83V6d4Mn2cR26cOI/c8GQfkWdkZMDDw0OzdrqbmxuAvEVf8gUEBMDJyQk7duzQc5pERERUFNmN3M7ODubm/7vLVtWqVVGzZk0kJCQUiGvXrh0SExP1lyERERFpJbuRt2jRArGxsVD/4bRzixYtcOHChQJxSqVSf9kRERFRsWQ3cj8/P9y5cwdjxozBzZs3AQBeXl5ISUlBREQEAOCXX37B8ePH4ezsXC7JEhERUUGyG/mMGTPg4eGBH374AbNmzdI8Z2Njg4kTJ8LR0RGdO3dGTk4OJk2apHMiarUa6enpBY74icj4sJaJKpbsRm5jY4NTp07ho48+go+PDwCgXr16OHDgAJo2bYq0tDRYWVlh3rx5mD59uqwxQ0JCAACXL19G3759MWPGDAwcOBBxcXGl+ChEZCisZSLD0WllN2tra/zjH/8o8Jy3tzeSkpLw8OFD1KxZU+ud0Ipy9+5dAMDatWuxefNmNG3aFOnp6Zg7dy62bdumS2pEZECsZSLDkd91S1C7dm2YmZnh8OHD2L9/v07vNTc3R9OmTQEAdevW5Sk5IiPFWiaqeHpr5PnGjx8PPz8/WbFKpRJ+fn5ITU3Fzp07kZWVhWXLlqFBgwb6TouIyhFrmchwdDq1Lpfc5RmjoqKgUqlw7do1WFtbQ5IkuLi4YNiwYeWRFhGVE9YykeGUSyPXhaWlJdq2bat5PHr0aNnvzaluJztWypF/ik/KzpUda/b0hexYYWMlf9xqVeWP+ypTdqzihQ7LxFqalxz0X2a1s2THkmkqSy0TUenp/dQ6ERERVRw2ciIiIiPGRk5ERGTE2MiJiIiMmNaL3QIDA0s14NOnT0udTEZGBqpXrw5Jkn8fbCKqfFjLRBVHayOPiIiAJEmyp5L9kdzi3b17N9LS0uDt7Y25c+fCysoKmZmZWLJkCTp37qzzdonIMFjLRIajtZEvWbKk3Df+7bffIjIyElOnTsUXX3wBJycnpKenY9q0aSx+IiPCWiYyHIM2coVCAVtbW9jZ2aFRo0YA8pZ15Ok4IuPCWiYyHIMuCNOjRw9MnToVLi4umDx5Mjw9PXHy5El07NjRkGkRkY5Yy0SGo9NV6yqVClu3bsWNGzc0zx04cACtWrWCvb09evTogUuXLske729/+xsCAgIghECDBg3w6NEj+Pv7F7rDGhFVbqxlIsORhMyr2TIyMtC1a1dcv34d4eHhmDhxIm7cuIE2bdogOztbE+fg4IBLly7B2dm53JLO1/7dtbJjLZXylybNqiL/+43Vcx3u7qT7dYOyKBvIz1fZVH6+1d94LDv27bq3ZccCwKb2kTrFk+lT33cxdApUCmb1bpQcROVKdgf46KOPcO3aNXTt2hVvvfUWAGDjxo3Izs5GYGAglEolwsPD8fz5c6xcubLcEiYiIqL/kd3I9+/fD0dHRxw5cgTu7u4AgL1790KSJISEhMDW1haTJk2Ch4cHYmJiyi1hIiIi+h/ZjfzWrVvo0KEDFAoFACAhIQEpKSlwdnYucBrd2dkZDx480H+mREREVIjsRm5vb4/MzP/dLvPgwYMAgJ49exaIS0tLg62trZ7SIyIiouLIbuQtW7bEqVOn8PDhQ+Tm5mL79u2QJAmDBg3SxJw7dw5nzpxBu3btZI2pVCp1z5iIKh3WMpHhyG7k7777Lp49e4bWrVvjjTfeQFxcHJycnODj4wMAmDZtGnr27AkhBKZMmSJrzC5dumDnzp2ly5yIKg3WMpHhyG7k/v7++Oyzz/Dy5UukpKSgZcuWiIqKgrm5OQDg+PHjyM7Oxrp16zBixAhZY7Zs2RIJCQkYN24cfvnll9J9AiIyONYykeHInkeeT6VS4enTp6hdu3aB50+dOgU3NzdUq1ZN9ljjxo3D1q1bER8fj/DwcNy6dQsdO3ZEo0aNMG7cuBLfz3nkeTiPnAytrLUMcB65seI8csPTeYlWS0vLQk0cALp27arzxvO/Q7Rp0wYbNmzA8+fPcf78eSQnJ+s8FhEZDmuZyHB0buTnzp3DF198gZMnT+LevXtQKBRo2LAhvL29MX36dLRq1Ur2WH5+fgUeOzg4oEePHrqmREQGxlomMhydTq0HBQXh448/1nqPcoVCgXXr1sm+2K2sXFbJP7Uu5cgfN9Mxu+Sg/7JKU8jPQYdT62byU8Cr+rmyY23ry7+6uGfj/5MdO6TGBdmxANCj6XWd4sn08dS6ceKpdcOT/ePq9u3b8dFHH6FmzZr45z//iVu3biEnJwfZ2dlITEzE6tWrYW1tjRkzZuDIkSPlmTMRERH9l+xGvmHDBlhbW+PEiROYNm0aGjduDDMzM5ibm8PZ2Rnz5s1DdHQ0zMzMuNY6ERFRBZHdyOPj49GjRw+4urpqjenYsSO8vb1x/vx5vSRHRERExZPdyKtUqYLc3JJ/i7WysoKNjU2ZkiIiIiJ5ZDfyESNG4NixY7h8+bLWmOTkZBw9ehS+vr6lSkalUhVYz52IjBNrmajiaG3k9+7dK/A3depUODs7w9vbG6Ghobh9+zbU6rzFRZ48eYKdO3eie/fuaNWqFdasWSNr48nJyZg5cybmzp2LuLg4DBo0CAMGDNDckIWIjANrmchwtM4jb9iwISRJKvS8EAIhISEICQmBubk5LCwskJWVpXn9wYMHcHR0xIsXL0rc+KJFizBt2jQ8f/4ckydPxv79++Hg4ICAgAD079+/lB+JiCoaa5nIcLQ28saNGxfZyOWQ+76cnBx07twZQgh8+umnqFu3bl5SFjqvU0NEBsRaJjIcrVV269atUg2YmpqKr776Slaso6Mj5syZg9zcXNjZ2WHt2rWwt7cvcglYIqq8WMtEhqPzTVO0+emnnxAWFoaDBw9CrVYjJ6fkpdRycnJw4sQJNG3aFHZ2doiIiEDVqlUxfvx42Nralvh+ruyWhyu7kaGVtZYBruxmrLiym+GVqZHfv38fX331Fb788kukpKRolm5t3rw5rl8v/x110y/kXVSnqzda3pMde/Ne+RxxqLPMZcdWr/tcdmzrWvdlxw6tJb85v2NX8jURf8Tipz9jIzdOrGXDK9UPWIcPH0ZYWBh+/PFH5OTkQAiBGjVqYOTIkfD390fHjh31nScREREVQXYjf/DgAb7++mts3rwZt27d0hx9S5KEqKgoDBgwAAqF/NPMREREVHYlNvKjR48iLCwM+/bt0xx9u7u7IzAwEFu3bkVsbCzeeeedisiViIiI/kRrI//444+xefNmJCUlaU6djx49GoGBgXjzzTcBAFFRURWWKBERERWmtZHPnz8fNjY2GDt2LEaMGAEfH59ynRMqhCj1vHUiqjxYy0QVq9jO/OrVK5w4cQIKhQIWFhbo06cPzMxkL89eopSUFCxbtgw3b97EgwcP0Lp1azRq1AhBQUGcf0pkRFjLRIajtSvHx8djzpw5yMrKwjfffIMBAwbA0dER8+bNQ0JCgl42vmzZMixcuBDHjh3D9u3b0aFDBwQEBGDBggV6GZ+IKgZrmchwtDby1q1b45NPPkFqair27NmDwYMHIyMjA2vWrIGbmxvefvttJCYmlmnjSqUSTk5OAIB27dohNjYWbm5uePbsWZnGJaKKxVomMpwSf/Q2NzeHr68vfH198fvvvyMyMhIRERG4cCFvsRBJktC3b1+MGjUKfn5+qFq1quyNN2zYEIsXL0a3bt1w/PhxuLm54fjx47yfOZGRYS0TGU6pV3a7dOkSvv76a3z33XfIyMiAJElQKBSapj569OgSx1CpVNi5cycSExPh6uqKoUOHIj4+Hk2aNEH16tVLfD9XdsvDld3I0MpaywBXdjNWrGXDK/Na6yqVCvv27UNERAQOHz6M3NxcSJKE3Fz563+XFht5HjZyMgVs5MaJtWx4ertpCpC39vqWLVuwZcsWXL16VV/DEhERkRZ6beRERERUsfQ3KZyIiIgqHBs5ERGREWMjJyIiMmJs5EREREaMjZyIiMiIsZETEREZsfK7L2kFU6vVWLp0Ka5fvw5LS0usWLECTZo0KfY9ly9fxpo1axAZGak1Jjs7GyEhIUhNTYVKpcLUqVPRs2fPImNzc3OxcOFCJCcnQ5IkLFu2DC4uxS9y8ejRI/j5+eHrr7/GG2+8UWzskCFDYG9vDyBvScwPP/xQa2xYWBh+/vlnZGdnY/To0Rg+fHiRcVFRUdizZw8AICsrCwkJCTh9+jSqVKlSKDY7OxtBQUFITU2FmZkZPvjgA605q1QqBAcH486dO7C3t8fixYvRtGnTYj8fUT5Tr2fWMumVMBHR0dFi/vz5QgghLl26JKZMmVJsfHh4uBg4cKAYPnx4sXG7du0SK1asEEII8fjxY9G9e3etsTExMSIoKEgIIcTZs2dLzEGlUolp06aJPn36iMTExGJjMzMzha+vb7Ex+c6ePSsmT54scnNzhVKpFOvXr5f1vqVLl4rvv/9e6+sxMTFi5syZQgghTp06JWbMmKE1NjIyUixcuFAIIURSUpIIDAyUlQOREKZdz6xl0jeTObV+8eJFeHp6Asi7+9KVK1eKjW/cuDE2bNhQ4rg+Pj6YNWsWAEAIAXNz7Uun9urVCx988AEA4N69e0V+E/6j0NBQjBo1CnXq1Ckxj2vXruHVq1cIDAzEuHHjEBcXpzX21KlTcHFxwfTp0zFlyhR4eXmVOH58fDwSExMxcuRIrTFOTk7Izc2FWq2GUqmEhYX2EzqJiYno1q0bAMDZ2RlJSUkl5kCUz5TrmbVM+mYyp9aVSqXmVBWQd9e2nJwcrf+D9u3bF3fv3i1xXDs7O834M2fOxOzZs4uNt7CwwPz58xETE4P169drjYuKikKNGjXg6emJ8PDwEvOwtrbGxIkTMXz4cNy6dQvvvvsuDh06VOTne/z4Me7du4dNmzbh7t27mDp1Kg4dOgRJkrSOHxYWhunTpxebg62tLVJTU9GvXz88fvwYmzZt0hrr6uqKY8eOoVevXrh8+TLS09ORm5tb7I6TKJ8p1zNrmfTNZI7I7e3t8eLF/27coVari/2WqYu0tDSMGzcOvr6+GDRoUInxoaGhiI6OxqJFi/Dy5csiY3bv3o3//Oc/8Pf3R0JCAubPn4+HDx9qHdPJyQmDBw+GJElwcnJCtWrVtMZXq1YNXbt2haWlJZydnWFlZYWMjAytYz979gzJycno2LFjsZ8rIiICXbt2RXR0NPbt24egoCBkZWUVGTt06FDY29tjzJgxiImJQevWrVn4JJsp1zNrmfTNZBq5h4cH/v3vfwMA4uLiSrwoRa7ff/8dgYGBeP/99zFs2LBiY/fu3YuwsDAAgI2NDSRJgplZ0f/E27dvx7Zt2xAZGQlXV1eEhoaidm3td1LbtWsXVq9eDQBIT0+HUqnUGt++fXucPHkSQgikp6fj1atXqFatmtaxz58/j06dOhX72QCgSpUqcHBwAABUrVoVOTk5Wu+sSAJaAAALw0lEQVRyFx8fj06dOuG7776Dj48PGjVqVOL4RPlMuZ5Zy6RvJnNqvXfv3jh9+jRGjRoFIQRWrVqll3E3bdqEZ8+eYePGjdi4cSMAYPPmzbC2ti4U26dPHwQHB2Ps2LHIyclBSEhIkXGlMWzYMAQHB2P06NGQJAmrVq3SeoTi7e2N8+fPY9iwYRBCYPHixcV+g05OTkbDhg1LzGHChAkICQnBmDFjkJ2djTlz5sDW1rbI2CZNmmDdunXYtGkTHBwcsHLlSnkflAimXc+sZdI33v2MiIjIiJnMqXUiIqLXERs5ERGREWMjJyIiMmJs5EREREaMjdyE8TpGIiLTZ9KN/Pjx45Akqcg/S0tL1K5dG97e3ggPD9c6h7I83b17F5IkFboBgSRJZVr8Ii0tDWPHjtXMw83XtGlTSJIkawUsotfR0qVLte4ztP0RGZrJzCMvjp2dHd55550Cz2VnZ+Phw4c4efIkjh8/jsOHD2PXrl0GylC/xo8fj5iYGLz77ruGToXIqLRt2xZjx44t8NzNmzdx5swZ1KlTB7179zZQZkTavRaNvFatWti2bVuRr8XFxaF79+7YvXs39uzZgyFDhlRwdoUlJCSU6Zu+Wq0u8vmjR48iOzsb9erVK/XYRKbMz88Pfn5+BZ6LiIjAmTNn4OrqqnU/QmRIJn1qXY527dppjlyjoqIMnE2eli1bokWLFnof94033kDLli31tmY1EREZ3mvfyIG8W/MBwIMHDwDk/ZZcq1YtxMXFoV27drCysoKzszN+/fVXzXsOHTqEPn36oHr16rCxsUHbtm2xZs0aqFSqIrfx7bffokOHDnBwcED9+vXx97//HUqlsshYbb+Rp6amYs6cOWjWrBlsbGzg7OyMgIAA3Lp1CwBw69YtSJKEo0ePAshb3lGSJM3r2n4jf/ToEebNmwcXFxdYWVmhRo0a8PHxQXR0dKEcJkyYAEmScOXKFXz99dd48803YWNjg9q1a8Pf31+zLaLXhSRJeOutt3D06FE0b94c1tbWcHV1RXp6uqZeijqS37ZtGyRJwoQJEwq9du7cOQwZMgS1a9eGtbU1XFxcsHDhQjx//rwCPhEZGzZyAL/99huAvHsa58vMzMSAAQPw8uVL9OvXDxYWFnB1dQUAfPDBB+jXrx9OnDgBNzc39OvXD/fv38f7778PHx+fQncRyl+v+ddff0W3bt3g7u6Ozz//HEOHDpWd4+XLl9G+fXt89tlnMDMzw8CBA+Hg4ICIiAi0b98eiYmJsLe3x9ixYzWnznv16oWxY8cWuB3knyUlJcHd3R0ff/wxXr16hUGDBqFt27Y4cuQIfHx8sGzZsiLft2jRIkycOBHm5ubo168fzM3NsW3bNnTt2hXPnj2T/bmITMG9e/fwzjvvwM7ODr1790a1atVQt27dUo0VERGBLl26YP/+/XB2dsbAgQORmZmJlStXokuXLsXe/YxeU8KEHTt2TAAQTZo00Rpz/PhxYWlpKQCIo0ePCiGEaNKkiQAgOnToIFQqlRBCiNzcXCGEEDExMQKAaNy4sbhy5YpmHKVSKQYPHiwAiODgYM3z586dE5Ikibp164pr165pno+Pjxe1a9cuMj8AwtzcXPM4NzdXuLu7CwBi6dKlQq1Wa15bunSpACB8fHw0z/Xs2VMAEMeOHSswbv7nunPnjhBCCLVaLTw8PAQAMX36dM1nFUKIX375RdSsWVMAED/99JPm+fHjxwsAQqFQiP3792uef/r0qWjVqpUAIL744gut/95Exuabb74RAET37t2LfB2AACD8/Pw0tZm/v8ivl8jIyELvi4yMFADE+PHjNc9dvXpVWFpaiqpVq4pTp05pnlepVGLy5MkCgBg9erT+PhyZhNfiiPz333/HX//61wJ/w4cPh7u7O7y8vKBSqTBjxgz06NGjwPumTp0KhUIBAJrbF65ZswYAsGHDBrRu3VoTa2dnhy+//BI2Njb4/PPPNUfl4eHhEEJg+fLlBX73dnNzw/Lly2Xlf+bMGVy+fBlvvfUWlixZUuBCuIULF8Ld3R3Z2dlaT+tr8+9//xuxsbFwdXXFunXrNJ8VAP7yl7/gk08+AQB8/PHHhd47YsSIAvdyrlKlCvz9/QH87wwH0etk5syZmtrUdrvTkqxbtw4qlQrLly9Hly5dNM8rFAqsW7cOjo6O2LFjB1JTU/WSM5mG16KRv3jxAtu3by/wd+DAAWRkZGDQoEHYvXs3NmzYUOh97u7uBR7n5uZq5mZ7e3sXiq9duzY8PDzw7NkzXLp0CQBw4sQJAEC/fv0Kxfv6+srK//jx4wCAgQMHFnrN3NwccXFxOHLkCCwtLWWNly//swwdOrTIWyMOHz4c5ubmOH36dKF59h06dCgUn39K/8WLFzrlQWQK/ry/KI1jx44BKHr/YmVlBS8vL6jVapw8ebLM2yLT8VpcvtykSZNSXYRVo0aNAo8fPXqEV69eAcg7Ai3OnTt30LFjR9y7dw8A4OjoWCimfv36sppvWloaAKBRo0ay8pYrP7c/L0iTz9bWFnXq1EFaWhoeP36MWrVqaV6rVq1aofj8C/S0TX8jMlVmZmZF1oSu7ty5AyBvPrucOCLgNWnkpfXn02P5R6W2trYlzjfPPzrNP9UmtCyXKmcqWE5OTokxpaEtpz/K/8xWVlYFnueKVkT/U5p6KGo1yfznxowZU+yYzZo103l7ZLrYyHVQs2ZNKBQK5OTkYMuWLUWejv4zR0dH3LhxAykpKXBycirw2tOnT/Hy5csSx8j/UqBtadV//etfUCqV6N27d6GzCMVp0KABACA5ObnI158/f46HDx/CxsYGDg4Ossclojz5BwNFfRl/8uRJoefq16+P27dvIzQ0FA0bNiz3/Mg0vBa/keuLpaUlOnbsCJVKpZmr/UdZWVlo3749PD09Nafye/XqBQDYu3dvofiffvpJ1nbzL3o5dOhQodeEEJg5cybGjBmD7OxsAPKPDrp16wYgbyGcoo4Odu3aBSEEvLy8ZI1HRAXlT/28f/9+odfOnj1b6Ln8mjx48GCR4/Xt2xedOnXCL7/8oscsydixketo9uzZAIApU6bgypUrmudzcnLw3nvvITY2FkqlUvO787Rp06BQKLB8+XJcuHBBE3/z5k3MmzdP1jZ79uyJFi1a4MyZM5oryfOtWLECN2/eRK9evTTzVq2trQHkHfEXp3v37njzzTeRkJCAWbNmab4IAMDFixfx/vvvAwCmT58uK08iKqhNmzYA8uaG/3F9hX379mHnzp2F4mfOnAkzMzMEBwcXuKAtf+bL4cOHkZycrJcL68iEGHLuW3mTM4+8KH+eb/1ns2fP1syl7tSpkxgyZIho1KiRACBq165dYL64EEKsX79eSJIkLCwsRJ8+fcTAgQOFjY2N+Mtf/iLMzMxKnEcuhBCxsbGievXqAoBo3bq1GDZsmGbedt26dcXdu3c1sXPmzBEARIMGDcTQoUPF//3f/2n9XNevXxeOjo4CgGjUqJEYNmyY8PLyEubm5gKAWLRoUYE8dJ0XS2Ts5Mwj/3O95nv69Klo2LChpk79/PzEW2+9JQAIf3//Iutl7dq1QpIkIUmSaN++vfDz8xPNmzcXAISNjY04efKknj8hGTsekZfC2rVrsWfPHnTv3h0JCQn46aefYGtri/feew+XLl0qtE76e++9h4MHD6JLly44c+YMzpw5g5EjR+LQoUOyT4O/+eabiI2NxaRJk/D06VPs27cPGRkZCAgIwPnz5wtcFR8cHIwBAwbgyZMniImJwY0bN7SO6+LigtjYWPz973+HpaUl9u/fj6tXr6J///44cuSI7LnuRFRYlSpVcPr0aYwbNw5qtRoHDx6EWq3G9u3bERISUuR7Zs+ejWPHjmHQoEG4ffs2/vWvf0GtVmP8+PGIi4tD165dK/hTUGUnCSHj0mUiIiKqlHhETkREZMTYyImIiIwYGzkREZERYyMnIiIyYmzkRERERoyNnIiIyIixkRMRERkxNnIiIiIjxkZORERkxP4fCKPYeW9KUHcAAAAASUVORK5CYII=\n", + "image/png": "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AELjxo2Fc+fOVVjf3t5eACB8/PHHwrp16wR9ff1K25k4cWKFbRCR9in9d29vb19luXnz5gkABF1dXWH9+vXl4sabb74pCIIgREdHi9fmzZtXaXu3b9+uMBaWdeHCBeH111+vMu4NGDBAyMrKUvPdE9UOfMishhw5ckR87eLiUu7+/fv3sWzZMtja2uLLL79E/fr1cfDgQYwePVoss337dowePRqCIMDAwAAjR46Eh4cHDA0NcfXqVQQHB+PRo0dYvHgxioqK8N1335XrZ8yYMQgPDwcA2NjYYMKECWjZsiUePHiAzZs3Iy4uDpMnT1b7fS5YsABff/01AMDQ0BC+vr7o3r07CgsLcfjwYURERCAnJwfe3t5wcHCAq6srFi5ciH///RcBAQG4du2awpPKr7/+ulL93rlzB3369EFqaiqAkqeiR40aBQcHBzx8+BDh4eE4ffo07t27Bw8PD5w8eRJt27atsK1jx44hJCQE+vr6GDduHNzd3VFUVISoqChERkYCANavX4++ffuKT1cTEZUqLi7G1KlTYWFhgS+++AJNmjRBbGws3nzzTY32c/36dXh4eODp06cAgLfeegteXl5o0KABkpOTsW3bNly9ehW///473n77bURHR4uzy0Rap6YzbG2g6gxuRkaG4OTkVOHMZ9m2TE1NhcTExArbuH//vmBqaioAEKytrYVLly6VK5Oeni506dJFACDIZDLh1KlTCvdjYmLEvtq2bSukpaUp3K9odleVGdwbN24IBgYG4hivXLlSboybN28W63t4eCjcK52hrWyWpKoZXE9PT/Hep59+KhQWFpYrs3DhQrFMy5YthaKiIoX7pTO4AAQLCwvh4sWL5dqYP3++WGbgwIEVjpOItEvpv3llZ3Ari8GlNDGDW1xcLLi4uIif3G3btq1c/cLCQmHixIliG999992L3ipRrcU1uC9JXl4eEhMTERQUBBcXF9y8eRMA0K5dO3h7e1dY5/3330fTpk0rvLd27VpkZ2cDAIKCgtCuXbtyZSwtLbF161bo6+tDEAQEBgYq3F+xYgUAQCaTYceOHWjQoIHCfX19fQQHB6u9D+3atWuRn58PAFi3bh3atGlTrszYsWPRt29fAEBMTAwePHigVl9lnT17Fn/++ScAwM3NDatXr4aurm65cnPmzMG7774LoGTmo3Q2tiLz589H+/bty1339/eHoaGh2C8RUUV69+6NLl26VFv7f/zxh/jA8tSpU+Hj41OujK6uLn744Qc0b94cALBq1SoUFBRU25iIahITXA3r1atXhUc2GhkZiQ9+JSUlAQAcHR2xd+9e6OvrV9hWjx49Ku1n9+7dAABra2sMGjSo0nLNmzcX2zl06BAKCwsBAHK5HH/99ReAkr17KzqcAijZ53H8+PEveNcVO3DgAICSB+qq+ug+ICAAy5cvR1RUFOrWratWXxX1CwDTp0+Hjk7l/5vPnDlTfL1///5Ky5Xd9aKs0gfyAPBUOiKqVFXxXBNKfycAwEcffVRpOX19fYwaNQoAkJKSgnPnzlXruIhqChff1ICmTZti9OjRmDx5MiwsLCot16JFiwqvP378GAkJCQAAMzOzFz4Va2RkBAB49uwZbty4AWdnZ8TFxeHZs2cASmY5q+Lh4VHl/Yqkp6eLibybm1uVSaa7uzvc3d1V7qMyp0+fFl/36tWryrIuLi6wsLBARkYG/v777wrLmJqaolGjRpW2YW5uDgCcCSGiSlUWzzXlzJkz4uu4uDjcunWr0rKlsR8Azp8//8LfAUS1ERNcDavoqF6ZTIY6derA3Nwcjo6OsLKyUqqtypLfsh/jJyQkqPRg06NHjwBAfPgKABo3blxlHUdHR6XbL1W2/Zd91G7pe7S0tISlpWWVZWUyGZo0aYKLFy8qjLms0gS2MqUPaQiCoMZoiehVUNVkhib8888/4usPPvhA6Xql8ZJI2zDB1bAXHdWritK1nc/LyspSu83Sp2vLfpxeOsNbGXWWDZTdP/dF7Wta6Xs0MTFRqryxsTEAxVmNsviUMRFJVVk81xR1fy+UxksibcPf3LVQaUIGlDyIVrrNlyrKzmzm5ORUWVYul6vcftkxVnWYQnUoTWwrS1ifV/qwXtkxExH91+Tl5VV6z9jYGFlZWbCxsUFKSspLHBXRfxMfMquFrK2txdcPHz5Uq43XXntNfF26VrYy6uxsUHaM9+7dq7JsdnY2jhw5guTkZBQXF6vc1/MaNmwIAHjy5AmePHlSZVlBEMT3X/Z0OSKil6XsMwqlDwJXJDMzs9J7pTE3PT1drUkJIm3DBLcWsrOzg62tLQDg3LlzL5ypnDNnDsaNG4dFixaJCV/r1q3FNWFHjx6tsv6JEyfUGmNpoln2oa+KxMbGok+fPnBwcMD69etV7ut5ZTdPj46OrrLs33//LX5EV9lBD0RE1ans8oWqlhrExcVVes/V1RVAycOuJ0+erLK/8PBweHt7IyAgAFevXlVxtES1AxPcWsrLywtAyfKCdevWVVru1q1bWLp0KYKDg7Fq1SpxPa2+vr64vdilS5cqTXKLioqwceNGtcb49ttvAwDu3r2LgwcPVlouLCxMfN2nTx/xdemshqqzuqU/G6Bkr9+q6i9btkx8XdV2a0RE1aXsJ14XL16stFzZrcCeVzbuLV++vNJyBQUFCAgIwM6dO7Fo0SIUFRWpOFqi2oEJbi01depUGBgYAADmzp2LqKiocmUyMjLw7rvvigFs8uTJCg9M+fv7i9/7+vqKW4+VEgQB06dPx6VLl9Qa4+TJk8Uk1c/PD4mJieXKREZGYseOHQBKNkIvu5VO6ZrYzMxMlXYo6NSpk7g92MmTJzF58uQKg/jixYvFwx1atGiBESNGKN0HEZGmODg4iLvrHD9+XDyopqwVK1bg0KFDlbbxzjvvoFmzZgCA3377DQEBAeXiZnFxsUIs7t27d4UH2BBpAz5kVks5OTkhMDAQU6ZMgVwux5AhQ+Dl5YWBAwfCxMQE8fHx2LRpE9LS0gCUnJg2Y8YMhTacnZ0xa9YsLFiwAPfu3UOHDh0wYcIEdOzYEenp6di2bRtOnz4Na2trtbaSadeuHebMmSO23759e3z88cdwdXVFVlYW/vrrL+zZswdAyV6zq1evVqhfuvdsVlYWPvnkE7z11luoX7/+C/e2BYDNmzeL72Pt2rWIiYmBr68v7O3tkZqairCwMJw6dQpAyWENO3furPannImIKiKTyTBmzBjxtMkhQ4bAz88Prq6uSE9Px65duxAbG4vGjRujoKCgwofI9PT0sGPHDri7u0Mul2PRokU4ePAgvL29YWtri7t372Lr1q3iMoe6detqZEkY0X9WTZ4TrC1Gjx4tnu0dHR2tsbZu3779wvKrV68WDA0NxToVfXXp0kVITU2ttI2AgIBK69arV084fPiw+H1ISIhC3ZCQkErvlZozZ46go6NTaR9WVlbC0aNHy9U7cuRIubKurq7ifQ8PD/F6ReLj44XmzZtX+bNxcHAQzp8/X2F9e3t7pc6bf9E4iEi7lP57f1FsmDdvntK/G7KzswV3d/dKY1Xjxo2FK1euCG+88YYAQBg9enSF7cTGxgo2NjZVxj1bW1vh1KlT6r15olqCSxRquc8//xw3b97EV199hfbt28Pc3Bx6enqwsbHBgAEDsH37dhw/flxhjdfzFixYgNjYWLz33nuwsbGBvr4+GjduDD8/P1y8eBEdOnSQNMaFCxfi4sWL8PPzg6OjI4yMjGBsbIy2bdsiICAA165dq/C0tF69emHXrl3o2LEjTExMYGhoWOU2Oc9r2bIl4uLisHHjRrz11luwtraGgYEBGjVqhN69eyM4OBjXrl2Di4uLpPdHRCSViYkJjhw5gqCgILi7u8PCwgLGxsZo1aoV5s6di8uXL6NNmzYvbKd79+5ISEjA8uXL4eHhASsrK+jp6cHCwgJdu3bF0qVLER8fjy5duryEd0VUc2SCwOOXiIiIiEh7cAaXiIiIiLQKE1wiIiIi0ipMcImIiIhIqzDBJSIiIiKtwgSXiIiIiLQKE1wiIiIi0ipMcImIiIhIqzDBJSIiIiKtwgSXiIiIiLQKE1wiIiIi0ipMcImIiIhIqzDBJSIiIiKtwgSXiIiIiLQKE1wiIiIi0ipMcImIiIhIq/x/dw2X/B8WxnIAAAAASUVORK5CYII=", "text/plain": [ - "
    " + "
    " ] }, "metadata": {}, @@ -631,9 +616,9 @@ ], "metadata": { "kernelspec": { - "display_name": "Python [conda env:tomopt]", + "display_name": "Python 3 (ipykernel)", "language": "python", - "name": "conda-env-tomopt-py" + "name": "python3" }, "language_info": { "codemirror_mode": { @@ -645,7 +630,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.8.0" + "version": "3.10.13" }, "toc": { "base_numbering": 1, diff --git a/examples/getting_started/01_Indepth_tutorial_single_cycle.ipynb b/examples/getting_started/01_Indepth_tutorial_single_cycle.ipynb index dfbc82a7..4faeceb0 100644 --- a/examples/getting_started/01_Indepth_tutorial_single_cycle.ipynb +++ b/examples/getting_started/01_Indepth_tutorial_single_cycle.ipynb @@ -8141,9 +8141,9 @@ ], "metadata": { "kernelspec": { - "display_name": "Python [conda env:tomopt]", + "display_name": "Python 3 (ipykernel)", "language": "python", - "name": "conda-env-tomopt-py" + "name": "python3" }, "language_info": { "codemirror_mode": { @@ -8155,7 +8155,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.8.0" + "version": "3.10.13" }, "toc": { "base_numbering": 1, diff --git a/examples/getting_started/02_Indepth_tutorial_optimisation_and_callbacks.ipynb b/examples/getting_started/02_Indepth_tutorial_optimisation_and_callbacks.ipynb index 9f37c465..f3ebeb24 100644 --- a/examples/getting_started/02_Indepth_tutorial_optimisation_and_callbacks.ipynb +++ b/examples/getting_started/02_Indepth_tutorial_optimisation_and_callbacks.ipynb @@ -1335,9 +1335,9 @@ ], "metadata": { "kernelspec": { - "display_name": "Python [conda env:tomopt]", + "display_name": "Python 3 (ipykernel)", "language": "python", - "name": "conda-env-tomopt-py" + "name": "python3" }, "language_info": { "codemirror_mode": { @@ -1349,7 +1349,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.8.0" + "version": "3.10.13" }, "toc": { "base_numbering": 1, diff --git a/examples/getting_started/03_fixed_budget_mode.ipynb b/examples/getting_started/03_fixed_budget_mode.ipynb index 405dfad8..8bee3e6b 100644 --- a/examples/getting_started/03_fixed_budget_mode.ipynb +++ b/examples/getting_started/03_fixed_budget_mode.ipynb @@ -502,9 +502,9 @@ ], "metadata": { "kernelspec": { - "display_name": "Python [conda env:tomopt]", + "display_name": "Python 3 (ipykernel)", "language": "python", - "name": "conda-env-tomopt-py" + "name": "python3" }, "language_info": { "codemirror_mode": { @@ -516,7 +516,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.8.0" + "version": "3.10.13" }, "toc": { "base_numbering": 1, diff --git a/poetry.lock b/poetry.lock new file mode 100644 index 00000000..80e250ad --- /dev/null +++ b/poetry.lock @@ -0,0 +1,3887 @@ +# This file is automatically @generated by Poetry 1.7.1 and should not be changed by hand. + +[[package]] +name = "alabaster" +version = "0.7.16" +description = "A light, configurable Sphinx theme" +optional = false +python-versions = ">=3.9" +files = [ + {file = "alabaster-0.7.16-py3-none-any.whl", hash = "sha256:b46733c07dce03ae4e150330b975c75737fa60f0a7c591b6c8bf4928a28e2c92"}, + {file = "alabaster-0.7.16.tar.gz", hash = "sha256:75a8b99c28a5dad50dd7f8ccdd447a121ddb3892da9e53d1ca5cca3106d58d65"}, +] + +[[package]] +name = "anyio" +version = "4.2.0" +description = "High level compatibility layer for multiple asynchronous event loop implementations" +optional = false +python-versions = ">=3.8" +files = [ + {file = "anyio-4.2.0-py3-none-any.whl", hash = "sha256:745843b39e829e108e518c489b31dc757de7d2131d53fac32bd8df268227bfee"}, + {file = "anyio-4.2.0.tar.gz", hash = "sha256:e1875bb4b4e2de1669f4bc7869b6d3f54231cdced71605e6e64c9be77e3be50f"}, +] + +[package.dependencies] +exceptiongroup = {version = ">=1.0.2", markers = "python_version < \"3.11\""} +idna = ">=2.8" +sniffio = ">=1.1" +typing-extensions = {version = ">=4.1", markers = "python_version < \"3.11\""} + +[package.extras] +doc = ["Sphinx (>=7)", "packaging", "sphinx-autodoc-typehints (>=1.2.0)", "sphinx-rtd-theme"] +test = ["anyio[trio]", "coverage[toml] (>=7)", "exceptiongroup (>=1.2.0)", "hypothesis (>=4.0)", "psutil (>=5.9)", "pytest (>=7.0)", "pytest-mock (>=3.6.1)", "trustme", "uvloop (>=0.17)"] +trio = ["trio (>=0.23)"] + +[[package]] +name = "appnope" +version = "0.1.4" +description = "Disable App Nap on macOS >= 10.9" +optional = false +python-versions = ">=3.6" +files = [ + {file = "appnope-0.1.4-py2.py3-none-any.whl", hash = "sha256:502575ee11cd7a28c0205f379b525beefebab9d161b7c964670864014ed7213c"}, + {file = "appnope-0.1.4.tar.gz", hash = "sha256:1de3860566df9caf38f01f86f65e0e13e379af54f9e4bee1e66b48f2efffd1ee"}, +] + +[[package]] +name = "argon2-cffi" +version = "23.1.0" +description = "Argon2 for Python" +optional = false +python-versions = ">=3.7" +files = [ + {file = "argon2_cffi-23.1.0-py3-none-any.whl", hash = "sha256:c670642b78ba29641818ab2e68bd4e6a78ba53b7eff7b4c3815ae16abf91c7ea"}, + {file = "argon2_cffi-23.1.0.tar.gz", hash = "sha256:879c3e79a2729ce768ebb7d36d4609e3a78a4ca2ec3a9f12286ca057e3d0db08"}, +] + +[package.dependencies] +argon2-cffi-bindings = "*" + +[package.extras] +dev = ["argon2-cffi[tests,typing]", "tox (>4)"] +docs = ["furo", "myst-parser", "sphinx", "sphinx-copybutton", "sphinx-notfound-page"] +tests = ["hypothesis", "pytest"] +typing = ["mypy"] + +[[package]] +name = "argon2-cffi-bindings" +version = "21.2.0" +description = "Low-level CFFI bindings for Argon2" +optional = false +python-versions = ">=3.6" +files = [ + {file = "argon2-cffi-bindings-21.2.0.tar.gz", hash = "sha256:bb89ceffa6c791807d1305ceb77dbfacc5aa499891d2c55661c6459651fc39e3"}, + {file = "argon2_cffi_bindings-21.2.0-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:ccb949252cb2ab3a08c02024acb77cfb179492d5701c7cbdbfd776124d4d2367"}, + {file = "argon2_cffi_bindings-21.2.0-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9524464572e12979364b7d600abf96181d3541da11e23ddf565a32e70bd4dc0d"}, + {file = "argon2_cffi_bindings-21.2.0-cp36-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b746dba803a79238e925d9046a63aa26bf86ab2a2fe74ce6b009a1c3f5c8f2ae"}, + {file = "argon2_cffi_bindings-21.2.0-cp36-abi3-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:58ed19212051f49a523abb1dbe954337dc82d947fb6e5a0da60f7c8471a8476c"}, + {file = "argon2_cffi_bindings-21.2.0-cp36-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:bd46088725ef7f58b5a1ef7ca06647ebaf0eb4baff7d1d0d177c6cc8744abd86"}, + {file = "argon2_cffi_bindings-21.2.0-cp36-abi3-musllinux_1_1_i686.whl", hash = "sha256:8cd69c07dd875537a824deec19f978e0f2078fdda07fd5c42ac29668dda5f40f"}, + {file = "argon2_cffi_bindings-21.2.0-cp36-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:f1152ac548bd5b8bcecfb0b0371f082037e47128653df2e8ba6e914d384f3c3e"}, + {file = "argon2_cffi_bindings-21.2.0-cp36-abi3-win32.whl", hash = "sha256:603ca0aba86b1349b147cab91ae970c63118a0f30444d4bc80355937c950c082"}, + {file = "argon2_cffi_bindings-21.2.0-cp36-abi3-win_amd64.whl", hash = "sha256:b2ef1c30440dbbcba7a5dc3e319408b59676e2e039e2ae11a8775ecf482b192f"}, + {file = "argon2_cffi_bindings-21.2.0-cp38-abi3-macosx_10_9_universal2.whl", hash = "sha256:e415e3f62c8d124ee16018e491a009937f8cf7ebf5eb430ffc5de21b900dad93"}, + {file = "argon2_cffi_bindings-21.2.0-pp37-pypy37_pp73-macosx_10_9_x86_64.whl", hash = "sha256:3e385d1c39c520c08b53d63300c3ecc28622f076f4c2b0e6d7e796e9f6502194"}, + {file = "argon2_cffi_bindings-21.2.0-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2c3e3cc67fdb7d82c4718f19b4e7a87123caf8a93fde7e23cf66ac0337d3cb3f"}, + {file = "argon2_cffi_bindings-21.2.0-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6a22ad9800121b71099d0fb0a65323810a15f2e292f2ba450810a7316e128ee5"}, + {file = "argon2_cffi_bindings-21.2.0-pp37-pypy37_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f9f8b450ed0547e3d473fdc8612083fd08dd2120d6ac8f73828df9b7d45bb351"}, + {file = "argon2_cffi_bindings-21.2.0-pp37-pypy37_pp73-win_amd64.whl", hash = "sha256:93f9bf70084f97245ba10ee36575f0c3f1e7d7724d67d8e5b08e61787c320ed7"}, + {file = "argon2_cffi_bindings-21.2.0-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:3b9ef65804859d335dc6b31582cad2c5166f0c3e7975f324d9ffaa34ee7e6583"}, + {file = "argon2_cffi_bindings-21.2.0-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d4966ef5848d820776f5f562a7d45fdd70c2f330c961d0d745b784034bd9f48d"}, + {file = "argon2_cffi_bindings-21.2.0-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:20ef543a89dee4db46a1a6e206cd015360e5a75822f76df533845c3cbaf72670"}, + {file = "argon2_cffi_bindings-21.2.0-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ed2937d286e2ad0cc79a7087d3c272832865f779430e0cc2b4f3718d3159b0cb"}, + {file = "argon2_cffi_bindings-21.2.0-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:5e00316dabdaea0b2dd82d141cc66889ced0cdcbfa599e8b471cf22c620c329a"}, +] + +[package.dependencies] +cffi = ">=1.0.1" + +[package.extras] +dev = ["cogapp", "pre-commit", "pytest", "wheel"] +tests = ["pytest"] + +[[package]] +name = "arrow" +version = "1.3.0" +description = "Better dates & times for Python" +optional = false +python-versions = ">=3.8" +files = [ + {file = "arrow-1.3.0-py3-none-any.whl", hash = "sha256:c728b120ebc00eb84e01882a6f5e7927a53960aa990ce7dd2b10f39005a67f80"}, + {file = "arrow-1.3.0.tar.gz", hash = "sha256:d4540617648cb5f895730f1ad8c82a65f2dad0166f57b75f3ca54759c4d67a85"}, +] + +[package.dependencies] +python-dateutil = ">=2.7.0" +types-python-dateutil = ">=2.8.10" + +[package.extras] +doc = ["doc8", "sphinx (>=7.0.0)", "sphinx-autobuild", "sphinx-autodoc-typehints", "sphinx_rtd_theme (>=1.3.0)"] +test = ["dateparser (==1.*)", "pre-commit", "pytest", "pytest-cov", "pytest-mock", "pytz (==2021.1)", "simplejson (==3.*)"] + +[[package]] +name = "asttokens" +version = "2.4.1" +description = "Annotate AST trees with source code positions" +optional = false +python-versions = "*" +files = [ + {file = "asttokens-2.4.1-py2.py3-none-any.whl", hash = "sha256:051ed49c3dcae8913ea7cd08e46a606dba30b79993209636c4875bc1d637bc24"}, + {file = "asttokens-2.4.1.tar.gz", hash = "sha256:b03869718ba9a6eb027e134bfdf69f38a236d681c83c160d510768af11254ba0"}, +] + +[package.dependencies] +six = ">=1.12.0" + +[package.extras] +astroid = ["astroid (>=1,<2)", "astroid (>=2,<4)"] +test = ["astroid (>=1,<2)", "astroid (>=2,<4)", "pytest"] + +[[package]] +name = "attrs" +version = "23.2.0" +description = "Classes Without Boilerplate" +optional = false +python-versions = ">=3.7" +files = [ + {file = "attrs-23.2.0-py3-none-any.whl", hash = "sha256:99b87a485a5820b23b879f04c2305b44b951b502fd64be915879d77a7e8fc6f1"}, + {file = "attrs-23.2.0.tar.gz", hash = "sha256:935dc3b529c262f6cf76e50877d35a4bd3c1de194fd41f47a2b7ae8f19971f30"}, +] + +[package.extras] +cov = ["attrs[tests]", "coverage[toml] (>=5.3)"] +dev = ["attrs[tests]", "pre-commit"] +docs = ["furo", "myst-parser", "sphinx", "sphinx-notfound-page", "sphinxcontrib-towncrier", "towncrier", "zope-interface"] +tests = ["attrs[tests-no-zope]", "zope-interface"] +tests-mypy = ["mypy (>=1.6)", "pytest-mypy-plugins"] +tests-no-zope = ["attrs[tests-mypy]", "cloudpickle", "hypothesis", "pympler", "pytest (>=4.3.0)", "pytest-xdist[psutil]"] + +[[package]] +name = "babel" +version = "2.14.0" +description = "Internationalization utilities" +optional = false +python-versions = ">=3.7" +files = [ + {file = "Babel-2.14.0-py3-none-any.whl", hash = "sha256:efb1a25b7118e67ce3a259bed20545c29cb68be8ad2c784c83689981b7a57287"}, + {file = "Babel-2.14.0.tar.gz", hash = "sha256:6919867db036398ba21eb5c7a0f6b28ab8cbc3ae7a73a44ebe34ae74a4e7d363"}, +] + +[package.extras] +dev = ["freezegun (>=1.0,<2.0)", "pytest (>=6.0)", "pytest-cov"] + +[[package]] +name = "beautifulsoup4" +version = "4.12.3" +description = "Screen-scraping library" +optional = false +python-versions = ">=3.6.0" +files = [ + {file = "beautifulsoup4-4.12.3-py3-none-any.whl", hash = "sha256:b80878c9f40111313e55da8ba20bdba06d8fa3969fc68304167741bbf9e082ed"}, + {file = "beautifulsoup4-4.12.3.tar.gz", hash = "sha256:74e3d1928edc070d21748185c46e3fb33490f22f52a3addee9aee0f4f7781051"}, +] + +[package.dependencies] +soupsieve = ">1.2" + +[package.extras] +cchardet = ["cchardet"] +chardet = ["chardet"] +charset-normalizer = ["charset-normalizer"] +html5lib = ["html5lib"] +lxml = ["lxml"] + +[[package]] +name = "black" +version = "24.2.0" +description = "The uncompromising code formatter." +optional = false +python-versions = ">=3.8" +files = [ + {file = "black-24.2.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:6981eae48b3b33399c8757036c7f5d48a535b962a7c2310d19361edeef64ce29"}, + {file = "black-24.2.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:d533d5e3259720fdbc1b37444491b024003e012c5173f7d06825a77508085430"}, + {file = "black-24.2.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:61a0391772490ddfb8a693c067df1ef5227257e72b0e4108482b8d41b5aee13f"}, + {file = "black-24.2.0-cp310-cp310-win_amd64.whl", hash = "sha256:992e451b04667116680cb88f63449267c13e1ad134f30087dec8527242e9862a"}, + {file = "black-24.2.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:163baf4ef40e6897a2a9b83890e59141cc8c2a98f2dda5080dc15c00ee1e62cd"}, + {file = "black-24.2.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:e37c99f89929af50ffaf912454b3e3b47fd64109659026b678c091a4cd450fb2"}, + {file = "black-24.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4f9de21bafcba9683853f6c96c2d515e364aee631b178eaa5145fc1c61a3cc92"}, + {file = "black-24.2.0-cp311-cp311-win_amd64.whl", hash = "sha256:9db528bccb9e8e20c08e716b3b09c6bdd64da0dd129b11e160bf082d4642ac23"}, + {file = "black-24.2.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:d84f29eb3ee44859052073b7636533ec995bd0f64e2fb43aeceefc70090e752b"}, + {file = "black-24.2.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:1e08fb9a15c914b81dd734ddd7fb10513016e5ce7e6704bdd5e1251ceee51ac9"}, + {file = "black-24.2.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:810d445ae6069ce64030c78ff6127cd9cd178a9ac3361435708b907d8a04c693"}, + {file = "black-24.2.0-cp312-cp312-win_amd64.whl", hash = "sha256:ba15742a13de85e9b8f3239c8f807723991fbfae24bad92d34a2b12e81904982"}, + {file = "black-24.2.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:7e53a8c630f71db01b28cd9602a1ada68c937cbf2c333e6ed041390d6968faf4"}, + {file = "black-24.2.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:93601c2deb321b4bad8f95df408e3fb3943d85012dddb6121336b8e24a0d1218"}, + {file = "black-24.2.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a0057f800de6acc4407fe75bb147b0c2b5cbb7c3ed110d3e5999cd01184d53b0"}, + {file = "black-24.2.0-cp38-cp38-win_amd64.whl", hash = "sha256:faf2ee02e6612577ba0181f4347bcbcf591eb122f7841ae5ba233d12c39dcb4d"}, + {file = "black-24.2.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:057c3dc602eaa6fdc451069bd027a1b2635028b575a6c3acfd63193ced20d9c8"}, + {file = "black-24.2.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:08654d0797e65f2423f850fc8e16a0ce50925f9337fb4a4a176a7aa4026e63f8"}, + {file = "black-24.2.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ca610d29415ee1a30a3f30fab7a8f4144e9d34c89a235d81292a1edb2b55f540"}, + {file = "black-24.2.0-cp39-cp39-win_amd64.whl", hash = "sha256:4dd76e9468d5536abd40ffbc7a247f83b2324f0c050556d9c371c2b9a9a95e31"}, + {file = "black-24.2.0-py3-none-any.whl", hash = "sha256:e8a6ae970537e67830776488bca52000eaa37fa63b9988e8c487458d9cd5ace6"}, + {file = "black-24.2.0.tar.gz", hash = "sha256:bce4f25c27c3435e4dace4815bcb2008b87e167e3bf4ee47ccdc5ce906eb4894"}, +] + +[package.dependencies] +click = ">=8.0.0" +mypy-extensions = ">=0.4.3" +packaging = ">=22.0" +pathspec = ">=0.9.0" +platformdirs = ">=2" +tomli = {version = ">=1.1.0", markers = "python_version < \"3.11\""} +typing-extensions = {version = ">=4.0.1", markers = "python_version < \"3.11\""} + +[package.extras] +colorama = ["colorama (>=0.4.3)"] +d = ["aiohttp (>=3.7.4)", "aiohttp (>=3.7.4,!=3.9.0)"] +jupyter = ["ipython (>=7.8.0)", "tokenize-rt (>=3.2.0)"] +uvloop = ["uvloop (>=0.15.2)"] + +[[package]] +name = "bleach" +version = "6.1.0" +description = "An easy safelist-based HTML-sanitizing tool." +optional = false +python-versions = ">=3.8" +files = [ + {file = "bleach-6.1.0-py3-none-any.whl", hash = "sha256:3225f354cfc436b9789c66c4ee030194bee0568fbf9cbdad3bc8b5c26c5f12b6"}, + {file = "bleach-6.1.0.tar.gz", hash = "sha256:0a31f1837963c41d46bbf1331b8778e1308ea0791db03cc4e7357b97cf42a8fe"}, +] + +[package.dependencies] +six = ">=1.9.0" +webencodings = "*" + +[package.extras] +css = ["tinycss2 (>=1.1.0,<1.3)"] + +[[package]] +name = "certifi" +version = "2024.2.2" +description = "Python package for providing Mozilla's CA Bundle." +optional = false +python-versions = ">=3.6" +files = [ + {file = "certifi-2024.2.2-py3-none-any.whl", hash = "sha256:dc383c07b76109f368f6106eee2b593b04a011ea4d55f652c6ca24a754d1cdd1"}, + {file = "certifi-2024.2.2.tar.gz", hash = "sha256:0569859f95fc761b18b45ef421b1290a0f65f147e92a1e5eb3e635f9a5e4e66f"}, +] + +[[package]] +name = "cffi" +version = "1.16.0" +description = "Foreign Function Interface for Python calling C code." +optional = false +python-versions = ">=3.8" +files = [ + {file = "cffi-1.16.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:6b3d6606d369fc1da4fd8c357d026317fbb9c9b75d36dc16e90e84c26854b088"}, + {file = "cffi-1.16.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:ac0f5edd2360eea2f1daa9e26a41db02dd4b0451b48f7c318e217ee092a213e9"}, + {file = "cffi-1.16.0-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7e61e3e4fa664a8588aa25c883eab612a188c725755afff6289454d6362b9673"}, + {file = "cffi-1.16.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a72e8961a86d19bdb45851d8f1f08b041ea37d2bd8d4fd19903bc3083d80c896"}, + {file = "cffi-1.16.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5b50bf3f55561dac5438f8e70bfcdfd74543fd60df5fa5f62d94e5867deca684"}, + {file = "cffi-1.16.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7651c50c8c5ef7bdb41108b7b8c5a83013bfaa8a935590c5d74627c047a583c7"}, + {file = "cffi-1.16.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e4108df7fe9b707191e55f33efbcb2d81928e10cea45527879a4749cbe472614"}, + {file = "cffi-1.16.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:32c68ef735dbe5857c810328cb2481e24722a59a2003018885514d4c09af9743"}, + {file = "cffi-1.16.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:673739cb539f8cdaa07d92d02efa93c9ccf87e345b9a0b556e3ecc666718468d"}, + {file = "cffi-1.16.0-cp310-cp310-win32.whl", hash = "sha256:9f90389693731ff1f659e55c7d1640e2ec43ff725cc61b04b2f9c6d8d017df6a"}, + {file = "cffi-1.16.0-cp310-cp310-win_amd64.whl", hash = "sha256:e6024675e67af929088fda399b2094574609396b1decb609c55fa58b028a32a1"}, + {file = "cffi-1.16.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:b84834d0cf97e7d27dd5b7f3aca7b6e9263c56308ab9dc8aae9784abb774d404"}, + {file = "cffi-1.16.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:1b8ebc27c014c59692bb2664c7d13ce7a6e9a629be20e54e7271fa696ff2b417"}, + {file = "cffi-1.16.0-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ee07e47c12890ef248766a6e55bd38ebfb2bb8edd4142d56db91b21ea68b7627"}, + {file = "cffi-1.16.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d8a9d3ebe49f084ad71f9269834ceccbf398253c9fac910c4fd7053ff1386936"}, + {file = "cffi-1.16.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e70f54f1796669ef691ca07d046cd81a29cb4deb1e5f942003f401c0c4a2695d"}, + {file = "cffi-1.16.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5bf44d66cdf9e893637896c7faa22298baebcd18d1ddb6d2626a6e39793a1d56"}, + {file = "cffi-1.16.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7b78010e7b97fef4bee1e896df8a4bbb6712b7f05b7ef630f9d1da00f6444d2e"}, + {file = "cffi-1.16.0-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:c6a164aa47843fb1b01e941d385aab7215563bb8816d80ff3a363a9f8448a8dc"}, + {file = "cffi-1.16.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:e09f3ff613345df5e8c3667da1d918f9149bd623cd9070c983c013792a9a62eb"}, + {file = "cffi-1.16.0-cp311-cp311-win32.whl", hash = "sha256:2c56b361916f390cd758a57f2e16233eb4f64bcbeee88a4881ea90fca14dc6ab"}, + {file = "cffi-1.16.0-cp311-cp311-win_amd64.whl", hash = "sha256:db8e577c19c0fda0beb7e0d4e09e0ba74b1e4c092e0e40bfa12fe05b6f6d75ba"}, + {file = "cffi-1.16.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:fa3a0128b152627161ce47201262d3140edb5a5c3da88d73a1b790a959126956"}, + {file = "cffi-1.16.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:68e7c44931cc171c54ccb702482e9fc723192e88d25a0e133edd7aff8fcd1f6e"}, + {file = "cffi-1.16.0-cp312-cp312-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:abd808f9c129ba2beda4cfc53bde801e5bcf9d6e0f22f095e45327c038bfe68e"}, + {file = "cffi-1.16.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:88e2b3c14bdb32e440be531ade29d3c50a1a59cd4e51b1dd8b0865c54ea5d2e2"}, + {file = "cffi-1.16.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:fcc8eb6d5902bb1cf6dc4f187ee3ea80a1eba0a89aba40a5cb20a5087d961357"}, + {file = "cffi-1.16.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b7be2d771cdba2942e13215c4e340bfd76398e9227ad10402a8767ab1865d2e6"}, + {file = "cffi-1.16.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e715596e683d2ce000574bae5d07bd522c781a822866c20495e52520564f0969"}, + {file = "cffi-1.16.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:2d92b25dbf6cae33f65005baf472d2c245c050b1ce709cc4588cdcdd5495b520"}, + {file = "cffi-1.16.0-cp312-cp312-win32.whl", hash = "sha256:b2ca4e77f9f47c55c194982e10f058db063937845bb2b7a86c84a6cfe0aefa8b"}, + {file = "cffi-1.16.0-cp312-cp312-win_amd64.whl", hash = "sha256:68678abf380b42ce21a5f2abde8efee05c114c2fdb2e9eef2efdb0257fba1235"}, + {file = "cffi-1.16.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:0c9ef6ff37e974b73c25eecc13952c55bceed9112be2d9d938ded8e856138bcc"}, + {file = "cffi-1.16.0-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a09582f178759ee8128d9270cd1344154fd473bb77d94ce0aeb2a93ebf0feaf0"}, + {file = "cffi-1.16.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e760191dd42581e023a68b758769e2da259b5d52e3103c6060ddc02c9edb8d7b"}, + {file = "cffi-1.16.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:80876338e19c951fdfed6198e70bc88f1c9758b94578d5a7c4c91a87af3cf31c"}, + {file = "cffi-1.16.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a6a14b17d7e17fa0d207ac08642c8820f84f25ce17a442fd15e27ea18d67c59b"}, + {file = "cffi-1.16.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6602bc8dc6f3a9e02b6c22c4fc1e47aa50f8f8e6d3f78a5e16ac33ef5fefa324"}, + {file = "cffi-1.16.0-cp38-cp38-win32.whl", hash = "sha256:131fd094d1065b19540c3d72594260f118b231090295d8c34e19a7bbcf2e860a"}, + {file = "cffi-1.16.0-cp38-cp38-win_amd64.whl", hash = "sha256:31d13b0f99e0836b7ff893d37af07366ebc90b678b6664c955b54561fc36ef36"}, + {file = "cffi-1.16.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:582215a0e9adbe0e379761260553ba11c58943e4bbe9c36430c4ca6ac74b15ed"}, + {file = "cffi-1.16.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:b29ebffcf550f9da55bec9e02ad430c992a87e5f512cd63388abb76f1036d8d2"}, + {file = "cffi-1.16.0-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:dc9b18bf40cc75f66f40a7379f6a9513244fe33c0e8aa72e2d56b0196a7ef872"}, + {file = "cffi-1.16.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9cb4a35b3642fc5c005a6755a5d17c6c8b6bcb6981baf81cea8bfbc8903e8ba8"}, + {file = "cffi-1.16.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b86851a328eedc692acf81fb05444bdf1891747c25af7529e39ddafaf68a4f3f"}, + {file = "cffi-1.16.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c0f31130ebc2d37cdd8e44605fb5fa7ad59049298b3f745c74fa74c62fbfcfc4"}, + {file = "cffi-1.16.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8f8e709127c6c77446a8c0a8c8bf3c8ee706a06cd44b1e827c3e6a2ee6b8c098"}, + {file = "cffi-1.16.0-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:748dcd1e3d3d7cd5443ef03ce8685043294ad6bd7c02a38d1bd367cfd968e000"}, + {file = "cffi-1.16.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:8895613bcc094d4a1b2dbe179d88d7fb4a15cee43c052e8885783fac397d91fe"}, + {file = "cffi-1.16.0-cp39-cp39-win32.whl", hash = "sha256:ed86a35631f7bfbb28e108dd96773b9d5a6ce4811cf6ea468bb6a359b256b1e4"}, + {file = "cffi-1.16.0-cp39-cp39-win_amd64.whl", hash = "sha256:3686dffb02459559c74dd3d81748269ffb0eb027c39a6fc99502de37d501faa8"}, + {file = "cffi-1.16.0.tar.gz", hash = "sha256:bcb3ef43e58665bbda2fb198698fcae6776483e0c4a631aa5647806c25e02cc0"}, +] + +[package.dependencies] +pycparser = "*" + +[[package]] +name = "cfgv" +version = "3.4.0" +description = "Validate configuration and produce human readable error messages." +optional = false +python-versions = ">=3.8" +files = [ + {file = "cfgv-3.4.0-py2.py3-none-any.whl", hash = "sha256:b7265b1f29fd3316bfcd2b330d63d024f2bfd8bcb8b0272f8e19a504856c48f9"}, + {file = "cfgv-3.4.0.tar.gz", hash = "sha256:e52591d4c5f5dead8e0f673fb16db7949d2cfb3f7da4582893288f0ded8fe560"}, +] + +[[package]] +name = "charset-normalizer" +version = "3.3.2" +description = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet." +optional = false +python-versions = ">=3.7.0" +files = [ + {file = "charset-normalizer-3.3.2.tar.gz", hash = "sha256:f30c3cb33b24454a82faecaf01b19c18562b1e89558fb6c56de4d9118a032fd5"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:25baf083bf6f6b341f4121c2f3c548875ee6f5339300e08be3f2b2ba1721cdd3"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:06435b539f889b1f6f4ac1758871aae42dc3a8c0e24ac9e60c2384973ad73027"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9063e24fdb1e498ab71cb7419e24622516c4a04476b17a2dab57e8baa30d6e03"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6897af51655e3691ff853668779c7bad41579facacf5fd7253b0133308cf000d"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1d3193f4a680c64b4b6a9115943538edb896edc190f0b222e73761716519268e"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:cd70574b12bb8a4d2aaa0094515df2463cb429d8536cfb6c7ce983246983e5a6"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8465322196c8b4d7ab6d1e049e4c5cb460d0394da4a27d23cc242fbf0034b6b5"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a9a8e9031d613fd2009c182b69c7b2c1ef8239a0efb1df3f7c8da66d5dd3d537"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:beb58fe5cdb101e3a055192ac291b7a21e3b7ef4f67fa1d74e331a7f2124341c"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:e06ed3eb3218bc64786f7db41917d4e686cc4856944f53d5bdf83a6884432e12"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:2e81c7b9c8979ce92ed306c249d46894776a909505d8f5a4ba55b14206e3222f"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:572c3763a264ba47b3cf708a44ce965d98555f618ca42c926a9c1616d8f34269"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:fd1abc0d89e30cc4e02e4064dc67fcc51bd941eb395c502aac3ec19fab46b519"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-win32.whl", hash = "sha256:3d47fa203a7bd9c5b6cee4736ee84ca03b8ef23193c0d1ca99b5089f72645c73"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-win_amd64.whl", hash = "sha256:10955842570876604d404661fbccbc9c7e684caf432c09c715ec38fbae45ae09"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:802fe99cca7457642125a8a88a084cef28ff0cf9407060f7b93dca5aa25480db"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:573f6eac48f4769d667c4442081b1794f52919e7edada77495aaed9236d13a96"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:549a3a73da901d5bc3ce8d24e0600d1fa85524c10287f6004fbab87672bf3e1e"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f27273b60488abe721a075bcca6d7f3964f9f6f067c8c4c605743023d7d3944f"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1ceae2f17a9c33cb48e3263960dc5fc8005351ee19db217e9b1bb15d28c02574"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:65f6f63034100ead094b8744b3b97965785388f308a64cf8d7c34f2f2e5be0c4"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:753f10e867343b4511128c6ed8c82f7bec3bd026875576dfd88483c5c73b2fd8"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4a78b2b446bd7c934f5dcedc588903fb2f5eec172f3d29e52a9096a43722adfc"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:e537484df0d8f426ce2afb2d0f8e1c3d0b114b83f8850e5f2fbea0e797bd82ae"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:eb6904c354526e758fda7167b33005998fb68c46fbc10e013ca97f21ca5c8887"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:deb6be0ac38ece9ba87dea880e438f25ca3eddfac8b002a2ec3d9183a454e8ae"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:4ab2fe47fae9e0f9dee8c04187ce5d09f48eabe611be8259444906793ab7cbce"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:80402cd6ee291dcb72644d6eac93785fe2c8b9cb30893c1af5b8fdd753b9d40f"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-win32.whl", hash = "sha256:7cd13a2e3ddeed6913a65e66e94b51d80a041145a026c27e6bb76c31a853c6ab"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-win_amd64.whl", hash = "sha256:663946639d296df6a2bb2aa51b60a2454ca1cb29835324c640dafb5ff2131a77"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:0b2b64d2bb6d3fb9112bafa732def486049e63de9618b5843bcdd081d8144cd8"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:ddbb2551d7e0102e7252db79ba445cdab71b26640817ab1e3e3648dad515003b"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:55086ee1064215781fff39a1af09518bc9255b50d6333f2e4c74ca09fac6a8f6"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8f4a014bc36d3c57402e2977dada34f9c12300af536839dc38c0beab8878f38a"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a10af20b82360ab00827f916a6058451b723b4e65030c5a18577c8b2de5b3389"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8d756e44e94489e49571086ef83b2bb8ce311e730092d2c34ca8f7d925cb20aa"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:90d558489962fd4918143277a773316e56c72da56ec7aa3dc3dbbe20fdfed15b"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6ac7ffc7ad6d040517be39eb591cac5ff87416c2537df6ba3cba3bae290c0fed"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:7ed9e526742851e8d5cc9e6cf41427dfc6068d4f5a3bb03659444b4cabf6bc26"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:8bdb58ff7ba23002a4c5808d608e4e6c687175724f54a5dade5fa8c67b604e4d"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_ppc64le.whl", hash = "sha256:6b3251890fff30ee142c44144871185dbe13b11bab478a88887a639655be1068"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_s390x.whl", hash = "sha256:b4a23f61ce87adf89be746c8a8974fe1c823c891d8f86eb218bb957c924bb143"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:efcb3f6676480691518c177e3b465bcddf57cea040302f9f4e6e191af91174d4"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-win32.whl", hash = "sha256:d965bba47ddeec8cd560687584e88cf699fd28f192ceb452d1d7ee807c5597b7"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-win_amd64.whl", hash = "sha256:96b02a3dc4381e5494fad39be677abcb5e6634bf7b4fa83a6dd3112607547001"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:95f2a5796329323b8f0512e09dbb7a1860c46a39da62ecb2324f116fa8fdc85c"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c002b4ffc0be611f0d9da932eb0f704fe2602a9a949d1f738e4c34c75b0863d5"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a981a536974bbc7a512cf44ed14938cf01030a99e9b3a06dd59578882f06f985"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3287761bc4ee9e33561a7e058c72ac0938c4f57fe49a09eae428fd88aafe7bb6"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:42cb296636fcc8b0644486d15c12376cb9fa75443e00fb25de0b8602e64c1714"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0a55554a2fa0d408816b3b5cedf0045f4b8e1a6065aec45849de2d6f3f8e9786"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:c083af607d2515612056a31f0a8d9e0fcb5876b7bfc0abad3ecd275bc4ebc2d5"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:87d1351268731db79e0f8e745d92493ee2841c974128ef629dc518b937d9194c"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:bd8f7df7d12c2db9fab40bdd87a7c09b1530128315d047a086fa3ae3435cb3a8"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_s390x.whl", hash = "sha256:c180f51afb394e165eafe4ac2936a14bee3eb10debc9d9e4db8958fe36afe711"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:8c622a5fe39a48f78944a87d4fb8a53ee07344641b0562c540d840748571b811"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-win32.whl", hash = "sha256:db364eca23f876da6f9e16c9da0df51aa4f104a972735574842618b8c6d999d4"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-win_amd64.whl", hash = "sha256:86216b5cee4b06df986d214f664305142d9c76df9b6512be2738aa72a2048f99"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:6463effa3186ea09411d50efc7d85360b38d5f09b870c48e4600f63af490e56a"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:6c4caeef8fa63d06bd437cd4bdcf3ffefe6738fb1b25951440d80dc7df8c03ac"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:37e55c8e51c236f95b033f6fb391d7d7970ba5fe7ff453dad675e88cf303377a"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fb69256e180cb6c8a894fee62b3afebae785babc1ee98b81cdf68bbca1987f33"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ae5f4161f18c61806f411a13b0310bea87f987c7d2ecdbdaad0e94eb2e404238"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b2b0a0c0517616b6869869f8c581d4eb2dd83a4d79e0ebcb7d373ef9956aeb0a"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:45485e01ff4d3630ec0d9617310448a8702f70e9c01906b0d0118bdf9d124cf2"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:eb00ed941194665c332bf8e078baf037d6c35d7c4f3102ea2d4f16ca94a26dc8"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:2127566c664442652f024c837091890cb1942c30937add288223dc895793f898"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:a50aebfa173e157099939b17f18600f72f84eed3049e743b68ad15bd69b6bf99"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:4d0d1650369165a14e14e1e47b372cfcb31d6ab44e6e33cb2d4e57265290044d"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:923c0c831b7cfcb071580d3f46c4baf50f174be571576556269530f4bbd79d04"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:06a81e93cd441c56a9b65d8e1d043daeb97a3d0856d177d5c90ba85acb3db087"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-win32.whl", hash = "sha256:6ef1d82a3af9d3eecdba2321dc1b3c238245d890843e040e41e470ffa64c3e25"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-win_amd64.whl", hash = "sha256:eb8821e09e916165e160797a6c17edda0679379a4be5c716c260e836e122f54b"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:c235ebd9baae02f1b77bcea61bce332cb4331dc3617d254df3323aa01ab47bd4"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:5b4c145409bef602a690e7cfad0a15a55c13320ff7a3ad7ca59c13bb8ba4d45d"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:68d1f8a9e9e37c1223b656399be5d6b448dea850bed7d0f87a8311f1ff3dabb0"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:22afcb9f253dac0696b5a4be4a1c0f8762f8239e21b99680099abd9b2b1b2269"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e27ad930a842b4c5eb8ac0016b0a54f5aebbe679340c26101df33424142c143c"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1f79682fbe303db92bc2b1136016a38a42e835d932bab5b3b1bfcfbf0640e519"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b261ccdec7821281dade748d088bb6e9b69e6d15b30652b74cbbac25e280b796"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:122c7fa62b130ed55f8f285bfd56d5f4b4a5b503609d181f9ad85e55c89f4185"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:d0eccceffcb53201b5bfebb52600a5fb483a20b61da9dbc885f8b103cbe7598c"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:9f96df6923e21816da7e0ad3fd47dd8f94b2a5ce594e00677c0013018b813458"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:7f04c839ed0b6b98b1a7501a002144b76c18fb1c1850c8b98d458ac269e26ed2"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:34d1c8da1e78d2e001f363791c98a272bb734000fcef47a491c1e3b0505657a8"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:ff8fa367d09b717b2a17a052544193ad76cd49979c805768879cb63d9ca50561"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-win32.whl", hash = "sha256:aed38f6e4fb3f5d6bf81bfa990a07806be9d83cf7bacef998ab1a9bd660a581f"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-win_amd64.whl", hash = "sha256:b01b88d45a6fcb69667cd6d2f7a9aeb4bf53760d7fc536bf679ec94fe9f3ff3d"}, + {file = "charset_normalizer-3.3.2-py3-none-any.whl", hash = "sha256:3e4d1f6587322d2788836a99c69062fbb091331ec940e02d12d179c1d53e25fc"}, +] + +[[package]] +name = "click" +version = "8.1.7" +description = "Composable command line interface toolkit" +optional = false +python-versions = ">=3.7" +files = [ + {file = "click-8.1.7-py3-none-any.whl", hash = "sha256:ae74fb96c20a0277a1d615f1e4d73c8414f5a98db8b799a7931d1582f3390c28"}, + {file = "click-8.1.7.tar.gz", hash = "sha256:ca9853ad459e787e2192211578cc907e7594e294c7ccc834310722b41b9ca6de"}, +] + +[package.dependencies] +colorama = {version = "*", markers = "platform_system == \"Windows\""} + +[[package]] +name = "colorama" +version = "0.4.6" +description = "Cross-platform colored terminal text." +optional = false +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7" +files = [ + {file = "colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6"}, + {file = "colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44"}, +] + +[[package]] +name = "comm" +version = "0.2.1" +description = "Jupyter Python Comm implementation, for usage in ipykernel, xeus-python etc." +optional = false +python-versions = ">=3.8" +files = [ + {file = "comm-0.2.1-py3-none-any.whl", hash = "sha256:87928485c0dfc0e7976fd89fc1e187023cf587e7c353e4a9b417555b44adf021"}, + {file = "comm-0.2.1.tar.gz", hash = "sha256:0bc91edae1344d39d3661dcbc36937181fdaddb304790458f8b044dbc064b89a"}, +] + +[package.dependencies] +traitlets = ">=4" + +[package.extras] +test = ["pytest"] + +[[package]] +name = "contourpy" +version = "1.2.0" +description = "Python library for calculating contours of 2D quadrilateral grids" +optional = false +python-versions = ">=3.9" +files = [ + {file = "contourpy-1.2.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:0274c1cb63625972c0c007ab14dd9ba9e199c36ae1a231ce45d725cbcbfd10a8"}, + {file = "contourpy-1.2.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:ab459a1cbbf18e8698399c595a01f6dcc5c138220ca3ea9e7e6126232d102bb4"}, + {file = "contourpy-1.2.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6fdd887f17c2f4572ce548461e4f96396681212d858cae7bd52ba3310bc6f00f"}, + {file = "contourpy-1.2.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5d16edfc3fc09968e09ddffada434b3bf989bf4911535e04eada58469873e28e"}, + {file = "contourpy-1.2.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1c203f617abc0dde5792beb586f827021069fb6d403d7f4d5c2b543d87edceb9"}, + {file = "contourpy-1.2.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b69303ceb2e4d4f146bf82fda78891ef7bcd80c41bf16bfca3d0d7eb545448aa"}, + {file = "contourpy-1.2.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:884c3f9d42d7218304bc74a8a7693d172685c84bd7ab2bab1ee567b769696df9"}, + {file = "contourpy-1.2.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:4a1b1208102be6e851f20066bf0e7a96b7d48a07c9b0cfe6d0d4545c2f6cadab"}, + {file = "contourpy-1.2.0-cp310-cp310-win32.whl", hash = "sha256:34b9071c040d6fe45d9826cbbe3727d20d83f1b6110d219b83eb0e2a01d79488"}, + {file = "contourpy-1.2.0-cp310-cp310-win_amd64.whl", hash = "sha256:bd2f1ae63998da104f16a8b788f685e55d65760cd1929518fd94cd682bf03e41"}, + {file = "contourpy-1.2.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:dd10c26b4eadae44783c45ad6655220426f971c61d9b239e6f7b16d5cdaaa727"}, + {file = "contourpy-1.2.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:5c6b28956b7b232ae801406e529ad7b350d3f09a4fde958dfdf3c0520cdde0dd"}, + {file = "contourpy-1.2.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ebeac59e9e1eb4b84940d076d9f9a6cec0064e241818bcb6e32124cc5c3e377a"}, + {file = "contourpy-1.2.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:139d8d2e1c1dd52d78682f505e980f592ba53c9f73bd6be102233e358b401063"}, + {file = "contourpy-1.2.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1e9dc350fb4c58adc64df3e0703ab076f60aac06e67d48b3848c23647ae4310e"}, + {file = "contourpy-1.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:18fc2b4ed8e4a8fe849d18dce4bd3c7ea637758c6343a1f2bae1e9bd4c9f4686"}, + {file = "contourpy-1.2.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:16a7380e943a6d52472096cb7ad5264ecee36ed60888e2a3d3814991a0107286"}, + {file = "contourpy-1.2.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:8d8faf05be5ec8e02a4d86f616fc2a0322ff4a4ce26c0f09d9f7fb5330a35c95"}, + {file = "contourpy-1.2.0-cp311-cp311-win32.whl", hash = "sha256:67b7f17679fa62ec82b7e3e611c43a016b887bd64fb933b3ae8638583006c6d6"}, + {file = "contourpy-1.2.0-cp311-cp311-win_amd64.whl", hash = "sha256:99ad97258985328b4f207a5e777c1b44a83bfe7cf1f87b99f9c11d4ee477c4de"}, + {file = "contourpy-1.2.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:575bcaf957a25d1194903a10bc9f316c136c19f24e0985a2b9b5608bdf5dbfe0"}, + {file = "contourpy-1.2.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:9e6c93b5b2dbcedad20a2f18ec22cae47da0d705d454308063421a3b290d9ea4"}, + {file = "contourpy-1.2.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:464b423bc2a009088f19bdf1f232299e8b6917963e2b7e1d277da5041f33a779"}, + {file = "contourpy-1.2.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:68ce4788b7d93e47f84edd3f1f95acdcd142ae60bc0e5493bfd120683d2d4316"}, + {file = "contourpy-1.2.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3d7d1f8871998cdff5d2ff6a087e5e1780139abe2838e85b0b46b7ae6cc25399"}, + {file = "contourpy-1.2.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6e739530c662a8d6d42c37c2ed52a6f0932c2d4a3e8c1f90692ad0ce1274abe0"}, + {file = "contourpy-1.2.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:247b9d16535acaa766d03037d8e8fb20866d054d3c7fbf6fd1f993f11fc60ca0"}, + {file = "contourpy-1.2.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:461e3ae84cd90b30f8d533f07d87c00379644205b1d33a5ea03381edc4b69431"}, + {file = "contourpy-1.2.0-cp312-cp312-win32.whl", hash = "sha256:1c2559d6cffc94890b0529ea7eeecc20d6fadc1539273aa27faf503eb4656d8f"}, + {file = "contourpy-1.2.0-cp312-cp312-win_amd64.whl", hash = "sha256:491b1917afdd8638a05b611a56d46587d5a632cabead889a5440f7c638bc6ed9"}, + {file = "contourpy-1.2.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:5fd1810973a375ca0e097dee059c407913ba35723b111df75671a1976efa04bc"}, + {file = "contourpy-1.2.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:999c71939aad2780f003979b25ac5b8f2df651dac7b38fb8ce6c46ba5abe6ae9"}, + {file = "contourpy-1.2.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b7caf9b241464c404613512d5594a6e2ff0cc9cb5615c9475cc1d9b514218ae8"}, + {file = "contourpy-1.2.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:266270c6f6608340f6c9836a0fb9b367be61dde0c9a9a18d5ece97774105ff3e"}, + {file = "contourpy-1.2.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:dbd50d0a0539ae2e96e537553aff6d02c10ed165ef40c65b0e27e744a0f10af8"}, + {file = "contourpy-1.2.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:11f8d2554e52f459918f7b8e6aa20ec2a3bce35ce95c1f0ef4ba36fbda306df5"}, + {file = "contourpy-1.2.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:ce96dd400486e80ac7d195b2d800b03e3e6a787e2a522bfb83755938465a819e"}, + {file = "contourpy-1.2.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:6d3364b999c62f539cd403f8123ae426da946e142312a514162adb2addd8d808"}, + {file = "contourpy-1.2.0-cp39-cp39-win32.whl", hash = "sha256:1c88dfb9e0c77612febebb6ac69d44a8d81e3dc60f993215425b62c1161353f4"}, + {file = "contourpy-1.2.0-cp39-cp39-win_amd64.whl", hash = "sha256:78e6ad33cf2e2e80c5dfaaa0beec3d61face0fb650557100ee36db808bfa6843"}, + {file = "contourpy-1.2.0-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:be16975d94c320432657ad2402f6760990cb640c161ae6da1363051805fa8108"}, + {file = "contourpy-1.2.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b95a225d4948b26a28c08307a60ac00fb8671b14f2047fc5476613252a129776"}, + {file = "contourpy-1.2.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:0d7e03c0f9a4f90dc18d4e77e9ef4ec7b7bbb437f7f675be8e530d65ae6ef956"}, + {file = "contourpy-1.2.0.tar.gz", hash = "sha256:171f311cb758de7da13fc53af221ae47a5877be5a0843a9fe150818c51ed276a"}, +] + +[package.dependencies] +numpy = ">=1.20,<2.0" + +[package.extras] +bokeh = ["bokeh", "selenium"] +docs = ["furo", "sphinx (>=7.2)", "sphinx-copybutton"] +mypy = ["contourpy[bokeh,docs]", "docutils-stubs", "mypy (==1.6.1)", "types-Pillow"] +test = ["Pillow", "contourpy[test-no-images]", "matplotlib"] +test-no-images = ["pytest", "pytest-cov", "pytest-xdist", "wurlitzer"] + +[[package]] +name = "cycler" +version = "0.12.1" +description = "Composable style cycles" +optional = false +python-versions = ">=3.8" +files = [ + {file = "cycler-0.12.1-py3-none-any.whl", hash = "sha256:85cef7cff222d8644161529808465972e51340599459b8ac3ccbac5a854e0d30"}, + {file = "cycler-0.12.1.tar.gz", hash = "sha256:88bb128f02ba341da8ef447245a9e138fae777f6a23943da4540077d3601eb1c"}, +] + +[package.extras] +docs = ["ipython", "matplotlib", "numpydoc", "sphinx"] +tests = ["pytest", "pytest-cov", "pytest-xdist"] + +[[package]] +name = "debugpy" +version = "1.8.1" +description = "An implementation of the Debug Adapter Protocol for Python" +optional = false +python-versions = ">=3.8" +files = [ + {file = "debugpy-1.8.1-cp310-cp310-macosx_11_0_x86_64.whl", hash = "sha256:3bda0f1e943d386cc7a0e71bfa59f4137909e2ed947fb3946c506e113000f741"}, + {file = "debugpy-1.8.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dda73bf69ea479c8577a0448f8c707691152e6c4de7f0c4dec5a4bc11dee516e"}, + {file = "debugpy-1.8.1-cp310-cp310-win32.whl", hash = "sha256:3a79c6f62adef994b2dbe9fc2cc9cc3864a23575b6e387339ab739873bea53d0"}, + {file = "debugpy-1.8.1-cp310-cp310-win_amd64.whl", hash = "sha256:7eb7bd2b56ea3bedb009616d9e2f64aab8fc7000d481faec3cd26c98a964bcdd"}, + {file = "debugpy-1.8.1-cp311-cp311-macosx_11_0_universal2.whl", hash = "sha256:016a9fcfc2c6b57f939673c874310d8581d51a0fe0858e7fac4e240c5eb743cb"}, + {file = "debugpy-1.8.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fd97ed11a4c7f6d042d320ce03d83b20c3fb40da892f994bc041bbc415d7a099"}, + {file = "debugpy-1.8.1-cp311-cp311-win32.whl", hash = "sha256:0de56aba8249c28a300bdb0672a9b94785074eb82eb672db66c8144fff673146"}, + {file = "debugpy-1.8.1-cp311-cp311-win_amd64.whl", hash = "sha256:1a9fe0829c2b854757b4fd0a338d93bc17249a3bf69ecf765c61d4c522bb92a8"}, + {file = "debugpy-1.8.1-cp312-cp312-macosx_11_0_universal2.whl", hash = "sha256:3ebb70ba1a6524d19fa7bb122f44b74170c447d5746a503e36adc244a20ac539"}, + {file = "debugpy-1.8.1-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a2e658a9630f27534e63922ebf655a6ab60c370f4d2fc5c02a5b19baf4410ace"}, + {file = "debugpy-1.8.1-cp312-cp312-win32.whl", hash = "sha256:caad2846e21188797a1f17fc09c31b84c7c3c23baf2516fed5b40b378515bbf0"}, + {file = "debugpy-1.8.1-cp312-cp312-win_amd64.whl", hash = "sha256:edcc9f58ec0fd121a25bc950d4578df47428d72e1a0d66c07403b04eb93bcf98"}, + {file = "debugpy-1.8.1-cp38-cp38-macosx_11_0_x86_64.whl", hash = "sha256:7a3afa222f6fd3d9dfecd52729bc2e12c93e22a7491405a0ecbf9e1d32d45b39"}, + {file = "debugpy-1.8.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d915a18f0597ef685e88bb35e5d7ab968964b7befefe1aaea1eb5b2640b586c7"}, + {file = "debugpy-1.8.1-cp38-cp38-win32.whl", hash = "sha256:92116039b5500633cc8d44ecc187abe2dfa9b90f7a82bbf81d079fcdd506bae9"}, + {file = "debugpy-1.8.1-cp38-cp38-win_amd64.whl", hash = "sha256:e38beb7992b5afd9d5244e96ad5fa9135e94993b0c551ceebf3fe1a5d9beb234"}, + {file = "debugpy-1.8.1-cp39-cp39-macosx_11_0_x86_64.whl", hash = "sha256:bfb20cb57486c8e4793d41996652e5a6a885b4d9175dd369045dad59eaacea42"}, + {file = "debugpy-1.8.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:efd3fdd3f67a7e576dd869c184c5dd71d9aaa36ded271939da352880c012e703"}, + {file = "debugpy-1.8.1-cp39-cp39-win32.whl", hash = "sha256:58911e8521ca0c785ac7a0539f1e77e0ce2df753f786188f382229278b4cdf23"}, + {file = "debugpy-1.8.1-cp39-cp39-win_amd64.whl", hash = "sha256:6df9aa9599eb05ca179fb0b810282255202a66835c6efb1d112d21ecb830ddd3"}, + {file = "debugpy-1.8.1-py2.py3-none-any.whl", hash = "sha256:28acbe2241222b87e255260c76741e1fbf04fdc3b6d094fcf57b6c6f75ce1242"}, + {file = "debugpy-1.8.1.zip", hash = "sha256:f696d6be15be87aef621917585f9bb94b1dc9e8aced570db1b8a6fc14e8f9b42"}, +] + +[[package]] +name = "decorator" +version = "5.1.1" +description = "Decorators for Humans" +optional = false +python-versions = ">=3.5" +files = [ + {file = "decorator-5.1.1-py3-none-any.whl", hash = "sha256:b8c3f85900b9dc423225913c5aace94729fe1fa9763b38939a95226f02d37186"}, + {file = "decorator-5.1.1.tar.gz", hash = "sha256:637996211036b6385ef91435e4fae22989472f9d571faba8927ba8253acbc330"}, +] + +[[package]] +name = "defusedxml" +version = "0.7.1" +description = "XML bomb protection for Python stdlib modules" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" +files = [ + {file = "defusedxml-0.7.1-py2.py3-none-any.whl", hash = "sha256:a352e7e428770286cc899e2542b6cdaedb2b4953ff269a210103ec58f6198a61"}, + {file = "defusedxml-0.7.1.tar.gz", hash = "sha256:1bb3032db185915b62d7c6209c5a8792be6a32ab2fedacc84e01b52c51aa3e69"}, +] + +[[package]] +name = "distlib" +version = "0.3.8" +description = "Distribution utilities" +optional = false +python-versions = "*" +files = [ + {file = "distlib-0.3.8-py2.py3-none-any.whl", hash = "sha256:034db59a0b96f8ca18035f36290806a9a6e6bd9d1ff91e45a7f172eb17e51784"}, + {file = "distlib-0.3.8.tar.gz", hash = "sha256:1530ea13e350031b6312d8580ddb6b27a104275a31106523b8f123787f494f64"}, +] + +[[package]] +name = "docutils" +version = "0.19" +description = "Docutils -- Python Documentation Utilities" +optional = false +python-versions = ">=3.7" +files = [ + {file = "docutils-0.19-py3-none-any.whl", hash = "sha256:5e1de4d849fee02c63b040a4a3fd567f4ab104defd8a5511fbbc24a8a017efbc"}, + {file = "docutils-0.19.tar.gz", hash = "sha256:33995a6753c30b7f577febfc2c50411fec6aac7f7ffeb7c4cfe5991072dcf9e6"}, +] + +[[package]] +name = "entrypoints" +version = "0.4" +description = "Discover and load entry points from installed packages." +optional = false +python-versions = ">=3.6" +files = [ + {file = "entrypoints-0.4-py3-none-any.whl", hash = "sha256:f174b5ff827504fd3cd97cc3f8649f3693f51538c7e4bdf3ef002c8429d42f9f"}, + {file = "entrypoints-0.4.tar.gz", hash = "sha256:b706eddaa9218a19ebcd67b56818f05bb27589b1ca9e8d797b74affad4ccacd4"}, +] + +[[package]] +name = "exceptiongroup" +version = "1.2.0" +description = "Backport of PEP 654 (exception groups)" +optional = false +python-versions = ">=3.7" +files = [ + {file = "exceptiongroup-1.2.0-py3-none-any.whl", hash = "sha256:4bfd3996ac73b41e9b9628b04e079f193850720ea5945fc96a08633c66912f14"}, + {file = "exceptiongroup-1.2.0.tar.gz", hash = "sha256:91f5c769735f051a4290d52edd0858999b57e5876e9f85937691bd4c9fa3ed68"}, +] + +[package.extras] +test = ["pytest (>=6)"] + +[[package]] +name = "executing" +version = "2.0.1" +description = "Get the currently executing AST node of a frame, and other information" +optional = false +python-versions = ">=3.5" +files = [ + {file = "executing-2.0.1-py2.py3-none-any.whl", hash = "sha256:eac49ca94516ccc753f9fb5ce82603156e590b27525a8bc32cce8ae302eb61bc"}, + {file = "executing-2.0.1.tar.gz", hash = "sha256:35afe2ce3affba8ee97f2d69927fa823b08b472b7b994e36a52a964b93d16147"}, +] + +[package.extras] +tests = ["asttokens (>=2.1.0)", "coverage", "coverage-enable-subprocess", "ipython", "littleutils", "pytest", "rich"] + +[[package]] +name = "fastcore" +version = "1.3.20" +description = "Python supercharged for fastai development" +optional = false +python-versions = ">=3.6" +files = [ + {file = "fastcore-1.3.20-py3-none-any.whl", hash = "sha256:084ff680813f09cc85883b05bb616bdee09d214245840c6fb52fb16c71b1aced"}, + {file = "fastcore-1.3.20.tar.gz", hash = "sha256:cd45dcbfe5869cf174bc98eb931be609e8f8d55062bc3d68700a921136548a77"}, +] + +[package.dependencies] +packaging = "*" +pip = "*" + +[package.extras] +dev = ["matplotlib", "nbdev (>=0.2.39)", "numpy", "pandas", "pillow", "torch"] + +[[package]] +name = "fastjsonschema" +version = "2.19.1" +description = "Fastest Python implementation of JSON schema" +optional = false +python-versions = "*" +files = [ + {file = "fastjsonschema-2.19.1-py3-none-any.whl", hash = "sha256:3672b47bc94178c9f23dbb654bf47440155d4db9df5f7bc47643315f9c405cd0"}, + {file = "fastjsonschema-2.19.1.tar.gz", hash = "sha256:e3126a94bdc4623d3de4485f8d468a12f02a67921315ddc87836d6e456dc789d"}, +] + +[package.extras] +devel = ["colorama", "json-spec", "jsonschema", "pylint", "pytest", "pytest-benchmark", "pytest-cache", "validictory"] + +[[package]] +name = "fastprogress" +version = "1.0.0" +description = "A nested progress with plotting options for fastai" +optional = false +python-versions = ">=3.6" +files = [ + {file = "fastprogress-1.0.0-py3-none-any.whl", hash = "sha256:474cd6a6e5b1c29a02383d709bf71f502477d0849bddc6ba5aa80b683f4ad16f"}, + {file = "fastprogress-1.0.0.tar.gz", hash = "sha256:89e28ac1d2a5412aab18ee3f3dfd1ee8b5c1f2f7a44d0add0d0d4f69f0191bfe"}, +] + +[package.dependencies] +numpy = "*" + +[[package]] +name = "filelock" +version = "3.13.1" +description = "A platform independent file lock." +optional = false +python-versions = ">=3.8" +files = [ + {file = "filelock-3.13.1-py3-none-any.whl", hash = "sha256:57dbda9b35157b05fb3e58ee91448612eb674172fab98ee235ccb0b5bee19a1c"}, + {file = "filelock-3.13.1.tar.gz", hash = "sha256:521f5f56c50f8426f5e03ad3b281b490a87ef15bc6c526f168290f0c7148d44e"}, +] + +[package.extras] +docs = ["furo (>=2023.9.10)", "sphinx (>=7.2.6)", "sphinx-autodoc-typehints (>=1.24)"] +testing = ["covdefaults (>=2.3)", "coverage (>=7.3.2)", "diff-cover (>=8)", "pytest (>=7.4.3)", "pytest-cov (>=4.1)", "pytest-mock (>=3.12)", "pytest-timeout (>=2.2)"] +typing = ["typing-extensions (>=4.8)"] + +[[package]] +name = "flake8" +version = "7.0.0" +description = "the modular source code checker: pep8 pyflakes and co" +optional = false +python-versions = ">=3.8.1" +files = [ + {file = "flake8-7.0.0-py2.py3-none-any.whl", hash = "sha256:a6dfbb75e03252917f2473ea9653f7cd799c3064e54d4c8140044c5c065f53c3"}, + {file = "flake8-7.0.0.tar.gz", hash = "sha256:33f96621059e65eec474169085dc92bf26e7b2d47366b70be2f67ab80dc25132"}, +] + +[package.dependencies] +mccabe = ">=0.7.0,<0.8.0" +pycodestyle = ">=2.11.0,<2.12.0" +pyflakes = ">=3.2.0,<3.3.0" + +[[package]] +name = "flaky" +version = "3.7.0" +description = "Plugin for nose or pytest that automatically reruns flaky tests." +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" +files = [ + {file = "flaky-3.7.0-py2.py3-none-any.whl", hash = "sha256:d6eda73cab5ae7364504b7c44670f70abed9e75f77dd116352f662817592ec9c"}, + {file = "flaky-3.7.0.tar.gz", hash = "sha256:3ad100780721a1911f57a165809b7ea265a7863305acb66708220820caf8aa0d"}, +] + +[[package]] +name = "fonttools" +version = "4.49.0" +description = "Tools to manipulate font files" +optional = false +python-versions = ">=3.8" +files = [ + {file = "fonttools-4.49.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:d970ecca0aac90d399e458f0b7a8a597e08f95de021f17785fb68e2dc0b99717"}, + {file = "fonttools-4.49.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:ac9a745b7609f489faa65e1dc842168c18530874a5f5b742ac3dd79e26bca8bc"}, + {file = "fonttools-4.49.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0ba0e00620ca28d4ca11fc700806fd69144b463aa3275e1b36e56c7c09915559"}, + {file = "fonttools-4.49.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cdee3ab220283057e7840d5fb768ad4c2ebe65bdba6f75d5d7bf47f4e0ed7d29"}, + {file = "fonttools-4.49.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:ce7033cb61f2bb65d8849658d3786188afd80f53dad8366a7232654804529532"}, + {file = "fonttools-4.49.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:07bc5ea02bb7bc3aa40a1eb0481ce20e8d9b9642a9536cde0218290dd6085828"}, + {file = "fonttools-4.49.0-cp310-cp310-win32.whl", hash = "sha256:86eef6aab7fd7c6c8545f3ebd00fd1d6729ca1f63b0cb4d621bccb7d1d1c852b"}, + {file = "fonttools-4.49.0-cp310-cp310-win_amd64.whl", hash = "sha256:1fac1b7eebfce75ea663e860e7c5b4a8831b858c17acd68263bc156125201abf"}, + {file = "fonttools-4.49.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:edc0cce355984bb3c1d1e89d6a661934d39586bb32191ebff98c600f8957c63e"}, + {file = "fonttools-4.49.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:83a0d9336de2cba86d886507dd6e0153df333ac787377325a39a2797ec529814"}, + {file = "fonttools-4.49.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:36c8865bdb5cfeec88f5028e7e592370a0657b676c6f1d84a2108e0564f90e22"}, + {file = "fonttools-4.49.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:33037d9e56e2562c710c8954d0f20d25b8386b397250d65581e544edc9d6b942"}, + {file = "fonttools-4.49.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:8fb022d799b96df3eaa27263e9eea306bd3d437cc9aa981820850281a02b6c9a"}, + {file = "fonttools-4.49.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:33c584c0ef7dc54f5dd4f84082eabd8d09d1871a3d8ca2986b0c0c98165f8e86"}, + {file = "fonttools-4.49.0-cp311-cp311-win32.whl", hash = "sha256:cbe61b158deb09cffdd8540dc4a948d6e8f4d5b4f3bf5cd7db09bd6a61fee64e"}, + {file = "fonttools-4.49.0-cp311-cp311-win_amd64.whl", hash = "sha256:fc11e5114f3f978d0cea7e9853627935b30d451742eeb4239a81a677bdee6bf6"}, + {file = "fonttools-4.49.0-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:d647a0e697e5daa98c87993726da8281c7233d9d4ffe410812a4896c7c57c075"}, + {file = "fonttools-4.49.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:f3bbe672df03563d1f3a691ae531f2e31f84061724c319652039e5a70927167e"}, + {file = "fonttools-4.49.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bebd91041dda0d511b0d303180ed36e31f4f54b106b1259b69fade68413aa7ff"}, + {file = "fonttools-4.49.0-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4145f91531fd43c50f9eb893faa08399816bb0b13c425667c48475c9f3a2b9b5"}, + {file = "fonttools-4.49.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:ea329dafb9670ffbdf4dbc3b0e5c264104abcd8441d56de77f06967f032943cb"}, + {file = "fonttools-4.49.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:c076a9e548521ecc13d944b1d261ff3d7825048c338722a4bd126d22316087b7"}, + {file = "fonttools-4.49.0-cp312-cp312-win32.whl", hash = "sha256:b607ea1e96768d13be26d2b400d10d3ebd1456343eb5eaddd2f47d1c4bd00880"}, + {file = "fonttools-4.49.0-cp312-cp312-win_amd64.whl", hash = "sha256:a974c49a981e187381b9cc2c07c6b902d0079b88ff01aed34695ec5360767034"}, + {file = "fonttools-4.49.0-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:b85ec0bdd7bdaa5c1946398cbb541e90a6dfc51df76dfa88e0aaa41b335940cb"}, + {file = "fonttools-4.49.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:af20acbe198a8a790618ee42db192eb128afcdcc4e96d99993aca0b60d1faeb4"}, + {file = "fonttools-4.49.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4d418b1fee41a1d14931f7ab4b92dc0bc323b490e41d7a333eec82c9f1780c75"}, + {file = "fonttools-4.49.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b44a52b8e6244b6548851b03b2b377a9702b88ddc21dcaf56a15a0393d425cb9"}, + {file = "fonttools-4.49.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:7c7125068e04a70739dad11857a4d47626f2b0bd54de39e8622e89701836eabd"}, + {file = "fonttools-4.49.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:29e89d0e1a7f18bc30f197cfadcbef5a13d99806447c7e245f5667579a808036"}, + {file = "fonttools-4.49.0-cp38-cp38-win32.whl", hash = "sha256:9d95fa0d22bf4f12d2fb7b07a46070cdfc19ef5a7b1c98bc172bfab5bf0d6844"}, + {file = "fonttools-4.49.0-cp38-cp38-win_amd64.whl", hash = "sha256:768947008b4dc552d02772e5ebd49e71430a466e2373008ce905f953afea755a"}, + {file = "fonttools-4.49.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:08877e355d3dde1c11973bb58d4acad1981e6d1140711230a4bfb40b2b937ccc"}, + {file = "fonttools-4.49.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:fdb54b076f25d6b0f0298dc706acee5052de20c83530fa165b60d1f2e9cbe3cb"}, + {file = "fonttools-4.49.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0af65c720520710cc01c293f9c70bd69684365c6015cc3671db2b7d807fe51f2"}, + {file = "fonttools-4.49.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1f255ce8ed7556658f6d23f6afd22a6d9bbc3edb9b96c96682124dc487e1bf42"}, + {file = "fonttools-4.49.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:d00af0884c0e65f60dfaf9340e26658836b935052fdd0439952ae42e44fdd2be"}, + {file = "fonttools-4.49.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:263832fae27481d48dfafcc43174644b6706639661e242902ceb30553557e16c"}, + {file = "fonttools-4.49.0-cp39-cp39-win32.whl", hash = "sha256:0404faea044577a01bb82d47a8fa4bc7a54067fa7e324785dd65d200d6dd1133"}, + {file = "fonttools-4.49.0-cp39-cp39-win_amd64.whl", hash = "sha256:b050d362df50fc6e38ae3954d8c29bf2da52be384649ee8245fdb5186b620836"}, + {file = "fonttools-4.49.0-py3-none-any.whl", hash = "sha256:af281525e5dd7fa0b39fb1667b8d5ca0e2a9079967e14c4bfe90fd1cd13e0f18"}, + {file = "fonttools-4.49.0.tar.gz", hash = "sha256:ebf46e7f01b7af7861310417d7c49591a85d99146fc23a5ba82fdb28af156321"}, +] + +[package.extras] +all = ["brotli (>=1.0.1)", "brotlicffi (>=0.8.0)", "fs (>=2.2.0,<3)", "lxml (>=4.0)", "lz4 (>=1.7.4.2)", "matplotlib", "munkres", "pycairo", "scipy", "skia-pathops (>=0.5.0)", "sympy", "uharfbuzz (>=0.23.0)", "unicodedata2 (>=15.1.0)", "xattr", "zopfli (>=0.1.4)"] +graphite = ["lz4 (>=1.7.4.2)"] +interpolatable = ["munkres", "pycairo", "scipy"] +lxml = ["lxml (>=4.0)"] +pathops = ["skia-pathops (>=0.5.0)"] +plot = ["matplotlib"] +repacker = ["uharfbuzz (>=0.23.0)"] +symfont = ["sympy"] +type1 = ["xattr"] +ufo = ["fs (>=2.2.0,<3)"] +unicode = ["unicodedata2 (>=15.1.0)"] +woff = ["brotli (>=1.0.1)", "brotlicffi (>=0.8.0)", "zopfli (>=0.1.4)"] + +[[package]] +name = "fqdn" +version = "1.5.1" +description = "Validates fully-qualified domain names against RFC 1123, so that they are acceptable to modern bowsers" +optional = false +python-versions = ">=2.7, !=3.0, !=3.1, !=3.2, !=3.3, !=3.4, <4" +files = [ + {file = "fqdn-1.5.1-py3-none-any.whl", hash = "sha256:3a179af3761e4df6eb2e026ff9e1a3033d3587bf980a0b1b2e1e5d08d7358014"}, + {file = "fqdn-1.5.1.tar.gz", hash = "sha256:105ed3677e767fb5ca086a0c1f4bb66ebc3c100be518f0e0d755d9eae164d89f"}, +] + +[[package]] +name = "fsspec" +version = "2024.2.0" +description = "File-system specification" +optional = false +python-versions = ">=3.8" +files = [ + {file = "fsspec-2024.2.0-py3-none-any.whl", hash = "sha256:817f969556fa5916bc682e02ca2045f96ff7f586d45110fcb76022063ad2c7d8"}, + {file = "fsspec-2024.2.0.tar.gz", hash = "sha256:b6ad1a679f760dda52b1168c859d01b7b80648ea6f7f7c7f5a8a91dc3f3ecb84"}, +] + +[package.extras] +abfs = ["adlfs"] +adl = ["adlfs"] +arrow = ["pyarrow (>=1)"] +dask = ["dask", "distributed"] +devel = ["pytest", "pytest-cov"] +dropbox = ["dropbox", "dropboxdrivefs", "requests"] +full = ["adlfs", "aiohttp (!=4.0.0a0,!=4.0.0a1)", "dask", "distributed", "dropbox", "dropboxdrivefs", "fusepy", "gcsfs", "libarchive-c", "ocifs", "panel", "paramiko", "pyarrow (>=1)", "pygit2", "requests", "s3fs", "smbprotocol", "tqdm"] +fuse = ["fusepy"] +gcs = ["gcsfs"] +git = ["pygit2"] +github = ["requests"] +gs = ["gcsfs"] +gui = ["panel"] +hdfs = ["pyarrow (>=1)"] +http = ["aiohttp (!=4.0.0a0,!=4.0.0a1)"] +libarchive = ["libarchive-c"] +oci = ["ocifs"] +s3 = ["s3fs"] +sftp = ["paramiko"] +smb = ["smbprotocol"] +ssh = ["paramiko"] +tqdm = ["tqdm"] + +[[package]] +name = "h5py" +version = "3.10.0" +description = "Read and write HDF5 files from Python" +optional = false +python-versions = ">=3.8" +files = [ + {file = "h5py-3.10.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:b963fb772964fc1d1563c57e4e2e874022ce11f75ddc6df1a626f42bd49ab99f"}, + {file = "h5py-3.10.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:012ab448590e3c4f5a8dd0f3533255bc57f80629bf7c5054cf4c87b30085063c"}, + {file = "h5py-3.10.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:781a24263c1270a62cd67be59f293e62b76acfcc207afa6384961762bb88ea03"}, + {file = "h5py-3.10.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f42e6c30698b520f0295d70157c4e202a9e402406f50dc08f5a7bc416b24e52d"}, + {file = "h5py-3.10.0-cp310-cp310-win_amd64.whl", hash = "sha256:93dd840bd675787fc0b016f7a05fc6efe37312a08849d9dd4053fd0377b1357f"}, + {file = "h5py-3.10.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:2381e98af081b6df7f6db300cd88f88e740649d77736e4b53db522d8874bf2dc"}, + {file = "h5py-3.10.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:667fe23ab33d5a8a6b77970b229e14ae3bb84e4ea3382cc08567a02e1499eedd"}, + {file = "h5py-3.10.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:90286b79abd085e4e65e07c1bd7ee65a0f15818ea107f44b175d2dfe1a4674b7"}, + {file = "h5py-3.10.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6c013d2e79c00f28ffd0cc24e68665ea03ae9069e167087b2adb5727d2736a52"}, + {file = "h5py-3.10.0-cp311-cp311-win_amd64.whl", hash = "sha256:92273ce69ae4983dadb898fd4d3bea5eb90820df953b401282ee69ad648df684"}, + {file = "h5py-3.10.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:3c97d03f87f215e7759a354460fb4b0d0f27001450b18b23e556e7856a0b21c3"}, + {file = "h5py-3.10.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:86df4c2de68257b8539a18646ceccdcf2c1ce6b1768ada16c8dcfb489eafae20"}, + {file = "h5py-3.10.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ba9ab36be991119a3ff32d0c7cbe5faf9b8d2375b5278b2aea64effbeba66039"}, + {file = "h5py-3.10.0-cp312-cp312-win_amd64.whl", hash = "sha256:2c8e4fda19eb769e9a678592e67eaec3a2f069f7570c82d2da909c077aa94339"}, + {file = "h5py-3.10.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:492305a074327e8d2513011fa9fffeb54ecb28a04ca4c4227d7e1e9616d35641"}, + {file = "h5py-3.10.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:9450464b458cca2c86252b624279115dcaa7260a40d3cb1594bf2b410a2bd1a3"}, + {file = "h5py-3.10.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fd6f6d1384a9f491732cee233b99cd4bfd6e838a8815cc86722f9d2ee64032af"}, + {file = "h5py-3.10.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3074ec45d3dc6e178c6f96834cf8108bf4a60ccb5ab044e16909580352010a97"}, + {file = "h5py-3.10.0-cp38-cp38-win_amd64.whl", hash = "sha256:212bb997a91e6a895ce5e2f365ba764debeaef5d2dca5c6fb7098d66607adf99"}, + {file = "h5py-3.10.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:5dfc65ac21fa2f630323c92453cadbe8d4f504726ec42f6a56cf80c2f90d6c52"}, + {file = "h5py-3.10.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:d4682b94fd36ab217352be438abd44c8f357c5449b8995e63886b431d260f3d3"}, + {file = "h5py-3.10.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:aece0e2e1ed2aab076c41802e50a0c3e5ef8816d60ece39107d68717d4559824"}, + {file = "h5py-3.10.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:43a61b2c2ad65b1fabc28802d133eed34debcc2c8b420cb213d3d4ef4d3e2229"}, + {file = "h5py-3.10.0-cp39-cp39-win_amd64.whl", hash = "sha256:ae2f0201c950059676455daf92700eeb57dcf5caaf71b9e1328e6e6593601770"}, + {file = "h5py-3.10.0.tar.gz", hash = "sha256:d93adc48ceeb33347eb24a634fb787efc7ae4644e6ea4ba733d099605045c049"}, +] + +[package.dependencies] +numpy = ">=1.17.3" + +[[package]] +name = "hepunits" +version = "2.3.3" +description = "Units and constants in the HEP system of units" +optional = false +python-versions = ">=3.7" +files = [ + {file = "hepunits-2.3.3-py3-none-any.whl", hash = "sha256:2edd3446bab7a853865e402eb14958ea6da6d728a7d9064cc3d8f3bb3a9a1281"}, + {file = "hepunits-2.3.3.tar.gz", hash = "sha256:67d7cc77cd54d72b69c26a68e5efad7842b6f68fa8bc627bb90e41177abe6945"}, +] + +[package.extras] +all = ["pytest (>=6)", "pytest-cov (>=2.8.0)"] +dev = ["pytest (>=6)", "pytest-cov (>=2.8.0)"] +test = ["pytest (>=6)", "pytest-cov (>=2.8.0)"] + +[[package]] +name = "identify" +version = "2.5.34" +description = "File identification library for Python" +optional = false +python-versions = ">=3.8" +files = [ + {file = "identify-2.5.34-py2.py3-none-any.whl", hash = "sha256:a4316013779e433d08b96e5eabb7f641e6c7942e4ab5d4c509ebd2e7a8994aed"}, + {file = "identify-2.5.34.tar.gz", hash = "sha256:ee17bc9d499899bc9eaec1ac7bf2dc9eedd480db9d88b96d123d3b64a9d34f5d"}, +] + +[package.extras] +license = ["ukkonen"] + +[[package]] +name = "idna" +version = "3.6" +description = "Internationalized Domain Names in Applications (IDNA)" +optional = false +python-versions = ">=3.5" +files = [ + {file = "idna-3.6-py3-none-any.whl", hash = "sha256:c05567e9c24a6b9faaa835c4821bad0590fbb9d5779e7caa6e1cc4978e7eb24f"}, + {file = "idna-3.6.tar.gz", hash = "sha256:9ecdbbd083b06798ae1e86adcbfe8ab1479cf864e4ee30fe4e46a003d12491ca"}, +] + +[[package]] +name = "imageio" +version = "2.16.2" +description = "Library for reading and writing a wide range of image, video, scientific, and volumetric data formats." +optional = false +python-versions = ">=3.7" +files = [ + {file = "imageio-2.16.2-py3-none-any.whl", hash = "sha256:4757b5bc41158feb89529721bc14b738c3a0e17284dbdfc3f09ac4ad9dc00a08"}, + {file = "imageio-2.16.2.tar.gz", hash = "sha256:8fea761d51a53c150cabd82ed36011252c17580c752216b8222f078630dfb9ba"}, +] + +[package.dependencies] +numpy = ">=1.20.0" +pillow = ">=8.3.2" + +[package.extras] +build = ["wheel"] +dev = ["black", "flake8", "fsspec[github]", "invoke", "pytest", "pytest-cov"] +docs = ["numpydoc", "pydata-sphinx-theme", "sphinx"] +ffmpeg = ["imageio-ffmpeg", "psutil"] +fits = ["astropy"] +full = ["astropy", "black", "flake8", "fsspec[github]", "gdal", "imageio-ffmpeg", "invoke", "itk", "numpydoc", "psutil", "pydata-sphinx-theme", "pytest", "pytest-cov", "sphinx", "tifffile", "wheel"] +gdal = ["gdal"] +itk = ["itk"] +linting = ["black", "flake8"] +test = ["fsspec[github]", "invoke", "pytest", "pytest-cov"] +tifffile = ["tifffile"] + +[[package]] +name = "imagesize" +version = "1.4.1" +description = "Getting image size from png/jpeg/jpeg2000/gif file" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" +files = [ + {file = "imagesize-1.4.1-py2.py3-none-any.whl", hash = "sha256:0d8d18d08f840c19d0ee7ca1fd82490fdc3729b7ac93f49870406ddde8ef8d8b"}, + {file = "imagesize-1.4.1.tar.gz", hash = "sha256:69150444affb9cb0d5cc5a92b3676f0b2fb7cd9ae39e947a5e11a36b4497cd4a"}, +] + +[[package]] +name = "iniconfig" +version = "2.0.0" +description = "brain-dead simple config-ini parsing" +optional = false +python-versions = ">=3.7" +files = [ + {file = "iniconfig-2.0.0-py3-none-any.whl", hash = "sha256:b6a85871a79d2e3b22d2d1b94ac2824226a63c6b741c88f7ae975f18b6778374"}, + {file = "iniconfig-2.0.0.tar.gz", hash = "sha256:2d91e135bf72d31a410b17c16da610a82cb55f6b0477d1a902134b24a455b8b3"}, +] + +[[package]] +name = "ipykernel" +version = "6.29.2" +description = "IPython Kernel for Jupyter" +optional = false +python-versions = ">=3.8" +files = [ + {file = "ipykernel-6.29.2-py3-none-any.whl", hash = "sha256:50384f5c577a260a1d53f1f59a828c7266d321c9b7d00d345693783f66616055"}, + {file = "ipykernel-6.29.2.tar.gz", hash = "sha256:3bade28004e3ff624ed57974948116670604ac5f676d12339693f3142176d3f0"}, +] + +[package.dependencies] +appnope = {version = "*", markers = "platform_system == \"Darwin\""} +comm = ">=0.1.1" +debugpy = ">=1.6.5" +ipython = ">=7.23.1" +jupyter-client = ">=6.1.12" +jupyter-core = ">=4.12,<5.0.dev0 || >=5.1.dev0" +matplotlib-inline = ">=0.1" +nest-asyncio = "*" +packaging = "*" +psutil = "*" +pyzmq = ">=24" +tornado = ">=6.1" +traitlets = ">=5.4.0" + +[package.extras] +cov = ["coverage[toml]", "curio", "matplotlib", "pytest-cov", "trio"] +docs = ["myst-parser", "pydata-sphinx-theme", "sphinx", "sphinx-autodoc-typehints", "sphinxcontrib-github-alt", "sphinxcontrib-spelling", "trio"] +pyqt5 = ["pyqt5"] +pyside6 = ["pyside6"] +test = ["flaky", "ipyparallel", "pre-commit", "pytest (>=7.0)", "pytest-asyncio (==0.23.4)", "pytest-cov", "pytest-timeout"] + +[[package]] +name = "ipython" +version = "8.21.0" +description = "IPython: Productive Interactive Computing" +optional = false +python-versions = ">=3.10" +files = [ + {file = "ipython-8.21.0-py3-none-any.whl", hash = "sha256:1050a3ab8473488d7eee163796b02e511d0735cf43a04ba2a8348bd0f2eaf8a5"}, + {file = "ipython-8.21.0.tar.gz", hash = "sha256:48fbc236fbe0e138b88773fa0437751f14c3645fb483f1d4c5dee58b37e5ce73"}, +] + +[package.dependencies] +colorama = {version = "*", markers = "sys_platform == \"win32\""} +decorator = "*" +exceptiongroup = {version = "*", markers = "python_version < \"3.11\""} +jedi = ">=0.16" +matplotlib-inline = "*" +pexpect = {version = ">4.3", markers = "sys_platform != \"win32\""} +prompt-toolkit = ">=3.0.41,<3.1.0" +pygments = ">=2.4.0" +stack-data = "*" +traitlets = ">=5" + +[package.extras] +all = ["black", "curio", "docrepr", "exceptiongroup", "ipykernel", "ipyparallel", "ipywidgets", "matplotlib", "matplotlib (!=3.2.0)", "nbconvert", "nbformat", "notebook", "numpy (>=1.23)", "pandas", "pickleshare", "pytest (<8)", "pytest-asyncio (<0.22)", "qtconsole", "setuptools (>=18.5)", "sphinx (>=1.3)", "sphinx-rtd-theme", "stack-data", "testpath", "trio", "typing-extensions"] +black = ["black"] +doc = ["docrepr", "exceptiongroup", "ipykernel", "matplotlib", "pickleshare", "pytest (<8)", "pytest-asyncio (<0.22)", "setuptools (>=18.5)", "sphinx (>=1.3)", "sphinx-rtd-theme", "stack-data", "testpath", "typing-extensions"] +kernel = ["ipykernel"] +nbconvert = ["nbconvert"] +nbformat = ["nbformat"] +notebook = ["ipywidgets", "notebook"] +parallel = ["ipyparallel"] +qtconsole = ["qtconsole"] +test = ["pickleshare", "pytest (<8)", "pytest-asyncio (<0.22)", "testpath"] +test-extra = ["curio", "matplotlib (!=3.2.0)", "nbformat", "numpy (>=1.23)", "pandas", "pickleshare", "pytest (<8)", "pytest-asyncio (<0.22)", "testpath", "trio"] + +[[package]] +name = "ipython-genutils" +version = "0.2.0" +description = "Vestigial utilities from IPython" +optional = false +python-versions = "*" +files = [ + {file = "ipython_genutils-0.2.0-py2.py3-none-any.whl", hash = "sha256:72dd37233799e619666c9f639a9da83c34013a73e8bbc79a7a6348d93c61fab8"}, + {file = "ipython_genutils-0.2.0.tar.gz", hash = "sha256:eb2e116e75ecef9d4d228fdc66af54269afa26ab4463042e33785b887c628ba8"}, +] + +[[package]] +name = "ipywidgets" +version = "8.1.2" +description = "Jupyter interactive widgets" +optional = false +python-versions = ">=3.7" +files = [ + {file = "ipywidgets-8.1.2-py3-none-any.whl", hash = "sha256:bbe43850d79fb5e906b14801d6c01402857996864d1e5b6fa62dd2ee35559f60"}, + {file = "ipywidgets-8.1.2.tar.gz", hash = "sha256:d0b9b41e49bae926a866e613a39b0f0097745d2b9f1f3dd406641b4a57ec42c9"}, +] + +[package.dependencies] +comm = ">=0.1.3" +ipython = ">=6.1.0" +jupyterlab-widgets = ">=3.0.10,<3.1.0" +traitlets = ">=4.3.1" +widgetsnbextension = ">=4.0.10,<4.1.0" + +[package.extras] +test = ["ipykernel", "jsonschema", "pytest (>=3.6.0)", "pytest-cov", "pytz"] + +[[package]] +name = "isoduration" +version = "20.11.0" +description = "Operations with ISO 8601 durations" +optional = false +python-versions = ">=3.7" +files = [ + {file = "isoduration-20.11.0-py3-none-any.whl", hash = "sha256:b2904c2a4228c3d44f409c8ae8e2370eb21a26f7ac2ec5446df141dde3452042"}, + {file = "isoduration-20.11.0.tar.gz", hash = "sha256:ac2f9015137935279eac671f94f89eb00584f940f5dc49462a0c4ee692ba1bd9"}, +] + +[package.dependencies] +arrow = ">=0.15.0" + +[[package]] +name = "isort" +version = "5.13.2" +description = "A Python utility / library to sort Python imports." +optional = false +python-versions = ">=3.8.0" +files = [ + {file = "isort-5.13.2-py3-none-any.whl", hash = "sha256:8ca5e72a8d85860d5a3fa69b8745237f2939afe12dbf656afbcb47fe72d947a6"}, + {file = "isort-5.13.2.tar.gz", hash = "sha256:48fdfcb9face5d58a4f6dde2e72a1fb8dcaf8ab26f95ab49fab84c2ddefb0109"}, +] + +[package.extras] +colors = ["colorama (>=0.4.6)"] + +[[package]] +name = "jedi" +version = "0.19.1" +description = "An autocompletion tool for Python that can be used for text editors." +optional = false +python-versions = ">=3.6" +files = [ + {file = "jedi-0.19.1-py2.py3-none-any.whl", hash = "sha256:e983c654fe5c02867aef4cdfce5a2fbb4a50adc0af145f70504238f18ef5e7e0"}, + {file = "jedi-0.19.1.tar.gz", hash = "sha256:cf0496f3651bc65d7174ac1b7d043eff454892c708a87d1b683e57b569927ffd"}, +] + +[package.dependencies] +parso = ">=0.8.3,<0.9.0" + +[package.extras] +docs = ["Jinja2 (==2.11.3)", "MarkupSafe (==1.1.1)", "Pygments (==2.8.1)", "alabaster (==0.7.12)", "babel (==2.9.1)", "chardet (==4.0.0)", "commonmark (==0.8.1)", "docutils (==0.17.1)", "future (==0.18.2)", "idna (==2.10)", "imagesize (==1.2.0)", "mock (==1.0.1)", "packaging (==20.9)", "pyparsing (==2.4.7)", "pytz (==2021.1)", "readthedocs-sphinx-ext (==2.1.4)", "recommonmark (==0.5.0)", "requests (==2.25.1)", "six (==1.15.0)", "snowballstemmer (==2.1.0)", "sphinx (==1.8.5)", "sphinx-rtd-theme (==0.4.3)", "sphinxcontrib-serializinghtml (==1.1.4)", "sphinxcontrib-websupport (==1.2.4)", "urllib3 (==1.26.4)"] +qa = ["flake8 (==5.0.4)", "mypy (==0.971)", "types-setuptools (==67.2.0.1)"] +testing = ["Django", "attrs", "colorama", "docopt", "pytest (<7.0.0)"] + +[[package]] +name = "jinja2" +version = "3.1.3" +description = "A very fast and expressive template engine." +optional = false +python-versions = ">=3.7" +files = [ + {file = "Jinja2-3.1.3-py3-none-any.whl", hash = "sha256:7d6d50dd97d52cbc355597bd845fabfbac3f551e1f99619e39a35ce8c370b5fa"}, + {file = "Jinja2-3.1.3.tar.gz", hash = "sha256:ac8bd6544d4bb2c9792bf3a159e80bba8fda7f07e81bc3aed565432d5925ba90"}, +] + +[package.dependencies] +MarkupSafe = ">=2.0" + +[package.extras] +i18n = ["Babel (>=2.7)"] + +[[package]] +name = "jsonpointer" +version = "2.4" +description = "Identify specific nodes in a JSON document (RFC 6901)" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*, !=3.6.*" +files = [ + {file = "jsonpointer-2.4-py2.py3-none-any.whl", hash = "sha256:15d51bba20eea3165644553647711d150376234112651b4f1811022aecad7d7a"}, + {file = "jsonpointer-2.4.tar.gz", hash = "sha256:585cee82b70211fa9e6043b7bb89db6e1aa49524340dde8ad6b63206ea689d88"}, +] + +[[package]] +name = "jsonschema" +version = "4.21.1" +description = "An implementation of JSON Schema validation for Python" +optional = false +python-versions = ">=3.8" +files = [ + {file = "jsonschema-4.21.1-py3-none-any.whl", hash = "sha256:7996507afae316306f9e2290407761157c6f78002dcf7419acb99822143d1c6f"}, + {file = "jsonschema-4.21.1.tar.gz", hash = "sha256:85727c00279f5fa6bedbe6238d2aa6403bedd8b4864ab11207d07df3cc1b2ee5"}, +] + +[package.dependencies] +attrs = ">=22.2.0" +fqdn = {version = "*", optional = true, markers = "extra == \"format-nongpl\""} +idna = {version = "*", optional = true, markers = "extra == \"format-nongpl\""} +isoduration = {version = "*", optional = true, markers = "extra == \"format-nongpl\""} +jsonpointer = {version = ">1.13", optional = true, markers = "extra == \"format-nongpl\""} +jsonschema-specifications = ">=2023.03.6" +referencing = ">=0.28.4" +rfc3339-validator = {version = "*", optional = true, markers = "extra == \"format-nongpl\""} +rfc3986-validator = {version = ">0.1.0", optional = true, markers = "extra == \"format-nongpl\""} +rpds-py = ">=0.7.1" +uri-template = {version = "*", optional = true, markers = "extra == \"format-nongpl\""} +webcolors = {version = ">=1.11", optional = true, markers = "extra == \"format-nongpl\""} + +[package.extras] +format = ["fqdn", "idna", "isoduration", "jsonpointer (>1.13)", "rfc3339-validator", "rfc3987", "uri-template", "webcolors (>=1.11)"] +format-nongpl = ["fqdn", "idna", "isoduration", "jsonpointer (>1.13)", "rfc3339-validator", "rfc3986-validator (>0.1.0)", "uri-template", "webcolors (>=1.11)"] + +[[package]] +name = "jsonschema-specifications" +version = "2023.12.1" +description = "The JSON Schema meta-schemas and vocabularies, exposed as a Registry" +optional = false +python-versions = ">=3.8" +files = [ + {file = "jsonschema_specifications-2023.12.1-py3-none-any.whl", hash = "sha256:87e4fdf3a94858b8a2ba2778d9ba57d8a9cafca7c7489c46ba0d30a8bc6a9c3c"}, + {file = "jsonschema_specifications-2023.12.1.tar.gz", hash = "sha256:48a76787b3e70f5ed53f1160d2b81f586e4ca6d1548c5de7085d1682674764cc"}, +] + +[package.dependencies] +referencing = ">=0.31.0" + +[[package]] +name = "jupyter" +version = "1.0.0" +description = "Jupyter metapackage. Install all the Jupyter components in one go." +optional = false +python-versions = "*" +files = [ + {file = "jupyter-1.0.0-py2.py3-none-any.whl", hash = "sha256:5b290f93b98ffbc21c0c7e749f054b3267782166d72fa5e3ed1ed4eaf34a2b78"}, + {file = "jupyter-1.0.0.tar.gz", hash = "sha256:d9dc4b3318f310e34c82951ea5d6683f67bed7def4b259fafbfe4f1beb1d8e5f"}, + {file = "jupyter-1.0.0.zip", hash = "sha256:3e1f86076bbb7c8c207829390305a2b1fe836d471ed54be66a3b8c41e7f46cc7"}, +] + +[package.dependencies] +ipykernel = "*" +ipywidgets = "*" +jupyter-console = "*" +nbconvert = "*" +notebook = "*" +qtconsole = "*" + +[[package]] +name = "jupyter-client" +version = "7.4.9" +description = "Jupyter protocol implementation and client libraries" +optional = false +python-versions = ">=3.7" +files = [ + {file = "jupyter_client-7.4.9-py3-none-any.whl", hash = "sha256:214668aaea208195f4c13d28eb272ba79f945fc0cf3f11c7092c20b2ca1980e7"}, + {file = "jupyter_client-7.4.9.tar.gz", hash = "sha256:52be28e04171f07aed8f20e1616a5a552ab9fee9cbbe6c1896ae170c3880d392"}, +] + +[package.dependencies] +entrypoints = "*" +jupyter-core = ">=4.9.2" +nest-asyncio = ">=1.5.4" +python-dateutil = ">=2.8.2" +pyzmq = ">=23.0" +tornado = ">=6.2" +traitlets = "*" + +[package.extras] +doc = ["ipykernel", "myst-parser", "sphinx (>=1.3.6)", "sphinx-rtd-theme", "sphinxcontrib-github-alt"] +test = ["codecov", "coverage", "ipykernel (>=6.12)", "ipython", "mypy", "pre-commit", "pytest", "pytest-asyncio (>=0.18)", "pytest-cov", "pytest-timeout"] + +[[package]] +name = "jupyter-console" +version = "6.6.3" +description = "Jupyter terminal console" +optional = false +python-versions = ">=3.7" +files = [ + {file = "jupyter_console-6.6.3-py3-none-any.whl", hash = "sha256:309d33409fcc92ffdad25f0bcdf9a4a9daa61b6f341177570fdac03de5352485"}, + {file = "jupyter_console-6.6.3.tar.gz", hash = "sha256:566a4bf31c87adbfadf22cdf846e3069b59a71ed5da71d6ba4d8aaad14a53539"}, +] + +[package.dependencies] +ipykernel = ">=6.14" +ipython = "*" +jupyter-client = ">=7.0.0" +jupyter-core = ">=4.12,<5.0.dev0 || >=5.1.dev0" +prompt-toolkit = ">=3.0.30" +pygments = "*" +pyzmq = ">=17" +traitlets = ">=5.4" + +[package.extras] +test = ["flaky", "pexpect", "pytest"] + +[[package]] +name = "jupyter-core" +version = "5.7.1" +description = "Jupyter core package. A base package on which Jupyter projects rely." +optional = false +python-versions = ">=3.8" +files = [ + {file = "jupyter_core-5.7.1-py3-none-any.whl", hash = "sha256:c65c82126453a723a2804aa52409930434598fd9d35091d63dfb919d2b765bb7"}, + {file = "jupyter_core-5.7.1.tar.gz", hash = "sha256:de61a9d7fc71240f688b2fb5ab659fbb56979458dc66a71decd098e03c79e218"}, +] + +[package.dependencies] +platformdirs = ">=2.5" +pywin32 = {version = ">=300", markers = "sys_platform == \"win32\" and platform_python_implementation != \"PyPy\""} +traitlets = ">=5.3" + +[package.extras] +docs = ["myst-parser", "pydata-sphinx-theme", "sphinx-autodoc-typehints", "sphinxcontrib-github-alt", "sphinxcontrib-spelling", "traitlets"] +test = ["ipykernel", "pre-commit", "pytest", "pytest-cov", "pytest-timeout"] + +[[package]] +name = "jupyter-events" +version = "0.9.0" +description = "Jupyter Event System library" +optional = false +python-versions = ">=3.8" +files = [ + {file = "jupyter_events-0.9.0-py3-none-any.whl", hash = "sha256:d853b3c10273ff9bc8bb8b30076d65e2c9685579db736873de6c2232dde148bf"}, + {file = "jupyter_events-0.9.0.tar.gz", hash = "sha256:81ad2e4bc710881ec274d31c6c50669d71bbaa5dd9d01e600b56faa85700d399"}, +] + +[package.dependencies] +jsonschema = {version = ">=4.18.0", extras = ["format-nongpl"]} +python-json-logger = ">=2.0.4" +pyyaml = ">=5.3" +referencing = "*" +rfc3339-validator = "*" +rfc3986-validator = ">=0.1.1" +traitlets = ">=5.3" + +[package.extras] +cli = ["click", "rich"] +docs = ["jupyterlite-sphinx", "myst-parser", "pydata-sphinx-theme", "sphinxcontrib-spelling"] +test = ["click", "pre-commit", "pytest (>=7.0)", "pytest-asyncio (>=0.19.0)", "pytest-console-scripts", "rich"] + +[[package]] +name = "jupyter-server" +version = "2.12.5" +description = "The backend—i.e. core services, APIs, and REST endpoints—to Jupyter web applications." +optional = false +python-versions = ">=3.8" +files = [ + {file = "jupyter_server-2.12.5-py3-none-any.whl", hash = "sha256:184a0f82809a8522777cfb6b760ab6f4b1bb398664c5860a27cec696cb884923"}, + {file = "jupyter_server-2.12.5.tar.gz", hash = "sha256:0edb626c94baa22809be1323f9770cf1c00a952b17097592e40d03e6a3951689"}, +] + +[package.dependencies] +anyio = ">=3.1.0" +argon2-cffi = "*" +jinja2 = "*" +jupyter-client = ">=7.4.4" +jupyter-core = ">=4.12,<5.0.dev0 || >=5.1.dev0" +jupyter-events = ">=0.9.0" +jupyter-server-terminals = "*" +nbconvert = ">=6.4.4" +nbformat = ">=5.3.0" +overrides = "*" +packaging = "*" +prometheus-client = "*" +pywinpty = {version = "*", markers = "os_name == \"nt\""} +pyzmq = ">=24" +send2trash = ">=1.8.2" +terminado = ">=0.8.3" +tornado = ">=6.2.0" +traitlets = ">=5.6.0" +websocket-client = "*" + +[package.extras] +docs = ["ipykernel", "jinja2", "jupyter-client", "jupyter-server", "myst-parser", "nbformat", "prometheus-client", "pydata-sphinx-theme", "send2trash", "sphinx-autodoc-typehints", "sphinxcontrib-github-alt", "sphinxcontrib-openapi (>=0.8.0)", "sphinxcontrib-spelling", "sphinxemoji", "tornado", "typing-extensions"] +test = ["flaky", "ipykernel", "pre-commit", "pytest (>=7.0)", "pytest-console-scripts", "pytest-jupyter[server] (>=0.4)", "pytest-timeout", "requests"] + +[[package]] +name = "jupyter-server-terminals" +version = "0.5.2" +description = "A Jupyter Server Extension Providing Terminals." +optional = false +python-versions = ">=3.8" +files = [ + {file = "jupyter_server_terminals-0.5.2-py3-none-any.whl", hash = "sha256:1b80c12765da979513c42c90215481bbc39bd8ae7c0350b4f85bc3eb58d0fa80"}, + {file = "jupyter_server_terminals-0.5.2.tar.gz", hash = "sha256:396b5ccc0881e550bf0ee7012c6ef1b53edbde69e67cab1d56e89711b46052e8"}, +] + +[package.dependencies] +pywinpty = {version = ">=2.0.3", markers = "os_name == \"nt\""} +terminado = ">=0.8.3" + +[package.extras] +docs = ["jinja2", "jupyter-server", "mistune (<4.0)", "myst-parser", "nbformat", "packaging", "pydata-sphinx-theme", "sphinxcontrib-github-alt", "sphinxcontrib-openapi", "sphinxcontrib-spelling", "sphinxemoji", "tornado"] +test = ["jupyter-server (>=2.0.0)", "pytest (>=7.0)", "pytest-jupyter[server] (>=0.5.3)", "pytest-timeout"] + +[[package]] +name = "jupyterlab-pygments" +version = "0.3.0" +description = "Pygments theme using JupyterLab CSS variables" +optional = false +python-versions = ">=3.8" +files = [ + {file = "jupyterlab_pygments-0.3.0-py3-none-any.whl", hash = "sha256:841a89020971da1d8693f1a99997aefc5dc424bb1b251fd6322462a1b8842780"}, + {file = "jupyterlab_pygments-0.3.0.tar.gz", hash = "sha256:721aca4d9029252b11cfa9d185e5b5af4d54772bb8072f9b7036f4170054d35d"}, +] + +[[package]] +name = "jupyterlab-widgets" +version = "3.0.10" +description = "Jupyter interactive widgets for JupyterLab" +optional = false +python-versions = ">=3.7" +files = [ + {file = "jupyterlab_widgets-3.0.10-py3-none-any.whl", hash = "sha256:dd61f3ae7a5a7f80299e14585ce6cf3d6925a96c9103c978eda293197730cb64"}, + {file = "jupyterlab_widgets-3.0.10.tar.gz", hash = "sha256:04f2ac04976727e4f9d0fa91cdc2f1ab860f965e504c29dbd6a65c882c9d04c0"}, +] + +[[package]] +name = "kiwisolver" +version = "1.4.5" +description = "A fast implementation of the Cassowary constraint solver" +optional = false +python-versions = ">=3.7" +files = [ + {file = "kiwisolver-1.4.5-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:05703cf211d585109fcd72207a31bb170a0f22144d68298dc5e61b3c946518af"}, + {file = "kiwisolver-1.4.5-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:146d14bebb7f1dc4d5fbf74f8a6cb15ac42baadee8912eb84ac0b3b2a3dc6ac3"}, + {file = "kiwisolver-1.4.5-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:6ef7afcd2d281494c0a9101d5c571970708ad911d028137cd558f02b851c08b4"}, + {file = "kiwisolver-1.4.5-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:9eaa8b117dc8337728e834b9c6e2611f10c79e38f65157c4c38e9400286f5cb1"}, + {file = "kiwisolver-1.4.5-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:ec20916e7b4cbfb1f12380e46486ec4bcbaa91a9c448b97023fde0d5bbf9e4ff"}, + {file = "kiwisolver-1.4.5-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:39b42c68602539407884cf70d6a480a469b93b81b7701378ba5e2328660c847a"}, + {file = "kiwisolver-1.4.5-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:aa12042de0171fad672b6c59df69106d20d5596e4f87b5e8f76df757a7c399aa"}, + {file = "kiwisolver-1.4.5-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2a40773c71d7ccdd3798f6489aaac9eee213d566850a9533f8d26332d626b82c"}, + {file = "kiwisolver-1.4.5-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:19df6e621f6d8b4b9c4d45f40a66839294ff2bb235e64d2178f7522d9170ac5b"}, + {file = "kiwisolver-1.4.5-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:83d78376d0d4fd884e2c114d0621624b73d2aba4e2788182d286309ebdeed770"}, + {file = "kiwisolver-1.4.5-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:e391b1f0a8a5a10ab3b9bb6afcfd74f2175f24f8975fb87ecae700d1503cdee0"}, + {file = "kiwisolver-1.4.5-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:852542f9481f4a62dbb5dd99e8ab7aedfeb8fb6342349a181d4036877410f525"}, + {file = "kiwisolver-1.4.5-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:59edc41b24031bc25108e210c0def6f6c2191210492a972d585a06ff246bb79b"}, + {file = "kiwisolver-1.4.5-cp310-cp310-win32.whl", hash = "sha256:a6aa6315319a052b4ee378aa171959c898a6183f15c1e541821c5c59beaa0238"}, + {file = "kiwisolver-1.4.5-cp310-cp310-win_amd64.whl", hash = "sha256:d0ef46024e6a3d79c01ff13801cb19d0cad7fd859b15037aec74315540acc276"}, + {file = "kiwisolver-1.4.5-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:11863aa14a51fd6ec28688d76f1735f8f69ab1fabf388851a595d0721af042f5"}, + {file = "kiwisolver-1.4.5-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:8ab3919a9997ab7ef2fbbed0cc99bb28d3c13e6d4b1ad36e97e482558a91be90"}, + {file = "kiwisolver-1.4.5-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:fcc700eadbbccbf6bc1bcb9dbe0786b4b1cb91ca0dcda336eef5c2beed37b797"}, + {file = "kiwisolver-1.4.5-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:dfdd7c0b105af050eb3d64997809dc21da247cf44e63dc73ff0fd20b96be55a9"}, + {file = "kiwisolver-1.4.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:76c6a5964640638cdeaa0c359382e5703e9293030fe730018ca06bc2010c4437"}, + {file = "kiwisolver-1.4.5-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:bbea0db94288e29afcc4c28afbf3a7ccaf2d7e027489c449cf7e8f83c6346eb9"}, + {file = "kiwisolver-1.4.5-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ceec1a6bc6cab1d6ff5d06592a91a692f90ec7505d6463a88a52cc0eb58545da"}, + {file = "kiwisolver-1.4.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:040c1aebeda72197ef477a906782b5ab0d387642e93bda547336b8957c61022e"}, + {file = "kiwisolver-1.4.5-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:f91de7223d4c7b793867797bacd1ee53bfe7359bd70d27b7b58a04efbb9436c8"}, + {file = "kiwisolver-1.4.5-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:faae4860798c31530dd184046a900e652c95513796ef51a12bc086710c2eec4d"}, + {file = "kiwisolver-1.4.5-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:b0157420efcb803e71d1b28e2c287518b8808b7cf1ab8af36718fd0a2c453eb0"}, + {file = "kiwisolver-1.4.5-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:06f54715b7737c2fecdbf140d1afb11a33d59508a47bf11bb38ecf21dc9ab79f"}, + {file = "kiwisolver-1.4.5-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:fdb7adb641a0d13bdcd4ef48e062363d8a9ad4a182ac7647ec88f695e719ae9f"}, + {file = "kiwisolver-1.4.5-cp311-cp311-win32.whl", hash = "sha256:bb86433b1cfe686da83ce32a9d3a8dd308e85c76b60896d58f082136f10bffac"}, + {file = "kiwisolver-1.4.5-cp311-cp311-win_amd64.whl", hash = "sha256:6c08e1312a9cf1074d17b17728d3dfce2a5125b2d791527f33ffbe805200a355"}, + {file = "kiwisolver-1.4.5-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:32d5cf40c4f7c7b3ca500f8985eb3fb3a7dfc023215e876f207956b5ea26632a"}, + {file = "kiwisolver-1.4.5-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:f846c260f483d1fd217fe5ed7c173fb109efa6b1fc8381c8b7552c5781756192"}, + {file = "kiwisolver-1.4.5-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:5ff5cf3571589b6d13bfbfd6bcd7a3f659e42f96b5fd1c4830c4cf21d4f5ef45"}, + {file = "kiwisolver-1.4.5-cp312-cp312-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7269d9e5f1084a653d575c7ec012ff57f0c042258bf5db0954bf551c158466e7"}, + {file = "kiwisolver-1.4.5-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:da802a19d6e15dffe4b0c24b38b3af68e6c1a68e6e1d8f30148c83864f3881db"}, + {file = "kiwisolver-1.4.5-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3aba7311af82e335dd1e36ffff68aaca609ca6290c2cb6d821a39aa075d8e3ff"}, + {file = "kiwisolver-1.4.5-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:763773d53f07244148ccac5b084da5adb90bfaee39c197554f01b286cf869228"}, + {file = "kiwisolver-1.4.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2270953c0d8cdab5d422bee7d2007f043473f9d2999631c86a223c9db56cbd16"}, + {file = "kiwisolver-1.4.5-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:d099e745a512f7e3bbe7249ca835f4d357c586d78d79ae8f1dcd4d8adeb9bda9"}, + {file = "kiwisolver-1.4.5-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:74db36e14a7d1ce0986fa104f7d5637aea5c82ca6326ed0ec5694280942d1162"}, + {file = "kiwisolver-1.4.5-cp312-cp312-musllinux_1_1_ppc64le.whl", hash = "sha256:7e5bab140c309cb3a6ce373a9e71eb7e4873c70c2dda01df6820474f9889d6d4"}, + {file = "kiwisolver-1.4.5-cp312-cp312-musllinux_1_1_s390x.whl", hash = "sha256:0f114aa76dc1b8f636d077979c0ac22e7cd8f3493abbab152f20eb8d3cda71f3"}, + {file = "kiwisolver-1.4.5-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:88a2df29d4724b9237fc0c6eaf2a1adae0cdc0b3e9f4d8e7dc54b16812d2d81a"}, + {file = "kiwisolver-1.4.5-cp312-cp312-win32.whl", hash = "sha256:72d40b33e834371fd330fb1472ca19d9b8327acb79a5821d4008391db8e29f20"}, + {file = "kiwisolver-1.4.5-cp312-cp312-win_amd64.whl", hash = "sha256:2c5674c4e74d939b9d91dda0fae10597ac7521768fec9e399c70a1f27e2ea2d9"}, + {file = "kiwisolver-1.4.5-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:3a2b053a0ab7a3960c98725cfb0bf5b48ba82f64ec95fe06f1d06c99b552e130"}, + {file = "kiwisolver-1.4.5-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3cd32d6c13807e5c66a7cbb79f90b553642f296ae4518a60d8d76243b0ad2898"}, + {file = "kiwisolver-1.4.5-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:59ec7b7c7e1a61061850d53aaf8e93db63dce0c936db1fda2658b70e4a1be709"}, + {file = "kiwisolver-1.4.5-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:da4cfb373035def307905d05041c1d06d8936452fe89d464743ae7fb8371078b"}, + {file = "kiwisolver-1.4.5-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:2400873bccc260b6ae184b2b8a4fec0e4082d30648eadb7c3d9a13405d861e89"}, + {file = "kiwisolver-1.4.5-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:1b04139c4236a0f3aff534479b58f6f849a8b351e1314826c2d230849ed48985"}, + {file = "kiwisolver-1.4.5-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:4e66e81a5779b65ac21764c295087de82235597a2293d18d943f8e9e32746265"}, + {file = "kiwisolver-1.4.5-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:7931d8f1f67c4be9ba1dd9c451fb0eeca1a25b89e4d3f89e828fe12a519b782a"}, + {file = "kiwisolver-1.4.5-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:b3f7e75f3015df442238cca659f8baa5f42ce2a8582727981cbfa15fee0ee205"}, + {file = "kiwisolver-1.4.5-cp37-cp37m-musllinux_1_1_s390x.whl", hash = "sha256:bbf1d63eef84b2e8c89011b7f2235b1e0bf7dacc11cac9431fc6468e99ac77fb"}, + {file = "kiwisolver-1.4.5-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:4c380469bd3f970ef677bf2bcba2b6b0b4d5c75e7a020fb863ef75084efad66f"}, + {file = "kiwisolver-1.4.5-cp37-cp37m-win32.whl", hash = "sha256:9408acf3270c4b6baad483865191e3e582b638b1654a007c62e3efe96f09a9a3"}, + {file = "kiwisolver-1.4.5-cp37-cp37m-win_amd64.whl", hash = "sha256:5b94529f9b2591b7af5f3e0e730a4e0a41ea174af35a4fd067775f9bdfeee01a"}, + {file = "kiwisolver-1.4.5-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:11c7de8f692fc99816e8ac50d1d1aef4f75126eefc33ac79aac02c099fd3db71"}, + {file = "kiwisolver-1.4.5-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:53abb58632235cd154176ced1ae8f0d29a6657aa1aa9decf50b899b755bc2b93"}, + {file = "kiwisolver-1.4.5-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:88b9f257ca61b838b6f8094a62418421f87ac2a1069f7e896c36a7d86b5d4c29"}, + {file = "kiwisolver-1.4.5-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3195782b26fc03aa9c6913d5bad5aeb864bdc372924c093b0f1cebad603dd712"}, + {file = "kiwisolver-1.4.5-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:fc579bf0f502e54926519451b920e875f433aceb4624a3646b3252b5caa9e0b6"}, + {file = "kiwisolver-1.4.5-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5a580c91d686376f0f7c295357595c5a026e6cbc3d77b7c36e290201e7c11ecb"}, + {file = "kiwisolver-1.4.5-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:cfe6ab8da05c01ba6fbea630377b5da2cd9bcbc6338510116b01c1bc939a2c18"}, + {file = "kiwisolver-1.4.5-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:d2e5a98f0ec99beb3c10e13b387f8db39106d53993f498b295f0c914328b1333"}, + {file = "kiwisolver-1.4.5-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:a51a263952b1429e429ff236d2f5a21c5125437861baeed77f5e1cc2d2c7c6da"}, + {file = "kiwisolver-1.4.5-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:3edd2fa14e68c9be82c5b16689e8d63d89fe927e56debd6e1dbce7a26a17f81b"}, + {file = "kiwisolver-1.4.5-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:74d1b44c6cfc897df648cc9fdaa09bc3e7679926e6f96df05775d4fb3946571c"}, + {file = "kiwisolver-1.4.5-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:76d9289ed3f7501012e05abb8358bbb129149dbd173f1f57a1bf1c22d19ab7cc"}, + {file = "kiwisolver-1.4.5-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:92dea1ffe3714fa8eb6a314d2b3c773208d865a0e0d35e713ec54eea08a66250"}, + {file = "kiwisolver-1.4.5-cp38-cp38-win32.whl", hash = "sha256:5c90ae8c8d32e472be041e76f9d2f2dbff4d0b0be8bd4041770eddb18cf49a4e"}, + {file = "kiwisolver-1.4.5-cp38-cp38-win_amd64.whl", hash = "sha256:c7940c1dc63eb37a67721b10d703247552416f719c4188c54e04334321351ced"}, + {file = "kiwisolver-1.4.5-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:9407b6a5f0d675e8a827ad8742e1d6b49d9c1a1da5d952a67d50ef5f4170b18d"}, + {file = "kiwisolver-1.4.5-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:15568384086b6df3c65353820a4473575dbad192e35010f622c6ce3eebd57af9"}, + {file = "kiwisolver-1.4.5-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:0dc9db8e79f0036e8173c466d21ef18e1befc02de8bf8aa8dc0813a6dc8a7046"}, + {file = "kiwisolver-1.4.5-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:cdc8a402aaee9a798b50d8b827d7ecf75edc5fb35ea0f91f213ff927c15f4ff0"}, + {file = "kiwisolver-1.4.5-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:6c3bd3cde54cafb87d74d8db50b909705c62b17c2099b8f2e25b461882e544ff"}, + {file = "kiwisolver-1.4.5-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:955e8513d07a283056b1396e9a57ceddbd272d9252c14f154d450d227606eb54"}, + {file = "kiwisolver-1.4.5-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:346f5343b9e3f00b8db8ba359350eb124b98c99efd0b408728ac6ebf38173958"}, + {file = "kiwisolver-1.4.5-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b9098e0049e88c6a24ff64545cdfc50807818ba6c1b739cae221bbbcbc58aad3"}, + {file = "kiwisolver-1.4.5-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:00bd361b903dc4bbf4eb165f24d1acbee754fce22ded24c3d56eec268658a5cf"}, + {file = "kiwisolver-1.4.5-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:7b8b454bac16428b22560d0a1cf0a09875339cab69df61d7805bf48919415901"}, + {file = "kiwisolver-1.4.5-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:f1d072c2eb0ad60d4c183f3fb44ac6f73fb7a8f16a2694a91f988275cbf352f9"}, + {file = "kiwisolver-1.4.5-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:31a82d498054cac9f6d0b53d02bb85811185bcb477d4b60144f915f3b3126342"}, + {file = "kiwisolver-1.4.5-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:6512cb89e334e4700febbffaaa52761b65b4f5a3cf33f960213d5656cea36a77"}, + {file = "kiwisolver-1.4.5-cp39-cp39-win32.whl", hash = "sha256:9db8ea4c388fdb0f780fe91346fd438657ea602d58348753d9fb265ce1bca67f"}, + {file = "kiwisolver-1.4.5-cp39-cp39-win_amd64.whl", hash = "sha256:59415f46a37f7f2efeec758353dd2eae1b07640d8ca0f0c42548ec4125492635"}, + {file = "kiwisolver-1.4.5-pp37-pypy37_pp73-macosx_10_9_x86_64.whl", hash = "sha256:5c7b3b3a728dc6faf3fc372ef24f21d1e3cee2ac3e9596691d746e5a536de920"}, + {file = "kiwisolver-1.4.5-pp37-pypy37_pp73-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:620ced262a86244e2be10a676b646f29c34537d0d9cc8eb26c08f53d98013390"}, + {file = "kiwisolver-1.4.5-pp37-pypy37_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:378a214a1e3bbf5ac4a8708304318b4f890da88c9e6a07699c4ae7174c09a68d"}, + {file = "kiwisolver-1.4.5-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:aaf7be1207676ac608a50cd08f102f6742dbfc70e8d60c4db1c6897f62f71523"}, + {file = "kiwisolver-1.4.5-pp37-pypy37_pp73-win_amd64.whl", hash = "sha256:ba55dce0a9b8ff59495ddd050a0225d58bd0983d09f87cfe2b6aec4f2c1234e4"}, + {file = "kiwisolver-1.4.5-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:fd32ea360bcbb92d28933fc05ed09bffcb1704ba3fc7942e81db0fd4f81a7892"}, + {file = "kiwisolver-1.4.5-pp38-pypy38_pp73-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:5e7139af55d1688f8b960ee9ad5adafc4ac17c1c473fe07133ac092310d76544"}, + {file = "kiwisolver-1.4.5-pp38-pypy38_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:dced8146011d2bc2e883f9bd68618b8247387f4bbec46d7392b3c3b032640126"}, + {file = "kiwisolver-1.4.5-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c9bf3325c47b11b2e51bca0824ea217c7cd84491d8ac4eefd1e409705ef092bd"}, + {file = "kiwisolver-1.4.5-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:5794cf59533bc3f1b1c821f7206a3617999db9fbefc345360aafe2e067514929"}, + {file = "kiwisolver-1.4.5-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:e368f200bbc2e4f905b8e71eb38b3c04333bddaa6a2464a6355487b02bb7fb09"}, + {file = "kiwisolver-1.4.5-pp39-pypy39_pp73-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e5d706eba36b4c4d5bc6c6377bb6568098765e990cfc21ee16d13963fab7b3e7"}, + {file = "kiwisolver-1.4.5-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:85267bd1aa8880a9c88a8cb71e18d3d64d2751a790e6ca6c27b8ccc724bcd5ad"}, + {file = "kiwisolver-1.4.5-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:210ef2c3a1f03272649aff1ef992df2e724748918c4bc2d5a90352849eb40bea"}, + {file = "kiwisolver-1.4.5-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:11d011a7574eb3b82bcc9c1a1d35c1d7075677fdd15de527d91b46bd35e935ee"}, + {file = "kiwisolver-1.4.5.tar.gz", hash = "sha256:e57e563a57fb22a142da34f38acc2fc1a5c864bc29ca1517a88abc963e60d6ec"}, +] + +[[package]] +name = "lxml" +version = "5.1.0" +description = "Powerful and Pythonic XML processing library combining libxml2/libxslt with the ElementTree API." +optional = false +python-versions = ">=3.6" +files = [ + {file = "lxml-5.1.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:704f5572ff473a5f897745abebc6df40f22d4133c1e0a1f124e4f2bd3330ff7e"}, + {file = "lxml-5.1.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:9d3c0f8567ffe7502d969c2c1b809892dc793b5d0665f602aad19895f8d508da"}, + {file = "lxml-5.1.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:5fcfbebdb0c5d8d18b84118842f31965d59ee3e66996ac842e21f957eb76138c"}, + {file = "lxml-5.1.0-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2f37c6d7106a9d6f0708d4e164b707037b7380fcd0b04c5bd9cae1fb46a856fb"}, + {file = "lxml-5.1.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2befa20a13f1a75c751f47e00929fb3433d67eb9923c2c0b364de449121f447c"}, + {file = "lxml-5.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:22b7ee4c35f374e2c20337a95502057964d7e35b996b1c667b5c65c567d2252a"}, + {file = "lxml-5.1.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:bf8443781533b8d37b295016a4b53c1494fa9a03573c09ca5104550c138d5c05"}, + {file = "lxml-5.1.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:82bddf0e72cb2af3cbba7cec1d2fd11fda0de6be8f4492223d4a268713ef2147"}, + {file = "lxml-5.1.0-cp310-cp310-win32.whl", hash = "sha256:b66aa6357b265670bb574f050ffceefb98549c721cf28351b748be1ef9577d93"}, + {file = "lxml-5.1.0-cp310-cp310-win_amd64.whl", hash = "sha256:4946e7f59b7b6a9e27bef34422f645e9a368cb2be11bf1ef3cafc39a1f6ba68d"}, + {file = "lxml-5.1.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:14deca1460b4b0f6b01f1ddc9557704e8b365f55c63070463f6c18619ebf964f"}, + {file = "lxml-5.1.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:ed8c3d2cd329bf779b7ed38db176738f3f8be637bb395ce9629fc76f78afe3d4"}, + {file = "lxml-5.1.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:436a943c2900bb98123b06437cdd30580a61340fbdb7b28aaf345a459c19046a"}, + {file = "lxml-5.1.0-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:acb6b2f96f60f70e7f34efe0c3ea34ca63f19ca63ce90019c6cbca6b676e81fa"}, + {file = "lxml-5.1.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:af8920ce4a55ff41167ddbc20077f5698c2e710ad3353d32a07d3264f3a2021e"}, + {file = "lxml-5.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7cfced4a069003d8913408e10ca8ed092c49a7f6cefee9bb74b6b3e860683b45"}, + {file = "lxml-5.1.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:9e5ac3437746189a9b4121db2a7b86056ac8786b12e88838696899328fc44bb2"}, + {file = "lxml-5.1.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:f4c9bda132ad108b387c33fabfea47866af87f4ea6ffb79418004f0521e63204"}, + {file = "lxml-5.1.0-cp311-cp311-win32.whl", hash = "sha256:bc64d1b1dab08f679fb89c368f4c05693f58a9faf744c4d390d7ed1d8223869b"}, + {file = "lxml-5.1.0-cp311-cp311-win_amd64.whl", hash = "sha256:a5ab722ae5a873d8dcee1f5f45ddd93c34210aed44ff2dc643b5025981908cda"}, + {file = "lxml-5.1.0-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:9aa543980ab1fbf1720969af1d99095a548ea42e00361e727c58a40832439114"}, + {file = "lxml-5.1.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:6f11b77ec0979f7e4dc5ae081325a2946f1fe424148d3945f943ceaede98adb8"}, + {file = "lxml-5.1.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:a36c506e5f8aeb40680491d39ed94670487ce6614b9d27cabe45d94cd5d63e1e"}, + {file = "lxml-5.1.0-cp312-cp312-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f643ffd2669ffd4b5a3e9b41c909b72b2a1d5e4915da90a77e119b8d48ce867a"}, + {file = "lxml-5.1.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:16dd953fb719f0ffc5bc067428fc9e88f599e15723a85618c45847c96f11f431"}, + {file = "lxml-5.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:16018f7099245157564d7148165132c70adb272fb5a17c048ba70d9cc542a1a1"}, + {file = "lxml-5.1.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:82cd34f1081ae4ea2ede3d52f71b7be313756e99b4b5f829f89b12da552d3aa3"}, + {file = "lxml-5.1.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:19a1bc898ae9f06bccb7c3e1dfd73897ecbbd2c96afe9095a6026016e5ca97b8"}, + {file = "lxml-5.1.0-cp312-cp312-win32.whl", hash = "sha256:13521a321a25c641b9ea127ef478b580b5ec82aa2e9fc076c86169d161798b01"}, + {file = "lxml-5.1.0-cp312-cp312-win_amd64.whl", hash = "sha256:1ad17c20e3666c035db502c78b86e58ff6b5991906e55bdbef94977700c72623"}, + {file = "lxml-5.1.0-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:24ef5a4631c0b6cceaf2dbca21687e29725b7c4e171f33a8f8ce23c12558ded1"}, + {file = "lxml-5.1.0-cp36-cp36m-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8d2900b7f5318bc7ad8631d3d40190b95ef2aa8cc59473b73b294e4a55e9f30f"}, + {file = "lxml-5.1.0-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:601f4a75797d7a770daed8b42b97cd1bb1ba18bd51a9382077a6a247a12aa38d"}, + {file = "lxml-5.1.0-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b4b68c961b5cc402cbd99cca5eb2547e46ce77260eb705f4d117fd9c3f932b95"}, + {file = "lxml-5.1.0-cp36-cp36m-musllinux_1_1_aarch64.whl", hash = "sha256:afd825e30f8d1f521713a5669b63657bcfe5980a916c95855060048b88e1adb7"}, + {file = "lxml-5.1.0-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:262bc5f512a66b527d026518507e78c2f9c2bd9eb5c8aeeb9f0eb43fcb69dc67"}, + {file = "lxml-5.1.0-cp36-cp36m-win32.whl", hash = "sha256:e856c1c7255c739434489ec9c8aa9cdf5179785d10ff20add308b5d673bed5cd"}, + {file = "lxml-5.1.0-cp36-cp36m-win_amd64.whl", hash = "sha256:c7257171bb8d4432fe9d6fdde4d55fdbe663a63636a17f7f9aaba9bcb3153ad7"}, + {file = "lxml-5.1.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:b9e240ae0ba96477682aa87899d94ddec1cc7926f9df29b1dd57b39e797d5ab5"}, + {file = "lxml-5.1.0-cp37-cp37m-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a96f02ba1bcd330807fc060ed91d1f7a20853da6dd449e5da4b09bfcc08fdcf5"}, + {file = "lxml-5.1.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3e3898ae2b58eeafedfe99e542a17859017d72d7f6a63de0f04f99c2cb125936"}, + {file = "lxml-5.1.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:61c5a7edbd7c695e54fca029ceb351fc45cd8860119a0f83e48be44e1c464862"}, + {file = "lxml-5.1.0-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:3aeca824b38ca78d9ee2ab82bd9883083d0492d9d17df065ba3b94e88e4d7ee6"}, + {file = "lxml-5.1.0-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:8f52fe6859b9db71ee609b0c0a70fea5f1e71c3462ecf144ca800d3f434f0764"}, + {file = "lxml-5.1.0-cp37-cp37m-win32.whl", hash = "sha256:d42e3a3fc18acc88b838efded0e6ec3edf3e328a58c68fbd36a7263a874906c8"}, + {file = "lxml-5.1.0-cp37-cp37m-win_amd64.whl", hash = "sha256:eac68f96539b32fce2c9b47eb7c25bb2582bdaf1bbb360d25f564ee9e04c542b"}, + {file = "lxml-5.1.0-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:ae15347a88cf8af0949a9872b57a320d2605ae069bcdf047677318bc0bba45b1"}, + {file = "lxml-5.1.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:c26aab6ea9c54d3bed716b8851c8bfc40cb249b8e9880e250d1eddde9f709bf5"}, + {file = "lxml-5.1.0-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:342e95bddec3a698ac24378d61996b3ee5ba9acfeb253986002ac53c9a5f6f84"}, + {file = "lxml-5.1.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:725e171e0b99a66ec8605ac77fa12239dbe061482ac854d25720e2294652eeaa"}, + {file = "lxml-5.1.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3d184e0d5c918cff04cdde9dbdf9600e960161d773666958c9d7b565ccc60c45"}, + {file = "lxml-5.1.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:98f3f020a2b736566c707c8e034945c02aa94e124c24f77ca097c446f81b01f1"}, + {file = "lxml-5.1.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:6d48fc57e7c1e3df57be5ae8614bab6d4e7b60f65c5457915c26892c41afc59e"}, + {file = "lxml-5.1.0-cp38-cp38-win32.whl", hash = "sha256:7ec465e6549ed97e9f1e5ed51c657c9ede767bc1c11552f7f4d022c4df4a977a"}, + {file = "lxml-5.1.0-cp38-cp38-win_amd64.whl", hash = "sha256:b21b4031b53d25b0858d4e124f2f9131ffc1530431c6d1321805c90da78388d1"}, + {file = "lxml-5.1.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:52427a7eadc98f9e62cb1368a5079ae826f94f05755d2d567d93ee1bc3ceb354"}, + {file = "lxml-5.1.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:6a2a2c724d97c1eb8cf966b16ca2915566a4904b9aad2ed9a09c748ffe14f969"}, + {file = "lxml-5.1.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:843b9c835580d52828d8f69ea4302537337a21e6b4f1ec711a52241ba4a824f3"}, + {file = "lxml-5.1.0-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9b99f564659cfa704a2dd82d0684207b1aadf7d02d33e54845f9fc78e06b7581"}, + {file = "lxml-5.1.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4f8b0c78e7aac24979ef09b7f50da871c2de2def043d468c4b41f512d831e912"}, + {file = "lxml-5.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9bcf86dfc8ff3e992fed847c077bd875d9e0ba2fa25d859c3a0f0f76f07f0c8d"}, + {file = "lxml-5.1.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:49a9b4af45e8b925e1cd6f3b15bbba2c81e7dba6dce170c677c9cda547411e14"}, + {file = "lxml-5.1.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:280f3edf15c2a967d923bcfb1f8f15337ad36f93525828b40a0f9d6c2ad24890"}, + {file = "lxml-5.1.0-cp39-cp39-win32.whl", hash = "sha256:ed7326563024b6e91fef6b6c7a1a2ff0a71b97793ac33dbbcf38f6005e51ff6e"}, + {file = "lxml-5.1.0-cp39-cp39-win_amd64.whl", hash = "sha256:8d7b4beebb178e9183138f552238f7e6613162a42164233e2bda00cb3afac58f"}, + {file = "lxml-5.1.0-pp310-pypy310_pp73-macosx_10_9_x86_64.whl", hash = "sha256:9bd0ae7cc2b85320abd5e0abad5ccee5564ed5f0cc90245d2f9a8ef330a8deae"}, + {file = "lxml-5.1.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d8c1d679df4361408b628f42b26a5d62bd3e9ba7f0c0e7969f925021554755aa"}, + {file = "lxml-5.1.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:2ad3a8ce9e8a767131061a22cd28fdffa3cd2dc193f399ff7b81777f3520e372"}, + {file = "lxml-5.1.0-pp37-pypy37_pp73-macosx_10_9_x86_64.whl", hash = "sha256:304128394c9c22b6569eba2a6d98392b56fbdfbad58f83ea702530be80d0f9df"}, + {file = "lxml-5.1.0-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d74fcaf87132ffc0447b3c685a9f862ffb5b43e70ea6beec2fb8057d5d2a1fea"}, + {file = "lxml-5.1.0-pp37-pypy37_pp73-win_amd64.whl", hash = "sha256:8cf5877f7ed384dabfdcc37922c3191bf27e55b498fecece9fd5c2c7aaa34c33"}, + {file = "lxml-5.1.0-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:877efb968c3d7eb2dad540b6cabf2f1d3c0fbf4b2d309a3c141f79c7e0061324"}, + {file = "lxml-5.1.0-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3f14a4fb1c1c402a22e6a341a24c1341b4a3def81b41cd354386dcb795f83897"}, + {file = "lxml-5.1.0-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:25663d6e99659544ee8fe1b89b1a8c0aaa5e34b103fab124b17fa958c4a324a6"}, + {file = "lxml-5.1.0-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:8b9f19df998761babaa7f09e6bc169294eefafd6149aaa272081cbddc7ba4ca3"}, + {file = "lxml-5.1.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5e53d7e6a98b64fe54775d23a7c669763451340c3d44ad5e3a3b48a1efbdc96f"}, + {file = "lxml-5.1.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:c3cd1fc1dc7c376c54440aeaaa0dcc803d2126732ff5c6b68ccd619f2e64be4f"}, + {file = "lxml-5.1.0.tar.gz", hash = "sha256:3eea6ed6e6c918e468e693c41ef07f3c3acc310b70ddd9cc72d9ef84bc9564ca"}, +] + +[package.extras] +cssselect = ["cssselect (>=0.7)"] +html5 = ["html5lib"] +htmlsoup = ["BeautifulSoup4"] +source = ["Cython (>=3.0.7)"] + +[[package]] +name = "m2r2" +version = "0.3.3.post2" +description = "Markdown and reStructuredText in a single file." +optional = false +python-versions = ">=3.7" +files = [ + {file = "m2r2-0.3.3.post2-py3-none-any.whl", hash = "sha256:86157721eb6eabcd54d4eea7195890cc58fa6188b8d0abea633383cfbb5e11e3"}, + {file = "m2r2-0.3.3.post2.tar.gz", hash = "sha256:e62bcb0e74b3ce19cda0737a0556b04cf4a43b785072fcef474558f2c1482ca8"}, +] + +[package.dependencies] +docutils = ">=0.19" +mistune = "0.8.4" + +[[package]] +name = "markupsafe" +version = "2.1.5" +description = "Safely add untrusted strings to HTML/XML markup." +optional = false +python-versions = ">=3.7" +files = [ + {file = "MarkupSafe-2.1.5-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:a17a92de5231666cfbe003f0e4b9b3a7ae3afb1ec2845aadc2bacc93ff85febc"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:72b6be590cc35924b02c78ef34b467da4ba07e4e0f0454a2c5907f473fc50ce5"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e61659ba32cf2cf1481e575d0462554625196a1f2fc06a1c777d3f48e8865d46"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2174c595a0d73a3080ca3257b40096db99799265e1c27cc5a610743acd86d62f"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ae2ad8ae6ebee9d2d94b17fb62763125f3f374c25618198f40cbb8b525411900"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:075202fa5b72c86ad32dc7d0b56024ebdbcf2048c0ba09f1cde31bfdd57bcfff"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:598e3276b64aff0e7b3451b72e94fa3c238d452e7ddcd893c3ab324717456bad"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:fce659a462a1be54d2ffcacea5e3ba2d74daa74f30f5f143fe0c58636e355fdd"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-win32.whl", hash = "sha256:d9fad5155d72433c921b782e58892377c44bd6252b5af2f67f16b194987338a4"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-win_amd64.whl", hash = "sha256:bf50cd79a75d181c9181df03572cdce0fbb75cc353bc350712073108cba98de5"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:629ddd2ca402ae6dbedfceeba9c46d5f7b2a61d9749597d4307f943ef198fc1f"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:5b7b716f97b52c5a14bffdf688f971b2d5ef4029127f1ad7a513973cfd818df2"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6ec585f69cec0aa07d945b20805be741395e28ac1627333b1c5b0105962ffced"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b91c037585eba9095565a3556f611e3cbfaa42ca1e865f7b8015fe5c7336d5a5"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7502934a33b54030eaf1194c21c692a534196063db72176b0c4028e140f8f32c"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:0e397ac966fdf721b2c528cf028494e86172b4feba51d65f81ffd65c63798f3f"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:c061bb86a71b42465156a3ee7bd58c8c2ceacdbeb95d05a99893e08b8467359a"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:3a57fdd7ce31c7ff06cdfbf31dafa96cc533c21e443d57f5b1ecc6cdc668ec7f"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-win32.whl", hash = "sha256:397081c1a0bfb5124355710fe79478cdbeb39626492b15d399526ae53422b906"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-win_amd64.whl", hash = "sha256:2b7c57a4dfc4f16f7142221afe5ba4e093e09e728ca65c51f5620c9aaeb9a617"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:8dec4936e9c3100156f8a2dc89c4b88d5c435175ff03413b443469c7c8c5f4d1"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:3c6b973f22eb18a789b1460b4b91bf04ae3f0c4234a0a6aa6b0a92f6f7b951d4"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ac07bad82163452a6884fe8fa0963fb98c2346ba78d779ec06bd7a6262132aee"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f5dfb42c4604dddc8e4305050aa6deb084540643ed5804d7455b5df8fe16f5e5"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ea3d8a3d18833cf4304cd2fc9cbb1efe188ca9b5efef2bdac7adc20594a0e46b"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:d050b3361367a06d752db6ead6e7edeb0009be66bc3bae0ee9d97fb326badc2a"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:bec0a414d016ac1a18862a519e54b2fd0fc8bbfd6890376898a6c0891dd82e9f"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:58c98fee265677f63a4385256a6d7683ab1832f3ddd1e66fe948d5880c21a169"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-win32.whl", hash = "sha256:8590b4ae07a35970728874632fed7bd57b26b0102df2d2b233b6d9d82f6c62ad"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-win_amd64.whl", hash = "sha256:823b65d8706e32ad2df51ed89496147a42a2a6e01c13cfb6ffb8b1e92bc910bb"}, + {file = "MarkupSafe-2.1.5-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:c8b29db45f8fe46ad280a7294f5c3ec36dbac9491f2d1c17345be8e69cc5928f"}, + {file = "MarkupSafe-2.1.5-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ec6a563cff360b50eed26f13adc43e61bc0c04d94b8be985e6fb24b81f6dcfdf"}, + {file = "MarkupSafe-2.1.5-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a549b9c31bec33820e885335b451286e2969a2d9e24879f83fe904a5ce59d70a"}, + {file = "MarkupSafe-2.1.5-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4f11aa001c540f62c6166c7726f71f7573b52c68c31f014c25cc7901deea0b52"}, + {file = "MarkupSafe-2.1.5-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:7b2e5a267c855eea6b4283940daa6e88a285f5f2a67f2220203786dfa59b37e9"}, + {file = "MarkupSafe-2.1.5-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:2d2d793e36e230fd32babe143b04cec8a8b3eb8a3122d2aceb4a371e6b09b8df"}, + {file = "MarkupSafe-2.1.5-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:ce409136744f6521e39fd8e2a24c53fa18ad67aa5bc7c2cf83645cce5b5c4e50"}, + {file = "MarkupSafe-2.1.5-cp37-cp37m-win32.whl", hash = "sha256:4096e9de5c6fdf43fb4f04c26fb114f61ef0bf2e5604b6ee3019d51b69e8c371"}, + {file = "MarkupSafe-2.1.5-cp37-cp37m-win_amd64.whl", hash = "sha256:4275d846e41ecefa46e2015117a9f491e57a71ddd59bbead77e904dc02b1bed2"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:656f7526c69fac7f600bd1f400991cc282b417d17539a1b228617081106feb4a"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:97cafb1f3cbcd3fd2b6fbfb99ae11cdb14deea0736fc2b0952ee177f2b813a46"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1f3fbcb7ef1f16e48246f704ab79d79da8a46891e2da03f8783a5b6fa41a9532"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fa9db3f79de01457b03d4f01b34cf91bc0048eb2c3846ff26f66687c2f6d16ab"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ffee1f21e5ef0d712f9033568f8344d5da8cc2869dbd08d87c84656e6a2d2f68"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:5dedb4db619ba5a2787a94d877bc8ffc0566f92a01c0ef214865e54ecc9ee5e0"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:30b600cf0a7ac9234b2638fbc0fb6158ba5bdcdf46aeb631ead21248b9affbc4"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:8dd717634f5a044f860435c1d8c16a270ddf0ef8588d4887037c5028b859b0c3"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-win32.whl", hash = "sha256:daa4ee5a243f0f20d528d939d06670a298dd39b1ad5f8a72a4275124a7819eff"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-win_amd64.whl", hash = "sha256:619bc166c4f2de5caa5a633b8b7326fbe98e0ccbfacabd87268a2b15ff73a029"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:7a68b554d356a91cce1236aa7682dc01df0edba8d043fd1ce607c49dd3c1edcf"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:db0b55e0f3cc0be60c1f19efdde9a637c32740486004f20d1cff53c3c0ece4d2"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3e53af139f8579a6d5f7b76549125f0d94d7e630761a2111bc431fd820e163b8"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:17b950fccb810b3293638215058e432159d2b71005c74371d784862b7e4683f3"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4c31f53cdae6ecfa91a77820e8b151dba54ab528ba65dfd235c80b086d68a465"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:bff1b4290a66b490a2f4719358c0cdcd9bafb6b8f061e45c7a2460866bf50c2e"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:bc1667f8b83f48511b94671e0e441401371dfd0f0a795c7daa4a3cd1dde55bea"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:5049256f536511ee3f7e1b3f87d1d1209d327e818e6ae1365e8653d7e3abb6a6"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-win32.whl", hash = "sha256:00e046b6dd71aa03a41079792f8473dc494d564611a8f89bbbd7cb93295ebdcf"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-win_amd64.whl", hash = "sha256:fa173ec60341d6bb97a89f5ea19c85c5643c1e7dedebc22f5181eb73573142c5"}, + {file = "MarkupSafe-2.1.5.tar.gz", hash = "sha256:d283d37a890ba4c1ae73ffadf8046435c76e7bc2247bbb63c00bd1a709c6544b"}, +] + +[[package]] +name = "matplotlib" +version = "3.7.5" +description = "Python plotting package" +optional = false +python-versions = ">=3.8" +files = [ + {file = "matplotlib-3.7.5-cp310-cp310-macosx_10_12_universal2.whl", hash = "sha256:4a87b69cb1cb20943010f63feb0b2901c17a3b435f75349fd9865713bfa63925"}, + {file = "matplotlib-3.7.5-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:d3ce45010fefb028359accebb852ca0c21bd77ec0f281952831d235228f15810"}, + {file = "matplotlib-3.7.5-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:fbea1e762b28400393d71be1a02144aa16692a3c4c676ba0178ce83fc2928fdd"}, + {file = "matplotlib-3.7.5-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ec0e1adc0ad70ba8227e957551e25a9d2995e319c29f94a97575bb90fa1d4469"}, + {file = "matplotlib-3.7.5-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6738c89a635ced486c8a20e20111d33f6398a9cbebce1ced59c211e12cd61455"}, + {file = "matplotlib-3.7.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1210b7919b4ed94b5573870f316bca26de3e3b07ffdb563e79327dc0e6bba515"}, + {file = "matplotlib-3.7.5-cp310-cp310-win32.whl", hash = "sha256:068ebcc59c072781d9dcdb82f0d3f1458271c2de7ca9c78f5bd672141091e9e1"}, + {file = "matplotlib-3.7.5-cp310-cp310-win_amd64.whl", hash = "sha256:f098ffbaab9df1e3ef04e5a5586a1e6b1791380698e84938d8640961c79b1fc0"}, + {file = "matplotlib-3.7.5-cp311-cp311-macosx_10_12_universal2.whl", hash = "sha256:f65342c147572673f02a4abec2d5a23ad9c3898167df9b47c149f32ce61ca078"}, + {file = "matplotlib-3.7.5-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:4ddf7fc0e0dc553891a117aa083039088d8a07686d4c93fb8a810adca68810af"}, + {file = "matplotlib-3.7.5-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:0ccb830fc29442360d91be48527809f23a5dcaee8da5f4d9b2d5b867c1b087b8"}, + {file = "matplotlib-3.7.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:efc6bb28178e844d1f408dd4d6341ee8a2e906fc9e0fa3dae497da4e0cab775d"}, + {file = "matplotlib-3.7.5-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3b15c4c2d374f249f324f46e883340d494c01768dd5287f8bc00b65b625ab56c"}, + {file = "matplotlib-3.7.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3d028555421912307845e59e3de328260b26d055c5dac9b182cc9783854e98fb"}, + {file = "matplotlib-3.7.5-cp311-cp311-win32.whl", hash = "sha256:fe184b4625b4052fa88ef350b815559dd90cc6cc8e97b62f966e1ca84074aafa"}, + {file = "matplotlib-3.7.5-cp311-cp311-win_amd64.whl", hash = "sha256:084f1f0f2f1010868c6f1f50b4e1c6f2fb201c58475494f1e5b66fed66093647"}, + {file = "matplotlib-3.7.5-cp312-cp312-macosx_10_12_universal2.whl", hash = "sha256:34bceb9d8ddb142055ff27cd7135f539f2f01be2ce0bafbace4117abe58f8fe4"}, + {file = "matplotlib-3.7.5-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:c5a2134162273eb8cdfd320ae907bf84d171de948e62180fa372a3ca7cf0f433"}, + {file = "matplotlib-3.7.5-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:039ad54683a814002ff37bf7981aa1faa40b91f4ff84149beb53d1eb64617980"}, + {file = "matplotlib-3.7.5-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4d742ccd1b09e863b4ca58291728db645b51dab343eebb08d5d4b31b308296ce"}, + {file = "matplotlib-3.7.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:743b1c488ca6a2bc7f56079d282e44d236bf375968bfd1b7ba701fd4d0fa32d6"}, + {file = "matplotlib-3.7.5-cp312-cp312-win_amd64.whl", hash = "sha256:fbf730fca3e1f23713bc1fae0a57db386e39dc81ea57dc305c67f628c1d7a342"}, + {file = "matplotlib-3.7.5-cp38-cp38-macosx_10_12_universal2.whl", hash = "sha256:cfff9b838531698ee40e40ea1a8a9dc2c01edb400b27d38de6ba44c1f9a8e3d2"}, + {file = "matplotlib-3.7.5-cp38-cp38-macosx_10_12_x86_64.whl", hash = "sha256:1dbcca4508bca7847fe2d64a05b237a3dcaec1f959aedb756d5b1c67b770c5ee"}, + {file = "matplotlib-3.7.5-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:4cdf4ef46c2a1609a50411b66940b31778db1e4b73d4ecc2eaa40bd588979b13"}, + {file = "matplotlib-3.7.5-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:167200ccfefd1674b60e957186dfd9baf58b324562ad1a28e5d0a6b3bea77905"}, + {file = "matplotlib-3.7.5-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:53e64522934df6e1818b25fd48cf3b645b11740d78e6ef765fbb5fa5ce080d02"}, + {file = "matplotlib-3.7.5-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d3e3bc79b2d7d615067bd010caff9243ead1fc95cf735c16e4b2583173f717eb"}, + {file = "matplotlib-3.7.5-cp38-cp38-win32.whl", hash = "sha256:6b641b48c6819726ed47c55835cdd330e53747d4efff574109fd79b2d8a13748"}, + {file = "matplotlib-3.7.5-cp38-cp38-win_amd64.whl", hash = "sha256:f0b60993ed3488b4532ec6b697059897891927cbfc2b8d458a891b60ec03d9d7"}, + {file = "matplotlib-3.7.5-cp39-cp39-macosx_10_12_universal2.whl", hash = "sha256:090964d0afaff9c90e4d8de7836757e72ecfb252fb02884016d809239f715651"}, + {file = "matplotlib-3.7.5-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:9fc6fcfbc55cd719bc0bfa60bde248eb68cf43876d4c22864603bdd23962ba25"}, + {file = "matplotlib-3.7.5-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:5e7cc3078b019bb863752b8b60e8b269423000f1603cb2299608231996bd9d54"}, + {file = "matplotlib-3.7.5-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1e4e9a868e8163abaaa8259842d85f949a919e1ead17644fb77a60427c90473c"}, + {file = "matplotlib-3.7.5-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:fa7ebc995a7d747dacf0a717d0eb3aa0f0c6a0e9ea88b0194d3a3cd241a1500f"}, + {file = "matplotlib-3.7.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3785bfd83b05fc0e0c2ae4c4a90034fe693ef96c679634756c50fe6efcc09856"}, + {file = "matplotlib-3.7.5-cp39-cp39-win32.whl", hash = "sha256:29b058738c104d0ca8806395f1c9089dfe4d4f0f78ea765c6c704469f3fffc81"}, + {file = "matplotlib-3.7.5-cp39-cp39-win_amd64.whl", hash = "sha256:fd4028d570fa4b31b7b165d4a685942ae9cdc669f33741e388c01857d9723eab"}, + {file = "matplotlib-3.7.5-pp38-pypy38_pp73-macosx_10_12_x86_64.whl", hash = "sha256:2a9a3f4d6a7f88a62a6a18c7e6a84aedcaf4faf0708b4ca46d87b19f1b526f88"}, + {file = "matplotlib-3.7.5-pp38-pypy38_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b9b3fd853d4a7f008a938df909b96db0b454225f935d3917520305b90680579c"}, + {file = "matplotlib-3.7.5-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f0ad550da9f160737d7890217c5eeed4337d07e83ca1b2ca6535078f354e7675"}, + {file = "matplotlib-3.7.5-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:20da7924a08306a861b3f2d1da0d1aa9a6678e480cf8eacffe18b565af2813e7"}, + {file = "matplotlib-3.7.5-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:b45c9798ea6bb920cb77eb7306409756a7fab9db9b463e462618e0559aecb30e"}, + {file = "matplotlib-3.7.5-pp39-pypy39_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a99866267da1e561c7776fe12bf4442174b79aac1a47bd7e627c7e4d077ebd83"}, + {file = "matplotlib-3.7.5-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2b6aa62adb6c268fc87d80f963aca39c64615c31830b02697743c95590ce3fbb"}, + {file = "matplotlib-3.7.5-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:e530ab6a0afd082d2e9c17eb1eb064a63c5b09bb607b2b74fa41adbe3e162286"}, + {file = "matplotlib-3.7.5.tar.gz", hash = "sha256:1e5c971558ebc811aa07f54c7b7c677d78aa518ef4c390e14673a09e0860184a"}, +] + +[package.dependencies] +contourpy = ">=1.0.1" +cycler = ">=0.10" +fonttools = ">=4.22.0" +kiwisolver = ">=1.0.1" +numpy = ">=1.20,<2" +packaging = ">=20.0" +pillow = ">=6.2.0" +pyparsing = ">=2.3.1" +python-dateutil = ">=2.7" + +[[package]] +name = "matplotlib-inline" +version = "0.1.6" +description = "Inline Matplotlib backend for Jupyter" +optional = false +python-versions = ">=3.5" +files = [ + {file = "matplotlib-inline-0.1.6.tar.gz", hash = "sha256:f887e5f10ba98e8d2b150ddcf4702c1e5f8b3a20005eb0f74bfdbd360ee6f304"}, + {file = "matplotlib_inline-0.1.6-py3-none-any.whl", hash = "sha256:f1f41aab5328aa5aaea9b16d083b128102f8712542f819fe7e6a420ff581b311"}, +] + +[package.dependencies] +traitlets = "*" + +[[package]] +name = "mccabe" +version = "0.7.0" +description = "McCabe checker, plugin for flake8" +optional = false +python-versions = ">=3.6" +files = [ + {file = "mccabe-0.7.0-py2.py3-none-any.whl", hash = "sha256:6c2d30ab6be0e4a46919781807b4f0d834ebdd6c6e3dca0bda5a15f863427b6e"}, + {file = "mccabe-0.7.0.tar.gz", hash = "sha256:348e0240c33b60bbdf4e523192ef919f28cb2c3d7d5c7794f74009290f236325"}, +] + +[[package]] +name = "mistune" +version = "0.8.4" +description = "The fastest markdown parser in pure Python" +optional = false +python-versions = "*" +files = [ + {file = "mistune-0.8.4-py2.py3-none-any.whl", hash = "sha256:88a1051873018da288eee8538d476dffe1262495144b33ecb586c4ab266bb8d4"}, + {file = "mistune-0.8.4.tar.gz", hash = "sha256:59a3429db53c50b5c6bcc8a07f8848cb00d7dc8bdb431a4ab41920d201d4756e"}, +] + +[[package]] +name = "mpmath" +version = "1.3.0" +description = "Python library for arbitrary-precision floating-point arithmetic" +optional = false +python-versions = "*" +files = [ + {file = "mpmath-1.3.0-py3-none-any.whl", hash = "sha256:a0b2b9fe80bbcd81a6647ff13108738cfb482d481d826cc0e02f5b35e5c88d2c"}, + {file = "mpmath-1.3.0.tar.gz", hash = "sha256:7a28eb2a9774d00c7bc92411c19a89209d5da7c4c9a9e227be8330a23a25b91f"}, +] + +[package.extras] +develop = ["codecov", "pycodestyle", "pytest (>=4.6)", "pytest-cov", "wheel"] +docs = ["sphinx"] +gmpy = ["gmpy2 (>=2.1.0a4)"] +tests = ["pytest (>=4.6)"] + +[[package]] +name = "mypy" +version = "1.8.0" +description = "Optional static typing for Python" +optional = false +python-versions = ">=3.8" +files = [ + {file = "mypy-1.8.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:485a8942f671120f76afffff70f259e1cd0f0cfe08f81c05d8816d958d4577d3"}, + {file = "mypy-1.8.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:df9824ac11deaf007443e7ed2a4a26bebff98d2bc43c6da21b2b64185da011c4"}, + {file = "mypy-1.8.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2afecd6354bbfb6e0160f4e4ad9ba6e4e003b767dd80d85516e71f2e955ab50d"}, + {file = "mypy-1.8.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:8963b83d53ee733a6e4196954502b33567ad07dfd74851f32be18eb932fb1cb9"}, + {file = "mypy-1.8.0-cp310-cp310-win_amd64.whl", hash = "sha256:e46f44b54ebddbeedbd3d5b289a893219065ef805d95094d16a0af6630f5d410"}, + {file = "mypy-1.8.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:855fe27b80375e5c5878492f0729540db47b186509c98dae341254c8f45f42ae"}, + {file = "mypy-1.8.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:4c886c6cce2d070bd7df4ec4a05a13ee20c0aa60cb587e8d1265b6c03cf91da3"}, + {file = "mypy-1.8.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d19c413b3c07cbecf1f991e2221746b0d2a9410b59cb3f4fb9557f0365a1a817"}, + {file = "mypy-1.8.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:9261ed810972061388918c83c3f5cd46079d875026ba97380f3e3978a72f503d"}, + {file = "mypy-1.8.0-cp311-cp311-win_amd64.whl", hash = "sha256:51720c776d148bad2372ca21ca29256ed483aa9a4cdefefcef49006dff2a6835"}, + {file = "mypy-1.8.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:52825b01f5c4c1c4eb0db253ec09c7aa17e1a7304d247c48b6f3599ef40db8bd"}, + {file = "mypy-1.8.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:f5ac9a4eeb1ec0f1ccdc6f326bcdb464de5f80eb07fb38b5ddd7b0de6bc61e55"}, + {file = "mypy-1.8.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:afe3fe972c645b4632c563d3f3eff1cdca2fa058f730df2b93a35e3b0c538218"}, + {file = "mypy-1.8.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:42c6680d256ab35637ef88891c6bd02514ccb7e1122133ac96055ff458f93fc3"}, + {file = "mypy-1.8.0-cp312-cp312-win_amd64.whl", hash = "sha256:720a5ca70e136b675af3af63db533c1c8c9181314d207568bbe79051f122669e"}, + {file = "mypy-1.8.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:028cf9f2cae89e202d7b6593cd98db6759379f17a319b5faf4f9978d7084cdc6"}, + {file = "mypy-1.8.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:4e6d97288757e1ddba10dd9549ac27982e3e74a49d8d0179fc14d4365c7add66"}, + {file = "mypy-1.8.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7f1478736fcebb90f97e40aff11a5f253af890c845ee0c850fe80aa060a267c6"}, + {file = "mypy-1.8.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:42419861b43e6962a649068a61f4a4839205a3ef525b858377a960b9e2de6e0d"}, + {file = "mypy-1.8.0-cp38-cp38-win_amd64.whl", hash = "sha256:2b5b6c721bd4aabaadead3a5e6fa85c11c6c795e0c81a7215776ef8afc66de02"}, + {file = "mypy-1.8.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:5c1538c38584029352878a0466f03a8ee7547d7bd9f641f57a0f3017a7c905b8"}, + {file = "mypy-1.8.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:4ef4be7baf08a203170f29e89d79064463b7fc7a0908b9d0d5114e8009c3a259"}, + {file = "mypy-1.8.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7178def594014aa6c35a8ff411cf37d682f428b3b5617ca79029d8ae72f5402b"}, + {file = "mypy-1.8.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:ab3c84fa13c04aeeeabb2a7f67a25ef5d77ac9d6486ff33ded762ef353aa5592"}, + {file = "mypy-1.8.0-cp39-cp39-win_amd64.whl", hash = "sha256:99b00bc72855812a60d253420d8a2eae839b0afa4938f09f4d2aa9bb4654263a"}, + {file = "mypy-1.8.0-py3-none-any.whl", hash = "sha256:538fd81bb5e430cc1381a443971c0475582ff9f434c16cd46d2c66763ce85d9d"}, + {file = "mypy-1.8.0.tar.gz", hash = "sha256:6ff8b244d7085a0b425b56d327b480c3b29cafbd2eff27316a004f9a7391ae07"}, +] + +[package.dependencies] +mypy-extensions = ">=1.0.0" +tomli = {version = ">=1.1.0", markers = "python_version < \"3.11\""} +typing-extensions = ">=4.1.0" + +[package.extras] +dmypy = ["psutil (>=4.0)"] +install-types = ["pip"] +mypyc = ["setuptools (>=50)"] +reports = ["lxml"] + +[[package]] +name = "mypy-extensions" +version = "1.0.0" +description = "Type system extensions for programs checked with the mypy type checker." +optional = false +python-versions = ">=3.5" +files = [ + {file = "mypy_extensions-1.0.0-py3-none-any.whl", hash = "sha256:4392f6c0eb8a5668a69e23d168ffa70f0be9ccfd32b5cc2d26a34ae5b844552d"}, + {file = "mypy_extensions-1.0.0.tar.gz", hash = "sha256:75dbf8955dc00442a438fc4d0666508a9a97b6bd41aa2f0ffe9d2f2725af0782"}, +] + +[[package]] +name = "nbclassic" +version = "1.0.0" +description = "Jupyter Notebook as a Jupyter Server extension." +optional = false +python-versions = ">=3.7" +files = [ + {file = "nbclassic-1.0.0-py3-none-any.whl", hash = "sha256:f99e4769b4750076cd4235c044b61232110733322384a94a63791d2e7beacc66"}, + {file = "nbclassic-1.0.0.tar.gz", hash = "sha256:0ae11eb2319455d805596bf320336cda9554b41d99ab9a3c31bf8180bffa30e3"}, +] + +[package.dependencies] +argon2-cffi = "*" +ipykernel = "*" +ipython-genutils = "*" +jinja2 = "*" +jupyter-client = ">=6.1.1" +jupyter-core = ">=4.6.1" +jupyter-server = ">=1.8" +nbconvert = ">=5" +nbformat = "*" +nest-asyncio = ">=1.5" +notebook-shim = ">=0.2.3" +prometheus-client = "*" +pyzmq = ">=17" +Send2Trash = ">=1.8.0" +terminado = ">=0.8.3" +tornado = ">=6.1" +traitlets = ">=4.2.1" + +[package.extras] +docs = ["myst-parser", "nbsphinx", "sphinx", "sphinx-rtd-theme", "sphinxcontrib-github-alt"] +json-logging = ["json-logging"] +test = ["coverage", "nbval", "pytest", "pytest-cov", "pytest-jupyter", "pytest-playwright", "pytest-tornasync", "requests", "requests-unixsocket", "testpath"] + +[[package]] +name = "nbclient" +version = "0.9.0" +description = "A client library for executing notebooks. Formerly nbconvert's ExecutePreprocessor." +optional = false +python-versions = ">=3.8.0" +files = [ + {file = "nbclient-0.9.0-py3-none-any.whl", hash = "sha256:a3a1ddfb34d4a9d17fc744d655962714a866639acd30130e9be84191cd97cd15"}, + {file = "nbclient-0.9.0.tar.gz", hash = "sha256:4b28c207877cf33ef3a9838cdc7a54c5ceff981194a82eac59d558f05487295e"}, +] + +[package.dependencies] +jupyter-client = ">=6.1.12" +jupyter-core = ">=4.12,<5.0.dev0 || >=5.1.dev0" +nbformat = ">=5.1" +traitlets = ">=5.4" + +[package.extras] +dev = ["pre-commit"] +docs = ["autodoc-traits", "mock", "moto", "myst-parser", "nbclient[test]", "sphinx (>=1.7)", "sphinx-book-theme", "sphinxcontrib-spelling"] +test = ["flaky", "ipykernel (>=6.19.3)", "ipython", "ipywidgets", "nbconvert (>=7.0.0)", "pytest (>=7.0)", "pytest-asyncio", "pytest-cov (>=4.0)", "testpath", "xmltodict"] + +[[package]] +name = "nbconvert" +version = "6.5.4" +description = "Converting Jupyter Notebooks" +optional = false +python-versions = ">=3.7" +files = [ + {file = "nbconvert-6.5.4-py3-none-any.whl", hash = "sha256:d679a947f849a966cbbd0bf6e7fedcfdb64be3b20ce7cef11ad55c13f5820e19"}, + {file = "nbconvert-6.5.4.tar.gz", hash = "sha256:9e3c7c6d491374cbdd5f35d268c05809357716d346f4573186bbeab32ee50bc1"}, +] + +[package.dependencies] +beautifulsoup4 = "*" +bleach = "*" +defusedxml = "*" +entrypoints = ">=0.2.2" +jinja2 = ">=3.0" +jupyter-core = ">=4.7" +jupyterlab-pygments = "*" +lxml = "*" +MarkupSafe = ">=2.0" +mistune = ">=0.8.1,<2" +nbclient = ">=0.5.0" +nbformat = ">=5.1" +packaging = "*" +pandocfilters = ">=1.4.1" +pygments = ">=2.4.1" +tinycss2 = "*" +traitlets = ">=5.0" + +[package.extras] +all = ["ipykernel", "ipython", "ipywidgets (>=7)", "nbsphinx (>=0.2.12)", "pre-commit", "pyppeteer (>=1,<1.1)", "pytest", "pytest-cov", "pytest-dependency", "sphinx (>=1.5.1)", "sphinx-rtd-theme", "tornado (>=6.1)"] +docs = ["ipython", "nbsphinx (>=0.2.12)", "sphinx (>=1.5.1)", "sphinx-rtd-theme"] +serve = ["tornado (>=6.1)"] +test = ["ipykernel", "ipywidgets (>=7)", "pre-commit", "pyppeteer (>=1,<1.1)", "pytest", "pytest-cov", "pytest-dependency"] +webpdf = ["pyppeteer (>=1,<1.1)"] + +[[package]] +name = "nbformat" +version = "5.9.2" +description = "The Jupyter Notebook format" +optional = false +python-versions = ">=3.8" +files = [ + {file = "nbformat-5.9.2-py3-none-any.whl", hash = "sha256:1c5172d786a41b82bcfd0c23f9e6b6f072e8fb49c39250219e4acfff1efe89e9"}, + {file = "nbformat-5.9.2.tar.gz", hash = "sha256:5f98b5ba1997dff175e77e0c17d5c10a96eaed2cbd1de3533d1fc35d5e111192"}, +] + +[package.dependencies] +fastjsonschema = "*" +jsonschema = ">=2.6" +jupyter-core = "*" +traitlets = ">=5.1" + +[package.extras] +docs = ["myst-parser", "pydata-sphinx-theme", "sphinx", "sphinxcontrib-github-alt", "sphinxcontrib-spelling"] +test = ["pep440", "pre-commit", "pytest", "testpath"] + +[[package]] +name = "nest-asyncio" +version = "1.6.0" +description = "Patch asyncio to allow nested event loops" +optional = false +python-versions = ">=3.5" +files = [ + {file = "nest_asyncio-1.6.0-py3-none-any.whl", hash = "sha256:87af6efd6b5e897c81050477ef65c62e2b2f35d51703cae01aff2905b1852e1c"}, + {file = "nest_asyncio-1.6.0.tar.gz", hash = "sha256:6f172d5449aca15afd6c646851f4e31e02c598d553a667e38cafa997cfec55fe"}, +] + +[[package]] +name = "networkx" +version = "3.2.1" +description = "Python package for creating and manipulating graphs and networks" +optional = false +python-versions = ">=3.9" +files = [ + {file = "networkx-3.2.1-py3-none-any.whl", hash = "sha256:f18c69adc97877c42332c170849c96cefa91881c99a7cb3e95b7c659ebdc1ec2"}, + {file = "networkx-3.2.1.tar.gz", hash = "sha256:9f1bb5cf3409bf324e0a722c20bdb4c20ee39bf1c30ce8ae499c8502b0b5e0c6"}, +] + +[package.extras] +default = ["matplotlib (>=3.5)", "numpy (>=1.22)", "pandas (>=1.4)", "scipy (>=1.9,!=1.11.0,!=1.11.1)"] +developer = ["changelist (==0.4)", "mypy (>=1.1)", "pre-commit (>=3.2)", "rtoml"] +doc = ["nb2plots (>=0.7)", "nbconvert (<7.9)", "numpydoc (>=1.6)", "pillow (>=9.4)", "pydata-sphinx-theme (>=0.14)", "sphinx (>=7)", "sphinx-gallery (>=0.14)", "texext (>=0.6.7)"] +extra = ["lxml (>=4.6)", "pydot (>=1.4.2)", "pygraphviz (>=1.11)", "sympy (>=1.10)"] +test = ["pytest (>=7.2)", "pytest-cov (>=4.0)"] + +[[package]] +name = "nodeenv" +version = "1.8.0" +description = "Node.js virtual environment builder" +optional = false +python-versions = ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*" +files = [ + {file = "nodeenv-1.8.0-py2.py3-none-any.whl", hash = "sha256:df865724bb3c3adc86b3876fa209771517b0cfe596beff01a92700e0e8be4cec"}, + {file = "nodeenv-1.8.0.tar.gz", hash = "sha256:d51e0c37e64fbf47d017feac3145cdbb58836d7eee8c6f6d3b6880c5456227d2"}, +] + +[package.dependencies] +setuptools = "*" + +[[package]] +name = "notebook" +version = "6.5.6" +description = "A web-based notebook environment for interactive computing" +optional = false +python-versions = ">=3.7" +files = [ + {file = "notebook-6.5.6-py3-none-any.whl", hash = "sha256:c1e2eb2e3b6079a0552a04974883a48d04c3c05792170d64a4b23d707d453181"}, + {file = "notebook-6.5.6.tar.gz", hash = "sha256:b4625a4b7a597839dd3156b140d5ba2c7123761f98245a3290f67a8b8ee048d9"}, +] + +[package.dependencies] +argon2-cffi = "*" +ipykernel = "*" +ipython-genutils = "*" +jinja2 = "*" +jupyter-client = ">=5.3.4,<8" +jupyter-core = ">=4.6.1" +nbclassic = ">=0.4.7" +nbconvert = ">=5" +nbformat = "*" +nest-asyncio = ">=1.5" +prometheus-client = "*" +pyzmq = ">=17,<25" +Send2Trash = ">=1.8.0" +terminado = ">=0.8.3" +tornado = ">=6.1" +traitlets = ">=4.2.1" + +[package.extras] +docs = ["myst-parser", "nbsphinx", "sphinx", "sphinx-rtd-theme", "sphinxcontrib-github-alt"] +json-logging = ["json-logging"] +test = ["coverage", "nbval", "pytest", "pytest-cov", "requests", "requests-unixsocket", "selenium (==4.1.5)", "testpath"] + +[[package]] +name = "notebook-shim" +version = "0.2.4" +description = "A shim layer for notebook traits and config" +optional = false +python-versions = ">=3.7" +files = [ + {file = "notebook_shim-0.2.4-py3-none-any.whl", hash = "sha256:411a5be4e9dc882a074ccbcae671eda64cceb068767e9a3419096986560e1cef"}, + {file = "notebook_shim-0.2.4.tar.gz", hash = "sha256:b4b2cfa1b65d98307ca24361f5b30fe785b53c3fd07b7a47e89acb5e6ac638cb"}, +] + +[package.dependencies] +jupyter-server = ">=1.8,<3" + +[package.extras] +test = ["pytest", "pytest-console-scripts", "pytest-jupyter", "pytest-tornasync"] + +[[package]] +name = "numpy" +version = "1.26.4" +description = "Fundamental package for array computing in Python" +optional = false +python-versions = ">=3.9" +files = [ + {file = "numpy-1.26.4-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:9ff0f4f29c51e2803569d7a51c2304de5554655a60c5d776e35b4a41413830d0"}, + {file = "numpy-1.26.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:2e4ee3380d6de9c9ec04745830fd9e2eccb3e6cf790d39d7b98ffd19b0dd754a"}, + {file = "numpy-1.26.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d209d8969599b27ad20994c8e41936ee0964e6da07478d6c35016bc386b66ad4"}, + {file = "numpy-1.26.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ffa75af20b44f8dba823498024771d5ac50620e6915abac414251bd971b4529f"}, + {file = "numpy-1.26.4-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:62b8e4b1e28009ef2846b4c7852046736bab361f7aeadeb6a5b89ebec3c7055a"}, + {file = "numpy-1.26.4-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:a4abb4f9001ad2858e7ac189089c42178fcce737e4169dc61321660f1a96c7d2"}, + {file = "numpy-1.26.4-cp310-cp310-win32.whl", hash = "sha256:bfe25acf8b437eb2a8b2d49d443800a5f18508cd811fea3181723922a8a82b07"}, + {file = "numpy-1.26.4-cp310-cp310-win_amd64.whl", hash = "sha256:b97fe8060236edf3662adfc2c633f56a08ae30560c56310562cb4f95500022d5"}, + {file = "numpy-1.26.4-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:4c66707fabe114439db9068ee468c26bbdf909cac0fb58686a42a24de1760c71"}, + {file = "numpy-1.26.4-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:edd8b5fe47dab091176d21bb6de568acdd906d1887a4584a15a9a96a1dca06ef"}, + {file = "numpy-1.26.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7ab55401287bfec946ced39700c053796e7cc0e3acbef09993a9ad2adba6ca6e"}, + {file = "numpy-1.26.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:666dbfb6ec68962c033a450943ded891bed2d54e6755e35e5835d63f4f6931d5"}, + {file = "numpy-1.26.4-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:96ff0b2ad353d8f990b63294c8986f1ec3cb19d749234014f4e7eb0112ceba5a"}, + {file = "numpy-1.26.4-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:60dedbb91afcbfdc9bc0b1f3f402804070deed7392c23eb7a7f07fa857868e8a"}, + {file = "numpy-1.26.4-cp311-cp311-win32.whl", hash = "sha256:1af303d6b2210eb850fcf03064d364652b7120803a0b872f5211f5234b399f20"}, + {file = "numpy-1.26.4-cp311-cp311-win_amd64.whl", hash = "sha256:cd25bcecc4974d09257ffcd1f098ee778f7834c3ad767fe5db785be9a4aa9cb2"}, + {file = "numpy-1.26.4-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:b3ce300f3644fb06443ee2222c2201dd3a89ea6040541412b8fa189341847218"}, + {file = "numpy-1.26.4-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:03a8c78d01d9781b28a6989f6fa1bb2c4f2d51201cf99d3dd875df6fbd96b23b"}, + {file = "numpy-1.26.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9fad7dcb1aac3c7f0584a5a8133e3a43eeb2fe127f47e3632d43d677c66c102b"}, + {file = "numpy-1.26.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:675d61ffbfa78604709862923189bad94014bef562cc35cf61d3a07bba02a7ed"}, + {file = "numpy-1.26.4-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:ab47dbe5cc8210f55aa58e4805fe224dac469cde56b9f731a4c098b91917159a"}, + {file = "numpy-1.26.4-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:1dda2e7b4ec9dd512f84935c5f126c8bd8b9f2fc001e9f54af255e8c5f16b0e0"}, + {file = "numpy-1.26.4-cp312-cp312-win32.whl", hash = "sha256:50193e430acfc1346175fcbdaa28ffec49947a06918b7b92130744e81e640110"}, + {file = "numpy-1.26.4-cp312-cp312-win_amd64.whl", hash = "sha256:08beddf13648eb95f8d867350f6a018a4be2e5ad54c8d8caed89ebca558b2818"}, + {file = "numpy-1.26.4-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:7349ab0fa0c429c82442a27a9673fc802ffdb7c7775fad780226cb234965e53c"}, + {file = "numpy-1.26.4-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:52b8b60467cd7dd1e9ed082188b4e6bb35aa5cdd01777621a1658910745b90be"}, + {file = "numpy-1.26.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d5241e0a80d808d70546c697135da2c613f30e28251ff8307eb72ba696945764"}, + {file = "numpy-1.26.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f870204a840a60da0b12273ef34f7051e98c3b5961b61b0c2c1be6dfd64fbcd3"}, + {file = "numpy-1.26.4-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:679b0076f67ecc0138fd2ede3a8fd196dddc2ad3254069bcb9faf9a79b1cebcd"}, + {file = "numpy-1.26.4-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:47711010ad8555514b434df65f7d7b076bb8261df1ca9bb78f53d3b2db02e95c"}, + {file = "numpy-1.26.4-cp39-cp39-win32.whl", hash = "sha256:a354325ee03388678242a4d7ebcd08b5c727033fcff3b2f536aea978e15ee9e6"}, + {file = "numpy-1.26.4-cp39-cp39-win_amd64.whl", hash = "sha256:3373d5d70a5fe74a2c1bb6d2cfd9609ecf686d47a2d7b1d37a8f3b6bf6003aea"}, + {file = "numpy-1.26.4-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:afedb719a9dcfc7eaf2287b839d8198e06dcd4cb5d276a3df279231138e83d30"}, + {file = "numpy-1.26.4-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:95a7476c59002f2f6c590b9b7b998306fba6a5aa646b1e22ddfeaf8f78c3a29c"}, + {file = "numpy-1.26.4-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:7e50d0a0cc3189f9cb0aeb3a6a6af18c16f59f004b866cd2be1c14b36134a4a0"}, + {file = "numpy-1.26.4.tar.gz", hash = "sha256:2a02aba9ed12e4ac4eb3ea9421c420301a0c6460d9830d74a9df87efa4912010"}, +] + +[[package]] +name = "nvidia-cublas-cu12" +version = "12.1.3.1" +description = "CUBLAS native runtime libraries" +optional = false +python-versions = ">=3" +files = [ + {file = "nvidia_cublas_cu12-12.1.3.1-py3-none-manylinux1_x86_64.whl", hash = "sha256:ee53ccca76a6fc08fb9701aa95b6ceb242cdaab118c3bb152af4e579af792728"}, + {file = "nvidia_cublas_cu12-12.1.3.1-py3-none-win_amd64.whl", hash = "sha256:2b964d60e8cf11b5e1073d179d85fa340c120e99b3067558f3cf98dd69d02906"}, +] + +[[package]] +name = "nvidia-cuda-cupti-cu12" +version = "12.1.105" +description = "CUDA profiling tools runtime libs." +optional = false +python-versions = ">=3" +files = [ + {file = "nvidia_cuda_cupti_cu12-12.1.105-py3-none-manylinux1_x86_64.whl", hash = "sha256:e54fde3983165c624cb79254ae9818a456eb6e87a7fd4d56a2352c24ee542d7e"}, + {file = "nvidia_cuda_cupti_cu12-12.1.105-py3-none-win_amd64.whl", hash = "sha256:bea8236d13a0ac7190bd2919c3e8e6ce1e402104276e6f9694479e48bb0eb2a4"}, +] + +[[package]] +name = "nvidia-cuda-nvrtc-cu12" +version = "12.1.105" +description = "NVRTC native runtime libraries" +optional = false +python-versions = ">=3" +files = [ + {file = "nvidia_cuda_nvrtc_cu12-12.1.105-py3-none-manylinux1_x86_64.whl", hash = "sha256:339b385f50c309763ca65456ec75e17bbefcbbf2893f462cb8b90584cd27a1c2"}, + {file = "nvidia_cuda_nvrtc_cu12-12.1.105-py3-none-win_amd64.whl", hash = "sha256:0a98a522d9ff138b96c010a65e145dc1b4850e9ecb75a0172371793752fd46ed"}, +] + +[[package]] +name = "nvidia-cuda-runtime-cu12" +version = "12.1.105" +description = "CUDA Runtime native Libraries" +optional = false +python-versions = ">=3" +files = [ + {file = "nvidia_cuda_runtime_cu12-12.1.105-py3-none-manylinux1_x86_64.whl", hash = "sha256:6e258468ddf5796e25f1dc591a31029fa317d97a0a94ed93468fc86301d61e40"}, + {file = "nvidia_cuda_runtime_cu12-12.1.105-py3-none-win_amd64.whl", hash = "sha256:dfb46ef84d73fababab44cf03e3b83f80700d27ca300e537f85f636fac474344"}, +] + +[[package]] +name = "nvidia-cudnn-cu12" +version = "8.9.2.26" +description = "cuDNN runtime libraries" +optional = false +python-versions = ">=3" +files = [ + {file = "nvidia_cudnn_cu12-8.9.2.26-py3-none-manylinux1_x86_64.whl", hash = "sha256:5ccb288774fdfb07a7e7025ffec286971c06d8d7b4fb162525334616d7629ff9"}, +] + +[package.dependencies] +nvidia-cublas-cu12 = "*" + +[[package]] +name = "nvidia-cufft-cu12" +version = "11.0.2.54" +description = "CUFFT native runtime libraries" +optional = false +python-versions = ">=3" +files = [ + {file = "nvidia_cufft_cu12-11.0.2.54-py3-none-manylinux1_x86_64.whl", hash = "sha256:794e3948a1aa71fd817c3775866943936774d1c14e7628c74f6f7417224cdf56"}, + {file = "nvidia_cufft_cu12-11.0.2.54-py3-none-win_amd64.whl", hash = "sha256:d9ac353f78ff89951da4af698f80870b1534ed69993f10a4cf1d96f21357e253"}, +] + +[[package]] +name = "nvidia-curand-cu12" +version = "10.3.2.106" +description = "CURAND native runtime libraries" +optional = false +python-versions = ">=3" +files = [ + {file = "nvidia_curand_cu12-10.3.2.106-py3-none-manylinux1_x86_64.whl", hash = "sha256:9d264c5036dde4e64f1de8c50ae753237c12e0b1348738169cd0f8a536c0e1e0"}, + {file = "nvidia_curand_cu12-10.3.2.106-py3-none-win_amd64.whl", hash = "sha256:75b6b0c574c0037839121317e17fd01f8a69fd2ef8e25853d826fec30bdba74a"}, +] + +[[package]] +name = "nvidia-cusolver-cu12" +version = "11.4.5.107" +description = "CUDA solver native runtime libraries" +optional = false +python-versions = ">=3" +files = [ + {file = "nvidia_cusolver_cu12-11.4.5.107-py3-none-manylinux1_x86_64.whl", hash = "sha256:8a7ec542f0412294b15072fa7dab71d31334014a69f953004ea7a118206fe0dd"}, + {file = "nvidia_cusolver_cu12-11.4.5.107-py3-none-win_amd64.whl", hash = "sha256:74e0c3a24c78612192a74fcd90dd117f1cf21dea4822e66d89e8ea80e3cd2da5"}, +] + +[package.dependencies] +nvidia-cublas-cu12 = "*" +nvidia-cusparse-cu12 = "*" +nvidia-nvjitlink-cu12 = "*" + +[[package]] +name = "nvidia-cusparse-cu12" +version = "12.1.0.106" +description = "CUSPARSE native runtime libraries" +optional = false +python-versions = ">=3" +files = [ + {file = "nvidia_cusparse_cu12-12.1.0.106-py3-none-manylinux1_x86_64.whl", hash = "sha256:f3b50f42cf363f86ab21f720998517a659a48131e8d538dc02f8768237bd884c"}, + {file = "nvidia_cusparse_cu12-12.1.0.106-py3-none-win_amd64.whl", hash = "sha256:b798237e81b9719373e8fae8d4f091b70a0cf09d9d85c95a557e11df2d8e9a5a"}, +] + +[package.dependencies] +nvidia-nvjitlink-cu12 = "*" + +[[package]] +name = "nvidia-nccl-cu12" +version = "2.19.3" +description = "NVIDIA Collective Communication Library (NCCL) Runtime" +optional = false +python-versions = ">=3" +files = [ + {file = "nvidia_nccl_cu12-2.19.3-py3-none-manylinux1_x86_64.whl", hash = "sha256:a9734707a2c96443331c1e48c717024aa6678a0e2a4cb66b2c364d18cee6b48d"}, +] + +[[package]] +name = "nvidia-nvjitlink-cu12" +version = "12.3.101" +description = "Nvidia JIT LTO Library" +optional = false +python-versions = ">=3" +files = [ + {file = "nvidia_nvjitlink_cu12-12.3.101-py3-none-manylinux1_x86_64.whl", hash = "sha256:64335a8088e2b9d196ae8665430bc6a2b7e6ef2eb877a9c735c804bd4ff6467c"}, + {file = "nvidia_nvjitlink_cu12-12.3.101-py3-none-win_amd64.whl", hash = "sha256:1b2e317e437433753530792f13eece58f0aec21a2b05903be7bffe58a606cbd1"}, +] + +[[package]] +name = "nvidia-nvtx-cu12" +version = "12.1.105" +description = "NVIDIA Tools Extension" +optional = false +python-versions = ">=3" +files = [ + {file = "nvidia_nvtx_cu12-12.1.105-py3-none-manylinux1_x86_64.whl", hash = "sha256:dc21cf308ca5691e7c04d962e213f8a4aa9bbfa23d95412f452254c2caeb09e5"}, + {file = "nvidia_nvtx_cu12-12.1.105-py3-none-win_amd64.whl", hash = "sha256:65f4d98982b31b60026e0e6de73fbdfc09d08a96f4656dd3665ca616a11e1e82"}, +] + +[[package]] +name = "overrides" +version = "7.7.0" +description = "A decorator to automatically detect mismatch when overriding a method." +optional = false +python-versions = ">=3.6" +files = [ + {file = "overrides-7.7.0-py3-none-any.whl", hash = "sha256:c7ed9d062f78b8e4c1a7b70bd8796b35ead4d9f510227ef9c5dc7626c60d7e49"}, + {file = "overrides-7.7.0.tar.gz", hash = "sha256:55158fa3d93b98cc75299b1e67078ad9003ca27945c76162c1c0766d6f91820a"}, +] + +[[package]] +name = "packaging" +version = "23.2" +description = "Core utilities for Python packages" +optional = false +python-versions = ">=3.7" +files = [ + {file = "packaging-23.2-py3-none-any.whl", hash = "sha256:8c491190033a9af7e1d931d0b5dacc2ef47509b34dd0de67ed209b5203fc88c7"}, + {file = "packaging-23.2.tar.gz", hash = "sha256:048fb0e9405036518eaaf48a55953c750c11e1a1b68e0dd1a9d62ed0c092cfc5"}, +] + +[[package]] +name = "pandas" +version = "1.5.3" +description = "Powerful data structures for data analysis, time series, and statistics" +optional = false +python-versions = ">=3.8" +files = [ + {file = "pandas-1.5.3-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:3749077d86e3a2f0ed51367f30bf5b82e131cc0f14260c4d3e499186fccc4406"}, + {file = "pandas-1.5.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:972d8a45395f2a2d26733eb8d0f629b2f90bebe8e8eddbb8829b180c09639572"}, + {file = "pandas-1.5.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:50869a35cbb0f2e0cd5ec04b191e7b12ed688874bd05dd777c19b28cbea90996"}, + {file = "pandas-1.5.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c3ac844a0fe00bfaeb2c9b51ab1424e5c8744f89860b138434a363b1f620f354"}, + {file = "pandas-1.5.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7a0a56cef15fd1586726dace5616db75ebcfec9179a3a55e78f72c5639fa2a23"}, + {file = "pandas-1.5.3-cp310-cp310-win_amd64.whl", hash = "sha256:478ff646ca42b20376e4ed3fa2e8d7341e8a63105586efe54fa2508ee087f328"}, + {file = "pandas-1.5.3-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:6973549c01ca91ec96199e940495219c887ea815b2083722821f1d7abfa2b4dc"}, + {file = "pandas-1.5.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:c39a8da13cede5adcd3be1182883aea1c925476f4e84b2807a46e2775306305d"}, + {file = "pandas-1.5.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:f76d097d12c82a535fda9dfe5e8dd4127952b45fea9b0276cb30cca5ea313fbc"}, + {file = "pandas-1.5.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e474390e60ed609cec869b0da796ad94f420bb057d86784191eefc62b65819ae"}, + {file = "pandas-1.5.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5f2b952406a1588ad4cad5b3f55f520e82e902388a6d5a4a91baa8d38d23c7f6"}, + {file = "pandas-1.5.3-cp311-cp311-win_amd64.whl", hash = "sha256:bc4c368f42b551bf72fac35c5128963a171b40dce866fb066540eeaf46faa003"}, + {file = "pandas-1.5.3-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:14e45300521902689a81f3f41386dc86f19b8ba8dd5ac5a3c7010ef8d2932813"}, + {file = "pandas-1.5.3-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:9842b6f4b8479e41968eced654487258ed81df7d1c9b7b870ceea24ed9459b31"}, + {file = "pandas-1.5.3-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:26d9c71772c7afb9d5046e6e9cf42d83dd147b5cf5bcb9d97252077118543792"}, + {file = "pandas-1.5.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5fbcb19d6fceb9e946b3e23258757c7b225ba450990d9ed63ccceeb8cae609f7"}, + {file = "pandas-1.5.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:565fa34a5434d38e9d250af3c12ff931abaf88050551d9fbcdfafca50d62babf"}, + {file = "pandas-1.5.3-cp38-cp38-win32.whl", hash = "sha256:87bd9c03da1ac870a6d2c8902a0e1fd4267ca00f13bc494c9e5a9020920e1d51"}, + {file = "pandas-1.5.3-cp38-cp38-win_amd64.whl", hash = "sha256:41179ce559943d83a9b4bbacb736b04c928b095b5f25dd2b7389eda08f46f373"}, + {file = "pandas-1.5.3-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:c74a62747864ed568f5a82a49a23a8d7fe171d0c69038b38cedf0976831296fa"}, + {file = "pandas-1.5.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:c4c00e0b0597c8e4f59e8d461f797e5d70b4d025880516a8261b2817c47759ee"}, + {file = "pandas-1.5.3-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:a50d9a4336a9621cab7b8eb3fb11adb82de58f9b91d84c2cd526576b881a0c5a"}, + {file = "pandas-1.5.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dd05f7783b3274aa206a1af06f0ceed3f9b412cf665b7247eacd83be41cf7bf0"}, + {file = "pandas-1.5.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9f69c4029613de47816b1bb30ff5ac778686688751a5e9c99ad8c7031f6508e5"}, + {file = "pandas-1.5.3-cp39-cp39-win32.whl", hash = "sha256:7cec0bee9f294e5de5bbfc14d0573f65526071029d036b753ee6507d2a21480a"}, + {file = "pandas-1.5.3-cp39-cp39-win_amd64.whl", hash = "sha256:dfd681c5dc216037e0b0a2c821f5ed99ba9f03ebcf119c7dac0e9a7b960b9ec9"}, + {file = "pandas-1.5.3.tar.gz", hash = "sha256:74a3fd7e5a7ec052f183273dc7b0acd3a863edf7520f5d3a1765c04ffdb3b0b1"}, +] + +[package.dependencies] +numpy = [ + {version = ">=1.23.2", markers = "python_version >= \"3.11\""}, + {version = ">=1.21.0", markers = "python_version >= \"3.10\" and python_version < \"3.11\""}, +] +python-dateutil = ">=2.8.1" +pytz = ">=2020.1" + +[package.extras] +test = ["hypothesis (>=5.5.3)", "pytest (>=6.0)", "pytest-xdist (>=1.31)"] + +[[package]] +name = "pandocfilters" +version = "1.5.1" +description = "Utilities for writing pandoc filters in python" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" +files = [ + {file = "pandocfilters-1.5.1-py2.py3-none-any.whl", hash = "sha256:93be382804a9cdb0a7267585f157e5d1731bbe5545a85b268d6f5fe6232de2bc"}, + {file = "pandocfilters-1.5.1.tar.gz", hash = "sha256:002b4a555ee4ebc03f8b66307e287fa492e4a77b4ea14d3f934328297bb4939e"}, +] + +[[package]] +name = "parso" +version = "0.8.3" +description = "A Python Parser" +optional = false +python-versions = ">=3.6" +files = [ + {file = "parso-0.8.3-py2.py3-none-any.whl", hash = "sha256:c001d4636cd3aecdaf33cbb40aebb59b094be2a74c556778ef5576c175e19e75"}, + {file = "parso-0.8.3.tar.gz", hash = "sha256:8c07be290bb59f03588915921e29e8a50002acaf2cdc5fa0e0114f91709fafa0"}, +] + +[package.extras] +qa = ["flake8 (==3.8.3)", "mypy (==0.782)"] +testing = ["docopt", "pytest (<6.0.0)"] + +[[package]] +name = "particle" +version = "0.23.1" +description = "Extended PDG particle data and MC identification codes" +optional = false +python-versions = ">=3.7" +files = [ + {file = "particle-0.23.1-py3-none-any.whl", hash = "sha256:1c68a36f1c3640bd8e5d4f47fc026064aa28264dfd283121d1f784d55947f1b7"}, + {file = "particle-0.23.1.tar.gz", hash = "sha256:eee28b0e846bfea4dfd70e9ec5ffe3244613db08b6b6a9b773f55a4310752fab"}, +] + +[package.dependencies] +attrs = ">=19.2" +hepunits = ">=2.0.0" +typing-extensions = {version = ">=4.5", markers = "python_version < \"3.13\""} + +[package.extras] +dev = ["pandas", "pytest (>=6)", "pytest-benchmark", "tabulate"] +test = ["pandas", "pytest (>=6)", "pytest-benchmark", "pytest-cov", "tabulate"] + +[[package]] +name = "pathspec" +version = "0.12.1" +description = "Utility library for gitignore style pattern matching of file paths." +optional = false +python-versions = ">=3.8" +files = [ + {file = "pathspec-0.12.1-py3-none-any.whl", hash = "sha256:a0d503e138a4c123b27490a4f7beda6a01c6f288df0e4a8b79c7eb0dc7b4cc08"}, + {file = "pathspec-0.12.1.tar.gz", hash = "sha256:a482d51503a1ab33b1c67a6c3813a26953dbdc71c31dacaef9a838c4e29f5712"}, +] + +[[package]] +name = "pexpect" +version = "4.9.0" +description = "Pexpect allows easy control of interactive console applications." +optional = false +python-versions = "*" +files = [ + {file = "pexpect-4.9.0-py2.py3-none-any.whl", hash = "sha256:7236d1e080e4936be2dc3e326cec0af72acf9212a7e1d060210e70a47e253523"}, + {file = "pexpect-4.9.0.tar.gz", hash = "sha256:ee7d41123f3c9911050ea2c2dac107568dc43b2d3b0c7557a33212c398ead30f"}, +] + +[package.dependencies] +ptyprocess = ">=0.5" + +[[package]] +name = "pillow" +version = "10.2.0" +description = "Python Imaging Library (Fork)" +optional = false +python-versions = ">=3.8" +files = [ + {file = "pillow-10.2.0-cp310-cp310-macosx_10_10_x86_64.whl", hash = "sha256:7823bdd049099efa16e4246bdf15e5a13dbb18a51b68fa06d6c1d4d8b99a796e"}, + {file = "pillow-10.2.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:83b2021f2ade7d1ed556bc50a399127d7fb245e725aa0113ebd05cfe88aaf588"}, + {file = "pillow-10.2.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6fad5ff2f13d69b7e74ce5b4ecd12cc0ec530fcee76356cac6742785ff71c452"}, + {file = "pillow-10.2.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:da2b52b37dad6d9ec64e653637a096905b258d2fc2b984c41ae7d08b938a67e4"}, + {file = "pillow-10.2.0-cp310-cp310-manylinux_2_28_aarch64.whl", hash = "sha256:47c0995fc4e7f79b5cfcab1fc437ff2890b770440f7696a3ba065ee0fd496563"}, + {file = "pillow-10.2.0-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:322bdf3c9b556e9ffb18f93462e5f749d3444ce081290352c6070d014c93feb2"}, + {file = "pillow-10.2.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:51f1a1bffc50e2e9492e87d8e09a17c5eea8409cda8d3f277eb6edc82813c17c"}, + {file = "pillow-10.2.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:69ffdd6120a4737710a9eee73e1d2e37db89b620f702754b8f6e62594471dee0"}, + {file = "pillow-10.2.0-cp310-cp310-win32.whl", hash = "sha256:c6dafac9e0f2b3c78df97e79af707cdc5ef8e88208d686a4847bab8266870023"}, + {file = "pillow-10.2.0-cp310-cp310-win_amd64.whl", hash = "sha256:aebb6044806f2e16ecc07b2a2637ee1ef67a11840a66752751714a0d924adf72"}, + {file = "pillow-10.2.0-cp310-cp310-win_arm64.whl", hash = "sha256:7049e301399273a0136ff39b84c3678e314f2158f50f517bc50285fb5ec847ad"}, + {file = "pillow-10.2.0-cp311-cp311-macosx_10_10_x86_64.whl", hash = "sha256:35bb52c37f256f662abdfa49d2dfa6ce5d93281d323a9af377a120e89a9eafb5"}, + {file = "pillow-10.2.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:9c23f307202661071d94b5e384e1e1dc7dfb972a28a2310e4ee16103e66ddb67"}, + {file = "pillow-10.2.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:773efe0603db30c281521a7c0214cad7836c03b8ccff897beae9b47c0b657d61"}, + {file = "pillow-10.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:11fa2e5984b949b0dd6d7a94d967743d87c577ff0b83392f17cb3990d0d2fd6e"}, + {file = "pillow-10.2.0-cp311-cp311-manylinux_2_28_aarch64.whl", hash = "sha256:716d30ed977be8b37d3ef185fecb9e5a1d62d110dfbdcd1e2a122ab46fddb03f"}, + {file = "pillow-10.2.0-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:a086c2af425c5f62a65e12fbf385f7c9fcb8f107d0849dba5839461a129cf311"}, + {file = "pillow-10.2.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:c8de2789052ed501dd829e9cae8d3dcce7acb4777ea4a479c14521c942d395b1"}, + {file = "pillow-10.2.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:609448742444d9290fd687940ac0b57fb35e6fd92bdb65386e08e99af60bf757"}, + {file = "pillow-10.2.0-cp311-cp311-win32.whl", hash = "sha256:823ef7a27cf86df6597fa0671066c1b596f69eba53efa3d1e1cb8b30f3533068"}, + {file = "pillow-10.2.0-cp311-cp311-win_amd64.whl", hash = "sha256:1da3b2703afd040cf65ec97efea81cfba59cdbed9c11d8efc5ab09df9509fc56"}, + {file = "pillow-10.2.0-cp311-cp311-win_arm64.whl", hash = "sha256:edca80cbfb2b68d7b56930b84a0e45ae1694aeba0541f798e908a49d66b837f1"}, + {file = "pillow-10.2.0-cp312-cp312-macosx_10_10_x86_64.whl", hash = "sha256:1b5e1b74d1bd1b78bc3477528919414874748dd363e6272efd5abf7654e68bef"}, + {file = "pillow-10.2.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:0eae2073305f451d8ecacb5474997c08569fb4eb4ac231ffa4ad7d342fdc25ac"}, + {file = "pillow-10.2.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b7c2286c23cd350b80d2fc9d424fc797575fb16f854b831d16fd47ceec078f2c"}, + {file = "pillow-10.2.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1e23412b5c41e58cec602f1135c57dfcf15482013ce6e5f093a86db69646a5aa"}, + {file = "pillow-10.2.0-cp312-cp312-manylinux_2_28_aarch64.whl", hash = "sha256:52a50aa3fb3acb9cf7213573ef55d31d6eca37f5709c69e6858fe3bc04a5c2a2"}, + {file = "pillow-10.2.0-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:127cee571038f252a552760076407f9cff79761c3d436a12af6000cd182a9d04"}, + {file = "pillow-10.2.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:8d12251f02d69d8310b046e82572ed486685c38f02176bd08baf216746eb947f"}, + {file = "pillow-10.2.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:54f1852cd531aa981bc0965b7d609f5f6cc8ce8c41b1139f6ed6b3c54ab82bfb"}, + {file = "pillow-10.2.0-cp312-cp312-win32.whl", hash = "sha256:257d8788df5ca62c980314053197f4d46eefedf4e6175bc9412f14412ec4ea2f"}, + {file = "pillow-10.2.0-cp312-cp312-win_amd64.whl", hash = "sha256:154e939c5f0053a383de4fd3d3da48d9427a7e985f58af8e94d0b3c9fcfcf4f9"}, + {file = "pillow-10.2.0-cp312-cp312-win_arm64.whl", hash = "sha256:f379abd2f1e3dddb2b61bc67977a6b5a0a3f7485538bcc6f39ec76163891ee48"}, + {file = "pillow-10.2.0-cp38-cp38-macosx_10_10_x86_64.whl", hash = "sha256:8373c6c251f7ef8bda6675dd6d2b3a0fcc31edf1201266b5cf608b62a37407f9"}, + {file = "pillow-10.2.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:870ea1ada0899fd0b79643990809323b389d4d1d46c192f97342eeb6ee0b8483"}, + {file = "pillow-10.2.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b4b6b1e20608493548b1f32bce8cca185bf0480983890403d3b8753e44077129"}, + {file = "pillow-10.2.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3031709084b6e7852d00479fd1d310b07d0ba82765f973b543c8af5061cf990e"}, + {file = "pillow-10.2.0-cp38-cp38-manylinux_2_28_aarch64.whl", hash = "sha256:3ff074fc97dd4e80543a3e91f69d58889baf2002b6be64347ea8cf5533188213"}, + {file = "pillow-10.2.0-cp38-cp38-manylinux_2_28_x86_64.whl", hash = "sha256:cb4c38abeef13c61d6916f264d4845fab99d7b711be96c326b84df9e3e0ff62d"}, + {file = "pillow-10.2.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:b1b3020d90c2d8e1dae29cf3ce54f8094f7938460fb5ce8bc5c01450b01fbaf6"}, + {file = "pillow-10.2.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:170aeb00224ab3dc54230c797f8404507240dd868cf52066f66a41b33169bdbe"}, + {file = "pillow-10.2.0-cp38-cp38-win32.whl", hash = "sha256:c4225f5220f46b2fde568c74fca27ae9771536c2e29d7c04f4fb62c83275ac4e"}, + {file = "pillow-10.2.0-cp38-cp38-win_amd64.whl", hash = "sha256:0689b5a8c5288bc0504d9fcee48f61a6a586b9b98514d7d29b840143d6734f39"}, + {file = "pillow-10.2.0-cp39-cp39-macosx_10_10_x86_64.whl", hash = "sha256:b792a349405fbc0163190fde0dc7b3fef3c9268292586cf5645598b48e63dc67"}, + {file = "pillow-10.2.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:c570f24be1e468e3f0ce7ef56a89a60f0e05b30a3669a459e419c6eac2c35364"}, + {file = "pillow-10.2.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d8ecd059fdaf60c1963c58ceb8997b32e9dc1b911f5da5307aab614f1ce5c2fb"}, + {file = "pillow-10.2.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c365fd1703040de1ec284b176d6af5abe21b427cb3a5ff68e0759e1e313a5e7e"}, + {file = "pillow-10.2.0-cp39-cp39-manylinux_2_28_aarch64.whl", hash = "sha256:70c61d4c475835a19b3a5aa42492409878bbca7438554a1f89d20d58a7c75c01"}, + {file = "pillow-10.2.0-cp39-cp39-manylinux_2_28_x86_64.whl", hash = "sha256:b6f491cdf80ae540738859d9766783e3b3c8e5bd37f5dfa0b76abdecc5081f13"}, + {file = "pillow-10.2.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:9d189550615b4948f45252d7f005e53c2040cea1af5b60d6f79491a6e147eef7"}, + {file = "pillow-10.2.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:49d9ba1ed0ef3e061088cd1e7538a0759aab559e2e0a80a36f9fd9d8c0c21591"}, + {file = "pillow-10.2.0-cp39-cp39-win32.whl", hash = "sha256:babf5acfede515f176833ed6028754cbcd0d206f7f614ea3447d67c33be12516"}, + {file = "pillow-10.2.0-cp39-cp39-win_amd64.whl", hash = "sha256:0304004f8067386b477d20a518b50f3fa658a28d44e4116970abfcd94fac34a8"}, + {file = "pillow-10.2.0-cp39-cp39-win_arm64.whl", hash = "sha256:0fb3e7fc88a14eacd303e90481ad983fd5b69c761e9e6ef94c983f91025da869"}, + {file = "pillow-10.2.0-pp310-pypy310_pp73-macosx_10_10_x86_64.whl", hash = "sha256:322209c642aabdd6207517e9739c704dc9f9db943015535783239022002f054a"}, + {file = "pillow-10.2.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3eedd52442c0a5ff4f887fab0c1c0bb164d8635b32c894bc1faf4c618dd89df2"}, + {file = "pillow-10.2.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cb28c753fd5eb3dd859b4ee95de66cc62af91bcff5db5f2571d32a520baf1f04"}, + {file = "pillow-10.2.0-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:33870dc4653c5017bf4c8873e5488d8f8d5f8935e2f1fb9a2208c47cdd66efd2"}, + {file = "pillow-10.2.0-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:3c31822339516fb3c82d03f30e22b1d038da87ef27b6a78c9549888f8ceda39a"}, + {file = "pillow-10.2.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:a2b56ba36e05f973d450582fb015594aaa78834fefe8dfb8fcd79b93e64ba4c6"}, + {file = "pillow-10.2.0-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:d8e6aeb9201e655354b3ad049cb77d19813ad4ece0df1249d3c793de3774f8c7"}, + {file = "pillow-10.2.0-pp39-pypy39_pp73-macosx_10_10_x86_64.whl", hash = "sha256:2247178effb34a77c11c0e8ac355c7a741ceca0a732b27bf11e747bbc950722f"}, + {file = "pillow-10.2.0-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:15587643b9e5eb26c48e49a7b33659790d28f190fc514a322d55da2fb5c2950e"}, + {file = "pillow-10.2.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:753cd8f2086b2b80180d9b3010dd4ed147efc167c90d3bf593fe2af21265e5a5"}, + {file = "pillow-10.2.0-pp39-pypy39_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:7c8f97e8e7a9009bcacbe3766a36175056c12f9a44e6e6f2d5caad06dcfbf03b"}, + {file = "pillow-10.2.0-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:d1b35bcd6c5543b9cb547dee3150c93008f8dd0f1fef78fc0cd2b141c5baf58a"}, + {file = "pillow-10.2.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:fe4c15f6c9285dc54ce6553a3ce908ed37c8f3825b5a51a15c91442bb955b868"}, + {file = "pillow-10.2.0.tar.gz", hash = "sha256:e87f0b2c78157e12d7686b27d63c070fd65d994e8ddae6f328e0dcf4a0cd007e"}, +] + +[package.extras] +docs = ["furo", "olefile", "sphinx (>=2.4)", "sphinx-copybutton", "sphinx-inline-tabs", "sphinx-removed-in", "sphinxext-opengraph"] +fpx = ["olefile"] +mic = ["olefile"] +tests = ["check-manifest", "coverage", "defusedxml", "markdown2", "olefile", "packaging", "pyroma", "pytest", "pytest-cov", "pytest-timeout"] +typing = ["typing-extensions"] +xmp = ["defusedxml"] + +[[package]] +name = "pip" +version = "24.0" +description = "The PyPA recommended tool for installing Python packages." +optional = false +python-versions = ">=3.7" +files = [ + {file = "pip-24.0-py3-none-any.whl", hash = "sha256:ba0d021a166865d2265246961bec0152ff124de910c5cc39f1156ce3fa7c69dc"}, + {file = "pip-24.0.tar.gz", hash = "sha256:ea9bd1a847e8c5774a5777bb398c19e80bcd4e2aa16a4b301b718fe6f593aba2"}, +] + +[[package]] +name = "platformdirs" +version = "4.2.0" +description = "A small Python package for determining appropriate platform-specific dirs, e.g. a \"user data dir\"." +optional = false +python-versions = ">=3.8" +files = [ + {file = "platformdirs-4.2.0-py3-none-any.whl", hash = "sha256:0614df2a2f37e1a662acbd8e2b25b92ccf8632929bc6d43467e17fe89c75e068"}, + {file = "platformdirs-4.2.0.tar.gz", hash = "sha256:ef0cc731df711022c174543cb70a9b5bd22e5a9337c8624ef2c2ceb8ddad8768"}, +] + +[package.extras] +docs = ["furo (>=2023.9.10)", "proselint (>=0.13)", "sphinx (>=7.2.6)", "sphinx-autodoc-typehints (>=1.25.2)"] +test = ["appdirs (==1.4.4)", "covdefaults (>=2.3)", "pytest (>=7.4.3)", "pytest-cov (>=4.1)", "pytest-mock (>=3.12)"] + +[[package]] +name = "pluggy" +version = "1.4.0" +description = "plugin and hook calling mechanisms for python" +optional = false +python-versions = ">=3.8" +files = [ + {file = "pluggy-1.4.0-py3-none-any.whl", hash = "sha256:7db9f7b503d67d1c5b95f59773ebb58a8c1c288129a88665838012cfb07b8981"}, + {file = "pluggy-1.4.0.tar.gz", hash = "sha256:8c85c2876142a764e5b7548e7d9a0e0ddb46f5185161049a79b7e974454223be"}, +] + +[package.extras] +dev = ["pre-commit", "tox"] +testing = ["pytest", "pytest-benchmark"] + +[[package]] +name = "pre-commit" +version = "3.6.1" +description = "A framework for managing and maintaining multi-language pre-commit hooks." +optional = false +python-versions = ">=3.9" +files = [ + {file = "pre_commit-3.6.1-py2.py3-none-any.whl", hash = "sha256:9fe989afcf095d2c4796ce7c553cf28d4d4a9b9346de3cda079bcf40748454a4"}, + {file = "pre_commit-3.6.1.tar.gz", hash = "sha256:c90961d8aa706f75d60935aba09469a6b0bcb8345f127c3fbee4bdc5f114cf4b"}, +] + +[package.dependencies] +cfgv = ">=2.0.0" +identify = ">=1.0.0" +nodeenv = ">=0.11.1" +pyyaml = ">=5.1" +virtualenv = ">=20.10.0" + +[[package]] +name = "prettytable" +version = "3.9.0" +description = "A simple Python library for easily displaying tabular data in a visually appealing ASCII table format" +optional = false +python-versions = ">=3.8" +files = [ + {file = "prettytable-3.9.0-py3-none-any.whl", hash = "sha256:a71292ab7769a5de274b146b276ce938786f56c31cf7cea88b6f3775d82fe8c8"}, + {file = "prettytable-3.9.0.tar.gz", hash = "sha256:f4ed94803c23073a90620b201965e5dc0bccf1760b7a7eaf3158cab8aaffdf34"}, +] + +[package.dependencies] +wcwidth = "*" + +[package.extras] +tests = ["pytest", "pytest-cov", "pytest-lazy-fixture"] + +[[package]] +name = "prometheus-client" +version = "0.20.0" +description = "Python client for the Prometheus monitoring system." +optional = false +python-versions = ">=3.8" +files = [ + {file = "prometheus_client-0.20.0-py3-none-any.whl", hash = "sha256:cde524a85bce83ca359cc837f28b8c0db5cac7aa653a588fd7e84ba061c329e7"}, + {file = "prometheus_client-0.20.0.tar.gz", hash = "sha256:287629d00b147a32dcb2be0b9df905da599b2d82f80377083ec8463309a4bb89"}, +] + +[package.extras] +twisted = ["twisted"] + +[[package]] +name = "prompt-toolkit" +version = "3.0.43" +description = "Library for building powerful interactive command lines in Python" +optional = false +python-versions = ">=3.7.0" +files = [ + {file = "prompt_toolkit-3.0.43-py3-none-any.whl", hash = "sha256:a11a29cb3bf0a28a387fe5122cdb649816a957cd9261dcedf8c9f1fef33eacf6"}, + {file = "prompt_toolkit-3.0.43.tar.gz", hash = "sha256:3527b7af26106cbc65a040bcc84839a3566ec1b051bb0bfe953631e704b0ff7d"}, +] + +[package.dependencies] +wcwidth = "*" + +[[package]] +name = "psutil" +version = "5.9.8" +description = "Cross-platform lib for process and system monitoring in Python." +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*" +files = [ + {file = "psutil-5.9.8-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:26bd09967ae00920df88e0352a91cff1a78f8d69b3ecabbfe733610c0af486c8"}, + {file = "psutil-5.9.8-cp27-cp27m-manylinux2010_i686.whl", hash = "sha256:05806de88103b25903dff19bb6692bd2e714ccf9e668d050d144012055cbca73"}, + {file = "psutil-5.9.8-cp27-cp27m-manylinux2010_x86_64.whl", hash = "sha256:611052c4bc70432ec770d5d54f64206aa7203a101ec273a0cd82418c86503bb7"}, + {file = "psutil-5.9.8-cp27-cp27mu-manylinux2010_i686.whl", hash = "sha256:50187900d73c1381ba1454cf40308c2bf6f34268518b3f36a9b663ca87e65e36"}, + {file = "psutil-5.9.8-cp27-cp27mu-manylinux2010_x86_64.whl", hash = "sha256:02615ed8c5ea222323408ceba16c60e99c3f91639b07da6373fb7e6539abc56d"}, + {file = "psutil-5.9.8-cp27-none-win32.whl", hash = "sha256:36f435891adb138ed3c9e58c6af3e2e6ca9ac2f365efe1f9cfef2794e6c93b4e"}, + {file = "psutil-5.9.8-cp27-none-win_amd64.whl", hash = "sha256:bd1184ceb3f87651a67b2708d4c3338e9b10c5df903f2e3776b62303b26cb631"}, + {file = "psutil-5.9.8-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:aee678c8720623dc456fa20659af736241f575d79429a0e5e9cf88ae0605cc81"}, + {file = "psutil-5.9.8-cp36-abi3-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8cb6403ce6d8e047495a701dc7c5bd788add903f8986d523e3e20b98b733e421"}, + {file = "psutil-5.9.8-cp36-abi3-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d06016f7f8625a1825ba3732081d77c94589dca78b7a3fc072194851e88461a4"}, + {file = "psutil-5.9.8-cp36-cp36m-win32.whl", hash = "sha256:7d79560ad97af658a0f6adfef8b834b53f64746d45b403f225b85c5c2c140eee"}, + {file = "psutil-5.9.8-cp36-cp36m-win_amd64.whl", hash = "sha256:27cc40c3493bb10de1be4b3f07cae4c010ce715290a5be22b98493509c6299e2"}, + {file = "psutil-5.9.8-cp37-abi3-win32.whl", hash = "sha256:bc56c2a1b0d15aa3eaa5a60c9f3f8e3e565303b465dbf57a1b730e7a2b9844e0"}, + {file = "psutil-5.9.8-cp37-abi3-win_amd64.whl", hash = "sha256:8db4c1b57507eef143a15a6884ca10f7c73876cdf5d51e713151c1236a0e68cf"}, + {file = "psutil-5.9.8-cp38-abi3-macosx_11_0_arm64.whl", hash = "sha256:d16bbddf0693323b8c6123dd804100241da461e41d6e332fb0ba6058f630f8c8"}, + {file = "psutil-5.9.8.tar.gz", hash = "sha256:6be126e3225486dff286a8fb9a06246a5253f4c7c53b475ea5f5ac934e64194c"}, +] + +[package.extras] +test = ["enum34", "ipaddress", "mock", "pywin32", "wmi"] + +[[package]] +name = "ptyprocess" +version = "0.7.0" +description = "Run a subprocess in a pseudo terminal" +optional = false +python-versions = "*" +files = [ + {file = "ptyprocess-0.7.0-py2.py3-none-any.whl", hash = "sha256:4b41f3967fce3af57cc7e94b888626c18bf37a083e3651ca8feeb66d492fef35"}, + {file = "ptyprocess-0.7.0.tar.gz", hash = "sha256:5c5d0a3b48ceee0b48485e0c26037c0acd7d29765ca3fbb5cb3831d347423220"}, +] + +[[package]] +name = "pure-eval" +version = "0.2.2" +description = "Safely evaluate AST nodes without side effects" +optional = false +python-versions = "*" +files = [ + {file = "pure_eval-0.2.2-py3-none-any.whl", hash = "sha256:01eaab343580944bc56080ebe0a674b39ec44a945e6d09ba7db3cb8cec289350"}, + {file = "pure_eval-0.2.2.tar.gz", hash = "sha256:2b45320af6dfaa1750f543d714b6d1c520a1688dec6fd24d339063ce0aaa9ac3"}, +] + +[package.extras] +tests = ["pytest"] + +[[package]] +name = "py" +version = "1.11.0" +description = "library with cross-python path, ini-parsing, io, code, log facilities" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" +files = [ + {file = "py-1.11.0-py2.py3-none-any.whl", hash = "sha256:607c53218732647dff4acdfcd50cb62615cedf612e72d1724fb1a0cc6405b378"}, + {file = "py-1.11.0.tar.gz", hash = "sha256:51c75c4126074b472f746a24399ad32f6053d1b34b68d2fa41e558e6f4a98719"}, +] + +[[package]] +name = "pycodestyle" +version = "2.11.1" +description = "Python style guide checker" +optional = false +python-versions = ">=3.8" +files = [ + {file = "pycodestyle-2.11.1-py2.py3-none-any.whl", hash = "sha256:44fe31000b2d866f2e41841b18528a505fbd7fef9017b04eff4e2648a0fadc67"}, + {file = "pycodestyle-2.11.1.tar.gz", hash = "sha256:41ba0e7afc9752dfb53ced5489e89f8186be00e599e712660695b7a75ff2663f"}, +] + +[[package]] +name = "pycparser" +version = "2.21" +description = "C parser in Python" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" +files = [ + {file = "pycparser-2.21-py2.py3-none-any.whl", hash = "sha256:8ee45429555515e1f6b185e78100aea234072576aa43ab53aefcae078162fca9"}, + {file = "pycparser-2.21.tar.gz", hash = "sha256:e644fdec12f7872f86c58ff790da456218b10f863970249516d60a5eaca77206"}, +] + +[[package]] +name = "pyflakes" +version = "3.2.0" +description = "passive checker of Python programs" +optional = false +python-versions = ">=3.8" +files = [ + {file = "pyflakes-3.2.0-py2.py3-none-any.whl", hash = "sha256:84b5be138a2dfbb40689ca07e2152deb896a65c3a3e24c251c5c62489568074a"}, + {file = "pyflakes-3.2.0.tar.gz", hash = "sha256:1c61603ff154621fb2a9172037d84dca3500def8c8b630657d1701f026f8af3f"}, +] + +[[package]] +name = "pygments" +version = "2.17.2" +description = "Pygments is a syntax highlighting package written in Python." +optional = false +python-versions = ">=3.7" +files = [ + {file = "pygments-2.17.2-py3-none-any.whl", hash = "sha256:b27c2826c47d0f3219f29554824c30c5e8945175d888647acd804ddd04af846c"}, + {file = "pygments-2.17.2.tar.gz", hash = "sha256:da46cec9fd2de5be3a8a784f434e4c4ab670b4ff54d605c4c2717e9d49c4c367"}, +] + +[package.extras] +plugins = ["importlib-metadata"] +windows-terminal = ["colorama (>=0.4.6)"] + +[[package]] +name = "pyparsing" +version = "3.1.1" +description = "pyparsing module - Classes and methods to define and execute parsing grammars" +optional = false +python-versions = ">=3.6.8" +files = [ + {file = "pyparsing-3.1.1-py3-none-any.whl", hash = "sha256:32c7c0b711493c72ff18a981d24f28aaf9c1fb7ed5e9667c9e84e3db623bdbfb"}, + {file = "pyparsing-3.1.1.tar.gz", hash = "sha256:ede28a1a32462f5a9705e07aea48001a08f7cf81a021585011deba701581a0db"}, +] + +[package.extras] +diagrams = ["jinja2", "railroad-diagrams"] + +[[package]] +name = "pytest" +version = "7.4.4" +description = "pytest: simple powerful testing with Python" +optional = false +python-versions = ">=3.7" +files = [ + {file = "pytest-7.4.4-py3-none-any.whl", hash = "sha256:b090cdf5ed60bf4c45261be03239c2c1c22df034fbffe691abe93cd80cea01d8"}, + {file = "pytest-7.4.4.tar.gz", hash = "sha256:2cf0005922c6ace4a3e2ec8b4080eb0d9753fdc93107415332f50ce9e7994280"}, +] + +[package.dependencies] +colorama = {version = "*", markers = "sys_platform == \"win32\""} +exceptiongroup = {version = ">=1.0.0rc8", markers = "python_version < \"3.11\""} +iniconfig = "*" +packaging = "*" +pluggy = ">=0.12,<2.0" +tomli = {version = ">=1.0.0", markers = "python_version < \"3.11\""} + +[package.extras] +testing = ["argcomplete", "attrs (>=19.2.0)", "hypothesis (>=3.56)", "mock", "nose", "pygments (>=2.7.2)", "requests", "setuptools", "xmlschema"] + +[[package]] +name = "pytest-lazy-fixture" +version = "0.6.3" +description = "It helps to use fixtures in pytest.mark.parametrize" +optional = false +python-versions = "*" +files = [ + {file = "pytest-lazy-fixture-0.6.3.tar.gz", hash = "sha256:0e7d0c7f74ba33e6e80905e9bfd81f9d15ef9a790de97993e34213deb5ad10ac"}, + {file = "pytest_lazy_fixture-0.6.3-py3-none-any.whl", hash = "sha256:e0b379f38299ff27a653f03eaa69b08a6fd4484e46fd1c9907d984b9f9daeda6"}, +] + +[package.dependencies] +pytest = ">=3.2.5" + +[[package]] +name = "pytest-mock" +version = "3.12.0" +description = "Thin-wrapper around the mock package for easier use with pytest" +optional = false +python-versions = ">=3.8" +files = [ + {file = "pytest-mock-3.12.0.tar.gz", hash = "sha256:31a40f038c22cad32287bb43932054451ff5583ff094bca6f675df2f8bc1a6e9"}, + {file = "pytest_mock-3.12.0-py3-none-any.whl", hash = "sha256:0972719a7263072da3a21c7f4773069bcc7486027d7e8e1f81d98a47e701bc4f"}, +] + +[package.dependencies] +pytest = ">=5.0" + +[package.extras] +dev = ["pre-commit", "pytest-asyncio", "tox"] + +[[package]] +name = "python-dateutil" +version = "2.8.2" +description = "Extensions to the standard Python datetime module" +optional = false +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7" +files = [ + {file = "python-dateutil-2.8.2.tar.gz", hash = "sha256:0123cacc1627ae19ddf3c27a5de5bd67ee4586fbdd6440d9748f8abb483d3e86"}, + {file = "python_dateutil-2.8.2-py2.py3-none-any.whl", hash = "sha256:961d03dc3453ebbc59dbdea9e4e11c5651520a876d0f4db161e8674aae935da9"}, +] + +[package.dependencies] +six = ">=1.5" + +[[package]] +name = "python-json-logger" +version = "2.0.7" +description = "A python library adding a json log formatter" +optional = false +python-versions = ">=3.6" +files = [ + {file = "python-json-logger-2.0.7.tar.gz", hash = "sha256:23e7ec02d34237c5aa1e29a070193a4ea87583bb4e7f8fd06d3de8264c4b2e1c"}, + {file = "python_json_logger-2.0.7-py3-none-any.whl", hash = "sha256:f380b826a991ebbe3de4d897aeec42760035ac760345e57b812938dc8b35e2bd"}, +] + +[[package]] +name = "pytz" +version = "2024.1" +description = "World timezone definitions, modern and historical" +optional = false +python-versions = "*" +files = [ + {file = "pytz-2024.1-py2.py3-none-any.whl", hash = "sha256:328171f4e3623139da4983451950b28e95ac706e13f3f2630a879749e7a8b319"}, + {file = "pytz-2024.1.tar.gz", hash = "sha256:2a29735ea9c18baf14b448846bde5a48030ed267578472d8955cd0e7443a9812"}, +] + +[[package]] +name = "pywin32" +version = "306" +description = "Python for Window Extensions" +optional = false +python-versions = "*" +files = [ + {file = "pywin32-306-cp310-cp310-win32.whl", hash = "sha256:06d3420a5155ba65f0b72f2699b5bacf3109f36acbe8923765c22938a69dfc8d"}, + {file = "pywin32-306-cp310-cp310-win_amd64.whl", hash = "sha256:84f4471dbca1887ea3803d8848a1616429ac94a4a8d05f4bc9c5dcfd42ca99c8"}, + {file = "pywin32-306-cp311-cp311-win32.whl", hash = "sha256:e65028133d15b64d2ed8f06dd9fbc268352478d4f9289e69c190ecd6818b6407"}, + {file = "pywin32-306-cp311-cp311-win_amd64.whl", hash = "sha256:a7639f51c184c0272e93f244eb24dafca9b1855707d94c192d4a0b4c01e1100e"}, + {file = "pywin32-306-cp311-cp311-win_arm64.whl", hash = "sha256:70dba0c913d19f942a2db25217d9a1b726c278f483a919f1abfed79c9cf64d3a"}, + {file = "pywin32-306-cp312-cp312-win32.whl", hash = "sha256:383229d515657f4e3ed1343da8be101000562bf514591ff383ae940cad65458b"}, + {file = "pywin32-306-cp312-cp312-win_amd64.whl", hash = "sha256:37257794c1ad39ee9be652da0462dc2e394c8159dfd913a8a4e8eb6fd346da0e"}, + {file = "pywin32-306-cp312-cp312-win_arm64.whl", hash = "sha256:5821ec52f6d321aa59e2db7e0a35b997de60c201943557d108af9d4ae1ec7040"}, + {file = "pywin32-306-cp37-cp37m-win32.whl", hash = "sha256:1c73ea9a0d2283d889001998059f5eaaba3b6238f767c9cf2833b13e6a685f65"}, + {file = "pywin32-306-cp37-cp37m-win_amd64.whl", hash = "sha256:72c5f621542d7bdd4fdb716227be0dd3f8565c11b280be6315b06ace35487d36"}, + {file = "pywin32-306-cp38-cp38-win32.whl", hash = "sha256:e4c092e2589b5cf0d365849e73e02c391c1349958c5ac3e9d5ccb9a28e017b3a"}, + {file = "pywin32-306-cp38-cp38-win_amd64.whl", hash = "sha256:e8ac1ae3601bee6ca9f7cb4b5363bf1c0badb935ef243c4733ff9a393b1690c0"}, + {file = "pywin32-306-cp39-cp39-win32.whl", hash = "sha256:e25fd5b485b55ac9c057f67d94bc203f3f6595078d1fb3b458c9c28b7153a802"}, + {file = "pywin32-306-cp39-cp39-win_amd64.whl", hash = "sha256:39b61c15272833b5c329a2989999dcae836b1eed650252ab1b7bfbe1d59f30f4"}, +] + +[[package]] +name = "pywinpty" +version = "2.0.12" +description = "Pseudo terminal support for Windows from Python." +optional = false +python-versions = ">=3.8" +files = [ + {file = "pywinpty-2.0.12-cp310-none-win_amd64.whl", hash = "sha256:21319cd1d7c8844fb2c970fb3a55a3db5543f112ff9cfcd623746b9c47501575"}, + {file = "pywinpty-2.0.12-cp311-none-win_amd64.whl", hash = "sha256:853985a8f48f4731a716653170cd735da36ffbdc79dcb4c7b7140bce11d8c722"}, + {file = "pywinpty-2.0.12-cp312-none-win_amd64.whl", hash = "sha256:1617b729999eb6713590e17665052b1a6ae0ad76ee31e60b444147c5b6a35dca"}, + {file = "pywinpty-2.0.12-cp38-none-win_amd64.whl", hash = "sha256:189380469ca143d06e19e19ff3fba0fcefe8b4a8cc942140a6b863aed7eebb2d"}, + {file = "pywinpty-2.0.12-cp39-none-win_amd64.whl", hash = "sha256:7520575b6546db23e693cbd865db2764097bd6d4ef5dc18c92555904cd62c3d4"}, + {file = "pywinpty-2.0.12.tar.gz", hash = "sha256:8197de460ae8ebb7f5d1701dfa1b5df45b157bb832e92acba316305e18ca00dd"}, +] + +[[package]] +name = "pyyaml" +version = "6.0.1" +description = "YAML parser and emitter for Python" +optional = false +python-versions = ">=3.6" +files = [ + {file = "PyYAML-6.0.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:d858aa552c999bc8a8d57426ed01e40bef403cd8ccdd0fc5f6f04a00414cac2a"}, + {file = "PyYAML-6.0.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:fd66fc5d0da6d9815ba2cebeb4205f95818ff4b79c3ebe268e75d961704af52f"}, + {file = "PyYAML-6.0.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:69b023b2b4daa7548bcfbd4aa3da05b3a74b772db9e23b982788168117739938"}, + {file = "PyYAML-6.0.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:81e0b275a9ecc9c0c0c07b4b90ba548307583c125f54d5b6946cfee6360c733d"}, + {file = "PyYAML-6.0.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ba336e390cd8e4d1739f42dfe9bb83a3cc2e80f567d8805e11b46f4a943f5515"}, + {file = "PyYAML-6.0.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:326c013efe8048858a6d312ddd31d56e468118ad4cdeda36c719bf5bb6192290"}, + {file = "PyYAML-6.0.1-cp310-cp310-win32.whl", hash = "sha256:bd4af7373a854424dabd882decdc5579653d7868b8fb26dc7d0e99f823aa5924"}, + {file = "PyYAML-6.0.1-cp310-cp310-win_amd64.whl", hash = "sha256:fd1592b3fdf65fff2ad0004b5e363300ef59ced41c2e6b3a99d4089fa8c5435d"}, + {file = "PyYAML-6.0.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:6965a7bc3cf88e5a1c3bd2e0b5c22f8d677dc88a455344035f03399034eb3007"}, + {file = "PyYAML-6.0.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:f003ed9ad21d6a4713f0a9b5a7a0a79e08dd0f221aff4525a2be4c346ee60aab"}, + {file = "PyYAML-6.0.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:42f8152b8dbc4fe7d96729ec2b99c7097d656dc1213a3229ca5383f973a5ed6d"}, + {file = "PyYAML-6.0.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:062582fca9fabdd2c8b54a3ef1c978d786e0f6b3a1510e0ac93ef59e0ddae2bc"}, + {file = "PyYAML-6.0.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d2b04aac4d386b172d5b9692e2d2da8de7bfb6c387fa4f801fbf6fb2e6ba4673"}, + {file = "PyYAML-6.0.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:e7d73685e87afe9f3b36c799222440d6cf362062f78be1013661b00c5c6f678b"}, + {file = "PyYAML-6.0.1-cp311-cp311-win32.whl", hash = "sha256:1635fd110e8d85d55237ab316b5b011de701ea0f29d07611174a1b42f1444741"}, + {file = "PyYAML-6.0.1-cp311-cp311-win_amd64.whl", hash = "sha256:bf07ee2fef7014951eeb99f56f39c9bb4af143d8aa3c21b1677805985307da34"}, + {file = "PyYAML-6.0.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:855fb52b0dc35af121542a76b9a84f8d1cd886ea97c84703eaa6d88e37a2ad28"}, + {file = "PyYAML-6.0.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:40df9b996c2b73138957fe23a16a4f0ba614f4c0efce1e9406a184b6d07fa3a9"}, + {file = "PyYAML-6.0.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a08c6f0fe150303c1c6b71ebcd7213c2858041a7e01975da3a99aed1e7a378ef"}, + {file = "PyYAML-6.0.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6c22bec3fbe2524cde73d7ada88f6566758a8f7227bfbf93a408a9d86bcc12a0"}, + {file = "PyYAML-6.0.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:8d4e9c88387b0f5c7d5f281e55304de64cf7f9c0021a3525bd3b1c542da3b0e4"}, + {file = "PyYAML-6.0.1-cp312-cp312-win32.whl", hash = "sha256:d483d2cdf104e7c9fa60c544d92981f12ad66a457afae824d146093b8c294c54"}, + {file = "PyYAML-6.0.1-cp312-cp312-win_amd64.whl", hash = "sha256:0d3304d8c0adc42be59c5f8a4d9e3d7379e6955ad754aa9d6ab7a398b59dd1df"}, + {file = "PyYAML-6.0.1-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:50550eb667afee136e9a77d6dc71ae76a44df8b3e51e41b77f6de2932bfe0f47"}, + {file = "PyYAML-6.0.1-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1fe35611261b29bd1de0070f0b2f47cb6ff71fa6595c077e42bd0c419fa27b98"}, + {file = "PyYAML-6.0.1-cp36-cp36m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:704219a11b772aea0d8ecd7058d0082713c3562b4e271b849ad7dc4a5c90c13c"}, + {file = "PyYAML-6.0.1-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:afd7e57eddb1a54f0f1a974bc4391af8bcce0b444685d936840f125cf046d5bd"}, + {file = "PyYAML-6.0.1-cp36-cp36m-win32.whl", hash = "sha256:fca0e3a251908a499833aa292323f32437106001d436eca0e6e7833256674585"}, + {file = "PyYAML-6.0.1-cp36-cp36m-win_amd64.whl", hash = "sha256:f22ac1c3cac4dbc50079e965eba2c1058622631e526bd9afd45fedd49ba781fa"}, + {file = "PyYAML-6.0.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:b1275ad35a5d18c62a7220633c913e1b42d44b46ee12554e5fd39c70a243d6a3"}, + {file = "PyYAML-6.0.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:18aeb1bf9a78867dc38b259769503436b7c72f7a1f1f4c93ff9a17de54319b27"}, + {file = "PyYAML-6.0.1-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:596106435fa6ad000c2991a98fa58eeb8656ef2325d7e158344fb33864ed87e3"}, + {file = "PyYAML-6.0.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:baa90d3f661d43131ca170712d903e6295d1f7a0f595074f151c0aed377c9b9c"}, + {file = "PyYAML-6.0.1-cp37-cp37m-win32.whl", hash = "sha256:9046c58c4395dff28dd494285c82ba00b546adfc7ef001486fbf0324bc174fba"}, + {file = "PyYAML-6.0.1-cp37-cp37m-win_amd64.whl", hash = "sha256:4fb147e7a67ef577a588a0e2c17b6db51dda102c71de36f8549b6816a96e1867"}, + {file = "PyYAML-6.0.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:1d4c7e777c441b20e32f52bd377e0c409713e8bb1386e1099c2415f26e479595"}, + {file = "PyYAML-6.0.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a0cd17c15d3bb3fa06978b4e8958dcdc6e0174ccea823003a106c7d4d7899ac5"}, + {file = "PyYAML-6.0.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:28c119d996beec18c05208a8bd78cbe4007878c6dd15091efb73a30e90539696"}, + {file = "PyYAML-6.0.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7e07cbde391ba96ab58e532ff4803f79c4129397514e1413a7dc761ccd755735"}, + {file = "PyYAML-6.0.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:49a183be227561de579b4a36efbb21b3eab9651dd81b1858589f796549873dd6"}, + {file = "PyYAML-6.0.1-cp38-cp38-win32.whl", hash = "sha256:184c5108a2aca3c5b3d3bf9395d50893a7ab82a38004c8f61c258d4428e80206"}, + {file = "PyYAML-6.0.1-cp38-cp38-win_amd64.whl", hash = "sha256:1e2722cc9fbb45d9b87631ac70924c11d3a401b2d7f410cc0e3bbf249f2dca62"}, + {file = "PyYAML-6.0.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:9eb6caa9a297fc2c2fb8862bc5370d0303ddba53ba97e71f08023b6cd73d16a8"}, + {file = "PyYAML-6.0.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:c8098ddcc2a85b61647b2590f825f3db38891662cfc2fc776415143f599bb859"}, + {file = "PyYAML-6.0.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5773183b6446b2c99bb77e77595dd486303b4faab2b086e7b17bc6bef28865f6"}, + {file = "PyYAML-6.0.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b786eecbdf8499b9ca1d697215862083bd6d2a99965554781d0d8d1ad31e13a0"}, + {file = "PyYAML-6.0.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bc1bf2925a1ecd43da378f4db9e4f799775d6367bdb94671027b73b393a7c42c"}, + {file = "PyYAML-6.0.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:04ac92ad1925b2cff1db0cfebffb6ffc43457495c9b3c39d3fcae417d7125dc5"}, + {file = "PyYAML-6.0.1-cp39-cp39-win32.whl", hash = "sha256:faca3bdcf85b2fc05d06ff3fbc1f83e1391b3e724afa3feba7d13eeab355484c"}, + {file = "PyYAML-6.0.1-cp39-cp39-win_amd64.whl", hash = "sha256:510c9deebc5c0225e8c96813043e62b680ba2f9c50a08d3724c7f28a747d1486"}, + {file = "PyYAML-6.0.1.tar.gz", hash = "sha256:bfdf460b1736c775f2ba9f6a92bca30bc2095067b8a9d77876d1fad6cc3b4a43"}, +] + +[[package]] +name = "pyzmq" +version = "24.0.1" +description = "Python bindings for 0MQ" +optional = false +python-versions = ">=3.6" +files = [ + {file = "pyzmq-24.0.1-cp310-cp310-macosx_10_15_universal2.whl", hash = "sha256:28b119ba97129d3001673a697b7cce47fe6de1f7255d104c2f01108a5179a066"}, + {file = "pyzmq-24.0.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:bcbebd369493d68162cddb74a9c1fcebd139dfbb7ddb23d8f8e43e6c87bac3a6"}, + {file = "pyzmq-24.0.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ae61446166983c663cee42c852ed63899e43e484abf080089f771df4b9d272ef"}, + {file = "pyzmq-24.0.1-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:87f7ac99b15270db8d53f28c3c7b968612993a90a5cf359da354efe96f5372b4"}, + {file = "pyzmq-24.0.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9dca7c3956b03b7663fac4d150f5e6d4f6f38b2462c1e9afd83bcf7019f17913"}, + {file = "pyzmq-24.0.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:8c78bfe20d4c890cb5580a3b9290f700c570e167d4cdcc55feec07030297a5e3"}, + {file = "pyzmq-24.0.1-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:48f721f070726cd2a6e44f3c33f8ee4b24188e4b816e6dd8ba542c8c3bb5b246"}, + {file = "pyzmq-24.0.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:afe1f3bc486d0ce40abb0a0c9adb39aed3bbac36ebdc596487b0cceba55c21c1"}, + {file = "pyzmq-24.0.1-cp310-cp310-win32.whl", hash = "sha256:3e6192dbcefaaa52ed81be88525a54a445f4b4fe2fffcae7fe40ebb58bd06bfd"}, + {file = "pyzmq-24.0.1-cp310-cp310-win_amd64.whl", hash = "sha256:86de64468cad9c6d269f32a6390e210ca5ada568c7a55de8e681ca3b897bb340"}, + {file = "pyzmq-24.0.1-cp311-cp311-macosx_10_15_universal2.whl", hash = "sha256:838812c65ed5f7c2bd11f7b098d2e5d01685a3f6d1f82849423b570bae698c00"}, + {file = "pyzmq-24.0.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:dfb992dbcd88d8254471760879d48fb20836d91baa90f181c957122f9592b3dc"}, + {file = "pyzmq-24.0.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7abddb2bd5489d30ffeb4b93a428130886c171b4d355ccd226e83254fcb6b9ef"}, + {file = "pyzmq-24.0.1-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:94010bd61bc168c103a5b3b0f56ed3b616688192db7cd5b1d626e49f28ff51b3"}, + {file = "pyzmq-24.0.1-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:8242543c522d84d033fe79be04cb559b80d7eb98ad81b137ff7e0a9020f00ace"}, + {file = "pyzmq-24.0.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:ccb94342d13e3bf3ffa6e62f95b5e3f0bc6bfa94558cb37f4b3d09d6feb536ff"}, + {file = "pyzmq-24.0.1-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:6640f83df0ae4ae1104d4c62b77e9ef39be85ebe53f636388707d532bee2b7b8"}, + {file = "pyzmq-24.0.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:a180dbd5ea5d47c2d3b716d5c19cc3fb162d1c8db93b21a1295d69585bfddac1"}, + {file = "pyzmq-24.0.1-cp311-cp311-win32.whl", hash = "sha256:624321120f7e60336be8ec74a172ae7fba5c3ed5bf787cc85f7e9986c9e0ebc2"}, + {file = "pyzmq-24.0.1-cp311-cp311-win_amd64.whl", hash = "sha256:1724117bae69e091309ffb8255412c4651d3f6355560d9af312d547f6c5bc8b8"}, + {file = "pyzmq-24.0.1-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:15975747462ec49fdc863af906bab87c43b2491403ab37a6d88410635786b0f4"}, + {file = "pyzmq-24.0.1-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b947e264f0e77d30dcbccbb00f49f900b204b922eb0c3a9f0afd61aaa1cedc3d"}, + {file = "pyzmq-24.0.1-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:0ec91f1bad66f3ee8c6deb65fa1fe418e8ad803efedd69c35f3b5502f43bd1dc"}, + {file = "pyzmq-24.0.1-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:db03704b3506455d86ec72c3358a779e9b1d07b61220dfb43702b7b668edcd0d"}, + {file = "pyzmq-24.0.1-cp36-cp36m-musllinux_1_1_aarch64.whl", hash = "sha256:e7e66b4e403c2836ac74f26c4b65d8ac0ca1eef41dfcac2d013b7482befaad83"}, + {file = "pyzmq-24.0.1-cp36-cp36m-musllinux_1_1_i686.whl", hash = "sha256:7a23ccc1083c260fa9685c93e3b170baba45aeed4b524deb3f426b0c40c11639"}, + {file = "pyzmq-24.0.1-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:fa0ae3275ef706c0309556061185dd0e4c4cd3b7d6f67ae617e4e677c7a41e2e"}, + {file = "pyzmq-24.0.1-cp36-cp36m-win32.whl", hash = "sha256:f01de4ec083daebf210531e2cca3bdb1608dbbbe00a9723e261d92087a1f6ebc"}, + {file = "pyzmq-24.0.1-cp36-cp36m-win_amd64.whl", hash = "sha256:de4217b9eb8b541cf2b7fde4401ce9d9a411cc0af85d410f9d6f4333f43640be"}, + {file = "pyzmq-24.0.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:78068e8678ca023594e4a0ab558905c1033b2d3e806a0ad9e3094e231e115a33"}, + {file = "pyzmq-24.0.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:77c2713faf25a953c69cf0f723d1b7dd83827b0834e6c41e3fb3bbc6765914a1"}, + {file = "pyzmq-24.0.1-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:8bb4af15f305056e95ca1bd086239b9ebc6ad55e9f49076d27d80027f72752f6"}, + {file = "pyzmq-24.0.1-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:0f14cffd32e9c4c73da66db97853a6aeceaac34acdc0fae9e5bbc9370281864c"}, + {file = "pyzmq-24.0.1-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:0108358dab8c6b27ff6b985c2af4b12665c1bc659648284153ee501000f5c107"}, + {file = "pyzmq-24.0.1-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:d66689e840e75221b0b290b0befa86f059fb35e1ee6443bce51516d4d61b6b99"}, + {file = "pyzmq-24.0.1-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:ae08ac90aa8fa14caafc7a6251bd218bf6dac518b7bff09caaa5e781119ba3f2"}, + {file = "pyzmq-24.0.1-cp37-cp37m-win32.whl", hash = "sha256:8421aa8c9b45ea608c205db9e1c0c855c7e54d0e9c2c2f337ce024f6843cab3b"}, + {file = "pyzmq-24.0.1-cp37-cp37m-win_amd64.whl", hash = "sha256:54d8b9c5e288362ec8595c1d98666d36f2070fd0c2f76e2b3c60fbad9bd76227"}, + {file = "pyzmq-24.0.1-cp38-cp38-macosx_10_15_universal2.whl", hash = "sha256:acbd0a6d61cc954b9f535daaa9ec26b0a60a0d4353c5f7c1438ebc88a359a47e"}, + {file = "pyzmq-24.0.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:47b11a729d61a47df56346283a4a800fa379ae6a85870d5a2e1e4956c828eedc"}, + {file = "pyzmq-24.0.1-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:abe6eb10122f0d746a0d510c2039ae8edb27bc9af29f6d1b05a66cc2401353ff"}, + {file = "pyzmq-24.0.1-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:07bec1a1b22dacf718f2c0e71b49600bb6a31a88f06527dfd0b5aababe3fa3f7"}, + {file = "pyzmq-24.0.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f0d945a85b70da97ae86113faf9f1b9294efe66bd4a5d6f82f2676d567338b66"}, + {file = "pyzmq-24.0.1-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:1b7928bb7580736ffac5baf814097be342ba08d3cfdfb48e52773ec959572287"}, + {file = "pyzmq-24.0.1-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:b946da90dc2799bcafa682692c1d2139b2a96ec3c24fa9fc6f5b0da782675330"}, + {file = "pyzmq-24.0.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:c8840f064b1fb377cffd3efeaad2b190c14d4c8da02316dae07571252d20b31f"}, + {file = "pyzmq-24.0.1-cp38-cp38-win32.whl", hash = "sha256:4854f9edc5208f63f0841c0c667260ae8d6846cfa233c479e29fdc85d42ebd58"}, + {file = "pyzmq-24.0.1-cp38-cp38-win_amd64.whl", hash = "sha256:42d4f97b9795a7aafa152a36fe2ad44549b83a743fd3e77011136def512e6c2a"}, + {file = "pyzmq-24.0.1-cp39-cp39-macosx_10_15_universal2.whl", hash = "sha256:52afb0ac962963fff30cf1be775bc51ae083ef4c1e354266ab20e5382057dd62"}, + {file = "pyzmq-24.0.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:8bad8210ad4df68c44ff3685cca3cda448ee46e20d13edcff8909eba6ec01ca4"}, + {file = "pyzmq-24.0.1-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:dabf1a05318d95b1537fd61d9330ef4313ea1216eea128a17615038859da3b3b"}, + {file = "pyzmq-24.0.1-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:5bd3d7dfd9cd058eb68d9a905dec854f86649f64d4ddf21f3ec289341386c44b"}, + {file = "pyzmq-24.0.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e8012bce6836d3f20a6c9599f81dfa945f433dab4dbd0c4917a6fb1f998ab33d"}, + {file = "pyzmq-24.0.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:c31805d2c8ade9b11feca4674eee2b9cce1fec3e8ddb7bbdd961a09dc76a80ea"}, + {file = "pyzmq-24.0.1-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:3104f4b084ad5d9c0cb87445cc8cfd96bba710bef4a66c2674910127044df209"}, + {file = "pyzmq-24.0.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:df0841f94928f8af9c7a1f0aaaffba1fb74607af023a152f59379c01c53aee58"}, + {file = "pyzmq-24.0.1-cp39-cp39-win32.whl", hash = "sha256:a435ef8a3bd95c8a2d316d6e0ff70d0db524f6037411652803e118871d703333"}, + {file = "pyzmq-24.0.1-cp39-cp39-win_amd64.whl", hash = "sha256:2032d9cb994ce3b4cba2b8dfae08c7e25bc14ba484c770d4d3be33c27de8c45b"}, + {file = "pyzmq-24.0.1-pp37-pypy37_pp73-macosx_10_9_x86_64.whl", hash = "sha256:bb5635c851eef3a7a54becde6da99485eecf7d068bd885ac8e6d173c4ecd68b0"}, + {file = "pyzmq-24.0.1-pp37-pypy37_pp73-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:83ea1a398f192957cb986d9206ce229efe0ee75e3c6635baff53ddf39bd718d5"}, + {file = "pyzmq-24.0.1-pp37-pypy37_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:941fab0073f0a54dc33d1a0460cb04e0d85893cb0c5e1476c785000f8b359409"}, + {file = "pyzmq-24.0.1-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0e8f482c44ccb5884bf3f638f29bea0f8dc68c97e38b2061769c4cb697f6140d"}, + {file = "pyzmq-24.0.1-pp37-pypy37_pp73-win_amd64.whl", hash = "sha256:613010b5d17906c4367609e6f52e9a2595e35d5cc27d36ff3f1b6fa6e954d944"}, + {file = "pyzmq-24.0.1-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:65c94410b5a8355cfcf12fd600a313efee46ce96a09e911ea92cf2acf6708804"}, + {file = "pyzmq-24.0.1-pp38-pypy38_pp73-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:20e7eeb1166087db636c06cae04a1ef59298627f56fb17da10528ab52a14c87f"}, + {file = "pyzmq-24.0.1-pp38-pypy38_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:a2712aee7b3834ace51738c15d9ee152cc5a98dc7d57dd93300461b792ab7b43"}, + {file = "pyzmq-24.0.1-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1a7c280185c4da99e0cc06c63bdf91f5b0b71deb70d8717f0ab870a43e376db8"}, + {file = "pyzmq-24.0.1-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:858375573c9225cc8e5b49bfac846a77b696b8d5e815711b8d4ba3141e6e8879"}, + {file = "pyzmq-24.0.1-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:80093b595921eed1a2cead546a683b9e2ae7f4a4592bb2ab22f70d30174f003a"}, + {file = "pyzmq-24.0.1-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8f3f3154fde2b1ff3aa7b4f9326347ebc89c8ef425ca1db8f665175e6d3bd42f"}, + {file = "pyzmq-24.0.1-pp39-pypy39_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:abb756147314430bee5d10919b8493c0ccb109ddb7f5dfd2fcd7441266a25b75"}, + {file = "pyzmq-24.0.1-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:44e706bac34e9f50779cb8c39f10b53a4d15aebb97235643d3112ac20bd577b4"}, + {file = "pyzmq-24.0.1-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:687700f8371643916a1d2c61f3fdaa630407dd205c38afff936545d7b7466066"}, + {file = "pyzmq-24.0.1.tar.gz", hash = "sha256:216f5d7dbb67166759e59b0479bca82b8acf9bed6015b526b8eb10143fb08e77"}, +] + +[package.dependencies] +cffi = {version = "*", markers = "implementation_name == \"pypy\""} +py = {version = "*", markers = "implementation_name == \"pypy\""} + +[[package]] +name = "qtconsole" +version = "5.5.1" +description = "Jupyter Qt console" +optional = false +python-versions = ">= 3.8" +files = [ + {file = "qtconsole-5.5.1-py3-none-any.whl", hash = "sha256:8c75fa3e9b4ed884880ff7cea90a1b67451219279ec33deaee1d59e3df1a5d2b"}, + {file = "qtconsole-5.5.1.tar.gz", hash = "sha256:a0e806c6951db9490628e4df80caec9669b65149c7ba40f9bf033c025a5b56bc"}, +] + +[package.dependencies] +ipykernel = ">=4.1" +jupyter-client = ">=4.1" +jupyter-core = "*" +packaging = "*" +pygments = "*" +pyzmq = ">=17.1" +qtpy = ">=2.4.0" +traitlets = "<5.2.1 || >5.2.1,<5.2.2 || >5.2.2" + +[package.extras] +doc = ["Sphinx (>=1.3)"] +test = ["flaky", "pytest", "pytest-qt"] + +[[package]] +name = "qtpy" +version = "2.4.1" +description = "Provides an abstraction layer on top of the various Qt bindings (PyQt5/6 and PySide2/6)." +optional = false +python-versions = ">=3.7" +files = [ + {file = "QtPy-2.4.1-py3-none-any.whl", hash = "sha256:1c1d8c4fa2c884ae742b069151b0abe15b3f70491f3972698c683b8e38de839b"}, + {file = "QtPy-2.4.1.tar.gz", hash = "sha256:a5a15ffd519550a1361bdc56ffc07fda56a6af7292f17c7b395d4083af632987"}, +] + +[package.dependencies] +packaging = "*" + +[package.extras] +test = ["pytest (>=6,!=7.0.0,!=7.0.1)", "pytest-cov (>=3.0.0)", "pytest-qt"] + +[[package]] +name = "referencing" +version = "0.33.0" +description = "JSON Referencing + Python" +optional = false +python-versions = ">=3.8" +files = [ + {file = "referencing-0.33.0-py3-none-any.whl", hash = "sha256:39240f2ecc770258f28b642dd47fd74bc8b02484de54e1882b74b35ebd779bd5"}, + {file = "referencing-0.33.0.tar.gz", hash = "sha256:c775fedf74bc0f9189c2a3be1c12fd03e8c23f4d371dce795df44e06c5b412f7"}, +] + +[package.dependencies] +attrs = ">=22.2.0" +rpds-py = ">=0.7.0" + +[[package]] +name = "requests" +version = "2.31.0" +description = "Python HTTP for Humans." +optional = false +python-versions = ">=3.7" +files = [ + {file = "requests-2.31.0-py3-none-any.whl", hash = "sha256:58cd2187c01e70e6e26505bca751777aa9f2ee0b7f4300988b709f44e013003f"}, + {file = "requests-2.31.0.tar.gz", hash = "sha256:942c5a758f98d790eaed1a29cb6eefc7ffb0d1cf7af05c3d2791656dbd6ad1e1"}, +] + +[package.dependencies] +certifi = ">=2017.4.17" +charset-normalizer = ">=2,<4" +idna = ">=2.5,<4" +urllib3 = ">=1.21.1,<3" + +[package.extras] +socks = ["PySocks (>=1.5.6,!=1.5.7)"] +use-chardet-on-py3 = ["chardet (>=3.0.2,<6)"] + +[[package]] +name = "rfc3339-validator" +version = "0.1.4" +description = "A pure python RFC3339 validator" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" +files = [ + {file = "rfc3339_validator-0.1.4-py2.py3-none-any.whl", hash = "sha256:24f6ec1eda14ef823da9e36ec7113124b39c04d50a4d3d3a3c2859577e7791fa"}, + {file = "rfc3339_validator-0.1.4.tar.gz", hash = "sha256:138a2abdf93304ad60530167e51d2dfb9549521a836871b88d7f4695d0022f6b"}, +] + +[package.dependencies] +six = "*" + +[[package]] +name = "rfc3986-validator" +version = "0.1.1" +description = "Pure python rfc3986 validator" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" +files = [ + {file = "rfc3986_validator-0.1.1-py2.py3-none-any.whl", hash = "sha256:2f235c432ef459970b4306369336b9d5dbdda31b510ca1e327636e01f528bfa9"}, + {file = "rfc3986_validator-0.1.1.tar.gz", hash = "sha256:3d44bde7921b3b9ec3ae4e3adca370438eccebc676456449b145d533b240d055"}, +] + +[[package]] +name = "rpds-py" +version = "0.18.0" +description = "Python bindings to Rust's persistent data structures (rpds)" +optional = false +python-versions = ">=3.8" +files = [ + {file = "rpds_py-0.18.0-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:5b4e7d8d6c9b2e8ee2d55c90b59c707ca59bc30058269b3db7b1f8df5763557e"}, + {file = "rpds_py-0.18.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:c463ed05f9dfb9baebef68048aed8dcdc94411e4bf3d33a39ba97e271624f8f7"}, + {file = "rpds_py-0.18.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:01e36a39af54a30f28b73096dd39b6802eddd04c90dbe161c1b8dbe22353189f"}, + {file = "rpds_py-0.18.0-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:d62dec4976954a23d7f91f2f4530852b0c7608116c257833922a896101336c51"}, + {file = "rpds_py-0.18.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:dd18772815d5f008fa03d2b9a681ae38d5ae9f0e599f7dda233c439fcaa00d40"}, + {file = "rpds_py-0.18.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:923d39efa3cfb7279a0327e337a7958bff00cc447fd07a25cddb0a1cc9a6d2da"}, + {file = "rpds_py-0.18.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:39514da80f971362f9267c600b6d459bfbbc549cffc2cef8e47474fddc9b45b1"}, + {file = "rpds_py-0.18.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:a34d557a42aa28bd5c48a023c570219ba2593bcbbb8dc1b98d8cf5d529ab1434"}, + {file = "rpds_py-0.18.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:93df1de2f7f7239dc9cc5a4a12408ee1598725036bd2dedadc14d94525192fc3"}, + {file = "rpds_py-0.18.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:34b18ba135c687f4dac449aa5157d36e2cbb7c03cbea4ddbd88604e076aa836e"}, + {file = "rpds_py-0.18.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:c0b5dcf9193625afd8ecc92312d6ed78781c46ecbf39af9ad4681fc9f464af88"}, + {file = "rpds_py-0.18.0-cp310-none-win32.whl", hash = "sha256:c4325ff0442a12113a6379af66978c3fe562f846763287ef66bdc1d57925d337"}, + {file = "rpds_py-0.18.0-cp310-none-win_amd64.whl", hash = "sha256:7223a2a5fe0d217e60a60cdae28d6949140dde9c3bcc714063c5b463065e3d66"}, + {file = "rpds_py-0.18.0-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:3a96e0c6a41dcdba3a0a581bbf6c44bb863f27c541547fb4b9711fd8cf0ffad4"}, + {file = "rpds_py-0.18.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:30f43887bbae0d49113cbaab729a112251a940e9b274536613097ab8b4899cf6"}, + {file = "rpds_py-0.18.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fcb25daa9219b4cf3a0ab24b0eb9a5cc8949ed4dc72acb8fa16b7e1681aa3c58"}, + {file = "rpds_py-0.18.0-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:d68c93e381010662ab873fea609bf6c0f428b6d0bb00f2c6939782e0818d37bf"}, + {file = "rpds_py-0.18.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b34b7aa8b261c1dbf7720b5d6f01f38243e9b9daf7e6b8bc1fd4657000062f2c"}, + {file = "rpds_py-0.18.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2e6d75ab12b0bbab7215e5d40f1e5b738aa539598db27ef83b2ec46747df90e1"}, + {file = "rpds_py-0.18.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0b8612cd233543a3781bc659c731b9d607de65890085098986dfd573fc2befe5"}, + {file = "rpds_py-0.18.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:aec493917dd45e3c69d00a8874e7cbed844efd935595ef78a0f25f14312e33c6"}, + {file = "rpds_py-0.18.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:661d25cbffaf8cc42e971dd570d87cb29a665f49f4abe1f9e76be9a5182c4688"}, + {file = "rpds_py-0.18.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:1df3659d26f539ac74fb3b0c481cdf9d725386e3552c6fa2974f4d33d78e544b"}, + {file = "rpds_py-0.18.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:a1ce3ba137ed54f83e56fb983a5859a27d43a40188ba798993812fed73c70836"}, + {file = "rpds_py-0.18.0-cp311-none-win32.whl", hash = "sha256:69e64831e22a6b377772e7fb337533c365085b31619005802a79242fee620bc1"}, + {file = "rpds_py-0.18.0-cp311-none-win_amd64.whl", hash = "sha256:998e33ad22dc7ec7e030b3df701c43630b5bc0d8fbc2267653577e3fec279afa"}, + {file = "rpds_py-0.18.0-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:7f2facbd386dd60cbbf1a794181e6aa0bd429bd78bfdf775436020172e2a23f0"}, + {file = "rpds_py-0.18.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:1d9a5be316c15ffb2b3c405c4ff14448c36b4435be062a7f578ccd8b01f0c4d8"}, + {file = "rpds_py-0.18.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cd5bf1af8efe569654bbef5a3e0a56eca45f87cfcffab31dd8dde70da5982475"}, + {file = "rpds_py-0.18.0-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:5417558f6887e9b6b65b4527232553c139b57ec42c64570569b155262ac0754f"}, + {file = "rpds_py-0.18.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:56a737287efecafc16f6d067c2ea0117abadcd078d58721f967952db329a3e5c"}, + {file = "rpds_py-0.18.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8f03bccbd8586e9dd37219bce4d4e0d3ab492e6b3b533e973fa08a112cb2ffc9"}, + {file = "rpds_py-0.18.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4457a94da0d5c53dc4b3e4de1158bdab077db23c53232f37a3cb7afdb053a4e3"}, + {file = "rpds_py-0.18.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:0ab39c1ba9023914297dd88ec3b3b3c3f33671baeb6acf82ad7ce883f6e8e157"}, + {file = "rpds_py-0.18.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:9d54553c1136b50fd12cc17e5b11ad07374c316df307e4cfd6441bea5fb68496"}, + {file = "rpds_py-0.18.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:0af039631b6de0397ab2ba16eaf2872e9f8fca391b44d3d8cac317860a700a3f"}, + {file = "rpds_py-0.18.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:84ffab12db93b5f6bad84c712c92060a2d321b35c3c9960b43d08d0f639d60d7"}, + {file = "rpds_py-0.18.0-cp312-none-win32.whl", hash = "sha256:685537e07897f173abcf67258bee3c05c374fa6fff89d4c7e42fb391b0605e98"}, + {file = "rpds_py-0.18.0-cp312-none-win_amd64.whl", hash = "sha256:e003b002ec72c8d5a3e3da2989c7d6065b47d9eaa70cd8808b5384fbb970f4ec"}, + {file = "rpds_py-0.18.0-cp38-cp38-macosx_10_12_x86_64.whl", hash = "sha256:08f9ad53c3f31dfb4baa00da22f1e862900f45908383c062c27628754af2e88e"}, + {file = "rpds_py-0.18.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:c0013fe6b46aa496a6749c77e00a3eb07952832ad6166bd481c74bda0dcb6d58"}, + {file = "rpds_py-0.18.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e32a92116d4f2a80b629778280103d2a510a5b3f6314ceccd6e38006b5e92dcb"}, + {file = "rpds_py-0.18.0-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:e541ec6f2ec456934fd279a3120f856cd0aedd209fc3852eca563f81738f6861"}, + {file = "rpds_py-0.18.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:bed88b9a458e354014d662d47e7a5baafd7ff81c780fd91584a10d6ec842cb73"}, + {file = "rpds_py-0.18.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2644e47de560eb7bd55c20fc59f6daa04682655c58d08185a9b95c1970fa1e07"}, + {file = "rpds_py-0.18.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8e8916ae4c720529e18afa0b879473049e95949bf97042e938530e072fde061d"}, + {file = "rpds_py-0.18.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:465a3eb5659338cf2a9243e50ad9b2296fa15061736d6e26240e713522b6235c"}, + {file = "rpds_py-0.18.0-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:ea7d4a99f3b38c37eac212dbd6ec42b7a5ec51e2c74b5d3223e43c811609e65f"}, + {file = "rpds_py-0.18.0-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:67071a6171e92b6da534b8ae326505f7c18022c6f19072a81dcf40db2638767c"}, + {file = "rpds_py-0.18.0-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:41ef53e7c58aa4ef281da975f62c258950f54b76ec8e45941e93a3d1d8580594"}, + {file = "rpds_py-0.18.0-cp38-none-win32.whl", hash = "sha256:fdea4952db2793c4ad0bdccd27c1d8fdd1423a92f04598bc39425bcc2b8ee46e"}, + {file = "rpds_py-0.18.0-cp38-none-win_amd64.whl", hash = "sha256:7cd863afe7336c62ec78d7d1349a2f34c007a3cc6c2369d667c65aeec412a5b1"}, + {file = "rpds_py-0.18.0-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:5307def11a35f5ae4581a0b658b0af8178c65c530e94893345bebf41cc139d33"}, + {file = "rpds_py-0.18.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:77f195baa60a54ef9d2de16fbbfd3ff8b04edc0c0140a761b56c267ac11aa467"}, + {file = "rpds_py-0.18.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:39f5441553f1c2aed4de4377178ad8ff8f9d733723d6c66d983d75341de265ab"}, + {file = "rpds_py-0.18.0-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:9a00312dea9310d4cb7dbd7787e722d2e86a95c2db92fbd7d0155f97127bcb40"}, + {file = "rpds_py-0.18.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8f2fc11e8fe034ee3c34d316d0ad8808f45bc3b9ce5857ff29d513f3ff2923a1"}, + {file = "rpds_py-0.18.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:586f8204935b9ec884500498ccc91aa869fc652c40c093bd9e1471fbcc25c022"}, + {file = "rpds_py-0.18.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ddc2f4dfd396c7bfa18e6ce371cba60e4cf9d2e5cdb71376aa2da264605b60b9"}, + {file = "rpds_py-0.18.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:5ddcba87675b6d509139d1b521e0c8250e967e63b5909a7e8f8944d0f90ff36f"}, + {file = "rpds_py-0.18.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:7bd339195d84439cbe5771546fe8a4e8a7a045417d8f9de9a368c434e42a721e"}, + {file = "rpds_py-0.18.0-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:d7c36232a90d4755b720fbd76739d8891732b18cf240a9c645d75f00639a9024"}, + {file = "rpds_py-0.18.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:6b0817e34942b2ca527b0e9298373e7cc75f429e8da2055607f4931fded23e20"}, + {file = "rpds_py-0.18.0-cp39-none-win32.whl", hash = "sha256:99f70b740dc04d09e6b2699b675874367885217a2e9f782bdf5395632ac663b7"}, + {file = "rpds_py-0.18.0-cp39-none-win_amd64.whl", hash = "sha256:6ef687afab047554a2d366e112dd187b62d261d49eb79b77e386f94644363294"}, + {file = "rpds_py-0.18.0-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:ad36cfb355e24f1bd37cac88c112cd7730873f20fb0bdaf8ba59eedf8216079f"}, + {file = "rpds_py-0.18.0-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:36b3ee798c58ace201289024b52788161e1ea133e4ac93fba7d49da5fec0ef9e"}, + {file = "rpds_py-0.18.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f8a2f084546cc59ea99fda8e070be2fd140c3092dc11524a71aa8f0f3d5a55ca"}, + {file = "rpds_py-0.18.0-pp310-pypy310_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:e4461d0f003a0aa9be2bdd1b798a041f177189c1a0f7619fe8c95ad08d9a45d7"}, + {file = "rpds_py-0.18.0-pp310-pypy310_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8db715ebe3bb7d86d77ac1826f7d67ec11a70dbd2376b7cc214199360517b641"}, + {file = "rpds_py-0.18.0-pp310-pypy310_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:793968759cd0d96cac1e367afd70c235867831983f876a53389ad869b043c948"}, + {file = "rpds_py-0.18.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:66e6a3af5a75363d2c9a48b07cb27c4ea542938b1a2e93b15a503cdfa8490795"}, + {file = "rpds_py-0.18.0-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:6ef0befbb5d79cf32d0266f5cff01545602344eda89480e1dd88aca964260b18"}, + {file = "rpds_py-0.18.0-pp310-pypy310_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:1d4acf42190d449d5e89654d5c1ed3a4f17925eec71f05e2a41414689cda02d1"}, + {file = "rpds_py-0.18.0-pp310-pypy310_pp73-musllinux_1_2_i686.whl", hash = "sha256:a5f446dd5055667aabaee78487f2b5ab72e244f9bc0b2ffebfeec79051679984"}, + {file = "rpds_py-0.18.0-pp310-pypy310_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:9dbbeb27f4e70bfd9eec1be5477517365afe05a9b2c441a0b21929ee61048124"}, + {file = "rpds_py-0.18.0-pp38-pypy38_pp73-macosx_10_12_x86_64.whl", hash = "sha256:22806714311a69fd0af9b35b7be97c18a0fc2826e6827dbb3a8c94eac6cf7eeb"}, + {file = "rpds_py-0.18.0-pp38-pypy38_pp73-macosx_11_0_arm64.whl", hash = "sha256:b34ae4636dfc4e76a438ab826a0d1eed2589ca7d9a1b2d5bb546978ac6485461"}, + {file = "rpds_py-0.18.0-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8c8370641f1a7f0e0669ddccca22f1da893cef7628396431eb445d46d893e5cd"}, + {file = "rpds_py-0.18.0-pp38-pypy38_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:c8362467a0fdeccd47935f22c256bec5e6abe543bf0d66e3d3d57a8fb5731863"}, + {file = "rpds_py-0.18.0-pp38-pypy38_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:11a8c85ef4a07a7638180bf04fe189d12757c696eb41f310d2426895356dcf05"}, + {file = "rpds_py-0.18.0-pp38-pypy38_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b316144e85316da2723f9d8dc75bada12fa58489a527091fa1d5a612643d1a0e"}, + {file = "rpds_py-0.18.0-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cf1ea2e34868f6fbf070e1af291c8180480310173de0b0c43fc38a02929fc0e3"}, + {file = "rpds_py-0.18.0-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:e546e768d08ad55b20b11dbb78a745151acbd938f8f00d0cfbabe8b0199b9880"}, + {file = "rpds_py-0.18.0-pp38-pypy38_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:4901165d170a5fde6f589acb90a6b33629ad1ec976d4529e769c6f3d885e3e80"}, + {file = "rpds_py-0.18.0-pp38-pypy38_pp73-musllinux_1_2_i686.whl", hash = "sha256:618a3d6cae6ef8ec88bb76dd80b83cfe415ad4f1d942ca2a903bf6b6ff97a2da"}, + {file = "rpds_py-0.18.0-pp38-pypy38_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:ed4eb745efbff0a8e9587d22a84be94a5eb7d2d99c02dacf7bd0911713ed14dd"}, + {file = "rpds_py-0.18.0-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:6c81e5f372cd0dc5dc4809553d34f832f60a46034a5f187756d9b90586c2c307"}, + {file = "rpds_py-0.18.0-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:43fbac5f22e25bee1d482c97474f930a353542855f05c1161fd804c9dc74a09d"}, + {file = "rpds_py-0.18.0-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6d7faa6f14017c0b1e69f5e2c357b998731ea75a442ab3841c0dbbbfe902d2c4"}, + {file = "rpds_py-0.18.0-pp39-pypy39_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:08231ac30a842bd04daabc4d71fddd7e6d26189406d5a69535638e4dcb88fe76"}, + {file = "rpds_py-0.18.0-pp39-pypy39_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:044a3e61a7c2dafacae99d1e722cc2d4c05280790ec5a05031b3876809d89a5c"}, + {file = "rpds_py-0.18.0-pp39-pypy39_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3f26b5bd1079acdb0c7a5645e350fe54d16b17bfc5e71f371c449383d3342e17"}, + {file = "rpds_py-0.18.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:482103aed1dfe2f3b71a58eff35ba105289b8d862551ea576bd15479aba01f66"}, + {file = "rpds_py-0.18.0-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:1374f4129f9bcca53a1bba0bb86bf78325a0374577cf7e9e4cd046b1e6f20e24"}, + {file = "rpds_py-0.18.0-pp39-pypy39_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:635dc434ff724b178cb192c70016cc0ad25a275228f749ee0daf0eddbc8183b1"}, + {file = "rpds_py-0.18.0-pp39-pypy39_pp73-musllinux_1_2_i686.whl", hash = "sha256:bc362ee4e314870a70f4ae88772d72d877246537d9f8cb8f7eacf10884862432"}, + {file = "rpds_py-0.18.0-pp39-pypy39_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:4832d7d380477521a8c1644bbab6588dfedea5e30a7d967b5fb75977c45fd77f"}, + {file = "rpds_py-0.18.0.tar.gz", hash = "sha256:42821446ee7a76f5d9f71f9e33a4fb2ffd724bb3e7f93386150b61a43115788d"}, +] + +[[package]] +name = "scipy" +version = "1.12.0" +description = "Fundamental algorithms for scientific computing in Python" +optional = false +python-versions = ">=3.9" +files = [ + {file = "scipy-1.12.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:78e4402e140879387187f7f25d91cc592b3501a2e51dfb320f48dfb73565f10b"}, + {file = "scipy-1.12.0-cp310-cp310-macosx_12_0_arm64.whl", hash = "sha256:f5f00ebaf8de24d14b8449981a2842d404152774c1a1d880c901bf454cb8e2a1"}, + {file = "scipy-1.12.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e53958531a7c695ff66c2e7bb7b79560ffdc562e2051644c5576c39ff8efb563"}, + {file = "scipy-1.12.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5e32847e08da8d895ce09d108a494d9eb78974cf6de23063f93306a3e419960c"}, + {file = "scipy-1.12.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:4c1020cad92772bf44b8e4cdabc1df5d87376cb219742549ef69fc9fd86282dd"}, + {file = "scipy-1.12.0-cp310-cp310-win_amd64.whl", hash = "sha256:75ea2a144096b5e39402e2ff53a36fecfd3b960d786b7efd3c180e29c39e53f2"}, + {file = "scipy-1.12.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:408c68423f9de16cb9e602528be4ce0d6312b05001f3de61fe9ec8b1263cad08"}, + {file = "scipy-1.12.0-cp311-cp311-macosx_12_0_arm64.whl", hash = "sha256:5adfad5dbf0163397beb4aca679187d24aec085343755fcdbdeb32b3679f254c"}, + {file = "scipy-1.12.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c3003652496f6e7c387b1cf63f4bb720951cfa18907e998ea551e6de51a04467"}, + {file = "scipy-1.12.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8b8066bce124ee5531d12a74b617d9ac0ea59245246410e19bca549656d9a40a"}, + {file = "scipy-1.12.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:8bee4993817e204d761dba10dbab0774ba5a8612e57e81319ea04d84945375ba"}, + {file = "scipy-1.12.0-cp311-cp311-win_amd64.whl", hash = "sha256:a24024d45ce9a675c1fb8494e8e5244efea1c7a09c60beb1eeb80373d0fecc70"}, + {file = "scipy-1.12.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:e7e76cc48638228212c747ada851ef355c2bb5e7f939e10952bc504c11f4e372"}, + {file = "scipy-1.12.0-cp312-cp312-macosx_12_0_arm64.whl", hash = "sha256:f7ce148dffcd64ade37b2df9315541f9adad6efcaa86866ee7dd5db0c8f041c3"}, + {file = "scipy-1.12.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9c39f92041f490422924dfdb782527a4abddf4707616e07b021de33467f917bc"}, + {file = "scipy-1.12.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a7ebda398f86e56178c2fa94cad15bf457a218a54a35c2a7b4490b9f9cb2676c"}, + {file = "scipy-1.12.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:95e5c750d55cf518c398a8240571b0e0782c2d5a703250872f36eaf737751338"}, + {file = "scipy-1.12.0-cp312-cp312-win_amd64.whl", hash = "sha256:e646d8571804a304e1da01040d21577685ce8e2db08ac58e543eaca063453e1c"}, + {file = "scipy-1.12.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:913d6e7956c3a671de3b05ccb66b11bc293f56bfdef040583a7221d9e22a2e35"}, + {file = "scipy-1.12.0-cp39-cp39-macosx_12_0_arm64.whl", hash = "sha256:bba1b0c7256ad75401c73e4b3cf09d1f176e9bd4248f0d3112170fb2ec4db067"}, + {file = "scipy-1.12.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:730badef9b827b368f351eacae2e82da414e13cf8bd5051b4bdfd720271a5371"}, + {file = "scipy-1.12.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6546dc2c11a9df6926afcbdd8a3edec28566e4e785b915e849348c6dd9f3f490"}, + {file = "scipy-1.12.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:196ebad3a4882081f62a5bf4aeb7326aa34b110e533aab23e4374fcccb0890dc"}, + {file = "scipy-1.12.0-cp39-cp39-win_amd64.whl", hash = "sha256:b360f1b6b2f742781299514e99ff560d1fe9bd1bff2712894b52abe528d1fd1e"}, + {file = "scipy-1.12.0.tar.gz", hash = "sha256:4bf5abab8a36d20193c698b0f1fc282c1d083c94723902c447e5d2f1780936a3"}, +] + +[package.dependencies] +numpy = ">=1.22.4,<1.29.0" + +[package.extras] +dev = ["click", "cython-lint (>=0.12.2)", "doit (>=0.36.0)", "mypy", "pycodestyle", "pydevtool", "rich-click", "ruff", "types-psutil", "typing_extensions"] +doc = ["jupytext", "matplotlib (>2)", "myst-nb", "numpydoc", "pooch", "pydata-sphinx-theme (==0.9.0)", "sphinx (!=4.1.0)", "sphinx-design (>=0.2.0)"] +test = ["asv", "gmpy2", "hypothesis", "mpmath", "pooch", "pytest", "pytest-cov", "pytest-timeout", "pytest-xdist", "scikit-umfpack", "threadpoolctl"] + +[[package]] +name = "seaborn" +version = "0.11.2" +description = "seaborn: statistical data visualization" +optional = false +python-versions = ">=3.6" +files = [ + {file = "seaborn-0.11.2-py3-none-any.whl", hash = "sha256:85a6baa9b55f81a0623abddc4a26b334653ff4c6b18c418361de19dbba0ef283"}, + {file = "seaborn-0.11.2.tar.gz", hash = "sha256:cf45e9286d40826864be0e3c066f98536982baf701a7caa386511792d61ff4f6"}, +] + +[package.dependencies] +matplotlib = ">=2.2" +numpy = ">=1.15" +pandas = ">=0.23" +scipy = ">=1.0" + +[[package]] +name = "send2trash" +version = "1.8.2" +description = "Send file to trash natively under Mac OS X, Windows and Linux" +optional = false +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7" +files = [ + {file = "Send2Trash-1.8.2-py3-none-any.whl", hash = "sha256:a384719d99c07ce1eefd6905d2decb6f8b7ed054025bb0e618919f945de4f679"}, + {file = "Send2Trash-1.8.2.tar.gz", hash = "sha256:c132d59fa44b9ca2b1699af5c86f57ce9f4c5eb56629d5d55fbb7a35f84e2312"}, +] + +[package.extras] +nativelib = ["pyobjc-framework-Cocoa", "pywin32"] +objc = ["pyobjc-framework-Cocoa"] +win32 = ["pywin32"] + +[[package]] +name = "setuptools" +version = "69.1.0" +description = "Easily download, build, install, upgrade, and uninstall Python packages" +optional = false +python-versions = ">=3.8" +files = [ + {file = "setuptools-69.1.0-py3-none-any.whl", hash = "sha256:c054629b81b946d63a9c6e732bc8b2513a7c3ea645f11d0139a2191d735c60c6"}, + {file = "setuptools-69.1.0.tar.gz", hash = "sha256:850894c4195f09c4ed30dba56213bf7c3f21d86ed6bdaafb5df5972593bfc401"}, +] + +[package.extras] +docs = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "pygments-github-lexers (==0.0.5)", "rst.linker (>=1.9)", "sphinx (<7.2.5)", "sphinx (>=3.5)", "sphinx-favicon", "sphinx-inline-tabs", "sphinx-lint", "sphinx-notfound-page (>=1,<2)", "sphinx-reredirects", "sphinxcontrib-towncrier"] +testing = ["build[virtualenv]", "filelock (>=3.4.0)", "flake8-2020", "ini2toml[lite] (>=0.9)", "jaraco.develop (>=7.21)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "pip (>=19.1)", "pytest (>=6)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-home (>=0.5)", "pytest-mypy (>=0.9.1)", "pytest-perf", "pytest-ruff (>=0.2.1)", "pytest-timeout", "pytest-xdist", "tomli-w (>=1.0.0)", "virtualenv (>=13.0.0)", "wheel"] +testing-integration = ["build[virtualenv] (>=1.0.3)", "filelock (>=3.4.0)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "packaging (>=23.1)", "pytest", "pytest-enabler", "pytest-xdist", "tomli", "virtualenv (>=13.0.0)", "wheel"] + +[[package]] +name = "six" +version = "1.16.0" +description = "Python 2 and 3 compatibility utilities" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*" +files = [ + {file = "six-1.16.0-py2.py3-none-any.whl", hash = "sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254"}, + {file = "six-1.16.0.tar.gz", hash = "sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926"}, +] + +[[package]] +name = "sniffio" +version = "1.3.0" +description = "Sniff out which async library your code is running under" +optional = false +python-versions = ">=3.7" +files = [ + {file = "sniffio-1.3.0-py3-none-any.whl", hash = "sha256:eecefdce1e5bbfb7ad2eeaabf7c1eeb404d7757c379bd1f7e5cce9d8bf425384"}, + {file = "sniffio-1.3.0.tar.gz", hash = "sha256:e60305c5e5d314f5389259b7f22aaa33d8f7dee49763119234af3755c55b9101"}, +] + +[[package]] +name = "snowballstemmer" +version = "2.2.0" +description = "This package provides 29 stemmers for 28 languages generated from Snowball algorithms." +optional = false +python-versions = "*" +files = [ + {file = "snowballstemmer-2.2.0-py2.py3-none-any.whl", hash = "sha256:c8e1716e83cc398ae16824e5572ae04e0d9fc2c6b985fb0f900f5f0c96ecba1a"}, + {file = "snowballstemmer-2.2.0.tar.gz", hash = "sha256:09b16deb8547d3412ad7b590689584cd0fe25ec8db3be37788be3810cbf19cb1"}, +] + +[[package]] +name = "soupsieve" +version = "2.5" +description = "A modern CSS selector implementation for Beautiful Soup." +optional = false +python-versions = ">=3.8" +files = [ + {file = "soupsieve-2.5-py3-none-any.whl", hash = "sha256:eaa337ff55a1579b6549dc679565eac1e3d000563bcb1c8ab0d0fefbc0c2cdc7"}, + {file = "soupsieve-2.5.tar.gz", hash = "sha256:5663d5a7b3bfaeee0bc4372e7fc48f9cff4940b3eec54a6451cc5299f1097690"}, +] + +[[package]] +name = "sphinx" +version = "6.2.1" +description = "Python documentation generator" +optional = false +python-versions = ">=3.8" +files = [ + {file = "Sphinx-6.2.1.tar.gz", hash = "sha256:6d56a34697bb749ffa0152feafc4b19836c755d90a7c59b72bc7dfd371b9cc6b"}, + {file = "sphinx-6.2.1-py3-none-any.whl", hash = "sha256:97787ff1fa3256a3eef9eda523a63dbf299f7b47e053cfcf684a1c2a8380c912"}, +] + +[package.dependencies] +alabaster = ">=0.7,<0.8" +babel = ">=2.9" +colorama = {version = ">=0.4.5", markers = "sys_platform == \"win32\""} +docutils = ">=0.18.1,<0.20" +imagesize = ">=1.3" +Jinja2 = ">=3.0" +packaging = ">=21.0" +Pygments = ">=2.13" +requests = ">=2.25.0" +snowballstemmer = ">=2.0" +sphinxcontrib-applehelp = "*" +sphinxcontrib-devhelp = "*" +sphinxcontrib-htmlhelp = ">=2.0.0" +sphinxcontrib-jsmath = "*" +sphinxcontrib-qthelp = "*" +sphinxcontrib-serializinghtml = ">=1.1.5" + +[package.extras] +docs = ["sphinxcontrib-websupport"] +lint = ["docutils-stubs", "flake8 (>=3.5.0)", "flake8-simplify", "isort", "mypy (>=0.990)", "ruff", "sphinx-lint", "types-requests"] +test = ["cython", "filelock", "html5lib", "pytest (>=4.6)"] + +[[package]] +name = "sphinx-autodoc-annotation" +version = "1.0-1" +description = "Use Python 3 annotations in sphinx-enabled docstrings" +optional = false +python-versions = "*" +files = [ + {file = "sphinx-autodoc-annotation-1.0-1.tar.gz", hash = "sha256:4a3d03081efe1e5f2bc9b9d00746550f45b9f543b0c79519c523168ca7f7d89a"}, +] + +[package.dependencies] +sphinx = ">=1.1" + +[[package]] +name = "sphinx-autodoc-typehints" +version = "1.23.0" +description = "Type hints (PEP 484) support for the Sphinx autodoc extension" +optional = false +python-versions = ">=3.7" +files = [ + {file = "sphinx_autodoc_typehints-1.23.0-py3-none-any.whl", hash = "sha256:ac099057e66b09e51b698058ba7dd76e57e1fe696cd91b54e121d3dad188f91d"}, + {file = "sphinx_autodoc_typehints-1.23.0.tar.gz", hash = "sha256:5d44e2996633cdada499b6d27a496ddf9dbc95dd1f0f09f7b37940249e61f6e9"}, +] + +[package.dependencies] +sphinx = ">=5.3" + +[package.extras] +docs = ["furo (>=2022.12.7)", "sphinx (>=6.1.3)", "sphinx-autodoc-typehints (>=1.23.4)"] +testing = ["covdefaults (>=2.2.2)", "coverage (>=7.2.2)", "diff-cover (>=7.5)", "nptyping (>=2.5)", "pytest (>=7.2.2)", "pytest-cov (>=4)", "sphobjinv (>=2.3.1)", "typing-extensions (>=4.5)"] +type-comment = ["typed-ast (>=1.5.4)"] + +[[package]] +name = "sphinx-rtd-theme" +version = "0.5.1" +description = "Read the Docs theme for Sphinx" +optional = false +python-versions = "*" +files = [ + {file = "sphinx_rtd_theme-0.5.1-py2.py3-none-any.whl", hash = "sha256:fa6bebd5ab9a73da8e102509a86f3fcc36dec04a0b52ea80e5a033b2aba00113"}, + {file = "sphinx_rtd_theme-0.5.1.tar.gz", hash = "sha256:eda689eda0c7301a80cf122dad28b1861e5605cbf455558f3775e1e8200e83a5"}, +] + +[package.dependencies] +sphinx = "*" + +[package.extras] +dev = ["bump2version", "sphinxcontrib-httpdomain", "transifex-client"] + +[[package]] +name = "sphinxcontrib-applehelp" +version = "1.0.8" +description = "sphinxcontrib-applehelp is a Sphinx extension which outputs Apple help books" +optional = false +python-versions = ">=3.9" +files = [ + {file = "sphinxcontrib_applehelp-1.0.8-py3-none-any.whl", hash = "sha256:cb61eb0ec1b61f349e5cc36b2028e9e7ca765be05e49641c97241274753067b4"}, + {file = "sphinxcontrib_applehelp-1.0.8.tar.gz", hash = "sha256:c40a4f96f3776c4393d933412053962fac2b84f4c99a7982ba42e09576a70619"}, +] + +[package.extras] +lint = ["docutils-stubs", "flake8", "mypy"] +standalone = ["Sphinx (>=5)"] +test = ["pytest"] + +[[package]] +name = "sphinxcontrib-devhelp" +version = "1.0.6" +description = "sphinxcontrib-devhelp is a sphinx extension which outputs Devhelp documents" +optional = false +python-versions = ">=3.9" +files = [ + {file = "sphinxcontrib_devhelp-1.0.6-py3-none-any.whl", hash = "sha256:6485d09629944511c893fa11355bda18b742b83a2b181f9a009f7e500595c90f"}, + {file = "sphinxcontrib_devhelp-1.0.6.tar.gz", hash = "sha256:9893fd3f90506bc4b97bdb977ceb8fbd823989f4316b28c3841ec128544372d3"}, +] + +[package.extras] +lint = ["docutils-stubs", "flake8", "mypy"] +standalone = ["Sphinx (>=5)"] +test = ["pytest"] + +[[package]] +name = "sphinxcontrib-htmlhelp" +version = "2.0.5" +description = "sphinxcontrib-htmlhelp is a sphinx extension which renders HTML help files" +optional = false +python-versions = ">=3.9" +files = [ + {file = "sphinxcontrib_htmlhelp-2.0.5-py3-none-any.whl", hash = "sha256:393f04f112b4d2f53d93448d4bce35842f62b307ccdc549ec1585e950bc35e04"}, + {file = "sphinxcontrib_htmlhelp-2.0.5.tar.gz", hash = "sha256:0dc87637d5de53dd5eec3a6a01753b1ccf99494bd756aafecd74b4fa9e729015"}, +] + +[package.extras] +lint = ["docutils-stubs", "flake8", "mypy"] +standalone = ["Sphinx (>=5)"] +test = ["html5lib", "pytest"] + +[[package]] +name = "sphinxcontrib-jsmath" +version = "1.0.1" +description = "A sphinx extension which renders display math in HTML via JavaScript" +optional = false +python-versions = ">=3.5" +files = [ + {file = "sphinxcontrib-jsmath-1.0.1.tar.gz", hash = "sha256:a9925e4a4587247ed2191a22df5f6970656cb8ca2bd6284309578f2153e0c4b8"}, + {file = "sphinxcontrib_jsmath-1.0.1-py2.py3-none-any.whl", hash = "sha256:2ec2eaebfb78f3f2078e73666b1415417a116cc848b72e5172e596c871103178"}, +] + +[package.extras] +test = ["flake8", "mypy", "pytest"] + +[[package]] +name = "sphinxcontrib-qthelp" +version = "1.0.7" +description = "sphinxcontrib-qthelp is a sphinx extension which outputs QtHelp documents" +optional = false +python-versions = ">=3.9" +files = [ + {file = "sphinxcontrib_qthelp-1.0.7-py3-none-any.whl", hash = "sha256:e2ae3b5c492d58fcbd73281fbd27e34b8393ec34a073c792642cd8e529288182"}, + {file = "sphinxcontrib_qthelp-1.0.7.tar.gz", hash = "sha256:053dedc38823a80a7209a80860b16b722e9e0209e32fea98c90e4e6624588ed6"}, +] + +[package.extras] +lint = ["docutils-stubs", "flake8", "mypy"] +standalone = ["Sphinx (>=5)"] +test = ["pytest"] + +[[package]] +name = "sphinxcontrib-serializinghtml" +version = "1.1.10" +description = "sphinxcontrib-serializinghtml is a sphinx extension which outputs \"serialized\" HTML files (json and pickle)" +optional = false +python-versions = ">=3.9" +files = [ + {file = "sphinxcontrib_serializinghtml-1.1.10-py3-none-any.whl", hash = "sha256:326369b8df80a7d2d8d7f99aa5ac577f51ea51556ed974e7716cfd4fca3f6cb7"}, + {file = "sphinxcontrib_serializinghtml-1.1.10.tar.gz", hash = "sha256:93f3f5dc458b91b192fe10c397e324f262cf163d79f3282c158e8436a2c4511f"}, +] + +[package.extras] +lint = ["docutils-stubs", "flake8", "mypy"] +standalone = ["Sphinx (>=5)"] +test = ["pytest"] + +[[package]] +name = "stack-data" +version = "0.6.3" +description = "Extract data from python stack frames and tracebacks for informative displays" +optional = false +python-versions = "*" +files = [ + {file = "stack_data-0.6.3-py3-none-any.whl", hash = "sha256:d5558e0c25a4cb0853cddad3d77da9891a08cb85dd9f9f91b9f8cd66e511e695"}, + {file = "stack_data-0.6.3.tar.gz", hash = "sha256:836a778de4fec4dcd1dcd89ed8abff8a221f58308462e1c4aa2a3cf30148f0b9"}, +] + +[package.dependencies] +asttokens = ">=2.1.0" +executing = ">=1.2.0" +pure-eval = "*" + +[package.extras] +tests = ["cython", "littleutils", "pygments", "pytest", "typeguard"] + +[[package]] +name = "sympy" +version = "1.12" +description = "Computer algebra system (CAS) in Python" +optional = false +python-versions = ">=3.8" +files = [ + {file = "sympy-1.12-py3-none-any.whl", hash = "sha256:c3588cd4295d0c0f603d0f2ae780587e64e2efeedb3521e46b9bb1d08d184fa5"}, + {file = "sympy-1.12.tar.gz", hash = "sha256:ebf595c8dac3e0fdc4152c51878b498396ec7f30e7a914d6071e674d49420fb8"}, +] + +[package.dependencies] +mpmath = ">=0.19" + +[[package]] +name = "terminado" +version = "0.18.0" +description = "Tornado websocket backend for the Xterm.js Javascript terminal emulator library." +optional = false +python-versions = ">=3.8" +files = [ + {file = "terminado-0.18.0-py3-none-any.whl", hash = "sha256:87b0d96642d0fe5f5abd7783857b9cab167f221a39ff98e3b9619a788a3c0f2e"}, + {file = "terminado-0.18.0.tar.gz", hash = "sha256:1ea08a89b835dd1b8c0c900d92848147cef2537243361b2e3f4dc15df9b6fded"}, +] + +[package.dependencies] +ptyprocess = {version = "*", markers = "os_name != \"nt\""} +pywinpty = {version = ">=1.1.0", markers = "os_name == \"nt\""} +tornado = ">=6.1.0" + +[package.extras] +docs = ["myst-parser", "pydata-sphinx-theme", "sphinx"] +test = ["pre-commit", "pytest (>=7.0)", "pytest-timeout"] +typing = ["mypy (>=1.6,<2.0)", "traitlets (>=5.11.1)"] + +[[package]] +name = "tinycss2" +version = "1.2.1" +description = "A tiny CSS parser" +optional = false +python-versions = ">=3.7" +files = [ + {file = "tinycss2-1.2.1-py3-none-any.whl", hash = "sha256:2b80a96d41e7c3914b8cda8bc7f705a4d9c49275616e886103dd839dfc847847"}, + {file = "tinycss2-1.2.1.tar.gz", hash = "sha256:8cff3a8f066c2ec677c06dbc7b45619804a6938478d9d73c284b29d14ecb0627"}, +] + +[package.dependencies] +webencodings = ">=0.4" + +[package.extras] +doc = ["sphinx", "sphinx_rtd_theme"] +test = ["flake8", "isort", "pytest"] + +[[package]] +name = "tomli" +version = "2.0.1" +description = "A lil' TOML parser" +optional = false +python-versions = ">=3.7" +files = [ + {file = "tomli-2.0.1-py3-none-any.whl", hash = "sha256:939de3e7a6161af0c887ef91b7d41a53e7c5a1ca976325f429cb46ea9bc30ecc"}, + {file = "tomli-2.0.1.tar.gz", hash = "sha256:de526c12914f0c550d15924c62d72abc48d6fe7364aa87328337a31007fe8a4f"}, +] + +[[package]] +name = "tomopt_sphinx_theme" +version = "0.0.24" +description = "PyTorch Sphinx Theme" +optional = false +python-versions = "*" +files = [] +develop = false + +[package.dependencies] +sphinx = "*" + +[package.source] +type = "git" +url = "https://github.com/GilesStrong/tomopt_sphinx_theme.git" +reference = "HEAD" +resolved_reference = "1add09f655d64ef28ece5d64e90610adc73d78e3" + +[[package]] +name = "torch" +version = "2.2.0" +description = "Tensors and Dynamic neural networks in Python with strong GPU acceleration" +optional = false +python-versions = ">=3.8.0" +files = [ + {file = "torch-2.2.0-cp310-cp310-manylinux1_x86_64.whl", hash = "sha256:d366158d6503a3447e67f8c0ad1328d54e6c181d88572d688a625fac61b13a97"}, + {file = "torch-2.2.0-cp310-cp310-manylinux2014_aarch64.whl", hash = "sha256:707f2f80402981e9f90d0038d7d481678586251e6642a7a6ef67fc93511cb446"}, + {file = "torch-2.2.0-cp310-cp310-win_amd64.whl", hash = "sha256:15c8f0a105c66b28496092fca1520346082e734095f8eaf47b5786bac24b8a31"}, + {file = "torch-2.2.0-cp310-none-macosx_10_9_x86_64.whl", hash = "sha256:0ca4df4b728515ad009b79f5107b00bcb2c63dc202d991412b9eb3b6a4f24349"}, + {file = "torch-2.2.0-cp310-none-macosx_11_0_arm64.whl", hash = "sha256:3d3eea2d5969b9a1c9401429ca79efc668120314d443d3463edc3289d7f003c7"}, + {file = "torch-2.2.0-cp311-cp311-manylinux1_x86_64.whl", hash = "sha256:0d1c580e379c0d48f0f0a08ea28d8e373295aa254de4f9ad0631f9ed8bc04c24"}, + {file = "torch-2.2.0-cp311-cp311-manylinux2014_aarch64.whl", hash = "sha256:9328e3c1ce628a281d2707526b4d1080eae7c4afab4f81cea75bde1f9441dc78"}, + {file = "torch-2.2.0-cp311-cp311-win_amd64.whl", hash = "sha256:03c8e660907ac1b8ee07f6d929c4e15cd95be2fb764368799cca02c725a212b8"}, + {file = "torch-2.2.0-cp311-none-macosx_10_9_x86_64.whl", hash = "sha256:da0cefe7f84ece3e3b56c11c773b59d1cb2c0fd83ddf6b5f7f1fd1a987b15c3e"}, + {file = "torch-2.2.0-cp311-none-macosx_11_0_arm64.whl", hash = "sha256:f81d23227034221a4a4ff8ef24cc6cec7901edd98d9e64e32822778ff01be85e"}, + {file = "torch-2.2.0-cp312-cp312-manylinux1_x86_64.whl", hash = "sha256:dcbfb2192ac41ca93c756ebe9e2af29df0a4c14ee0e7a0dd78f82c67a63d91d4"}, + {file = "torch-2.2.0-cp312-cp312-manylinux2014_aarch64.whl", hash = "sha256:9eeb42971619e24392c9088b5b6d387d896e267889d41d267b1fec334f5227c5"}, + {file = "torch-2.2.0-cp312-cp312-win_amd64.whl", hash = "sha256:c718b2ca69a6cac28baa36d86d8c0ec708b102cebd1ceb1b6488e404cd9be1d1"}, + {file = "torch-2.2.0-cp312-none-macosx_10_9_x86_64.whl", hash = "sha256:f11d18fceb4f9ecb1ac680dde7c463c120ed29056225d75469c19637e9f98d12"}, + {file = "torch-2.2.0-cp312-none-macosx_11_0_arm64.whl", hash = "sha256:ee1da852bfd4a7e674135a446d6074c2da7194c1b08549e31eae0b3138c6b4d2"}, + {file = "torch-2.2.0-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:0d819399819d0862268ac531cf12a501c253007df4f9e6709ede8a0148f1a7b8"}, + {file = "torch-2.2.0-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:08f53ccc38c49d839bc703ea1b20769cc8a429e0c4b20b56921a9f64949bf325"}, + {file = "torch-2.2.0-cp38-cp38-win_amd64.whl", hash = "sha256:93bffe3779965a71dab25fc29787538c37c5d54298fd2f2369e372b6fb137d41"}, + {file = "torch-2.2.0-cp38-none-macosx_10_9_x86_64.whl", hash = "sha256:c17ec323da778efe8dad49d8fb534381479ca37af1bfc58efdbb8607a9d263a3"}, + {file = "torch-2.2.0-cp38-none-macosx_11_0_arm64.whl", hash = "sha256:c02685118008834e878f676f81eab3a952b7936fa31f474ef8a5ff4b5c78b36d"}, + {file = "torch-2.2.0-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:d9f39d6f53cec240a0e3baa82cb697593340f9d4554cee6d3d6ca07925c2fac0"}, + {file = "torch-2.2.0-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:51770c065206250dc1222ea7c0eff3f88ab317d3e931cca2aee461b85fbc2472"}, + {file = "torch-2.2.0-cp39-cp39-win_amd64.whl", hash = "sha256:008e4c6ad703de55af760c73bf937ecdd61a109f9b08f2bbb9c17e7c7017f194"}, + {file = "torch-2.2.0-cp39-none-macosx_10_9_x86_64.whl", hash = "sha256:de8680472dd14e316f42ceef2a18a301461a9058cd6e99a1f1b20f78f11412f1"}, + {file = "torch-2.2.0-cp39-none-macosx_11_0_arm64.whl", hash = "sha256:99e1dcecb488e3fd25bcaac56e48cdb3539842904bdc8588b0b255fde03a254c"}, +] + +[package.dependencies] +filelock = "*" +fsspec = "*" +jinja2 = "*" +networkx = "*" +nvidia-cublas-cu12 = {version = "12.1.3.1", markers = "platform_system == \"Linux\" and platform_machine == \"x86_64\""} +nvidia-cuda-cupti-cu12 = {version = "12.1.105", markers = "platform_system == \"Linux\" and platform_machine == \"x86_64\""} +nvidia-cuda-nvrtc-cu12 = {version = "12.1.105", markers = "platform_system == \"Linux\" and platform_machine == \"x86_64\""} +nvidia-cuda-runtime-cu12 = {version = "12.1.105", markers = "platform_system == \"Linux\" and platform_machine == \"x86_64\""} +nvidia-cudnn-cu12 = {version = "8.9.2.26", markers = "platform_system == \"Linux\" and platform_machine == \"x86_64\""} +nvidia-cufft-cu12 = {version = "11.0.2.54", markers = "platform_system == \"Linux\" and platform_machine == \"x86_64\""} +nvidia-curand-cu12 = {version = "10.3.2.106", markers = "platform_system == \"Linux\" and platform_machine == \"x86_64\""} +nvidia-cusolver-cu12 = {version = "11.4.5.107", markers = "platform_system == \"Linux\" and platform_machine == \"x86_64\""} +nvidia-cusparse-cu12 = {version = "12.1.0.106", markers = "platform_system == \"Linux\" and platform_machine == \"x86_64\""} +nvidia-nccl-cu12 = {version = "2.19.3", markers = "platform_system == \"Linux\" and platform_machine == \"x86_64\""} +nvidia-nvtx-cu12 = {version = "12.1.105", markers = "platform_system == \"Linux\" and platform_machine == \"x86_64\""} +sympy = "*" +triton = {version = "2.2.0", markers = "platform_system == \"Linux\" and platform_machine == \"x86_64\""} +typing-extensions = ">=4.8.0" + +[package.extras] +opt-einsum = ["opt-einsum (>=3.3)"] +optree = ["optree (>=0.9.1)"] + +[[package]] +name = "tornado" +version = "6.4" +description = "Tornado is a Python web framework and asynchronous networking library, originally developed at FriendFeed." +optional = false +python-versions = ">= 3.8" +files = [ + {file = "tornado-6.4-cp38-abi3-macosx_10_9_universal2.whl", hash = "sha256:02ccefc7d8211e5a7f9e8bc3f9e5b0ad6262ba2fbb683a6443ecc804e5224ce0"}, + {file = "tornado-6.4-cp38-abi3-macosx_10_9_x86_64.whl", hash = "sha256:27787de946a9cffd63ce5814c33f734c627a87072ec7eed71f7fc4417bb16263"}, + {file = "tornado-6.4-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f7894c581ecdcf91666a0912f18ce5e757213999e183ebfc2c3fdbf4d5bd764e"}, + {file = "tornado-6.4-cp38-abi3-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e43bc2e5370a6a8e413e1e1cd0c91bedc5bd62a74a532371042a18ef19e10579"}, + {file = "tornado-6.4-cp38-abi3-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f0251554cdd50b4b44362f73ad5ba7126fc5b2c2895cc62b14a1c2d7ea32f212"}, + {file = "tornado-6.4-cp38-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:fd03192e287fbd0899dd8f81c6fb9cbbc69194d2074b38f384cb6fa72b80e9c2"}, + {file = "tornado-6.4-cp38-abi3-musllinux_1_1_i686.whl", hash = "sha256:88b84956273fbd73420e6d4b8d5ccbe913c65d31351b4c004ae362eba06e1f78"}, + {file = "tornado-6.4-cp38-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:71ddfc23a0e03ef2df1c1397d859868d158c8276a0603b96cf86892bff58149f"}, + {file = "tornado-6.4-cp38-abi3-win32.whl", hash = "sha256:6f8a6c77900f5ae93d8b4ae1196472d0ccc2775cc1dfdc9e7727889145c45052"}, + {file = "tornado-6.4-cp38-abi3-win_amd64.whl", hash = "sha256:10aeaa8006333433da48dec9fe417877f8bcc21f48dda8d661ae79da357b2a63"}, + {file = "tornado-6.4.tar.gz", hash = "sha256:72291fa6e6bc84e626589f1c29d90a5a6d593ef5ae68052ee2ef000dfd273dee"}, +] + +[[package]] +name = "traitlets" +version = "5.14.1" +description = "Traitlets Python configuration system" +optional = false +python-versions = ">=3.8" +files = [ + {file = "traitlets-5.14.1-py3-none-any.whl", hash = "sha256:2e5a030e6eff91737c643231bfcf04a65b0132078dad75e4936700b213652e74"}, + {file = "traitlets-5.14.1.tar.gz", hash = "sha256:8585105b371a04b8316a43d5ce29c098575c2e477850b62b848b964f1444527e"}, +] + +[package.extras] +docs = ["myst-parser", "pydata-sphinx-theme", "sphinx"] +test = ["argcomplete (>=3.0.3)", "mypy (>=1.7.0)", "pre-commit", "pytest (>=7.0,<7.5)", "pytest-mock", "pytest-mypy-testing"] + +[[package]] +name = "triton" +version = "2.2.0" +description = "A language and compiler for custom Deep Learning operations" +optional = false +python-versions = "*" +files = [ + {file = "triton-2.2.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a2294514340cfe4e8f4f9e5c66c702744c4a117d25e618bd08469d0bfed1e2e5"}, + {file = "triton-2.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:da58a152bddb62cafa9a857dd2bc1f886dbf9f9c90a2b5da82157cd2b34392b0"}, + {file = "triton-2.2.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0af58716e721460a61886668b205963dc4d1e4ac20508cc3f623aef0d70283d5"}, + {file = "triton-2.2.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e8fe46d3ab94a8103e291bd44c741cc294b91d1d81c1a2888254cbf7ff846dab"}, + {file = "triton-2.2.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b8ce26093e539d727e7cf6f6f0d932b1ab0574dc02567e684377630d86723ace"}, + {file = "triton-2.2.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:227cc6f357c5efcb357f3867ac2a8e7ecea2298cd4606a8ba1e931d1d5a947df"}, +] + +[package.dependencies] +filelock = "*" + +[package.extras] +build = ["cmake (>=3.20)", "lit"] +tests = ["autopep8", "flake8", "isort", "numpy", "pytest", "scipy (>=1.7.1)", "torch"] +tutorials = ["matplotlib", "pandas", "tabulate", "torch"] + +[[package]] +name = "types-python-dateutil" +version = "2.8.19.20240106" +description = "Typing stubs for python-dateutil" +optional = false +python-versions = ">=3.8" +files = [ + {file = "types-python-dateutil-2.8.19.20240106.tar.gz", hash = "sha256:1f8db221c3b98e6ca02ea83a58371b22c374f42ae5bbdf186db9c9a76581459f"}, + {file = "types_python_dateutil-2.8.19.20240106-py3-none-any.whl", hash = "sha256:efbbdc54590d0f16152fa103c9879c7d4a00e82078f6e2cf01769042165acaa2"}, +] + +[[package]] +name = "typing-extensions" +version = "4.9.0" +description = "Backported and Experimental Type Hints for Python 3.8+" +optional = false +python-versions = ">=3.8" +files = [ + {file = "typing_extensions-4.9.0-py3-none-any.whl", hash = "sha256:af72aea155e91adfc61c3ae9e0e342dbc0cba726d6cba4b6c72c1f34e47291cd"}, + {file = "typing_extensions-4.9.0.tar.gz", hash = "sha256:23478f88c37f27d76ac8aee6c905017a143b0b1b886c3c9f66bc2fd94f9f5783"}, +] + +[[package]] +name = "uri-template" +version = "1.3.0" +description = "RFC 6570 URI Template Processor" +optional = false +python-versions = ">=3.7" +files = [ + {file = "uri-template-1.3.0.tar.gz", hash = "sha256:0e00f8eb65e18c7de20d595a14336e9f337ead580c70934141624b6d1ffdacc7"}, + {file = "uri_template-1.3.0-py3-none-any.whl", hash = "sha256:a44a133ea12d44a0c0f06d7d42a52d71282e77e2f937d8abd5655b8d56fc1363"}, +] + +[package.extras] +dev = ["flake8", "flake8-annotations", "flake8-bandit", "flake8-bugbear", "flake8-commas", "flake8-comprehensions", "flake8-continuation", "flake8-datetimez", "flake8-docstrings", "flake8-import-order", "flake8-literal", "flake8-modern-annotations", "flake8-noqa", "flake8-pyproject", "flake8-requirements", "flake8-typechecking-import", "flake8-use-fstring", "mypy", "pep8-naming", "types-PyYAML"] + +[[package]] +name = "urllib3" +version = "2.2.0" +description = "HTTP library with thread-safe connection pooling, file post, and more." +optional = false +python-versions = ">=3.8" +files = [ + {file = "urllib3-2.2.0-py3-none-any.whl", hash = "sha256:ce3711610ddce217e6d113a2732fafad960a03fd0318c91faa79481e35c11224"}, + {file = "urllib3-2.2.0.tar.gz", hash = "sha256:051d961ad0c62a94e50ecf1af379c3aba230c66c710493493560c0c223c49f20"}, +] + +[package.extras] +brotli = ["brotli (>=1.0.9)", "brotlicffi (>=0.8.0)"] +h2 = ["h2 (>=4,<5)"] +socks = ["pysocks (>=1.5.6,!=1.5.7,<2.0)"] +zstd = ["zstandard (>=0.18.0)"] + +[[package]] +name = "virtualenv" +version = "20.25.0" +description = "Virtual Python Environment builder" +optional = false +python-versions = ">=3.7" +files = [ + {file = "virtualenv-20.25.0-py3-none-any.whl", hash = "sha256:4238949c5ffe6876362d9c0180fc6c3a824a7b12b80604eeb8085f2ed7460de3"}, + {file = "virtualenv-20.25.0.tar.gz", hash = "sha256:bf51c0d9c7dd63ea8e44086fa1e4fb1093a31e963b86959257378aef020e1f1b"}, +] + +[package.dependencies] +distlib = ">=0.3.7,<1" +filelock = ">=3.12.2,<4" +platformdirs = ">=3.9.1,<5" + +[package.extras] +docs = ["furo (>=2023.7.26)", "proselint (>=0.13)", "sphinx (>=7.1.2)", "sphinx-argparse (>=0.4)", "sphinxcontrib-towncrier (>=0.2.1a0)", "towncrier (>=23.6)"] +test = ["covdefaults (>=2.3)", "coverage (>=7.2.7)", "coverage-enable-subprocess (>=1)", "flaky (>=3.7)", "packaging (>=23.1)", "pytest (>=7.4)", "pytest-env (>=0.8.2)", "pytest-freezer (>=0.4.8)", "pytest-mock (>=3.11.1)", "pytest-randomly (>=3.12)", "pytest-timeout (>=2.1)", "setuptools (>=68)", "time-machine (>=2.10)"] + +[[package]] +name = "wcwidth" +version = "0.2.13" +description = "Measures the displayed width of unicode strings in a terminal" +optional = false +python-versions = "*" +files = [ + {file = "wcwidth-0.2.13-py2.py3-none-any.whl", hash = "sha256:3da69048e4540d84af32131829ff948f1e022c1c6bdb8d6102117aac784f6859"}, + {file = "wcwidth-0.2.13.tar.gz", hash = "sha256:72ea0c06399eb286d978fdedb6923a9eb47e1c486ce63e9b4e64fc18303972b5"}, +] + +[[package]] +name = "webcolors" +version = "1.13" +description = "A library for working with the color formats defined by HTML and CSS." +optional = false +python-versions = ">=3.7" +files = [ + {file = "webcolors-1.13-py3-none-any.whl", hash = "sha256:29bc7e8752c0a1bd4a1f03c14d6e6a72e93d82193738fa860cbff59d0fcc11bf"}, + {file = "webcolors-1.13.tar.gz", hash = "sha256:c225b674c83fa923be93d235330ce0300373d02885cef23238813b0d5668304a"}, +] + +[package.extras] +docs = ["furo", "sphinx", "sphinx-copybutton", "sphinx-inline-tabs", "sphinx-notfound-page", "sphinxext-opengraph"] +tests = ["pytest", "pytest-cov"] + +[[package]] +name = "webencodings" +version = "0.5.1" +description = "Character encoding aliases for legacy web content" +optional = false +python-versions = "*" +files = [ + {file = "webencodings-0.5.1-py2.py3-none-any.whl", hash = "sha256:a0af1213f3c2226497a97e2b3aa01a7e4bee4f403f95be16fc9acd2947514a78"}, + {file = "webencodings-0.5.1.tar.gz", hash = "sha256:b36a1c245f2d304965eb4e0a82848379241dc04b865afcc4aab16748587e1923"}, +] + +[[package]] +name = "websocket-client" +version = "1.7.0" +description = "WebSocket client for Python with low level API options" +optional = false +python-versions = ">=3.8" +files = [ + {file = "websocket-client-1.7.0.tar.gz", hash = "sha256:10e511ea3a8c744631d3bd77e61eb17ed09304c413ad42cf6ddfa4c7787e8fe6"}, + {file = "websocket_client-1.7.0-py3-none-any.whl", hash = "sha256:f4c3d22fec12a2461427a29957ff07d35098ee2d976d3ba244e688b8b4057588"}, +] + +[package.extras] +docs = ["Sphinx (>=6.0)", "sphinx-rtd-theme (>=1.1.0)"] +optional = ["python-socks", "wsaccel"] +test = ["websockets"] + +[[package]] +name = "widgetsnbextension" +version = "4.0.10" +description = "Jupyter interactive widgets for Jupyter Notebook" +optional = false +python-versions = ">=3.7" +files = [ + {file = "widgetsnbextension-4.0.10-py3-none-any.whl", hash = "sha256:d37c3724ec32d8c48400a435ecfa7d3e259995201fbefa37163124a9fcb393cc"}, + {file = "widgetsnbextension-4.0.10.tar.gz", hash = "sha256:64196c5ff3b9a9183a8e699a4227fb0b7002f252c814098e66c4d1cd0644688f"}, +] + +[metadata] +lock-version = "2.0" +python-versions = "^3.10" +content-hash = "f23fa063d4f6252dfc56e3cc14d0a316218d0d4c6901f569a69622f5b9432428" diff --git a/pyproject.toml b/pyproject.toml index e12350a0..69ac92aa 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,3 +1,61 @@ +[tool.poetry] +name = "tomopt" +version = "0.1.0" +description = "TomOpt: Differential Muon Tomography Optimisation." +license = "AGPL-3.0-only" +authors = [ + "Giles Strong ", +] +readme = "README.md" +homepage = "https://mode-collaboration.github.io/" +classifiers = [ + "Programming Language :: Python :: 3.10", + "Intended Audience :: Developers", + "Intended Audience :: Science/Research", + "Natural Language :: English", + "Development Status :: 3 - Alpha", +] +documentation = "https://tomopt.readthedocs.io/en/stable" +keywords = ["deep learning", "differential programming", "physics", "science", "statistics", "tomography", "detector"] +include = ["py.typed", "volume/scatter_models/*"] + +[tool.poetry.dependencies] +python = "^3.10" +torch = "^2.2.0" +seaborn = ">=0.11.0,<0.12.0" +matplotlib = ">=3.7.0,<3.8.0" +numpy = "^1.26.4" +fastcore = "1.3.20" +fastprogress = "1.0.0" +pandas = ">=1.2.4,<2.0.0" +particle = "^0.23.1" +prettytable = "^3.9.0" +imageio = "2.16.2" +h5py = "^3.10.0" + + +[tool.poetry.group.dev.dependencies] +notebook = "<7.0.0" +jupyter = "^1.0.0" +ipykernel = "^6.29.2" +pre-commit = "^3.6.1" +flake8 = "^7.0.0" +mypy = "^1.8.0" +pytest-mock = "^3.12.0" +flaky = "^3.7.0" +pytest-lazy-fixture = "^0.6.3" +isort = "^5.13.2" +black = "^24.2.0" +pytest = "<8.0.0" + +[tool.poetry.group.docs.dependencies] +sphinx = "<7.0.0" +sphinx-rtd-theme = "<2.0.0" +sphinx-autodoc-typehints = "<2.0.0" +sphinx-autodoc-annotation = "^1.0.post1" +m2r2 = "^0.3.3.post2" +tomopt_sphinx_theme = { git = "https://github.com/GilesStrong/tomopt_sphinx_theme.git" } + [tool.black] line-length = 160 target-version = ['py38'] diff --git a/requirements.txt b/requirements.txt index 7111389c..1984df87 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,25 +1,1573 @@ -# User requirements -functorch -torch>=1.10.0,<2.0.0 # pt 2 hasn't been fully tested yet -seaborn ~= 0.11.0 -matplotlib >= 3.1 -numpy >=1.20.2 -fastcore == 1.3.20 # Locked since package changes often without warning -fastprogress == 1.0.0 # Locked since package changes often without warning -pandas >= 1.2.4,<2.0.0 # Upper from seaborn version -ipykernel -particle==0.20.0 # Hardcoded incase muon mass changes -prettytable -imageio==2.16.2 # Recent version introduces breaking change -h5py - -# Dev requirements -pre-commit -black==24.1.1 -flake8 -pytest<8.0.0 -mypy -pytest-mock -flaky -pytest-lazy-fixture -isort \ No newline at end of file +alabaster==0.7.16 ; python_version >= "3.10" and python_version < "4.0" \ + --hash=sha256:75a8b99c28a5dad50dd7f8ccdd447a121ddb3892da9e53d1ca5cca3106d58d65 \ + --hash=sha256:b46733c07dce03ae4e150330b975c75737fa60f0a7c591b6c8bf4928a28e2c92 +anyio==4.2.0 ; python_version >= "3.10" and python_version < "4.0" \ + --hash=sha256:745843b39e829e108e518c489b31dc757de7d2131d53fac32bd8df268227bfee \ + --hash=sha256:e1875bb4b4e2de1669f4bc7869b6d3f54231cdced71605e6e64c9be77e3be50f +appnope==0.1.4 ; python_version >= "3.10" and python_version < "4.0" and platform_system == "Darwin" \ + --hash=sha256:1de3860566df9caf38f01f86f65e0e13e379af54f9e4bee1e66b48f2efffd1ee \ + --hash=sha256:502575ee11cd7a28c0205f379b525beefebab9d161b7c964670864014ed7213c +argon2-cffi-bindings==21.2.0 ; python_version >= "3.10" and python_version < "4.0" \ + --hash=sha256:20ef543a89dee4db46a1a6e206cd015360e5a75822f76df533845c3cbaf72670 \ + --hash=sha256:2c3e3cc67fdb7d82c4718f19b4e7a87123caf8a93fde7e23cf66ac0337d3cb3f \ + --hash=sha256:3b9ef65804859d335dc6b31582cad2c5166f0c3e7975f324d9ffaa34ee7e6583 \ + --hash=sha256:3e385d1c39c520c08b53d63300c3ecc28622f076f4c2b0e6d7e796e9f6502194 \ + --hash=sha256:58ed19212051f49a523abb1dbe954337dc82d947fb6e5a0da60f7c8471a8476c \ + --hash=sha256:5e00316dabdaea0b2dd82d141cc66889ced0cdcbfa599e8b471cf22c620c329a \ + --hash=sha256:603ca0aba86b1349b147cab91ae970c63118a0f30444d4bc80355937c950c082 \ + --hash=sha256:6a22ad9800121b71099d0fb0a65323810a15f2e292f2ba450810a7316e128ee5 \ + --hash=sha256:8cd69c07dd875537a824deec19f978e0f2078fdda07fd5c42ac29668dda5f40f \ + --hash=sha256:93f9bf70084f97245ba10ee36575f0c3f1e7d7724d67d8e5b08e61787c320ed7 \ + --hash=sha256:9524464572e12979364b7d600abf96181d3541da11e23ddf565a32e70bd4dc0d \ + --hash=sha256:b2ef1c30440dbbcba7a5dc3e319408b59676e2e039e2ae11a8775ecf482b192f \ + --hash=sha256:b746dba803a79238e925d9046a63aa26bf86ab2a2fe74ce6b009a1c3f5c8f2ae \ + --hash=sha256:bb89ceffa6c791807d1305ceb77dbfacc5aa499891d2c55661c6459651fc39e3 \ + --hash=sha256:bd46088725ef7f58b5a1ef7ca06647ebaf0eb4baff7d1d0d177c6cc8744abd86 \ + --hash=sha256:ccb949252cb2ab3a08c02024acb77cfb179492d5701c7cbdbfd776124d4d2367 \ + --hash=sha256:d4966ef5848d820776f5f562a7d45fdd70c2f330c961d0d745b784034bd9f48d \ + --hash=sha256:e415e3f62c8d124ee16018e491a009937f8cf7ebf5eb430ffc5de21b900dad93 \ + --hash=sha256:ed2937d286e2ad0cc79a7087d3c272832865f779430e0cc2b4f3718d3159b0cb \ + --hash=sha256:f1152ac548bd5b8bcecfb0b0371f082037e47128653df2e8ba6e914d384f3c3e \ + --hash=sha256:f9f8b450ed0547e3d473fdc8612083fd08dd2120d6ac8f73828df9b7d45bb351 +argon2-cffi==23.1.0 ; python_version >= "3.10" and python_version < "4.0" \ + --hash=sha256:879c3e79a2729ce768ebb7d36d4609e3a78a4ca2ec3a9f12286ca057e3d0db08 \ + --hash=sha256:c670642b78ba29641818ab2e68bd4e6a78ba53b7eff7b4c3815ae16abf91c7ea +arrow==1.3.0 ; python_version >= "3.10" and python_version < "4.0" \ + --hash=sha256:c728b120ebc00eb84e01882a6f5e7927a53960aa990ce7dd2b10f39005a67f80 \ + --hash=sha256:d4540617648cb5f895730f1ad8c82a65f2dad0166f57b75f3ca54759c4d67a85 +asttokens==2.4.1 ; python_version >= "3.10" and python_version < "4.0" \ + --hash=sha256:051ed49c3dcae8913ea7cd08e46a606dba30b79993209636c4875bc1d637bc24 \ + --hash=sha256:b03869718ba9a6eb027e134bfdf69f38a236d681c83c160d510768af11254ba0 +attrs==23.2.0 ; python_version >= "3.10" and python_version < "4.0" \ + --hash=sha256:935dc3b529c262f6cf76e50877d35a4bd3c1de194fd41f47a2b7ae8f19971f30 \ + --hash=sha256:99b87a485a5820b23b879f04c2305b44b951b502fd64be915879d77a7e8fc6f1 +babel==2.14.0 ; python_version >= "3.10" and python_version < "4.0" \ + --hash=sha256:6919867db036398ba21eb5c7a0f6b28ab8cbc3ae7a73a44ebe34ae74a4e7d363 \ + --hash=sha256:efb1a25b7118e67ce3a259bed20545c29cb68be8ad2c784c83689981b7a57287 +beautifulsoup4==4.12.3 ; python_version >= "3.10" and python_version < "4.0" \ + --hash=sha256:74e3d1928edc070d21748185c46e3fb33490f22f52a3addee9aee0f4f7781051 \ + --hash=sha256:b80878c9f40111313e55da8ba20bdba06d8fa3969fc68304167741bbf9e082ed +black==24.2.0 ; python_version >= "3.10" and python_version < "4.0" \ + --hash=sha256:057c3dc602eaa6fdc451069bd027a1b2635028b575a6c3acfd63193ced20d9c8 \ + --hash=sha256:08654d0797e65f2423f850fc8e16a0ce50925f9337fb4a4a176a7aa4026e63f8 \ + --hash=sha256:163baf4ef40e6897a2a9b83890e59141cc8c2a98f2dda5080dc15c00ee1e62cd \ + --hash=sha256:1e08fb9a15c914b81dd734ddd7fb10513016e5ce7e6704bdd5e1251ceee51ac9 \ + --hash=sha256:4dd76e9468d5536abd40ffbc7a247f83b2324f0c050556d9c371c2b9a9a95e31 \ + --hash=sha256:4f9de21bafcba9683853f6c96c2d515e364aee631b178eaa5145fc1c61a3cc92 \ + --hash=sha256:61a0391772490ddfb8a693c067df1ef5227257e72b0e4108482b8d41b5aee13f \ + --hash=sha256:6981eae48b3b33399c8757036c7f5d48a535b962a7c2310d19361edeef64ce29 \ + --hash=sha256:7e53a8c630f71db01b28cd9602a1ada68c937cbf2c333e6ed041390d6968faf4 \ + --hash=sha256:810d445ae6069ce64030c78ff6127cd9cd178a9ac3361435708b907d8a04c693 \ + --hash=sha256:93601c2deb321b4bad8f95df408e3fb3943d85012dddb6121336b8e24a0d1218 \ + --hash=sha256:992e451b04667116680cb88f63449267c13e1ad134f30087dec8527242e9862a \ + --hash=sha256:9db528bccb9e8e20c08e716b3b09c6bdd64da0dd129b11e160bf082d4642ac23 \ + --hash=sha256:a0057f800de6acc4407fe75bb147b0c2b5cbb7c3ed110d3e5999cd01184d53b0 \ + --hash=sha256:ba15742a13de85e9b8f3239c8f807723991fbfae24bad92d34a2b12e81904982 \ + --hash=sha256:bce4f25c27c3435e4dace4815bcb2008b87e167e3bf4ee47ccdc5ce906eb4894 \ + --hash=sha256:ca610d29415ee1a30a3f30fab7a8f4144e9d34c89a235d81292a1edb2b55f540 \ + --hash=sha256:d533d5e3259720fdbc1b37444491b024003e012c5173f7d06825a77508085430 \ + --hash=sha256:d84f29eb3ee44859052073b7636533ec995bd0f64e2fb43aeceefc70090e752b \ + --hash=sha256:e37c99f89929af50ffaf912454b3e3b47fd64109659026b678c091a4cd450fb2 \ + --hash=sha256:e8a6ae970537e67830776488bca52000eaa37fa63b9988e8c487458d9cd5ace6 \ + --hash=sha256:faf2ee02e6612577ba0181f4347bcbcf591eb122f7841ae5ba233d12c39dcb4d +bleach==6.1.0 ; python_version >= "3.10" and python_version < "4.0" \ + --hash=sha256:0a31f1837963c41d46bbf1331b8778e1308ea0791db03cc4e7357b97cf42a8fe \ + --hash=sha256:3225f354cfc436b9789c66c4ee030194bee0568fbf9cbdad3bc8b5c26c5f12b6 +certifi==2024.2.2 ; python_version >= "3.10" and python_version < "4.0" \ + --hash=sha256:0569859f95fc761b18b45ef421b1290a0f65f147e92a1e5eb3e635f9a5e4e66f \ + --hash=sha256:dc383c07b76109f368f6106eee2b593b04a011ea4d55f652c6ca24a754d1cdd1 +cffi==1.16.0 ; python_version >= "3.10" and python_version < "4.0" \ + --hash=sha256:0c9ef6ff37e974b73c25eecc13952c55bceed9112be2d9d938ded8e856138bcc \ + --hash=sha256:131fd094d1065b19540c3d72594260f118b231090295d8c34e19a7bbcf2e860a \ + --hash=sha256:1b8ebc27c014c59692bb2664c7d13ce7a6e9a629be20e54e7271fa696ff2b417 \ + --hash=sha256:2c56b361916f390cd758a57f2e16233eb4f64bcbeee88a4881ea90fca14dc6ab \ + --hash=sha256:2d92b25dbf6cae33f65005baf472d2c245c050b1ce709cc4588cdcdd5495b520 \ + --hash=sha256:31d13b0f99e0836b7ff893d37af07366ebc90b678b6664c955b54561fc36ef36 \ + --hash=sha256:32c68ef735dbe5857c810328cb2481e24722a59a2003018885514d4c09af9743 \ + --hash=sha256:3686dffb02459559c74dd3d81748269ffb0eb027c39a6fc99502de37d501faa8 \ + --hash=sha256:582215a0e9adbe0e379761260553ba11c58943e4bbe9c36430c4ca6ac74b15ed \ + --hash=sha256:5b50bf3f55561dac5438f8e70bfcdfd74543fd60df5fa5f62d94e5867deca684 \ + --hash=sha256:5bf44d66cdf9e893637896c7faa22298baebcd18d1ddb6d2626a6e39793a1d56 \ + --hash=sha256:6602bc8dc6f3a9e02b6c22c4fc1e47aa50f8f8e6d3f78a5e16ac33ef5fefa324 \ + --hash=sha256:673739cb539f8cdaa07d92d02efa93c9ccf87e345b9a0b556e3ecc666718468d \ + --hash=sha256:68678abf380b42ce21a5f2abde8efee05c114c2fdb2e9eef2efdb0257fba1235 \ + --hash=sha256:68e7c44931cc171c54ccb702482e9fc723192e88d25a0e133edd7aff8fcd1f6e \ + --hash=sha256:6b3d6606d369fc1da4fd8c357d026317fbb9c9b75d36dc16e90e84c26854b088 \ + --hash=sha256:748dcd1e3d3d7cd5443ef03ce8685043294ad6bd7c02a38d1bd367cfd968e000 \ + --hash=sha256:7651c50c8c5ef7bdb41108b7b8c5a83013bfaa8a935590c5d74627c047a583c7 \ + --hash=sha256:7b78010e7b97fef4bee1e896df8a4bbb6712b7f05b7ef630f9d1da00f6444d2e \ + --hash=sha256:7e61e3e4fa664a8588aa25c883eab612a188c725755afff6289454d6362b9673 \ + --hash=sha256:80876338e19c951fdfed6198e70bc88f1c9758b94578d5a7c4c91a87af3cf31c \ + --hash=sha256:8895613bcc094d4a1b2dbe179d88d7fb4a15cee43c052e8885783fac397d91fe \ + --hash=sha256:88e2b3c14bdb32e440be531ade29d3c50a1a59cd4e51b1dd8b0865c54ea5d2e2 \ + --hash=sha256:8f8e709127c6c77446a8c0a8c8bf3c8ee706a06cd44b1e827c3e6a2ee6b8c098 \ + --hash=sha256:9cb4a35b3642fc5c005a6755a5d17c6c8b6bcb6981baf81cea8bfbc8903e8ba8 \ + --hash=sha256:9f90389693731ff1f659e55c7d1640e2ec43ff725cc61b04b2f9c6d8d017df6a \ + --hash=sha256:a09582f178759ee8128d9270cd1344154fd473bb77d94ce0aeb2a93ebf0feaf0 \ + --hash=sha256:a6a14b17d7e17fa0d207ac08642c8820f84f25ce17a442fd15e27ea18d67c59b \ + --hash=sha256:a72e8961a86d19bdb45851d8f1f08b041ea37d2bd8d4fd19903bc3083d80c896 \ + --hash=sha256:abd808f9c129ba2beda4cfc53bde801e5bcf9d6e0f22f095e45327c038bfe68e \ + --hash=sha256:ac0f5edd2360eea2f1daa9e26a41db02dd4b0451b48f7c318e217ee092a213e9 \ + --hash=sha256:b29ebffcf550f9da55bec9e02ad430c992a87e5f512cd63388abb76f1036d8d2 \ + --hash=sha256:b2ca4e77f9f47c55c194982e10f058db063937845bb2b7a86c84a6cfe0aefa8b \ + --hash=sha256:b7be2d771cdba2942e13215c4e340bfd76398e9227ad10402a8767ab1865d2e6 \ + --hash=sha256:b84834d0cf97e7d27dd5b7f3aca7b6e9263c56308ab9dc8aae9784abb774d404 \ + --hash=sha256:b86851a328eedc692acf81fb05444bdf1891747c25af7529e39ddafaf68a4f3f \ + --hash=sha256:bcb3ef43e58665bbda2fb198698fcae6776483e0c4a631aa5647806c25e02cc0 \ + --hash=sha256:c0f31130ebc2d37cdd8e44605fb5fa7ad59049298b3f745c74fa74c62fbfcfc4 \ + --hash=sha256:c6a164aa47843fb1b01e941d385aab7215563bb8816d80ff3a363a9f8448a8dc \ + --hash=sha256:d8a9d3ebe49f084ad71f9269834ceccbf398253c9fac910c4fd7053ff1386936 \ + --hash=sha256:db8e577c19c0fda0beb7e0d4e09e0ba74b1e4c092e0e40bfa12fe05b6f6d75ba \ + --hash=sha256:dc9b18bf40cc75f66f40a7379f6a9513244fe33c0e8aa72e2d56b0196a7ef872 \ + --hash=sha256:e09f3ff613345df5e8c3667da1d918f9149bd623cd9070c983c013792a9a62eb \ + --hash=sha256:e4108df7fe9b707191e55f33efbcb2d81928e10cea45527879a4749cbe472614 \ + --hash=sha256:e6024675e67af929088fda399b2094574609396b1decb609c55fa58b028a32a1 \ + --hash=sha256:e70f54f1796669ef691ca07d046cd81a29cb4deb1e5f942003f401c0c4a2695d \ + --hash=sha256:e715596e683d2ce000574bae5d07bd522c781a822866c20495e52520564f0969 \ + --hash=sha256:e760191dd42581e023a68b758769e2da259b5d52e3103c6060ddc02c9edb8d7b \ + --hash=sha256:ed86a35631f7bfbb28e108dd96773b9d5a6ce4811cf6ea468bb6a359b256b1e4 \ + --hash=sha256:ee07e47c12890ef248766a6e55bd38ebfb2bb8edd4142d56db91b21ea68b7627 \ + --hash=sha256:fa3a0128b152627161ce47201262d3140edb5a5c3da88d73a1b790a959126956 \ + --hash=sha256:fcc8eb6d5902bb1cf6dc4f187ee3ea80a1eba0a89aba40a5cb20a5087d961357 +cfgv==3.4.0 ; python_version >= "3.10" and python_version < "4.0" \ + --hash=sha256:b7265b1f29fd3316bfcd2b330d63d024f2bfd8bcb8b0272f8e19a504856c48f9 \ + --hash=sha256:e52591d4c5f5dead8e0f673fb16db7949d2cfb3f7da4582893288f0ded8fe560 +charset-normalizer==3.3.2 ; python_version >= "3.10" and python_version < "4.0" \ + --hash=sha256:06435b539f889b1f6f4ac1758871aae42dc3a8c0e24ac9e60c2384973ad73027 \ + --hash=sha256:06a81e93cd441c56a9b65d8e1d043daeb97a3d0856d177d5c90ba85acb3db087 \ + --hash=sha256:0a55554a2fa0d408816b3b5cedf0045f4b8e1a6065aec45849de2d6f3f8e9786 \ + --hash=sha256:0b2b64d2bb6d3fb9112bafa732def486049e63de9618b5843bcdd081d8144cd8 \ + --hash=sha256:10955842570876604d404661fbccbc9c7e684caf432c09c715ec38fbae45ae09 \ + --hash=sha256:122c7fa62b130ed55f8f285bfd56d5f4b4a5b503609d181f9ad85e55c89f4185 \ + --hash=sha256:1ceae2f17a9c33cb48e3263960dc5fc8005351ee19db217e9b1bb15d28c02574 \ + --hash=sha256:1d3193f4a680c64b4b6a9115943538edb896edc190f0b222e73761716519268e \ + --hash=sha256:1f79682fbe303db92bc2b1136016a38a42e835d932bab5b3b1bfcfbf0640e519 \ + --hash=sha256:2127566c664442652f024c837091890cb1942c30937add288223dc895793f898 \ + --hash=sha256:22afcb9f253dac0696b5a4be4a1c0f8762f8239e21b99680099abd9b2b1b2269 \ + --hash=sha256:25baf083bf6f6b341f4121c2f3c548875ee6f5339300e08be3f2b2ba1721cdd3 \ + --hash=sha256:2e81c7b9c8979ce92ed306c249d46894776a909505d8f5a4ba55b14206e3222f \ + --hash=sha256:3287761bc4ee9e33561a7e058c72ac0938c4f57fe49a09eae428fd88aafe7bb6 \ + --hash=sha256:34d1c8da1e78d2e001f363791c98a272bb734000fcef47a491c1e3b0505657a8 \ + --hash=sha256:37e55c8e51c236f95b033f6fb391d7d7970ba5fe7ff453dad675e88cf303377a \ + --hash=sha256:3d47fa203a7bd9c5b6cee4736ee84ca03b8ef23193c0d1ca99b5089f72645c73 \ + --hash=sha256:3e4d1f6587322d2788836a99c69062fbb091331ec940e02d12d179c1d53e25fc \ + --hash=sha256:42cb296636fcc8b0644486d15c12376cb9fa75443e00fb25de0b8602e64c1714 \ + --hash=sha256:45485e01ff4d3630ec0d9617310448a8702f70e9c01906b0d0118bdf9d124cf2 \ + --hash=sha256:4a78b2b446bd7c934f5dcedc588903fb2f5eec172f3d29e52a9096a43722adfc \ + --hash=sha256:4ab2fe47fae9e0f9dee8c04187ce5d09f48eabe611be8259444906793ab7cbce \ + --hash=sha256:4d0d1650369165a14e14e1e47b372cfcb31d6ab44e6e33cb2d4e57265290044d \ + --hash=sha256:549a3a73da901d5bc3ce8d24e0600d1fa85524c10287f6004fbab87672bf3e1e \ + --hash=sha256:55086ee1064215781fff39a1af09518bc9255b50d6333f2e4c74ca09fac6a8f6 \ + --hash=sha256:572c3763a264ba47b3cf708a44ce965d98555f618ca42c926a9c1616d8f34269 \ + --hash=sha256:573f6eac48f4769d667c4442081b1794f52919e7edada77495aaed9236d13a96 \ + --hash=sha256:5b4c145409bef602a690e7cfad0a15a55c13320ff7a3ad7ca59c13bb8ba4d45d \ + --hash=sha256:6463effa3186ea09411d50efc7d85360b38d5f09b870c48e4600f63af490e56a \ + --hash=sha256:65f6f63034100ead094b8744b3b97965785388f308a64cf8d7c34f2f2e5be0c4 \ + --hash=sha256:663946639d296df6a2bb2aa51b60a2454ca1cb29835324c640dafb5ff2131a77 \ + --hash=sha256:6897af51655e3691ff853668779c7bad41579facacf5fd7253b0133308cf000d \ + --hash=sha256:68d1f8a9e9e37c1223b656399be5d6b448dea850bed7d0f87a8311f1ff3dabb0 \ + --hash=sha256:6ac7ffc7ad6d040517be39eb591cac5ff87416c2537df6ba3cba3bae290c0fed \ + --hash=sha256:6b3251890fff30ee142c44144871185dbe13b11bab478a88887a639655be1068 \ + --hash=sha256:6c4caeef8fa63d06bd437cd4bdcf3ffefe6738fb1b25951440d80dc7df8c03ac \ + --hash=sha256:6ef1d82a3af9d3eecdba2321dc1b3c238245d890843e040e41e470ffa64c3e25 \ + --hash=sha256:753f10e867343b4511128c6ed8c82f7bec3bd026875576dfd88483c5c73b2fd8 \ + --hash=sha256:7cd13a2e3ddeed6913a65e66e94b51d80a041145a026c27e6bb76c31a853c6ab \ + --hash=sha256:7ed9e526742851e8d5cc9e6cf41427dfc6068d4f5a3bb03659444b4cabf6bc26 \ + --hash=sha256:7f04c839ed0b6b98b1a7501a002144b76c18fb1c1850c8b98d458ac269e26ed2 \ + --hash=sha256:802fe99cca7457642125a8a88a084cef28ff0cf9407060f7b93dca5aa25480db \ + --hash=sha256:80402cd6ee291dcb72644d6eac93785fe2c8b9cb30893c1af5b8fdd753b9d40f \ + --hash=sha256:8465322196c8b4d7ab6d1e049e4c5cb460d0394da4a27d23cc242fbf0034b6b5 \ + --hash=sha256:86216b5cee4b06df986d214f664305142d9c76df9b6512be2738aa72a2048f99 \ + --hash=sha256:87d1351268731db79e0f8e745d92493ee2841c974128ef629dc518b937d9194c \ + --hash=sha256:8bdb58ff7ba23002a4c5808d608e4e6c687175724f54a5dade5fa8c67b604e4d \ + --hash=sha256:8c622a5fe39a48f78944a87d4fb8a53ee07344641b0562c540d840748571b811 \ + --hash=sha256:8d756e44e94489e49571086ef83b2bb8ce311e730092d2c34ca8f7d925cb20aa \ + --hash=sha256:8f4a014bc36d3c57402e2977dada34f9c12300af536839dc38c0beab8878f38a \ + --hash=sha256:9063e24fdb1e498ab71cb7419e24622516c4a04476b17a2dab57e8baa30d6e03 \ + --hash=sha256:90d558489962fd4918143277a773316e56c72da56ec7aa3dc3dbbe20fdfed15b \ + --hash=sha256:923c0c831b7cfcb071580d3f46c4baf50f174be571576556269530f4bbd79d04 \ + --hash=sha256:95f2a5796329323b8f0512e09dbb7a1860c46a39da62ecb2324f116fa8fdc85c \ + --hash=sha256:96b02a3dc4381e5494fad39be677abcb5e6634bf7b4fa83a6dd3112607547001 \ + --hash=sha256:9f96df6923e21816da7e0ad3fd47dd8f94b2a5ce594e00677c0013018b813458 \ + --hash=sha256:a10af20b82360ab00827f916a6058451b723b4e65030c5a18577c8b2de5b3389 \ + --hash=sha256:a50aebfa173e157099939b17f18600f72f84eed3049e743b68ad15bd69b6bf99 \ + --hash=sha256:a981a536974bbc7a512cf44ed14938cf01030a99e9b3a06dd59578882f06f985 \ + --hash=sha256:a9a8e9031d613fd2009c182b69c7b2c1ef8239a0efb1df3f7c8da66d5dd3d537 \ + --hash=sha256:ae5f4161f18c61806f411a13b0310bea87f987c7d2ecdbdaad0e94eb2e404238 \ + --hash=sha256:aed38f6e4fb3f5d6bf81bfa990a07806be9d83cf7bacef998ab1a9bd660a581f \ + --hash=sha256:b01b88d45a6fcb69667cd6d2f7a9aeb4bf53760d7fc536bf679ec94fe9f3ff3d \ + --hash=sha256:b261ccdec7821281dade748d088bb6e9b69e6d15b30652b74cbbac25e280b796 \ + --hash=sha256:b2b0a0c0517616b6869869f8c581d4eb2dd83a4d79e0ebcb7d373ef9956aeb0a \ + --hash=sha256:b4a23f61ce87adf89be746c8a8974fe1c823c891d8f86eb218bb957c924bb143 \ + --hash=sha256:bd8f7df7d12c2db9fab40bdd87a7c09b1530128315d047a086fa3ae3435cb3a8 \ + --hash=sha256:beb58fe5cdb101e3a055192ac291b7a21e3b7ef4f67fa1d74e331a7f2124341c \ + --hash=sha256:c002b4ffc0be611f0d9da932eb0f704fe2602a9a949d1f738e4c34c75b0863d5 \ + --hash=sha256:c083af607d2515612056a31f0a8d9e0fcb5876b7bfc0abad3ecd275bc4ebc2d5 \ + --hash=sha256:c180f51afb394e165eafe4ac2936a14bee3eb10debc9d9e4db8958fe36afe711 \ + --hash=sha256:c235ebd9baae02f1b77bcea61bce332cb4331dc3617d254df3323aa01ab47bd4 \ + --hash=sha256:cd70574b12bb8a4d2aaa0094515df2463cb429d8536cfb6c7ce983246983e5a6 \ + --hash=sha256:d0eccceffcb53201b5bfebb52600a5fb483a20b61da9dbc885f8b103cbe7598c \ + --hash=sha256:d965bba47ddeec8cd560687584e88cf699fd28f192ceb452d1d7ee807c5597b7 \ + --hash=sha256:db364eca23f876da6f9e16c9da0df51aa4f104a972735574842618b8c6d999d4 \ + --hash=sha256:ddbb2551d7e0102e7252db79ba445cdab71b26640817ab1e3e3648dad515003b \ + --hash=sha256:deb6be0ac38ece9ba87dea880e438f25ca3eddfac8b002a2ec3d9183a454e8ae \ + --hash=sha256:e06ed3eb3218bc64786f7db41917d4e686cc4856944f53d5bdf83a6884432e12 \ + --hash=sha256:e27ad930a842b4c5eb8ac0016b0a54f5aebbe679340c26101df33424142c143c \ + --hash=sha256:e537484df0d8f426ce2afb2d0f8e1c3d0b114b83f8850e5f2fbea0e797bd82ae \ + --hash=sha256:eb00ed941194665c332bf8e078baf037d6c35d7c4f3102ea2d4f16ca94a26dc8 \ + --hash=sha256:eb6904c354526e758fda7167b33005998fb68c46fbc10e013ca97f21ca5c8887 \ + --hash=sha256:eb8821e09e916165e160797a6c17edda0679379a4be5c716c260e836e122f54b \ + --hash=sha256:efcb3f6676480691518c177e3b465bcddf57cea040302f9f4e6e191af91174d4 \ + --hash=sha256:f27273b60488abe721a075bcca6d7f3964f9f6f067c8c4c605743023d7d3944f \ + --hash=sha256:f30c3cb33b24454a82faecaf01b19c18562b1e89558fb6c56de4d9118a032fd5 \ + --hash=sha256:fb69256e180cb6c8a894fee62b3afebae785babc1ee98b81cdf68bbca1987f33 \ + --hash=sha256:fd1abc0d89e30cc4e02e4064dc67fcc51bd941eb395c502aac3ec19fab46b519 \ + --hash=sha256:ff8fa367d09b717b2a17a052544193ad76cd49979c805768879cb63d9ca50561 +click==8.1.7 ; python_version >= "3.10" and python_version < "4.0" \ + --hash=sha256:ae74fb96c20a0277a1d615f1e4d73c8414f5a98db8b799a7931d1582f3390c28 \ + --hash=sha256:ca9853ad459e787e2192211578cc907e7594e294c7ccc834310722b41b9ca6de +colorama==0.4.6 ; python_version >= "3.10" and python_version < "4.0" and (sys_platform == "win32" or platform_system == "Windows") \ + --hash=sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44 \ + --hash=sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6 +comm==0.2.1 ; python_version >= "3.10" and python_version < "4.0" \ + --hash=sha256:0bc91edae1344d39d3661dcbc36937181fdaddb304790458f8b044dbc064b89a \ + --hash=sha256:87928485c0dfc0e7976fd89fc1e187023cf587e7c353e4a9b417555b44adf021 +contourpy==1.2.0 ; python_version >= "3.10" and python_version < "4.0" \ + --hash=sha256:0274c1cb63625972c0c007ab14dd9ba9e199c36ae1a231ce45d725cbcbfd10a8 \ + --hash=sha256:0d7e03c0f9a4f90dc18d4e77e9ef4ec7b7bbb437f7f675be8e530d65ae6ef956 \ + --hash=sha256:11f8d2554e52f459918f7b8e6aa20ec2a3bce35ce95c1f0ef4ba36fbda306df5 \ + --hash=sha256:139d8d2e1c1dd52d78682f505e980f592ba53c9f73bd6be102233e358b401063 \ + --hash=sha256:16a7380e943a6d52472096cb7ad5264ecee36ed60888e2a3d3814991a0107286 \ + --hash=sha256:171f311cb758de7da13fc53af221ae47a5877be5a0843a9fe150818c51ed276a \ + --hash=sha256:18fc2b4ed8e4a8fe849d18dce4bd3c7ea637758c6343a1f2bae1e9bd4c9f4686 \ + --hash=sha256:1c203f617abc0dde5792beb586f827021069fb6d403d7f4d5c2b543d87edceb9 \ + --hash=sha256:1c2559d6cffc94890b0529ea7eeecc20d6fadc1539273aa27faf503eb4656d8f \ + --hash=sha256:1c88dfb9e0c77612febebb6ac69d44a8d81e3dc60f993215425b62c1161353f4 \ + --hash=sha256:1e9dc350fb4c58adc64df3e0703ab076f60aac06e67d48b3848c23647ae4310e \ + --hash=sha256:247b9d16535acaa766d03037d8e8fb20866d054d3c7fbf6fd1f993f11fc60ca0 \ + --hash=sha256:266270c6f6608340f6c9836a0fb9b367be61dde0c9a9a18d5ece97774105ff3e \ + --hash=sha256:34b9071c040d6fe45d9826cbbe3727d20d83f1b6110d219b83eb0e2a01d79488 \ + --hash=sha256:3d7d1f8871998cdff5d2ff6a087e5e1780139abe2838e85b0b46b7ae6cc25399 \ + --hash=sha256:461e3ae84cd90b30f8d533f07d87c00379644205b1d33a5ea03381edc4b69431 \ + --hash=sha256:464b423bc2a009088f19bdf1f232299e8b6917963e2b7e1d277da5041f33a779 \ + --hash=sha256:491b1917afdd8638a05b611a56d46587d5a632cabead889a5440f7c638bc6ed9 \ + --hash=sha256:4a1b1208102be6e851f20066bf0e7a96b7d48a07c9b0cfe6d0d4545c2f6cadab \ + --hash=sha256:575bcaf957a25d1194903a10bc9f316c136c19f24e0985a2b9b5608bdf5dbfe0 \ + --hash=sha256:5c6b28956b7b232ae801406e529ad7b350d3f09a4fde958dfdf3c0520cdde0dd \ + --hash=sha256:5d16edfc3fc09968e09ddffada434b3bf989bf4911535e04eada58469873e28e \ + --hash=sha256:5fd1810973a375ca0e097dee059c407913ba35723b111df75671a1976efa04bc \ + --hash=sha256:67b7f17679fa62ec82b7e3e611c43a016b887bd64fb933b3ae8638583006c6d6 \ + --hash=sha256:68ce4788b7d93e47f84edd3f1f95acdcd142ae60bc0e5493bfd120683d2d4316 \ + --hash=sha256:6d3364b999c62f539cd403f8123ae426da946e142312a514162adb2addd8d808 \ + --hash=sha256:6e739530c662a8d6d42c37c2ed52a6f0932c2d4a3e8c1f90692ad0ce1274abe0 \ + --hash=sha256:6fdd887f17c2f4572ce548461e4f96396681212d858cae7bd52ba3310bc6f00f \ + --hash=sha256:78e6ad33cf2e2e80c5dfaaa0beec3d61face0fb650557100ee36db808bfa6843 \ + --hash=sha256:884c3f9d42d7218304bc74a8a7693d172685c84bd7ab2bab1ee567b769696df9 \ + --hash=sha256:8d8faf05be5ec8e02a4d86f616fc2a0322ff4a4ce26c0f09d9f7fb5330a35c95 \ + --hash=sha256:999c71939aad2780f003979b25ac5b8f2df651dac7b38fb8ce6c46ba5abe6ae9 \ + --hash=sha256:99ad97258985328b4f207a5e777c1b44a83bfe7cf1f87b99f9c11d4ee477c4de \ + --hash=sha256:9e6c93b5b2dbcedad20a2f18ec22cae47da0d705d454308063421a3b290d9ea4 \ + --hash=sha256:ab459a1cbbf18e8698399c595a01f6dcc5c138220ca3ea9e7e6126232d102bb4 \ + --hash=sha256:b69303ceb2e4d4f146bf82fda78891ef7bcd80c41bf16bfca3d0d7eb545448aa \ + --hash=sha256:b7caf9b241464c404613512d5594a6e2ff0cc9cb5615c9475cc1d9b514218ae8 \ + --hash=sha256:b95a225d4948b26a28c08307a60ac00fb8671b14f2047fc5476613252a129776 \ + --hash=sha256:bd2f1ae63998da104f16a8b788f685e55d65760cd1929518fd94cd682bf03e41 \ + --hash=sha256:be16975d94c320432657ad2402f6760990cb640c161ae6da1363051805fa8108 \ + --hash=sha256:ce96dd400486e80ac7d195b2d800b03e3e6a787e2a522bfb83755938465a819e \ + --hash=sha256:dbd50d0a0539ae2e96e537553aff6d02c10ed165ef40c65b0e27e744a0f10af8 \ + --hash=sha256:dd10c26b4eadae44783c45ad6655220426f971c61d9b239e6f7b16d5cdaaa727 \ + --hash=sha256:ebeac59e9e1eb4b84940d076d9f9a6cec0064e241818bcb6e32124cc5c3e377a +cycler==0.12.1 ; python_version >= "3.10" and python_version < "4.0" \ + --hash=sha256:85cef7cff222d8644161529808465972e51340599459b8ac3ccbac5a854e0d30 \ + --hash=sha256:88bb128f02ba341da8ef447245a9e138fae777f6a23943da4540077d3601eb1c +debugpy==1.8.1 ; python_version >= "3.10" and python_version < "4.0" \ + --hash=sha256:016a9fcfc2c6b57f939673c874310d8581d51a0fe0858e7fac4e240c5eb743cb \ + --hash=sha256:0de56aba8249c28a300bdb0672a9b94785074eb82eb672db66c8144fff673146 \ + --hash=sha256:1a9fe0829c2b854757b4fd0a338d93bc17249a3bf69ecf765c61d4c522bb92a8 \ + --hash=sha256:28acbe2241222b87e255260c76741e1fbf04fdc3b6d094fcf57b6c6f75ce1242 \ + --hash=sha256:3a79c6f62adef994b2dbe9fc2cc9cc3864a23575b6e387339ab739873bea53d0 \ + --hash=sha256:3bda0f1e943d386cc7a0e71bfa59f4137909e2ed947fb3946c506e113000f741 \ + --hash=sha256:3ebb70ba1a6524d19fa7bb122f44b74170c447d5746a503e36adc244a20ac539 \ + --hash=sha256:58911e8521ca0c785ac7a0539f1e77e0ce2df753f786188f382229278b4cdf23 \ + --hash=sha256:6df9aa9599eb05ca179fb0b810282255202a66835c6efb1d112d21ecb830ddd3 \ + --hash=sha256:7a3afa222f6fd3d9dfecd52729bc2e12c93e22a7491405a0ecbf9e1d32d45b39 \ + --hash=sha256:7eb7bd2b56ea3bedb009616d9e2f64aab8fc7000d481faec3cd26c98a964bcdd \ + --hash=sha256:92116039b5500633cc8d44ecc187abe2dfa9b90f7a82bbf81d079fcdd506bae9 \ + --hash=sha256:a2e658a9630f27534e63922ebf655a6ab60c370f4d2fc5c02a5b19baf4410ace \ + --hash=sha256:bfb20cb57486c8e4793d41996652e5a6a885b4d9175dd369045dad59eaacea42 \ + --hash=sha256:caad2846e21188797a1f17fc09c31b84c7c3c23baf2516fed5b40b378515bbf0 \ + --hash=sha256:d915a18f0597ef685e88bb35e5d7ab968964b7befefe1aaea1eb5b2640b586c7 \ + --hash=sha256:dda73bf69ea479c8577a0448f8c707691152e6c4de7f0c4dec5a4bc11dee516e \ + --hash=sha256:e38beb7992b5afd9d5244e96ad5fa9135e94993b0c551ceebf3fe1a5d9beb234 \ + --hash=sha256:edcc9f58ec0fd121a25bc950d4578df47428d72e1a0d66c07403b04eb93bcf98 \ + --hash=sha256:efd3fdd3f67a7e576dd869c184c5dd71d9aaa36ded271939da352880c012e703 \ + --hash=sha256:f696d6be15be87aef621917585f9bb94b1dc9e8aced570db1b8a6fc14e8f9b42 \ + --hash=sha256:fd97ed11a4c7f6d042d320ce03d83b20c3fb40da892f994bc041bbc415d7a099 +decorator==5.1.1 ; python_version >= "3.10" and python_version < "4.0" \ + --hash=sha256:637996211036b6385ef91435e4fae22989472f9d571faba8927ba8253acbc330 \ + --hash=sha256:b8c3f85900b9dc423225913c5aace94729fe1fa9763b38939a95226f02d37186 +defusedxml==0.7.1 ; python_version >= "3.10" and python_version < "4.0" \ + --hash=sha256:1bb3032db185915b62d7c6209c5a8792be6a32ab2fedacc84e01b52c51aa3e69 \ + --hash=sha256:a352e7e428770286cc899e2542b6cdaedb2b4953ff269a210103ec58f6198a61 +distlib==0.3.8 ; python_version >= "3.10" and python_version < "4.0" \ + --hash=sha256:034db59a0b96f8ca18035f36290806a9a6e6bd9d1ff91e45a7f172eb17e51784 \ + --hash=sha256:1530ea13e350031b6312d8580ddb6b27a104275a31106523b8f123787f494f64 +docutils==0.19 ; python_version >= "3.10" and python_version < "4.0" \ + --hash=sha256:33995a6753c30b7f577febfc2c50411fec6aac7f7ffeb7c4cfe5991072dcf9e6 \ + --hash=sha256:5e1de4d849fee02c63b040a4a3fd567f4ab104defd8a5511fbbc24a8a017efbc +entrypoints==0.4 ; python_version >= "3.10" and python_version < "4.0" \ + --hash=sha256:b706eddaa9218a19ebcd67b56818f05bb27589b1ca9e8d797b74affad4ccacd4 \ + --hash=sha256:f174b5ff827504fd3cd97cc3f8649f3693f51538c7e4bdf3ef002c8429d42f9f +exceptiongroup==1.2.0 ; python_version >= "3.10" and python_version < "3.11" \ + --hash=sha256:4bfd3996ac73b41e9b9628b04e079f193850720ea5945fc96a08633c66912f14 \ + --hash=sha256:91f5c769735f051a4290d52edd0858999b57e5876e9f85937691bd4c9fa3ed68 +executing==2.0.1 ; python_version >= "3.10" and python_version < "4.0" \ + --hash=sha256:35afe2ce3affba8ee97f2d69927fa823b08b472b7b994e36a52a964b93d16147 \ + --hash=sha256:eac49ca94516ccc753f9fb5ce82603156e590b27525a8bc32cce8ae302eb61bc +fastcore==1.3.20 ; python_version >= "3.10" and python_version < "4.0" \ + --hash=sha256:084ff680813f09cc85883b05bb616bdee09d214245840c6fb52fb16c71b1aced \ + --hash=sha256:cd45dcbfe5869cf174bc98eb931be609e8f8d55062bc3d68700a921136548a77 +fastjsonschema==2.19.1 ; python_version >= "3.10" and python_version < "4.0" \ + --hash=sha256:3672b47bc94178c9f23dbb654bf47440155d4db9df5f7bc47643315f9c405cd0 \ + --hash=sha256:e3126a94bdc4623d3de4485f8d468a12f02a67921315ddc87836d6e456dc789d +fastprogress==1.0.0 ; python_version >= "3.10" and python_version < "4.0" \ + --hash=sha256:474cd6a6e5b1c29a02383d709bf71f502477d0849bddc6ba5aa80b683f4ad16f \ + --hash=sha256:89e28ac1d2a5412aab18ee3f3dfd1ee8b5c1f2f7a44d0add0d0d4f69f0191bfe +filelock==3.13.1 ; python_version >= "3.10" and python_version < "4.0" \ + --hash=sha256:521f5f56c50f8426f5e03ad3b281b490a87ef15bc6c526f168290f0c7148d44e \ + --hash=sha256:57dbda9b35157b05fb3e58ee91448612eb674172fab98ee235ccb0b5bee19a1c +flake8==7.0.0 ; python_version >= "3.10" and python_version < "4.0" \ + --hash=sha256:33f96621059e65eec474169085dc92bf26e7b2d47366b70be2f67ab80dc25132 \ + --hash=sha256:a6dfbb75e03252917f2473ea9653f7cd799c3064e54d4c8140044c5c065f53c3 +flaky==3.7.0 ; python_version >= "3.10" and python_version < "4.0" \ + --hash=sha256:3ad100780721a1911f57a165809b7ea265a7863305acb66708220820caf8aa0d \ + --hash=sha256:d6eda73cab5ae7364504b7c44670f70abed9e75f77dd116352f662817592ec9c +fonttools==4.49.0 ; python_version >= "3.10" and python_version < "4.0" \ + --hash=sha256:0404faea044577a01bb82d47a8fa4bc7a54067fa7e324785dd65d200d6dd1133 \ + --hash=sha256:07bc5ea02bb7bc3aa40a1eb0481ce20e8d9b9642a9536cde0218290dd6085828 \ + --hash=sha256:08877e355d3dde1c11973bb58d4acad1981e6d1140711230a4bfb40b2b937ccc \ + --hash=sha256:0af65c720520710cc01c293f9c70bd69684365c6015cc3671db2b7d807fe51f2 \ + --hash=sha256:0ba0e00620ca28d4ca11fc700806fd69144b463aa3275e1b36e56c7c09915559 \ + --hash=sha256:1f255ce8ed7556658f6d23f6afd22a6d9bbc3edb9b96c96682124dc487e1bf42 \ + --hash=sha256:1fac1b7eebfce75ea663e860e7c5b4a8831b858c17acd68263bc156125201abf \ + --hash=sha256:263832fae27481d48dfafcc43174644b6706639661e242902ceb30553557e16c \ + --hash=sha256:29e89d0e1a7f18bc30f197cfadcbef5a13d99806447c7e245f5667579a808036 \ + --hash=sha256:33037d9e56e2562c710c8954d0f20d25b8386b397250d65581e544edc9d6b942 \ + --hash=sha256:33c584c0ef7dc54f5dd4f84082eabd8d09d1871a3d8ca2986b0c0c98165f8e86 \ + --hash=sha256:36c8865bdb5cfeec88f5028e7e592370a0657b676c6f1d84a2108e0564f90e22 \ + --hash=sha256:4145f91531fd43c50f9eb893faa08399816bb0b13c425667c48475c9f3a2b9b5 \ + --hash=sha256:4d418b1fee41a1d14931f7ab4b92dc0bc323b490e41d7a333eec82c9f1780c75 \ + --hash=sha256:768947008b4dc552d02772e5ebd49e71430a466e2373008ce905f953afea755a \ + --hash=sha256:7c7125068e04a70739dad11857a4d47626f2b0bd54de39e8622e89701836eabd \ + --hash=sha256:83a0d9336de2cba86d886507dd6e0153df333ac787377325a39a2797ec529814 \ + --hash=sha256:86eef6aab7fd7c6c8545f3ebd00fd1d6729ca1f63b0cb4d621bccb7d1d1c852b \ + --hash=sha256:8fb022d799b96df3eaa27263e9eea306bd3d437cc9aa981820850281a02b6c9a \ + --hash=sha256:9d95fa0d22bf4f12d2fb7b07a46070cdfc19ef5a7b1c98bc172bfab5bf0d6844 \ + --hash=sha256:a974c49a981e187381b9cc2c07c6b902d0079b88ff01aed34695ec5360767034 \ + --hash=sha256:ac9a745b7609f489faa65e1dc842168c18530874a5f5b742ac3dd79e26bca8bc \ + --hash=sha256:af20acbe198a8a790618ee42db192eb128afcdcc4e96d99993aca0b60d1faeb4 \ + --hash=sha256:af281525e5dd7fa0b39fb1667b8d5ca0e2a9079967e14c4bfe90fd1cd13e0f18 \ + --hash=sha256:b050d362df50fc6e38ae3954d8c29bf2da52be384649ee8245fdb5186b620836 \ + --hash=sha256:b44a52b8e6244b6548851b03b2b377a9702b88ddc21dcaf56a15a0393d425cb9 \ + --hash=sha256:b607ea1e96768d13be26d2b400d10d3ebd1456343eb5eaddd2f47d1c4bd00880 \ + --hash=sha256:b85ec0bdd7bdaa5c1946398cbb541e90a6dfc51df76dfa88e0aaa41b335940cb \ + --hash=sha256:bebd91041dda0d511b0d303180ed36e31f4f54b106b1259b69fade68413aa7ff \ + --hash=sha256:c076a9e548521ecc13d944b1d261ff3d7825048c338722a4bd126d22316087b7 \ + --hash=sha256:cbe61b158deb09cffdd8540dc4a948d6e8f4d5b4f3bf5cd7db09bd6a61fee64e \ + --hash=sha256:cdee3ab220283057e7840d5fb768ad4c2ebe65bdba6f75d5d7bf47f4e0ed7d29 \ + --hash=sha256:ce7033cb61f2bb65d8849658d3786188afd80f53dad8366a7232654804529532 \ + --hash=sha256:d00af0884c0e65f60dfaf9340e26658836b935052fdd0439952ae42e44fdd2be \ + --hash=sha256:d647a0e697e5daa98c87993726da8281c7233d9d4ffe410812a4896c7c57c075 \ + --hash=sha256:d970ecca0aac90d399e458f0b7a8a597e08f95de021f17785fb68e2dc0b99717 \ + --hash=sha256:ea329dafb9670ffbdf4dbc3b0e5c264104abcd8441d56de77f06967f032943cb \ + --hash=sha256:ebf46e7f01b7af7861310417d7c49591a85d99146fc23a5ba82fdb28af156321 \ + --hash=sha256:edc0cce355984bb3c1d1e89d6a661934d39586bb32191ebff98c600f8957c63e \ + --hash=sha256:f3bbe672df03563d1f3a691ae531f2e31f84061724c319652039e5a70927167e \ + --hash=sha256:fc11e5114f3f978d0cea7e9853627935b30d451742eeb4239a81a677bdee6bf6 \ + --hash=sha256:fdb54b076f25d6b0f0298dc706acee5052de20c83530fa165b60d1f2e9cbe3cb +fqdn==1.5.1 ; python_version >= "3.10" and python_version < "4" \ + --hash=sha256:105ed3677e767fb5ca086a0c1f4bb66ebc3c100be518f0e0d755d9eae164d89f \ + --hash=sha256:3a179af3761e4df6eb2e026ff9e1a3033d3587bf980a0b1b2e1e5d08d7358014 +fsspec==2024.2.0 ; python_version >= "3.10" and python_version < "4.0" \ + --hash=sha256:817f969556fa5916bc682e02ca2045f96ff7f586d45110fcb76022063ad2c7d8 \ + --hash=sha256:b6ad1a679f760dda52b1168c859d01b7b80648ea6f7f7c7f5a8a91dc3f3ecb84 +h5py==3.10.0 ; python_version >= "3.10" and python_version < "4.0" \ + --hash=sha256:012ab448590e3c4f5a8dd0f3533255bc57f80629bf7c5054cf4c87b30085063c \ + --hash=sha256:212bb997a91e6a895ce5e2f365ba764debeaef5d2dca5c6fb7098d66607adf99 \ + --hash=sha256:2381e98af081b6df7f6db300cd88f88e740649d77736e4b53db522d8874bf2dc \ + --hash=sha256:2c8e4fda19eb769e9a678592e67eaec3a2f069f7570c82d2da909c077aa94339 \ + --hash=sha256:3074ec45d3dc6e178c6f96834cf8108bf4a60ccb5ab044e16909580352010a97 \ + --hash=sha256:3c97d03f87f215e7759a354460fb4b0d0f27001450b18b23e556e7856a0b21c3 \ + --hash=sha256:43a61b2c2ad65b1fabc28802d133eed34debcc2c8b420cb213d3d4ef4d3e2229 \ + --hash=sha256:492305a074327e8d2513011fa9fffeb54ecb28a04ca4c4227d7e1e9616d35641 \ + --hash=sha256:5dfc65ac21fa2f630323c92453cadbe8d4f504726ec42f6a56cf80c2f90d6c52 \ + --hash=sha256:667fe23ab33d5a8a6b77970b229e14ae3bb84e4ea3382cc08567a02e1499eedd \ + --hash=sha256:6c013d2e79c00f28ffd0cc24e68665ea03ae9069e167087b2adb5727d2736a52 \ + --hash=sha256:781a24263c1270a62cd67be59f293e62b76acfcc207afa6384961762bb88ea03 \ + --hash=sha256:86df4c2de68257b8539a18646ceccdcf2c1ce6b1768ada16c8dcfb489eafae20 \ + --hash=sha256:90286b79abd085e4e65e07c1bd7ee65a0f15818ea107f44b175d2dfe1a4674b7 \ + --hash=sha256:92273ce69ae4983dadb898fd4d3bea5eb90820df953b401282ee69ad648df684 \ + --hash=sha256:93dd840bd675787fc0b016f7a05fc6efe37312a08849d9dd4053fd0377b1357f \ + --hash=sha256:9450464b458cca2c86252b624279115dcaa7260a40d3cb1594bf2b410a2bd1a3 \ + --hash=sha256:ae2f0201c950059676455daf92700eeb57dcf5caaf71b9e1328e6e6593601770 \ + --hash=sha256:aece0e2e1ed2aab076c41802e50a0c3e5ef8816d60ece39107d68717d4559824 \ + --hash=sha256:b963fb772964fc1d1563c57e4e2e874022ce11f75ddc6df1a626f42bd49ab99f \ + --hash=sha256:ba9ab36be991119a3ff32d0c7cbe5faf9b8d2375b5278b2aea64effbeba66039 \ + --hash=sha256:d4682b94fd36ab217352be438abd44c8f357c5449b8995e63886b431d260f3d3 \ + --hash=sha256:d93adc48ceeb33347eb24a634fb787efc7ae4644e6ea4ba733d099605045c049 \ + --hash=sha256:f42e6c30698b520f0295d70157c4e202a9e402406f50dc08f5a7bc416b24e52d \ + --hash=sha256:fd6f6d1384a9f491732cee233b99cd4bfd6e838a8815cc86722f9d2ee64032af +hepunits==2.3.3 ; python_version >= "3.10" and python_version < "4.0" \ + --hash=sha256:2edd3446bab7a853865e402eb14958ea6da6d728a7d9064cc3d8f3bb3a9a1281 \ + --hash=sha256:67d7cc77cd54d72b69c26a68e5efad7842b6f68fa8bc627bb90e41177abe6945 +identify==2.5.34 ; python_version >= "3.10" and python_version < "4.0" \ + --hash=sha256:a4316013779e433d08b96e5eabb7f641e6c7942e4ab5d4c509ebd2e7a8994aed \ + --hash=sha256:ee17bc9d499899bc9eaec1ac7bf2dc9eedd480db9d88b96d123d3b64a9d34f5d +idna==3.6 ; python_version >= "3.10" and python_version < "4.0" \ + --hash=sha256:9ecdbbd083b06798ae1e86adcbfe8ab1479cf864e4ee30fe4e46a003d12491ca \ + --hash=sha256:c05567e9c24a6b9faaa835c4821bad0590fbb9d5779e7caa6e1cc4978e7eb24f +imageio==2.16.2 ; python_version >= "3.10" and python_version < "4.0" \ + --hash=sha256:4757b5bc41158feb89529721bc14b738c3a0e17284dbdfc3f09ac4ad9dc00a08 \ + --hash=sha256:8fea761d51a53c150cabd82ed36011252c17580c752216b8222f078630dfb9ba +imagesize==1.4.1 ; python_version >= "3.10" and python_version < "4.0" \ + --hash=sha256:0d8d18d08f840c19d0ee7ca1fd82490fdc3729b7ac93f49870406ddde8ef8d8b \ + --hash=sha256:69150444affb9cb0d5cc5a92b3676f0b2fb7cd9ae39e947a5e11a36b4497cd4a +iniconfig==2.0.0 ; python_version >= "3.10" and python_version < "4.0" \ + --hash=sha256:2d91e135bf72d31a410b17c16da610a82cb55f6b0477d1a902134b24a455b8b3 \ + --hash=sha256:b6a85871a79d2e3b22d2d1b94ac2824226a63c6b741c88f7ae975f18b6778374 +ipykernel==6.29.2 ; python_version >= "3.10" and python_version < "4.0" \ + --hash=sha256:3bade28004e3ff624ed57974948116670604ac5f676d12339693f3142176d3f0 \ + --hash=sha256:50384f5c577a260a1d53f1f59a828c7266d321c9b7d00d345693783f66616055 +ipython-genutils==0.2.0 ; python_version >= "3.10" and python_version < "4.0" \ + --hash=sha256:72dd37233799e619666c9f639a9da83c34013a73e8bbc79a7a6348d93c61fab8 \ + --hash=sha256:eb2e116e75ecef9d4d228fdc66af54269afa26ab4463042e33785b887c628ba8 +ipython==8.21.0 ; python_version >= "3.10" and python_version < "4.0" \ + --hash=sha256:1050a3ab8473488d7eee163796b02e511d0735cf43a04ba2a8348bd0f2eaf8a5 \ + --hash=sha256:48fbc236fbe0e138b88773fa0437751f14c3645fb483f1d4c5dee58b37e5ce73 +ipywidgets==8.1.2 ; python_version >= "3.10" and python_version < "4.0" \ + --hash=sha256:bbe43850d79fb5e906b14801d6c01402857996864d1e5b6fa62dd2ee35559f60 \ + --hash=sha256:d0b9b41e49bae926a866e613a39b0f0097745d2b9f1f3dd406641b4a57ec42c9 +isoduration==20.11.0 ; python_version >= "3.10" and python_version < "4.0" \ + --hash=sha256:ac2f9015137935279eac671f94f89eb00584f940f5dc49462a0c4ee692ba1bd9 \ + --hash=sha256:b2904c2a4228c3d44f409c8ae8e2370eb21a26f7ac2ec5446df141dde3452042 +isort==5.13.2 ; python_version >= "3.10" and python_version < "4.0" \ + --hash=sha256:48fdfcb9face5d58a4f6dde2e72a1fb8dcaf8ab26f95ab49fab84c2ddefb0109 \ + --hash=sha256:8ca5e72a8d85860d5a3fa69b8745237f2939afe12dbf656afbcb47fe72d947a6 +jedi==0.19.1 ; python_version >= "3.10" and python_version < "4.0" \ + --hash=sha256:cf0496f3651bc65d7174ac1b7d043eff454892c708a87d1b683e57b569927ffd \ + --hash=sha256:e983c654fe5c02867aef4cdfce5a2fbb4a50adc0af145f70504238f18ef5e7e0 +jinja2==3.1.3 ; python_version >= "3.10" and python_version < "4.0" \ + --hash=sha256:7d6d50dd97d52cbc355597bd845fabfbac3f551e1f99619e39a35ce8c370b5fa \ + --hash=sha256:ac8bd6544d4bb2c9792bf3a159e80bba8fda7f07e81bc3aed565432d5925ba90 +jsonpointer==2.4 ; python_version >= "3.10" and python_version < "4.0" \ + --hash=sha256:15d51bba20eea3165644553647711d150376234112651b4f1811022aecad7d7a \ + --hash=sha256:585cee82b70211fa9e6043b7bb89db6e1aa49524340dde8ad6b63206ea689d88 +jsonschema-specifications==2023.12.1 ; python_version >= "3.10" and python_version < "4.0" \ + --hash=sha256:48a76787b3e70f5ed53f1160d2b81f586e4ca6d1548c5de7085d1682674764cc \ + --hash=sha256:87e4fdf3a94858b8a2ba2778d9ba57d8a9cafca7c7489c46ba0d30a8bc6a9c3c +jsonschema==4.21.1 ; python_version >= "3.10" and python_version < "4.0" \ + --hash=sha256:7996507afae316306f9e2290407761157c6f78002dcf7419acb99822143d1c6f \ + --hash=sha256:85727c00279f5fa6bedbe6238d2aa6403bedd8b4864ab11207d07df3cc1b2ee5 +jsonschema[format-nongpl]==4.21.1 ; python_version >= "3.10" and python_version < "4.0" \ + --hash=sha256:7996507afae316306f9e2290407761157c6f78002dcf7419acb99822143d1c6f \ + --hash=sha256:85727c00279f5fa6bedbe6238d2aa6403bedd8b4864ab11207d07df3cc1b2ee5 +jupyter-client==7.4.9 ; python_version >= "3.10" and python_version < "4.0" \ + --hash=sha256:214668aaea208195f4c13d28eb272ba79f945fc0cf3f11c7092c20b2ca1980e7 \ + --hash=sha256:52be28e04171f07aed8f20e1616a5a552ab9fee9cbbe6c1896ae170c3880d392 +jupyter-console==6.6.3 ; python_version >= "3.10" and python_version < "4.0" \ + --hash=sha256:309d33409fcc92ffdad25f0bcdf9a4a9daa61b6f341177570fdac03de5352485 \ + --hash=sha256:566a4bf31c87adbfadf22cdf846e3069b59a71ed5da71d6ba4d8aaad14a53539 +jupyter-core==5.7.1 ; python_version >= "3.10" and python_version < "4.0" \ + --hash=sha256:c65c82126453a723a2804aa52409930434598fd9d35091d63dfb919d2b765bb7 \ + --hash=sha256:de61a9d7fc71240f688b2fb5ab659fbb56979458dc66a71decd098e03c79e218 +jupyter-events==0.9.0 ; python_version >= "3.10" and python_version < "4.0" \ + --hash=sha256:81ad2e4bc710881ec274d31c6c50669d71bbaa5dd9d01e600b56faa85700d399 \ + --hash=sha256:d853b3c10273ff9bc8bb8b30076d65e2c9685579db736873de6c2232dde148bf +jupyter-server-terminals==0.5.2 ; python_version >= "3.10" and python_version < "4.0" \ + --hash=sha256:1b80c12765da979513c42c90215481bbc39bd8ae7c0350b4f85bc3eb58d0fa80 \ + --hash=sha256:396b5ccc0881e550bf0ee7012c6ef1b53edbde69e67cab1d56e89711b46052e8 +jupyter-server==2.12.5 ; python_version >= "3.10" and python_version < "4.0" \ + --hash=sha256:0edb626c94baa22809be1323f9770cf1c00a952b17097592e40d03e6a3951689 \ + --hash=sha256:184a0f82809a8522777cfb6b760ab6f4b1bb398664c5860a27cec696cb884923 +jupyter==1.0.0 ; python_version >= "3.10" and python_version < "4.0" \ + --hash=sha256:3e1f86076bbb7c8c207829390305a2b1fe836d471ed54be66a3b8c41e7f46cc7 \ + --hash=sha256:5b290f93b98ffbc21c0c7e749f054b3267782166d72fa5e3ed1ed4eaf34a2b78 \ + --hash=sha256:d9dc4b3318f310e34c82951ea5d6683f67bed7def4b259fafbfe4f1beb1d8e5f +jupyterlab-pygments==0.3.0 ; python_version >= "3.10" and python_version < "4.0" \ + --hash=sha256:721aca4d9029252b11cfa9d185e5b5af4d54772bb8072f9b7036f4170054d35d \ + --hash=sha256:841a89020971da1d8693f1a99997aefc5dc424bb1b251fd6322462a1b8842780 +jupyterlab-widgets==3.0.10 ; python_version >= "3.10" and python_version < "4.0" \ + --hash=sha256:04f2ac04976727e4f9d0fa91cdc2f1ab860f965e504c29dbd6a65c882c9d04c0 \ + --hash=sha256:dd61f3ae7a5a7f80299e14585ce6cf3d6925a96c9103c978eda293197730cb64 +kiwisolver==1.4.5 ; python_version >= "3.10" and python_version < "4.0" \ + --hash=sha256:00bd361b903dc4bbf4eb165f24d1acbee754fce22ded24c3d56eec268658a5cf \ + --hash=sha256:040c1aebeda72197ef477a906782b5ab0d387642e93bda547336b8957c61022e \ + --hash=sha256:05703cf211d585109fcd72207a31bb170a0f22144d68298dc5e61b3c946518af \ + --hash=sha256:06f54715b7737c2fecdbf140d1afb11a33d59508a47bf11bb38ecf21dc9ab79f \ + --hash=sha256:0dc9db8e79f0036e8173c466d21ef18e1befc02de8bf8aa8dc0813a6dc8a7046 \ + --hash=sha256:0f114aa76dc1b8f636d077979c0ac22e7cd8f3493abbab152f20eb8d3cda71f3 \ + --hash=sha256:11863aa14a51fd6ec28688d76f1735f8f69ab1fabf388851a595d0721af042f5 \ + --hash=sha256:11c7de8f692fc99816e8ac50d1d1aef4f75126eefc33ac79aac02c099fd3db71 \ + --hash=sha256:11d011a7574eb3b82bcc9c1a1d35c1d7075677fdd15de527d91b46bd35e935ee \ + --hash=sha256:146d14bebb7f1dc4d5fbf74f8a6cb15ac42baadee8912eb84ac0b3b2a3dc6ac3 \ + --hash=sha256:15568384086b6df3c65353820a4473575dbad192e35010f622c6ce3eebd57af9 \ + --hash=sha256:19df6e621f6d8b4b9c4d45f40a66839294ff2bb235e64d2178f7522d9170ac5b \ + --hash=sha256:1b04139c4236a0f3aff534479b58f6f849a8b351e1314826c2d230849ed48985 \ + --hash=sha256:210ef2c3a1f03272649aff1ef992df2e724748918c4bc2d5a90352849eb40bea \ + --hash=sha256:2270953c0d8cdab5d422bee7d2007f043473f9d2999631c86a223c9db56cbd16 \ + --hash=sha256:2400873bccc260b6ae184b2b8a4fec0e4082d30648eadb7c3d9a13405d861e89 \ + --hash=sha256:2a40773c71d7ccdd3798f6489aaac9eee213d566850a9533f8d26332d626b82c \ + --hash=sha256:2c5674c4e74d939b9d91dda0fae10597ac7521768fec9e399c70a1f27e2ea2d9 \ + --hash=sha256:3195782b26fc03aa9c6913d5bad5aeb864bdc372924c093b0f1cebad603dd712 \ + --hash=sha256:31a82d498054cac9f6d0b53d02bb85811185bcb477d4b60144f915f3b3126342 \ + --hash=sha256:32d5cf40c4f7c7b3ca500f8985eb3fb3a7dfc023215e876f207956b5ea26632a \ + --hash=sha256:346f5343b9e3f00b8db8ba359350eb124b98c99efd0b408728ac6ebf38173958 \ + --hash=sha256:378a214a1e3bbf5ac4a8708304318b4f890da88c9e6a07699c4ae7174c09a68d \ + --hash=sha256:39b42c68602539407884cf70d6a480a469b93b81b7701378ba5e2328660c847a \ + --hash=sha256:3a2b053a0ab7a3960c98725cfb0bf5b48ba82f64ec95fe06f1d06c99b552e130 \ + --hash=sha256:3aba7311af82e335dd1e36ffff68aaca609ca6290c2cb6d821a39aa075d8e3ff \ + --hash=sha256:3cd32d6c13807e5c66a7cbb79f90b553642f296ae4518a60d8d76243b0ad2898 \ + --hash=sha256:3edd2fa14e68c9be82c5b16689e8d63d89fe927e56debd6e1dbce7a26a17f81b \ + --hash=sha256:4c380469bd3f970ef677bf2bcba2b6b0b4d5c75e7a020fb863ef75084efad66f \ + --hash=sha256:4e66e81a5779b65ac21764c295087de82235597a2293d18d943f8e9e32746265 \ + --hash=sha256:53abb58632235cd154176ced1ae8f0d29a6657aa1aa9decf50b899b755bc2b93 \ + --hash=sha256:5794cf59533bc3f1b1c821f7206a3617999db9fbefc345360aafe2e067514929 \ + --hash=sha256:59415f46a37f7f2efeec758353dd2eae1b07640d8ca0f0c42548ec4125492635 \ + --hash=sha256:59ec7b7c7e1a61061850d53aaf8e93db63dce0c936db1fda2658b70e4a1be709 \ + --hash=sha256:59edc41b24031bc25108e210c0def6f6c2191210492a972d585a06ff246bb79b \ + --hash=sha256:5a580c91d686376f0f7c295357595c5a026e6cbc3d77b7c36e290201e7c11ecb \ + --hash=sha256:5b94529f9b2591b7af5f3e0e730a4e0a41ea174af35a4fd067775f9bdfeee01a \ + --hash=sha256:5c7b3b3a728dc6faf3fc372ef24f21d1e3cee2ac3e9596691d746e5a536de920 \ + --hash=sha256:5c90ae8c8d32e472be041e76f9d2f2dbff4d0b0be8bd4041770eddb18cf49a4e \ + --hash=sha256:5e7139af55d1688f8b960ee9ad5adafc4ac17c1c473fe07133ac092310d76544 \ + --hash=sha256:5ff5cf3571589b6d13bfbfd6bcd7a3f659e42f96b5fd1c4830c4cf21d4f5ef45 \ + --hash=sha256:620ced262a86244e2be10a676b646f29c34537d0d9cc8eb26c08f53d98013390 \ + --hash=sha256:6512cb89e334e4700febbffaaa52761b65b4f5a3cf33f960213d5656cea36a77 \ + --hash=sha256:6c08e1312a9cf1074d17b17728d3dfce2a5125b2d791527f33ffbe805200a355 \ + --hash=sha256:6c3bd3cde54cafb87d74d8db50b909705c62b17c2099b8f2e25b461882e544ff \ + --hash=sha256:6ef7afcd2d281494c0a9101d5c571970708ad911d028137cd558f02b851c08b4 \ + --hash=sha256:7269d9e5f1084a653d575c7ec012ff57f0c042258bf5db0954bf551c158466e7 \ + --hash=sha256:72d40b33e834371fd330fb1472ca19d9b8327acb79a5821d4008391db8e29f20 \ + --hash=sha256:74d1b44c6cfc897df648cc9fdaa09bc3e7679926e6f96df05775d4fb3946571c \ + --hash=sha256:74db36e14a7d1ce0986fa104f7d5637aea5c82ca6326ed0ec5694280942d1162 \ + --hash=sha256:763773d53f07244148ccac5b084da5adb90bfaee39c197554f01b286cf869228 \ + --hash=sha256:76c6a5964640638cdeaa0c359382e5703e9293030fe730018ca06bc2010c4437 \ + --hash=sha256:76d9289ed3f7501012e05abb8358bbb129149dbd173f1f57a1bf1c22d19ab7cc \ + --hash=sha256:7931d8f1f67c4be9ba1dd9c451fb0eeca1a25b89e4d3f89e828fe12a519b782a \ + --hash=sha256:7b8b454bac16428b22560d0a1cf0a09875339cab69df61d7805bf48919415901 \ + --hash=sha256:7e5bab140c309cb3a6ce373a9e71eb7e4873c70c2dda01df6820474f9889d6d4 \ + --hash=sha256:83d78376d0d4fd884e2c114d0621624b73d2aba4e2788182d286309ebdeed770 \ + --hash=sha256:852542f9481f4a62dbb5dd99e8ab7aedfeb8fb6342349a181d4036877410f525 \ + --hash=sha256:85267bd1aa8880a9c88a8cb71e18d3d64d2751a790e6ca6c27b8ccc724bcd5ad \ + --hash=sha256:88a2df29d4724b9237fc0c6eaf2a1adae0cdc0b3e9f4d8e7dc54b16812d2d81a \ + --hash=sha256:88b9f257ca61b838b6f8094a62418421f87ac2a1069f7e896c36a7d86b5d4c29 \ + --hash=sha256:8ab3919a9997ab7ef2fbbed0cc99bb28d3c13e6d4b1ad36e97e482558a91be90 \ + --hash=sha256:92dea1ffe3714fa8eb6a314d2b3c773208d865a0e0d35e713ec54eea08a66250 \ + --hash=sha256:9407b6a5f0d675e8a827ad8742e1d6b49d9c1a1da5d952a67d50ef5f4170b18d \ + --hash=sha256:9408acf3270c4b6baad483865191e3e582b638b1654a007c62e3efe96f09a9a3 \ + --hash=sha256:955e8513d07a283056b1396e9a57ceddbd272d9252c14f154d450d227606eb54 \ + --hash=sha256:9db8ea4c388fdb0f780fe91346fd438657ea602d58348753d9fb265ce1bca67f \ + --hash=sha256:9eaa8b117dc8337728e834b9c6e2611f10c79e38f65157c4c38e9400286f5cb1 \ + --hash=sha256:a51a263952b1429e429ff236d2f5a21c5125437861baeed77f5e1cc2d2c7c6da \ + --hash=sha256:a6aa6315319a052b4ee378aa171959c898a6183f15c1e541821c5c59beaa0238 \ + --hash=sha256:aa12042de0171fad672b6c59df69106d20d5596e4f87b5e8f76df757a7c399aa \ + --hash=sha256:aaf7be1207676ac608a50cd08f102f6742dbfc70e8d60c4db1c6897f62f71523 \ + --hash=sha256:b0157420efcb803e71d1b28e2c287518b8808b7cf1ab8af36718fd0a2c453eb0 \ + --hash=sha256:b3f7e75f3015df442238cca659f8baa5f42ce2a8582727981cbfa15fee0ee205 \ + --hash=sha256:b9098e0049e88c6a24ff64545cdfc50807818ba6c1b739cae221bbbcbc58aad3 \ + --hash=sha256:ba55dce0a9b8ff59495ddd050a0225d58bd0983d09f87cfe2b6aec4f2c1234e4 \ + --hash=sha256:bb86433b1cfe686da83ce32a9d3a8dd308e85c76b60896d58f082136f10bffac \ + --hash=sha256:bbea0db94288e29afcc4c28afbf3a7ccaf2d7e027489c449cf7e8f83c6346eb9 \ + --hash=sha256:bbf1d63eef84b2e8c89011b7f2235b1e0bf7dacc11cac9431fc6468e99ac77fb \ + --hash=sha256:c7940c1dc63eb37a67721b10d703247552416f719c4188c54e04334321351ced \ + --hash=sha256:c9bf3325c47b11b2e51bca0824ea217c7cd84491d8ac4eefd1e409705ef092bd \ + --hash=sha256:cdc8a402aaee9a798b50d8b827d7ecf75edc5fb35ea0f91f213ff927c15f4ff0 \ + --hash=sha256:ceec1a6bc6cab1d6ff5d06592a91a692f90ec7505d6463a88a52cc0eb58545da \ + --hash=sha256:cfe6ab8da05c01ba6fbea630377b5da2cd9bcbc6338510116b01c1bc939a2c18 \ + --hash=sha256:d099e745a512f7e3bbe7249ca835f4d357c586d78d79ae8f1dcd4d8adeb9bda9 \ + --hash=sha256:d0ef46024e6a3d79c01ff13801cb19d0cad7fd859b15037aec74315540acc276 \ + --hash=sha256:d2e5a98f0ec99beb3c10e13b387f8db39106d53993f498b295f0c914328b1333 \ + --hash=sha256:da4cfb373035def307905d05041c1d06d8936452fe89d464743ae7fb8371078b \ + --hash=sha256:da802a19d6e15dffe4b0c24b38b3af68e6c1a68e6e1d8f30148c83864f3881db \ + --hash=sha256:dced8146011d2bc2e883f9bd68618b8247387f4bbec46d7392b3c3b032640126 \ + --hash=sha256:dfdd7c0b105af050eb3d64997809dc21da247cf44e63dc73ff0fd20b96be55a9 \ + --hash=sha256:e368f200bbc2e4f905b8e71eb38b3c04333bddaa6a2464a6355487b02bb7fb09 \ + --hash=sha256:e391b1f0a8a5a10ab3b9bb6afcfd74f2175f24f8975fb87ecae700d1503cdee0 \ + --hash=sha256:e57e563a57fb22a142da34f38acc2fc1a5c864bc29ca1517a88abc963e60d6ec \ + --hash=sha256:e5d706eba36b4c4d5bc6c6377bb6568098765e990cfc21ee16d13963fab7b3e7 \ + --hash=sha256:ec20916e7b4cbfb1f12380e46486ec4bcbaa91a9c448b97023fde0d5bbf9e4ff \ + --hash=sha256:f1d072c2eb0ad60d4c183f3fb44ac6f73fb7a8f16a2694a91f988275cbf352f9 \ + --hash=sha256:f846c260f483d1fd217fe5ed7c173fb109efa6b1fc8381c8b7552c5781756192 \ + --hash=sha256:f91de7223d4c7b793867797bacd1ee53bfe7359bd70d27b7b58a04efbb9436c8 \ + --hash=sha256:faae4860798c31530dd184046a900e652c95513796ef51a12bc086710c2eec4d \ + --hash=sha256:fc579bf0f502e54926519451b920e875f433aceb4624a3646b3252b5caa9e0b6 \ + --hash=sha256:fcc700eadbbccbf6bc1bcb9dbe0786b4b1cb91ca0dcda336eef5c2beed37b797 \ + --hash=sha256:fd32ea360bcbb92d28933fc05ed09bffcb1704ba3fc7942e81db0fd4f81a7892 \ + --hash=sha256:fdb7adb641a0d13bdcd4ef48e062363d8a9ad4a182ac7647ec88f695e719ae9f +lxml==5.1.0 ; python_version >= "3.10" and python_version < "4.0" \ + --hash=sha256:13521a321a25c641b9ea127ef478b580b5ec82aa2e9fc076c86169d161798b01 \ + --hash=sha256:14deca1460b4b0f6b01f1ddc9557704e8b365f55c63070463f6c18619ebf964f \ + --hash=sha256:16018f7099245157564d7148165132c70adb272fb5a17c048ba70d9cc542a1a1 \ + --hash=sha256:16dd953fb719f0ffc5bc067428fc9e88f599e15723a85618c45847c96f11f431 \ + --hash=sha256:19a1bc898ae9f06bccb7c3e1dfd73897ecbbd2c96afe9095a6026016e5ca97b8 \ + --hash=sha256:1ad17c20e3666c035db502c78b86e58ff6b5991906e55bdbef94977700c72623 \ + --hash=sha256:22b7ee4c35f374e2c20337a95502057964d7e35b996b1c667b5c65c567d2252a \ + --hash=sha256:24ef5a4631c0b6cceaf2dbca21687e29725b7c4e171f33a8f8ce23c12558ded1 \ + --hash=sha256:25663d6e99659544ee8fe1b89b1a8c0aaa5e34b103fab124b17fa958c4a324a6 \ + --hash=sha256:262bc5f512a66b527d026518507e78c2f9c2bd9eb5c8aeeb9f0eb43fcb69dc67 \ + --hash=sha256:280f3edf15c2a967d923bcfb1f8f15337ad36f93525828b40a0f9d6c2ad24890 \ + --hash=sha256:2ad3a8ce9e8a767131061a22cd28fdffa3cd2dc193f399ff7b81777f3520e372 \ + --hash=sha256:2befa20a13f1a75c751f47e00929fb3433d67eb9923c2c0b364de449121f447c \ + --hash=sha256:2f37c6d7106a9d6f0708d4e164b707037b7380fcd0b04c5bd9cae1fb46a856fb \ + --hash=sha256:304128394c9c22b6569eba2a6d98392b56fbdfbad58f83ea702530be80d0f9df \ + --hash=sha256:342e95bddec3a698ac24378d61996b3ee5ba9acfeb253986002ac53c9a5f6f84 \ + --hash=sha256:3aeca824b38ca78d9ee2ab82bd9883083d0492d9d17df065ba3b94e88e4d7ee6 \ + --hash=sha256:3d184e0d5c918cff04cdde9dbdf9600e960161d773666958c9d7b565ccc60c45 \ + --hash=sha256:3e3898ae2b58eeafedfe99e542a17859017d72d7f6a63de0f04f99c2cb125936 \ + --hash=sha256:3eea6ed6e6c918e468e693c41ef07f3c3acc310b70ddd9cc72d9ef84bc9564ca \ + --hash=sha256:3f14a4fb1c1c402a22e6a341a24c1341b4a3def81b41cd354386dcb795f83897 \ + --hash=sha256:436a943c2900bb98123b06437cdd30580a61340fbdb7b28aaf345a459c19046a \ + --hash=sha256:4946e7f59b7b6a9e27bef34422f645e9a368cb2be11bf1ef3cafc39a1f6ba68d \ + --hash=sha256:49a9b4af45e8b925e1cd6f3b15bbba2c81e7dba6dce170c677c9cda547411e14 \ + --hash=sha256:4f8b0c78e7aac24979ef09b7f50da871c2de2def043d468c4b41f512d831e912 \ + --hash=sha256:52427a7eadc98f9e62cb1368a5079ae826f94f05755d2d567d93ee1bc3ceb354 \ + --hash=sha256:5e53d7e6a98b64fe54775d23a7c669763451340c3d44ad5e3a3b48a1efbdc96f \ + --hash=sha256:5fcfbebdb0c5d8d18b84118842f31965d59ee3e66996ac842e21f957eb76138c \ + --hash=sha256:601f4a75797d7a770daed8b42b97cd1bb1ba18bd51a9382077a6a247a12aa38d \ + --hash=sha256:61c5a7edbd7c695e54fca029ceb351fc45cd8860119a0f83e48be44e1c464862 \ + --hash=sha256:6a2a2c724d97c1eb8cf966b16ca2915566a4904b9aad2ed9a09c748ffe14f969 \ + --hash=sha256:6d48fc57e7c1e3df57be5ae8614bab6d4e7b60f65c5457915c26892c41afc59e \ + --hash=sha256:6f11b77ec0979f7e4dc5ae081325a2946f1fe424148d3945f943ceaede98adb8 \ + --hash=sha256:704f5572ff473a5f897745abebc6df40f22d4133c1e0a1f124e4f2bd3330ff7e \ + --hash=sha256:725e171e0b99a66ec8605ac77fa12239dbe061482ac854d25720e2294652eeaa \ + --hash=sha256:7cfced4a069003d8913408e10ca8ed092c49a7f6cefee9bb74b6b3e860683b45 \ + --hash=sha256:7ec465e6549ed97e9f1e5ed51c657c9ede767bc1c11552f7f4d022c4df4a977a \ + --hash=sha256:82bddf0e72cb2af3cbba7cec1d2fd11fda0de6be8f4492223d4a268713ef2147 \ + --hash=sha256:82cd34f1081ae4ea2ede3d52f71b7be313756e99b4b5f829f89b12da552d3aa3 \ + --hash=sha256:843b9c835580d52828d8f69ea4302537337a21e6b4f1ec711a52241ba4a824f3 \ + --hash=sha256:877efb968c3d7eb2dad540b6cabf2f1d3c0fbf4b2d309a3c141f79c7e0061324 \ + --hash=sha256:8b9f19df998761babaa7f09e6bc169294eefafd6149aaa272081cbddc7ba4ca3 \ + --hash=sha256:8cf5877f7ed384dabfdcc37922c3191bf27e55b498fecece9fd5c2c7aaa34c33 \ + --hash=sha256:8d2900b7f5318bc7ad8631d3d40190b95ef2aa8cc59473b73b294e4a55e9f30f \ + --hash=sha256:8d7b4beebb178e9183138f552238f7e6613162a42164233e2bda00cb3afac58f \ + --hash=sha256:8f52fe6859b9db71ee609b0c0a70fea5f1e71c3462ecf144ca800d3f434f0764 \ + --hash=sha256:98f3f020a2b736566c707c8e034945c02aa94e124c24f77ca097c446f81b01f1 \ + --hash=sha256:9aa543980ab1fbf1720969af1d99095a548ea42e00361e727c58a40832439114 \ + --hash=sha256:9b99f564659cfa704a2dd82d0684207b1aadf7d02d33e54845f9fc78e06b7581 \ + --hash=sha256:9bcf86dfc8ff3e992fed847c077bd875d9e0ba2fa25d859c3a0f0f76f07f0c8d \ + --hash=sha256:9bd0ae7cc2b85320abd5e0abad5ccee5564ed5f0cc90245d2f9a8ef330a8deae \ + --hash=sha256:9d3c0f8567ffe7502d969c2c1b809892dc793b5d0665f602aad19895f8d508da \ + --hash=sha256:9e5ac3437746189a9b4121db2a7b86056ac8786b12e88838696899328fc44bb2 \ + --hash=sha256:a36c506e5f8aeb40680491d39ed94670487ce6614b9d27cabe45d94cd5d63e1e \ + --hash=sha256:a5ab722ae5a873d8dcee1f5f45ddd93c34210aed44ff2dc643b5025981908cda \ + --hash=sha256:a96f02ba1bcd330807fc060ed91d1f7a20853da6dd449e5da4b09bfcc08fdcf5 \ + --hash=sha256:acb6b2f96f60f70e7f34efe0c3ea34ca63f19ca63ce90019c6cbca6b676e81fa \ + --hash=sha256:ae15347a88cf8af0949a9872b57a320d2605ae069bcdf047677318bc0bba45b1 \ + --hash=sha256:af8920ce4a55ff41167ddbc20077f5698c2e710ad3353d32a07d3264f3a2021e \ + --hash=sha256:afd825e30f8d1f521713a5669b63657bcfe5980a916c95855060048b88e1adb7 \ + --hash=sha256:b21b4031b53d25b0858d4e124f2f9131ffc1530431c6d1321805c90da78388d1 \ + --hash=sha256:b4b68c961b5cc402cbd99cca5eb2547e46ce77260eb705f4d117fd9c3f932b95 \ + --hash=sha256:b66aa6357b265670bb574f050ffceefb98549c721cf28351b748be1ef9577d93 \ + --hash=sha256:b9e240ae0ba96477682aa87899d94ddec1cc7926f9df29b1dd57b39e797d5ab5 \ + --hash=sha256:bc64d1b1dab08f679fb89c368f4c05693f58a9faf744c4d390d7ed1d8223869b \ + --hash=sha256:bf8443781533b8d37b295016a4b53c1494fa9a03573c09ca5104550c138d5c05 \ + --hash=sha256:c26aab6ea9c54d3bed716b8851c8bfc40cb249b8e9880e250d1eddde9f709bf5 \ + --hash=sha256:c3cd1fc1dc7c376c54440aeaaa0dcc803d2126732ff5c6b68ccd619f2e64be4f \ + --hash=sha256:c7257171bb8d4432fe9d6fdde4d55fdbe663a63636a17f7f9aaba9bcb3153ad7 \ + --hash=sha256:d42e3a3fc18acc88b838efded0e6ec3edf3e328a58c68fbd36a7263a874906c8 \ + --hash=sha256:d74fcaf87132ffc0447b3c685a9f862ffb5b43e70ea6beec2fb8057d5d2a1fea \ + --hash=sha256:d8c1d679df4361408b628f42b26a5d62bd3e9ba7f0c0e7969f925021554755aa \ + --hash=sha256:e856c1c7255c739434489ec9c8aa9cdf5179785d10ff20add308b5d673bed5cd \ + --hash=sha256:eac68f96539b32fce2c9b47eb7c25bb2582bdaf1bbb360d25f564ee9e04c542b \ + --hash=sha256:ed7326563024b6e91fef6b6c7a1a2ff0a71b97793ac33dbbcf38f6005e51ff6e \ + --hash=sha256:ed8c3d2cd329bf779b7ed38db176738f3f8be637bb395ce9629fc76f78afe3d4 \ + --hash=sha256:f4c9bda132ad108b387c33fabfea47866af87f4ea6ffb79418004f0521e63204 \ + --hash=sha256:f643ffd2669ffd4b5a3e9b41c909b72b2a1d5e4915da90a77e119b8d48ce867a +m2r2==0.3.3.post2 ; python_version >= "3.10" and python_version < "4.0" \ + --hash=sha256:86157721eb6eabcd54d4eea7195890cc58fa6188b8d0abea633383cfbb5e11e3 \ + --hash=sha256:e62bcb0e74b3ce19cda0737a0556b04cf4a43b785072fcef474558f2c1482ca8 +markupsafe==2.1.5 ; python_version >= "3.10" and python_version < "4.0" \ + --hash=sha256:00e046b6dd71aa03a41079792f8473dc494d564611a8f89bbbd7cb93295ebdcf \ + --hash=sha256:075202fa5b72c86ad32dc7d0b56024ebdbcf2048c0ba09f1cde31bfdd57bcfff \ + --hash=sha256:0e397ac966fdf721b2c528cf028494e86172b4feba51d65f81ffd65c63798f3f \ + --hash=sha256:17b950fccb810b3293638215058e432159d2b71005c74371d784862b7e4683f3 \ + --hash=sha256:1f3fbcb7ef1f16e48246f704ab79d79da8a46891e2da03f8783a5b6fa41a9532 \ + --hash=sha256:2174c595a0d73a3080ca3257b40096db99799265e1c27cc5a610743acd86d62f \ + --hash=sha256:2b7c57a4dfc4f16f7142221afe5ba4e093e09e728ca65c51f5620c9aaeb9a617 \ + --hash=sha256:2d2d793e36e230fd32babe143b04cec8a8b3eb8a3122d2aceb4a371e6b09b8df \ + --hash=sha256:30b600cf0a7ac9234b2638fbc0fb6158ba5bdcdf46aeb631ead21248b9affbc4 \ + --hash=sha256:397081c1a0bfb5124355710fe79478cdbeb39626492b15d399526ae53422b906 \ + --hash=sha256:3a57fdd7ce31c7ff06cdfbf31dafa96cc533c21e443d57f5b1ecc6cdc668ec7f \ + --hash=sha256:3c6b973f22eb18a789b1460b4b91bf04ae3f0c4234a0a6aa6b0a92f6f7b951d4 \ + --hash=sha256:3e53af139f8579a6d5f7b76549125f0d94d7e630761a2111bc431fd820e163b8 \ + --hash=sha256:4096e9de5c6fdf43fb4f04c26fb114f61ef0bf2e5604b6ee3019d51b69e8c371 \ + --hash=sha256:4275d846e41ecefa46e2015117a9f491e57a71ddd59bbead77e904dc02b1bed2 \ + --hash=sha256:4c31f53cdae6ecfa91a77820e8b151dba54ab528ba65dfd235c80b086d68a465 \ + --hash=sha256:4f11aa001c540f62c6166c7726f71f7573b52c68c31f014c25cc7901deea0b52 \ + --hash=sha256:5049256f536511ee3f7e1b3f87d1d1209d327e818e6ae1365e8653d7e3abb6a6 \ + --hash=sha256:58c98fee265677f63a4385256a6d7683ab1832f3ddd1e66fe948d5880c21a169 \ + --hash=sha256:598e3276b64aff0e7b3451b72e94fa3c238d452e7ddcd893c3ab324717456bad \ + --hash=sha256:5b7b716f97b52c5a14bffdf688f971b2d5ef4029127f1ad7a513973cfd818df2 \ + --hash=sha256:5dedb4db619ba5a2787a94d877bc8ffc0566f92a01c0ef214865e54ecc9ee5e0 \ + --hash=sha256:619bc166c4f2de5caa5a633b8b7326fbe98e0ccbfacabd87268a2b15ff73a029 \ + --hash=sha256:629ddd2ca402ae6dbedfceeba9c46d5f7b2a61d9749597d4307f943ef198fc1f \ + --hash=sha256:656f7526c69fac7f600bd1f400991cc282b417d17539a1b228617081106feb4a \ + --hash=sha256:6ec585f69cec0aa07d945b20805be741395e28ac1627333b1c5b0105962ffced \ + --hash=sha256:72b6be590cc35924b02c78ef34b467da4ba07e4e0f0454a2c5907f473fc50ce5 \ + --hash=sha256:7502934a33b54030eaf1194c21c692a534196063db72176b0c4028e140f8f32c \ + --hash=sha256:7a68b554d356a91cce1236aa7682dc01df0edba8d043fd1ce607c49dd3c1edcf \ + --hash=sha256:7b2e5a267c855eea6b4283940daa6e88a285f5f2a67f2220203786dfa59b37e9 \ + --hash=sha256:823b65d8706e32ad2df51ed89496147a42a2a6e01c13cfb6ffb8b1e92bc910bb \ + --hash=sha256:8590b4ae07a35970728874632fed7bd57b26b0102df2d2b233b6d9d82f6c62ad \ + --hash=sha256:8dd717634f5a044f860435c1d8c16a270ddf0ef8588d4887037c5028b859b0c3 \ + --hash=sha256:8dec4936e9c3100156f8a2dc89c4b88d5c435175ff03413b443469c7c8c5f4d1 \ + --hash=sha256:97cafb1f3cbcd3fd2b6fbfb99ae11cdb14deea0736fc2b0952ee177f2b813a46 \ + --hash=sha256:a17a92de5231666cfbe003f0e4b9b3a7ae3afb1ec2845aadc2bacc93ff85febc \ + --hash=sha256:a549b9c31bec33820e885335b451286e2969a2d9e24879f83fe904a5ce59d70a \ + --hash=sha256:ac07bad82163452a6884fe8fa0963fb98c2346ba78d779ec06bd7a6262132aee \ + --hash=sha256:ae2ad8ae6ebee9d2d94b17fb62763125f3f374c25618198f40cbb8b525411900 \ + --hash=sha256:b91c037585eba9095565a3556f611e3cbfaa42ca1e865f7b8015fe5c7336d5a5 \ + --hash=sha256:bc1667f8b83f48511b94671e0e441401371dfd0f0a795c7daa4a3cd1dde55bea \ + --hash=sha256:bec0a414d016ac1a18862a519e54b2fd0fc8bbfd6890376898a6c0891dd82e9f \ + --hash=sha256:bf50cd79a75d181c9181df03572cdce0fbb75cc353bc350712073108cba98de5 \ + --hash=sha256:bff1b4290a66b490a2f4719358c0cdcd9bafb6b8f061e45c7a2460866bf50c2e \ + --hash=sha256:c061bb86a71b42465156a3ee7bd58c8c2ceacdbeb95d05a99893e08b8467359a \ + --hash=sha256:c8b29db45f8fe46ad280a7294f5c3ec36dbac9491f2d1c17345be8e69cc5928f \ + --hash=sha256:ce409136744f6521e39fd8e2a24c53fa18ad67aa5bc7c2cf83645cce5b5c4e50 \ + --hash=sha256:d050b3361367a06d752db6ead6e7edeb0009be66bc3bae0ee9d97fb326badc2a \ + --hash=sha256:d283d37a890ba4c1ae73ffadf8046435c76e7bc2247bbb63c00bd1a709c6544b \ + --hash=sha256:d9fad5155d72433c921b782e58892377c44bd6252b5af2f67f16b194987338a4 \ + --hash=sha256:daa4ee5a243f0f20d528d939d06670a298dd39b1ad5f8a72a4275124a7819eff \ + --hash=sha256:db0b55e0f3cc0be60c1f19efdde9a637c32740486004f20d1cff53c3c0ece4d2 \ + --hash=sha256:e61659ba32cf2cf1481e575d0462554625196a1f2fc06a1c777d3f48e8865d46 \ + --hash=sha256:ea3d8a3d18833cf4304cd2fc9cbb1efe188ca9b5efef2bdac7adc20594a0e46b \ + --hash=sha256:ec6a563cff360b50eed26f13adc43e61bc0c04d94b8be985e6fb24b81f6dcfdf \ + --hash=sha256:f5dfb42c4604dddc8e4305050aa6deb084540643ed5804d7455b5df8fe16f5e5 \ + --hash=sha256:fa173ec60341d6bb97a89f5ea19c85c5643c1e7dedebc22f5181eb73573142c5 \ + --hash=sha256:fa9db3f79de01457b03d4f01b34cf91bc0048eb2c3846ff26f66687c2f6d16ab \ + --hash=sha256:fce659a462a1be54d2ffcacea5e3ba2d74daa74f30f5f143fe0c58636e355fdd \ + --hash=sha256:ffee1f21e5ef0d712f9033568f8344d5da8cc2869dbd08d87c84656e6a2d2f68 +matplotlib-inline==0.1.6 ; python_version >= "3.10" and python_version < "4.0" \ + --hash=sha256:f1f41aab5328aa5aaea9b16d083b128102f8712542f819fe7e6a420ff581b311 \ + --hash=sha256:f887e5f10ba98e8d2b150ddcf4702c1e5f8b3a20005eb0f74bfdbd360ee6f304 +matplotlib==3.7.5 ; python_version >= "3.10" and python_version < "4.0" \ + --hash=sha256:039ad54683a814002ff37bf7981aa1faa40b91f4ff84149beb53d1eb64617980 \ + --hash=sha256:068ebcc59c072781d9dcdb82f0d3f1458271c2de7ca9c78f5bd672141091e9e1 \ + --hash=sha256:084f1f0f2f1010868c6f1f50b4e1c6f2fb201c58475494f1e5b66fed66093647 \ + --hash=sha256:090964d0afaff9c90e4d8de7836757e72ecfb252fb02884016d809239f715651 \ + --hash=sha256:0ccb830fc29442360d91be48527809f23a5dcaee8da5f4d9b2d5b867c1b087b8 \ + --hash=sha256:1210b7919b4ed94b5573870f316bca26de3e3b07ffdb563e79327dc0e6bba515 \ + --hash=sha256:167200ccfefd1674b60e957186dfd9baf58b324562ad1a28e5d0a6b3bea77905 \ + --hash=sha256:1dbcca4508bca7847fe2d64a05b237a3dcaec1f959aedb756d5b1c67b770c5ee \ + --hash=sha256:1e4e9a868e8163abaaa8259842d85f949a919e1ead17644fb77a60427c90473c \ + --hash=sha256:1e5c971558ebc811aa07f54c7b7c677d78aa518ef4c390e14673a09e0860184a \ + --hash=sha256:20da7924a08306a861b3f2d1da0d1aa9a6678e480cf8eacffe18b565af2813e7 \ + --hash=sha256:29b058738c104d0ca8806395f1c9089dfe4d4f0f78ea765c6c704469f3fffc81 \ + --hash=sha256:2a9a3f4d6a7f88a62a6a18c7e6a84aedcaf4faf0708b4ca46d87b19f1b526f88 \ + --hash=sha256:2b6aa62adb6c268fc87d80f963aca39c64615c31830b02697743c95590ce3fbb \ + --hash=sha256:34bceb9d8ddb142055ff27cd7135f539f2f01be2ce0bafbace4117abe58f8fe4 \ + --hash=sha256:3785bfd83b05fc0e0c2ae4c4a90034fe693ef96c679634756c50fe6efcc09856 \ + --hash=sha256:3b15c4c2d374f249f324f46e883340d494c01768dd5287f8bc00b65b625ab56c \ + --hash=sha256:3d028555421912307845e59e3de328260b26d055c5dac9b182cc9783854e98fb \ + --hash=sha256:4a87b69cb1cb20943010f63feb0b2901c17a3b435f75349fd9865713bfa63925 \ + --hash=sha256:4cdf4ef46c2a1609a50411b66940b31778db1e4b73d4ecc2eaa40bd588979b13 \ + --hash=sha256:4d742ccd1b09e863b4ca58291728db645b51dab343eebb08d5d4b31b308296ce \ + --hash=sha256:4ddf7fc0e0dc553891a117aa083039088d8a07686d4c93fb8a810adca68810af \ + --hash=sha256:53e64522934df6e1818b25fd48cf3b645b11740d78e6ef765fbb5fa5ce080d02 \ + --hash=sha256:5e7cc3078b019bb863752b8b60e8b269423000f1603cb2299608231996bd9d54 \ + --hash=sha256:6738c89a635ced486c8a20e20111d33f6398a9cbebce1ced59c211e12cd61455 \ + --hash=sha256:6b641b48c6819726ed47c55835cdd330e53747d4efff574109fd79b2d8a13748 \ + --hash=sha256:743b1c488ca6a2bc7f56079d282e44d236bf375968bfd1b7ba701fd4d0fa32d6 \ + --hash=sha256:9fc6fcfbc55cd719bc0bfa60bde248eb68cf43876d4c22864603bdd23962ba25 \ + --hash=sha256:a99866267da1e561c7776fe12bf4442174b79aac1a47bd7e627c7e4d077ebd83 \ + --hash=sha256:b45c9798ea6bb920cb77eb7306409756a7fab9db9b463e462618e0559aecb30e \ + --hash=sha256:b9b3fd853d4a7f008a938df909b96db0b454225f935d3917520305b90680579c \ + --hash=sha256:c5a2134162273eb8cdfd320ae907bf84d171de948e62180fa372a3ca7cf0f433 \ + --hash=sha256:cfff9b838531698ee40e40ea1a8a9dc2c01edb400b27d38de6ba44c1f9a8e3d2 \ + --hash=sha256:d3ce45010fefb028359accebb852ca0c21bd77ec0f281952831d235228f15810 \ + --hash=sha256:d3e3bc79b2d7d615067bd010caff9243ead1fc95cf735c16e4b2583173f717eb \ + --hash=sha256:e530ab6a0afd082d2e9c17eb1eb064a63c5b09bb607b2b74fa41adbe3e162286 \ + --hash=sha256:ec0e1adc0ad70ba8227e957551e25a9d2995e319c29f94a97575bb90fa1d4469 \ + --hash=sha256:efc6bb28178e844d1f408dd4d6341ee8a2e906fc9e0fa3dae497da4e0cab775d \ + --hash=sha256:f098ffbaab9df1e3ef04e5a5586a1e6b1791380698e84938d8640961c79b1fc0 \ + --hash=sha256:f0ad550da9f160737d7890217c5eeed4337d07e83ca1b2ca6535078f354e7675 \ + --hash=sha256:f0b60993ed3488b4532ec6b697059897891927cbfc2b8d458a891b60ec03d9d7 \ + --hash=sha256:f65342c147572673f02a4abec2d5a23ad9c3898167df9b47c149f32ce61ca078 \ + --hash=sha256:fa7ebc995a7d747dacf0a717d0eb3aa0f0c6a0e9ea88b0194d3a3cd241a1500f \ + --hash=sha256:fbea1e762b28400393d71be1a02144aa16692a3c4c676ba0178ce83fc2928fdd \ + --hash=sha256:fbf730fca3e1f23713bc1fae0a57db386e39dc81ea57dc305c67f628c1d7a342 \ + --hash=sha256:fd4028d570fa4b31b7b165d4a685942ae9cdc669f33741e388c01857d9723eab \ + --hash=sha256:fe184b4625b4052fa88ef350b815559dd90cc6cc8e97b62f966e1ca84074aafa +mccabe==0.7.0 ; python_version >= "3.10" and python_version < "4.0" \ + --hash=sha256:348e0240c33b60bbdf4e523192ef919f28cb2c3d7d5c7794f74009290f236325 \ + --hash=sha256:6c2d30ab6be0e4a46919781807b4f0d834ebdd6c6e3dca0bda5a15f863427b6e +mistune==0.8.4 ; python_version >= "3.10" and python_version < "4.0" \ + --hash=sha256:59a3429db53c50b5c6bcc8a07f8848cb00d7dc8bdb431a4ab41920d201d4756e \ + --hash=sha256:88a1051873018da288eee8538d476dffe1262495144b33ecb586c4ab266bb8d4 +mpmath==1.3.0 ; python_version >= "3.10" and python_version < "4.0" \ + --hash=sha256:7a28eb2a9774d00c7bc92411c19a89209d5da7c4c9a9e227be8330a23a25b91f \ + --hash=sha256:a0b2b9fe80bbcd81a6647ff13108738cfb482d481d826cc0e02f5b35e5c88d2c +mypy-extensions==1.0.0 ; python_version >= "3.10" and python_version < "4.0" \ + --hash=sha256:4392f6c0eb8a5668a69e23d168ffa70f0be9ccfd32b5cc2d26a34ae5b844552d \ + --hash=sha256:75dbf8955dc00442a438fc4d0666508a9a97b6bd41aa2f0ffe9d2f2725af0782 +mypy==1.8.0 ; python_version >= "3.10" and python_version < "4.0" \ + --hash=sha256:028cf9f2cae89e202d7b6593cd98db6759379f17a319b5faf4f9978d7084cdc6 \ + --hash=sha256:2afecd6354bbfb6e0160f4e4ad9ba6e4e003b767dd80d85516e71f2e955ab50d \ + --hash=sha256:2b5b6c721bd4aabaadead3a5e6fa85c11c6c795e0c81a7215776ef8afc66de02 \ + --hash=sha256:42419861b43e6962a649068a61f4a4839205a3ef525b858377a960b9e2de6e0d \ + --hash=sha256:42c6680d256ab35637ef88891c6bd02514ccb7e1122133ac96055ff458f93fc3 \ + --hash=sha256:485a8942f671120f76afffff70f259e1cd0f0cfe08f81c05d8816d958d4577d3 \ + --hash=sha256:4c886c6cce2d070bd7df4ec4a05a13ee20c0aa60cb587e8d1265b6c03cf91da3 \ + --hash=sha256:4e6d97288757e1ddba10dd9549ac27982e3e74a49d8d0179fc14d4365c7add66 \ + --hash=sha256:4ef4be7baf08a203170f29e89d79064463b7fc7a0908b9d0d5114e8009c3a259 \ + --hash=sha256:51720c776d148bad2372ca21ca29256ed483aa9a4cdefefcef49006dff2a6835 \ + --hash=sha256:52825b01f5c4c1c4eb0db253ec09c7aa17e1a7304d247c48b6f3599ef40db8bd \ + --hash=sha256:538fd81bb5e430cc1381a443971c0475582ff9f434c16cd46d2c66763ce85d9d \ + --hash=sha256:5c1538c38584029352878a0466f03a8ee7547d7bd9f641f57a0f3017a7c905b8 \ + --hash=sha256:6ff8b244d7085a0b425b56d327b480c3b29cafbd2eff27316a004f9a7391ae07 \ + --hash=sha256:7178def594014aa6c35a8ff411cf37d682f428b3b5617ca79029d8ae72f5402b \ + --hash=sha256:720a5ca70e136b675af3af63db533c1c8c9181314d207568bbe79051f122669e \ + --hash=sha256:7f1478736fcebb90f97e40aff11a5f253af890c845ee0c850fe80aa060a267c6 \ + --hash=sha256:855fe27b80375e5c5878492f0729540db47b186509c98dae341254c8f45f42ae \ + --hash=sha256:8963b83d53ee733a6e4196954502b33567ad07dfd74851f32be18eb932fb1cb9 \ + --hash=sha256:9261ed810972061388918c83c3f5cd46079d875026ba97380f3e3978a72f503d \ + --hash=sha256:99b00bc72855812a60d253420d8a2eae839b0afa4938f09f4d2aa9bb4654263a \ + --hash=sha256:ab3c84fa13c04aeeeabb2a7f67a25ef5d77ac9d6486ff33ded762ef353aa5592 \ + --hash=sha256:afe3fe972c645b4632c563d3f3eff1cdca2fa058f730df2b93a35e3b0c538218 \ + --hash=sha256:d19c413b3c07cbecf1f991e2221746b0d2a9410b59cb3f4fb9557f0365a1a817 \ + --hash=sha256:df9824ac11deaf007443e7ed2a4a26bebff98d2bc43c6da21b2b64185da011c4 \ + --hash=sha256:e46f44b54ebddbeedbd3d5b289a893219065ef805d95094d16a0af6630f5d410 \ + --hash=sha256:f5ac9a4eeb1ec0f1ccdc6f326bcdb464de5f80eb07fb38b5ddd7b0de6bc61e55 +nbclassic==1.0.0 ; python_version >= "3.10" and python_version < "4.0" \ + --hash=sha256:0ae11eb2319455d805596bf320336cda9554b41d99ab9a3c31bf8180bffa30e3 \ + --hash=sha256:f99e4769b4750076cd4235c044b61232110733322384a94a63791d2e7beacc66 +nbclient==0.9.0 ; python_version >= "3.10" and python_version < "4.0" \ + --hash=sha256:4b28c207877cf33ef3a9838cdc7a54c5ceff981194a82eac59d558f05487295e \ + --hash=sha256:a3a1ddfb34d4a9d17fc744d655962714a866639acd30130e9be84191cd97cd15 +nbconvert==6.5.4 ; python_version >= "3.10" and python_version < "4.0" \ + --hash=sha256:9e3c7c6d491374cbdd5f35d268c05809357716d346f4573186bbeab32ee50bc1 \ + --hash=sha256:d679a947f849a966cbbd0bf6e7fedcfdb64be3b20ce7cef11ad55c13f5820e19 +nbformat==5.9.2 ; python_version >= "3.10" and python_version < "4.0" \ + --hash=sha256:1c5172d786a41b82bcfd0c23f9e6b6f072e8fb49c39250219e4acfff1efe89e9 \ + --hash=sha256:5f98b5ba1997dff175e77e0c17d5c10a96eaed2cbd1de3533d1fc35d5e111192 +nest-asyncio==1.6.0 ; python_version >= "3.10" and python_version < "4.0" \ + --hash=sha256:6f172d5449aca15afd6c646851f4e31e02c598d553a667e38cafa997cfec55fe \ + --hash=sha256:87af6efd6b5e897c81050477ef65c62e2b2f35d51703cae01aff2905b1852e1c +networkx==3.2.1 ; python_version >= "3.10" and python_version < "4.0" \ + --hash=sha256:9f1bb5cf3409bf324e0a722c20bdb4c20ee39bf1c30ce8ae499c8502b0b5e0c6 \ + --hash=sha256:f18c69adc97877c42332c170849c96cefa91881c99a7cb3e95b7c659ebdc1ec2 +nodeenv==1.8.0 ; python_version >= "3.10" and python_version < "4.0" \ + --hash=sha256:d51e0c37e64fbf47d017feac3145cdbb58836d7eee8c6f6d3b6880c5456227d2 \ + --hash=sha256:df865724bb3c3adc86b3876fa209771517b0cfe596beff01a92700e0e8be4cec +notebook-shim==0.2.4 ; python_version >= "3.10" and python_version < "4.0" \ + --hash=sha256:411a5be4e9dc882a074ccbcae671eda64cceb068767e9a3419096986560e1cef \ + --hash=sha256:b4b2cfa1b65d98307ca24361f5b30fe785b53c3fd07b7a47e89acb5e6ac638cb +notebook==6.5.6 ; python_version >= "3.10" and python_version < "4.0" \ + --hash=sha256:b4625a4b7a597839dd3156b140d5ba2c7123761f98245a3290f67a8b8ee048d9 \ + --hash=sha256:c1e2eb2e3b6079a0552a04974883a48d04c3c05792170d64a4b23d707d453181 +numpy==1.26.4 ; python_version >= "3.10" and python_version < "4.0" \ + --hash=sha256:03a8c78d01d9781b28a6989f6fa1bb2c4f2d51201cf99d3dd875df6fbd96b23b \ + --hash=sha256:08beddf13648eb95f8d867350f6a018a4be2e5ad54c8d8caed89ebca558b2818 \ + --hash=sha256:1af303d6b2210eb850fcf03064d364652b7120803a0b872f5211f5234b399f20 \ + --hash=sha256:1dda2e7b4ec9dd512f84935c5f126c8bd8b9f2fc001e9f54af255e8c5f16b0e0 \ + --hash=sha256:2a02aba9ed12e4ac4eb3ea9421c420301a0c6460d9830d74a9df87efa4912010 \ + --hash=sha256:2e4ee3380d6de9c9ec04745830fd9e2eccb3e6cf790d39d7b98ffd19b0dd754a \ + --hash=sha256:3373d5d70a5fe74a2c1bb6d2cfd9609ecf686d47a2d7b1d37a8f3b6bf6003aea \ + --hash=sha256:47711010ad8555514b434df65f7d7b076bb8261df1ca9bb78f53d3b2db02e95c \ + --hash=sha256:4c66707fabe114439db9068ee468c26bbdf909cac0fb58686a42a24de1760c71 \ + --hash=sha256:50193e430acfc1346175fcbdaa28ffec49947a06918b7b92130744e81e640110 \ + --hash=sha256:52b8b60467cd7dd1e9ed082188b4e6bb35aa5cdd01777621a1658910745b90be \ + --hash=sha256:60dedbb91afcbfdc9bc0b1f3f402804070deed7392c23eb7a7f07fa857868e8a \ + --hash=sha256:62b8e4b1e28009ef2846b4c7852046736bab361f7aeadeb6a5b89ebec3c7055a \ + --hash=sha256:666dbfb6ec68962c033a450943ded891bed2d54e6755e35e5835d63f4f6931d5 \ + --hash=sha256:675d61ffbfa78604709862923189bad94014bef562cc35cf61d3a07bba02a7ed \ + --hash=sha256:679b0076f67ecc0138fd2ede3a8fd196dddc2ad3254069bcb9faf9a79b1cebcd \ + --hash=sha256:7349ab0fa0c429c82442a27a9673fc802ffdb7c7775fad780226cb234965e53c \ + --hash=sha256:7ab55401287bfec946ced39700c053796e7cc0e3acbef09993a9ad2adba6ca6e \ + --hash=sha256:7e50d0a0cc3189f9cb0aeb3a6a6af18c16f59f004b866cd2be1c14b36134a4a0 \ + --hash=sha256:95a7476c59002f2f6c590b9b7b998306fba6a5aa646b1e22ddfeaf8f78c3a29c \ + --hash=sha256:96ff0b2ad353d8f990b63294c8986f1ec3cb19d749234014f4e7eb0112ceba5a \ + --hash=sha256:9fad7dcb1aac3c7f0584a5a8133e3a43eeb2fe127f47e3632d43d677c66c102b \ + --hash=sha256:9ff0f4f29c51e2803569d7a51c2304de5554655a60c5d776e35b4a41413830d0 \ + --hash=sha256:a354325ee03388678242a4d7ebcd08b5c727033fcff3b2f536aea978e15ee9e6 \ + --hash=sha256:a4abb4f9001ad2858e7ac189089c42178fcce737e4169dc61321660f1a96c7d2 \ + --hash=sha256:ab47dbe5cc8210f55aa58e4805fe224dac469cde56b9f731a4c098b91917159a \ + --hash=sha256:afedb719a9dcfc7eaf2287b839d8198e06dcd4cb5d276a3df279231138e83d30 \ + --hash=sha256:b3ce300f3644fb06443ee2222c2201dd3a89ea6040541412b8fa189341847218 \ + --hash=sha256:b97fe8060236edf3662adfc2c633f56a08ae30560c56310562cb4f95500022d5 \ + --hash=sha256:bfe25acf8b437eb2a8b2d49d443800a5f18508cd811fea3181723922a8a82b07 \ + --hash=sha256:cd25bcecc4974d09257ffcd1f098ee778f7834c3ad767fe5db785be9a4aa9cb2 \ + --hash=sha256:d209d8969599b27ad20994c8e41936ee0964e6da07478d6c35016bc386b66ad4 \ + --hash=sha256:d5241e0a80d808d70546c697135da2c613f30e28251ff8307eb72ba696945764 \ + --hash=sha256:edd8b5fe47dab091176d21bb6de568acdd906d1887a4584a15a9a96a1dca06ef \ + --hash=sha256:f870204a840a60da0b12273ef34f7051e98c3b5961b61b0c2c1be6dfd64fbcd3 \ + --hash=sha256:ffa75af20b44f8dba823498024771d5ac50620e6915abac414251bd971b4529f +nvidia-cublas-cu12==12.1.3.1 ; platform_system == "Linux" and platform_machine == "x86_64" and python_version >= "3.10" and python_version < "4.0" \ + --hash=sha256:2b964d60e8cf11b5e1073d179d85fa340c120e99b3067558f3cf98dd69d02906 \ + --hash=sha256:ee53ccca76a6fc08fb9701aa95b6ceb242cdaab118c3bb152af4e579af792728 +nvidia-cuda-cupti-cu12==12.1.105 ; platform_system == "Linux" and platform_machine == "x86_64" and python_version >= "3.10" and python_version < "4.0" \ + --hash=sha256:bea8236d13a0ac7190bd2919c3e8e6ce1e402104276e6f9694479e48bb0eb2a4 \ + --hash=sha256:e54fde3983165c624cb79254ae9818a456eb6e87a7fd4d56a2352c24ee542d7e +nvidia-cuda-nvrtc-cu12==12.1.105 ; platform_system == "Linux" and platform_machine == "x86_64" and python_version >= "3.10" and python_version < "4.0" \ + --hash=sha256:0a98a522d9ff138b96c010a65e145dc1b4850e9ecb75a0172371793752fd46ed \ + --hash=sha256:339b385f50c309763ca65456ec75e17bbefcbbf2893f462cb8b90584cd27a1c2 +nvidia-cuda-runtime-cu12==12.1.105 ; platform_system == "Linux" and platform_machine == "x86_64" and python_version >= "3.10" and python_version < "4.0" \ + --hash=sha256:6e258468ddf5796e25f1dc591a31029fa317d97a0a94ed93468fc86301d61e40 \ + --hash=sha256:dfb46ef84d73fababab44cf03e3b83f80700d27ca300e537f85f636fac474344 +nvidia-cudnn-cu12==8.9.2.26 ; platform_system == "Linux" and platform_machine == "x86_64" and python_version >= "3.10" and python_version < "4.0" \ + --hash=sha256:5ccb288774fdfb07a7e7025ffec286971c06d8d7b4fb162525334616d7629ff9 +nvidia-cufft-cu12==11.0.2.54 ; platform_system == "Linux" and platform_machine == "x86_64" and python_version >= "3.10" and python_version < "4.0" \ + --hash=sha256:794e3948a1aa71fd817c3775866943936774d1c14e7628c74f6f7417224cdf56 \ + --hash=sha256:d9ac353f78ff89951da4af698f80870b1534ed69993f10a4cf1d96f21357e253 +nvidia-curand-cu12==10.3.2.106 ; platform_system == "Linux" and platform_machine == "x86_64" and python_version >= "3.10" and python_version < "4.0" \ + --hash=sha256:75b6b0c574c0037839121317e17fd01f8a69fd2ef8e25853d826fec30bdba74a \ + --hash=sha256:9d264c5036dde4e64f1de8c50ae753237c12e0b1348738169cd0f8a536c0e1e0 +nvidia-cusolver-cu12==11.4.5.107 ; platform_system == "Linux" and platform_machine == "x86_64" and python_version >= "3.10" and python_version < "4.0" \ + --hash=sha256:74e0c3a24c78612192a74fcd90dd117f1cf21dea4822e66d89e8ea80e3cd2da5 \ + --hash=sha256:8a7ec542f0412294b15072fa7dab71d31334014a69f953004ea7a118206fe0dd +nvidia-cusparse-cu12==12.1.0.106 ; platform_system == "Linux" and platform_machine == "x86_64" and python_version >= "3.10" and python_version < "4.0" \ + --hash=sha256:b798237e81b9719373e8fae8d4f091b70a0cf09d9d85c95a557e11df2d8e9a5a \ + --hash=sha256:f3b50f42cf363f86ab21f720998517a659a48131e8d538dc02f8768237bd884c +nvidia-nccl-cu12==2.19.3 ; platform_system == "Linux" and platform_machine == "x86_64" and python_version >= "3.10" and python_version < "4.0" \ + --hash=sha256:a9734707a2c96443331c1e48c717024aa6678a0e2a4cb66b2c364d18cee6b48d +nvidia-nvjitlink-cu12==12.3.101 ; platform_system == "Linux" and platform_machine == "x86_64" and python_version >= "3.10" and python_version < "4.0" \ + --hash=sha256:1b2e317e437433753530792f13eece58f0aec21a2b05903be7bffe58a606cbd1 \ + --hash=sha256:64335a8088e2b9d196ae8665430bc6a2b7e6ef2eb877a9c735c804bd4ff6467c +nvidia-nvtx-cu12==12.1.105 ; platform_system == "Linux" and platform_machine == "x86_64" and python_version >= "3.10" and python_version < "4.0" \ + --hash=sha256:65f4d98982b31b60026e0e6de73fbdfc09d08a96f4656dd3665ca616a11e1e82 \ + --hash=sha256:dc21cf308ca5691e7c04d962e213f8a4aa9bbfa23d95412f452254c2caeb09e5 +overrides==7.7.0 ; python_version >= "3.10" and python_version < "4.0" \ + --hash=sha256:55158fa3d93b98cc75299b1e67078ad9003ca27945c76162c1c0766d6f91820a \ + --hash=sha256:c7ed9d062f78b8e4c1a7b70bd8796b35ead4d9f510227ef9c5dc7626c60d7e49 +packaging==23.2 ; python_version >= "3.10" and python_version < "4.0" \ + --hash=sha256:048fb0e9405036518eaaf48a55953c750c11e1a1b68e0dd1a9d62ed0c092cfc5 \ + --hash=sha256:8c491190033a9af7e1d931d0b5dacc2ef47509b34dd0de67ed209b5203fc88c7 +pandas==1.5.3 ; python_version >= "3.10" and python_version < "4.0" \ + --hash=sha256:14e45300521902689a81f3f41386dc86f19b8ba8dd5ac5a3c7010ef8d2932813 \ + --hash=sha256:26d9c71772c7afb9d5046e6e9cf42d83dd147b5cf5bcb9d97252077118543792 \ + --hash=sha256:3749077d86e3a2f0ed51367f30bf5b82e131cc0f14260c4d3e499186fccc4406 \ + --hash=sha256:41179ce559943d83a9b4bbacb736b04c928b095b5f25dd2b7389eda08f46f373 \ + --hash=sha256:478ff646ca42b20376e4ed3fa2e8d7341e8a63105586efe54fa2508ee087f328 \ + --hash=sha256:50869a35cbb0f2e0cd5ec04b191e7b12ed688874bd05dd777c19b28cbea90996 \ + --hash=sha256:565fa34a5434d38e9d250af3c12ff931abaf88050551d9fbcdfafca50d62babf \ + --hash=sha256:5f2b952406a1588ad4cad5b3f55f520e82e902388a6d5a4a91baa8d38d23c7f6 \ + --hash=sha256:5fbcb19d6fceb9e946b3e23258757c7b225ba450990d9ed63ccceeb8cae609f7 \ + --hash=sha256:6973549c01ca91ec96199e940495219c887ea815b2083722821f1d7abfa2b4dc \ + --hash=sha256:74a3fd7e5a7ec052f183273dc7b0acd3a863edf7520f5d3a1765c04ffdb3b0b1 \ + --hash=sha256:7a0a56cef15fd1586726dace5616db75ebcfec9179a3a55e78f72c5639fa2a23 \ + --hash=sha256:7cec0bee9f294e5de5bbfc14d0573f65526071029d036b753ee6507d2a21480a \ + --hash=sha256:87bd9c03da1ac870a6d2c8902a0e1fd4267ca00f13bc494c9e5a9020920e1d51 \ + --hash=sha256:972d8a45395f2a2d26733eb8d0f629b2f90bebe8e8eddbb8829b180c09639572 \ + --hash=sha256:9842b6f4b8479e41968eced654487258ed81df7d1c9b7b870ceea24ed9459b31 \ + --hash=sha256:9f69c4029613de47816b1bb30ff5ac778686688751a5e9c99ad8c7031f6508e5 \ + --hash=sha256:a50d9a4336a9621cab7b8eb3fb11adb82de58f9b91d84c2cd526576b881a0c5a \ + --hash=sha256:bc4c368f42b551bf72fac35c5128963a171b40dce866fb066540eeaf46faa003 \ + --hash=sha256:c39a8da13cede5adcd3be1182883aea1c925476f4e84b2807a46e2775306305d \ + --hash=sha256:c3ac844a0fe00bfaeb2c9b51ab1424e5c8744f89860b138434a363b1f620f354 \ + --hash=sha256:c4c00e0b0597c8e4f59e8d461f797e5d70b4d025880516a8261b2817c47759ee \ + --hash=sha256:c74a62747864ed568f5a82a49a23a8d7fe171d0c69038b38cedf0976831296fa \ + --hash=sha256:dd05f7783b3274aa206a1af06f0ceed3f9b412cf665b7247eacd83be41cf7bf0 \ + --hash=sha256:dfd681c5dc216037e0b0a2c821f5ed99ba9f03ebcf119c7dac0e9a7b960b9ec9 \ + --hash=sha256:e474390e60ed609cec869b0da796ad94f420bb057d86784191eefc62b65819ae \ + --hash=sha256:f76d097d12c82a535fda9dfe5e8dd4127952b45fea9b0276cb30cca5ea313fbc +pandocfilters==1.5.1 ; python_version >= "3.10" and python_version < "4.0" \ + --hash=sha256:002b4a555ee4ebc03f8b66307e287fa492e4a77b4ea14d3f934328297bb4939e \ + --hash=sha256:93be382804a9cdb0a7267585f157e5d1731bbe5545a85b268d6f5fe6232de2bc +parso==0.8.3 ; python_version >= "3.10" and python_version < "4.0" \ + --hash=sha256:8c07be290bb59f03588915921e29e8a50002acaf2cdc5fa0e0114f91709fafa0 \ + --hash=sha256:c001d4636cd3aecdaf33cbb40aebb59b094be2a74c556778ef5576c175e19e75 +particle==0.23.1 ; python_version >= "3.10" and python_version < "4.0" \ + --hash=sha256:1c68a36f1c3640bd8e5d4f47fc026064aa28264dfd283121d1f784d55947f1b7 \ + --hash=sha256:eee28b0e846bfea4dfd70e9ec5ffe3244613db08b6b6a9b773f55a4310752fab +pathspec==0.12.1 ; python_version >= "3.10" and python_version < "4.0" \ + --hash=sha256:a0d503e138a4c123b27490a4f7beda6a01c6f288df0e4a8b79c7eb0dc7b4cc08 \ + --hash=sha256:a482d51503a1ab33b1c67a6c3813a26953dbdc71c31dacaef9a838c4e29f5712 +pexpect==4.9.0 ; python_version >= "3.10" and python_version < "4.0" and sys_platform != "win32" \ + --hash=sha256:7236d1e080e4936be2dc3e326cec0af72acf9212a7e1d060210e70a47e253523 \ + --hash=sha256:ee7d41123f3c9911050ea2c2dac107568dc43b2d3b0c7557a33212c398ead30f +pillow==10.2.0 ; python_version >= "3.10" and python_version < "4.0" \ + --hash=sha256:0304004f8067386b477d20a518b50f3fa658a28d44e4116970abfcd94fac34a8 \ + --hash=sha256:0689b5a8c5288bc0504d9fcee48f61a6a586b9b98514d7d29b840143d6734f39 \ + --hash=sha256:0eae2073305f451d8ecacb5474997c08569fb4eb4ac231ffa4ad7d342fdc25ac \ + --hash=sha256:0fb3e7fc88a14eacd303e90481ad983fd5b69c761e9e6ef94c983f91025da869 \ + --hash=sha256:11fa2e5984b949b0dd6d7a94d967743d87c577ff0b83392f17cb3990d0d2fd6e \ + --hash=sha256:127cee571038f252a552760076407f9cff79761c3d436a12af6000cd182a9d04 \ + --hash=sha256:154e939c5f0053a383de4fd3d3da48d9427a7e985f58af8e94d0b3c9fcfcf4f9 \ + --hash=sha256:15587643b9e5eb26c48e49a7b33659790d28f190fc514a322d55da2fb5c2950e \ + --hash=sha256:170aeb00224ab3dc54230c797f8404507240dd868cf52066f66a41b33169bdbe \ + --hash=sha256:1b5e1b74d1bd1b78bc3477528919414874748dd363e6272efd5abf7654e68bef \ + --hash=sha256:1da3b2703afd040cf65ec97efea81cfba59cdbed9c11d8efc5ab09df9509fc56 \ + --hash=sha256:1e23412b5c41e58cec602f1135c57dfcf15482013ce6e5f093a86db69646a5aa \ + --hash=sha256:2247178effb34a77c11c0e8ac355c7a741ceca0a732b27bf11e747bbc950722f \ + --hash=sha256:257d8788df5ca62c980314053197f4d46eefedf4e6175bc9412f14412ec4ea2f \ + --hash=sha256:3031709084b6e7852d00479fd1d310b07d0ba82765f973b543c8af5061cf990e \ + --hash=sha256:322209c642aabdd6207517e9739c704dc9f9db943015535783239022002f054a \ + --hash=sha256:322bdf3c9b556e9ffb18f93462e5f749d3444ce081290352c6070d014c93feb2 \ + --hash=sha256:33870dc4653c5017bf4c8873e5488d8f8d5f8935e2f1fb9a2208c47cdd66efd2 \ + --hash=sha256:35bb52c37f256f662abdfa49d2dfa6ce5d93281d323a9af377a120e89a9eafb5 \ + --hash=sha256:3c31822339516fb3c82d03f30e22b1d038da87ef27b6a78c9549888f8ceda39a \ + --hash=sha256:3eedd52442c0a5ff4f887fab0c1c0bb164d8635b32c894bc1faf4c618dd89df2 \ + --hash=sha256:3ff074fc97dd4e80543a3e91f69d58889baf2002b6be64347ea8cf5533188213 \ + --hash=sha256:47c0995fc4e7f79b5cfcab1fc437ff2890b770440f7696a3ba065ee0fd496563 \ + --hash=sha256:49d9ba1ed0ef3e061088cd1e7538a0759aab559e2e0a80a36f9fd9d8c0c21591 \ + --hash=sha256:51f1a1bffc50e2e9492e87d8e09a17c5eea8409cda8d3f277eb6edc82813c17c \ + --hash=sha256:52a50aa3fb3acb9cf7213573ef55d31d6eca37f5709c69e6858fe3bc04a5c2a2 \ + --hash=sha256:54f1852cd531aa981bc0965b7d609f5f6cc8ce8c41b1139f6ed6b3c54ab82bfb \ + --hash=sha256:609448742444d9290fd687940ac0b57fb35e6fd92bdb65386e08e99af60bf757 \ + --hash=sha256:69ffdd6120a4737710a9eee73e1d2e37db89b620f702754b8f6e62594471dee0 \ + --hash=sha256:6fad5ff2f13d69b7e74ce5b4ecd12cc0ec530fcee76356cac6742785ff71c452 \ + --hash=sha256:7049e301399273a0136ff39b84c3678e314f2158f50f517bc50285fb5ec847ad \ + --hash=sha256:70c61d4c475835a19b3a5aa42492409878bbca7438554a1f89d20d58a7c75c01 \ + --hash=sha256:716d30ed977be8b37d3ef185fecb9e5a1d62d110dfbdcd1e2a122ab46fddb03f \ + --hash=sha256:753cd8f2086b2b80180d9b3010dd4ed147efc167c90d3bf593fe2af21265e5a5 \ + --hash=sha256:773efe0603db30c281521a7c0214cad7836c03b8ccff897beae9b47c0b657d61 \ + --hash=sha256:7823bdd049099efa16e4246bdf15e5a13dbb18a51b68fa06d6c1d4d8b99a796e \ + --hash=sha256:7c8f97e8e7a9009bcacbe3766a36175056c12f9a44e6e6f2d5caad06dcfbf03b \ + --hash=sha256:823ef7a27cf86df6597fa0671066c1b596f69eba53efa3d1e1cb8b30f3533068 \ + --hash=sha256:8373c6c251f7ef8bda6675dd6d2b3a0fcc31edf1201266b5cf608b62a37407f9 \ + --hash=sha256:83b2021f2ade7d1ed556bc50a399127d7fb245e725aa0113ebd05cfe88aaf588 \ + --hash=sha256:870ea1ada0899fd0b79643990809323b389d4d1d46c192f97342eeb6ee0b8483 \ + --hash=sha256:8d12251f02d69d8310b046e82572ed486685c38f02176bd08baf216746eb947f \ + --hash=sha256:9c23f307202661071d94b5e384e1e1dc7dfb972a28a2310e4ee16103e66ddb67 \ + --hash=sha256:9d189550615b4948f45252d7f005e53c2040cea1af5b60d6f79491a6e147eef7 \ + --hash=sha256:a086c2af425c5f62a65e12fbf385f7c9fcb8f107d0849dba5839461a129cf311 \ + --hash=sha256:a2b56ba36e05f973d450582fb015594aaa78834fefe8dfb8fcd79b93e64ba4c6 \ + --hash=sha256:aebb6044806f2e16ecc07b2a2637ee1ef67a11840a66752751714a0d924adf72 \ + --hash=sha256:b1b3020d90c2d8e1dae29cf3ce54f8094f7938460fb5ce8bc5c01450b01fbaf6 \ + --hash=sha256:b4b6b1e20608493548b1f32bce8cca185bf0480983890403d3b8753e44077129 \ + --hash=sha256:b6f491cdf80ae540738859d9766783e3b3c8e5bd37f5dfa0b76abdecc5081f13 \ + --hash=sha256:b792a349405fbc0163190fde0dc7b3fef3c9268292586cf5645598b48e63dc67 \ + --hash=sha256:b7c2286c23cd350b80d2fc9d424fc797575fb16f854b831d16fd47ceec078f2c \ + --hash=sha256:babf5acfede515f176833ed6028754cbcd0d206f7f614ea3447d67c33be12516 \ + --hash=sha256:c365fd1703040de1ec284b176d6af5abe21b427cb3a5ff68e0759e1e313a5e7e \ + --hash=sha256:c4225f5220f46b2fde568c74fca27ae9771536c2e29d7c04f4fb62c83275ac4e \ + --hash=sha256:c570f24be1e468e3f0ce7ef56a89a60f0e05b30a3669a459e419c6eac2c35364 \ + --hash=sha256:c6dafac9e0f2b3c78df97e79af707cdc5ef8e88208d686a4847bab8266870023 \ + --hash=sha256:c8de2789052ed501dd829e9cae8d3dcce7acb4777ea4a479c14521c942d395b1 \ + --hash=sha256:cb28c753fd5eb3dd859b4ee95de66cc62af91bcff5db5f2571d32a520baf1f04 \ + --hash=sha256:cb4c38abeef13c61d6916f264d4845fab99d7b711be96c326b84df9e3e0ff62d \ + --hash=sha256:d1b35bcd6c5543b9cb547dee3150c93008f8dd0f1fef78fc0cd2b141c5baf58a \ + --hash=sha256:d8e6aeb9201e655354b3ad049cb77d19813ad4ece0df1249d3c793de3774f8c7 \ + --hash=sha256:d8ecd059fdaf60c1963c58ceb8997b32e9dc1b911f5da5307aab614f1ce5c2fb \ + --hash=sha256:da2b52b37dad6d9ec64e653637a096905b258d2fc2b984c41ae7d08b938a67e4 \ + --hash=sha256:e87f0b2c78157e12d7686b27d63c070fd65d994e8ddae6f328e0dcf4a0cd007e \ + --hash=sha256:edca80cbfb2b68d7b56930b84a0e45ae1694aeba0541f798e908a49d66b837f1 \ + --hash=sha256:f379abd2f1e3dddb2b61bc67977a6b5a0a3f7485538bcc6f39ec76163891ee48 \ + --hash=sha256:fe4c15f6c9285dc54ce6553a3ce908ed37c8f3825b5a51a15c91442bb955b868 +pip==24.0 ; python_version >= "3.10" and python_version < "4.0" \ + --hash=sha256:ba0d021a166865d2265246961bec0152ff124de910c5cc39f1156ce3fa7c69dc \ + --hash=sha256:ea9bd1a847e8c5774a5777bb398c19e80bcd4e2aa16a4b301b718fe6f593aba2 +platformdirs==4.2.0 ; python_version >= "3.10" and python_version < "4.0" \ + --hash=sha256:0614df2a2f37e1a662acbd8e2b25b92ccf8632929bc6d43467e17fe89c75e068 \ + --hash=sha256:ef0cc731df711022c174543cb70a9b5bd22e5a9337c8624ef2c2ceb8ddad8768 +pluggy==1.4.0 ; python_version >= "3.10" and python_version < "4.0" \ + --hash=sha256:7db9f7b503d67d1c5b95f59773ebb58a8c1c288129a88665838012cfb07b8981 \ + --hash=sha256:8c85c2876142a764e5b7548e7d9a0e0ddb46f5185161049a79b7e974454223be +pre-commit==3.6.1 ; python_version >= "3.10" and python_version < "4.0" \ + --hash=sha256:9fe989afcf095d2c4796ce7c553cf28d4d4a9b9346de3cda079bcf40748454a4 \ + --hash=sha256:c90961d8aa706f75d60935aba09469a6b0bcb8345f127c3fbee4bdc5f114cf4b +prettytable==3.9.0 ; python_version >= "3.10" and python_version < "4.0" \ + --hash=sha256:a71292ab7769a5de274b146b276ce938786f56c31cf7cea88b6f3775d82fe8c8 \ + --hash=sha256:f4ed94803c23073a90620b201965e5dc0bccf1760b7a7eaf3158cab8aaffdf34 +prometheus-client==0.20.0 ; python_version >= "3.10" and python_version < "4.0" \ + --hash=sha256:287629d00b147a32dcb2be0b9df905da599b2d82f80377083ec8463309a4bb89 \ + --hash=sha256:cde524a85bce83ca359cc837f28b8c0db5cac7aa653a588fd7e84ba061c329e7 +prompt-toolkit==3.0.43 ; python_version >= "3.10" and python_version < "4.0" \ + --hash=sha256:3527b7af26106cbc65a040bcc84839a3566ec1b051bb0bfe953631e704b0ff7d \ + --hash=sha256:a11a29cb3bf0a28a387fe5122cdb649816a957cd9261dcedf8c9f1fef33eacf6 +psutil==5.9.8 ; python_version >= "3.10" and python_version < "4.0" \ + --hash=sha256:02615ed8c5ea222323408ceba16c60e99c3f91639b07da6373fb7e6539abc56d \ + --hash=sha256:05806de88103b25903dff19bb6692bd2e714ccf9e668d050d144012055cbca73 \ + --hash=sha256:26bd09967ae00920df88e0352a91cff1a78f8d69b3ecabbfe733610c0af486c8 \ + --hash=sha256:27cc40c3493bb10de1be4b3f07cae4c010ce715290a5be22b98493509c6299e2 \ + --hash=sha256:36f435891adb138ed3c9e58c6af3e2e6ca9ac2f365efe1f9cfef2794e6c93b4e \ + --hash=sha256:50187900d73c1381ba1454cf40308c2bf6f34268518b3f36a9b663ca87e65e36 \ + --hash=sha256:611052c4bc70432ec770d5d54f64206aa7203a101ec273a0cd82418c86503bb7 \ + --hash=sha256:6be126e3225486dff286a8fb9a06246a5253f4c7c53b475ea5f5ac934e64194c \ + --hash=sha256:7d79560ad97af658a0f6adfef8b834b53f64746d45b403f225b85c5c2c140eee \ + --hash=sha256:8cb6403ce6d8e047495a701dc7c5bd788add903f8986d523e3e20b98b733e421 \ + --hash=sha256:8db4c1b57507eef143a15a6884ca10f7c73876cdf5d51e713151c1236a0e68cf \ + --hash=sha256:aee678c8720623dc456fa20659af736241f575d79429a0e5e9cf88ae0605cc81 \ + --hash=sha256:bc56c2a1b0d15aa3eaa5a60c9f3f8e3e565303b465dbf57a1b730e7a2b9844e0 \ + --hash=sha256:bd1184ceb3f87651a67b2708d4c3338e9b10c5df903f2e3776b62303b26cb631 \ + --hash=sha256:d06016f7f8625a1825ba3732081d77c94589dca78b7a3fc072194851e88461a4 \ + --hash=sha256:d16bbddf0693323b8c6123dd804100241da461e41d6e332fb0ba6058f630f8c8 +ptyprocess==0.7.0 ; python_version >= "3.10" and python_version < "4.0" and (os_name != "nt" or sys_platform != "win32") \ + --hash=sha256:4b41f3967fce3af57cc7e94b888626c18bf37a083e3651ca8feeb66d492fef35 \ + --hash=sha256:5c5d0a3b48ceee0b48485e0c26037c0acd7d29765ca3fbb5cb3831d347423220 +pure-eval==0.2.2 ; python_version >= "3.10" and python_version < "4.0" \ + --hash=sha256:01eaab343580944bc56080ebe0a674b39ec44a945e6d09ba7db3cb8cec289350 \ + --hash=sha256:2b45320af6dfaa1750f543d714b6d1c520a1688dec6fd24d339063ce0aaa9ac3 +py==1.11.0 ; python_version >= "3.10" and python_version < "4.0" and implementation_name == "pypy" \ + --hash=sha256:51c75c4126074b472f746a24399ad32f6053d1b34b68d2fa41e558e6f4a98719 \ + --hash=sha256:607c53218732647dff4acdfcd50cb62615cedf612e72d1724fb1a0cc6405b378 +pycodestyle==2.11.1 ; python_version >= "3.10" and python_version < "4.0" \ + --hash=sha256:41ba0e7afc9752dfb53ced5489e89f8186be00e599e712660695b7a75ff2663f \ + --hash=sha256:44fe31000b2d866f2e41841b18528a505fbd7fef9017b04eff4e2648a0fadc67 +pycparser==2.21 ; python_version >= "3.10" and python_version < "4.0" \ + --hash=sha256:8ee45429555515e1f6b185e78100aea234072576aa43ab53aefcae078162fca9 \ + --hash=sha256:e644fdec12f7872f86c58ff790da456218b10f863970249516d60a5eaca77206 +pyflakes==3.2.0 ; python_version >= "3.10" and python_version < "4.0" \ + --hash=sha256:1c61603ff154621fb2a9172037d84dca3500def8c8b630657d1701f026f8af3f \ + --hash=sha256:84b5be138a2dfbb40689ca07e2152deb896a65c3a3e24c251c5c62489568074a +pygments==2.17.2 ; python_version >= "3.10" and python_version < "4.0" \ + --hash=sha256:b27c2826c47d0f3219f29554824c30c5e8945175d888647acd804ddd04af846c \ + --hash=sha256:da46cec9fd2de5be3a8a784f434e4c4ab670b4ff54d605c4c2717e9d49c4c367 +pyparsing==3.1.1 ; python_version >= "3.10" and python_version < "4.0" \ + --hash=sha256:32c7c0b711493c72ff18a981d24f28aaf9c1fb7ed5e9667c9e84e3db623bdbfb \ + --hash=sha256:ede28a1a32462f5a9705e07aea48001a08f7cf81a021585011deba701581a0db +pytest-lazy-fixture==0.6.3 ; python_version >= "3.10" and python_version < "4.0" \ + --hash=sha256:0e7d0c7f74ba33e6e80905e9bfd81f9d15ef9a790de97993e34213deb5ad10ac \ + --hash=sha256:e0b379f38299ff27a653f03eaa69b08a6fd4484e46fd1c9907d984b9f9daeda6 +pytest-mock==3.12.0 ; python_version >= "3.10" and python_version < "4.0" \ + --hash=sha256:0972719a7263072da3a21c7f4773069bcc7486027d7e8e1f81d98a47e701bc4f \ + --hash=sha256:31a40f038c22cad32287bb43932054451ff5583ff094bca6f675df2f8bc1a6e9 +pytest==7.4.4 ; python_version >= "3.10" and python_version < "4.0" \ + --hash=sha256:2cf0005922c6ace4a3e2ec8b4080eb0d9753fdc93107415332f50ce9e7994280 \ + --hash=sha256:b090cdf5ed60bf4c45261be03239c2c1c22df034fbffe691abe93cd80cea01d8 +python-dateutil==2.8.2 ; python_version >= "3.10" and python_version < "4.0" \ + --hash=sha256:0123cacc1627ae19ddf3c27a5de5bd67ee4586fbdd6440d9748f8abb483d3e86 \ + --hash=sha256:961d03dc3453ebbc59dbdea9e4e11c5651520a876d0f4db161e8674aae935da9 +python-json-logger==2.0.7 ; python_version >= "3.10" and python_version < "4.0" \ + --hash=sha256:23e7ec02d34237c5aa1e29a070193a4ea87583bb4e7f8fd06d3de8264c4b2e1c \ + --hash=sha256:f380b826a991ebbe3de4d897aeec42760035ac760345e57b812938dc8b35e2bd +pytz==2024.1 ; python_version >= "3.10" and python_version < "4.0" \ + --hash=sha256:2a29735ea9c18baf14b448846bde5a48030ed267578472d8955cd0e7443a9812 \ + --hash=sha256:328171f4e3623139da4983451950b28e95ac706e13f3f2630a879749e7a8b319 +pywin32==306 ; sys_platform == "win32" and platform_python_implementation != "PyPy" and python_version >= "3.10" and python_version < "4.0" \ + --hash=sha256:06d3420a5155ba65f0b72f2699b5bacf3109f36acbe8923765c22938a69dfc8d \ + --hash=sha256:1c73ea9a0d2283d889001998059f5eaaba3b6238f767c9cf2833b13e6a685f65 \ + --hash=sha256:37257794c1ad39ee9be652da0462dc2e394c8159dfd913a8a4e8eb6fd346da0e \ + --hash=sha256:383229d515657f4e3ed1343da8be101000562bf514591ff383ae940cad65458b \ + --hash=sha256:39b61c15272833b5c329a2989999dcae836b1eed650252ab1b7bfbe1d59f30f4 \ + --hash=sha256:5821ec52f6d321aa59e2db7e0a35b997de60c201943557d108af9d4ae1ec7040 \ + --hash=sha256:70dba0c913d19f942a2db25217d9a1b726c278f483a919f1abfed79c9cf64d3a \ + --hash=sha256:72c5f621542d7bdd4fdb716227be0dd3f8565c11b280be6315b06ace35487d36 \ + --hash=sha256:84f4471dbca1887ea3803d8848a1616429ac94a4a8d05f4bc9c5dcfd42ca99c8 \ + --hash=sha256:a7639f51c184c0272e93f244eb24dafca9b1855707d94c192d4a0b4c01e1100e \ + --hash=sha256:e25fd5b485b55ac9c057f67d94bc203f3f6595078d1fb3b458c9c28b7153a802 \ + --hash=sha256:e4c092e2589b5cf0d365849e73e02c391c1349958c5ac3e9d5ccb9a28e017b3a \ + --hash=sha256:e65028133d15b64d2ed8f06dd9fbc268352478d4f9289e69c190ecd6818b6407 \ + --hash=sha256:e8ac1ae3601bee6ca9f7cb4b5363bf1c0badb935ef243c4733ff9a393b1690c0 +pywinpty==2.0.12 ; python_version >= "3.10" and python_version < "4.0" and os_name == "nt" \ + --hash=sha256:1617b729999eb6713590e17665052b1a6ae0ad76ee31e60b444147c5b6a35dca \ + --hash=sha256:189380469ca143d06e19e19ff3fba0fcefe8b4a8cc942140a6b863aed7eebb2d \ + --hash=sha256:21319cd1d7c8844fb2c970fb3a55a3db5543f112ff9cfcd623746b9c47501575 \ + --hash=sha256:7520575b6546db23e693cbd865db2764097bd6d4ef5dc18c92555904cd62c3d4 \ + --hash=sha256:8197de460ae8ebb7f5d1701dfa1b5df45b157bb832e92acba316305e18ca00dd \ + --hash=sha256:853985a8f48f4731a716653170cd735da36ffbdc79dcb4c7b7140bce11d8c722 +pyyaml==6.0.1 ; python_version >= "3.10" and python_version < "4.0" \ + --hash=sha256:04ac92ad1925b2cff1db0cfebffb6ffc43457495c9b3c39d3fcae417d7125dc5 \ + --hash=sha256:062582fca9fabdd2c8b54a3ef1c978d786e0f6b3a1510e0ac93ef59e0ddae2bc \ + --hash=sha256:0d3304d8c0adc42be59c5f8a4d9e3d7379e6955ad754aa9d6ab7a398b59dd1df \ + --hash=sha256:1635fd110e8d85d55237ab316b5b011de701ea0f29d07611174a1b42f1444741 \ + --hash=sha256:184c5108a2aca3c5b3d3bf9395d50893a7ab82a38004c8f61c258d4428e80206 \ + --hash=sha256:18aeb1bf9a78867dc38b259769503436b7c72f7a1f1f4c93ff9a17de54319b27 \ + --hash=sha256:1d4c7e777c441b20e32f52bd377e0c409713e8bb1386e1099c2415f26e479595 \ + --hash=sha256:1e2722cc9fbb45d9b87631ac70924c11d3a401b2d7f410cc0e3bbf249f2dca62 \ + --hash=sha256:1fe35611261b29bd1de0070f0b2f47cb6ff71fa6595c077e42bd0c419fa27b98 \ + --hash=sha256:28c119d996beec18c05208a8bd78cbe4007878c6dd15091efb73a30e90539696 \ + --hash=sha256:326c013efe8048858a6d312ddd31d56e468118ad4cdeda36c719bf5bb6192290 \ + --hash=sha256:40df9b996c2b73138957fe23a16a4f0ba614f4c0efce1e9406a184b6d07fa3a9 \ + --hash=sha256:42f8152b8dbc4fe7d96729ec2b99c7097d656dc1213a3229ca5383f973a5ed6d \ + --hash=sha256:49a183be227561de579b4a36efbb21b3eab9651dd81b1858589f796549873dd6 \ + --hash=sha256:4fb147e7a67ef577a588a0e2c17b6db51dda102c71de36f8549b6816a96e1867 \ + --hash=sha256:50550eb667afee136e9a77d6dc71ae76a44df8b3e51e41b77f6de2932bfe0f47 \ + --hash=sha256:510c9deebc5c0225e8c96813043e62b680ba2f9c50a08d3724c7f28a747d1486 \ + --hash=sha256:5773183b6446b2c99bb77e77595dd486303b4faab2b086e7b17bc6bef28865f6 \ + --hash=sha256:596106435fa6ad000c2991a98fa58eeb8656ef2325d7e158344fb33864ed87e3 \ + --hash=sha256:6965a7bc3cf88e5a1c3bd2e0b5c22f8d677dc88a455344035f03399034eb3007 \ + --hash=sha256:69b023b2b4daa7548bcfbd4aa3da05b3a74b772db9e23b982788168117739938 \ + --hash=sha256:6c22bec3fbe2524cde73d7ada88f6566758a8f7227bfbf93a408a9d86bcc12a0 \ + --hash=sha256:704219a11b772aea0d8ecd7058d0082713c3562b4e271b849ad7dc4a5c90c13c \ + --hash=sha256:7e07cbde391ba96ab58e532ff4803f79c4129397514e1413a7dc761ccd755735 \ + --hash=sha256:81e0b275a9ecc9c0c0c07b4b90ba548307583c125f54d5b6946cfee6360c733d \ + --hash=sha256:855fb52b0dc35af121542a76b9a84f8d1cd886ea97c84703eaa6d88e37a2ad28 \ + --hash=sha256:8d4e9c88387b0f5c7d5f281e55304de64cf7f9c0021a3525bd3b1c542da3b0e4 \ + --hash=sha256:9046c58c4395dff28dd494285c82ba00b546adfc7ef001486fbf0324bc174fba \ + --hash=sha256:9eb6caa9a297fc2c2fb8862bc5370d0303ddba53ba97e71f08023b6cd73d16a8 \ + --hash=sha256:a08c6f0fe150303c1c6b71ebcd7213c2858041a7e01975da3a99aed1e7a378ef \ + --hash=sha256:a0cd17c15d3bb3fa06978b4e8958dcdc6e0174ccea823003a106c7d4d7899ac5 \ + --hash=sha256:afd7e57eddb1a54f0f1a974bc4391af8bcce0b444685d936840f125cf046d5bd \ + --hash=sha256:b1275ad35a5d18c62a7220633c913e1b42d44b46ee12554e5fd39c70a243d6a3 \ + --hash=sha256:b786eecbdf8499b9ca1d697215862083bd6d2a99965554781d0d8d1ad31e13a0 \ + --hash=sha256:ba336e390cd8e4d1739f42dfe9bb83a3cc2e80f567d8805e11b46f4a943f5515 \ + --hash=sha256:baa90d3f661d43131ca170712d903e6295d1f7a0f595074f151c0aed377c9b9c \ + --hash=sha256:bc1bf2925a1ecd43da378f4db9e4f799775d6367bdb94671027b73b393a7c42c \ + --hash=sha256:bd4af7373a854424dabd882decdc5579653d7868b8fb26dc7d0e99f823aa5924 \ + --hash=sha256:bf07ee2fef7014951eeb99f56f39c9bb4af143d8aa3c21b1677805985307da34 \ + --hash=sha256:bfdf460b1736c775f2ba9f6a92bca30bc2095067b8a9d77876d1fad6cc3b4a43 \ + --hash=sha256:c8098ddcc2a85b61647b2590f825f3db38891662cfc2fc776415143f599bb859 \ + --hash=sha256:d2b04aac4d386b172d5b9692e2d2da8de7bfb6c387fa4f801fbf6fb2e6ba4673 \ + --hash=sha256:d483d2cdf104e7c9fa60c544d92981f12ad66a457afae824d146093b8c294c54 \ + --hash=sha256:d858aa552c999bc8a8d57426ed01e40bef403cd8ccdd0fc5f6f04a00414cac2a \ + --hash=sha256:e7d73685e87afe9f3b36c799222440d6cf362062f78be1013661b00c5c6f678b \ + --hash=sha256:f003ed9ad21d6a4713f0a9b5a7a0a79e08dd0f221aff4525a2be4c346ee60aab \ + --hash=sha256:f22ac1c3cac4dbc50079e965eba2c1058622631e526bd9afd45fedd49ba781fa \ + --hash=sha256:faca3bdcf85b2fc05d06ff3fbc1f83e1391b3e724afa3feba7d13eeab355484c \ + --hash=sha256:fca0e3a251908a499833aa292323f32437106001d436eca0e6e7833256674585 \ + --hash=sha256:fd1592b3fdf65fff2ad0004b5e363300ef59ced41c2e6b3a99d4089fa8c5435d \ + --hash=sha256:fd66fc5d0da6d9815ba2cebeb4205f95818ff4b79c3ebe268e75d961704af52f +pyzmq==24.0.1 ; python_version >= "3.10" and python_version < "4.0" \ + --hash=sha256:0108358dab8c6b27ff6b985c2af4b12665c1bc659648284153ee501000f5c107 \ + --hash=sha256:07bec1a1b22dacf718f2c0e71b49600bb6a31a88f06527dfd0b5aababe3fa3f7 \ + --hash=sha256:0e8f482c44ccb5884bf3f638f29bea0f8dc68c97e38b2061769c4cb697f6140d \ + --hash=sha256:0ec91f1bad66f3ee8c6deb65fa1fe418e8ad803efedd69c35f3b5502f43bd1dc \ + --hash=sha256:0f14cffd32e9c4c73da66db97853a6aeceaac34acdc0fae9e5bbc9370281864c \ + --hash=sha256:15975747462ec49fdc863af906bab87c43b2491403ab37a6d88410635786b0f4 \ + --hash=sha256:1724117bae69e091309ffb8255412c4651d3f6355560d9af312d547f6c5bc8b8 \ + --hash=sha256:1a7c280185c4da99e0cc06c63bdf91f5b0b71deb70d8717f0ab870a43e376db8 \ + --hash=sha256:1b7928bb7580736ffac5baf814097be342ba08d3cfdfb48e52773ec959572287 \ + --hash=sha256:2032d9cb994ce3b4cba2b8dfae08c7e25bc14ba484c770d4d3be33c27de8c45b \ + --hash=sha256:20e7eeb1166087db636c06cae04a1ef59298627f56fb17da10528ab52a14c87f \ + --hash=sha256:216f5d7dbb67166759e59b0479bca82b8acf9bed6015b526b8eb10143fb08e77 \ + --hash=sha256:28b119ba97129d3001673a697b7cce47fe6de1f7255d104c2f01108a5179a066 \ + --hash=sha256:3104f4b084ad5d9c0cb87445cc8cfd96bba710bef4a66c2674910127044df209 \ + --hash=sha256:3e6192dbcefaaa52ed81be88525a54a445f4b4fe2fffcae7fe40ebb58bd06bfd \ + --hash=sha256:42d4f97b9795a7aafa152a36fe2ad44549b83a743fd3e77011136def512e6c2a \ + --hash=sha256:44e706bac34e9f50779cb8c39f10b53a4d15aebb97235643d3112ac20bd577b4 \ + --hash=sha256:47b11a729d61a47df56346283a4a800fa379ae6a85870d5a2e1e4956c828eedc \ + --hash=sha256:4854f9edc5208f63f0841c0c667260ae8d6846cfa233c479e29fdc85d42ebd58 \ + --hash=sha256:48f721f070726cd2a6e44f3c33f8ee4b24188e4b816e6dd8ba542c8c3bb5b246 \ + --hash=sha256:52afb0ac962963fff30cf1be775bc51ae083ef4c1e354266ab20e5382057dd62 \ + --hash=sha256:54d8b9c5e288362ec8595c1d98666d36f2070fd0c2f76e2b3c60fbad9bd76227 \ + --hash=sha256:5bd3d7dfd9cd058eb68d9a905dec854f86649f64d4ddf21f3ec289341386c44b \ + --hash=sha256:613010b5d17906c4367609e6f52e9a2595e35d5cc27d36ff3f1b6fa6e954d944 \ + --hash=sha256:624321120f7e60336be8ec74a172ae7fba5c3ed5bf787cc85f7e9986c9e0ebc2 \ + --hash=sha256:65c94410b5a8355cfcf12fd600a313efee46ce96a09e911ea92cf2acf6708804 \ + --hash=sha256:6640f83df0ae4ae1104d4c62b77e9ef39be85ebe53f636388707d532bee2b7b8 \ + --hash=sha256:687700f8371643916a1d2c61f3fdaa630407dd205c38afff936545d7b7466066 \ + --hash=sha256:77c2713faf25a953c69cf0f723d1b7dd83827b0834e6c41e3fb3bbc6765914a1 \ + --hash=sha256:78068e8678ca023594e4a0ab558905c1033b2d3e806a0ad9e3094e231e115a33 \ + --hash=sha256:7a23ccc1083c260fa9685c93e3b170baba45aeed4b524deb3f426b0c40c11639 \ + --hash=sha256:7abddb2bd5489d30ffeb4b93a428130886c171b4d355ccd226e83254fcb6b9ef \ + --hash=sha256:80093b595921eed1a2cead546a683b9e2ae7f4a4592bb2ab22f70d30174f003a \ + --hash=sha256:8242543c522d84d033fe79be04cb559b80d7eb98ad81b137ff7e0a9020f00ace \ + --hash=sha256:838812c65ed5f7c2bd11f7b098d2e5d01685a3f6d1f82849423b570bae698c00 \ + --hash=sha256:83ea1a398f192957cb986d9206ce229efe0ee75e3c6635baff53ddf39bd718d5 \ + --hash=sha256:8421aa8c9b45ea608c205db9e1c0c855c7e54d0e9c2c2f337ce024f6843cab3b \ + --hash=sha256:858375573c9225cc8e5b49bfac846a77b696b8d5e815711b8d4ba3141e6e8879 \ + --hash=sha256:86de64468cad9c6d269f32a6390e210ca5ada568c7a55de8e681ca3b897bb340 \ + --hash=sha256:87f7ac99b15270db8d53f28c3c7b968612993a90a5cf359da354efe96f5372b4 \ + --hash=sha256:8bad8210ad4df68c44ff3685cca3cda448ee46e20d13edcff8909eba6ec01ca4 \ + --hash=sha256:8bb4af15f305056e95ca1bd086239b9ebc6ad55e9f49076d27d80027f72752f6 \ + --hash=sha256:8c78bfe20d4c890cb5580a3b9290f700c570e167d4cdcc55feec07030297a5e3 \ + --hash=sha256:8f3f3154fde2b1ff3aa7b4f9326347ebc89c8ef425ca1db8f665175e6d3bd42f \ + --hash=sha256:94010bd61bc168c103a5b3b0f56ed3b616688192db7cd5b1d626e49f28ff51b3 \ + --hash=sha256:941fab0073f0a54dc33d1a0460cb04e0d85893cb0c5e1476c785000f8b359409 \ + --hash=sha256:9dca7c3956b03b7663fac4d150f5e6d4f6f38b2462c1e9afd83bcf7019f17913 \ + --hash=sha256:a180dbd5ea5d47c2d3b716d5c19cc3fb162d1c8db93b21a1295d69585bfddac1 \ + --hash=sha256:a2712aee7b3834ace51738c15d9ee152cc5a98dc7d57dd93300461b792ab7b43 \ + --hash=sha256:a435ef8a3bd95c8a2d316d6e0ff70d0db524f6037411652803e118871d703333 \ + --hash=sha256:abb756147314430bee5d10919b8493c0ccb109ddb7f5dfd2fcd7441266a25b75 \ + --hash=sha256:abe6eb10122f0d746a0d510c2039ae8edb27bc9af29f6d1b05a66cc2401353ff \ + --hash=sha256:acbd0a6d61cc954b9f535daaa9ec26b0a60a0d4353c5f7c1438ebc88a359a47e \ + --hash=sha256:ae08ac90aa8fa14caafc7a6251bd218bf6dac518b7bff09caaa5e781119ba3f2 \ + --hash=sha256:ae61446166983c663cee42c852ed63899e43e484abf080089f771df4b9d272ef \ + --hash=sha256:afe1f3bc486d0ce40abb0a0c9adb39aed3bbac36ebdc596487b0cceba55c21c1 \ + --hash=sha256:b946da90dc2799bcafa682692c1d2139b2a96ec3c24fa9fc6f5b0da782675330 \ + --hash=sha256:b947e264f0e77d30dcbccbb00f49f900b204b922eb0c3a9f0afd61aaa1cedc3d \ + --hash=sha256:bb5635c851eef3a7a54becde6da99485eecf7d068bd885ac8e6d173c4ecd68b0 \ + --hash=sha256:bcbebd369493d68162cddb74a9c1fcebd139dfbb7ddb23d8f8e43e6c87bac3a6 \ + --hash=sha256:c31805d2c8ade9b11feca4674eee2b9cce1fec3e8ddb7bbdd961a09dc76a80ea \ + --hash=sha256:c8840f064b1fb377cffd3efeaad2b190c14d4c8da02316dae07571252d20b31f \ + --hash=sha256:ccb94342d13e3bf3ffa6e62f95b5e3f0bc6bfa94558cb37f4b3d09d6feb536ff \ + --hash=sha256:d66689e840e75221b0b290b0befa86f059fb35e1ee6443bce51516d4d61b6b99 \ + --hash=sha256:dabf1a05318d95b1537fd61d9330ef4313ea1216eea128a17615038859da3b3b \ + --hash=sha256:db03704b3506455d86ec72c3358a779e9b1d07b61220dfb43702b7b668edcd0d \ + --hash=sha256:de4217b9eb8b541cf2b7fde4401ce9d9a411cc0af85d410f9d6f4333f43640be \ + --hash=sha256:df0841f94928f8af9c7a1f0aaaffba1fb74607af023a152f59379c01c53aee58 \ + --hash=sha256:dfb992dbcd88d8254471760879d48fb20836d91baa90f181c957122f9592b3dc \ + --hash=sha256:e7e66b4e403c2836ac74f26c4b65d8ac0ca1eef41dfcac2d013b7482befaad83 \ + --hash=sha256:e8012bce6836d3f20a6c9599f81dfa945f433dab4dbd0c4917a6fb1f998ab33d \ + --hash=sha256:f01de4ec083daebf210531e2cca3bdb1608dbbbe00a9723e261d92087a1f6ebc \ + --hash=sha256:f0d945a85b70da97ae86113faf9f1b9294efe66bd4a5d6f82f2676d567338b66 \ + --hash=sha256:fa0ae3275ef706c0309556061185dd0e4c4cd3b7d6f67ae617e4e677c7a41e2e +qtconsole==5.5.1 ; python_version >= "3.10" and python_version < "4.0" \ + --hash=sha256:8c75fa3e9b4ed884880ff7cea90a1b67451219279ec33deaee1d59e3df1a5d2b \ + --hash=sha256:a0e806c6951db9490628e4df80caec9669b65149c7ba40f9bf033c025a5b56bc +qtpy==2.4.1 ; python_version >= "3.10" and python_version < "4.0" \ + --hash=sha256:1c1d8c4fa2c884ae742b069151b0abe15b3f70491f3972698c683b8e38de839b \ + --hash=sha256:a5a15ffd519550a1361bdc56ffc07fda56a6af7292f17c7b395d4083af632987 +referencing==0.33.0 ; python_version >= "3.10" and python_version < "4.0" \ + --hash=sha256:39240f2ecc770258f28b642dd47fd74bc8b02484de54e1882b74b35ebd779bd5 \ + --hash=sha256:c775fedf74bc0f9189c2a3be1c12fd03e8c23f4d371dce795df44e06c5b412f7 +requests==2.31.0 ; python_version >= "3.10" and python_version < "4.0" \ + --hash=sha256:58cd2187c01e70e6e26505bca751777aa9f2ee0b7f4300988b709f44e013003f \ + --hash=sha256:942c5a758f98d790eaed1a29cb6eefc7ffb0d1cf7af05c3d2791656dbd6ad1e1 +rfc3339-validator==0.1.4 ; python_version >= "3.10" and python_version < "4.0" \ + --hash=sha256:138a2abdf93304ad60530167e51d2dfb9549521a836871b88d7f4695d0022f6b \ + --hash=sha256:24f6ec1eda14ef823da9e36ec7113124b39c04d50a4d3d3a3c2859577e7791fa +rfc3986-validator==0.1.1 ; python_version >= "3.10" and python_version < "4.0" \ + --hash=sha256:2f235c432ef459970b4306369336b9d5dbdda31b510ca1e327636e01f528bfa9 \ + --hash=sha256:3d44bde7921b3b9ec3ae4e3adca370438eccebc676456449b145d533b240d055 +rpds-py==0.18.0 ; python_version >= "3.10" and python_version < "4.0" \ + --hash=sha256:01e36a39af54a30f28b73096dd39b6802eddd04c90dbe161c1b8dbe22353189f \ + --hash=sha256:044a3e61a7c2dafacae99d1e722cc2d4c05280790ec5a05031b3876809d89a5c \ + --hash=sha256:08231ac30a842bd04daabc4d71fddd7e6d26189406d5a69535638e4dcb88fe76 \ + --hash=sha256:08f9ad53c3f31dfb4baa00da22f1e862900f45908383c062c27628754af2e88e \ + --hash=sha256:0ab39c1ba9023914297dd88ec3b3b3c3f33671baeb6acf82ad7ce883f6e8e157 \ + --hash=sha256:0af039631b6de0397ab2ba16eaf2872e9f8fca391b44d3d8cac317860a700a3f \ + --hash=sha256:0b8612cd233543a3781bc659c731b9d607de65890085098986dfd573fc2befe5 \ + --hash=sha256:11a8c85ef4a07a7638180bf04fe189d12757c696eb41f310d2426895356dcf05 \ + --hash=sha256:1374f4129f9bcca53a1bba0bb86bf78325a0374577cf7e9e4cd046b1e6f20e24 \ + --hash=sha256:1d4acf42190d449d5e89654d5c1ed3a4f17925eec71f05e2a41414689cda02d1 \ + --hash=sha256:1d9a5be316c15ffb2b3c405c4ff14448c36b4435be062a7f578ccd8b01f0c4d8 \ + --hash=sha256:1df3659d26f539ac74fb3b0c481cdf9d725386e3552c6fa2974f4d33d78e544b \ + --hash=sha256:22806714311a69fd0af9b35b7be97c18a0fc2826e6827dbb3a8c94eac6cf7eeb \ + --hash=sha256:2644e47de560eb7bd55c20fc59f6daa04682655c58d08185a9b95c1970fa1e07 \ + --hash=sha256:2e6d75ab12b0bbab7215e5d40f1e5b738aa539598db27ef83b2ec46747df90e1 \ + --hash=sha256:30f43887bbae0d49113cbaab729a112251a940e9b274536613097ab8b4899cf6 \ + --hash=sha256:34b18ba135c687f4dac449aa5157d36e2cbb7c03cbea4ddbd88604e076aa836e \ + --hash=sha256:36b3ee798c58ace201289024b52788161e1ea133e4ac93fba7d49da5fec0ef9e \ + --hash=sha256:39514da80f971362f9267c600b6d459bfbbc549cffc2cef8e47474fddc9b45b1 \ + --hash=sha256:39f5441553f1c2aed4de4377178ad8ff8f9d733723d6c66d983d75341de265ab \ + --hash=sha256:3a96e0c6a41dcdba3a0a581bbf6c44bb863f27c541547fb4b9711fd8cf0ffad4 \ + --hash=sha256:3f26b5bd1079acdb0c7a5645e350fe54d16b17bfc5e71f371c449383d3342e17 \ + --hash=sha256:41ef53e7c58aa4ef281da975f62c258950f54b76ec8e45941e93a3d1d8580594 \ + --hash=sha256:42821446ee7a76f5d9f71f9e33a4fb2ffd724bb3e7f93386150b61a43115788d \ + --hash=sha256:43fbac5f22e25bee1d482c97474f930a353542855f05c1161fd804c9dc74a09d \ + --hash=sha256:4457a94da0d5c53dc4b3e4de1158bdab077db23c53232f37a3cb7afdb053a4e3 \ + --hash=sha256:465a3eb5659338cf2a9243e50ad9b2296fa15061736d6e26240e713522b6235c \ + --hash=sha256:482103aed1dfe2f3b71a58eff35ba105289b8d862551ea576bd15479aba01f66 \ + --hash=sha256:4832d7d380477521a8c1644bbab6588dfedea5e30a7d967b5fb75977c45fd77f \ + --hash=sha256:4901165d170a5fde6f589acb90a6b33629ad1ec976d4529e769c6f3d885e3e80 \ + --hash=sha256:5307def11a35f5ae4581a0b658b0af8178c65c530e94893345bebf41cc139d33 \ + --hash=sha256:5417558f6887e9b6b65b4527232553c139b57ec42c64570569b155262ac0754f \ + --hash=sha256:56a737287efecafc16f6d067c2ea0117abadcd078d58721f967952db329a3e5c \ + --hash=sha256:586f8204935b9ec884500498ccc91aa869fc652c40c093bd9e1471fbcc25c022 \ + --hash=sha256:5b4e7d8d6c9b2e8ee2d55c90b59c707ca59bc30058269b3db7b1f8df5763557e \ + --hash=sha256:5ddcba87675b6d509139d1b521e0c8250e967e63b5909a7e8f8944d0f90ff36f \ + --hash=sha256:618a3d6cae6ef8ec88bb76dd80b83cfe415ad4f1d942ca2a903bf6b6ff97a2da \ + --hash=sha256:635dc434ff724b178cb192c70016cc0ad25a275228f749ee0daf0eddbc8183b1 \ + --hash=sha256:661d25cbffaf8cc42e971dd570d87cb29a665f49f4abe1f9e76be9a5182c4688 \ + --hash=sha256:66e6a3af5a75363d2c9a48b07cb27c4ea542938b1a2e93b15a503cdfa8490795 \ + --hash=sha256:67071a6171e92b6da534b8ae326505f7c18022c6f19072a81dcf40db2638767c \ + --hash=sha256:685537e07897f173abcf67258bee3c05c374fa6fff89d4c7e42fb391b0605e98 \ + --hash=sha256:69e64831e22a6b377772e7fb337533c365085b31619005802a79242fee620bc1 \ + --hash=sha256:6b0817e34942b2ca527b0e9298373e7cc75f429e8da2055607f4931fded23e20 \ + --hash=sha256:6c81e5f372cd0dc5dc4809553d34f832f60a46034a5f187756d9b90586c2c307 \ + --hash=sha256:6d7faa6f14017c0b1e69f5e2c357b998731ea75a442ab3841c0dbbbfe902d2c4 \ + --hash=sha256:6ef0befbb5d79cf32d0266f5cff01545602344eda89480e1dd88aca964260b18 \ + --hash=sha256:6ef687afab047554a2d366e112dd187b62d261d49eb79b77e386f94644363294 \ + --hash=sha256:7223a2a5fe0d217e60a60cdae28d6949140dde9c3bcc714063c5b463065e3d66 \ + --hash=sha256:77f195baa60a54ef9d2de16fbbfd3ff8b04edc0c0140a761b56c267ac11aa467 \ + --hash=sha256:793968759cd0d96cac1e367afd70c235867831983f876a53389ad869b043c948 \ + --hash=sha256:7bd339195d84439cbe5771546fe8a4e8a7a045417d8f9de9a368c434e42a721e \ + --hash=sha256:7cd863afe7336c62ec78d7d1349a2f34c007a3cc6c2369d667c65aeec412a5b1 \ + --hash=sha256:7f2facbd386dd60cbbf1a794181e6aa0bd429bd78bfdf775436020172e2a23f0 \ + --hash=sha256:84ffab12db93b5f6bad84c712c92060a2d321b35c3c9960b43d08d0f639d60d7 \ + --hash=sha256:8c8370641f1a7f0e0669ddccca22f1da893cef7628396431eb445d46d893e5cd \ + --hash=sha256:8db715ebe3bb7d86d77ac1826f7d67ec11a70dbd2376b7cc214199360517b641 \ + --hash=sha256:8e8916ae4c720529e18afa0b879473049e95949bf97042e938530e072fde061d \ + --hash=sha256:8f03bccbd8586e9dd37219bce4d4e0d3ab492e6b3b533e973fa08a112cb2ffc9 \ + --hash=sha256:8f2fc11e8fe034ee3c34d316d0ad8808f45bc3b9ce5857ff29d513f3ff2923a1 \ + --hash=sha256:923d39efa3cfb7279a0327e337a7958bff00cc447fd07a25cddb0a1cc9a6d2da \ + --hash=sha256:93df1de2f7f7239dc9cc5a4a12408ee1598725036bd2dedadc14d94525192fc3 \ + --hash=sha256:998e33ad22dc7ec7e030b3df701c43630b5bc0d8fbc2267653577e3fec279afa \ + --hash=sha256:99f70b740dc04d09e6b2699b675874367885217a2e9f782bdf5395632ac663b7 \ + --hash=sha256:9a00312dea9310d4cb7dbd7787e722d2e86a95c2db92fbd7d0155f97127bcb40 \ + --hash=sha256:9d54553c1136b50fd12cc17e5b11ad07374c316df307e4cfd6441bea5fb68496 \ + --hash=sha256:9dbbeb27f4e70bfd9eec1be5477517365afe05a9b2c441a0b21929ee61048124 \ + --hash=sha256:a1ce3ba137ed54f83e56fb983a5859a27d43a40188ba798993812fed73c70836 \ + --hash=sha256:a34d557a42aa28bd5c48a023c570219ba2593bcbbb8dc1b98d8cf5d529ab1434 \ + --hash=sha256:a5f446dd5055667aabaee78487f2b5ab72e244f9bc0b2ffebfeec79051679984 \ + --hash=sha256:ad36cfb355e24f1bd37cac88c112cd7730873f20fb0bdaf8ba59eedf8216079f \ + --hash=sha256:aec493917dd45e3c69d00a8874e7cbed844efd935595ef78a0f25f14312e33c6 \ + --hash=sha256:b316144e85316da2723f9d8dc75bada12fa58489a527091fa1d5a612643d1a0e \ + --hash=sha256:b34ae4636dfc4e76a438ab826a0d1eed2589ca7d9a1b2d5bb546978ac6485461 \ + --hash=sha256:b34b7aa8b261c1dbf7720b5d6f01f38243e9b9daf7e6b8bc1fd4657000062f2c \ + --hash=sha256:bc362ee4e314870a70f4ae88772d72d877246537d9f8cb8f7eacf10884862432 \ + --hash=sha256:bed88b9a458e354014d662d47e7a5baafd7ff81c780fd91584a10d6ec842cb73 \ + --hash=sha256:c0013fe6b46aa496a6749c77e00a3eb07952832ad6166bd481c74bda0dcb6d58 \ + --hash=sha256:c0b5dcf9193625afd8ecc92312d6ed78781c46ecbf39af9ad4681fc9f464af88 \ + --hash=sha256:c4325ff0442a12113a6379af66978c3fe562f846763287ef66bdc1d57925d337 \ + --hash=sha256:c463ed05f9dfb9baebef68048aed8dcdc94411e4bf3d33a39ba97e271624f8f7 \ + --hash=sha256:c8362467a0fdeccd47935f22c256bec5e6abe543bf0d66e3d3d57a8fb5731863 \ + --hash=sha256:cd5bf1af8efe569654bbef5a3e0a56eca45f87cfcffab31dd8dde70da5982475 \ + --hash=sha256:cf1ea2e34868f6fbf070e1af291c8180480310173de0b0c43fc38a02929fc0e3 \ + --hash=sha256:d62dec4976954a23d7f91f2f4530852b0c7608116c257833922a896101336c51 \ + --hash=sha256:d68c93e381010662ab873fea609bf6c0f428b6d0bb00f2c6939782e0818d37bf \ + --hash=sha256:d7c36232a90d4755b720fbd76739d8891732b18cf240a9c645d75f00639a9024 \ + --hash=sha256:dd18772815d5f008fa03d2b9a681ae38d5ae9f0e599f7dda233c439fcaa00d40 \ + --hash=sha256:ddc2f4dfd396c7bfa18e6ce371cba60e4cf9d2e5cdb71376aa2da264605b60b9 \ + --hash=sha256:e003b002ec72c8d5a3e3da2989c7d6065b47d9eaa70cd8808b5384fbb970f4ec \ + --hash=sha256:e32a92116d4f2a80b629778280103d2a510a5b3f6314ceccd6e38006b5e92dcb \ + --hash=sha256:e4461d0f003a0aa9be2bdd1b798a041f177189c1a0f7619fe8c95ad08d9a45d7 \ + --hash=sha256:e541ec6f2ec456934fd279a3120f856cd0aedd209fc3852eca563f81738f6861 \ + --hash=sha256:e546e768d08ad55b20b11dbb78a745151acbd938f8f00d0cfbabe8b0199b9880 \ + --hash=sha256:ea7d4a99f3b38c37eac212dbd6ec42b7a5ec51e2c74b5d3223e43c811609e65f \ + --hash=sha256:ed4eb745efbff0a8e9587d22a84be94a5eb7d2d99c02dacf7bd0911713ed14dd \ + --hash=sha256:f8a2f084546cc59ea99fda8e070be2fd140c3092dc11524a71aa8f0f3d5a55ca \ + --hash=sha256:fcb25daa9219b4cf3a0ab24b0eb9a5cc8949ed4dc72acb8fa16b7e1681aa3c58 \ + --hash=sha256:fdea4952db2793c4ad0bdccd27c1d8fdd1423a92f04598bc39425bcc2b8ee46e +scipy==1.12.0 ; python_version >= "3.10" and python_version < "4.0" \ + --hash=sha256:196ebad3a4882081f62a5bf4aeb7326aa34b110e533aab23e4374fcccb0890dc \ + --hash=sha256:408c68423f9de16cb9e602528be4ce0d6312b05001f3de61fe9ec8b1263cad08 \ + --hash=sha256:4bf5abab8a36d20193c698b0f1fc282c1d083c94723902c447e5d2f1780936a3 \ + --hash=sha256:4c1020cad92772bf44b8e4cdabc1df5d87376cb219742549ef69fc9fd86282dd \ + --hash=sha256:5adfad5dbf0163397beb4aca679187d24aec085343755fcdbdeb32b3679f254c \ + --hash=sha256:5e32847e08da8d895ce09d108a494d9eb78974cf6de23063f93306a3e419960c \ + --hash=sha256:6546dc2c11a9df6926afcbdd8a3edec28566e4e785b915e849348c6dd9f3f490 \ + --hash=sha256:730badef9b827b368f351eacae2e82da414e13cf8bd5051b4bdfd720271a5371 \ + --hash=sha256:75ea2a144096b5e39402e2ff53a36fecfd3b960d786b7efd3c180e29c39e53f2 \ + --hash=sha256:78e4402e140879387187f7f25d91cc592b3501a2e51dfb320f48dfb73565f10b \ + --hash=sha256:8b8066bce124ee5531d12a74b617d9ac0ea59245246410e19bca549656d9a40a \ + --hash=sha256:8bee4993817e204d761dba10dbab0774ba5a8612e57e81319ea04d84945375ba \ + --hash=sha256:913d6e7956c3a671de3b05ccb66b11bc293f56bfdef040583a7221d9e22a2e35 \ + --hash=sha256:95e5c750d55cf518c398a8240571b0e0782c2d5a703250872f36eaf737751338 \ + --hash=sha256:9c39f92041f490422924dfdb782527a4abddf4707616e07b021de33467f917bc \ + --hash=sha256:a24024d45ce9a675c1fb8494e8e5244efea1c7a09c60beb1eeb80373d0fecc70 \ + --hash=sha256:a7ebda398f86e56178c2fa94cad15bf457a218a54a35c2a7b4490b9f9cb2676c \ + --hash=sha256:b360f1b6b2f742781299514e99ff560d1fe9bd1bff2712894b52abe528d1fd1e \ + --hash=sha256:bba1b0c7256ad75401c73e4b3cf09d1f176e9bd4248f0d3112170fb2ec4db067 \ + --hash=sha256:c3003652496f6e7c387b1cf63f4bb720951cfa18907e998ea551e6de51a04467 \ + --hash=sha256:e53958531a7c695ff66c2e7bb7b79560ffdc562e2051644c5576c39ff8efb563 \ + --hash=sha256:e646d8571804a304e1da01040d21577685ce8e2db08ac58e543eaca063453e1c \ + --hash=sha256:e7e76cc48638228212c747ada851ef355c2bb5e7f939e10952bc504c11f4e372 \ + --hash=sha256:f5f00ebaf8de24d14b8449981a2842d404152774c1a1d880c901bf454cb8e2a1 \ + --hash=sha256:f7ce148dffcd64ade37b2df9315541f9adad6efcaa86866ee7dd5db0c8f041c3 +seaborn==0.11.2 ; python_version >= "3.10" and python_version < "4.0" \ + --hash=sha256:85a6baa9b55f81a0623abddc4a26b334653ff4c6b18c418361de19dbba0ef283 \ + --hash=sha256:cf45e9286d40826864be0e3c066f98536982baf701a7caa386511792d61ff4f6 +send2trash==1.8.2 ; python_version >= "3.10" and python_version < "4.0" \ + --hash=sha256:a384719d99c07ce1eefd6905d2decb6f8b7ed054025bb0e618919f945de4f679 \ + --hash=sha256:c132d59fa44b9ca2b1699af5c86f57ce9f4c5eb56629d5d55fbb7a35f84e2312 +setuptools==69.1.0 ; python_version >= "3.10" and python_version < "4.0" \ + --hash=sha256:850894c4195f09c4ed30dba56213bf7c3f21d86ed6bdaafb5df5972593bfc401 \ + --hash=sha256:c054629b81b946d63a9c6e732bc8b2513a7c3ea645f11d0139a2191d735c60c6 +six==1.16.0 ; python_version >= "3.10" and python_version < "4.0" \ + --hash=sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926 \ + --hash=sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254 +sniffio==1.3.0 ; python_version >= "3.10" and python_version < "4.0" \ + --hash=sha256:e60305c5e5d314f5389259b7f22aaa33d8f7dee49763119234af3755c55b9101 \ + --hash=sha256:eecefdce1e5bbfb7ad2eeaabf7c1eeb404d7757c379bd1f7e5cce9d8bf425384 +snowballstemmer==2.2.0 ; python_version >= "3.10" and python_version < "4.0" \ + --hash=sha256:09b16deb8547d3412ad7b590689584cd0fe25ec8db3be37788be3810cbf19cb1 \ + --hash=sha256:c8e1716e83cc398ae16824e5572ae04e0d9fc2c6b985fb0f900f5f0c96ecba1a +soupsieve==2.5 ; python_version >= "3.10" and python_version < "4.0" \ + --hash=sha256:5663d5a7b3bfaeee0bc4372e7fc48f9cff4940b3eec54a6451cc5299f1097690 \ + --hash=sha256:eaa337ff55a1579b6549dc679565eac1e3d000563bcb1c8ab0d0fefbc0c2cdc7 +sphinx-autodoc-annotation==1.0-1 ; python_version >= "3.10" and python_version < "4.0" \ + --hash=sha256:4a3d03081efe1e5f2bc9b9d00746550f45b9f543b0c79519c523168ca7f7d89a +sphinx-autodoc-typehints==1.23.0 ; python_version >= "3.10" and python_version < "4.0" \ + --hash=sha256:5d44e2996633cdada499b6d27a496ddf9dbc95dd1f0f09f7b37940249e61f6e9 \ + --hash=sha256:ac099057e66b09e51b698058ba7dd76e57e1fe696cd91b54e121d3dad188f91d +sphinx-rtd-theme==0.5.1 ; python_version >= "3.10" and python_version < "4.0" \ + --hash=sha256:eda689eda0c7301a80cf122dad28b1861e5605cbf455558f3775e1e8200e83a5 \ + --hash=sha256:fa6bebd5ab9a73da8e102509a86f3fcc36dec04a0b52ea80e5a033b2aba00113 +sphinx==6.2.1 ; python_version >= "3.10" and python_version < "4.0" \ + --hash=sha256:6d56a34697bb749ffa0152feafc4b19836c755d90a7c59b72bc7dfd371b9cc6b \ + --hash=sha256:97787ff1fa3256a3eef9eda523a63dbf299f7b47e053cfcf684a1c2a8380c912 +sphinxcontrib-applehelp==1.0.8 ; python_version >= "3.10" and python_version < "4.0" \ + --hash=sha256:c40a4f96f3776c4393d933412053962fac2b84f4c99a7982ba42e09576a70619 \ + --hash=sha256:cb61eb0ec1b61f349e5cc36b2028e9e7ca765be05e49641c97241274753067b4 +sphinxcontrib-devhelp==1.0.6 ; python_version >= "3.10" and python_version < "4.0" \ + --hash=sha256:6485d09629944511c893fa11355bda18b742b83a2b181f9a009f7e500595c90f \ + --hash=sha256:9893fd3f90506bc4b97bdb977ceb8fbd823989f4316b28c3841ec128544372d3 +sphinxcontrib-htmlhelp==2.0.5 ; python_version >= "3.10" and python_version < "4.0" \ + --hash=sha256:0dc87637d5de53dd5eec3a6a01753b1ccf99494bd756aafecd74b4fa9e729015 \ + --hash=sha256:393f04f112b4d2f53d93448d4bce35842f62b307ccdc549ec1585e950bc35e04 +sphinxcontrib-jsmath==1.0.1 ; python_version >= "3.10" and python_version < "4.0" \ + --hash=sha256:2ec2eaebfb78f3f2078e73666b1415417a116cc848b72e5172e596c871103178 \ + --hash=sha256:a9925e4a4587247ed2191a22df5f6970656cb8ca2bd6284309578f2153e0c4b8 +sphinxcontrib-qthelp==1.0.7 ; python_version >= "3.10" and python_version < "4.0" \ + --hash=sha256:053dedc38823a80a7209a80860b16b722e9e0209e32fea98c90e4e6624588ed6 \ + --hash=sha256:e2ae3b5c492d58fcbd73281fbd27e34b8393ec34a073c792642cd8e529288182 +sphinxcontrib-serializinghtml==1.1.10 ; python_version >= "3.10" and python_version < "4.0" \ + --hash=sha256:326369b8df80a7d2d8d7f99aa5ac577f51ea51556ed974e7716cfd4fca3f6cb7 \ + --hash=sha256:93f3f5dc458b91b192fe10c397e324f262cf163d79f3282c158e8436a2c4511f +stack-data==0.6.3 ; python_version >= "3.10" and python_version < "4.0" \ + --hash=sha256:836a778de4fec4dcd1dcd89ed8abff8a221f58308462e1c4aa2a3cf30148f0b9 \ + --hash=sha256:d5558e0c25a4cb0853cddad3d77da9891a08cb85dd9f9f91b9f8cd66e511e695 +sympy==1.12 ; python_version >= "3.10" and python_version < "4.0" \ + --hash=sha256:c3588cd4295d0c0f603d0f2ae780587e64e2efeedb3521e46b9bb1d08d184fa5 \ + --hash=sha256:ebf595c8dac3e0fdc4152c51878b498396ec7f30e7a914d6071e674d49420fb8 +terminado==0.18.0 ; python_version >= "3.10" and python_version < "4.0" \ + --hash=sha256:1ea08a89b835dd1b8c0c900d92848147cef2537243361b2e3f4dc15df9b6fded \ + --hash=sha256:87b0d96642d0fe5f5abd7783857b9cab167f221a39ff98e3b9619a788a3c0f2e +tinycss2==1.2.1 ; python_version >= "3.10" and python_version < "4.0" \ + --hash=sha256:2b80a96d41e7c3914b8cda8bc7f705a4d9c49275616e886103dd839dfc847847 \ + --hash=sha256:8cff3a8f066c2ec677c06dbc7b45619804a6938478d9d73c284b29d14ecb0627 +tomli==2.0.1 ; python_version >= "3.10" and python_version < "3.11" \ + --hash=sha256:939de3e7a6161af0c887ef91b7d41a53e7c5a1ca976325f429cb46ea9bc30ecc \ + --hash=sha256:de526c12914f0c550d15924c62d72abc48d6fe7364aa87328337a31007fe8a4f +tomopt-sphinx-theme @ git+https://github.com/GilesStrong/tomopt_sphinx_theme.git@1add09f655d64ef28ece5d64e90610adc73d78e3 ; python_version >= "3.10" and python_version < "4.0" +torch==2.2.0 ; python_version >= "3.10" and python_version < "4.0" \ + --hash=sha256:008e4c6ad703de55af760c73bf937ecdd61a109f9b08f2bbb9c17e7c7017f194 \ + --hash=sha256:03c8e660907ac1b8ee07f6d929c4e15cd95be2fb764368799cca02c725a212b8 \ + --hash=sha256:08f53ccc38c49d839bc703ea1b20769cc8a429e0c4b20b56921a9f64949bf325 \ + --hash=sha256:0ca4df4b728515ad009b79f5107b00bcb2c63dc202d991412b9eb3b6a4f24349 \ + --hash=sha256:0d1c580e379c0d48f0f0a08ea28d8e373295aa254de4f9ad0631f9ed8bc04c24 \ + --hash=sha256:0d819399819d0862268ac531cf12a501c253007df4f9e6709ede8a0148f1a7b8 \ + --hash=sha256:15c8f0a105c66b28496092fca1520346082e734095f8eaf47b5786bac24b8a31 \ + --hash=sha256:3d3eea2d5969b9a1c9401429ca79efc668120314d443d3463edc3289d7f003c7 \ + --hash=sha256:51770c065206250dc1222ea7c0eff3f88ab317d3e931cca2aee461b85fbc2472 \ + --hash=sha256:707f2f80402981e9f90d0038d7d481678586251e6642a7a6ef67fc93511cb446 \ + --hash=sha256:9328e3c1ce628a281d2707526b4d1080eae7c4afab4f81cea75bde1f9441dc78 \ + --hash=sha256:93bffe3779965a71dab25fc29787538c37c5d54298fd2f2369e372b6fb137d41 \ + --hash=sha256:99e1dcecb488e3fd25bcaac56e48cdb3539842904bdc8588b0b255fde03a254c \ + --hash=sha256:9eeb42971619e24392c9088b5b6d387d896e267889d41d267b1fec334f5227c5 \ + --hash=sha256:c02685118008834e878f676f81eab3a952b7936fa31f474ef8a5ff4b5c78b36d \ + --hash=sha256:c17ec323da778efe8dad49d8fb534381479ca37af1bfc58efdbb8607a9d263a3 \ + --hash=sha256:c718b2ca69a6cac28baa36d86d8c0ec708b102cebd1ceb1b6488e404cd9be1d1 \ + --hash=sha256:d366158d6503a3447e67f8c0ad1328d54e6c181d88572d688a625fac61b13a97 \ + --hash=sha256:d9f39d6f53cec240a0e3baa82cb697593340f9d4554cee6d3d6ca07925c2fac0 \ + --hash=sha256:da0cefe7f84ece3e3b56c11c773b59d1cb2c0fd83ddf6b5f7f1fd1a987b15c3e \ + --hash=sha256:dcbfb2192ac41ca93c756ebe9e2af29df0a4c14ee0e7a0dd78f82c67a63d91d4 \ + --hash=sha256:de8680472dd14e316f42ceef2a18a301461a9058cd6e99a1f1b20f78f11412f1 \ + --hash=sha256:ee1da852bfd4a7e674135a446d6074c2da7194c1b08549e31eae0b3138c6b4d2 \ + --hash=sha256:f11d18fceb4f9ecb1ac680dde7c463c120ed29056225d75469c19637e9f98d12 \ + --hash=sha256:f81d23227034221a4a4ff8ef24cc6cec7901edd98d9e64e32822778ff01be85e +tornado==6.4 ; python_version >= "3.10" and python_version < "4.0" \ + --hash=sha256:02ccefc7d8211e5a7f9e8bc3f9e5b0ad6262ba2fbb683a6443ecc804e5224ce0 \ + --hash=sha256:10aeaa8006333433da48dec9fe417877f8bcc21f48dda8d661ae79da357b2a63 \ + --hash=sha256:27787de946a9cffd63ce5814c33f734c627a87072ec7eed71f7fc4417bb16263 \ + --hash=sha256:6f8a6c77900f5ae93d8b4ae1196472d0ccc2775cc1dfdc9e7727889145c45052 \ + --hash=sha256:71ddfc23a0e03ef2df1c1397d859868d158c8276a0603b96cf86892bff58149f \ + --hash=sha256:72291fa6e6bc84e626589f1c29d90a5a6d593ef5ae68052ee2ef000dfd273dee \ + --hash=sha256:88b84956273fbd73420e6d4b8d5ccbe913c65d31351b4c004ae362eba06e1f78 \ + --hash=sha256:e43bc2e5370a6a8e413e1e1cd0c91bedc5bd62a74a532371042a18ef19e10579 \ + --hash=sha256:f0251554cdd50b4b44362f73ad5ba7126fc5b2c2895cc62b14a1c2d7ea32f212 \ + --hash=sha256:f7894c581ecdcf91666a0912f18ce5e757213999e183ebfc2c3fdbf4d5bd764e \ + --hash=sha256:fd03192e287fbd0899dd8f81c6fb9cbbc69194d2074b38f384cb6fa72b80e9c2 +traitlets==5.14.1 ; python_version >= "3.10" and python_version < "4.0" \ + --hash=sha256:2e5a030e6eff91737c643231bfcf04a65b0132078dad75e4936700b213652e74 \ + --hash=sha256:8585105b371a04b8316a43d5ce29c098575c2e477850b62b848b964f1444527e +triton==2.2.0 ; platform_system == "Linux" and platform_machine == "x86_64" and python_version >= "3.10" and python_version < "4.0" \ + --hash=sha256:0af58716e721460a61886668b205963dc4d1e4ac20508cc3f623aef0d70283d5 \ + --hash=sha256:227cc6f357c5efcb357f3867ac2a8e7ecea2298cd4606a8ba1e931d1d5a947df \ + --hash=sha256:a2294514340cfe4e8f4f9e5c66c702744c4a117d25e618bd08469d0bfed1e2e5 \ + --hash=sha256:b8ce26093e539d727e7cf6f6f0d932b1ab0574dc02567e684377630d86723ace \ + --hash=sha256:da58a152bddb62cafa9a857dd2bc1f886dbf9f9c90a2b5da82157cd2b34392b0 \ + --hash=sha256:e8fe46d3ab94a8103e291bd44c741cc294b91d1d81c1a2888254cbf7ff846dab +types-python-dateutil==2.8.19.20240106 ; python_version >= "3.10" and python_version < "4.0" \ + --hash=sha256:1f8db221c3b98e6ca02ea83a58371b22c374f42ae5bbdf186db9c9a76581459f \ + --hash=sha256:efbbdc54590d0f16152fa103c9879c7d4a00e82078f6e2cf01769042165acaa2 +typing-extensions==4.9.0 ; python_version >= "3.10" and python_version < "4.0" \ + --hash=sha256:23478f88c37f27d76ac8aee6c905017a143b0b1b886c3c9f66bc2fd94f9f5783 \ + --hash=sha256:af72aea155e91adfc61c3ae9e0e342dbc0cba726d6cba4b6c72c1f34e47291cd +uri-template==1.3.0 ; python_version >= "3.10" and python_version < "4.0" \ + --hash=sha256:0e00f8eb65e18c7de20d595a14336e9f337ead580c70934141624b6d1ffdacc7 \ + --hash=sha256:a44a133ea12d44a0c0f06d7d42a52d71282e77e2f937d8abd5655b8d56fc1363 +urllib3==2.2.0 ; python_version >= "3.10" and python_version < "4.0" \ + --hash=sha256:051d961ad0c62a94e50ecf1af379c3aba230c66c710493493560c0c223c49f20 \ + --hash=sha256:ce3711610ddce217e6d113a2732fafad960a03fd0318c91faa79481e35c11224 +virtualenv==20.25.0 ; python_version >= "3.10" and python_version < "4.0" \ + --hash=sha256:4238949c5ffe6876362d9c0180fc6c3a824a7b12b80604eeb8085f2ed7460de3 \ + --hash=sha256:bf51c0d9c7dd63ea8e44086fa1e4fb1093a31e963b86959257378aef020e1f1b +wcwidth==0.2.13 ; python_version >= "3.10" and python_version < "4.0" \ + --hash=sha256:3da69048e4540d84af32131829ff948f1e022c1c6bdb8d6102117aac784f6859 \ + --hash=sha256:72ea0c06399eb286d978fdedb6923a9eb47e1c486ce63e9b4e64fc18303972b5 +webcolors==1.13 ; python_version >= "3.10" and python_version < "4.0" \ + --hash=sha256:29bc7e8752c0a1bd4a1f03c14d6e6a72e93d82193738fa860cbff59d0fcc11bf \ + --hash=sha256:c225b674c83fa923be93d235330ce0300373d02885cef23238813b0d5668304a +webencodings==0.5.1 ; python_version >= "3.10" and python_version < "4.0" \ + --hash=sha256:a0af1213f3c2226497a97e2b3aa01a7e4bee4f403f95be16fc9acd2947514a78 \ + --hash=sha256:b36a1c245f2d304965eb4e0a82848379241dc04b865afcc4aab16748587e1923 +websocket-client==1.7.0 ; python_version >= "3.10" and python_version < "4.0" \ + --hash=sha256:10e511ea3a8c744631d3bd77e61eb17ed09304c413ad42cf6ddfa4c7787e8fe6 \ + --hash=sha256:f4c3d22fec12a2461427a29957ff07d35098ee2d976d3ba244e688b8b4057588 +widgetsnbextension==4.0.10 ; python_version >= "3.10" and python_version < "4.0" \ + --hash=sha256:64196c5ff3b9a9183a8e699a4227fb0b7002f252c814098e66c4d1cd0644688f \ + --hash=sha256:d37c3724ec32d8c48400a435ecfa7d3e259995201fbefa37163124a9fcb393cc diff --git a/run-mypy b/run-mypy index 15635507..8357c0d2 100755 --- a/run-mypy +++ b/run-mypy @@ -2,4 +2,4 @@ set -o errexit cd "$(dirname "$0")" -mypy . +poetry run mypy . diff --git a/setup.cfg b/setup.cfg index 739309b1..bd8a27f5 100644 --- a/setup.cfg +++ b/setup.cfg @@ -45,9 +45,6 @@ ignore_missing_imports = True [mypy-mpl_toolkits.*] ignore_missing_imports = True -[mypy-functorch.*] -ignore_missing_imports = True - [flake8] ignore = E203, E266, E501, W503, F403, F401, E741, C901 max-line-length = 160 diff --git a/setup.py b/setup.py deleted file mode 100644 index 7eae51de..00000000 --- a/setup.py +++ /dev/null @@ -1,45 +0,0 @@ -#!/usr/bin/env python -# -*- coding: utf-8 -*- - -try: - from setuptools import find_packages, setup -except ImportError: - from distutils.core import find_packages, setup - -with open("README.md", encoding="utf-8") as fin: - long_description = fin.read() - -dev_only = ["pre-commit", "black", "flake8", "mypy", "pytest", "isort", "pytest-mock", "flaky", "pytest-lazy-fixture"] -with open("requirements.txt", encoding="utf-8") as f: - requirements = [r for r in f.read().strip().split("\n") if r not in dev_only] - - -exec(open("tomopt/version.py").read()) - -setup( - name="tomopt", - version=__version__, # noqa - author="Giles Strong, et al.", - author_email="https://mode-collaboration.github.io/", - description="TomOpt: Differential Muon Tomography Optimization", - long_description=long_description, - long_description_content_type="text/markdown", - url="https://github.com/GilesStrong/mode_muon_tomography", - keywords="deep learning, differential programming, physics, science, statistics, tomography, detector", - packages=find_packages(), - package_data={"tomopt": ["py.typed", "volume/scatter_models/*"]}, - include_package_data=True, - python_requires=">=3.8", - install_requires=requirements, - license="GNU Affero General Public License v3.0", - classifiers=[ - "Programming Language :: Python :: 3.8", - "License :: OSI Approved :: GNU Affero General Public License v3.0", - "Operating System :: MacOS :: MacOS X ", - "Operating System :: POSIX :: Linux", - "Intended Audience :: Developers", - "Intended Audience :: Science/Research", - "Natural Language :: English", - "Development Status :: 3 - Alpha", - ], -) diff --git a/tomopt/utils.py b/tomopt/utils.py index 9489a9a7..dc9d1726 100644 --- a/tomopt/utils.py +++ b/tomopt/utils.py @@ -2,8 +2,7 @@ import numpy as np import torch -from functorch import vmap -from torch import Tensor +from torch import Tensor, vmap r""" Common utility functions