diff --git a/.buildinfo b/.buildinfo
new file mode 100644
index 00000000..62988328
--- /dev/null
+++ b/.buildinfo
@@ -0,0 +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: a564e7d5fc37885fd248d8bd3b9e8dd6
+tags: 645f666f9bcd5a90fca523b33c5a78b7
diff --git a/.nojekyll b/.nojekyll
new file mode 100644
index 00000000..e69de29b
diff --git a/_images/Folie2.PNG b/_images/Folie2.PNG
new file mode 100644
index 00000000..f7e60473
Binary files /dev/null and b/_images/Folie2.PNG differ
diff --git a/_images/Folie3.PNG b/_images/Folie3.PNG
new file mode 100644
index 00000000..ff1fad7a
Binary files /dev/null and b/_images/Folie3.PNG differ
diff --git a/_sources/changelog.rst.txt b/_sources/changelog.rst.txt
new file mode 100644
index 00000000..1f959467
--- /dev/null
+++ b/_sources/changelog.rst.txt
@@ -0,0 +1 @@
+.. include:: ../../../CHANGELOG.rst
\ No newline at end of file
diff --git a/_sources/commandline_interface.rst.txt b/_sources/commandline_interface.rst.txt
new file mode 100644
index 00000000..1d10bac7
--- /dev/null
+++ b/_sources/commandline_interface.rst.txt
@@ -0,0 +1,41 @@
+pointcloudset CLI
+======================
+
+The best way to work with large ROS1 or ROS2 files is to convert the rosbag beforehand with
+the provided command line tool.
+
+It is also possible to convert whole or parts of ROS files to many poplar formats which
+are supported by pyntcloud:
+
+
+.asc / .pts / .txt / .csv / .xyz
+.las
+.npy / .npz
+.obj
+.off (with color support)
+.pcd
+.ply
+
+
+Example
+--------------------------
+
+An example to convert topic /os1_cloud_node/point within the test.bag rosbag to
+the converted directory.
+
+.. code-block:: console
+
+ pointcloudset convert -t /os1_cloud_node/points -d converted test.bag
+
+List all PointCloud2 topics in a ROS file.
+
+.. code-block:: console
+
+ pointcloudset topics test.bag
+
+
+.. click:: pointcloudset.io.dataset.commandline:typer_click_object
+ :prog: pointcloudset
+ :nested: full
+
+ pointcloudset -d converted -o csv .
\ No newline at end of file
diff --git a/_sources/description_python_api.rst.txt b/_sources/description_python_api.rst.txt
new file mode 100644
index 00000000..2340d7de
--- /dev/null
+++ b/_sources/description_python_api.rst.txt
@@ -0,0 +1,35 @@
+How to read the API documentation
+========================================
+
+A Dataset consists of multiple PointCloud objects which form the two main classes of the package.
+
+
+The main classes
+----------------------------------------
+
+
+**Dataset**: :class:`pointcloudset.dataset.Dataset` based on :class:`pointcloudset.dataset_core.DatasetCore`
+
+.. image:: images/Folie2.PNG
+ :width: 600
+
+
+**PointCloud**: :class:`pointcloudset.pointcloud.PointCloud` based on :class:`pointcloudset.pointcloud_core.PointCloudCore`
+
+.. image:: images/Folie3.PNG
+ :width: 300
+
+Modules
+----------------------------------------
+
+As a common user these Classes are enough to tackle most proplems. If you want to dive deeper or contribute to
+the package than you should have a look at the other modules.
+
+ Datasets and PointCloud use the functions of the following modules:
+ * :mod:`pointcloudset.diff`
+ * :mod:`pointcloudset.filter`
+ * :mod:`pointcloudset.geometry`
+ * :mod:`pointcloudset.io`
+ * :mod:`pointcloudset.plot`
+
+For a more detailed documentation see the section below.
\ No newline at end of file
diff --git a/_sources/getting_started_contribution.rst.txt b/_sources/getting_started_contribution.rst.txt
new file mode 100644
index 00000000..dd0ca302
--- /dev/null
+++ b/_sources/getting_started_contribution.rst.txt
@@ -0,0 +1,10 @@
+Getting started
+===============================
+
+* Install VS Code
+* Install the remote development extension in VS code (ms-vscode-remote.vscode-remote-extensionpack)
+* Install and run docker desktop
+* Clone the repository (you can use VS code for that as well)
+* Open the folder in VS code
+* VS code asks to open the remote development environment - say yes
+* The docker image is download on the first start, so this may take a while
\ No newline at end of file
diff --git a/_sources/guidelines.rst.txt b/_sources/guidelines.rst.txt
new file mode 100644
index 00000000..3007f6e7
--- /dev/null
+++ b/_sources/guidelines.rst.txt
@@ -0,0 +1,8 @@
+Guidelines
+================================
+
+* Use Google docstrings everywhere. The documentation in "doc" is generated with sphinx with $make doc
+* Write tests for every method/function which manipulates data.
+* Have a look at the Makefile and the available make commands.
+* Use typehints when declaring a function, class or method.
+* VS code settings in the dev container take care of linting with mypy, ruff and code formatting with black.
diff --git a/_sources/how_to_contribute.rst.txt b/_sources/how_to_contribute.rst.txt
new file mode 100644
index 00000000..0d86c9b5
--- /dev/null
+++ b/_sources/how_to_contribute.rst.txt
@@ -0,0 +1,7 @@
+How to Contribute
+=====================================
+
+* Add issues in GitHub
+* Generate a branch and implement new features
+* Write tests for the new features
+* Make a merge request in GitHub
\ No newline at end of file
diff --git a/_sources/index.rst.txt b/_sources/index.rst.txt
new file mode 100644
index 00000000..cc61c8f5
--- /dev/null
+++ b/_sources/index.rst.txt
@@ -0,0 +1,51 @@
+Welcome to pointcloudset's documentation!
+=========================================
+
+.. include:: ../../../README.rst
+ :start-after: inclusion-marker-do-not-remove
+
+.. toctree::
+ :maxdepth: 1
+ :caption: Tutorial
+
+ tutorial_notebooks/usage
+ tutorial_notebooks/reading_las_pcd
+ tutorial_notebooks/Working_with_kitti_dataset
+
+
+.. toctree::
+ :maxdepth: 1
+ :caption: Convert ROS 1 and ROS 2 files
+
+ commandline_interface
+
+.. toctree::
+ :maxdepth: 1
+ :caption: Contribute
+
+ how_to_contribute
+ getting_started_contribution
+ guidelines
+ support
+
+.. toctree::
+ :maxdepth: 5
+ :titlesonly:
+ :caption: Python API
+
+ description_python_api
+ python-api/pointcloudset
+
+.. toctree::
+ :maxdepth: 2
+ :caption: Changelog
+
+ changelog
+
+
+Indices and tables
+==================
+
+* :ref:`genindex`
+* :ref:`modindex`
+* :ref:`search`
diff --git a/_sources/python-api/pointcloudset.dataset.rst.txt b/_sources/python-api/pointcloudset.dataset.rst.txt
new file mode 100644
index 00000000..67249ed1
--- /dev/null
+++ b/_sources/python-api/pointcloudset.dataset.rst.txt
@@ -0,0 +1,7 @@
+pointcloudset.dataset module
+============================
+
+.. automodule:: pointcloudset.dataset
+ :members:
+ :undoc-members:
+ :show-inheritance:
diff --git a/_sources/python-api/pointcloudset.dataset_core.rst.txt b/_sources/python-api/pointcloudset.dataset_core.rst.txt
new file mode 100644
index 00000000..33c30c04
--- /dev/null
+++ b/_sources/python-api/pointcloudset.dataset_core.rst.txt
@@ -0,0 +1,7 @@
+pointcloudset.dataset\_core module
+==================================
+
+.. automodule:: pointcloudset.dataset_core
+ :members:
+ :undoc-members:
+ :show-inheritance:
diff --git a/_sources/python-api/pointcloudset.diff.nearest.rst.txt b/_sources/python-api/pointcloudset.diff.nearest.rst.txt
new file mode 100644
index 00000000..5f7da4f2
--- /dev/null
+++ b/_sources/python-api/pointcloudset.diff.nearest.rst.txt
@@ -0,0 +1,7 @@
+pointcloudset.diff.nearest module
+=================================
+
+.. automodule:: pointcloudset.diff.nearest
+ :members:
+ :undoc-members:
+ :show-inheritance:
diff --git a/_sources/python-api/pointcloudset.diff.origin.rst.txt b/_sources/python-api/pointcloudset.diff.origin.rst.txt
new file mode 100644
index 00000000..45dcbef8
--- /dev/null
+++ b/_sources/python-api/pointcloudset.diff.origin.rst.txt
@@ -0,0 +1,7 @@
+pointcloudset.diff.origin module
+================================
+
+.. automodule:: pointcloudset.diff.origin
+ :members:
+ :undoc-members:
+ :show-inheritance:
diff --git a/_sources/python-api/pointcloudset.diff.plane.rst.txt b/_sources/python-api/pointcloudset.diff.plane.rst.txt
new file mode 100644
index 00000000..7a22b21a
--- /dev/null
+++ b/_sources/python-api/pointcloudset.diff.plane.rst.txt
@@ -0,0 +1,7 @@
+pointcloudset.diff.plane module
+===============================
+
+.. automodule:: pointcloudset.diff.plane
+ :members:
+ :undoc-members:
+ :show-inheritance:
diff --git a/_sources/python-api/pointcloudset.diff.point.rst.txt b/_sources/python-api/pointcloudset.diff.point.rst.txt
new file mode 100644
index 00000000..2d183f43
--- /dev/null
+++ b/_sources/python-api/pointcloudset.diff.point.rst.txt
@@ -0,0 +1,7 @@
+pointcloudset.diff.point module
+===============================
+
+.. automodule:: pointcloudset.diff.point
+ :members:
+ :undoc-members:
+ :show-inheritance:
diff --git a/_sources/python-api/pointcloudset.diff.pointcloud.rst.txt b/_sources/python-api/pointcloudset.diff.pointcloud.rst.txt
new file mode 100644
index 00000000..9ec66b01
--- /dev/null
+++ b/_sources/python-api/pointcloudset.diff.pointcloud.rst.txt
@@ -0,0 +1,7 @@
+pointcloudset.diff.pointcloud module
+====================================
+
+.. automodule:: pointcloudset.diff.pointcloud
+ :members:
+ :undoc-members:
+ :show-inheritance:
diff --git a/_sources/python-api/pointcloudset.diff.rst.txt b/_sources/python-api/pointcloudset.diff.rst.txt
new file mode 100644
index 00000000..259d8449
--- /dev/null
+++ b/_sources/python-api/pointcloudset.diff.rst.txt
@@ -0,0 +1,19 @@
+pointcloudset.diff package
+==========================
+
+.. automodule:: pointcloudset.diff
+ :members:
+ :undoc-members:
+ :show-inheritance:
+
+Submodules
+----------
+
+.. toctree::
+ :maxdepth: 4
+
+ pointcloudset.diff.nearest
+ pointcloudset.diff.origin
+ pointcloudset.diff.plane
+ pointcloudset.diff.point
+ pointcloudset.diff.pointcloud
diff --git a/_sources/python-api/pointcloudset.filter.rst.txt b/_sources/python-api/pointcloudset.filter.rst.txt
new file mode 100644
index 00000000..ca962ef5
--- /dev/null
+++ b/_sources/python-api/pointcloudset.filter.rst.txt
@@ -0,0 +1,15 @@
+pointcloudset.filter package
+============================
+
+.. automodule:: pointcloudset.filter
+ :members:
+ :undoc-members:
+ :show-inheritance:
+
+Submodules
+----------
+
+.. toctree::
+ :maxdepth: 4
+
+ pointcloudset.filter.stat
diff --git a/_sources/python-api/pointcloudset.filter.stat.rst.txt b/_sources/python-api/pointcloudset.filter.stat.rst.txt
new file mode 100644
index 00000000..3da79fae
--- /dev/null
+++ b/_sources/python-api/pointcloudset.filter.stat.rst.txt
@@ -0,0 +1,7 @@
+pointcloudset.filter.stat module
+================================
+
+.. automodule:: pointcloudset.filter.stat
+ :members:
+ :undoc-members:
+ :show-inheritance:
diff --git a/_sources/python-api/pointcloudset.geometry.plane.rst.txt b/_sources/python-api/pointcloudset.geometry.plane.rst.txt
new file mode 100644
index 00000000..87cc6be0
--- /dev/null
+++ b/_sources/python-api/pointcloudset.geometry.plane.rst.txt
@@ -0,0 +1,7 @@
+pointcloudset.geometry.plane module
+===================================
+
+.. automodule:: pointcloudset.geometry.plane
+ :members:
+ :undoc-members:
+ :show-inheritance:
diff --git a/_sources/python-api/pointcloudset.geometry.point.rst.txt b/_sources/python-api/pointcloudset.geometry.point.rst.txt
new file mode 100644
index 00000000..4554afc1
--- /dev/null
+++ b/_sources/python-api/pointcloudset.geometry.point.rst.txt
@@ -0,0 +1,7 @@
+pointcloudset.geometry.point module
+===================================
+
+.. automodule:: pointcloudset.geometry.point
+ :members:
+ :undoc-members:
+ :show-inheritance:
diff --git a/_sources/python-api/pointcloudset.geometry.rst.txt b/_sources/python-api/pointcloudset.geometry.rst.txt
new file mode 100644
index 00000000..0d3f33ce
--- /dev/null
+++ b/_sources/python-api/pointcloudset.geometry.rst.txt
@@ -0,0 +1,16 @@
+pointcloudset.geometry package
+==============================
+
+.. automodule:: pointcloudset.geometry
+ :members:
+ :undoc-members:
+ :show-inheritance:
+
+Submodules
+----------
+
+.. toctree::
+ :maxdepth: 4
+
+ pointcloudset.geometry.plane
+ pointcloudset.geometry.point
diff --git a/_sources/python-api/pointcloudset.io.dataset.dir.rst.txt b/_sources/python-api/pointcloudset.io.dataset.dir.rst.txt
new file mode 100644
index 00000000..6ad2f1bc
--- /dev/null
+++ b/_sources/python-api/pointcloudset.io.dataset.dir.rst.txt
@@ -0,0 +1,7 @@
+pointcloudset.io.dataset.dir module
+===================================
+
+.. automodule:: pointcloudset.io.dataset.dir
+ :members:
+ :undoc-members:
+ :show-inheritance:
diff --git a/_sources/python-api/pointcloudset.io.dataset.pointcloud.rst.txt b/_sources/python-api/pointcloudset.io.dataset.pointcloud.rst.txt
new file mode 100644
index 00000000..f1fef7fb
--- /dev/null
+++ b/_sources/python-api/pointcloudset.io.dataset.pointcloud.rst.txt
@@ -0,0 +1,7 @@
+pointcloudset.io.dataset.pointcloud module
+==========================================
+
+.. automodule:: pointcloudset.io.dataset.pointcloud
+ :members:
+ :undoc-members:
+ :show-inheritance:
diff --git a/_sources/python-api/pointcloudset.io.dataset.ros.rst.txt b/_sources/python-api/pointcloudset.io.dataset.ros.rst.txt
new file mode 100644
index 00000000..8a19d6f3
--- /dev/null
+++ b/_sources/python-api/pointcloudset.io.dataset.ros.rst.txt
@@ -0,0 +1,7 @@
+pointcloudset.io.dataset.ros module
+===================================
+
+.. automodule:: pointcloudset.io.dataset.ros
+ :members:
+ :undoc-members:
+ :show-inheritance:
diff --git a/_sources/python-api/pointcloudset.io.dataset.rst.txt b/_sources/python-api/pointcloudset.io.dataset.rst.txt
new file mode 100644
index 00000000..a26cc641
--- /dev/null
+++ b/_sources/python-api/pointcloudset.io.dataset.rst.txt
@@ -0,0 +1,17 @@
+pointcloudset.io.dataset package
+================================
+
+.. automodule:: pointcloudset.io.dataset
+ :members:
+ :undoc-members:
+ :show-inheritance:
+
+Submodules
+----------
+
+.. toctree::
+ :maxdepth: 4
+
+ pointcloudset.io.dataset.dir
+ pointcloudset.io.dataset.pointcloud
+ pointcloudset.io.dataset.ros
diff --git a/_sources/python-api/pointcloudset.io.pointcloud.csv.rst.txt b/_sources/python-api/pointcloudset.io.pointcloud.csv.rst.txt
new file mode 100644
index 00000000..e90e5229
--- /dev/null
+++ b/_sources/python-api/pointcloudset.io.pointcloud.csv.rst.txt
@@ -0,0 +1,7 @@
+pointcloudset.io.pointcloud.csv module
+======================================
+
+.. automodule:: pointcloudset.io.pointcloud.csv
+ :members:
+ :undoc-members:
+ :show-inheritance:
diff --git a/_sources/python-api/pointcloudset.io.pointcloud.open3d.rst.txt b/_sources/python-api/pointcloudset.io.pointcloud.open3d.rst.txt
new file mode 100644
index 00000000..8b0c285f
--- /dev/null
+++ b/_sources/python-api/pointcloudset.io.pointcloud.open3d.rst.txt
@@ -0,0 +1,7 @@
+pointcloudset.io.pointcloud.open3d module
+=========================================
+
+.. automodule:: pointcloudset.io.pointcloud.open3d
+ :members:
+ :undoc-members:
+ :show-inheritance:
diff --git a/_sources/python-api/pointcloudset.io.pointcloud.pandas.rst.txt b/_sources/python-api/pointcloudset.io.pointcloud.pandas.rst.txt
new file mode 100644
index 00000000..e7cc0792
--- /dev/null
+++ b/_sources/python-api/pointcloudset.io.pointcloud.pandas.rst.txt
@@ -0,0 +1,7 @@
+pointcloudset.io.pointcloud.pandas module
+=========================================
+
+.. automodule:: pointcloudset.io.pointcloud.pandas
+ :members:
+ :undoc-members:
+ :show-inheritance:
diff --git a/_sources/python-api/pointcloudset.io.pointcloud.pyntcloud.rst.txt b/_sources/python-api/pointcloudset.io.pointcloud.pyntcloud.rst.txt
new file mode 100644
index 00000000..d01fc350
--- /dev/null
+++ b/_sources/python-api/pointcloudset.io.pointcloud.pyntcloud.rst.txt
@@ -0,0 +1,7 @@
+pointcloudset.io.pointcloud.pyntcloud module
+============================================
+
+.. automodule:: pointcloudset.io.pointcloud.pyntcloud
+ :members:
+ :undoc-members:
+ :show-inheritance:
diff --git a/_sources/python-api/pointcloudset.io.pointcloud.rst.txt b/_sources/python-api/pointcloudset.io.pointcloud.rst.txt
new file mode 100644
index 00000000..35a2db2b
--- /dev/null
+++ b/_sources/python-api/pointcloudset.io.pointcloud.rst.txt
@@ -0,0 +1,18 @@
+pointcloudset.io.pointcloud package
+===================================
+
+.. automodule:: pointcloudset.io.pointcloud
+ :members:
+ :undoc-members:
+ :show-inheritance:
+
+Submodules
+----------
+
+.. toctree::
+ :maxdepth: 4
+
+ pointcloudset.io.pointcloud.csv
+ pointcloudset.io.pointcloud.open3d
+ pointcloudset.io.pointcloud.pandas
+ pointcloudset.io.pointcloud.pyntcloud
diff --git a/_sources/python-api/pointcloudset.io.rst.txt b/_sources/python-api/pointcloudset.io.rst.txt
new file mode 100644
index 00000000..23499136
--- /dev/null
+++ b/_sources/python-api/pointcloudset.io.rst.txt
@@ -0,0 +1,16 @@
+pointcloudset.io package
+========================
+
+.. automodule:: pointcloudset.io
+ :members:
+ :undoc-members:
+ :show-inheritance:
+
+Subpackages
+-----------
+
+.. toctree::
+ :maxdepth: 4
+
+ pointcloudset.io.dataset
+ pointcloudset.io.pointcloud
diff --git a/_sources/python-api/pointcloudset.pipeline.delayed_result.rst.txt b/_sources/python-api/pointcloudset.pipeline.delayed_result.rst.txt
new file mode 100644
index 00000000..3a691840
--- /dev/null
+++ b/_sources/python-api/pointcloudset.pipeline.delayed_result.rst.txt
@@ -0,0 +1,7 @@
+pointcloudset.pipeline.delayed\_result module
+=============================================
+
+.. automodule:: pointcloudset.pipeline.delayed_result
+ :members:
+ :undoc-members:
+ :show-inheritance:
diff --git a/_sources/python-api/pointcloudset.pipeline.rst.txt b/_sources/python-api/pointcloudset.pipeline.rst.txt
new file mode 100644
index 00000000..daee6b5d
--- /dev/null
+++ b/_sources/python-api/pointcloudset.pipeline.rst.txt
@@ -0,0 +1,15 @@
+pointcloudset.pipeline package
+==============================
+
+.. automodule:: pointcloudset.pipeline
+ :members:
+ :undoc-members:
+ :show-inheritance:
+
+Submodules
+----------
+
+.. toctree::
+ :maxdepth: 4
+
+ pointcloudset.pipeline.delayed_result
diff --git a/_sources/python-api/pointcloudset.plot.dataset.rst.txt b/_sources/python-api/pointcloudset.plot.dataset.rst.txt
new file mode 100644
index 00000000..59178891
--- /dev/null
+++ b/_sources/python-api/pointcloudset.plot.dataset.rst.txt
@@ -0,0 +1,7 @@
+pointcloudset.plot.dataset module
+=================================
+
+.. automodule:: pointcloudset.plot.dataset
+ :members:
+ :undoc-members:
+ :show-inheritance:
diff --git a/_sources/python-api/pointcloudset.plot.pointcloud.rst.txt b/_sources/python-api/pointcloudset.plot.pointcloud.rst.txt
new file mode 100644
index 00000000..055dc444
--- /dev/null
+++ b/_sources/python-api/pointcloudset.plot.pointcloud.rst.txt
@@ -0,0 +1,7 @@
+pointcloudset.plot.pointcloud module
+====================================
+
+.. automodule:: pointcloudset.plot.pointcloud
+ :members:
+ :undoc-members:
+ :show-inheritance:
diff --git a/_sources/python-api/pointcloudset.plot.rst.txt b/_sources/python-api/pointcloudset.plot.rst.txt
new file mode 100644
index 00000000..1778af26
--- /dev/null
+++ b/_sources/python-api/pointcloudset.plot.rst.txt
@@ -0,0 +1,16 @@
+pointcloudset.plot package
+==========================
+
+.. automodule:: pointcloudset.plot
+ :members:
+ :undoc-members:
+ :show-inheritance:
+
+Submodules
+----------
+
+.. toctree::
+ :maxdepth: 4
+
+ pointcloudset.plot.dataset
+ pointcloudset.plot.pointcloud
diff --git a/_sources/python-api/pointcloudset.pointcloud.rst.txt b/_sources/python-api/pointcloudset.pointcloud.rst.txt
new file mode 100644
index 00000000..d831c90e
--- /dev/null
+++ b/_sources/python-api/pointcloudset.pointcloud.rst.txt
@@ -0,0 +1,7 @@
+pointcloudset.pointcloud module
+===============================
+
+.. automodule:: pointcloudset.pointcloud
+ :members:
+ :undoc-members:
+ :show-inheritance:
diff --git a/_sources/python-api/pointcloudset.pointcloud_core.rst.txt b/_sources/python-api/pointcloudset.pointcloud_core.rst.txt
new file mode 100644
index 00000000..a5e393cb
--- /dev/null
+++ b/_sources/python-api/pointcloudset.pointcloud_core.rst.txt
@@ -0,0 +1,7 @@
+pointcloudset.pointcloud\_core module
+=====================================
+
+.. automodule:: pointcloudset.pointcloud_core
+ :members:
+ :undoc-members:
+ :show-inheritance:
diff --git a/_sources/python-api/pointcloudset.rst.txt b/_sources/python-api/pointcloudset.rst.txt
new file mode 100644
index 00000000..ab82bfd0
--- /dev/null
+++ b/_sources/python-api/pointcloudset.rst.txt
@@ -0,0 +1,31 @@
+pointcloudset package
+=====================
+
+.. automodule:: pointcloudset
+ :members:
+ :undoc-members:
+ :show-inheritance:
+
+Subpackages
+-----------
+
+.. toctree::
+ :maxdepth: 4
+
+ pointcloudset.diff
+ pointcloudset.filter
+ pointcloudset.geometry
+ pointcloudset.io
+ pointcloudset.pipeline
+ pointcloudset.plot
+
+Submodules
+----------
+
+.. toctree::
+ :maxdepth: 4
+
+ pointcloudset.dataset
+ pointcloudset.dataset_core
+ pointcloudset.pointcloud
+ pointcloudset.pointcloud_core
diff --git a/_sources/support.rst.txt b/_sources/support.rst.txt
new file mode 100644
index 00000000..6f1a92b9
--- /dev/null
+++ b/_sources/support.rst.txt
@@ -0,0 +1,6 @@
+Support
+================================
+
+* read the documentation
+* check open issues
+* contact thomas.goelles@v2c2.at
diff --git a/_sources/tutorial_notebooks/Working_with_kitti_dataset.ipynb.txt b/_sources/tutorial_notebooks/Working_with_kitti_dataset.ipynb.txt
new file mode 100644
index 00000000..4495c59e
--- /dev/null
+++ b/_sources/tutorial_notebooks/Working_with_kitti_dataset.ipynb.txt
@@ -0,0 +1,3674 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Use Kitti Dataset\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### In this notebook a sample of the Kitti-Dataset will be downloaded, converted to a rosbag-file and the velodyne data will converted to a pcs-dataset.\n",
+ "### Some usage examples are provided, too. "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stderr",
+ "output_type": "stream",
+ "text": [
+ "INFO - 2021-05-07 10:39:56,250 - _logger - Log opened: Fri May 7 10:39:56 2021 UTC\n",
+ "INFO - 2021-05-07 10:39:56,341 - topics - topicmanager initialized\n"
+ ]
+ }
+ ],
+ "source": [
+ "from pathlib import Path\n",
+ "\n",
+ "import pointcloudset as pcs"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "The following terminal commands will download and unzip the kitti sample.\n",
+ "We didn't want to include the bag file in the repo as it is too large and to avoid any license issues. Also KITTI does not provide bag files directly. In order to get the data you need to run the following cell. If you are using pointcloudset in a docker container you need to run the commands outside of the docker to avoid nested docker commands. This is the reason for the commented docker command.\n",
+ "\n",
+ "The docker container (https://hub.docker.com/r/yoyo860224/kitti2bag) is used to convert the kitta data into a rosbag-file. To run the docker under windows use \"docker run -v \"absolutepathtofolderwheredatais\":/data -it yoyo860224/kitti2bag -t 2011_09_26 -r 0002 raw_synced\". \n",
+ " \n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "metadata": {
+ "tags": [
+ "outputPrepend"
+ ]
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "1_09_26/2011_09_26_drive_0002_sync/image_02/data/0000000058.png \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/image_02/data/0000000036.png \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/image_02/data/0000000022.png \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/image_02/data/0000000044.png \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/image_02/data/0000000007.png \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/image_02/data/0000000050.png \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/image_02/data/0000000039.png \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/image_02/data/0000000038.png \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/image_02/data/0000000023.png \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/image_02/data/0000000019.png \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/image_02/data/0000000041.png \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/image_02/data/0000000062.png \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/image_02/data/0000000017.png \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/image_02/data/0000000014.png \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/image_02/data/0000000005.png \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/image_02/data/0000000056.png \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/image_02/data/0000000057.png \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/image_02/data/0000000018.png \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/image_02/data/0000000009.png \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/image_02/data/0000000051.png \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/image_02/data/0000000029.png \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/image_02/data/0000000046.png \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/image_02/data/0000000071.png \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/image_02/data/0000000076.png \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/image_02/data/0000000048.png \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/image_02/data/0000000043.png \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/image_02/data/0000000010.png \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/image_02/data/0000000045.png \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/image_02/data/0000000055.png \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/image_02/data/0000000032.png \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/image_02/data/0000000001.png \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/image_02/data/0000000052.png \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/image_02/data/0000000040.png \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/image_02/data/0000000064.png \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/image_02/data/0000000073.png \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/image_02/data/0000000011.png \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/image_02/data/0000000004.png \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/image_02/data/0000000020.png \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/image_02/data/0000000000.png \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/image_02/data/0000000002.png \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/image_02/data/0000000054.png \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/image_02/data/0000000053.png \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/image_02/data/0000000025.png \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/image_02/data/0000000074.png \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/image_02/data/0000000024.png \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/image_02/data/0000000067.png \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/image_02/data/0000000030.png \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/image_02/data/0000000069.png \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/image_02/data/0000000028.png \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/image_02/data/0000000003.png \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/image_02/data/0000000049.png \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/image_02/data/0000000068.png \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/image_02/data/0000000016.png \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/image_02/data/0000000072.png \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/image_02/data/0000000059.png \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/image_02/data/0000000070.png \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/image_02/data/0000000066.png \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/image_02/data/0000000006.png \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/image_02/data/0000000021.png \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/image_02/data/0000000047.png \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/image_02/data/0000000061.png \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/image_02/data/0000000042.png \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/image_02/data/0000000015.png \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/image_02/data/0000000026.png \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/image_02/data/0000000060.png \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/image_02/data/0000000013.png \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/image_02/data/0000000012.png \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/image_02/data/0000000031.png \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/image_02/data/0000000075.png \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/image_02/data/0000000034.png \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/image_02/data/0000000065.png \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/image_02/data/0000000033.png \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/image_02/data/0000000035.png \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/image_02/data/0000000037.png \n",
+ " creating: 2011_09_26/2011_09_26_drive_0002_sync/image_03/\n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/image_03/timestamps.txt \n",
+ " creating: 2011_09_26/2011_09_26_drive_0002_sync/image_03/data/\n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/image_03/data/0000000008.png \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/image_03/data/0000000027.png \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/image_03/data/0000000063.png \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/image_03/data/0000000058.png \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/image_03/data/0000000036.png \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/image_03/data/0000000022.png \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/image_03/data/0000000044.png \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/image_03/data/0000000007.png \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/image_03/data/0000000050.png \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/image_03/data/0000000039.png \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/image_03/data/0000000038.png \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/image_03/data/0000000023.png \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/image_03/data/0000000019.png \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/image_03/data/0000000041.png \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/image_03/data/0000000062.png \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/image_03/data/0000000017.png \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/image_03/data/0000000014.png \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/image_03/data/0000000005.png \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/image_03/data/0000000056.png \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/image_03/data/0000000057.png \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/image_03/data/0000000018.png \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/image_03/data/0000000009.png \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/image_03/data/0000000051.png \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/image_03/data/0000000029.png \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/image_03/data/0000000046.png \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/image_03/data/0000000071.png \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/image_03/data/0000000076.png \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/image_03/data/0000000048.png \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/image_03/data/0000000043.png \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/image_03/data/0000000010.png \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/image_03/data/0000000045.png \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/image_03/data/0000000055.png \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/image_03/data/0000000032.png \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/image_03/data/0000000001.png \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/image_03/data/0000000052.png \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/image_03/data/0000000040.png \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/image_03/data/0000000064.png \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/image_03/data/0000000073.png \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/image_03/data/0000000011.png \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/image_03/data/0000000004.png \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/image_03/data/0000000020.png \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/image_03/data/0000000000.png \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/image_03/data/0000000002.png \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/image_03/data/0000000054.png \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/image_03/data/0000000053.png \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/image_03/data/0000000025.png \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/image_03/data/0000000074.png \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/image_03/data/0000000024.png \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/image_03/data/0000000067.png \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/image_03/data/0000000030.png \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/image_03/data/0000000069.png \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/image_03/data/0000000028.png \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/image_03/data/0000000003.png \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/image_03/data/0000000049.png \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/image_03/data/0000000068.png \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/image_03/data/0000000016.png \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/image_03/data/0000000072.png \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/image_03/data/0000000059.png \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/image_03/data/0000000070.png \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/image_03/data/0000000066.png \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/image_03/data/0000000006.png \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/image_03/data/0000000021.png \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/image_03/data/0000000047.png \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/image_03/data/0000000061.png \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/image_03/data/0000000042.png \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/image_03/data/0000000015.png \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/image_03/data/0000000026.png \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/image_03/data/0000000060.png \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/image_03/data/0000000013.png \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/image_03/data/0000000012.png \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/image_03/data/0000000031.png \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/image_03/data/0000000075.png \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/image_03/data/0000000034.png \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/image_03/data/0000000065.png \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/image_03/data/0000000033.png \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/image_03/data/0000000035.png \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/image_03/data/0000000037.png \n",
+ " creating: 2011_09_26/2011_09_26_drive_0002_sync/velodyne_points/\n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/velodyne_points/timestamps.txt \n",
+ " creating: 2011_09_26/2011_09_26_drive_0002_sync/velodyne_points/data/\n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/velodyne_points/data/0000000071.bin \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/velodyne_points/data/0000000004.bin \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/velodyne_points/data/0000000011.bin \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/velodyne_points/data/0000000031.bin \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/velodyne_points/data/0000000003.bin \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/velodyne_points/data/0000000014.bin \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/velodyne_points/data/0000000048.bin \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/velodyne_points/data/0000000074.bin \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/velodyne_points/data/0000000047.bin \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/velodyne_points/data/0000000025.bin \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/velodyne_points/data/0000000030.bin \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/velodyne_points/data/0000000072.bin \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/velodyne_points/data/0000000052.bin \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/velodyne_points/data/0000000055.bin \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/velodyne_points/data/0000000038.bin \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/velodyne_points/data/0000000046.bin \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/velodyne_points/data/0000000037.bin \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/velodyne_points/data/0000000065.bin \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/velodyne_points/data/0000000049.bin \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/velodyne_points/data/0000000069.bin \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/velodyne_points/data/0000000002.bin \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/velodyne_points/data/0000000050.bin \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/velodyne_points/data/0000000022.bin \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/velodyne_points/data/0000000045.bin \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/velodyne_points/data/0000000057.bin \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/velodyne_points/data/0000000073.bin \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/velodyne_points/data/0000000026.bin \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/velodyne_points/data/0000000075.bin \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/velodyne_points/data/0000000042.bin \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/velodyne_points/data/0000000018.bin \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/velodyne_points/data/0000000028.bin \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/velodyne_points/data/0000000008.bin \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/velodyne_points/data/0000000044.bin \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/velodyne_points/data/0000000027.bin \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/velodyne_points/data/0000000051.bin \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/velodyne_points/data/0000000036.bin \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/velodyne_points/data/0000000013.bin \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/velodyne_points/data/0000000041.bin \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/velodyne_points/data/0000000007.bin \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/velodyne_points/data/0000000056.bin \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/velodyne_points/data/0000000006.bin \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/velodyne_points/data/0000000032.bin \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/velodyne_points/data/0000000064.bin \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/velodyne_points/data/0000000019.bin \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/velodyne_points/data/0000000015.bin \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/velodyne_points/data/0000000020.bin \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/velodyne_points/data/0000000062.bin \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/velodyne_points/data/0000000043.bin \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/velodyne_points/data/0000000076.bin \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/velodyne_points/data/0000000017.bin \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/velodyne_points/data/0000000005.bin \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/velodyne_points/data/0000000000.bin \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/velodyne_points/data/0000000029.bin \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/velodyne_points/data/0000000054.bin \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/velodyne_points/data/0000000034.bin \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/velodyne_points/data/0000000060.bin \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/velodyne_points/data/0000000023.bin \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/velodyne_points/data/0000000039.bin \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/velodyne_points/data/0000000040.bin \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/velodyne_points/data/0000000068.bin \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/velodyne_points/data/0000000058.bin \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/velodyne_points/data/0000000035.bin \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/velodyne_points/data/0000000070.bin \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/velodyne_points/data/0000000063.bin \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/velodyne_points/data/0000000053.bin \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/velodyne_points/data/0000000066.bin \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/velodyne_points/data/0000000001.bin \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/velodyne_points/data/0000000009.bin \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/velodyne_points/data/0000000033.bin \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/velodyne_points/data/0000000024.bin \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/velodyne_points/data/0000000010.bin \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/velodyne_points/data/0000000021.bin \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/velodyne_points/data/0000000012.bin \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/velodyne_points/data/0000000059.bin \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/velodyne_points/data/0000000016.bin \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/velodyne_points/data/0000000067.bin \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/velodyne_points/data/0000000061.bin \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/velodyne_points/timestamps_start.txt \n",
+ " extracting: 2011_09_26/2011_09_26_drive_0002_sync/velodyne_points/timestamps_end.txt \n",
+ "Archive: 2011_09_26_calib.zip\n",
+ " extracting: 2011_09_26/calib_cam_to_cam.txt \n",
+ " extracting: 2011_09_26/calib_imu_to_velo.txt \n",
+ " extracting: 2011_09_26/calib_velo_to_cam.txt \n"
+ ]
+ }
+ ],
+ "source": [
+ "!wget https://s3.eu-central-1.amazonaws.com/avg-kitti/raw_data/2011_09_26_drive_0002/2011_09_26_drive_0002_sync.zip\n",
+ "!wget https://s3.eu-central-1.amazonaws.com/avg-kitti/raw_data/2011_09_26_calib.zip\n",
+ "!unzip 2011_09_26_drive_0002_sync.zip\n",
+ "!unzip 2011_09_26_calib.zip\n",
+ "#!docker run -v `pwd`:/data -it yoyo860224/kitti2bag -t 2011_09_26 -r 0002 raw_synced\n",
+ "\n",
+ "\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "kittibag = Path().cwd().joinpath(\"kitti_2011_09_26_drive_0002_synced.bag\")\n",
+ "testpath = Path().cwd().parent.joinpath(\"tests/testdata/kitti_velodyne\")"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Convert bagfile to pcs-dataset:"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 5,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stderr",
+ "output_type": "stream",
+ "text": [
+ "100%|██████████| 77/77 [00:24<00:00, 3.17it/s]\n"
+ ]
+ }
+ ],
+ "source": [
+ "kittiset = pcs.Dataset.from_file(kittibag,topic=\"/kitti/velo/pointcloud\",keep_zeros=False)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 6,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Files written to: /workspaces/lidar/tests/testdata/kitti_velodyne/kitti_2011_09_26_drive_0002_synced\n"
+ ]
+ }
+ ],
+ "source": [
+ "kittiset[0:3].to_file(testpath)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Do some analysis:"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 8,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "def isolate_target(frame: pcs.PointCloud) -> pcs.PointCloud:\n",
+ " return frame.limit(\"i\",0.9,1)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 9,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "intense_points = isolate_target(kittiset[0])"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 10,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "application/vnd.plotly.v1+json": {
+ "config": {
+ "plotlyServerURL": "https://plot.ly"
+ },
+ "data": [
+ {
+ "hovertemplate": "%{hovertext}
x=%{x}
y=%{y}
z=%{z}
i=%{marker.color}",
+ "hovertext": [
+ "id=0",
+ "id=1",
+ "id=2",
+ "id=3",
+ "id=4",
+ "id=5",
+ "id=6",
+ "id=7",
+ "id=8",
+ "id=9",
+ "id=10",
+ "id=11",
+ "id=12",
+ "id=13",
+ "id=14",
+ "id=15",
+ "id=16",
+ "id=17",
+ "id=18",
+ "id=19",
+ "id=20",
+ "id=21",
+ "id=22",
+ "id=23",
+ "id=24",
+ "id=25",
+ "id=26",
+ "id=27",
+ "id=28",
+ "id=29",
+ "id=30",
+ "id=31",
+ "id=32",
+ "id=33",
+ "id=34",
+ "id=35",
+ "id=36",
+ "id=37",
+ "id=38",
+ "id=39",
+ "id=40",
+ "id=41",
+ "id=42",
+ "id=43",
+ "id=44",
+ "id=45",
+ "id=46",
+ "id=47",
+ "id=48",
+ "id=49",
+ "id=50",
+ "id=51",
+ "id=52",
+ "id=53",
+ "id=54",
+ "id=55",
+ "id=56",
+ "id=57",
+ "id=58",
+ "id=59",
+ "id=60",
+ "id=61",
+ "id=62",
+ "id=63",
+ "id=64",
+ "id=65",
+ "id=66",
+ "id=67",
+ "id=68",
+ "id=69",
+ "id=70",
+ "id=71",
+ "id=72",
+ "id=73",
+ "id=74",
+ "id=75",
+ "id=76",
+ "id=77",
+ "id=78",
+ "id=79",
+ "id=80",
+ "id=81",
+ "id=82",
+ "id=83",
+ "id=84",
+ "id=85",
+ "id=86",
+ "id=87",
+ "id=88",
+ "id=89",
+ "id=90",
+ "id=91",
+ "id=92",
+ "id=93",
+ "id=94",
+ "id=95",
+ "id=96",
+ "id=97",
+ "id=98",
+ "id=99",
+ "id=100",
+ "id=101",
+ "id=102",
+ "id=103",
+ "id=104",
+ "id=105",
+ "id=106",
+ "id=107",
+ "id=108",
+ "id=109",
+ "id=110",
+ "id=111",
+ "id=112",
+ "id=113",
+ "id=114",
+ "id=115",
+ "id=116",
+ "id=117",
+ "id=118",
+ "id=119",
+ "id=120",
+ "id=121",
+ "id=122",
+ "id=123",
+ "id=124",
+ "id=125",
+ "id=126",
+ "id=127",
+ "id=128",
+ "id=129",
+ "id=130",
+ "id=131",
+ "id=132",
+ "id=133",
+ "id=134",
+ "id=135",
+ "id=136",
+ "id=137",
+ "id=138",
+ "id=139",
+ "id=140",
+ "id=141",
+ "id=142",
+ "id=143",
+ "id=144",
+ "id=145",
+ "id=146",
+ "id=147",
+ "id=148",
+ "id=149",
+ "id=150",
+ "id=151",
+ "id=152",
+ "id=153",
+ "id=154",
+ "id=155",
+ "id=156",
+ "id=157",
+ "id=158",
+ "id=159",
+ "id=160",
+ "id=161",
+ "id=162",
+ "id=163",
+ "id=164",
+ "id=165",
+ "id=166",
+ "id=167",
+ "id=168",
+ "id=169",
+ "id=170",
+ "id=171",
+ "id=172",
+ "id=173",
+ "id=174",
+ "id=175",
+ "id=176",
+ "id=177",
+ "id=178",
+ "id=179",
+ "id=180",
+ "id=181",
+ "id=182",
+ "id=183",
+ "id=184",
+ "id=185",
+ "id=186",
+ "id=187",
+ "id=188",
+ "id=189",
+ "id=190",
+ "id=191",
+ "id=192",
+ "id=193",
+ "id=194",
+ "id=195",
+ "id=196",
+ "id=197",
+ "id=198",
+ "id=199",
+ "id=200",
+ "id=201",
+ "id=202",
+ "id=203",
+ "id=204",
+ "id=205",
+ "id=206",
+ "id=207",
+ "id=208",
+ "id=209",
+ "id=210",
+ "id=211",
+ "id=212",
+ "id=213",
+ "id=214",
+ "id=215",
+ "id=216",
+ "id=217",
+ "id=218",
+ "id=219",
+ "id=220",
+ "id=221",
+ "id=222",
+ "id=223",
+ "id=224",
+ "id=225",
+ "id=226",
+ "id=227",
+ "id=228",
+ "id=229",
+ "id=230",
+ "id=231",
+ "id=232",
+ "id=233",
+ "id=234",
+ "id=235",
+ "id=236",
+ "id=237",
+ "id=238",
+ "id=239",
+ "id=240",
+ "id=241",
+ "id=242",
+ "id=243",
+ "id=244",
+ "id=245",
+ "id=246",
+ "id=247",
+ "id=248",
+ "id=249",
+ "id=250",
+ "id=251",
+ "id=252",
+ "id=253",
+ "id=254",
+ "id=255",
+ "id=256",
+ "id=257",
+ "id=258",
+ "id=259",
+ "id=260",
+ "id=261",
+ "id=262",
+ "id=263",
+ "id=264",
+ "id=265",
+ "id=266",
+ "id=267",
+ "id=268",
+ "id=269",
+ "id=270",
+ "id=271",
+ "id=272",
+ "id=273",
+ "id=274",
+ "id=275",
+ "id=276",
+ "id=277",
+ "id=278",
+ "id=279",
+ "id=280",
+ "id=281",
+ "id=282",
+ "id=283",
+ "id=284",
+ "id=285",
+ "id=286",
+ "id=287",
+ "id=288",
+ "id=289",
+ "id=290",
+ "id=291",
+ "id=292",
+ "id=293",
+ "id=294",
+ "id=295",
+ "id=296",
+ "id=297",
+ "id=298",
+ "id=299",
+ "id=300",
+ "id=301",
+ "id=302",
+ "id=303",
+ "id=304",
+ "id=305",
+ "id=306",
+ "id=307",
+ "id=308",
+ "id=309",
+ "id=310",
+ "id=311",
+ "id=312",
+ "id=313",
+ "id=314",
+ "id=315",
+ "id=316",
+ "id=317",
+ "id=318",
+ "id=319",
+ "id=320",
+ "id=321",
+ "id=322",
+ "id=323",
+ "id=324",
+ "id=325",
+ "id=326",
+ "id=327",
+ "id=328",
+ "id=329",
+ "id=330",
+ "id=331",
+ "id=332",
+ "id=333",
+ "id=334",
+ "id=335",
+ "id=336",
+ "id=337",
+ "id=338",
+ "id=339",
+ "id=340",
+ "id=341",
+ "id=342",
+ "id=343",
+ "id=344",
+ "id=345",
+ "id=346",
+ "id=347",
+ "id=348",
+ "id=349",
+ "id=350",
+ "id=351",
+ "id=352",
+ "id=353",
+ "id=354",
+ "id=355",
+ "id=356",
+ "id=357",
+ "id=358",
+ "id=359",
+ "id=360",
+ "id=361",
+ "id=362",
+ "id=363",
+ "id=364",
+ "id=365",
+ "id=366",
+ "id=367",
+ "id=368",
+ "id=369",
+ "id=370",
+ "id=371",
+ "id=372",
+ "id=373",
+ "id=374",
+ "id=375",
+ "id=376",
+ "id=377",
+ "id=378",
+ "id=379",
+ "id=380",
+ "id=381",
+ "id=382",
+ "id=383",
+ "id=384",
+ "id=385",
+ "id=386",
+ "id=387",
+ "id=388",
+ "id=389",
+ "id=390",
+ "id=391",
+ "id=392",
+ "id=393",
+ "id=394",
+ "id=395",
+ "id=396",
+ "id=397",
+ "id=398",
+ "id=399",
+ "id=400",
+ "id=401",
+ "id=402",
+ "id=403",
+ "id=404",
+ "id=405",
+ "id=406",
+ "id=407",
+ "id=408",
+ "id=409",
+ "id=410",
+ "id=411",
+ "id=412",
+ "id=413",
+ "id=414",
+ "id=415",
+ "id=416",
+ "id=417",
+ "id=418",
+ "id=419",
+ "id=420",
+ "id=421",
+ "id=422",
+ "id=423",
+ "id=424",
+ "id=425",
+ "id=426",
+ "id=427",
+ "id=428",
+ "id=429",
+ "id=430",
+ "id=431",
+ "id=432",
+ "id=433",
+ "id=434",
+ "id=435",
+ "id=436",
+ "id=437",
+ "id=438",
+ "id=439",
+ "id=440",
+ "id=441",
+ "id=442",
+ "id=443",
+ "id=444",
+ "id=445",
+ "id=446",
+ "id=447",
+ "id=448",
+ "id=449",
+ "id=450",
+ "id=451",
+ "id=452",
+ "id=453",
+ "id=454",
+ "id=455",
+ "id=456",
+ "id=457",
+ "id=458",
+ "id=459",
+ "id=460",
+ "id=461"
+ ],
+ "legendgroup": "",
+ "marker": {
+ "color": [
+ 0.9300000071525574,
+ 0.9100000262260436,
+ 0.949999988079071,
+ 0.9399999976158142,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.959999978542328,
+ 0.9900000095367432,
+ 0.9100000262260436,
+ 0.9100000262260436,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9100000262260436,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.949999988079071,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.8999999761581421,
+ 0.9900000095367432,
+ 0.9100000262260436,
+ 0.9100000262260436,
+ 0.8999999761581421,
+ 0.9900000095367432,
+ 0.8999999761581421,
+ 0.949999988079071,
+ 0.949999988079071,
+ 0.949999988079071,
+ 0.9300000071525574,
+ 0.9900000095367432,
+ 0.9300000071525574,
+ 0.8999999761581421,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.959999978542328,
+ 0.9300000071525574,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9300000071525574,
+ 0.959999978542328,
+ 0.9300000071525574,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.959999978542328,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9100000262260436,
+ 0.8999999761581421,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.949999988079071,
+ 0.9300000071525574,
+ 0.9900000095367432,
+ 0.9100000262260436,
+ 0.9200000166893004,
+ 0.9200000166893004,
+ 0.9100000262260436,
+ 0.9100000262260436,
+ 0.9100000262260436,
+ 0.8999999761581421,
+ 0.8999999761581421,
+ 0.8999999761581421,
+ 0.9100000262260436,
+ 0.8999999761581421,
+ 0.9399999976158142,
+ 0.949999988079071,
+ 0.949999988079071,
+ 0.949999988079071,
+ 0.949999988079071,
+ 0.949999988079071,
+ 0.949999988079071,
+ 0.949999988079071,
+ 0.949999988079071,
+ 0.949999988079071,
+ 0.949999988079071,
+ 0.959999978542328,
+ 0.949999988079071,
+ 0.9399999976158142,
+ 0.9399999976158142,
+ 0.9300000071525574,
+ 0.9100000262260436,
+ 0.949999988079071,
+ 0.949999988079071,
+ 0.9200000166893004,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.8999999761581421,
+ 0.9200000166893004,
+ 0.9300000071525574,
+ 0.9300000071525574,
+ 0.9300000071525574,
+ 0.9100000262260436,
+ 0.9200000166893004,
+ 0.9300000071525574,
+ 0.9399999976158142,
+ 0.9300000071525574,
+ 0.9300000071525574,
+ 0.9100000262260436,
+ 0.9300000071525574,
+ 0.9300000071525574,
+ 0.9300000071525574,
+ 0.9100000262260436,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.8999999761581421,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9100000262260436,
+ 0.9399999976158142,
+ 0.9399999976158142,
+ 0.9300000071525574,
+ 0.9300000071525574,
+ 0.9300000071525574,
+ 0.9300000071525574,
+ 0.9300000071525574,
+ 0.9300000071525574,
+ 0.949999988079071,
+ 0.9399999976158142,
+ 0.9300000071525574,
+ 0.9300000071525574,
+ 0.9200000166893004,
+ 0.9300000071525574,
+ 0.9300000071525574,
+ 0.9399999976158142,
+ 0.9300000071525574,
+ 0.9300000071525574,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.959999978542328,
+ 0.9700000286102296,
+ 0.9900000095367432,
+ 0.9700000286102296,
+ 0.9700000286102296,
+ 0.9700000286102296,
+ 0.9800000190734864,
+ 0.9800000190734864,
+ 0.9800000190734864,
+ 0.9800000190734864,
+ 0.9800000190734864,
+ 0.9800000190734864,
+ 0.9700000286102296,
+ 0.9700000286102296,
+ 0.9100000262260436,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.959999978542328,
+ 0.9900000095367432,
+ 0.9300000071525574,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432,
+ 0.9900000095367432
+ ],
+ "coloraxis": "coloraxis",
+ "line": {
+ "width": 0
+ },
+ "size": 2,
+ "symbol": "circle"
+ },
+ "mode": "markers",
+ "name": "",
+ "scene": "scene",
+ "showlegend": false,
+ "type": "scatter3d",
+ "x": [
+ -22.945999145507812,
+ -22.875,
+ -22.8700008392334,
+ -22.78499984741211,
+ -22.53700065612793,
+ -22.46299934387207,
+ -22.357999801635746,
+ -22.382999420166016,
+ -22.388999938964844,
+ -22.371000289916992,
+ -22.538999557495117,
+ -22.447999954223633,
+ -22.433000564575195,
+ -22.440000534057617,
+ -22.44499969482422,
+ -22.44700050354004,
+ -22.43400001525879,
+ -22.43600082397461,
+ -22.450000762939453,
+ -34.5880012512207,
+ -34.57500076293945,
+ -27.43199920654297,
+ -27.56999969482422,
+ -22.43400001525879,
+ -22.336000442504883,
+ -22.358999252319336,
+ -22.363000869750977,
+ -22.458999633789062,
+ -22.32699966430664,
+ -22.347999572753903,
+ -22.333999633789062,
+ -34.49700164794922,
+ -34.439998626708984,
+ -34.45600128173828,
+ -34.446998596191406,
+ -34.45399856567383,
+ -22.60199928283691,
+ -22.493999481201172,
+ -22.49099922180176,
+ -22.488000869750977,
+ -34.59700012207031,
+ -34.6150016784668,
+ -34.617000579833984,
+ -76.97699737548828,
+ -22.48500061035156,
+ 2.2769999504089355,
+ -4.686999797821045,
+ -4.797999858856201,
+ -9.616999626159668,
+ 14.663999557495115,
+ 6.4070000648498535,
+ 6.320000171661377,
+ 6.229000091552734,
+ 6.145999908447266,
+ 5.677999973297119,
+ -11.277999877929688,
+ -11.312000274658203,
+ -11.654999732971191,
+ -11.72599983215332,
+ -11.791999816894531,
+ -11.82900047302246,
+ -11.901000022888184,
+ 16.617000579833984,
+ 16.450000762939453,
+ 9.003000259399414,
+ 8.880999565124512,
+ -11.144000053405762,
+ -11.119999885559082,
+ -11.255999565124512,
+ 3.069999933242798,
+ 3.056999921798706,
+ 3.059000015258789,
+ 2.861000061035156,
+ 2.8459999561309814,
+ 2.836999893188477,
+ 2.8289999961853027,
+ 2.805999994277954,
+ 2.7950000762939453,
+ 2.7890000343322754,
+ 3.121000051498413,
+ 3.11299991607666,
+ 3.1080000400543213,
+ 3.115000009536743,
+ 3.0940001010894775,
+ 3.0810000896453857,
+ 3.065000057220459,
+ 3.056999921798706,
+ 3.038000106811523,
+ 2.927000045776367,
+ 2.9000000953674316,
+ 2.884000062942505,
+ 2.865000009536743,
+ 2.8459999561309814,
+ 2.8529999256134033,
+ 2.8459999561309814,
+ 2.8350000381469727,
+ 2.821000099182129,
+ 2.799999952316284,
+ 2.7890000343322754,
+ 1.1790000200271606,
+ 1.1059999465942385,
+ -1.4950000047683716,
+ -1.565999984741211,
+ -1.6380000114440918,
+ -1.7089999914169312,
+ -1.781000018119812,
+ -1.8519999980926511,
+ -1.919999957084656,
+ -9.293999671936035,
+ -9.333999633789062,
+ -9.710000038146973,
+ 3.1449999809265137,
+ 3.134999990463257,
+ 3.135999917984009,
+ 3.128999948501587,
+ 3.114000082015991,
+ 3.1080000400543213,
+ 3.0889999866485596,
+ 3.0829999446868896,
+ 3.0769999027252197,
+ 3.065999984741211,
+ 3.0510001182556152,
+ 2.9149999618530273,
+ 2.9040000438690186,
+ 2.88700008392334,
+ 2.878000020980835,
+ 2.864000082015991,
+ 2.868000030517578,
+ 2.8570001125335693,
+ 2.8459999561309814,
+ 2.825999975204468,
+ 2.805000066757202,
+ 2.819000005722046,
+ 2.806999921798706,
+ 2.796999931335449,
+ -14.883000373840332,
+ -14.96500015258789,
+ -15.04300022125244,
+ -15.07699966430664,
+ -17.679000854492188,
+ -17.777000427246094,
+ -17.895000457763672,
+ 3.1510000228881836,
+ 3.13700008392334,
+ 3.121000051498413,
+ 3.1019999980926514,
+ 3.0969998836517334,
+ 3.0959999561309814,
+ 3.0980000495910645,
+ 3.0880000591278076,
+ 3.075000047683716,
+ 3.058000087738037,
+ 3.0399999618530273,
+ 3.0420000553131104,
+ 3.0369999408721924,
+ 3.0280001163482666,
+ 2.9119999408721924,
+ 2.9119999408721924,
+ 2.9000000953674316,
+ 2.884000062942505,
+ 2.882999897003174,
+ 2.859999895095825,
+ 2.8499999046325684,
+ 2.8489999771118164,
+ 2.8380000591278076,
+ 2.822000026702881,
+ 2.805000066757202,
+ 2.7899999618530273,
+ 2.799000024795532,
+ 2.7929999828338623,
+ 2.943000078201294,
+ 2.9189999103546143,
+ 2.9230000972747803,
+ 2.921999931335449,
+ 2.9070000648498535,
+ 2.8940000534057617,
+ 2.878999948501587,
+ 2.867000102996826,
+ 2.8570001125335693,
+ 2.867000102996826,
+ 2.8510000705718994,
+ 2.8329999446868896,
+ 2.818000078201294,
+ 2.811000108718872,
+ 2.803999900817871,
+ 2.7929999828338623,
+ 3.1429998874664307,
+ 3.13100004196167,
+ 3.13100004196167,
+ 3.109999895095825,
+ 3.1019999980926514,
+ 3.0940001010894775,
+ 3.078000068664551,
+ 3.061000108718872,
+ 3.063999891281128,
+ 3.056999921798706,
+ 3.0510001182556152,
+ 3.0409998893737793,
+ 3.0239999294281006,
+ 3.015000104904175,
+ 3.009999990463257,
+ 3.009999990463257,
+ 3.003000020980835,
+ 2.990999937057495,
+ 2.9749999046325684,
+ 2.9030001163482666,
+ 2.882999897003174,
+ 2.874000072479248,
+ 2.880000114440918,
+ 2.874000072479248,
+ 2.8559999465942383,
+ 2.8429999351501465,
+ 2.822999954223633,
+ 2.8010001182556152,
+ 2.802999973297119,
+ 2.812999963760376,
+ 2.7980000972747803,
+ 2.7790000438690186,
+ 2.759000062942505,
+ 2.75600004196167,
+ 2.75,
+ 2.739000082015991,
+ 3.132999897003174,
+ 3.11899995803833,
+ 3.1019999980926514,
+ 3.1070001125335693,
+ 3.1010000705718994,
+ 3.0889999866485596,
+ 3.0769999027252197,
+ 3.071000099182129,
+ 3.059000015258789,
+ 3.0439999103546143,
+ 3.0369999408721924,
+ 3.0320000648498535,
+ 3.0260000228881836,
+ 3.0230000019073486,
+ 3.010999917984009,
+ 3,
+ 2.9830000400543213,
+ 2.9839999675750732,
+ 2.984999895095825,
+ 2.9749999046325684,
+ 2.940000057220459,
+ 2.9070000648498535,
+ 2.8919999599456787,
+ 2.875999927520752,
+ 2.8580000400543213,
+ 2.8440001010894775,
+ 2.8440001010894775,
+ 2.809000015258789,
+ 2.7950000762939453,
+ 2.7799999713897705,
+ 2.76200008392334,
+ 2.750999927520752,
+ 2.749000072479248,
+ 2.742000102996826,
+ 2.739000082015991,
+ 2.7209999561309814,
+ 2.7090001106262207,
+ 2.736999988555908,
+ 3.190000057220459,
+ 3.1700000762939453,
+ 3.1530001163482666,
+ 3.1659998893737793,
+ 3.163000106811523,
+ 3.1489999294281006,
+ 3.135999917984009,
+ 3.127000093460083,
+ 3.11299991607666,
+ 3.0950000286102295,
+ 3.0769999027252197,
+ 3.0929999351501465,
+ 3.0859999656677246,
+ 3.0799999237060547,
+ 3.063999891281128,
+ 3.046999931335449,
+ 3.0320000648498535,
+ 3.0360000133514404,
+ 3.0350000858306885,
+ 2.940999984741211,
+ 2.933000087738037,
+ 2.9179999828338623,
+ 2.9030001163482666,
+ 2.881999969482422,
+ 2.875,
+ 2.875999927520752,
+ 2.86899995803833,
+ 2.8570001125335693,
+ 2.8380000591278076,
+ 2.818000078201294,
+ 2.822999954223633,
+ 2.811000108718872,
+ 2.809000015258789,
+ 2.7909998893737793,
+ 2.7690000534057617,
+ 3.1640000343322754,
+ 3.1500000953674316,
+ 3.140000104904175,
+ 3.13700008392334,
+ 3.13100004196167,
+ 3.11899995803833,
+ 3.111000061035156,
+ 3.1070001125335693,
+ 3.0920000076293945,
+ 3.0739998817443848,
+ 3.065999984741211,
+ 3.063999891281128,
+ 3.058000087738037,
+ 3.046999931335449,
+ 3.0450000762939453,
+ 3.0299999713897705,
+ 3.0160000324249268,
+ 3.0230000019073486,
+ 3.01200008392334,
+ 2.927000045776367,
+ 2.913000106811523,
+ 2.9070000648498535,
+ 2.888000011444092,
+ 2.881999969482422,
+ 2.88100004196167,
+ 2.871000051498413,
+ 2.8550000190734863,
+ 2.836999893188477,
+ 2.8269999027252197,
+ 2.8340001106262207,
+ 2.822000026702881,
+ 2.809000015258789,
+ 2.7920000553131104,
+ 2.7780001163482666,
+ 2.763999938964844,
+ 3.1760001182556152,
+ 3.1659998893737793,
+ 3.1489999294281006,
+ 3.1459999084472656,
+ 3.131999969482422,
+ 3.121000051498413,
+ 3.121999979019165,
+ 3.114000082015991,
+ 3.1010000705718994,
+ 3.0950000286102295,
+ 3.0899999141693115,
+ 3.075000047683716,
+ 3.066999912261963,
+ 3.063999891281128,
+ 3.052000045776367,
+ 3.0450000762939453,
+ 3.0339999198913574,
+ 3.0309998989105225,
+ 3.013999938964844,
+ 2.930000066757202,
+ 2.924000024795532,
+ 2.9210000038146973,
+ 2.9100000858306885,
+ 2.8980000019073486,
+ 2.885999917984009,
+ 2.8350000381469727,
+ 2.8589999675750732,
+ 2.8480000495910645,
+ 2.8540000915527344,
+ 2.8399999141693115,
+ 2.825999975204468,
+ 2.811000108718872,
+ 2.8010001182556152,
+ 2.746999979019165,
+ 3.1440000534057617,
+ 3.132999897003174,
+ 3.125,
+ 3.128000020980835,
+ 3.115000009536743,
+ 3.0980000495910645,
+ 3.0950000286102295,
+ 3.0850000381469727,
+ 3.075999975204468,
+ 3.069000005722046,
+ 3.059999942779541,
+ 3.056999921798706,
+ 3.0510001182556152,
+ 3.0399999618530273,
+ 3.0329999923706055,
+ 3.0260000228881836,
+ 3.0160000324249268,
+ 2.997999906539917,
+ 2.9159998893737793,
+ 2.9040000438690186,
+ 2.8970000743865967,
+ 2.884000062942505,
+ 2.872999906539917,
+ 2.8580000400543213,
+ 2.8540000915527344,
+ 2.8510000705718994,
+ 2.8420000076293945,
+ 2.8299999237060547,
+ 2.815999984741211,
+ 2.809000015258789,
+ 2.7980000972747803,
+ 2.7829999923706055,
+ 3.1670000553131104,
+ 3.1500000953674316,
+ 3.13700008392334,
+ 3.134999990463257,
+ 3.134999990463257,
+ 3.125,
+ 3.115000009536743,
+ 3.0989999771118164,
+ 3.0910000801086426,
+ 3.075999975204468,
+ 3.0769999027252197,
+ 3.072999954223633,
+ 3.065999984741211,
+ 3.0510001182556152,
+ 3.0339999198913574,
+ 2.927000045776367,
+ 2.9059998989105225,
+ 2.885999917984009,
+ 2.872999906539917,
+ 2.884000062942505,
+ 2.878999948501587,
+ 2.861999988555908,
+ 2.8429999351501465,
+ 2.821000099182129,
+ 2.819999933242798,
+ 2.815000057220459,
+ 2.806999921798706,
+ 3.1480000019073486,
+ 3.128999948501587,
+ 3.109999895095825,
+ 3.111999988555908,
+ 3.124000072479248,
+ 3.117000102996826,
+ 3.1050000190734863,
+ 3.0889999866485596,
+ 3.072000026702881,
+ 3.061000108718872,
+ 3.062000036239624,
+ 3.065999984741211,
+ 3.055999994277954,
+ 3.0450000762939453,
+ 3.0220000743865967,
+ 2.882999897003174,
+ 2.865000009536743,
+ 2.868000030517578,
+ 2.86899995803833,
+ 2.8440001010894775,
+ 2.861000061035156,
+ 2.815999984741211,
+ 3.1019999980926514,
+ 3.0850000381469727,
+ 3.065999984741211,
+ 3.071000099182129,
+ 3.069999933242798,
+ 3.066999912261963,
+ 3.058000087738037,
+ 3.0429999828338623,
+ 3.0260000228881836,
+ 3.009999990463257,
+ 3.0199999809265137,
+ 3.125999927520752,
+ 3.1070001125335693,
+ 3.1040000915527344,
+ 3.0969998836517334,
+ 3.0920000076293945,
+ 3.072000026702881
+ ],
+ "y": [
+ 11.571999549865724,
+ 11.491000175476074,
+ 11.39900016784668,
+ 11.267999649047852,
+ 11.057000160217283,
+ 11.218000411987305,
+ 11.121000289916992,
+ 11.04699993133545,
+ 10.961999893188477,
+ 10.866000175476074,
+ 11.418999671936035,
+ 11.284000396728516,
+ 11.189000129699709,
+ 11.104000091552734,
+ 11.062999725341797,
+ 10.97599983215332,
+ 10.883000373840332,
+ 10.79699993133545,
+ 10.717000007629396,
+ 7.125,
+ 7.010000228881836,
+ 31.965999603271484,
+ 31.923999786376953,
+ 11.352999687194824,
+ 11.21500015258789,
+ 11.137999534606934,
+ 11.053000450134276,
+ 11.01200008392334,
+ 10.904000282287598,
+ 10.82800006866455,
+ 10.734000205993652,
+ 7.281000137329102,
+ 7.156000137329102,
+ 7.046999931335449,
+ 6.932000160217285,
+ 6.876999855041504,
+ 11.284000396728516,
+ 11.142000198364258,
+ 11.053000450134276,
+ 10.96399974822998,
+ 7.085000038146973,
+ 6.974999904632568,
+ 6.86299991607666,
+ -1.8940000534057615,
+ 11.03600025177002,
+ 37.79100036621094,
+ 35.3129997253418,
+ 35.29399871826172,
+ 34.301998138427734,
+ 26.559999465942383,
+ 24.750999450683594,
+ 24.736000061035156,
+ 24.70199966430664,
+ 24.70199966430664,
+ 24.628999710083008,
+ 20.27199935913086,
+ 20.257999420166016,
+ 20.12299919128418,
+ 20.100000381469727,
+ 20.06800079345703,
+ 20.058000564575195,
+ 20.035999298095703,
+ -3.83899998664856,
+ -3.744999885559082,
+ 25.73900032043457,
+ 25.64900016784668,
+ 20.371000289916992,
+ 20.177000045776367,
+ 20.27300071716309,
+ 6.215000152587891,
+ 6.236999988555908,
+ 6.291999816894531,
+ 6.86899995803833,
+ 6.89300012588501,
+ 6.933000087738037,
+ 6.942999839782715,
+ 6.949999809265137,
+ 6.985000133514404,
+ 7.033999919891357,
+ 6.146999835968018,
+ 6.179999828338623,
+ 6.218999862670898,
+ 6.2820000648498535,
+ 6.289999961853027,
+ 6.314000129699707,
+ 6.330999851226807,
+ 6.339000225067139,
+ 6.35099983215332,
+ 6.886000156402588,
+ 6.882999897003174,
+ 6.90500020980835,
+ 6.919000148773193,
+ 6.935999870300293,
+ 6.984000205993652,
+ 7.03000020980835,
+ 7.068999767303467,
+ 7.0980000495910645,
+ 7.109000205993652,
+ 7.146999835968018,
+ 23.1560001373291,
+ 23.145999908447266,
+ 22.84000015258789,
+ 22.83300018310547,
+ 22.823999404907227,
+ 22.80900001525879,
+ 22.805999755859375,
+ 22.79199981689453,
+ 22.75200080871582,
+ 20.9689998626709,
+ 20.881999969482425,
+ 20.753000259399418,
+ 6.117000102996826,
+ 6.144999980926514,
+ 6.193999767303467,
+ 6.229000091552734,
+ 6.247000217437744,
+ 6.261000156402588,
+ 6.2729997634887695,
+ 6.360000133514404,
+ 6.3979997634887695,
+ 6.426000118255615,
+ 6.446000099182129,
+ 6.810999870300293,
+ 6.843999862670898,
+ 6.863999843597412,
+ 6.872000217437744,
+ 6.900000095367432,
+ 6.968999862670898,
+ 7.00600004196167,
+ 7.040999889373779,
+ 7.054999828338623,
+ 7.065999984741211,
+ 7.135000228881836,
+ 7.170000076293945,
+ 7.210000038146973,
+ 19.569000244140625,
+ 19.548999786376953,
+ 19.52199935913086,
+ 19.503000259399418,
+ 18.652999877929688,
+ 18.63999938964844,
+ 18.645999908447266,
+ 6.056000232696533,
+ 6.077000141143799,
+ 6.0920000076293945,
+ 6.103000164031982,
+ 6.139999866485596,
+ 6.186999797821045,
+ 6.215000152587891,
+ 6.24399995803833,
+ 6.26800012588501,
+ 6.2829999923706055,
+ 6.296999931335449,
+ 6.35099983215332,
+ 6.39300012588501,
+ 6.426000118255615,
+ 6.7210001945495605,
+ 6.7820000648498535,
+ 6.813000202178955,
+ 6.835000038146973,
+ 6.861000061035156,
+ 6.86899995803833,
+ 6.90500020980835,
+ 6.966000080108643,
+ 7.002999782562256,
+ 7.026000022888184,
+ 7.047999858856201,
+ 7.074999809265137,
+ 7.130000114440918,
+ 7.181000232696533,
+ 6.748000144958496,
+ 6.751999855041504,
+ 6.790999889373779,
+ 6.8460001945495605,
+ 6.869999885559082,
+ 6.901000022888184,
+ 6.925000190734863,
+ 6.956999778747559,
+ 6.995999813079834,
+ 7.050000190734863,
+ 7.076000213623047,
+ 7.0960001945495605,
+ 7.123000144958496,
+ 7.169000148773193,
+ 7.217000007629395,
+ 7.256999969482422,
+ 5.980999946594238,
+ 6.002999782562256,
+ 6.050000190734863,
+ 6.056000232696533,
+ 6.086999893188477,
+ 6.0960001945495605,
+ 6.111000061035156,
+ 6.125999927520752,
+ 6.179999828338623,
+ 6.216000080108643,
+ 6.252999782562256,
+ 6.2820000648498535,
+ 6.298999786376953,
+ 6.304999828338623,
+ 6.34499979019165,
+ 6.3979997634887695,
+ 6.435999870300293,
+ 6.464000225067139,
+ 6.48199987411499,
+ 6.683000087738037,
+ 6.692999839782715,
+ 6.703999996185303,
+ 6.775000095367432,
+ 6.821000099182129,
+ 6.839000225067139,
+ 6.868000030517578,
+ 6.881999969482422,
+ 6.888999938964844,
+ 6.956999778747559,
+ 7.013999938964844,
+ 7.040999889373779,
+ 7.059000015258789,
+ 7.071000099182129,
+ 7.131999969482422,
+ 7.183000087738037,
+ 7.223999977111816,
+ 5.939000129699707,
+ 5.956999778747559,
+ 5.9710001945495605,
+ 6.001999855041504,
+ 6.035999774932861,
+ 6.059999942779541,
+ 6.084000110626221,
+ 6.11899995803833,
+ 6.144000053405762,
+ 6.163000106811523,
+ 6.171000003814697,
+ 6.210999965667725,
+ 6.247000217437744,
+ 6.293000221252441,
+ 6.317999839782715,
+ 6.34499979019165,
+ 6.360000133514404,
+ 6.388000011444092,
+ 6.442999839782715,
+ 6.47599983215332,
+ 6.701000213623047,
+ 6.681000232696533,
+ 6.703999996185303,
+ 6.72599983215332,
+ 6.742000102996826,
+ 6.76800012588501,
+ 6.828000068664551,
+ 6.77400016784668,
+ 6.801000118255615,
+ 6.824999809265137,
+ 6.8420000076293945,
+ 6.875,
+ 6.934000015258789,
+ 6.979000091552734,
+ 7.004000186920166,
+ 7.021999835968018,
+ 7.056000232696533,
+ 7.196000099182129,
+ 6.019000053405762,
+ 6.0269999504089355,
+ 6.039999961853027,
+ 6.089000225067139,
+ 6.129000186920166,
+ 6.150000095367432,
+ 6.171999931335449,
+ 6.203000068664551,
+ 6.223999977111816,
+ 6.236999988555908,
+ 6.250999927520752,
+ 6.309000015258789,
+ 6.3460001945495605,
+ 6.383999824523926,
+ 6.4029998779296875,
+ 6.418000221252441,
+ 6.440000057220459,
+ 6.501999855041504,
+ 6.526000022888184,
+ 6.736000061035156,
+ 6.775000095367432,
+ 6.798999786376953,
+ 6.822000026702881,
+ 6.833000183105469,
+ 6.876999855041504,
+ 6.910999774932861,
+ 6.956999778747559,
+ 6.98799991607666,
+ 7.004000186920166,
+ 7.019000053405762,
+ 7.0980000495910645,
+ 7.132999897003174,
+ 7.158999919891357,
+ 7.181000232696533,
+ 7.191999912261963,
+ 5.965000152587891,
+ 5.982999801635742,
+ 6.008999824523926,
+ 6.050000190734863,
+ 6.085000038146973,
+ 6.109000205993652,
+ 6.139999866485596,
+ 6.15500020980835,
+ 6.173999786376953,
+ 6.186999797821045,
+ 6.21999979019165,
+ 6.264999866485596,
+ 6.302000045776367,
+ 6.330999851226807,
+ 6.3520002365112305,
+ 6.369999885559082,
+ 6.394000053405762,
+ 6.459000110626221,
+ 6.489999771118164,
+ 6.716000080108643,
+ 6.741000175476074,
+ 6.755000114440918,
+ 6.769000053405762,
+ 6.815000057220459,
+ 6.872000217437744,
+ 6.9079999923706055,
+ 6.932000160217285,
+ 6.947999954223633,
+ 6.986000061035156,
+ 7.0370001792907715,
+ 7.070000171661377,
+ 7.10099983215332,
+ 7.124000072479248,
+ 7.15500020980835,
+ 7.184000015258789,
+ 5.9679999351501465,
+ 5.99399995803833,
+ 6.006999969482422,
+ 6.048999786376953,
+ 6.066999912261963,
+ 6.0929999351501465,
+ 6.11899995803833,
+ 6.1519999504089355,
+ 6.173999786376953,
+ 6.210999965667725,
+ 6.249000072479248,
+ 6.269000053405762,
+ 6.302000045776367,
+ 6.321000099182129,
+ 6.348999977111816,
+ 6.385000228881836,
+ 6.414999961853027,
+ 6.460000038146973,
+ 6.4770002365112305,
+ 6.708000183105469,
+ 6.751999855041504,
+ 6.7729997634887695,
+ 6.808000087738037,
+ 6.839000225067139,
+ 6.872000217437744,
+ 6.809000015258789,
+ 6.927999973297119,
+ 6.9629998207092285,
+ 7.010000228881836,
+ 7.039000034332275,
+ 7.070000171661377,
+ 7.0970001220703125,
+ 7.136000156402588,
+ 7.063000202178955,
+ 5.918000221252441,
+ 5.941999912261963,
+ 5.9720001220703125,
+ 6,
+ 6.021999835968018,
+ 6.035999774932861,
+ 6.074999809265137,
+ 6.103000164031982,
+ 6.132999897003174,
+ 6.165999889373779,
+ 6.197000026702881,
+ 6.216000080108643,
+ 6.251999855041504,
+ 6.28000020980835,
+ 6.315999984741211,
+ 6.3520002365112305,
+ 6.382999897003174,
+ 6.395999908447266,
+ 6.64900016784668,
+ 6.677999973297119,
+ 6.71999979019165,
+ 6.749000072479248,
+ 6.7820000648498535,
+ 6.806000232696533,
+ 6.85699987411499,
+ 6.877999782562256,
+ 6.918000221252441,
+ 6.949999809265137,
+ 6.978000164031982,
+ 7.025000095367432,
+ 7.060999870300293,
+ 7.089000225067139,
+ 6.040999889373779,
+ 6.054999828338623,
+ 6.074999809265137,
+ 6.119999885559082,
+ 6.166999816894531,
+ 6.197000026702881,
+ 6.223999977111816,
+ 6.241000175476074,
+ 6.250999927520752,
+ 6.269999980926514,
+ 6.322000026702881,
+ 6.366000175476074,
+ 6.4019999504089355,
+ 6.422999858856201,
+ 6.440000057220459,
+ 6.815999984741211,
+ 6.827000141143799,
+ 6.8379998207092285,
+ 6.86899995803833,
+ 6.925000190734863,
+ 6.97599983215332,
+ 6.998000144958496,
+ 7.013999938964844,
+ 7.0229997634887695,
+ 7.083000183105469,
+ 7.13700008392334,
+ 7.150000095367432,
+ 6.026000022888184,
+ 6.035999774932861,
+ 6.046000003814697,
+ 6.0960001945495605,
+ 6.142000198364258,
+ 6.176000118255615,
+ 6.202000141143799,
+ 6.218999862670898,
+ 6.23199987411499,
+ 6.258999824523926,
+ 6.311999797821045,
+ 6.34499979019165,
+ 6.375999927520752,
+ 6.4029998779296875,
+ 6.4070000648498535,
+ 6.818999767303467,
+ 6.835000038146973,
+ 6.9019999504089355,
+ 6.966000080108643,
+ 6.9679999351501465,
+ 7.039999961853027,
+ 6.992000102996826,
+ 5.997000217437744,
+ 6.010000228881836,
+ 6.019999980926514,
+ 6.052999973297119,
+ 6.0980000495910645,
+ 6.140999794006348,
+ 6.171999931335449,
+ 6.190999984741211,
+ 6.205999851226807,
+ 6.2220001220703125,
+ 6.26800012588501,
+ 6.130000114440918,
+ 6.142000198364258,
+ 6.183000087738037,
+ 6.2179999351501465,
+ 6.230999946594238,
+ 6.241000175476074
+ ],
+ "z": [
+ 0.7940000295639038,
+ 0.7910000085830688,
+ 0.7900000214576721,
+ 0.7870000004768372,
+ 0.7799999713897705,
+ 0.5899999737739563,
+ 0.5879999995231628,
+ 0.5870000123977661,
+ 0.5870000123977661,
+ 0.5860000252723694,
+ 0.4629999995231629,
+ 0.460999995470047,
+ 0.460999995470047,
+ 0.4600000083446502,
+ 0.4600000083446502,
+ 0.4600000083446502,
+ 0.4589999914169311,
+ 0.4589999914169311,
+ 0.4589999914169311,
+ 0.5640000104904175,
+ 0.5640000104904175,
+ 0.3400000035762787,
+ 0.3400000035762787,
+ 0.28600001335144043,
+ 0.28600001335144043,
+ 0.28600001335144043,
+ 0.2849999964237213,
+ 0.28600001335144043,
+ 0.2849999964237213,
+ 0.2849999964237213,
+ 0.2849999964237213,
+ 0.3179999887943268,
+ 0.3179999887943268,
+ 0.3179999887943268,
+ 0.3179999887943268,
+ 0.3179999887943268,
+ 0.16699999570846558,
+ 0.1679999977350235,
+ 0.1679999977350235,
+ 0.1679999977350235,
+ 0.15199999511241913,
+ 0.15199999511241913,
+ 0.15199999511241913,
+ 0.08699999749660492,
+ 0.00800000037997961,
+ -1.2549999952316284,
+ -1.38100004196167,
+ -1.38100004196167,
+ -1.38100004196167,
+ -1.3200000524520874,
+ -1.0800000429153442,
+ -1.0779999494552612,
+ -1.0759999752044678,
+ -1.0750000476837158,
+ -1.065999984741211,
+ -1.1089999675750732,
+ -1.1089999675750732,
+ -1.1119999885559082,
+ -1.1130000352859497,
+ -1.1130000352859497,
+ -1.1139999628067017,
+ -1.1150000095367432,
+ -0.7609999775886536,
+ -0.7509999871253967,
+ -1.4839999675750732,
+ -1.47599995136261,
+ -1.2339999675750732,
+ -1.222000002861023,
+ -1.2319999933242798,
+ -0.2750000059604645,
+ -0.2759999930858612,
+ -0.27900001406669617,
+ -0.3100000023841858,
+ -0.3109999895095825,
+ -0.31299999356269836,
+ -0.3140000104904175,
+ -0.3140000104904175,
+ -0.3149999976158142,
+ -0.3190000057220459,
+ -0.3059999942779541,
+ -0.30799999833106995,
+ -0.3109999895095825,
+ -0.3149999976158142,
+ -0.3149999976158142,
+ -0.3160000145435333,
+ -0.31700000166893005,
+ -0.31700000166893005,
+ -0.31700000166893005,
+ -0.3499999940395355,
+ -0.3490000069141388,
+ -0.3499999940395355,
+ -0.3499999940395355,
+ -0.35100001096725464,
+ -0.3540000021457672,
+ -0.3569999933242798,
+ -0.36000001430511475,
+ -0.3610000014305115,
+ -0.3610000014305115,
+ -0.3639999926090241,
+ -1.506999969482422,
+ -1.50600004196167,
+ -1.4850000143051147,
+ -1.4850000143051147,
+ -1.4850000143051147,
+ -1.4839999675750732,
+ -1.4839999675750732,
+ -1.4839999675750732,
+ -1.4809999465942385,
+ -1.4889999628067017,
+ -1.4839999675750732,
+ -1.4869999885559082,
+ -0.35100001096725464,
+ -0.35199999809265137,
+ -0.35600000619888306,
+ -0.3580000102519989,
+ -0.35899999737739563,
+ -0.36000001430511475,
+ -0.36000001430511475,
+ -0.3659999966621399,
+ -0.36800000071525574,
+ -0.3700000047683716,
+ -0.3709999918937683,
+ -0.3930000066757202,
+ -0.39500001072883606,
+ -0.3959999978542328,
+ -0.3959999978542328,
+ -0.39800000190734863,
+ -0.40299999713897705,
+ -0.4059999883174896,
+ -0.4079999923706054,
+ -0.4079999923706054,
+ -0.4090000092983246,
+ -0.414000004529953,
+ -0.4160000085830689,
+ -0.4189999997615814,
+ -1.7719999551773071,
+ -1.77400004863739,
+ -1.7760000228881836,
+ -1.7769999504089355,
+ -1.8609999418258667,
+ -1.866000056266785,
+ -1.871999979019165,
+ -0.3860000073909759,
+ -0.3869999945163727,
+ -0.3869999945163727,
+ -0.3869999945163727,
+ -0.38999998569488525,
+ -0.39399999380111694,
+ -0.3959999978542328,
+ -0.39800000190734863,
+ -0.39899998903274536,
+ -0.4000000059604645,
+ -0.4000000059604645,
+ -0.40400001406669617,
+ -0.40700000524520874,
+ -0.4099999964237213,
+ -0.42899999022483826,
+ -0.43299999833106995,
+ -0.4350000023841858,
+ -0.4370000064373016,
+ -0.4390000104904175,
+ -0.4390000104904175,
+ -0.4410000145435333,
+ -0.44600000977516174,
+ -0.4480000138282776,
+ -0.44999998807907104,
+ -0.45100000500679016,
+ -0.453000009059906,
+ -0.4569999873638153,
+ -0.460999995470047,
+ -0.47600001096725464,
+ -0.4749999940395355,
+ -0.4790000021457672,
+ -0.4830000102519989,
+ -0.48500001430511475,
+ -0.4869999885559082,
+ -0.4880000054836273,
+ -0.4909999966621399,
+ -0.49399998784065247,
+ -0.49900001287460327,
+ -0.5,
+ -0.5009999871253967,
+ -0.503000020980835,
+ -0.5070000290870667,
+ -0.5109999775886536,
+ -0.5139999985694885,
+ -0.4629999995231629,
+ -0.4650000035762787,
+ -0.4690000116825104,
+ -0.46799999475479126,
+ -0.47099998593330383,
+ -0.47099998593330383,
+ -0.47200000286102295,
+ -0.47200000286102295,
+ -0.47699999809265137,
+ -0.47999998927116394,
+ -0.4830000102519989,
+ -0.48500001430511475,
+ -0.4860000014305115,
+ -0.4860000014305115,
+ -0.4889999926090241,
+ -0.49399998784065247,
+ -0.4970000088214874,
+ -0.49900001287460327,
+ -0.5,
+ -0.5149999856948853,
+ -0.5149999856948853,
+ -0.515999972820282,
+ -0.5230000019073486,
+ -0.5270000100135803,
+ -0.527999997138977,
+ -0.5299999713897705,
+ -0.5299999713897705,
+ -0.5299999713897705,
+ -0.5360000133514404,
+ -0.5419999957084656,
+ -0.5440000295639038,
+ -0.5450000166893005,
+ -0.5450000166893005,
+ -0.5509999990463257,
+ -0.5550000071525574,
+ -0.5580000281333923,
+ -0.5009999871253967,
+ -0.5019999742507935,
+ -0.5019999742507935,
+ -0.5049999952316284,
+ -0.5080000162124634,
+ -0.5099999904632568,
+ -0.5109999775886536,
+ -0.5139999985694885,
+ -0.515999972820282,
+ -0.5170000195503235,
+ -0.5180000066757202,
+ -0.5210000276565552,
+ -0.5239999890327454,
+ -0.527999997138977,
+ -0.5299999713897705,
+ -0.5320000052452087,
+ -0.5329999923706055,
+ -0.5360000133514404,
+ -0.5410000085830688,
+ -0.5440000295639038,
+ -0.5640000104904175,
+ -0.5600000023841858,
+ -0.5619999766349792,
+ -0.5630000233650208,
+ -0.5640000104904175,
+ -0.5659999847412109,
+ -0.5720000267028809,
+ -0.5649999976158142,
+ -0.5669999718666077,
+ -0.5690000057220459,
+ -0.5699999928474426,
+ -0.5730000138282776,
+ -0.578000009059906,
+ -0.5820000171661377,
+ -0.5849999785423279,
+ -0.5860000252723694,
+ -0.5889999866485596,
+ -0.6029999852180481,
+ -0.5559999942779541,
+ -0.5550000071525574,
+ -0.5559999942779541,
+ -0.5609999895095825,
+ -0.5649999976158142,
+ -0.5659999847412109,
+ -0.5680000185966492,
+ -0.5709999799728394,
+ -0.5720000267028809,
+ -0.5720000267028809,
+ -0.5730000138282776,
+ -0.5799999833106995,
+ -0.5830000042915344,
+ -0.5860000252723694,
+ -0.5870000123977661,
+ -0.5879999995231628,
+ -0.5899999737739563,
+ -0.5960000157356262,
+ -0.5979999899864197,
+ -0.6150000095367432,
+ -0.6190000176429749,
+ -0.6209999918937683,
+ -0.621999979019165,
+ -0.6230000257492065,
+ -0.6269999742507935,
+ -0.6299999952316284,
+ -0.6349999904632568,
+ -0.6370000243186951,
+ -0.6380000114440918,
+ -0.6389999985694885,
+ -0.6470000147819519,
+ -0.6499999761581421,
+ -0.652999997138977,
+ -0.6549999713897705,
+ -0.6549999713897705,
+ -0.5910000205039978,
+ -0.5920000076293945,
+ -0.593999981880188,
+ -0.5979999899864197,
+ -0.6010000109672546,
+ -0.6029999852180481,
+ -0.6060000061988831,
+ -0.6079999804496765,
+ -0.609000027179718,
+ -0.609000027179718,
+ -0.6119999885559082,
+ -0.6169999837875366,
+ -0.6200000047683716,
+ -0.6230000257492065,
+ -0.625,
+ -0.6259999871253967,
+ -0.628000020980835,
+ -0.6349999904632568,
+ -0.6380000114440918,
+ -0.6579999923706055,
+ -0.6600000262260437,
+ -0.6610000133514404,
+ -0.6620000004768372,
+ -0.6669999957084656,
+ -0.6729999780654907,
+ -0.6759999990463257,
+ -0.6779999732971191,
+ -0.6790000200271606,
+ -0.6830000281333923,
+ -0.6880000233650208,
+ -0.6909999847412109,
+ -0.6940000057220459,
+ -0.6959999799728394,
+ -0.6990000009536743,
+ -0.7009999752044678,
+ -0.6309999823570251,
+ -0.6330000162124634,
+ -0.6330000162124634,
+ -0.6380000114440918,
+ -0.6389999985694885,
+ -0.640999972820282,
+ -0.6439999938011169,
+ -0.6470000147819519,
+ -0.6489999890327454,
+ -0.652999997138977,
+ -0.6570000052452087,
+ -0.6579999923706055,
+ -0.6610000133514404,
+ -0.6629999876022339,
+ -0.6660000085830688,
+ -0.6690000295639038,
+ -0.671999990940094,
+ -0.6769999861717224,
+ -0.6779999732971191,
+ -0.6990000009536743,
+ -0.7039999961853027,
+ -0.7059999704360962,
+ -0.7099999785423279,
+ -0.7129999995231628,
+ -0.7160000205039978,
+ -0.7059999704360962,
+ -0.7210000157356262,
+ -0.7239999771118164,
+ -0.7300000190734863,
+ -0.7329999804496765,
+ -0.7360000014305115,
+ -0.7379999756813049,
+ -0.7419999837875366,
+ -0.7310000061988831,
+ -0.6579999923706055,
+ -0.6600000262260437,
+ -0.6629999876022339,
+ -0.6660000085830688,
+ -0.6679999828338623,
+ -0.6690000295639038,
+ -0.6729999780654907,
+ -0.675000011920929,
+ -0.6779999732971191,
+ -0.6819999814033508,
+ -0.6850000023841858,
+ -0.6869999766349792,
+ -0.6909999847412109,
+ -0.6930000185966492,
+ -0.6970000267028809,
+ -0.7009999752044678,
+ -0.7039999961853027,
+ -0.7039999961853027,
+ -0.7289999723434448,
+ -0.7319999933242798,
+ -0.7369999885559082,
+ -0.7400000095367432,
+ -0.7429999709129333,
+ -0.7450000047683716,
+ -0.7509999871253967,
+ -0.753000020980835,
+ -0.7570000290870667,
+ -0.7609999775886536,
+ -0.7630000114440918,
+ -0.7689999938011169,
+ -0.7720000147819519,
+ -0.7749999761581421,
+ -0.7210000157356262,
+ -0.722000002861023,
+ -0.7229999899864197,
+ -0.7289999723434448,
+ -0.734000027179718,
+ -0.7369999885559082,
+ -0.7400000095367432,
+ -0.7409999966621399,
+ -0.7419999837875366,
+ -0.7429999709129333,
+ -0.7490000128746033,
+ -0.7540000081062317,
+ -0.7580000162124634,
+ -0.7599999904632568,
+ -0.7609999775886536,
+ -0.8009999990463257,
+ -0.8019999861717224,
+ -0.8019999861717224,
+ -0.8050000071525574,
+ -0.8130000233650208,
+ -0.8190000057220459,
+ -0.8209999799728394,
+ -0.8220000267028809,
+ -0.8220000267028809,
+ -0.8289999961853027,
+ -0.8360000252723694,
+ -0.8370000123977661,
+ -0.7639999985694885,
+ -0.7639999985694885,
+ -0.7639999985694885,
+ -0.7710000276565552,
+ -0.7770000100135803,
+ -0.781000018119812,
+ -0.7839999794960022,
+ -0.7850000262260437,
+ -0.7850000262260437,
+ -0.7879999876022339,
+ -0.7950000166893005,
+ -0.7990000247955322,
+ -0.8029999732971191,
+ -0.8050000071525574,
+ -0.8050000071525574,
+ -0.8500000238418579,
+ -0.8510000109672546,
+ -0.8600000143051147,
+ -0.8679999709129333,
+ -0.8669999837875366,
+ -0.878000020980835,
+ -0.8690000176429749,
+ -0.7879999876022339,
+ -0.7889999747276306,
+ -0.7889999747276306,
+ -0.7929999828338623,
+ -0.7990000247955322,
+ -0.8050000071525574,
+ -0.8080000281333923,
+ -0.8090000152587891,
+ -0.8100000023841858,
+ -0.8119999766349792,
+ -0.8180000185966492,
+ -0.8569999933242798,
+ -0.8569999933242798,
+ -0.8619999885559082,
+ -0.8659999966621399,
+ -0.8679999709129333,
+ -0.8679999709129333
+ ]
+ }
+ ],
+ "layout": {
+ "coloraxis": {
+ "colorbar": {
+ "title": {
+ "text": "i"
+ }
+ },
+ "colorscale": [
+ [
+ 0,
+ "#0d0887"
+ ],
+ [
+ 0.1111111111111111,
+ "#46039f"
+ ],
+ [
+ 0.2222222222222222,
+ "#7201a8"
+ ],
+ [
+ 0.3333333333333333,
+ "#9c179e"
+ ],
+ [
+ 0.4444444444444444,
+ "#bd3786"
+ ],
+ [
+ 0.5555555555555556,
+ "#d8576b"
+ ],
+ [
+ 0.6666666666666666,
+ "#ed7953"
+ ],
+ [
+ 0.7777777777777778,
+ "#fb9f3a"
+ ],
+ [
+ 0.8888888888888888,
+ "#fdca26"
+ ],
+ [
+ 1,
+ "#f0f921"
+ ]
+ ]
+ },
+ "hovermode": false,
+ "legend": {
+ "tracegroupgap": 0
+ },
+ "scene": {
+ "aspectmode": "data",
+ "domain": {
+ "x": [
+ 0,
+ 1
+ ],
+ "y": [
+ 0,
+ 1
+ ]
+ },
+ "xaxis": {
+ "title": {
+ "text": "x"
+ }
+ },
+ "yaxis": {
+ "title": {
+ "text": "y"
+ }
+ },
+ "zaxis": {
+ "title": {
+ "text": "z"
+ }
+ }
+ },
+ "template": {
+ "data": {
+ "bar": [
+ {
+ "error_x": {
+ "color": "#2a3f5f"
+ },
+ "error_y": {
+ "color": "#2a3f5f"
+ },
+ "marker": {
+ "line": {
+ "color": "#E5ECF6",
+ "width": 0.5
+ }
+ },
+ "type": "bar"
+ }
+ ],
+ "barpolar": [
+ {
+ "marker": {
+ "line": {
+ "color": "#E5ECF6",
+ "width": 0.5
+ }
+ },
+ "type": "barpolar"
+ }
+ ],
+ "carpet": [
+ {
+ "aaxis": {
+ "endlinecolor": "#2a3f5f",
+ "gridcolor": "white",
+ "linecolor": "white",
+ "minorgridcolor": "white",
+ "startlinecolor": "#2a3f5f"
+ },
+ "baxis": {
+ "endlinecolor": "#2a3f5f",
+ "gridcolor": "white",
+ "linecolor": "white",
+ "minorgridcolor": "white",
+ "startlinecolor": "#2a3f5f"
+ },
+ "type": "carpet"
+ }
+ ],
+ "choropleth": [
+ {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ },
+ "type": "choropleth"
+ }
+ ],
+ "contour": [
+ {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ },
+ "colorscale": [
+ [
+ 0,
+ "#0d0887"
+ ],
+ [
+ 0.1111111111111111,
+ "#46039f"
+ ],
+ [
+ 0.2222222222222222,
+ "#7201a8"
+ ],
+ [
+ 0.3333333333333333,
+ "#9c179e"
+ ],
+ [
+ 0.4444444444444444,
+ "#bd3786"
+ ],
+ [
+ 0.5555555555555556,
+ "#d8576b"
+ ],
+ [
+ 0.6666666666666666,
+ "#ed7953"
+ ],
+ [
+ 0.7777777777777778,
+ "#fb9f3a"
+ ],
+ [
+ 0.8888888888888888,
+ "#fdca26"
+ ],
+ [
+ 1,
+ "#f0f921"
+ ]
+ ],
+ "type": "contour"
+ }
+ ],
+ "contourcarpet": [
+ {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ },
+ "type": "contourcarpet"
+ }
+ ],
+ "heatmap": [
+ {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ },
+ "colorscale": [
+ [
+ 0,
+ "#0d0887"
+ ],
+ [
+ 0.1111111111111111,
+ "#46039f"
+ ],
+ [
+ 0.2222222222222222,
+ "#7201a8"
+ ],
+ [
+ 0.3333333333333333,
+ "#9c179e"
+ ],
+ [
+ 0.4444444444444444,
+ "#bd3786"
+ ],
+ [
+ 0.5555555555555556,
+ "#d8576b"
+ ],
+ [
+ 0.6666666666666666,
+ "#ed7953"
+ ],
+ [
+ 0.7777777777777778,
+ "#fb9f3a"
+ ],
+ [
+ 0.8888888888888888,
+ "#fdca26"
+ ],
+ [
+ 1,
+ "#f0f921"
+ ]
+ ],
+ "type": "heatmap"
+ }
+ ],
+ "heatmapgl": [
+ {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ },
+ "colorscale": [
+ [
+ 0,
+ "#0d0887"
+ ],
+ [
+ 0.1111111111111111,
+ "#46039f"
+ ],
+ [
+ 0.2222222222222222,
+ "#7201a8"
+ ],
+ [
+ 0.3333333333333333,
+ "#9c179e"
+ ],
+ [
+ 0.4444444444444444,
+ "#bd3786"
+ ],
+ [
+ 0.5555555555555556,
+ "#d8576b"
+ ],
+ [
+ 0.6666666666666666,
+ "#ed7953"
+ ],
+ [
+ 0.7777777777777778,
+ "#fb9f3a"
+ ],
+ [
+ 0.8888888888888888,
+ "#fdca26"
+ ],
+ [
+ 1,
+ "#f0f921"
+ ]
+ ],
+ "type": "heatmapgl"
+ }
+ ],
+ "histogram": [
+ {
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "type": "histogram"
+ }
+ ],
+ "histogram2d": [
+ {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ },
+ "colorscale": [
+ [
+ 0,
+ "#0d0887"
+ ],
+ [
+ 0.1111111111111111,
+ "#46039f"
+ ],
+ [
+ 0.2222222222222222,
+ "#7201a8"
+ ],
+ [
+ 0.3333333333333333,
+ "#9c179e"
+ ],
+ [
+ 0.4444444444444444,
+ "#bd3786"
+ ],
+ [
+ 0.5555555555555556,
+ "#d8576b"
+ ],
+ [
+ 0.6666666666666666,
+ "#ed7953"
+ ],
+ [
+ 0.7777777777777778,
+ "#fb9f3a"
+ ],
+ [
+ 0.8888888888888888,
+ "#fdca26"
+ ],
+ [
+ 1,
+ "#f0f921"
+ ]
+ ],
+ "type": "histogram2d"
+ }
+ ],
+ "histogram2dcontour": [
+ {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ },
+ "colorscale": [
+ [
+ 0,
+ "#0d0887"
+ ],
+ [
+ 0.1111111111111111,
+ "#46039f"
+ ],
+ [
+ 0.2222222222222222,
+ "#7201a8"
+ ],
+ [
+ 0.3333333333333333,
+ "#9c179e"
+ ],
+ [
+ 0.4444444444444444,
+ "#bd3786"
+ ],
+ [
+ 0.5555555555555556,
+ "#d8576b"
+ ],
+ [
+ 0.6666666666666666,
+ "#ed7953"
+ ],
+ [
+ 0.7777777777777778,
+ "#fb9f3a"
+ ],
+ [
+ 0.8888888888888888,
+ "#fdca26"
+ ],
+ [
+ 1,
+ "#f0f921"
+ ]
+ ],
+ "type": "histogram2dcontour"
+ }
+ ],
+ "mesh3d": [
+ {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ },
+ "type": "mesh3d"
+ }
+ ],
+ "parcoords": [
+ {
+ "line": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "type": "parcoords"
+ }
+ ],
+ "pie": [
+ {
+ "automargin": true,
+ "type": "pie"
+ }
+ ],
+ "scatter": [
+ {
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "type": "scatter"
+ }
+ ],
+ "scatter3d": [
+ {
+ "line": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "type": "scatter3d"
+ }
+ ],
+ "scattercarpet": [
+ {
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "type": "scattercarpet"
+ }
+ ],
+ "scattergeo": [
+ {
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "type": "scattergeo"
+ }
+ ],
+ "scattergl": [
+ {
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "type": "scattergl"
+ }
+ ],
+ "scattermapbox": [
+ {
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "type": "scattermapbox"
+ }
+ ],
+ "scatterpolar": [
+ {
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "type": "scatterpolar"
+ }
+ ],
+ "scatterpolargl": [
+ {
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "type": "scatterpolargl"
+ }
+ ],
+ "scatterternary": [
+ {
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "type": "scatterternary"
+ }
+ ],
+ "surface": [
+ {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ },
+ "colorscale": [
+ [
+ 0,
+ "#0d0887"
+ ],
+ [
+ 0.1111111111111111,
+ "#46039f"
+ ],
+ [
+ 0.2222222222222222,
+ "#7201a8"
+ ],
+ [
+ 0.3333333333333333,
+ "#9c179e"
+ ],
+ [
+ 0.4444444444444444,
+ "#bd3786"
+ ],
+ [
+ 0.5555555555555556,
+ "#d8576b"
+ ],
+ [
+ 0.6666666666666666,
+ "#ed7953"
+ ],
+ [
+ 0.7777777777777778,
+ "#fb9f3a"
+ ],
+ [
+ 0.8888888888888888,
+ "#fdca26"
+ ],
+ [
+ 1,
+ "#f0f921"
+ ]
+ ],
+ "type": "surface"
+ }
+ ],
+ "table": [
+ {
+ "cells": {
+ "fill": {
+ "color": "#EBF0F8"
+ },
+ "line": {
+ "color": "white"
+ }
+ },
+ "header": {
+ "fill": {
+ "color": "#C8D4E3"
+ },
+ "line": {
+ "color": "white"
+ }
+ },
+ "type": "table"
+ }
+ ]
+ },
+ "layout": {
+ "annotationdefaults": {
+ "arrowcolor": "#2a3f5f",
+ "arrowhead": 0,
+ "arrowwidth": 1
+ },
+ "autotypenumbers": "strict",
+ "coloraxis": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "colorscale": {
+ "diverging": [
+ [
+ 0,
+ "#8e0152"
+ ],
+ [
+ 0.1,
+ "#c51b7d"
+ ],
+ [
+ 0.2,
+ "#de77ae"
+ ],
+ [
+ 0.3,
+ "#f1b6da"
+ ],
+ [
+ 0.4,
+ "#fde0ef"
+ ],
+ [
+ 0.5,
+ "#f7f7f7"
+ ],
+ [
+ 0.6,
+ "#e6f5d0"
+ ],
+ [
+ 0.7,
+ "#b8e186"
+ ],
+ [
+ 0.8,
+ "#7fbc41"
+ ],
+ [
+ 0.9,
+ "#4d9221"
+ ],
+ [
+ 1,
+ "#276419"
+ ]
+ ],
+ "sequential": [
+ [
+ 0,
+ "#0d0887"
+ ],
+ [
+ 0.1111111111111111,
+ "#46039f"
+ ],
+ [
+ 0.2222222222222222,
+ "#7201a8"
+ ],
+ [
+ 0.3333333333333333,
+ "#9c179e"
+ ],
+ [
+ 0.4444444444444444,
+ "#bd3786"
+ ],
+ [
+ 0.5555555555555556,
+ "#d8576b"
+ ],
+ [
+ 0.6666666666666666,
+ "#ed7953"
+ ],
+ [
+ 0.7777777777777778,
+ "#fb9f3a"
+ ],
+ [
+ 0.8888888888888888,
+ "#fdca26"
+ ],
+ [
+ 1,
+ "#f0f921"
+ ]
+ ],
+ "sequentialminus": [
+ [
+ 0,
+ "#0d0887"
+ ],
+ [
+ 0.1111111111111111,
+ "#46039f"
+ ],
+ [
+ 0.2222222222222222,
+ "#7201a8"
+ ],
+ [
+ 0.3333333333333333,
+ "#9c179e"
+ ],
+ [
+ 0.4444444444444444,
+ "#bd3786"
+ ],
+ [
+ 0.5555555555555556,
+ "#d8576b"
+ ],
+ [
+ 0.6666666666666666,
+ "#ed7953"
+ ],
+ [
+ 0.7777777777777778,
+ "#fb9f3a"
+ ],
+ [
+ 0.8888888888888888,
+ "#fdca26"
+ ],
+ [
+ 1,
+ "#f0f921"
+ ]
+ ]
+ },
+ "colorway": [
+ "#636efa",
+ "#EF553B",
+ "#00cc96",
+ "#ab63fa",
+ "#FFA15A",
+ "#19d3f3",
+ "#FF6692",
+ "#B6E880",
+ "#FF97FF",
+ "#FECB52"
+ ],
+ "font": {
+ "color": "#2a3f5f"
+ },
+ "geo": {
+ "bgcolor": "white",
+ "lakecolor": "white",
+ "landcolor": "#E5ECF6",
+ "showlakes": true,
+ "showland": true,
+ "subunitcolor": "white"
+ },
+ "hoverlabel": {
+ "align": "left"
+ },
+ "hovermode": "closest",
+ "mapbox": {
+ "style": "light"
+ },
+ "paper_bgcolor": "white",
+ "plot_bgcolor": "#E5ECF6",
+ "polar": {
+ "angularaxis": {
+ "gridcolor": "white",
+ "linecolor": "white",
+ "ticks": ""
+ },
+ "bgcolor": "#E5ECF6",
+ "radialaxis": {
+ "gridcolor": "white",
+ "linecolor": "white",
+ "ticks": ""
+ }
+ },
+ "scene": {
+ "xaxis": {
+ "backgroundcolor": "#E5ECF6",
+ "gridcolor": "white",
+ "gridwidth": 2,
+ "linecolor": "white",
+ "showbackground": true,
+ "ticks": "",
+ "zerolinecolor": "white"
+ },
+ "yaxis": {
+ "backgroundcolor": "#E5ECF6",
+ "gridcolor": "white",
+ "gridwidth": 2,
+ "linecolor": "white",
+ "showbackground": true,
+ "ticks": "",
+ "zerolinecolor": "white"
+ },
+ "zaxis": {
+ "backgroundcolor": "#E5ECF6",
+ "gridcolor": "white",
+ "gridwidth": 2,
+ "linecolor": "white",
+ "showbackground": true,
+ "ticks": "",
+ "zerolinecolor": "white"
+ }
+ },
+ "shapedefaults": {
+ "line": {
+ "color": "#2a3f5f"
+ }
+ },
+ "ternary": {
+ "aaxis": {
+ "gridcolor": "white",
+ "linecolor": "white",
+ "ticks": ""
+ },
+ "baxis": {
+ "gridcolor": "white",
+ "linecolor": "white",
+ "ticks": ""
+ },
+ "bgcolor": "#E5ECF6",
+ "caxis": {
+ "gridcolor": "white",
+ "linecolor": "white",
+ "ticks": ""
+ }
+ },
+ "title": {
+ "x": 0.05
+ },
+ "xaxis": {
+ "automargin": true,
+ "gridcolor": "white",
+ "linecolor": "white",
+ "ticks": "",
+ "title": {
+ "standoff": 15
+ },
+ "zerolinecolor": "white",
+ "zerolinewidth": 2
+ },
+ "yaxis": {
+ "automargin": true,
+ "gridcolor": "white",
+ "linecolor": "white",
+ "ticks": "",
+ "title": {
+ "standoff": 15
+ },
+ "zerolinecolor": "white",
+ "zerolinewidth": 2
+ }
+ }
+ },
+ "title": {
+ "text": "Monday, September 26, 2011 01:02:44"
+ }
+ }
+ },
+ "text/html": "
"
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "intense_points.plot(color = \"i\")"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": []
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "Python 3.8.8 64-bit ('base': conda)",
+ "name": "python388jvsc74a57bd098b0a9b7b4eaaa670588a142fd0a9b87eaafe866f1db4228be72b4211d12040f"
+ },
+ "language_info": {
+ "codemirror_mode": {
+ "name": "ipython",
+ "version": 3
+ },
+ "file_extension": ".py",
+ "mimetype": "text/x-python",
+ "name": "python",
+ "nbconvert_exporter": "python",
+ "pygments_lexer": "ipython3",
+ "version": "3.8.8"
+ },
+ "orig_nbformat": 2
+ },
+ "nbformat": 4,
+ "nbformat_minor": 2
+}
\ No newline at end of file
diff --git a/_sources/tutorial_notebooks/reading_las_pcd.ipynb.txt b/_sources/tutorial_notebooks/reading_las_pcd.ipynb.txt
new file mode 100644
index 00000000..24f98c32
--- /dev/null
+++ b/_sources/tutorial_notebooks/reading_las_pcd.ipynb.txt
@@ -0,0 +1,123 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Working with LAS and PCD Files\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "It's possible to read pointcloud files with the format .las and .pcd. In order to read them just the submodule PointCloud.from_file():"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "from pathlib import Path\n",
+ "\n",
+ "import laspy\n",
+ "import numpy as np\n",
+ "\n",
+ "import pointcloudset as pcs"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "testpcd = Path().cwd().parent.joinpath(\"../../../tests/testdata/las_files/test_tree.pcd\")\n",
+ "testlas = testpcd = Path().cwd().parent.joinpath(\"../../../tests/testdata/las_files/test_tree.las\")\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "las_pc = pcs.PointCloud.from_file(testlas)\n",
+ "pcd_pc = pcs.PointCloud.from_file(testpcd)\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### Note:\n",
+ "Coordinates might not be correct yet, since the offset and scale values that are stored within the .las-file are not applied.\n",
+ "But now you can use the data as a pcs.PointCloud and analyze + edit it. \n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "las_pc.data"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "las_pc.plot(color=\"z\")"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "def treetop(frame: pcs.PointCloud) -> pcs.PointCloud:\n",
+ " return frame.limit(\"z\", 8, 19)\n",
+ "\n",
+ "\n",
+ "tip = treetop(las_pc)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "tip.plot(color=\"z\")"
+ ]
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "Python 3",
+ "language": "python",
+ "name": "python3"
+ },
+ "language_info": {
+ "codemirror_mode": {
+ "name": "ipython",
+ "version": 3
+ },
+ "file_extension": ".py",
+ "mimetype": "text/x-python",
+ "name": "python",
+ "nbconvert_exporter": "python",
+ "pygments_lexer": "ipython3",
+ "version": "3.11.10"
+ },
+ "orig_nbformat": 2
+ },
+ "nbformat": 4,
+ "nbformat_minor": 2
+}
diff --git a/_sources/tutorial_notebooks/usage.ipynb.txt b/_sources/tutorial_notebooks/usage.ipynb.txt
new file mode 100644
index 00000000..a7ec0432
--- /dev/null
+++ b/_sources/tutorial_notebooks/usage.ipynb.txt
@@ -0,0 +1,682 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Usage of Package\n",
+ "\n",
+ "First import the package, and pathlib which is required to handle files.\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {
+ "tags": []
+ },
+ "outputs": [],
+ "source": [
+ "import pointcloudset as pcs\n",
+ "\n",
+ "print(f\"package version: {pcs.__version__}\")\n",
+ "from pathlib import Path\n",
+ "\n",
+ "import matplotlib.pyplot as plt\n",
+ "\n",
+ "plt.rcParams[\"figure.figsize\"] = (20,10)\n",
+ "\n",
+ "import plotly.express as px\n",
+ "\n",
+ "%load_ext autoreload\n",
+ "%autoreload 2\n",
+ "%config IPCompleter.greedy=True"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Ignore the INFO messages, which comes from the rospy package.\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Reading a ROS file into the Dataset"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "testbag = Path().cwd().parent.joinpath(\"../../../tests/testdata/test.bag\")"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "testset = pcs.Dataset.from_file(testbag,topic=\"/os1_cloud_node/points\",keep_zeros=False)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "This reads the bagfile into the Dataset.\n",
+ "Dataset only reads frames from the bagfile if needed, in order to save memory and make it possible to work which huge bagfiles.\n",
+ "\n",
+ "NotE You can also read ROS 2 files in the same way."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {
+ "tags": []
+ },
+ "outputs": [],
+ "source": [
+ "print(testset)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "len(testset)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "In order to see whats availble use \"tab\" to see the availble properties and methods. Alterantivly, use help(), dir(), and the documentation.\n",
+ "Also shift tab is nice inside jupyter lab.\n",
+ "\n",
+ "\n",
+ "Lets enquire the start and end time of the dataset"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "testset.start_time"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "testset.end_time"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "testset.duration"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Working with the whole Dataset\n",
+ "You can work with the whole dataset. Even if they are huge, since the package used parallel processing with dask in the background.\n",
+ "So make sure that your docker or computer has access to as many CPU cores as possbile."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "testset.animate(hover_data=True, color=\"intensity\")"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "testset.min()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "The Dataset class supports the basic functions like min, max, mean and std. They all work on 3 different level: dataset, pointcloud and point. Lets investigate the differences. The default is over the whole dataset."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "min_pointcloud = testset.min(\"pointcloud\")\n",
+ "min_pointcloud"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "So now we have a pandas DataFrame which gives us the min values of each column for each pointcloud. This can also be used for plotting."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "px.line(min_pointcloud,x=\"timestamp\", y=\"x min\")"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Now lets investigate on the point level."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "min_point = testset.min(\"point\")\n",
+ "min_point"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "So we got a DataFrame with the min value for each point of the whole Dataset. Note that the points are identified by the orginial_id. For some lidars this does not make sense since the points locations changes over time, so please think beforehand if its is usefull for your lidar. Nevertheless, for the Ouster lidars this can be used and is very usefull.\n",
+ "\n",
+ "Also note the \"N\" column which gives the count of the point over the dataset."
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "All thes methods are based on the aggregate method similar to the one from pandas. It works also on \"dataset\", \"frame\" and \"point\" level. "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "testset.agg(\"min\",\"dataset\")"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "testset.agg([\"min\",\"max\",\"mean\"],\"point\")"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "testset.agg({\"x\":[\"max\",\"min\"]},\"point\")"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "testset.agg({\"x\":\"max\"},\"point\")"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Working with a PointCloud\n",
+ "\n",
+ "They are based on pandas dataframes and pyntcloud.\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Getting a PointCloud from a Dataset\n",
+ "First grab the first p in the dataset:"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "testpointcloud = testset[0]"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {
+ "tags": []
+ },
+ "outputs": [],
+ "source": [
+ "print(testpointcloud)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Note that the number of points can vary from frame to frame, since all zero elements are deltede on import (see option keep_zero in the dataset)."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "len(testpointcloud)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Reading from a pointcloud file\n",
+ "Reads all common formats, provided by pyntcloud."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "lasfile = Path(\"../../../../tests/testdata/las_files/diamond.las\")"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "testpointcloud2 = pcs.PointCloud.from_file(lasfile)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "print(testpointcloud2)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Plotting\n",
+ "Plotting is based on plotly which gives interactive plots."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "testpointcloud.plot(color=\"intensity\", point_size=0.5)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "This plot uses plotly as the backend, which can be rather time consuming. \n",
+ "There is currently a limit of 300k points which can be plotted which is enough to plot an Ouster lidar with 128 lines. (set in config.py)\n",
+ "\n",
+ "WARNING: delte the output cells with plotly plots, they make the file very big."
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Working with pointclouds\n",
+ "The PointCloud consists mainly of the properties \"data\", \"points\" and \"timestamp\""
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "testpointcloud.data"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "testpointcloud.timestamp"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "So data contains everything as a pandas dataframe. With all its power."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "testpointcloud.describe()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Since PointCloud.data is just a pandas datframe. You can do whater you can do with dataframe. "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "testpointcloud.data.hist();"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Pointcloud processing with build in methods\n",
+ "Although you can do a lot with just PointCloud.data and PointCloudpoints, on its own the PointCloud object has methods build in for processing, which in turn return a frame object. The use the power of dataframes, pyntcloud and open3d.\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "newpointcloud = testpointcloud.limit(\"x\",-5,5).limit(\"intensity\",400,1000).filter(\"quantile\",\"reflectivity\", \">\",0.5)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "newpointcloud.describe()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "So this is now a smaller PointCloud with x ranging from -5 to 5, and with intenisties above 400. Processing steps can be chained together since the return a new PointCloud object."
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "You can also plot the newpointcloud and investiget it further with tooltips on each point."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "newpointcloud.plot(\"intensity\",hover_data=[\"range\"])"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Plane segmenation, Clustering and Overlaying Several Plots\n",
+ "Please note that not all processing methods are demonstrated here. For more info please refer to the html documenation of the PointCloud class."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {
+ "tags": []
+ },
+ "outputs": [],
+ "source": [
+ "plane = newpointcloud.plane_segmentation(distance_threshold= 0.01,ransac_n= 3,num_iterations= 50, return_plane_model=True)\n",
+ "print(len(plane))"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "plane"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "newpointcloud.bounding_box"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {
+ "tags": []
+ },
+ "outputs": [],
+ "source": [
+ "clusters = newpointcloud.get_cluster(eps=0.5, min_points= 10)\n",
+ "cluster1 = newpointcloud.take_cluster(1,clusters)\n",
+ "cluster2 = newpointcloud.take_cluster(2,clusters)\n",
+ "print(len(cluster1))\n",
+ "print(len(cluster2))"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "type(cluster1)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "newpointcloud.plot(color=None, overlay={\"Cluster 1\": cluster1,\"Cluster 2\": cluster2}, hover_data=[\"intensity\"])"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Applying Functions to the whole Dataset\n",
+ "Now we can develop a pipeline and but everything together. The .agg method is powerfull but sometimes not flexible enouth. So with .apply you can apply a function to the whole dataset. This again uses dask in the background for lazy evaualtion and parallele processing."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "def isolate_target(frame: pcs.PointCloud) -> pcs.PointCloud:\n",
+ " return frame.limit(\"x\",0,1).limit(\"y\",0,1)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Note the typehints. They are importont as they are used to determine if the result can be a new dataset are not. If the function returns a PointCloud then the result is another Dataset. This is very usefull to chain operations toghether."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "testset.apply(isolate_target)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "So the result is another Dataset. Now we can chain things together"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "def diff_to_pointcloud(pointcloud: pcs.PointCloud, to_compare: pcs.PointCloud) -> pcs.PointCloud:\n",
+ " return pointcloud.diff(\"pointcloud\", to_compare)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "result = testset.apply(isolate_target).apply(diff_to_pointcloud, to_compare=testset[0])"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Note that this uses lazy evaluation from dask and therfore the result is only calulated when needed. So you could develop a complex chain and then investigate the results."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "result[1]"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Now we can inquire the resulte even futher by useing .agg from before"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "result.agg({\"x difference\":\"max\"},\"pointcloud\")"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": []
+ }
+ ],
+ "metadata": {
+ "interpreter": {
+ "hash": "5d20601a78b69ce1e830e7a32b8a0e9b424dfcbdd55b4b97e0f1a14444bda345"
+ },
+ "kernelspec": {
+ "display_name": "base",
+ "language": "python",
+ "name": "base"
+ },
+ "language_info": {
+ "codemirror_mode": {
+ "name": "ipython",
+ "version": 3
+ },
+ "file_extension": ".py",
+ "mimetype": "text/x-python",
+ "name": "python",
+ "nbconvert_exporter": "python",
+ "pygments_lexer": "ipython3",
+ "version": "3.9.9"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 4
+}
diff --git a/_static/Folie2.PNG b/_static/Folie2.PNG
new file mode 100644
index 00000000..f7e60473
Binary files /dev/null and b/_static/Folie2.PNG differ
diff --git a/_static/Folie3.PNG b/_static/Folie3.PNG
new file mode 100644
index 00000000..ff1fad7a
Binary files /dev/null and b/_static/Folie3.PNG differ
diff --git a/_static/_sphinx_javascript_frameworks_compat.js b/_static/_sphinx_javascript_frameworks_compat.js
new file mode 100644
index 00000000..8549469d
--- /dev/null
+++ b/_static/_sphinx_javascript_frameworks_compat.js
@@ -0,0 +1,134 @@
+/*
+ * _sphinx_javascript_frameworks_compat.js
+ * ~~~~~~~~~~
+ *
+ * Compatability shim for jQuery and underscores.js.
+ *
+ * WILL BE REMOVED IN Sphinx 6.0
+ * xref RemovedInSphinx60Warning
+ *
+ */
+
+/**
+ * select a different prefix for underscore
+ */
+$u = _.noConflict();
+
+
+/**
+ * small helper function to urldecode strings
+ *
+ * See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/decodeURIComponent#Decoding_query_parameters_from_a_URL
+ */
+jQuery.urldecode = function(x) {
+ if (!x) {
+ return x
+ }
+ return decodeURIComponent(x.replace(/\+/g, ' '));
+};
+
+/**
+ * small helper function to urlencode strings
+ */
+jQuery.urlencode = encodeURIComponent;
+
+/**
+ * This function returns the parsed url parameters of the
+ * current request. Multiple values per key are supported,
+ * it will always return arrays of strings for the value parts.
+ */
+jQuery.getQueryParameters = function(s) {
+ if (typeof s === 'undefined')
+ s = document.location.search;
+ var parts = s.substr(s.indexOf('?') + 1).split('&');
+ var result = {};
+ for (var i = 0; i < parts.length; i++) {
+ var tmp = parts[i].split('=', 2);
+ var key = jQuery.urldecode(tmp[0]);
+ var value = jQuery.urldecode(tmp[1]);
+ if (key in result)
+ result[key].push(value);
+ else
+ result[key] = [value];
+ }
+ return result;
+};
+
+/**
+ * highlight a given string on a jquery object by wrapping it in
+ * span elements with the given class name.
+ */
+jQuery.fn.highlightText = function(text, className) {
+ function highlight(node, addItems) {
+ if (node.nodeType === 3) {
+ var val = node.nodeValue;
+ var pos = val.toLowerCase().indexOf(text);
+ if (pos >= 0 &&
+ !jQuery(node.parentNode).hasClass(className) &&
+ !jQuery(node.parentNode).hasClass("nohighlight")) {
+ var span;
+ var isInSVG = jQuery(node).closest("body, svg, foreignObject").is("svg");
+ if (isInSVG) {
+ span = document.createElementNS("http://www.w3.org/2000/svg", "tspan");
+ } else {
+ span = document.createElement("span");
+ span.className = className;
+ }
+ span.appendChild(document.createTextNode(val.substr(pos, text.length)));
+ node.parentNode.insertBefore(span, node.parentNode.insertBefore(
+ document.createTextNode(val.substr(pos + text.length)),
+ node.nextSibling));
+ node.nodeValue = val.substr(0, pos);
+ if (isInSVG) {
+ var rect = document.createElementNS("http://www.w3.org/2000/svg", "rect");
+ var bbox = node.parentElement.getBBox();
+ rect.x.baseVal.value = bbox.x;
+ rect.y.baseVal.value = bbox.y;
+ rect.width.baseVal.value = bbox.width;
+ rect.height.baseVal.value = bbox.height;
+ rect.setAttribute('class', className);
+ addItems.push({
+ "parent": node.parentNode,
+ "target": rect});
+ }
+ }
+ }
+ else if (!jQuery(node).is("button, select, textarea")) {
+ jQuery.each(node.childNodes, function() {
+ highlight(this, addItems);
+ });
+ }
+ }
+ var addItems = [];
+ var result = this.each(function() {
+ highlight(this, addItems);
+ });
+ for (var i = 0; i < addItems.length; ++i) {
+ jQuery(addItems[i].parent).before(addItems[i].target);
+ }
+ return result;
+};
+
+/*
+ * backward compatibility for jQuery.browser
+ * This will be supported until firefox bug is fixed.
+ */
+if (!jQuery.browser) {
+ jQuery.uaMatch = function(ua) {
+ ua = ua.toLowerCase();
+
+ var match = /(chrome)[ \/]([\w.]+)/.exec(ua) ||
+ /(webkit)[ \/]([\w.]+)/.exec(ua) ||
+ /(opera)(?:.*version|)[ \/]([\w.]+)/.exec(ua) ||
+ /(msie) ([\w.]+)/.exec(ua) ||
+ ua.indexOf("compatible") < 0 && /(mozilla)(?:.*? rv:([\w.]+)|)/.exec(ua) ||
+ [];
+
+ return {
+ browser: match[ 1 ] || "",
+ version: match[ 2 ] || "0"
+ };
+ };
+ jQuery.browser = {};
+ jQuery.browser[jQuery.uaMatch(navigator.userAgent).browser] = true;
+}
diff --git a/_static/basic.css b/_static/basic.css
new file mode 100644
index 00000000..eeb0519a
--- /dev/null
+++ b/_static/basic.css
@@ -0,0 +1,899 @@
+/*
+ * basic.css
+ * ~~~~~~~~~
+ *
+ * Sphinx stylesheet -- basic theme.
+ *
+ * :copyright: Copyright 2007-2022 by the Sphinx team, see AUTHORS.
+ * :license: BSD, see LICENSE for details.
+ *
+ */
+
+/* -- main layout ----------------------------------------------------------- */
+
+div.clearer {
+ clear: both;
+}
+
+div.section::after {
+ display: block;
+ content: '';
+ clear: left;
+}
+
+/* -- relbar ---------------------------------------------------------------- */
+
+div.related {
+ width: 100%;
+ font-size: 90%;
+}
+
+div.related h3 {
+ display: none;
+}
+
+div.related ul {
+ margin: 0;
+ padding: 0 0 0 10px;
+ list-style: none;
+}
+
+div.related li {
+ display: inline;
+}
+
+div.related li.right {
+ float: right;
+ margin-right: 5px;
+}
+
+/* -- sidebar --------------------------------------------------------------- */
+
+div.sphinxsidebarwrapper {
+ padding: 10px 5px 0 10px;
+}
+
+div.sphinxsidebar {
+ float: left;
+ width: 230px;
+ margin-left: -100%;
+ font-size: 90%;
+ word-wrap: break-word;
+ overflow-wrap : break-word;
+}
+
+div.sphinxsidebar ul {
+ list-style: none;
+}
+
+div.sphinxsidebar ul ul,
+div.sphinxsidebar ul.want-points {
+ margin-left: 20px;
+ list-style: square;
+}
+
+div.sphinxsidebar ul ul {
+ margin-top: 0;
+ margin-bottom: 0;
+}
+
+div.sphinxsidebar form {
+ margin-top: 10px;
+}
+
+div.sphinxsidebar input {
+ border: 1px solid #98dbcc;
+ font-family: sans-serif;
+ font-size: 1em;
+}
+
+div.sphinxsidebar #searchbox form.search {
+ overflow: hidden;
+}
+
+div.sphinxsidebar #searchbox input[type="text"] {
+ float: left;
+ width: 80%;
+ padding: 0.25em;
+ box-sizing: border-box;
+}
+
+div.sphinxsidebar #searchbox input[type="submit"] {
+ float: left;
+ width: 20%;
+ border-left: none;
+ padding: 0.25em;
+ box-sizing: border-box;
+}
+
+
+img {
+ border: 0;
+ max-width: 100%;
+}
+
+/* -- search page ----------------------------------------------------------- */
+
+ul.search {
+ margin: 10px 0 0 20px;
+ padding: 0;
+}
+
+ul.search li {
+ padding: 5px 0 5px 20px;
+ background-image: url(file.png);
+ background-repeat: no-repeat;
+ background-position: 0 7px;
+}
+
+ul.search li a {
+ font-weight: bold;
+}
+
+ul.search li p.context {
+ color: #888;
+ margin: 2px 0 0 30px;
+ text-align: left;
+}
+
+ul.keywordmatches li.goodmatch a {
+ font-weight: bold;
+}
+
+/* -- index page ------------------------------------------------------------ */
+
+table.contentstable {
+ width: 90%;
+ margin-left: auto;
+ margin-right: auto;
+}
+
+table.contentstable p.biglink {
+ line-height: 150%;
+}
+
+a.biglink {
+ font-size: 1.3em;
+}
+
+span.linkdescr {
+ font-style: italic;
+ padding-top: 5px;
+ font-size: 90%;
+}
+
+/* -- general index --------------------------------------------------------- */
+
+table.indextable {
+ width: 100%;
+}
+
+table.indextable td {
+ text-align: left;
+ vertical-align: top;
+}
+
+table.indextable ul {
+ margin-top: 0;
+ margin-bottom: 0;
+ list-style-type: none;
+}
+
+table.indextable > tbody > tr > td > ul {
+ padding-left: 0em;
+}
+
+table.indextable tr.pcap {
+ height: 10px;
+}
+
+table.indextable tr.cap {
+ margin-top: 10px;
+ background-color: #f2f2f2;
+}
+
+img.toggler {
+ margin-right: 3px;
+ margin-top: 3px;
+ cursor: pointer;
+}
+
+div.modindex-jumpbox {
+ border-top: 1px solid #ddd;
+ border-bottom: 1px solid #ddd;
+ margin: 1em 0 1em 0;
+ padding: 0.4em;
+}
+
+div.genindex-jumpbox {
+ border-top: 1px solid #ddd;
+ border-bottom: 1px solid #ddd;
+ margin: 1em 0 1em 0;
+ padding: 0.4em;
+}
+
+/* -- domain module index --------------------------------------------------- */
+
+table.modindextable td {
+ padding: 2px;
+ border-collapse: collapse;
+}
+
+/* -- general body styles --------------------------------------------------- */
+
+div.body {
+ min-width: 360px;
+ max-width: 800px;
+}
+
+div.body p, div.body dd, div.body li, div.body blockquote {
+ -moz-hyphens: auto;
+ -ms-hyphens: auto;
+ -webkit-hyphens: auto;
+ hyphens: auto;
+}
+
+a.headerlink {
+ visibility: hidden;
+}
+a.brackets:before,
+span.brackets > a:before{
+ content: "[";
+}
+
+a.brackets:after,
+span.brackets > a:after {
+ content: "]";
+}
+
+
+h1:hover > a.headerlink,
+h2:hover > a.headerlink,
+h3:hover > a.headerlink,
+h4:hover > a.headerlink,
+h5:hover > a.headerlink,
+h6:hover > a.headerlink,
+dt:hover > a.headerlink,
+caption:hover > a.headerlink,
+p.caption:hover > a.headerlink,
+div.code-block-caption:hover > a.headerlink {
+ visibility: visible;
+}
+
+div.body p.caption {
+ text-align: inherit;
+}
+
+div.body td {
+ text-align: left;
+}
+
+.first {
+ margin-top: 0 !important;
+}
+
+p.rubric {
+ margin-top: 30px;
+ font-weight: bold;
+}
+
+img.align-left, figure.align-left, .figure.align-left, object.align-left {
+ clear: left;
+ float: left;
+ margin-right: 1em;
+}
+
+img.align-right, figure.align-right, .figure.align-right, object.align-right {
+ clear: right;
+ float: right;
+ margin-left: 1em;
+}
+
+img.align-center, figure.align-center, .figure.align-center, object.align-center {
+ display: block;
+ margin-left: auto;
+ margin-right: auto;
+}
+
+img.align-default, figure.align-default, .figure.align-default {
+ display: block;
+ margin-left: auto;
+ margin-right: auto;
+}
+
+.align-left {
+ text-align: left;
+}
+
+.align-center {
+ text-align: center;
+}
+
+.align-default {
+ text-align: center;
+}
+
+.align-right {
+ text-align: right;
+}
+
+/* -- sidebars -------------------------------------------------------------- */
+
+div.sidebar,
+aside.sidebar {
+ margin: 0 0 0.5em 1em;
+ border: 1px solid #ddb;
+ padding: 7px;
+ background-color: #ffe;
+ width: 40%;
+ float: right;
+ clear: right;
+ overflow-x: auto;
+}
+
+p.sidebar-title {
+ font-weight: bold;
+}
+div.admonition, div.topic, blockquote {
+ clear: left;
+}
+
+/* -- topics ---------------------------------------------------------------- */
+div.topic {
+ border: 1px solid #ccc;
+ padding: 7px;
+ margin: 10px 0 10px 0;
+}
+
+p.topic-title {
+ font-size: 1.1em;
+ font-weight: bold;
+ margin-top: 10px;
+}
+
+/* -- admonitions ----------------------------------------------------------- */
+
+div.admonition {
+ margin-top: 10px;
+ margin-bottom: 10px;
+ padding: 7px;
+}
+
+div.admonition dt {
+ font-weight: bold;
+}
+
+p.admonition-title {
+ margin: 0px 10px 5px 0px;
+ font-weight: bold;
+}
+
+div.body p.centered {
+ text-align: center;
+ margin-top: 25px;
+}
+
+/* -- content of sidebars/topics/admonitions -------------------------------- */
+
+div.sidebar > :last-child,
+aside.sidebar > :last-child,
+div.topic > :last-child,
+div.admonition > :last-child {
+ margin-bottom: 0;
+}
+
+div.sidebar::after,
+aside.sidebar::after,
+div.topic::after,
+div.admonition::after,
+blockquote::after {
+ display: block;
+ content: '';
+ clear: both;
+}
+
+/* -- tables ---------------------------------------------------------------- */
+
+table.docutils {
+ margin-top: 10px;
+ margin-bottom: 10px;
+ border: 0;
+ border-collapse: collapse;
+}
+
+table.align-center {
+ margin-left: auto;
+ margin-right: auto;
+}
+
+table.align-default {
+ margin-left: auto;
+ margin-right: auto;
+}
+
+table caption span.caption-number {
+ font-style: italic;
+}
+
+table caption span.caption-text {
+}
+
+table.docutils td, table.docutils th {
+ padding: 1px 8px 1px 5px;
+ border-top: 0;
+ border-left: 0;
+ border-right: 0;
+ border-bottom: 1px solid #aaa;
+}
+
+th {
+ text-align: left;
+ padding-right: 5px;
+}
+
+table.citation {
+ border-left: solid 1px gray;
+ margin-left: 1px;
+}
+
+table.citation td {
+ border-bottom: none;
+}
+
+th > :first-child,
+td > :first-child {
+ margin-top: 0px;
+}
+
+th > :last-child,
+td > :last-child {
+ margin-bottom: 0px;
+}
+
+/* -- figures --------------------------------------------------------------- */
+
+div.figure, figure {
+ margin: 0.5em;
+ padding: 0.5em;
+}
+
+div.figure p.caption, figcaption {
+ padding: 0.3em;
+}
+
+div.figure p.caption span.caption-number,
+figcaption span.caption-number {
+ font-style: italic;
+}
+
+div.figure p.caption span.caption-text,
+figcaption span.caption-text {
+}
+
+/* -- field list styles ----------------------------------------------------- */
+
+table.field-list td, table.field-list th {
+ border: 0 !important;
+}
+
+.field-list ul {
+ margin: 0;
+ padding-left: 1em;
+}
+
+.field-list p {
+ margin: 0;
+}
+
+.field-name {
+ -moz-hyphens: manual;
+ -ms-hyphens: manual;
+ -webkit-hyphens: manual;
+ hyphens: manual;
+}
+
+/* -- hlist styles ---------------------------------------------------------- */
+
+table.hlist {
+ margin: 1em 0;
+}
+
+table.hlist td {
+ vertical-align: top;
+}
+
+/* -- object description styles --------------------------------------------- */
+
+.sig {
+ font-family: 'Consolas', 'Menlo', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', monospace;
+}
+
+.sig-name, code.descname {
+ background-color: transparent;
+ font-weight: bold;
+}
+
+.sig-name {
+ font-size: 1.1em;
+}
+
+code.descname {
+ font-size: 1.2em;
+}
+
+.sig-prename, code.descclassname {
+ background-color: transparent;
+}
+
+.optional {
+ font-size: 1.3em;
+}
+
+.sig-paren {
+ font-size: larger;
+}
+
+.sig-param.n {
+ font-style: italic;
+}
+
+/* C++ specific styling */
+
+.sig-inline.c-texpr,
+.sig-inline.cpp-texpr {
+ font-family: unset;
+}
+
+.sig.c .k, .sig.c .kt,
+.sig.cpp .k, .sig.cpp .kt {
+ color: #0033B3;
+}
+
+.sig.c .m,
+.sig.cpp .m {
+ color: #1750EB;
+}
+
+.sig.c .s, .sig.c .sc,
+.sig.cpp .s, .sig.cpp .sc {
+ color: #067D17;
+}
+
+
+/* -- other body styles ----------------------------------------------------- */
+
+ol.arabic {
+ list-style: decimal;
+}
+
+ol.loweralpha {
+ list-style: lower-alpha;
+}
+
+ol.upperalpha {
+ list-style: upper-alpha;
+}
+
+ol.lowerroman {
+ list-style: lower-roman;
+}
+
+ol.upperroman {
+ list-style: upper-roman;
+}
+
+:not(li) > ol > li:first-child > :first-child,
+:not(li) > ul > li:first-child > :first-child {
+ margin-top: 0px;
+}
+
+:not(li) > ol > li:last-child > :last-child,
+:not(li) > ul > li:last-child > :last-child {
+ margin-bottom: 0px;
+}
+
+ol.simple ol p,
+ol.simple ul p,
+ul.simple ol p,
+ul.simple ul p {
+ margin-top: 0;
+}
+
+ol.simple > li:not(:first-child) > p,
+ul.simple > li:not(:first-child) > p {
+ margin-top: 0;
+}
+
+ol.simple p,
+ul.simple p {
+ margin-bottom: 0;
+}
+dl.footnote > dt,
+dl.citation > dt {
+ float: left;
+ margin-right: 0.5em;
+}
+
+dl.footnote > dd,
+dl.citation > dd {
+ margin-bottom: 0em;
+}
+
+dl.footnote > dd:after,
+dl.citation > dd:after {
+ content: "";
+ clear: both;
+}
+
+dl.field-list {
+ display: grid;
+ grid-template-columns: fit-content(30%) auto;
+}
+
+dl.field-list > dt {
+ font-weight: bold;
+ word-break: break-word;
+ padding-left: 0.5em;
+ padding-right: 5px;
+}
+dl.field-list > dt:after {
+ content: ":";
+}
+
+
+dl.field-list > dd {
+ padding-left: 0.5em;
+ margin-top: 0em;
+ margin-left: 0em;
+ margin-bottom: 0em;
+}
+
+dl {
+ margin-bottom: 15px;
+}
+
+dd > :first-child {
+ margin-top: 0px;
+}
+
+dd ul, dd table {
+ margin-bottom: 10px;
+}
+
+dd {
+ margin-top: 3px;
+ margin-bottom: 10px;
+ margin-left: 30px;
+}
+
+dl > dd:last-child,
+dl > dd:last-child > :last-child {
+ margin-bottom: 0;
+}
+
+dt:target, span.highlighted {
+ background-color: #fbe54e;
+}
+
+rect.highlighted {
+ fill: #fbe54e;
+}
+
+dl.glossary dt {
+ font-weight: bold;
+ font-size: 1.1em;
+}
+
+.versionmodified {
+ font-style: italic;
+}
+
+.system-message {
+ background-color: #fda;
+ padding: 5px;
+ border: 3px solid red;
+}
+
+.footnote:target {
+ background-color: #ffa;
+}
+
+.line-block {
+ display: block;
+ margin-top: 1em;
+ margin-bottom: 1em;
+}
+
+.line-block .line-block {
+ margin-top: 0;
+ margin-bottom: 0;
+ margin-left: 1.5em;
+}
+
+.guilabel, .menuselection {
+ font-family: sans-serif;
+}
+
+.accelerator {
+ text-decoration: underline;
+}
+
+.classifier {
+ font-style: oblique;
+}
+
+.classifier:before {
+ font-style: normal;
+ margin: 0 0.5em;
+ content: ":";
+ display: inline-block;
+}
+
+abbr, acronym {
+ border-bottom: dotted 1px;
+ cursor: help;
+}
+
+/* -- code displays --------------------------------------------------------- */
+
+pre {
+ overflow: auto;
+ overflow-y: hidden; /* fixes display issues on Chrome browsers */
+}
+
+pre, div[class*="highlight-"] {
+ clear: both;
+}
+
+span.pre {
+ -moz-hyphens: none;
+ -ms-hyphens: none;
+ -webkit-hyphens: none;
+ hyphens: none;
+ white-space: nowrap;
+}
+
+div[class*="highlight-"] {
+ margin: 1em 0;
+}
+
+td.linenos pre {
+ border: 0;
+ background-color: transparent;
+ color: #aaa;
+}
+
+table.highlighttable {
+ display: block;
+}
+
+table.highlighttable tbody {
+ display: block;
+}
+
+table.highlighttable tr {
+ display: flex;
+}
+
+table.highlighttable td {
+ margin: 0;
+ padding: 0;
+}
+
+table.highlighttable td.linenos {
+ padding-right: 0.5em;
+}
+
+table.highlighttable td.code {
+ flex: 1;
+ overflow: hidden;
+}
+
+.highlight .hll {
+ display: block;
+}
+
+div.highlight pre,
+table.highlighttable pre {
+ margin: 0;
+}
+
+div.code-block-caption + div {
+ margin-top: 0;
+}
+
+div.code-block-caption {
+ margin-top: 1em;
+ padding: 2px 5px;
+ font-size: small;
+}
+
+div.code-block-caption code {
+ background-color: transparent;
+}
+
+table.highlighttable td.linenos,
+span.linenos,
+div.highlight span.gp { /* gp: Generic.Prompt */
+ user-select: none;
+ -webkit-user-select: text; /* Safari fallback only */
+ -webkit-user-select: none; /* Chrome/Safari */
+ -moz-user-select: none; /* Firefox */
+ -ms-user-select: none; /* IE10+ */
+}
+
+div.code-block-caption span.caption-number {
+ padding: 0.1em 0.3em;
+ font-style: italic;
+}
+
+div.code-block-caption span.caption-text {
+}
+
+div.literal-block-wrapper {
+ margin: 1em 0;
+}
+
+code.xref, a code {
+ background-color: transparent;
+ font-weight: bold;
+}
+
+h1 code, h2 code, h3 code, h4 code, h5 code, h6 code {
+ background-color: transparent;
+}
+
+.viewcode-link {
+ float: right;
+}
+
+.viewcode-back {
+ float: right;
+ font-family: sans-serif;
+}
+
+div.viewcode-block:target {
+ margin: -1px -10px;
+ padding: 0 10px;
+}
+
+/* -- math display ---------------------------------------------------------- */
+
+img.math {
+ vertical-align: middle;
+}
+
+div.body div.math p {
+ text-align: center;
+}
+
+span.eqno {
+ float: right;
+}
+
+span.eqno a.headerlink {
+ position: absolute;
+ z-index: 1;
+}
+
+div.math:hover a.headerlink {
+ visibility: visible;
+}
+
+/* -- printout stylesheet --------------------------------------------------- */
+
+@media print {
+ div.document,
+ div.documentwrapper,
+ div.bodywrapper {
+ margin: 0 !important;
+ width: 100%;
+ }
+
+ div.sphinxsidebar,
+ div.related,
+ div.footer,
+ #top-link {
+ display: none;
+ }
+}
\ No newline at end of file
diff --git a/_static/css/badge_only.css b/_static/css/badge_only.css
new file mode 100644
index 00000000..e380325b
--- /dev/null
+++ b/_static/css/badge_only.css
@@ -0,0 +1 @@
+.fa:before{-webkit-font-smoothing:antialiased}.clearfix{*zoom:1}.clearfix:after,.clearfix:before{display:table;content:""}.clearfix:after{clear:both}@font-face{font-family:FontAwesome;font-style:normal;font-weight:400;src:url(fonts/fontawesome-webfont.eot?674f50d287a8c48dc19ba404d20fe713?#iefix) format("embedded-opentype"),url(fonts/fontawesome-webfont.woff2?af7ae505a9eed503f8b8e6982036873e) format("woff2"),url(fonts/fontawesome-webfont.woff?fee66e712a8a08eef5805a46892932ad) format("woff"),url(fonts/fontawesome-webfont.ttf?b06871f281fee6b241d60582ae9369b9) format("truetype"),url(fonts/fontawesome-webfont.svg?912ec66d7572ff821749319396470bde#FontAwesome) format("svg")}.fa:before{font-family:FontAwesome;font-style:normal;font-weight:400;line-height:1}.fa:before,a .fa{text-decoration:inherit}.fa:before,a .fa,li .fa{display:inline-block}li .fa-large:before{width:1.875em}ul.fas{list-style-type:none;margin-left:2em;text-indent:-.8em}ul.fas li .fa{width:.8em}ul.fas li .fa-large:before{vertical-align:baseline}.fa-book:before,.icon-book:before{content:"\f02d"}.fa-caret-down:before,.icon-caret-down:before{content:"\f0d7"}.fa-caret-up:before,.icon-caret-up:before{content:"\f0d8"}.fa-caret-left:before,.icon-caret-left:before{content:"\f0d9"}.fa-caret-right:before,.icon-caret-right:before{content:"\f0da"}.rst-versions{position:fixed;bottom:0;left:0;width:300px;color:#fcfcfc;background:#1f1d1d;font-family:Lato,proxima-nova,Helvetica Neue,Arial,sans-serif;z-index:400}.rst-versions a{color:#2980b9;text-decoration:none}.rst-versions .rst-badge-small{display:none}.rst-versions .rst-current-version{padding:12px;background-color:#272525;display:block;text-align:right;font-size:90%;cursor:pointer;color:#27ae60}.rst-versions .rst-current-version:after{clear:both;content:"";display:block}.rst-versions .rst-current-version .fa{color:#fcfcfc}.rst-versions .rst-current-version .fa-book,.rst-versions .rst-current-version .icon-book{float:left}.rst-versions .rst-current-version.rst-out-of-date{background-color:#e74c3c;color:#fff}.rst-versions .rst-current-version.rst-active-old-version{background-color:#f1c40f;color:#000}.rst-versions.shift-up{height:auto;max-height:100%;overflow-y:scroll}.rst-versions.shift-up .rst-other-versions{display:block}.rst-versions .rst-other-versions{font-size:90%;padding:12px;color:grey;display:none}.rst-versions .rst-other-versions hr{display:block;height:1px;border:0;margin:20px 0;padding:0;border-top:1px solid #413d3d}.rst-versions .rst-other-versions dd{display:inline-block;margin:0}.rst-versions .rst-other-versions dd a{display:inline-block;padding:6px;color:#fcfcfc}.rst-versions.rst-badge{width:auto;bottom:20px;right:20px;left:auto;border:none;max-width:300px;max-height:90%}.rst-versions.rst-badge .fa-book,.rst-versions.rst-badge .icon-book{float:none;line-height:30px}.rst-versions.rst-badge.shift-up .rst-current-version{text-align:right}.rst-versions.rst-badge.shift-up .rst-current-version .fa-book,.rst-versions.rst-badge.shift-up .rst-current-version .icon-book{float:left}.rst-versions.rst-badge>.rst-current-version{width:auto;height:30px;line-height:30px;padding:0 6px;display:block;text-align:center}@media screen and (max-width:768px){.rst-versions{width:85%;display:none}.rst-versions.shift{display:block}}
\ No newline at end of file
diff --git a/_static/css/fonts/Roboto-Slab-Bold.woff b/_static/css/fonts/Roboto-Slab-Bold.woff
new file mode 100644
index 00000000..6cb60000
Binary files /dev/null and b/_static/css/fonts/Roboto-Slab-Bold.woff differ
diff --git a/_static/css/fonts/Roboto-Slab-Bold.woff2 b/_static/css/fonts/Roboto-Slab-Bold.woff2
new file mode 100644
index 00000000..7059e231
Binary files /dev/null and b/_static/css/fonts/Roboto-Slab-Bold.woff2 differ
diff --git a/_static/css/fonts/Roboto-Slab-Regular.woff b/_static/css/fonts/Roboto-Slab-Regular.woff
new file mode 100644
index 00000000..f815f63f
Binary files /dev/null and b/_static/css/fonts/Roboto-Slab-Regular.woff differ
diff --git a/_static/css/fonts/Roboto-Slab-Regular.woff2 b/_static/css/fonts/Roboto-Slab-Regular.woff2
new file mode 100644
index 00000000..f2c76e5b
Binary files /dev/null and b/_static/css/fonts/Roboto-Slab-Regular.woff2 differ
diff --git a/_static/css/fonts/fontawesome-webfont.eot b/_static/css/fonts/fontawesome-webfont.eot
new file mode 100644
index 00000000..e9f60ca9
Binary files /dev/null and b/_static/css/fonts/fontawesome-webfont.eot differ
diff --git a/_static/css/fonts/fontawesome-webfont.svg b/_static/css/fonts/fontawesome-webfont.svg
new file mode 100644
index 00000000..855c845e
--- /dev/null
+++ b/_static/css/fonts/fontawesome-webfont.svg
@@ -0,0 +1,2671 @@
+
+
+
diff --git a/_static/css/fonts/fontawesome-webfont.ttf b/_static/css/fonts/fontawesome-webfont.ttf
new file mode 100644
index 00000000..35acda2f
Binary files /dev/null and b/_static/css/fonts/fontawesome-webfont.ttf differ
diff --git a/_static/css/fonts/fontawesome-webfont.woff b/_static/css/fonts/fontawesome-webfont.woff
new file mode 100644
index 00000000..400014a4
Binary files /dev/null and b/_static/css/fonts/fontawesome-webfont.woff differ
diff --git a/_static/css/fonts/fontawesome-webfont.woff2 b/_static/css/fonts/fontawesome-webfont.woff2
new file mode 100644
index 00000000..4d13fc60
Binary files /dev/null and b/_static/css/fonts/fontawesome-webfont.woff2 differ
diff --git a/_static/css/fonts/lato-bold-italic.woff b/_static/css/fonts/lato-bold-italic.woff
new file mode 100644
index 00000000..88ad05b9
Binary files /dev/null and b/_static/css/fonts/lato-bold-italic.woff differ
diff --git a/_static/css/fonts/lato-bold-italic.woff2 b/_static/css/fonts/lato-bold-italic.woff2
new file mode 100644
index 00000000..c4e3d804
Binary files /dev/null and b/_static/css/fonts/lato-bold-italic.woff2 differ
diff --git a/_static/css/fonts/lato-bold.woff b/_static/css/fonts/lato-bold.woff
new file mode 100644
index 00000000..c6dff51f
Binary files /dev/null and b/_static/css/fonts/lato-bold.woff differ
diff --git a/_static/css/fonts/lato-bold.woff2 b/_static/css/fonts/lato-bold.woff2
new file mode 100644
index 00000000..bb195043
Binary files /dev/null and b/_static/css/fonts/lato-bold.woff2 differ
diff --git a/_static/css/fonts/lato-normal-italic.woff b/_static/css/fonts/lato-normal-italic.woff
new file mode 100644
index 00000000..76114bc0
Binary files /dev/null and b/_static/css/fonts/lato-normal-italic.woff differ
diff --git a/_static/css/fonts/lato-normal-italic.woff2 b/_static/css/fonts/lato-normal-italic.woff2
new file mode 100644
index 00000000..3404f37e
Binary files /dev/null and b/_static/css/fonts/lato-normal-italic.woff2 differ
diff --git a/_static/css/fonts/lato-normal.woff b/_static/css/fonts/lato-normal.woff
new file mode 100644
index 00000000..ae1307ff
Binary files /dev/null and b/_static/css/fonts/lato-normal.woff differ
diff --git a/_static/css/fonts/lato-normal.woff2 b/_static/css/fonts/lato-normal.woff2
new file mode 100644
index 00000000..3bf98433
Binary files /dev/null and b/_static/css/fonts/lato-normal.woff2 differ
diff --git a/_static/css/theme.css b/_static/css/theme.css
new file mode 100644
index 00000000..8cd4f101
--- /dev/null
+++ b/_static/css/theme.css
@@ -0,0 +1,4 @@
+html{box-sizing:border-box}*,:after,:before{box-sizing:inherit}article,aside,details,figcaption,figure,footer,header,hgroup,nav,section{display:block}audio,canvas,video{display:inline-block;*display:inline;*zoom:1}[hidden],audio:not([controls]){display:none}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:100%;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}body{margin:0}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:700}blockquote{margin:0}dfn{font-style:italic}ins{background:#ff9;text-decoration:none}ins,mark{color:#000}mark{background:#ff0;font-style:italic;font-weight:700}.rst-content code,.rst-content tt,code,kbd,pre,samp{font-family:monospace,serif;_font-family:courier new,monospace;font-size:1em}pre{white-space:pre}q{quotes:none}q:after,q:before{content:"";content:none}small{font-size:85%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}dl,ol,ul{margin:0;padding:0;list-style:none;list-style-image:none}li{list-style:none}dd{margin:0}img{border:0;-ms-interpolation-mode:bicubic;vertical-align:middle;max-width:100%}svg:not(:root){overflow:hidden}figure,form{margin:0}label{cursor:pointer}button,input,select,textarea{font-size:100%;margin:0;vertical-align:baseline;*vertical-align:middle}button,input{line-height:normal}button,input[type=button],input[type=reset],input[type=submit]{cursor:pointer;-webkit-appearance:button;*overflow:visible}button[disabled],input[disabled]{cursor:default}input[type=search]{-webkit-appearance:textfield;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box}textarea{resize:vertical}table{border-collapse:collapse;border-spacing:0}td{vertical-align:top}.chromeframe{margin:.2em 0;background:#ccc;color:#000;padding:.2em 0}.ir{display:block;border:0;text-indent:-999em;overflow:hidden;background-color:transparent;background-repeat:no-repeat;text-align:left;direction:ltr;*line-height:0}.ir br{display:none}.hidden{display:none!important;visibility:hidden}.visuallyhidden{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.visuallyhidden.focusable:active,.visuallyhidden.focusable:focus{clip:auto;height:auto;margin:0;overflow:visible;position:static;width:auto}.invisible{visibility:hidden}.relative{position:relative}big,small{font-size:100%}@media print{body,html,section{background:none!important}*{box-shadow:none!important;text-shadow:none!important;filter:none!important;-ms-filter:none!important}a,a:visited{text-decoration:underline}.ir a:after,a[href^="#"]:after,a[href^="javascript:"]:after{content:""}blockquote,pre{page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}img{max-width:100%!important}@page{margin:.5cm}.rst-content .toctree-wrapper>p.caption,h2,h3,p{orphans:3;widows:3}.rst-content .toctree-wrapper>p.caption,h2,h3{page-break-after:avoid}}.btn,.fa:before,.icon:before,.rst-content .admonition,.rst-content .admonition-title:before,.rst-content .admonition-todo,.rst-content .attention,.rst-content .caution,.rst-content .code-block-caption .headerlink:before,.rst-content .danger,.rst-content .error,.rst-content .hint,.rst-content .important,.rst-content .note,.rst-content .seealso,.rst-content .tip,.rst-content .warning,.rst-content code.download span:first-child:before,.rst-content dl dt .headerlink:before,.rst-content h1 .headerlink:before,.rst-content h2 .headerlink:before,.rst-content h3 .headerlink:before,.rst-content h4 .headerlink:before,.rst-content h5 .headerlink:before,.rst-content h6 .headerlink:before,.rst-content p.caption .headerlink:before,.rst-content table>caption .headerlink:before,.rst-content tt.download span:first-child:before,.wy-alert,.wy-dropdown .caret:before,.wy-inline-validate.wy-inline-validate-danger .wy-input-context:before,.wy-inline-validate.wy-inline-validate-info .wy-input-context:before,.wy-inline-validate.wy-inline-validate-success .wy-input-context:before,.wy-inline-validate.wy-inline-validate-warning .wy-input-context:before,.wy-menu-vertical li.current>a,.wy-menu-vertical li.current>a span.toctree-expand:before,.wy-menu-vertical li.on a,.wy-menu-vertical li.on a span.toctree-expand:before,.wy-menu-vertical li span.toctree-expand:before,.wy-nav-top a,.wy-side-nav-search .wy-dropdown>a,.wy-side-nav-search>a,input[type=color],input[type=date],input[type=datetime-local],input[type=datetime],input[type=email],input[type=month],input[type=number],input[type=password],input[type=search],input[type=tel],input[type=text],input[type=time],input[type=url],input[type=week],select,textarea{-webkit-font-smoothing:antialiased}.clearfix{*zoom:1}.clearfix:after,.clearfix:before{display:table;content:""}.clearfix:after{clear:both}/*!
+ * Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome
+ * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)
+ */@font-face{font-family:FontAwesome;src:url(fonts/fontawesome-webfont.eot?674f50d287a8c48dc19ba404d20fe713);src:url(fonts/fontawesome-webfont.eot?674f50d287a8c48dc19ba404d20fe713?#iefix&v=4.7.0) format("embedded-opentype"),url(fonts/fontawesome-webfont.woff2?af7ae505a9eed503f8b8e6982036873e) format("woff2"),url(fonts/fontawesome-webfont.woff?fee66e712a8a08eef5805a46892932ad) format("woff"),url(fonts/fontawesome-webfont.ttf?b06871f281fee6b241d60582ae9369b9) format("truetype"),url(fonts/fontawesome-webfont.svg?912ec66d7572ff821749319396470bde#fontawesomeregular) format("svg");font-weight:400;font-style:normal}.fa,.icon,.rst-content .admonition-title,.rst-content .code-block-caption .headerlink,.rst-content code.download span:first-child,.rst-content dl dt .headerlink,.rst-content h1 .headerlink,.rst-content h2 .headerlink,.rst-content h3 .headerlink,.rst-content h4 .headerlink,.rst-content h5 .headerlink,.rst-content h6 .headerlink,.rst-content p.caption .headerlink,.rst-content table>caption .headerlink,.rst-content tt.download span:first-child,.wy-menu-vertical li.current>a span.toctree-expand,.wy-menu-vertical li.on a span.toctree-expand,.wy-menu-vertical li span.toctree-expand{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fa-lg{font-size:1.33333em;line-height:.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-fw{width:1.28571em;text-align:center}.fa-ul{padding-left:0;margin-left:2.14286em;list-style-type:none}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.14286em;width:2.14286em;top:.14286em;text-align:center}.fa-li.fa-lg{left:-1.85714em}.fa-border{padding:.2em .25em .15em;border:.08em solid #eee;border-radius:.1em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa-pull-left.icon,.fa.fa-pull-left,.rst-content .code-block-caption .fa-pull-left.headerlink,.rst-content .fa-pull-left.admonition-title,.rst-content code.download span.fa-pull-left:first-child,.rst-content dl dt .fa-pull-left.headerlink,.rst-content h1 .fa-pull-left.headerlink,.rst-content h2 .fa-pull-left.headerlink,.rst-content h3 .fa-pull-left.headerlink,.rst-content h4 .fa-pull-left.headerlink,.rst-content h5 .fa-pull-left.headerlink,.rst-content h6 .fa-pull-left.headerlink,.rst-content p.caption .fa-pull-left.headerlink,.rst-content table>caption .fa-pull-left.headerlink,.rst-content tt.download span.fa-pull-left:first-child,.wy-menu-vertical li.current>a span.fa-pull-left.toctree-expand,.wy-menu-vertical li.on a span.fa-pull-left.toctree-expand,.wy-menu-vertical li span.fa-pull-left.toctree-expand{margin-right:.3em}.fa-pull-right.icon,.fa.fa-pull-right,.rst-content .code-block-caption .fa-pull-right.headerlink,.rst-content .fa-pull-right.admonition-title,.rst-content code.download span.fa-pull-right:first-child,.rst-content dl dt .fa-pull-right.headerlink,.rst-content h1 .fa-pull-right.headerlink,.rst-content h2 .fa-pull-right.headerlink,.rst-content h3 .fa-pull-right.headerlink,.rst-content h4 .fa-pull-right.headerlink,.rst-content h5 .fa-pull-right.headerlink,.rst-content h6 .fa-pull-right.headerlink,.rst-content p.caption .fa-pull-right.headerlink,.rst-content table>caption .fa-pull-right.headerlink,.rst-content tt.download span.fa-pull-right:first-child,.wy-menu-vertical li.current>a span.fa-pull-right.toctree-expand,.wy-menu-vertical li.on a span.fa-pull-right.toctree-expand,.wy-menu-vertical li span.fa-pull-right.toctree-expand{margin-left:.3em}.pull-right{float:right}.pull-left{float:left}.fa.pull-left,.pull-left.icon,.rst-content .code-block-caption .pull-left.headerlink,.rst-content .pull-left.admonition-title,.rst-content code.download span.pull-left:first-child,.rst-content dl dt .pull-left.headerlink,.rst-content h1 .pull-left.headerlink,.rst-content h2 .pull-left.headerlink,.rst-content h3 .pull-left.headerlink,.rst-content h4 .pull-left.headerlink,.rst-content h5 .pull-left.headerlink,.rst-content h6 .pull-left.headerlink,.rst-content p.caption .pull-left.headerlink,.rst-content table>caption .pull-left.headerlink,.rst-content tt.download span.pull-left:first-child,.wy-menu-vertical li.current>a span.pull-left.toctree-expand,.wy-menu-vertical li.on a span.pull-left.toctree-expand,.wy-menu-vertical li span.pull-left.toctree-expand{margin-right:.3em}.fa.pull-right,.pull-right.icon,.rst-content .code-block-caption .pull-right.headerlink,.rst-content .pull-right.admonition-title,.rst-content code.download span.pull-right:first-child,.rst-content dl dt .pull-right.headerlink,.rst-content h1 .pull-right.headerlink,.rst-content h2 .pull-right.headerlink,.rst-content h3 .pull-right.headerlink,.rst-content h4 .pull-right.headerlink,.rst-content h5 .pull-right.headerlink,.rst-content h6 .pull-right.headerlink,.rst-content p.caption .pull-right.headerlink,.rst-content table>caption .pull-right.headerlink,.rst-content tt.download span.pull-right:first-child,.wy-menu-vertical li.current>a span.pull-right.toctree-expand,.wy-menu-vertical li.on a span.pull-right.toctree-expand,.wy-menu-vertical li span.pull-right.toctree-expand{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s linear infinite;animation:fa-spin 2s linear infinite}.fa-pulse{-webkit-animation:fa-spin 1s steps(8) infinite;animation:fa-spin 1s steps(8) infinite}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.fa-rotate-90{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";-webkit-transform:scaleX(-1);-ms-transform:scaleX(-1);transform:scaleX(-1)}.fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";-webkit-transform:scaleY(-1);-ms-transform:scaleY(-1);transform:scaleY(-1)}:root .fa-flip-horizontal,:root .fa-flip-vertical,:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270{filter:none}.fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-glass:before{content:""}.fa-music:before{content:""}.fa-search:before,.icon-search:before{content:""}.fa-envelope-o:before{content:""}.fa-heart:before{content:""}.fa-star:before{content:""}.fa-star-o:before{content:""}.fa-user:before{content:""}.fa-film:before{content:""}.fa-th-large:before{content:""}.fa-th:before{content:""}.fa-th-list:before{content:""}.fa-check:before{content:""}.fa-close:before,.fa-remove:before,.fa-times:before{content:""}.fa-search-plus:before{content:""}.fa-search-minus:before{content:""}.fa-power-off:before{content:""}.fa-signal:before{content:""}.fa-cog:before,.fa-gear:before{content:""}.fa-trash-o:before{content:""}.fa-home:before,.icon-home:before{content:""}.fa-file-o:before{content:""}.fa-clock-o:before{content:""}.fa-road:before{content:""}.fa-download:before,.rst-content code.download span:first-child:before,.rst-content tt.download span:first-child:before{content:""}.fa-arrow-circle-o-down:before{content:""}.fa-arrow-circle-o-up:before{content:""}.fa-inbox:before{content:""}.fa-play-circle-o:before{content:""}.fa-repeat:before,.fa-rotate-right:before{content:""}.fa-refresh:before{content:""}.fa-list-alt:before{content:""}.fa-lock:before{content:""}.fa-flag:before{content:""}.fa-headphones:before{content:""}.fa-volume-off:before{content:""}.fa-volume-down:before{content:""}.fa-volume-up:before{content:""}.fa-qrcode:before{content:""}.fa-barcode:before{content:""}.fa-tag:before{content:""}.fa-tags:before{content:""}.fa-book:before,.icon-book:before{content:""}.fa-bookmark:before{content:""}.fa-print:before{content:""}.fa-camera:before{content:""}.fa-font:before{content:""}.fa-bold:before{content:""}.fa-italic:before{content:""}.fa-text-height:before{content:""}.fa-text-width:before{content:""}.fa-align-left:before{content:""}.fa-align-center:before{content:""}.fa-align-right:before{content:""}.fa-align-justify:before{content:""}.fa-list:before{content:""}.fa-dedent:before,.fa-outdent:before{content:""}.fa-indent:before{content:""}.fa-video-camera:before{content:""}.fa-image:before,.fa-photo:before,.fa-picture-o:before{content:""}.fa-pencil:before{content:""}.fa-map-marker:before{content:""}.fa-adjust:before{content:""}.fa-tint:before{content:""}.fa-edit:before,.fa-pencil-square-o:before{content:""}.fa-share-square-o:before{content:""}.fa-check-square-o:before{content:""}.fa-arrows:before{content:""}.fa-step-backward:before{content:""}.fa-fast-backward:before{content:""}.fa-backward:before{content:""}.fa-play:before{content:""}.fa-pause:before{content:""}.fa-stop:before{content:""}.fa-forward:before{content:""}.fa-fast-forward:before{content:""}.fa-step-forward:before{content:""}.fa-eject:before{content:""}.fa-chevron-left:before{content:""}.fa-chevron-right:before{content:""}.fa-plus-circle:before{content:""}.fa-minus-circle:before{content:""}.fa-times-circle:before,.wy-inline-validate.wy-inline-validate-danger .wy-input-context:before{content:""}.fa-check-circle:before,.wy-inline-validate.wy-inline-validate-success .wy-input-context:before{content:""}.fa-question-circle:before{content:""}.fa-info-circle:before{content:""}.fa-crosshairs:before{content:""}.fa-times-circle-o:before{content:""}.fa-check-circle-o:before{content:""}.fa-ban:before{content:""}.fa-arrow-left:before{content:""}.fa-arrow-right:before{content:""}.fa-arrow-up:before{content:""}.fa-arrow-down:before{content:""}.fa-mail-forward:before,.fa-share:before{content:""}.fa-expand:before{content:""}.fa-compress:before{content:""}.fa-plus:before{content:""}.fa-minus:before{content:""}.fa-asterisk:before{content:""}.fa-exclamation-circle:before,.rst-content .admonition-title:before,.wy-inline-validate.wy-inline-validate-info .wy-input-context:before,.wy-inline-validate.wy-inline-validate-warning .wy-input-context:before{content:""}.fa-gift:before{content:""}.fa-leaf:before{content:""}.fa-fire:before,.icon-fire:before{content:""}.fa-eye:before{content:""}.fa-eye-slash:before{content:""}.fa-exclamation-triangle:before,.fa-warning:before{content:""}.fa-plane:before{content:""}.fa-calendar:before{content:""}.fa-random:before{content:""}.fa-comment:before{content:""}.fa-magnet:before{content:""}.fa-chevron-up:before{content:""}.fa-chevron-down:before{content:""}.fa-retweet:before{content:""}.fa-shopping-cart:before{content:""}.fa-folder:before{content:""}.fa-folder-open:before{content:""}.fa-arrows-v:before{content:""}.fa-arrows-h:before{content:""}.fa-bar-chart-o:before,.fa-bar-chart:before{content:""}.fa-twitter-square:before{content:""}.fa-facebook-square:before{content:""}.fa-camera-retro:before{content:""}.fa-key:before{content:""}.fa-cogs:before,.fa-gears:before{content:""}.fa-comments:before{content:""}.fa-thumbs-o-up:before{content:""}.fa-thumbs-o-down:before{content:""}.fa-star-half:before{content:""}.fa-heart-o:before{content:""}.fa-sign-out:before{content:""}.fa-linkedin-square:before{content:""}.fa-thumb-tack:before{content:""}.fa-external-link:before{content:""}.fa-sign-in:before{content:""}.fa-trophy:before{content:""}.fa-github-square:before{content:""}.fa-upload:before{content:""}.fa-lemon-o:before{content:""}.fa-phone:before{content:""}.fa-square-o:before{content:""}.fa-bookmark-o:before{content:""}.fa-phone-square:before{content:""}.fa-twitter:before{content:""}.fa-facebook-f:before,.fa-facebook:before{content:""}.fa-github:before,.icon-github:before{content:""}.fa-unlock:before{content:""}.fa-credit-card:before{content:""}.fa-feed:before,.fa-rss:before{content:""}.fa-hdd-o:before{content:""}.fa-bullhorn:before{content:""}.fa-bell:before{content:""}.fa-certificate:before{content:""}.fa-hand-o-right:before{content:""}.fa-hand-o-left:before{content:""}.fa-hand-o-up:before{content:""}.fa-hand-o-down:before{content:""}.fa-arrow-circle-left:before,.icon-circle-arrow-left:before{content:""}.fa-arrow-circle-right:before,.icon-circle-arrow-right:before{content:""}.fa-arrow-circle-up:before{content:""}.fa-arrow-circle-down:before{content:""}.fa-globe:before{content:""}.fa-wrench:before{content:""}.fa-tasks:before{content:""}.fa-filter:before{content:""}.fa-briefcase:before{content:""}.fa-arrows-alt:before{content:""}.fa-group:before,.fa-users:before{content:""}.fa-chain:before,.fa-link:before,.icon-link:before{content:""}.fa-cloud:before{content:""}.fa-flask:before{content:""}.fa-cut:before,.fa-scissors:before{content:""}.fa-copy:before,.fa-files-o:before{content:""}.fa-paperclip:before{content:""}.fa-floppy-o:before,.fa-save:before{content:""}.fa-square:before{content:""}.fa-bars:before,.fa-navicon:before,.fa-reorder:before{content:""}.fa-list-ul:before{content:""}.fa-list-ol:before{content:""}.fa-strikethrough:before{content:""}.fa-underline:before{content:""}.fa-table:before{content:""}.fa-magic:before{content:""}.fa-truck:before{content:""}.fa-pinterest:before{content:""}.fa-pinterest-square:before{content:""}.fa-google-plus-square:before{content:""}.fa-google-plus:before{content:""}.fa-money:before{content:""}.fa-caret-down:before,.icon-caret-down:before,.wy-dropdown .caret:before{content:""}.fa-caret-up:before{content:""}.fa-caret-left:before{content:""}.fa-caret-right:before{content:""}.fa-columns:before{content:""}.fa-sort:before,.fa-unsorted:before{content:""}.fa-sort-desc:before,.fa-sort-down:before{content:""}.fa-sort-asc:before,.fa-sort-up:before{content:""}.fa-envelope:before{content:""}.fa-linkedin:before{content:""}.fa-rotate-left:before,.fa-undo:before{content:""}.fa-gavel:before,.fa-legal:before{content:""}.fa-dashboard:before,.fa-tachometer:before{content:""}.fa-comment-o:before{content:""}.fa-comments-o:before{content:""}.fa-bolt:before,.fa-flash:before{content:""}.fa-sitemap:before{content:""}.fa-umbrella:before{content:""}.fa-clipboard:before,.fa-paste:before{content:""}.fa-lightbulb-o:before{content:""}.fa-exchange:before{content:""}.fa-cloud-download:before{content:""}.fa-cloud-upload:before{content:""}.fa-user-md:before{content:""}.fa-stethoscope:before{content:""}.fa-suitcase:before{content:""}.fa-bell-o:before{content:""}.fa-coffee:before{content:""}.fa-cutlery:before{content:""}.fa-file-text-o:before{content:""}.fa-building-o:before{content:""}.fa-hospital-o:before{content:""}.fa-ambulance:before{content:""}.fa-medkit:before{content:""}.fa-fighter-jet:before{content:""}.fa-beer:before{content:""}.fa-h-square:before{content:""}.fa-plus-square:before{content:""}.fa-angle-double-left:before{content:""}.fa-angle-double-right:before{content:""}.fa-angle-double-up:before{content:""}.fa-angle-double-down:before{content:""}.fa-angle-left:before{content:""}.fa-angle-right:before{content:""}.fa-angle-up:before{content:""}.fa-angle-down:before{content:""}.fa-desktop:before{content:""}.fa-laptop:before{content:""}.fa-tablet:before{content:""}.fa-mobile-phone:before,.fa-mobile:before{content:""}.fa-circle-o:before{content:""}.fa-quote-left:before{content:""}.fa-quote-right:before{content:""}.fa-spinner:before{content:""}.fa-circle:before{content:""}.fa-mail-reply:before,.fa-reply:before{content:""}.fa-github-alt:before{content:""}.fa-folder-o:before{content:""}.fa-folder-open-o:before{content:""}.fa-smile-o:before{content:""}.fa-frown-o:before{content:""}.fa-meh-o:before{content:""}.fa-gamepad:before{content:""}.fa-keyboard-o:before{content:""}.fa-flag-o:before{content:""}.fa-flag-checkered:before{content:""}.fa-terminal:before{content:""}.fa-code:before{content:""}.fa-mail-reply-all:before,.fa-reply-all:before{content:""}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:""}.fa-location-arrow:before{content:""}.fa-crop:before{content:""}.fa-code-fork:before{content:""}.fa-chain-broken:before,.fa-unlink:before{content:""}.fa-question:before{content:""}.fa-info:before{content:""}.fa-exclamation:before{content:""}.fa-superscript:before{content:""}.fa-subscript:before{content:""}.fa-eraser:before{content:""}.fa-puzzle-piece:before{content:""}.fa-microphone:before{content:""}.fa-microphone-slash:before{content:""}.fa-shield:before{content:""}.fa-calendar-o:before{content:""}.fa-fire-extinguisher:before{content:""}.fa-rocket:before{content:""}.fa-maxcdn:before{content:""}.fa-chevron-circle-left:before{content:""}.fa-chevron-circle-right:before{content:""}.fa-chevron-circle-up:before{content:""}.fa-chevron-circle-down:before{content:""}.fa-html5:before{content:""}.fa-css3:before{content:""}.fa-anchor:before{content:""}.fa-unlock-alt:before{content:""}.fa-bullseye:before{content:""}.fa-ellipsis-h:before{content:""}.fa-ellipsis-v:before{content:""}.fa-rss-square:before{content:""}.fa-play-circle:before{content:""}.fa-ticket:before{content:""}.fa-minus-square:before{content:""}.fa-minus-square-o:before,.wy-menu-vertical li.current>a span.toctree-expand:before,.wy-menu-vertical li.on a span.toctree-expand:before{content:""}.fa-level-up:before{content:""}.fa-level-down:before{content:""}.fa-check-square:before{content:""}.fa-pencil-square:before{content:""}.fa-external-link-square:before{content:""}.fa-share-square:before{content:""}.fa-compass:before{content:""}.fa-caret-square-o-down:before,.fa-toggle-down:before{content:""}.fa-caret-square-o-up:before,.fa-toggle-up:before{content:""}.fa-caret-square-o-right:before,.fa-toggle-right:before{content:""}.fa-eur:before,.fa-euro:before{content:""}.fa-gbp:before{content:""}.fa-dollar:before,.fa-usd:before{content:""}.fa-inr:before,.fa-rupee:before{content:""}.fa-cny:before,.fa-jpy:before,.fa-rmb:before,.fa-yen:before{content:""}.fa-rouble:before,.fa-rub:before,.fa-ruble:before{content:""}.fa-krw:before,.fa-won:before{content:""}.fa-bitcoin:before,.fa-btc:before{content:""}.fa-file:before{content:""}.fa-file-text:before{content:""}.fa-sort-alpha-asc:before{content:""}.fa-sort-alpha-desc:before{content:""}.fa-sort-amount-asc:before{content:""}.fa-sort-amount-desc:before{content:""}.fa-sort-numeric-asc:before{content:""}.fa-sort-numeric-desc:before{content:""}.fa-thumbs-up:before{content:""}.fa-thumbs-down:before{content:""}.fa-youtube-square:before{content:""}.fa-youtube:before{content:""}.fa-xing:before{content:""}.fa-xing-square:before{content:""}.fa-youtube-play:before{content:""}.fa-dropbox:before{content:""}.fa-stack-overflow:before{content:""}.fa-instagram:before{content:""}.fa-flickr:before{content:""}.fa-adn:before{content:""}.fa-bitbucket:before,.icon-bitbucket:before{content:""}.fa-bitbucket-square:before{content:""}.fa-tumblr:before{content:""}.fa-tumblr-square:before{content:""}.fa-long-arrow-down:before{content:""}.fa-long-arrow-up:before{content:""}.fa-long-arrow-left:before{content:""}.fa-long-arrow-right:before{content:""}.fa-apple:before{content:""}.fa-windows:before{content:""}.fa-android:before{content:""}.fa-linux:before{content:""}.fa-dribbble:before{content:""}.fa-skype:before{content:""}.fa-foursquare:before{content:""}.fa-trello:before{content:""}.fa-female:before{content:""}.fa-male:before{content:""}.fa-gittip:before,.fa-gratipay:before{content:""}.fa-sun-o:before{content:""}.fa-moon-o:before{content:""}.fa-archive:before{content:""}.fa-bug:before{content:""}.fa-vk:before{content:""}.fa-weibo:before{content:""}.fa-renren:before{content:""}.fa-pagelines:before{content:""}.fa-stack-exchange:before{content:""}.fa-arrow-circle-o-right:before{content:""}.fa-arrow-circle-o-left:before{content:""}.fa-caret-square-o-left:before,.fa-toggle-left:before{content:""}.fa-dot-circle-o:before{content:""}.fa-wheelchair:before{content:""}.fa-vimeo-square:before{content:""}.fa-try:before,.fa-turkish-lira:before{content:""}.fa-plus-square-o:before,.wy-menu-vertical li span.toctree-expand:before{content:""}.fa-space-shuttle:before{content:""}.fa-slack:before{content:""}.fa-envelope-square:before{content:""}.fa-wordpress:before{content:""}.fa-openid:before{content:""}.fa-bank:before,.fa-institution:before,.fa-university:before{content:""}.fa-graduation-cap:before,.fa-mortar-board:before{content:""}.fa-yahoo:before{content:""}.fa-google:before{content:""}.fa-reddit:before{content:""}.fa-reddit-square:before{content:""}.fa-stumbleupon-circle:before{content:""}.fa-stumbleupon:before{content:""}.fa-delicious:before{content:""}.fa-digg:before{content:""}.fa-pied-piper-pp:before{content:""}.fa-pied-piper-alt:before{content:""}.fa-drupal:before{content:""}.fa-joomla:before{content:""}.fa-language:before{content:""}.fa-fax:before{content:""}.fa-building:before{content:""}.fa-child:before{content:""}.fa-paw:before{content:""}.fa-spoon:before{content:""}.fa-cube:before{content:""}.fa-cubes:before{content:""}.fa-behance:before{content:""}.fa-behance-square:before{content:""}.fa-steam:before{content:""}.fa-steam-square:before{content:""}.fa-recycle:before{content:""}.fa-automobile:before,.fa-car:before{content:""}.fa-cab:before,.fa-taxi:before{content:""}.fa-tree:before{content:""}.fa-spotify:before{content:""}.fa-deviantart:before{content:""}.fa-soundcloud:before{content:""}.fa-database:before{content:""}.fa-file-pdf-o:before{content:""}.fa-file-word-o:before{content:""}.fa-file-excel-o:before{content:""}.fa-file-powerpoint-o:before{content:""}.fa-file-image-o:before,.fa-file-photo-o:before,.fa-file-picture-o:before{content:""}.fa-file-archive-o:before,.fa-file-zip-o:before{content:""}.fa-file-audio-o:before,.fa-file-sound-o:before{content:""}.fa-file-movie-o:before,.fa-file-video-o:before{content:""}.fa-file-code-o:before{content:""}.fa-vine:before{content:""}.fa-codepen:before{content:""}.fa-jsfiddle:before{content:""}.fa-life-bouy:before,.fa-life-buoy:before,.fa-life-ring:before,.fa-life-saver:before,.fa-support:before{content:""}.fa-circle-o-notch:before{content:""}.fa-ra:before,.fa-rebel:before,.fa-resistance:before{content:""}.fa-empire:before,.fa-ge:before{content:""}.fa-git-square:before{content:""}.fa-git:before{content:""}.fa-hacker-news:before,.fa-y-combinator-square:before,.fa-yc-square:before{content:""}.fa-tencent-weibo:before{content:""}.fa-qq:before{content:""}.fa-wechat:before,.fa-weixin:before{content:""}.fa-paper-plane:before,.fa-send:before{content:""}.fa-paper-plane-o:before,.fa-send-o:before{content:""}.fa-history:before{content:""}.fa-circle-thin:before{content:""}.fa-header:before{content:""}.fa-paragraph:before{content:""}.fa-sliders:before{content:""}.fa-share-alt:before{content:""}.fa-share-alt-square:before{content:""}.fa-bomb:before{content:""}.fa-futbol-o:before,.fa-soccer-ball-o:before{content:""}.fa-tty:before{content:""}.fa-binoculars:before{content:""}.fa-plug:before{content:""}.fa-slideshare:before{content:""}.fa-twitch:before{content:""}.fa-yelp:before{content:""}.fa-newspaper-o:before{content:""}.fa-wifi:before{content:""}.fa-calculator:before{content:""}.fa-paypal:before{content:""}.fa-google-wallet:before{content:""}.fa-cc-visa:before{content:""}.fa-cc-mastercard:before{content:""}.fa-cc-discover:before{content:""}.fa-cc-amex:before{content:""}.fa-cc-paypal:before{content:""}.fa-cc-stripe:before{content:""}.fa-bell-slash:before{content:""}.fa-bell-slash-o:before{content:""}.fa-trash:before{content:""}.fa-copyright:before{content:""}.fa-at:before{content:""}.fa-eyedropper:before{content:""}.fa-paint-brush:before{content:""}.fa-birthday-cake:before{content:""}.fa-area-chart:before{content:""}.fa-pie-chart:before{content:""}.fa-line-chart:before{content:""}.fa-lastfm:before{content:""}.fa-lastfm-square:before{content:""}.fa-toggle-off:before{content:""}.fa-toggle-on:before{content:""}.fa-bicycle:before{content:""}.fa-bus:before{content:""}.fa-ioxhost:before{content:""}.fa-angellist:before{content:""}.fa-cc:before{content:""}.fa-ils:before,.fa-shekel:before,.fa-sheqel:before{content:""}.fa-meanpath:before{content:""}.fa-buysellads:before{content:""}.fa-connectdevelop:before{content:""}.fa-dashcube:before{content:""}.fa-forumbee:before{content:""}.fa-leanpub:before{content:""}.fa-sellsy:before{content:""}.fa-shirtsinbulk:before{content:""}.fa-simplybuilt:before{content:""}.fa-skyatlas:before{content:""}.fa-cart-plus:before{content:""}.fa-cart-arrow-down:before{content:""}.fa-diamond:before{content:""}.fa-ship:before{content:""}.fa-user-secret:before{content:""}.fa-motorcycle:before{content:""}.fa-street-view:before{content:""}.fa-heartbeat:before{content:""}.fa-venus:before{content:""}.fa-mars:before{content:""}.fa-mercury:before{content:""}.fa-intersex:before,.fa-transgender:before{content:""}.fa-transgender-alt:before{content:""}.fa-venus-double:before{content:""}.fa-mars-double:before{content:""}.fa-venus-mars:before{content:""}.fa-mars-stroke:before{content:""}.fa-mars-stroke-v:before{content:""}.fa-mars-stroke-h:before{content:""}.fa-neuter:before{content:""}.fa-genderless:before{content:""}.fa-facebook-official:before{content:""}.fa-pinterest-p:before{content:""}.fa-whatsapp:before{content:""}.fa-server:before{content:""}.fa-user-plus:before{content:""}.fa-user-times:before{content:""}.fa-bed:before,.fa-hotel:before{content:""}.fa-viacoin:before{content:""}.fa-train:before{content:""}.fa-subway:before{content:""}.fa-medium:before{content:""}.fa-y-combinator:before,.fa-yc:before{content:""}.fa-optin-monster:before{content:""}.fa-opencart:before{content:""}.fa-expeditedssl:before{content:""}.fa-battery-4:before,.fa-battery-full:before,.fa-battery:before{content:""}.fa-battery-3:before,.fa-battery-three-quarters:before{content:""}.fa-battery-2:before,.fa-battery-half:before{content:""}.fa-battery-1:before,.fa-battery-quarter:before{content:""}.fa-battery-0:before,.fa-battery-empty:before{content:""}.fa-mouse-pointer:before{content:""}.fa-i-cursor:before{content:""}.fa-object-group:before{content:""}.fa-object-ungroup:before{content:""}.fa-sticky-note:before{content:""}.fa-sticky-note-o:before{content:""}.fa-cc-jcb:before{content:""}.fa-cc-diners-club:before{content:""}.fa-clone:before{content:""}.fa-balance-scale:before{content:""}.fa-hourglass-o:before{content:""}.fa-hourglass-1:before,.fa-hourglass-start:before{content:""}.fa-hourglass-2:before,.fa-hourglass-half:before{content:""}.fa-hourglass-3:before,.fa-hourglass-end:before{content:""}.fa-hourglass:before{content:""}.fa-hand-grab-o:before,.fa-hand-rock-o:before{content:""}.fa-hand-paper-o:before,.fa-hand-stop-o:before{content:""}.fa-hand-scissors-o:before{content:""}.fa-hand-lizard-o:before{content:""}.fa-hand-spock-o:before{content:""}.fa-hand-pointer-o:before{content:""}.fa-hand-peace-o:before{content:""}.fa-trademark:before{content:""}.fa-registered:before{content:""}.fa-creative-commons:before{content:""}.fa-gg:before{content:""}.fa-gg-circle:before{content:""}.fa-tripadvisor:before{content:""}.fa-odnoklassniki:before{content:""}.fa-odnoklassniki-square:before{content:""}.fa-get-pocket:before{content:""}.fa-wikipedia-w:before{content:""}.fa-safari:before{content:""}.fa-chrome:before{content:""}.fa-firefox:before{content:""}.fa-opera:before{content:""}.fa-internet-explorer:before{content:""}.fa-television:before,.fa-tv:before{content:""}.fa-contao:before{content:""}.fa-500px:before{content:""}.fa-amazon:before{content:""}.fa-calendar-plus-o:before{content:""}.fa-calendar-minus-o:before{content:""}.fa-calendar-times-o:before{content:""}.fa-calendar-check-o:before{content:""}.fa-industry:before{content:""}.fa-map-pin:before{content:""}.fa-map-signs:before{content:""}.fa-map-o:before{content:""}.fa-map:before{content:""}.fa-commenting:before{content:""}.fa-commenting-o:before{content:""}.fa-houzz:before{content:""}.fa-vimeo:before{content:""}.fa-black-tie:before{content:""}.fa-fonticons:before{content:""}.fa-reddit-alien:before{content:""}.fa-edge:before{content:""}.fa-credit-card-alt:before{content:""}.fa-codiepie:before{content:""}.fa-modx:before{content:""}.fa-fort-awesome:before{content:""}.fa-usb:before{content:""}.fa-product-hunt:before{content:""}.fa-mixcloud:before{content:""}.fa-scribd:before{content:""}.fa-pause-circle:before{content:""}.fa-pause-circle-o:before{content:""}.fa-stop-circle:before{content:""}.fa-stop-circle-o:before{content:""}.fa-shopping-bag:before{content:""}.fa-shopping-basket:before{content:""}.fa-hashtag:before{content:""}.fa-bluetooth:before{content:""}.fa-bluetooth-b:before{content:""}.fa-percent:before{content:""}.fa-gitlab:before,.icon-gitlab:before{content:""}.fa-wpbeginner:before{content:""}.fa-wpforms:before{content:""}.fa-envira:before{content:""}.fa-universal-access:before{content:""}.fa-wheelchair-alt:before{content:""}.fa-question-circle-o:before{content:""}.fa-blind:before{content:""}.fa-audio-description:before{content:""}.fa-volume-control-phone:before{content:""}.fa-braille:before{content:""}.fa-assistive-listening-systems:before{content:""}.fa-american-sign-language-interpreting:before,.fa-asl-interpreting:before{content:""}.fa-deaf:before,.fa-deafness:before,.fa-hard-of-hearing:before{content:""}.fa-glide:before{content:""}.fa-glide-g:before{content:""}.fa-sign-language:before,.fa-signing:before{content:""}.fa-low-vision:before{content:""}.fa-viadeo:before{content:""}.fa-viadeo-square:before{content:""}.fa-snapchat:before{content:""}.fa-snapchat-ghost:before{content:""}.fa-snapchat-square:before{content:""}.fa-pied-piper:before{content:""}.fa-first-order:before{content:""}.fa-yoast:before{content:""}.fa-themeisle:before{content:""}.fa-google-plus-circle:before,.fa-google-plus-official:before{content:""}.fa-fa:before,.fa-font-awesome:before{content:""}.fa-handshake-o:before{content:""}.fa-envelope-open:before{content:""}.fa-envelope-open-o:before{content:""}.fa-linode:before{content:""}.fa-address-book:before{content:""}.fa-address-book-o:before{content:""}.fa-address-card:before,.fa-vcard:before{content:""}.fa-address-card-o:before,.fa-vcard-o:before{content:""}.fa-user-circle:before{content:""}.fa-user-circle-o:before{content:""}.fa-user-o:before{content:""}.fa-id-badge:before{content:""}.fa-drivers-license:before,.fa-id-card:before{content:""}.fa-drivers-license-o:before,.fa-id-card-o:before{content:""}.fa-quora:before{content:""}.fa-free-code-camp:before{content:""}.fa-telegram:before{content:""}.fa-thermometer-4:before,.fa-thermometer-full:before,.fa-thermometer:before{content:""}.fa-thermometer-3:before,.fa-thermometer-three-quarters:before{content:""}.fa-thermometer-2:before,.fa-thermometer-half:before{content:""}.fa-thermometer-1:before,.fa-thermometer-quarter:before{content:""}.fa-thermometer-0:before,.fa-thermometer-empty:before{content:""}.fa-shower:before{content:""}.fa-bath:before,.fa-bathtub:before,.fa-s15:before{content:""}.fa-podcast:before{content:""}.fa-window-maximize:before{content:""}.fa-window-minimize:before{content:""}.fa-window-restore:before{content:""}.fa-times-rectangle:before,.fa-window-close:before{content:""}.fa-times-rectangle-o:before,.fa-window-close-o:before{content:""}.fa-bandcamp:before{content:""}.fa-grav:before{content:""}.fa-etsy:before{content:""}.fa-imdb:before{content:""}.fa-ravelry:before{content:""}.fa-eercast:before{content:""}.fa-microchip:before{content:""}.fa-snowflake-o:before{content:""}.fa-superpowers:before{content:""}.fa-wpexplorer:before{content:""}.fa-meetup:before{content:""}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}.fa,.icon,.rst-content .admonition-title,.rst-content .code-block-caption .headerlink,.rst-content code.download span:first-child,.rst-content dl dt .headerlink,.rst-content h1 .headerlink,.rst-content h2 .headerlink,.rst-content h3 .headerlink,.rst-content h4 .headerlink,.rst-content h5 .headerlink,.rst-content h6 .headerlink,.rst-content p.caption .headerlink,.rst-content table>caption .headerlink,.rst-content tt.download span:first-child,.wy-dropdown .caret,.wy-inline-validate.wy-inline-validate-danger .wy-input-context,.wy-inline-validate.wy-inline-validate-info .wy-input-context,.wy-inline-validate.wy-inline-validate-success .wy-input-context,.wy-inline-validate.wy-inline-validate-warning .wy-input-context,.wy-menu-vertical li.current>a span.toctree-expand,.wy-menu-vertical li.on a span.toctree-expand,.wy-menu-vertical li span.toctree-expand{font-family:inherit}.fa:before,.icon:before,.rst-content .admonition-title:before,.rst-content .code-block-caption .headerlink:before,.rst-content code.download span:first-child:before,.rst-content dl dt .headerlink:before,.rst-content h1 .headerlink:before,.rst-content h2 .headerlink:before,.rst-content h3 .headerlink:before,.rst-content h4 .headerlink:before,.rst-content h5 .headerlink:before,.rst-content h6 .headerlink:before,.rst-content p.caption .headerlink:before,.rst-content table>caption .headerlink:before,.rst-content tt.download span:first-child:before,.wy-dropdown .caret:before,.wy-inline-validate.wy-inline-validate-danger .wy-input-context:before,.wy-inline-validate.wy-inline-validate-info .wy-input-context:before,.wy-inline-validate.wy-inline-validate-success .wy-input-context:before,.wy-inline-validate.wy-inline-validate-warning .wy-input-context:before,.wy-menu-vertical li.current>a span.toctree-expand:before,.wy-menu-vertical li.on a span.toctree-expand:before,.wy-menu-vertical li span.toctree-expand:before{font-family:FontAwesome;display:inline-block;font-style:normal;font-weight:400;line-height:1;text-decoration:inherit}.rst-content .code-block-caption a .headerlink,.rst-content a .admonition-title,.rst-content code.download a span:first-child,.rst-content dl dt a .headerlink,.rst-content h1 a .headerlink,.rst-content h2 a .headerlink,.rst-content h3 a .headerlink,.rst-content h4 a .headerlink,.rst-content h5 a .headerlink,.rst-content h6 a .headerlink,.rst-content p.caption a .headerlink,.rst-content table>caption a .headerlink,.rst-content tt.download a span:first-child,.wy-menu-vertical li.current>a span.toctree-expand,.wy-menu-vertical li.on a span.toctree-expand,.wy-menu-vertical li a span.toctree-expand,a .fa,a .icon,a .rst-content .admonition-title,a .rst-content .code-block-caption .headerlink,a .rst-content code.download span:first-child,a .rst-content dl dt .headerlink,a .rst-content h1 .headerlink,a .rst-content h2 .headerlink,a .rst-content h3 .headerlink,a .rst-content h4 .headerlink,a .rst-content h5 .headerlink,a .rst-content h6 .headerlink,a .rst-content p.caption .headerlink,a .rst-content table>caption .headerlink,a .rst-content tt.download span:first-child,a .wy-menu-vertical li span.toctree-expand{display:inline-block;text-decoration:inherit}.btn .fa,.btn .icon,.btn .rst-content .admonition-title,.btn .rst-content .code-block-caption .headerlink,.btn .rst-content code.download span:first-child,.btn .rst-content dl dt .headerlink,.btn .rst-content h1 .headerlink,.btn .rst-content h2 .headerlink,.btn .rst-content h3 .headerlink,.btn .rst-content h4 .headerlink,.btn .rst-content h5 .headerlink,.btn .rst-content h6 .headerlink,.btn .rst-content p.caption .headerlink,.btn .rst-content table>caption .headerlink,.btn .rst-content tt.download span:first-child,.btn .wy-menu-vertical li.current>a span.toctree-expand,.btn .wy-menu-vertical li.on a span.toctree-expand,.btn .wy-menu-vertical li span.toctree-expand,.nav .fa,.nav .icon,.nav .rst-content .admonition-title,.nav .rst-content .code-block-caption .headerlink,.nav .rst-content code.download span:first-child,.nav .rst-content dl dt .headerlink,.nav .rst-content h1 .headerlink,.nav .rst-content h2 .headerlink,.nav .rst-content h3 .headerlink,.nav .rst-content h4 .headerlink,.nav .rst-content h5 .headerlink,.nav .rst-content h6 .headerlink,.nav .rst-content p.caption .headerlink,.nav .rst-content table>caption .headerlink,.nav .rst-content tt.download span:first-child,.nav .wy-menu-vertical li.current>a span.toctree-expand,.nav .wy-menu-vertical li.on a span.toctree-expand,.nav .wy-menu-vertical li span.toctree-expand,.rst-content .btn .admonition-title,.rst-content .code-block-caption .btn .headerlink,.rst-content .code-block-caption .nav .headerlink,.rst-content .nav .admonition-title,.rst-content code.download .btn span:first-child,.rst-content code.download .nav span:first-child,.rst-content dl dt .btn .headerlink,.rst-content dl dt .nav .headerlink,.rst-content h1 .btn .headerlink,.rst-content h1 .nav .headerlink,.rst-content h2 .btn .headerlink,.rst-content h2 .nav .headerlink,.rst-content h3 .btn .headerlink,.rst-content h3 .nav .headerlink,.rst-content h4 .btn .headerlink,.rst-content h4 .nav .headerlink,.rst-content h5 .btn .headerlink,.rst-content h5 .nav .headerlink,.rst-content h6 .btn .headerlink,.rst-content h6 .nav .headerlink,.rst-content p.caption .btn .headerlink,.rst-content p.caption .nav .headerlink,.rst-content table>caption .btn .headerlink,.rst-content table>caption .nav .headerlink,.rst-content tt.download .btn span:first-child,.rst-content tt.download .nav span:first-child,.wy-menu-vertical li .btn span.toctree-expand,.wy-menu-vertical li.current>a .btn span.toctree-expand,.wy-menu-vertical li.current>a .nav span.toctree-expand,.wy-menu-vertical li .nav span.toctree-expand,.wy-menu-vertical li.on a .btn span.toctree-expand,.wy-menu-vertical li.on a .nav span.toctree-expand{display:inline}.btn .fa-large.icon,.btn .fa.fa-large,.btn .rst-content .code-block-caption .fa-large.headerlink,.btn .rst-content .fa-large.admonition-title,.btn .rst-content code.download span.fa-large:first-child,.btn .rst-content dl dt .fa-large.headerlink,.btn .rst-content h1 .fa-large.headerlink,.btn .rst-content h2 .fa-large.headerlink,.btn .rst-content h3 .fa-large.headerlink,.btn .rst-content h4 .fa-large.headerlink,.btn .rst-content h5 .fa-large.headerlink,.btn .rst-content h6 .fa-large.headerlink,.btn .rst-content p.caption .fa-large.headerlink,.btn .rst-content table>caption .fa-large.headerlink,.btn .rst-content tt.download span.fa-large:first-child,.btn .wy-menu-vertical li span.fa-large.toctree-expand,.nav .fa-large.icon,.nav .fa.fa-large,.nav .rst-content .code-block-caption .fa-large.headerlink,.nav .rst-content .fa-large.admonition-title,.nav .rst-content code.download span.fa-large:first-child,.nav .rst-content dl dt .fa-large.headerlink,.nav .rst-content h1 .fa-large.headerlink,.nav .rst-content h2 .fa-large.headerlink,.nav .rst-content h3 .fa-large.headerlink,.nav .rst-content h4 .fa-large.headerlink,.nav .rst-content h5 .fa-large.headerlink,.nav .rst-content h6 .fa-large.headerlink,.nav .rst-content p.caption .fa-large.headerlink,.nav .rst-content table>caption .fa-large.headerlink,.nav .rst-content tt.download span.fa-large:first-child,.nav .wy-menu-vertical li span.fa-large.toctree-expand,.rst-content .btn .fa-large.admonition-title,.rst-content .code-block-caption .btn .fa-large.headerlink,.rst-content .code-block-caption .nav .fa-large.headerlink,.rst-content .nav .fa-large.admonition-title,.rst-content code.download .btn span.fa-large:first-child,.rst-content code.download .nav span.fa-large:first-child,.rst-content dl dt .btn .fa-large.headerlink,.rst-content dl dt .nav .fa-large.headerlink,.rst-content h1 .btn .fa-large.headerlink,.rst-content h1 .nav .fa-large.headerlink,.rst-content h2 .btn .fa-large.headerlink,.rst-content h2 .nav .fa-large.headerlink,.rst-content h3 .btn .fa-large.headerlink,.rst-content h3 .nav .fa-large.headerlink,.rst-content h4 .btn .fa-large.headerlink,.rst-content h4 .nav .fa-large.headerlink,.rst-content h5 .btn .fa-large.headerlink,.rst-content h5 .nav .fa-large.headerlink,.rst-content h6 .btn .fa-large.headerlink,.rst-content h6 .nav .fa-large.headerlink,.rst-content p.caption .btn .fa-large.headerlink,.rst-content p.caption .nav .fa-large.headerlink,.rst-content table>caption .btn .fa-large.headerlink,.rst-content table>caption .nav .fa-large.headerlink,.rst-content tt.download .btn span.fa-large:first-child,.rst-content tt.download .nav span.fa-large:first-child,.wy-menu-vertical li .btn span.fa-large.toctree-expand,.wy-menu-vertical li .nav span.fa-large.toctree-expand{line-height:.9em}.btn .fa-spin.icon,.btn .fa.fa-spin,.btn .rst-content .code-block-caption .fa-spin.headerlink,.btn .rst-content .fa-spin.admonition-title,.btn .rst-content code.download span.fa-spin:first-child,.btn .rst-content dl dt .fa-spin.headerlink,.btn .rst-content h1 .fa-spin.headerlink,.btn .rst-content h2 .fa-spin.headerlink,.btn .rst-content h3 .fa-spin.headerlink,.btn .rst-content h4 .fa-spin.headerlink,.btn .rst-content h5 .fa-spin.headerlink,.btn .rst-content h6 .fa-spin.headerlink,.btn .rst-content p.caption .fa-spin.headerlink,.btn .rst-content table>caption .fa-spin.headerlink,.btn .rst-content tt.download span.fa-spin:first-child,.btn .wy-menu-vertical li span.fa-spin.toctree-expand,.nav .fa-spin.icon,.nav .fa.fa-spin,.nav .rst-content .code-block-caption .fa-spin.headerlink,.nav .rst-content .fa-spin.admonition-title,.nav .rst-content code.download span.fa-spin:first-child,.nav .rst-content dl dt .fa-spin.headerlink,.nav .rst-content h1 .fa-spin.headerlink,.nav .rst-content h2 .fa-spin.headerlink,.nav .rst-content h3 .fa-spin.headerlink,.nav .rst-content h4 .fa-spin.headerlink,.nav .rst-content h5 .fa-spin.headerlink,.nav .rst-content h6 .fa-spin.headerlink,.nav .rst-content p.caption .fa-spin.headerlink,.nav .rst-content table>caption .fa-spin.headerlink,.nav .rst-content tt.download span.fa-spin:first-child,.nav .wy-menu-vertical li span.fa-spin.toctree-expand,.rst-content .btn .fa-spin.admonition-title,.rst-content .code-block-caption .btn .fa-spin.headerlink,.rst-content .code-block-caption .nav .fa-spin.headerlink,.rst-content .nav .fa-spin.admonition-title,.rst-content code.download .btn span.fa-spin:first-child,.rst-content code.download .nav span.fa-spin:first-child,.rst-content dl dt .btn .fa-spin.headerlink,.rst-content dl dt .nav .fa-spin.headerlink,.rst-content h1 .btn .fa-spin.headerlink,.rst-content h1 .nav .fa-spin.headerlink,.rst-content h2 .btn .fa-spin.headerlink,.rst-content h2 .nav .fa-spin.headerlink,.rst-content h3 .btn .fa-spin.headerlink,.rst-content h3 .nav .fa-spin.headerlink,.rst-content h4 .btn .fa-spin.headerlink,.rst-content h4 .nav .fa-spin.headerlink,.rst-content h5 .btn .fa-spin.headerlink,.rst-content h5 .nav .fa-spin.headerlink,.rst-content h6 .btn .fa-spin.headerlink,.rst-content h6 .nav .fa-spin.headerlink,.rst-content p.caption .btn .fa-spin.headerlink,.rst-content p.caption .nav .fa-spin.headerlink,.rst-content table>caption .btn .fa-spin.headerlink,.rst-content table>caption .nav .fa-spin.headerlink,.rst-content tt.download .btn span.fa-spin:first-child,.rst-content tt.download .nav span.fa-spin:first-child,.wy-menu-vertical li .btn span.fa-spin.toctree-expand,.wy-menu-vertical li .nav span.fa-spin.toctree-expand{display:inline-block}.btn.fa:before,.btn.icon:before,.rst-content .btn.admonition-title:before,.rst-content .code-block-caption .btn.headerlink:before,.rst-content code.download span.btn:first-child:before,.rst-content dl dt .btn.headerlink:before,.rst-content h1 .btn.headerlink:before,.rst-content h2 .btn.headerlink:before,.rst-content h3 .btn.headerlink:before,.rst-content h4 .btn.headerlink:before,.rst-content h5 .btn.headerlink:before,.rst-content h6 .btn.headerlink:before,.rst-content p.caption .btn.headerlink:before,.rst-content table>caption .btn.headerlink:before,.rst-content tt.download span.btn:first-child:before,.wy-menu-vertical li span.btn.toctree-expand:before{opacity:.5;-webkit-transition:opacity .05s ease-in;-moz-transition:opacity .05s ease-in;transition:opacity .05s ease-in}.btn.fa:hover:before,.btn.icon:hover:before,.rst-content .btn.admonition-title:hover:before,.rst-content .code-block-caption .btn.headerlink:hover:before,.rst-content code.download span.btn:first-child:hover:before,.rst-content dl dt .btn.headerlink:hover:before,.rst-content h1 .btn.headerlink:hover:before,.rst-content h2 .btn.headerlink:hover:before,.rst-content h3 .btn.headerlink:hover:before,.rst-content h4 .btn.headerlink:hover:before,.rst-content h5 .btn.headerlink:hover:before,.rst-content h6 .btn.headerlink:hover:before,.rst-content p.caption .btn.headerlink:hover:before,.rst-content table>caption .btn.headerlink:hover:before,.rst-content tt.download span.btn:first-child:hover:before,.wy-menu-vertical li span.btn.toctree-expand:hover:before{opacity:1}.btn-mini .fa:before,.btn-mini .icon:before,.btn-mini .rst-content .admonition-title:before,.btn-mini .rst-content .code-block-caption .headerlink:before,.btn-mini .rst-content code.download span:first-child:before,.btn-mini .rst-content dl dt .headerlink:before,.btn-mini .rst-content h1 .headerlink:before,.btn-mini .rst-content h2 .headerlink:before,.btn-mini .rst-content h3 .headerlink:before,.btn-mini .rst-content h4 .headerlink:before,.btn-mini .rst-content h5 .headerlink:before,.btn-mini .rst-content h6 .headerlink:before,.btn-mini .rst-content p.caption .headerlink:before,.btn-mini .rst-content table>caption .headerlink:before,.btn-mini .rst-content tt.download span:first-child:before,.btn-mini .wy-menu-vertical li span.toctree-expand:before,.rst-content .btn-mini .admonition-title:before,.rst-content .code-block-caption .btn-mini .headerlink:before,.rst-content code.download .btn-mini span:first-child:before,.rst-content dl dt .btn-mini .headerlink:before,.rst-content h1 .btn-mini .headerlink:before,.rst-content h2 .btn-mini .headerlink:before,.rst-content h3 .btn-mini .headerlink:before,.rst-content h4 .btn-mini .headerlink:before,.rst-content h5 .btn-mini .headerlink:before,.rst-content h6 .btn-mini .headerlink:before,.rst-content p.caption .btn-mini .headerlink:before,.rst-content table>caption .btn-mini .headerlink:before,.rst-content tt.download .btn-mini span:first-child:before,.wy-menu-vertical li .btn-mini span.toctree-expand:before{font-size:14px;vertical-align:-15%}.rst-content .admonition,.rst-content .admonition-todo,.rst-content .attention,.rst-content .caution,.rst-content .danger,.rst-content .error,.rst-content .hint,.rst-content .important,.rst-content .note,.rst-content .seealso,.rst-content .tip,.rst-content .warning,.wy-alert{padding:12px;line-height:24px;margin-bottom:24px;background:#e7f2fa}.rst-content .admonition-title,.wy-alert-title{font-weight:700;display:block;color:#fff;background:#6ab0de;padding:6px 12px;margin:-12px -12px 12px}.rst-content .danger,.rst-content .error,.rst-content .wy-alert-danger.admonition,.rst-content .wy-alert-danger.admonition-todo,.rst-content .wy-alert-danger.attention,.rst-content .wy-alert-danger.caution,.rst-content .wy-alert-danger.hint,.rst-content .wy-alert-danger.important,.rst-content .wy-alert-danger.note,.rst-content .wy-alert-danger.seealso,.rst-content .wy-alert-danger.tip,.rst-content .wy-alert-danger.warning,.wy-alert.wy-alert-danger{background:#fdf3f2}.rst-content .danger .admonition-title,.rst-content .danger .wy-alert-title,.rst-content .error .admonition-title,.rst-content .error .wy-alert-title,.rst-content .wy-alert-danger.admonition-todo .admonition-title,.rst-content .wy-alert-danger.admonition-todo .wy-alert-title,.rst-content .wy-alert-danger.admonition .admonition-title,.rst-content .wy-alert-danger.admonition .wy-alert-title,.rst-content .wy-alert-danger.attention .admonition-title,.rst-content .wy-alert-danger.attention .wy-alert-title,.rst-content .wy-alert-danger.caution .admonition-title,.rst-content .wy-alert-danger.caution .wy-alert-title,.rst-content .wy-alert-danger.hint .admonition-title,.rst-content .wy-alert-danger.hint .wy-alert-title,.rst-content .wy-alert-danger.important .admonition-title,.rst-content .wy-alert-danger.important .wy-alert-title,.rst-content .wy-alert-danger.note .admonition-title,.rst-content .wy-alert-danger.note .wy-alert-title,.rst-content .wy-alert-danger.seealso .admonition-title,.rst-content .wy-alert-danger.seealso .wy-alert-title,.rst-content .wy-alert-danger.tip .admonition-title,.rst-content .wy-alert-danger.tip .wy-alert-title,.rst-content .wy-alert-danger.warning .admonition-title,.rst-content .wy-alert-danger.warning .wy-alert-title,.rst-content .wy-alert.wy-alert-danger .admonition-title,.wy-alert.wy-alert-danger .rst-content .admonition-title,.wy-alert.wy-alert-danger .wy-alert-title{background:#f29f97}.rst-content .admonition-todo,.rst-content .attention,.rst-content .caution,.rst-content .warning,.rst-content .wy-alert-warning.admonition,.rst-content .wy-alert-warning.danger,.rst-content .wy-alert-warning.error,.rst-content .wy-alert-warning.hint,.rst-content .wy-alert-warning.important,.rst-content .wy-alert-warning.note,.rst-content .wy-alert-warning.seealso,.rst-content .wy-alert-warning.tip,.wy-alert.wy-alert-warning{background:#ffedcc}.rst-content .admonition-todo .admonition-title,.rst-content .admonition-todo .wy-alert-title,.rst-content .attention .admonition-title,.rst-content .attention .wy-alert-title,.rst-content .caution .admonition-title,.rst-content .caution .wy-alert-title,.rst-content .warning .admonition-title,.rst-content .warning .wy-alert-title,.rst-content .wy-alert-warning.admonition .admonition-title,.rst-content .wy-alert-warning.admonition .wy-alert-title,.rst-content .wy-alert-warning.danger .admonition-title,.rst-content .wy-alert-warning.danger .wy-alert-title,.rst-content .wy-alert-warning.error .admonition-title,.rst-content .wy-alert-warning.error .wy-alert-title,.rst-content .wy-alert-warning.hint .admonition-title,.rst-content .wy-alert-warning.hint .wy-alert-title,.rst-content .wy-alert-warning.important .admonition-title,.rst-content .wy-alert-warning.important .wy-alert-title,.rst-content .wy-alert-warning.note .admonition-title,.rst-content .wy-alert-warning.note .wy-alert-title,.rst-content .wy-alert-warning.seealso .admonition-title,.rst-content .wy-alert-warning.seealso .wy-alert-title,.rst-content .wy-alert-warning.tip .admonition-title,.rst-content .wy-alert-warning.tip .wy-alert-title,.rst-content .wy-alert.wy-alert-warning .admonition-title,.wy-alert.wy-alert-warning .rst-content .admonition-title,.wy-alert.wy-alert-warning .wy-alert-title{background:#f0b37e}.rst-content .note,.rst-content .seealso,.rst-content .wy-alert-info.admonition,.rst-content .wy-alert-info.admonition-todo,.rst-content .wy-alert-info.attention,.rst-content .wy-alert-info.caution,.rst-content .wy-alert-info.danger,.rst-content .wy-alert-info.error,.rst-content .wy-alert-info.hint,.rst-content .wy-alert-info.important,.rst-content .wy-alert-info.tip,.rst-content .wy-alert-info.warning,.wy-alert.wy-alert-info{background:#e7f2fa}.rst-content .note .admonition-title,.rst-content .note .wy-alert-title,.rst-content .seealso .admonition-title,.rst-content .seealso .wy-alert-title,.rst-content .wy-alert-info.admonition-todo .admonition-title,.rst-content .wy-alert-info.admonition-todo .wy-alert-title,.rst-content .wy-alert-info.admonition .admonition-title,.rst-content .wy-alert-info.admonition .wy-alert-title,.rst-content .wy-alert-info.attention .admonition-title,.rst-content .wy-alert-info.attention .wy-alert-title,.rst-content .wy-alert-info.caution .admonition-title,.rst-content .wy-alert-info.caution .wy-alert-title,.rst-content .wy-alert-info.danger .admonition-title,.rst-content .wy-alert-info.danger .wy-alert-title,.rst-content .wy-alert-info.error .admonition-title,.rst-content .wy-alert-info.error .wy-alert-title,.rst-content .wy-alert-info.hint .admonition-title,.rst-content .wy-alert-info.hint .wy-alert-title,.rst-content .wy-alert-info.important .admonition-title,.rst-content .wy-alert-info.important .wy-alert-title,.rst-content .wy-alert-info.tip .admonition-title,.rst-content .wy-alert-info.tip .wy-alert-title,.rst-content .wy-alert-info.warning .admonition-title,.rst-content .wy-alert-info.warning .wy-alert-title,.rst-content .wy-alert.wy-alert-info .admonition-title,.wy-alert.wy-alert-info .rst-content .admonition-title,.wy-alert.wy-alert-info .wy-alert-title{background:#6ab0de}.rst-content .hint,.rst-content .important,.rst-content .tip,.rst-content .wy-alert-success.admonition,.rst-content .wy-alert-success.admonition-todo,.rst-content .wy-alert-success.attention,.rst-content .wy-alert-success.caution,.rst-content .wy-alert-success.danger,.rst-content .wy-alert-success.error,.rst-content .wy-alert-success.note,.rst-content .wy-alert-success.seealso,.rst-content .wy-alert-success.warning,.wy-alert.wy-alert-success{background:#dbfaf4}.rst-content .hint .admonition-title,.rst-content .hint .wy-alert-title,.rst-content .important .admonition-title,.rst-content .important .wy-alert-title,.rst-content .tip .admonition-title,.rst-content .tip .wy-alert-title,.rst-content .wy-alert-success.admonition-todo .admonition-title,.rst-content .wy-alert-success.admonition-todo .wy-alert-title,.rst-content .wy-alert-success.admonition .admonition-title,.rst-content .wy-alert-success.admonition .wy-alert-title,.rst-content .wy-alert-success.attention .admonition-title,.rst-content .wy-alert-success.attention .wy-alert-title,.rst-content .wy-alert-success.caution .admonition-title,.rst-content .wy-alert-success.caution .wy-alert-title,.rst-content .wy-alert-success.danger .admonition-title,.rst-content .wy-alert-success.danger .wy-alert-title,.rst-content .wy-alert-success.error .admonition-title,.rst-content .wy-alert-success.error .wy-alert-title,.rst-content .wy-alert-success.note .admonition-title,.rst-content .wy-alert-success.note .wy-alert-title,.rst-content .wy-alert-success.seealso .admonition-title,.rst-content .wy-alert-success.seealso .wy-alert-title,.rst-content .wy-alert-success.warning .admonition-title,.rst-content .wy-alert-success.warning .wy-alert-title,.rst-content .wy-alert.wy-alert-success .admonition-title,.wy-alert.wy-alert-success .rst-content .admonition-title,.wy-alert.wy-alert-success .wy-alert-title{background:#1abc9c}.rst-content .wy-alert-neutral.admonition,.rst-content .wy-alert-neutral.admonition-todo,.rst-content .wy-alert-neutral.attention,.rst-content .wy-alert-neutral.caution,.rst-content .wy-alert-neutral.danger,.rst-content .wy-alert-neutral.error,.rst-content .wy-alert-neutral.hint,.rst-content .wy-alert-neutral.important,.rst-content .wy-alert-neutral.note,.rst-content .wy-alert-neutral.seealso,.rst-content .wy-alert-neutral.tip,.rst-content .wy-alert-neutral.warning,.wy-alert.wy-alert-neutral{background:#f3f6f6}.rst-content .wy-alert-neutral.admonition-todo .admonition-title,.rst-content .wy-alert-neutral.admonition-todo .wy-alert-title,.rst-content .wy-alert-neutral.admonition .admonition-title,.rst-content .wy-alert-neutral.admonition .wy-alert-title,.rst-content .wy-alert-neutral.attention .admonition-title,.rst-content .wy-alert-neutral.attention .wy-alert-title,.rst-content .wy-alert-neutral.caution .admonition-title,.rst-content .wy-alert-neutral.caution .wy-alert-title,.rst-content .wy-alert-neutral.danger .admonition-title,.rst-content .wy-alert-neutral.danger .wy-alert-title,.rst-content .wy-alert-neutral.error .admonition-title,.rst-content .wy-alert-neutral.error .wy-alert-title,.rst-content .wy-alert-neutral.hint .admonition-title,.rst-content .wy-alert-neutral.hint .wy-alert-title,.rst-content .wy-alert-neutral.important .admonition-title,.rst-content .wy-alert-neutral.important .wy-alert-title,.rst-content .wy-alert-neutral.note .admonition-title,.rst-content .wy-alert-neutral.note .wy-alert-title,.rst-content .wy-alert-neutral.seealso .admonition-title,.rst-content .wy-alert-neutral.seealso .wy-alert-title,.rst-content .wy-alert-neutral.tip .admonition-title,.rst-content .wy-alert-neutral.tip .wy-alert-title,.rst-content .wy-alert-neutral.warning .admonition-title,.rst-content .wy-alert-neutral.warning .wy-alert-title,.rst-content .wy-alert.wy-alert-neutral .admonition-title,.wy-alert.wy-alert-neutral .rst-content .admonition-title,.wy-alert.wy-alert-neutral .wy-alert-title{color:#404040;background:#e1e4e5}.rst-content .wy-alert-neutral.admonition-todo a,.rst-content .wy-alert-neutral.admonition a,.rst-content .wy-alert-neutral.attention a,.rst-content .wy-alert-neutral.caution a,.rst-content .wy-alert-neutral.danger a,.rst-content .wy-alert-neutral.error a,.rst-content .wy-alert-neutral.hint a,.rst-content .wy-alert-neutral.important a,.rst-content .wy-alert-neutral.note a,.rst-content .wy-alert-neutral.seealso a,.rst-content .wy-alert-neutral.tip a,.rst-content .wy-alert-neutral.warning a,.wy-alert.wy-alert-neutral a{color:#2980b9}.rst-content .admonition-todo p:last-child,.rst-content .admonition p:last-child,.rst-content .attention p:last-child,.rst-content .caution p:last-child,.rst-content .danger p:last-child,.rst-content .error p:last-child,.rst-content .hint p:last-child,.rst-content .important p:last-child,.rst-content .note p:last-child,.rst-content .seealso p:last-child,.rst-content .tip p:last-child,.rst-content .warning p:last-child,.wy-alert p:last-child{margin-bottom:0}.wy-tray-container{position:fixed;bottom:0;left:0;z-index:600}.wy-tray-container li{display:block;width:300px;background:transparent;color:#fff;text-align:center;box-shadow:0 5px 5px 0 rgba(0,0,0,.1);padding:0 24px;min-width:20%;opacity:0;height:0;line-height:56px;overflow:hidden;-webkit-transition:all .3s ease-in;-moz-transition:all .3s ease-in;transition:all .3s ease-in}.wy-tray-container li.wy-tray-item-success{background:#27ae60}.wy-tray-container li.wy-tray-item-info{background:#2980b9}.wy-tray-container li.wy-tray-item-warning{background:#e67e22}.wy-tray-container li.wy-tray-item-danger{background:#e74c3c}.wy-tray-container li.on{opacity:1;height:56px}@media screen and (max-width:768px){.wy-tray-container{bottom:auto;top:0;width:100%}.wy-tray-container li{width:100%}}button{font-size:100%;margin:0;vertical-align:baseline;*vertical-align:middle;cursor:pointer;line-height:normal;-webkit-appearance:button;*overflow:visible}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}button[disabled]{cursor:default}.btn{display:inline-block;border-radius:2px;line-height:normal;white-space:nowrap;text-align:center;cursor:pointer;font-size:100%;padding:6px 12px 8px;color:#fff;border:1px solid rgba(0,0,0,.1);background-color:#27ae60;text-decoration:none;font-weight:400;font-family:Lato,proxima-nova,Helvetica Neue,Arial,sans-serif;box-shadow:inset 0 1px 2px -1px hsla(0,0%,100%,.5),inset 0 -2px 0 0 rgba(0,0,0,.1);outline-none:false;vertical-align:middle;*display:inline;zoom:1;-webkit-user-drag:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-transition:all .1s linear;-moz-transition:all .1s linear;transition:all .1s linear}.btn-hover{background:#2e8ece;color:#fff}.btn:hover{background:#2cc36b;color:#fff}.btn:focus{background:#2cc36b;outline:0}.btn:active{box-shadow:inset 0 -1px 0 0 rgba(0,0,0,.05),inset 0 2px 0 0 rgba(0,0,0,.1);padding:8px 12px 6px}.btn:visited{color:#fff}.btn-disabled,.btn-disabled:active,.btn-disabled:focus,.btn-disabled:hover,.btn:disabled{background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);filter:alpha(opacity=40);opacity:.4;cursor:not-allowed;box-shadow:none}.btn::-moz-focus-inner{padding:0;border:0}.btn-small{font-size:80%}.btn-info{background-color:#2980b9!important}.btn-info:hover{background-color:#2e8ece!important}.btn-neutral{background-color:#f3f6f6!important;color:#404040!important}.btn-neutral:hover{background-color:#e5ebeb!important;color:#404040}.btn-neutral:visited{color:#404040!important}.btn-success{background-color:#27ae60!important}.btn-success:hover{background-color:#295!important}.btn-danger{background-color:#e74c3c!important}.btn-danger:hover{background-color:#ea6153!important}.btn-warning{background-color:#e67e22!important}.btn-warning:hover{background-color:#e98b39!important}.btn-invert{background-color:#222}.btn-invert:hover{background-color:#2f2f2f!important}.btn-link{background-color:transparent!important;color:#2980b9;box-shadow:none;border-color:transparent!important}.btn-link:active,.btn-link:hover{background-color:transparent!important;color:#409ad5!important;box-shadow:none}.btn-link:visited{color:#9b59b6}.wy-btn-group .btn,.wy-control .btn{vertical-align:middle}.wy-btn-group{margin-bottom:24px;*zoom:1}.wy-btn-group:after,.wy-btn-group:before{display:table;content:""}.wy-btn-group:after{clear:both}.wy-dropdown{position:relative;display:inline-block}.wy-dropdown-active .wy-dropdown-menu{display:block}.wy-dropdown-menu{position:absolute;left:0;display:none;float:left;top:100%;min-width:100%;background:#fcfcfc;z-index:100;border:1px solid #cfd7dd;box-shadow:0 2px 2px 0 rgba(0,0,0,.1);padding:12px}.wy-dropdown-menu>dd>a{display:block;clear:both;color:#404040;white-space:nowrap;font-size:90%;padding:0 12px;cursor:pointer}.wy-dropdown-menu>dd>a:hover{background:#2980b9;color:#fff}.wy-dropdown-menu>dd.divider{border-top:1px solid #cfd7dd;margin:6px 0}.wy-dropdown-menu>dd.search{padding-bottom:12px}.wy-dropdown-menu>dd.search input[type=search]{width:100%}.wy-dropdown-menu>dd.call-to-action{background:#e3e3e3;text-transform:uppercase;font-weight:500;font-size:80%}.wy-dropdown-menu>dd.call-to-action:hover{background:#e3e3e3}.wy-dropdown-menu>dd.call-to-action .btn{color:#fff}.wy-dropdown.wy-dropdown-up .wy-dropdown-menu{bottom:100%;top:auto;left:auto;right:0}.wy-dropdown.wy-dropdown-bubble .wy-dropdown-menu{background:#fcfcfc;margin-top:2px}.wy-dropdown.wy-dropdown-bubble .wy-dropdown-menu a{padding:6px 12px}.wy-dropdown.wy-dropdown-bubble .wy-dropdown-menu a:hover{background:#2980b9;color:#fff}.wy-dropdown.wy-dropdown-left .wy-dropdown-menu{right:0;left:auto;text-align:right}.wy-dropdown-arrow:before{content:" ";border-bottom:5px solid #f5f5f5;border-left:5px solid transparent;border-right:5px solid transparent;position:absolute;display:block;top:-4px;left:50%;margin-left:-3px}.wy-dropdown-arrow.wy-dropdown-arrow-left:before{left:11px}.wy-form-stacked select{display:block}.wy-form-aligned .wy-help-inline,.wy-form-aligned input,.wy-form-aligned label,.wy-form-aligned select,.wy-form-aligned textarea{display:inline-block;*display:inline;*zoom:1;vertical-align:middle}.wy-form-aligned .wy-control-group>label{display:inline-block;vertical-align:middle;width:10em;margin:6px 12px 0 0;float:left}.wy-form-aligned .wy-control{float:left}.wy-form-aligned .wy-control label{display:block}.wy-form-aligned .wy-control select{margin-top:6px}fieldset{margin:0}fieldset,legend{border:0;padding:0}legend{width:100%;white-space:normal;margin-bottom:24px;font-size:150%;*margin-left:-7px}label,legend{display:block}label{margin:0 0 .3125em;color:#333;font-size:90%}input,select,textarea{font-size:100%;margin:0;vertical-align:baseline;*vertical-align:middle}.wy-control-group{margin-bottom:24px;max-width:1200px;margin-left:auto;margin-right:auto;*zoom:1}.wy-control-group:after,.wy-control-group:before{display:table;content:""}.wy-control-group:after{clear:both}.wy-control-group.wy-control-group-required>label:after{content:" *";color:#e74c3c}.wy-control-group .wy-form-full,.wy-control-group .wy-form-halves,.wy-control-group .wy-form-thirds{padding-bottom:12px}.wy-control-group .wy-form-full input[type=color],.wy-control-group .wy-form-full input[type=date],.wy-control-group .wy-form-full input[type=datetime-local],.wy-control-group .wy-form-full input[type=datetime],.wy-control-group .wy-form-full input[type=email],.wy-control-group .wy-form-full input[type=month],.wy-control-group .wy-form-full input[type=number],.wy-control-group .wy-form-full input[type=password],.wy-control-group .wy-form-full input[type=search],.wy-control-group .wy-form-full input[type=tel],.wy-control-group .wy-form-full input[type=text],.wy-control-group .wy-form-full input[type=time],.wy-control-group .wy-form-full input[type=url],.wy-control-group .wy-form-full input[type=week],.wy-control-group .wy-form-full select,.wy-control-group .wy-form-halves input[type=color],.wy-control-group .wy-form-halves input[type=date],.wy-control-group .wy-form-halves input[type=datetime-local],.wy-control-group .wy-form-halves input[type=datetime],.wy-control-group .wy-form-halves input[type=email],.wy-control-group .wy-form-halves input[type=month],.wy-control-group .wy-form-halves input[type=number],.wy-control-group .wy-form-halves input[type=password],.wy-control-group .wy-form-halves input[type=search],.wy-control-group .wy-form-halves input[type=tel],.wy-control-group .wy-form-halves input[type=text],.wy-control-group .wy-form-halves input[type=time],.wy-control-group .wy-form-halves input[type=url],.wy-control-group .wy-form-halves input[type=week],.wy-control-group .wy-form-halves select,.wy-control-group .wy-form-thirds input[type=color],.wy-control-group .wy-form-thirds input[type=date],.wy-control-group .wy-form-thirds input[type=datetime-local],.wy-control-group .wy-form-thirds input[type=datetime],.wy-control-group .wy-form-thirds input[type=email],.wy-control-group .wy-form-thirds input[type=month],.wy-control-group .wy-form-thirds input[type=number],.wy-control-group .wy-form-thirds input[type=password],.wy-control-group .wy-form-thirds input[type=search],.wy-control-group .wy-form-thirds input[type=tel],.wy-control-group .wy-form-thirds input[type=text],.wy-control-group .wy-form-thirds input[type=time],.wy-control-group .wy-form-thirds input[type=url],.wy-control-group .wy-form-thirds input[type=week],.wy-control-group .wy-form-thirds select{width:100%}.wy-control-group .wy-form-full{float:left;display:block;width:100%;margin-right:0}.wy-control-group .wy-form-full:last-child{margin-right:0}.wy-control-group .wy-form-halves{float:left;display:block;margin-right:2.35765%;width:48.82117%}.wy-control-group .wy-form-halves:last-child,.wy-control-group .wy-form-halves:nth-of-type(2n){margin-right:0}.wy-control-group .wy-form-halves:nth-of-type(odd){clear:left}.wy-control-group .wy-form-thirds{float:left;display:block;margin-right:2.35765%;width:31.76157%}.wy-control-group .wy-form-thirds:last-child,.wy-control-group .wy-form-thirds:nth-of-type(3n){margin-right:0}.wy-control-group .wy-form-thirds:nth-of-type(3n+1){clear:left}.wy-control-group.wy-control-group-no-input .wy-control,.wy-control-no-input{margin:6px 0 0;font-size:90%}.wy-control-no-input{display:inline-block}.wy-control-group.fluid-input input[type=color],.wy-control-group.fluid-input input[type=date],.wy-control-group.fluid-input input[type=datetime-local],.wy-control-group.fluid-input input[type=datetime],.wy-control-group.fluid-input input[type=email],.wy-control-group.fluid-input input[type=month],.wy-control-group.fluid-input input[type=number],.wy-control-group.fluid-input input[type=password],.wy-control-group.fluid-input input[type=search],.wy-control-group.fluid-input input[type=tel],.wy-control-group.fluid-input input[type=text],.wy-control-group.fluid-input input[type=time],.wy-control-group.fluid-input input[type=url],.wy-control-group.fluid-input input[type=week]{width:100%}.wy-form-message-inline{padding-left:.3em;color:#666;font-size:90%}.wy-form-message{display:block;color:#999;font-size:70%;margin-top:.3125em;font-style:italic}.wy-form-message p{font-size:inherit;font-style:italic;margin-bottom:6px}.wy-form-message p:last-child{margin-bottom:0}input{line-height:normal}input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer;font-family:Lato,proxima-nova,Helvetica Neue,Arial,sans-serif;*overflow:visible}input[type=color],input[type=date],input[type=datetime-local],input[type=datetime],input[type=email],input[type=month],input[type=number],input[type=password],input[type=search],input[type=tel],input[type=text],input[type=time],input[type=url],input[type=week]{-webkit-appearance:none;padding:6px;display:inline-block;border:1px solid #ccc;font-size:80%;font-family:Lato,proxima-nova,Helvetica Neue,Arial,sans-serif;box-shadow:inset 0 1px 3px #ddd;border-radius:0;-webkit-transition:border .3s linear;-moz-transition:border .3s linear;transition:border .3s linear}input[type=datetime-local]{padding:.34375em .625em}input[disabled]{cursor:default}input[type=checkbox],input[type=radio]{padding:0;margin-right:.3125em;*height:13px;*width:13px}input[type=checkbox],input[type=radio],input[type=search]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}input[type=color]:focus,input[type=date]:focus,input[type=datetime-local]:focus,input[type=datetime]:focus,input[type=email]:focus,input[type=month]:focus,input[type=number]:focus,input[type=password]:focus,input[type=search]:focus,input[type=tel]:focus,input[type=text]:focus,input[type=time]:focus,input[type=url]:focus,input[type=week]:focus{outline:0;outline:thin dotted\9;border-color:#333}input.no-focus:focus{border-color:#ccc!important}input[type=checkbox]:focus,input[type=file]:focus,input[type=radio]:focus{outline:thin dotted #333;outline:1px auto #129fea}input[type=color][disabled],input[type=date][disabled],input[type=datetime-local][disabled],input[type=datetime][disabled],input[type=email][disabled],input[type=month][disabled],input[type=number][disabled],input[type=password][disabled],input[type=search][disabled],input[type=tel][disabled],input[type=text][disabled],input[type=time][disabled],input[type=url][disabled],input[type=week][disabled]{cursor:not-allowed;background-color:#fafafa}input:focus:invalid,select:focus:invalid,textarea:focus:invalid{color:#e74c3c;border:1px solid #e74c3c}input:focus:invalid:focus,select:focus:invalid:focus,textarea:focus:invalid:focus{border-color:#e74c3c}input[type=checkbox]:focus:invalid:focus,input[type=file]:focus:invalid:focus,input[type=radio]:focus:invalid:focus{outline-color:#e74c3c}input.wy-input-large{padding:12px;font-size:100%}textarea{overflow:auto;vertical-align:top;width:100%;font-family:Lato,proxima-nova,Helvetica Neue,Arial,sans-serif}select,textarea{padding:.5em .625em;display:inline-block;border:1px solid #ccc;font-size:80%;box-shadow:inset 0 1px 3px #ddd;-webkit-transition:border .3s linear;-moz-transition:border .3s linear;transition:border .3s linear}select{border:1px solid #ccc;background-color:#fff}select[multiple]{height:auto}select:focus,textarea:focus{outline:0}input[readonly],select[disabled],select[readonly],textarea[disabled],textarea[readonly]{cursor:not-allowed;background-color:#fafafa}input[type=checkbox][disabled],input[type=radio][disabled]{cursor:not-allowed}.wy-checkbox,.wy-radio{margin:6px 0;color:#404040;display:block}.wy-checkbox input,.wy-radio input{vertical-align:baseline}.wy-form-message-inline{display:inline-block;*display:inline;*zoom:1;vertical-align:middle}.wy-input-prefix,.wy-input-suffix{white-space:nowrap;padding:6px}.wy-input-prefix .wy-input-context,.wy-input-suffix .wy-input-context{line-height:27px;padding:0 8px;display:inline-block;font-size:80%;background-color:#f3f6f6;border:1px solid #ccc;color:#999}.wy-input-suffix .wy-input-context{border-left:0}.wy-input-prefix .wy-input-context{border-right:0}.wy-switch{position:relative;display:block;height:24px;margin-top:12px;cursor:pointer}.wy-switch:before{left:0;top:0;width:36px;height:12px;background:#ccc}.wy-switch:after,.wy-switch:before{position:absolute;content:"";display:block;border-radius:4px;-webkit-transition:all .2s ease-in-out;-moz-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.wy-switch:after{width:18px;height:18px;background:#999;left:-3px;top:-3px}.wy-switch span{position:absolute;left:48px;display:block;font-size:12px;color:#ccc;line-height:1}.wy-switch.active:before{background:#1e8449}.wy-switch.active:after{left:24px;background:#27ae60}.wy-switch.disabled{cursor:not-allowed;opacity:.8}.wy-control-group.wy-control-group-error .wy-form-message,.wy-control-group.wy-control-group-error>label{color:#e74c3c}.wy-control-group.wy-control-group-error input[type=color],.wy-control-group.wy-control-group-error input[type=date],.wy-control-group.wy-control-group-error input[type=datetime-local],.wy-control-group.wy-control-group-error input[type=datetime],.wy-control-group.wy-control-group-error input[type=email],.wy-control-group.wy-control-group-error input[type=month],.wy-control-group.wy-control-group-error input[type=number],.wy-control-group.wy-control-group-error input[type=password],.wy-control-group.wy-control-group-error input[type=search],.wy-control-group.wy-control-group-error input[type=tel],.wy-control-group.wy-control-group-error input[type=text],.wy-control-group.wy-control-group-error input[type=time],.wy-control-group.wy-control-group-error input[type=url],.wy-control-group.wy-control-group-error input[type=week],.wy-control-group.wy-control-group-error textarea{border:1px solid #e74c3c}.wy-inline-validate{white-space:nowrap}.wy-inline-validate .wy-input-context{padding:.5em .625em;display:inline-block;font-size:80%}.wy-inline-validate.wy-inline-validate-success .wy-input-context{color:#27ae60}.wy-inline-validate.wy-inline-validate-danger .wy-input-context{color:#e74c3c}.wy-inline-validate.wy-inline-validate-warning .wy-input-context{color:#e67e22}.wy-inline-validate.wy-inline-validate-info .wy-input-context{color:#2980b9}.rotate-90{-webkit-transform:rotate(90deg);-moz-transform:rotate(90deg);-ms-transform:rotate(90deg);-o-transform:rotate(90deg);transform:rotate(90deg)}.rotate-180{-webkit-transform:rotate(180deg);-moz-transform:rotate(180deg);-ms-transform:rotate(180deg);-o-transform:rotate(180deg);transform:rotate(180deg)}.rotate-270{-webkit-transform:rotate(270deg);-moz-transform:rotate(270deg);-ms-transform:rotate(270deg);-o-transform:rotate(270deg);transform:rotate(270deg)}.mirror{-webkit-transform:scaleX(-1);-moz-transform:scaleX(-1);-ms-transform:scaleX(-1);-o-transform:scaleX(-1);transform:scaleX(-1)}.mirror.rotate-90{-webkit-transform:scaleX(-1) rotate(90deg);-moz-transform:scaleX(-1) rotate(90deg);-ms-transform:scaleX(-1) rotate(90deg);-o-transform:scaleX(-1) rotate(90deg);transform:scaleX(-1) rotate(90deg)}.mirror.rotate-180{-webkit-transform:scaleX(-1) rotate(180deg);-moz-transform:scaleX(-1) rotate(180deg);-ms-transform:scaleX(-1) rotate(180deg);-o-transform:scaleX(-1) rotate(180deg);transform:scaleX(-1) rotate(180deg)}.mirror.rotate-270{-webkit-transform:scaleX(-1) rotate(270deg);-moz-transform:scaleX(-1) rotate(270deg);-ms-transform:scaleX(-1) rotate(270deg);-o-transform:scaleX(-1) rotate(270deg);transform:scaleX(-1) rotate(270deg)}@media only screen and (max-width:480px){.wy-form button[type=submit]{margin:.7em 0 0}.wy-form input[type=color],.wy-form input[type=date],.wy-form input[type=datetime-local],.wy-form input[type=datetime],.wy-form input[type=email],.wy-form input[type=month],.wy-form input[type=number],.wy-form input[type=password],.wy-form input[type=search],.wy-form input[type=tel],.wy-form input[type=text],.wy-form input[type=time],.wy-form input[type=url],.wy-form input[type=week],.wy-form label{margin-bottom:.3em;display:block}.wy-form input[type=color],.wy-form input[type=date],.wy-form input[type=datetime-local],.wy-form input[type=datetime],.wy-form input[type=email],.wy-form input[type=month],.wy-form input[type=number],.wy-form input[type=password],.wy-form input[type=search],.wy-form input[type=tel],.wy-form input[type=time],.wy-form input[type=url],.wy-form input[type=week]{margin-bottom:0}.wy-form-aligned .wy-control-group label{margin-bottom:.3em;text-align:left;display:block;width:100%}.wy-form-aligned .wy-control{margin:1.5em 0 0}.wy-form-message,.wy-form-message-inline,.wy-form .wy-help-inline{display:block;font-size:80%;padding:6px 0}}@media screen and (max-width:768px){.tablet-hide{display:none}}@media screen and (max-width:480px){.mobile-hide{display:none}}.float-left{float:left}.float-right{float:right}.full-width{width:100%}.rst-content table.docutils,.rst-content table.field-list,.wy-table{border-collapse:collapse;border-spacing:0;empty-cells:show;margin-bottom:24px}.rst-content table.docutils caption,.rst-content table.field-list caption,.wy-table caption{color:#000;font:italic 85%/1 arial,sans-serif;padding:1em 0;text-align:center}.rst-content table.docutils td,.rst-content table.docutils th,.rst-content table.field-list td,.rst-content table.field-list th,.wy-table td,.wy-table th{font-size:90%;margin:0;overflow:visible;padding:8px 16px}.rst-content table.docutils td:first-child,.rst-content table.docutils th:first-child,.rst-content table.field-list td:first-child,.rst-content table.field-list th:first-child,.wy-table td:first-child,.wy-table th:first-child{border-left-width:0}.rst-content table.docutils thead,.rst-content table.field-list thead,.wy-table thead{color:#000;text-align:left;vertical-align:bottom;white-space:nowrap}.rst-content table.docutils thead th,.rst-content table.field-list thead th,.wy-table thead th{font-weight:700;border-bottom:2px solid #e1e4e5}.rst-content table.docutils td,.rst-content table.field-list td,.wy-table td{background-color:transparent;vertical-align:middle}.rst-content table.docutils td p,.rst-content table.field-list td p,.wy-table td p{line-height:18px}.rst-content table.docutils td p:last-child,.rst-content table.field-list td p:last-child,.wy-table td p:last-child{margin-bottom:0}.rst-content table.docutils .wy-table-cell-min,.rst-content table.field-list .wy-table-cell-min,.wy-table .wy-table-cell-min{width:1%;padding-right:0}.rst-content table.docutils .wy-table-cell-min input[type=checkbox],.rst-content table.field-list .wy-table-cell-min input[type=checkbox],.wy-table .wy-table-cell-min input[type=checkbox]{margin:0}.wy-table-secondary{color:grey;font-size:90%}.wy-table-tertiary{color:grey;font-size:80%}.rst-content table.docutils:not(.field-list) tr:nth-child(2n-1) td,.wy-table-backed,.wy-table-odd td,.wy-table-striped tr:nth-child(2n-1) td{background-color:#f3f6f6}.rst-content table.docutils,.wy-table-bordered-all{border:1px solid #e1e4e5}.rst-content table.docutils td,.wy-table-bordered-all td{border-bottom:1px solid #e1e4e5;border-left:1px solid #e1e4e5}.rst-content table.docutils tbody>tr:last-child td,.wy-table-bordered-all tbody>tr:last-child td{border-bottom-width:0}.wy-table-bordered{border:1px solid #e1e4e5}.wy-table-bordered-rows td{border-bottom:1px solid #e1e4e5}.wy-table-bordered-rows tbody>tr:last-child td{border-bottom-width:0}.wy-table-horizontal td,.wy-table-horizontal th{border-width:0 0 1px;border-bottom:1px solid #e1e4e5}.wy-table-horizontal tbody>tr:last-child td{border-bottom-width:0}.wy-table-responsive{margin-bottom:24px;max-width:100%;overflow:auto}.wy-table-responsive table{margin-bottom:0!important}.wy-table-responsive table td,.wy-table-responsive table th{white-space:nowrap}a{color:#2980b9;text-decoration:none;cursor:pointer}a:hover{color:#3091d1}a:visited{color:#9b59b6}html{height:100%}body,html{overflow-x:hidden}body{font-family:Lato,proxima-nova,Helvetica Neue,Arial,sans-serif;font-weight:400;color:#404040;min-height:100%;background:#edf0f2}.wy-text-left{text-align:left}.wy-text-center{text-align:center}.wy-text-right{text-align:right}.wy-text-large{font-size:120%}.wy-text-normal{font-size:100%}.wy-text-small,small{font-size:80%}.wy-text-strike{text-decoration:line-through}.wy-text-warning{color:#e67e22!important}a.wy-text-warning:hover{color:#eb9950!important}.wy-text-info{color:#2980b9!important}a.wy-text-info:hover{color:#409ad5!important}.wy-text-success{color:#27ae60!important}a.wy-text-success:hover{color:#36d278!important}.wy-text-danger{color:#e74c3c!important}a.wy-text-danger:hover{color:#ed7669!important}.wy-text-neutral{color:#404040!important}a.wy-text-neutral:hover{color:#595959!important}.rst-content .toctree-wrapper>p.caption,h1,h2,h3,h4,h5,h6,legend{margin-top:0;font-weight:700;font-family:Roboto Slab,ff-tisa-web-pro,Georgia,Arial,sans-serif}p{line-height:24px;font-size:16px;margin:0 0 24px}h1{font-size:175%}.rst-content .toctree-wrapper>p.caption,h2{font-size:150%}h3{font-size:125%}h4{font-size:115%}h5{font-size:110%}h6{font-size:100%}hr{display:block;height:1px;border:0;border-top:1px solid #e1e4e5;margin:24px 0;padding:0}.rst-content code,.rst-content tt,code{white-space:nowrap;max-width:100%;background:#fff;border:1px solid #e1e4e5;font-size:75%;padding:0 5px;font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,Courier,monospace;color:#e74c3c;overflow-x:auto}.rst-content tt.code-large,code.code-large{font-size:90%}.rst-content .section ul,.rst-content .toctree-wrapper ul,.wy-plain-list-disc,article ul{list-style:disc;line-height:24px;margin-bottom:24px}.rst-content .section ul li,.rst-content .toctree-wrapper ul li,.wy-plain-list-disc li,article ul li{list-style:disc;margin-left:24px}.rst-content .section ul li p:last-child,.rst-content .section ul li ul,.rst-content .toctree-wrapper ul li p:last-child,.rst-content .toctree-wrapper ul li ul,.wy-plain-list-disc li p:last-child,.wy-plain-list-disc li ul,article ul li p:last-child,article ul li ul{margin-bottom:0}.rst-content .section ul li li,.rst-content .toctree-wrapper ul li li,.wy-plain-list-disc li li,article ul li li{list-style:circle}.rst-content .section ul li li li,.rst-content .toctree-wrapper ul li li li,.wy-plain-list-disc li li li,article ul li li li{list-style:square}.rst-content .section ul li ol li,.rst-content .toctree-wrapper ul li ol li,.wy-plain-list-disc li ol li,article ul li ol li{list-style:decimal}.rst-content .section ol,.rst-content ol.arabic,.wy-plain-list-decimal,article ol{list-style:decimal;line-height:24px;margin-bottom:24px}.rst-content .section ol li,.rst-content ol.arabic li,.wy-plain-list-decimal li,article ol li{list-style:decimal;margin-left:24px}.rst-content .section ol li p:last-child,.rst-content .section ol li ul,.rst-content ol.arabic li p:last-child,.rst-content ol.arabic li ul,.wy-plain-list-decimal li p:last-child,.wy-plain-list-decimal li ul,article ol li p:last-child,article ol li ul{margin-bottom:0}.rst-content .section ol li ul li,.rst-content ol.arabic li ul li,.wy-plain-list-decimal li ul li,article ol li ul li{list-style:disc}.wy-breadcrumbs{*zoom:1}.wy-breadcrumbs:after,.wy-breadcrumbs:before{display:table;content:""}.wy-breadcrumbs:after{clear:both}.wy-breadcrumbs li{display:inline-block}.wy-breadcrumbs li.wy-breadcrumbs-aside{float:right}.wy-breadcrumbs li a{display:inline-block;padding:5px}.wy-breadcrumbs li a:first-child{padding-left:0}.rst-content .wy-breadcrumbs li tt,.wy-breadcrumbs li .rst-content tt,.wy-breadcrumbs li code{padding:5px;border:none;background:none}.rst-content .wy-breadcrumbs li tt.literal,.wy-breadcrumbs li .rst-content tt.literal,.wy-breadcrumbs li code.literal{color:#404040}.wy-breadcrumbs-extra{margin-bottom:0;color:#b3b3b3;font-size:80%;display:inline-block}@media screen and (max-width:480px){.wy-breadcrumbs-extra,.wy-breadcrumbs li.wy-breadcrumbs-aside{display:none}}@media print{.wy-breadcrumbs li.wy-breadcrumbs-aside{display:none}}html{font-size:16px}.wy-affix{position:fixed;top:1.618em}.wy-menu a:hover{text-decoration:none}.wy-menu-horiz{*zoom:1}.wy-menu-horiz:after,.wy-menu-horiz:before{display:table;content:""}.wy-menu-horiz:after{clear:both}.wy-menu-horiz li,.wy-menu-horiz ul{display:inline-block}.wy-menu-horiz li:hover{background:hsla(0,0%,100%,.1)}.wy-menu-horiz li.divide-left{border-left:1px solid #404040}.wy-menu-horiz li.divide-right{border-right:1px solid #404040}.wy-menu-horiz a{height:32px;display:inline-block;line-height:32px;padding:0 16px}.wy-menu-vertical{width:300px}.wy-menu-vertical header,.wy-menu-vertical p.caption{color:#55a5d9;height:32px;line-height:32px;padding:0 1.618em;margin:12px 0 0;display:block;font-weight:700;text-transform:uppercase;font-size:85%;white-space:nowrap}.wy-menu-vertical ul{margin-bottom:0}.wy-menu-vertical li.divide-top{border-top:1px solid #404040}.wy-menu-vertical li.divide-bottom{border-bottom:1px solid #404040}.wy-menu-vertical li.current{background:#e3e3e3}.wy-menu-vertical li.current a{color:grey;border-right:1px solid #c9c9c9;padding:.4045em 2.427em}.wy-menu-vertical li.current a:hover{background:#d6d6d6}.rst-content .wy-menu-vertical li tt,.wy-menu-vertical li .rst-content tt,.wy-menu-vertical li code{border:none;background:inherit;color:inherit;padding-left:0;padding-right:0}.wy-menu-vertical li span.toctree-expand{display:block;float:left;margin-left:-1.2em;font-size:.8em;line-height:1.6em;color:#4d4d4d}.wy-menu-vertical li.current>a,.wy-menu-vertical li.on a{color:#404040;font-weight:700;position:relative;background:#fcfcfc;border:none;padding:.4045em 1.618em}.wy-menu-vertical li.current>a:hover,.wy-menu-vertical li.on a:hover{background:#fcfcfc}.wy-menu-vertical li.current>a:hover span.toctree-expand,.wy-menu-vertical li.on a:hover span.toctree-expand{color:grey}.wy-menu-vertical li.current>a span.toctree-expand,.wy-menu-vertical li.on a span.toctree-expand{display:block;font-size:.8em;line-height:1.6em;color:#333}.wy-menu-vertical li.toctree-l1.current>a{border-bottom:1px solid #c9c9c9;border-top:1px solid #c9c9c9}.wy-menu-vertical .toctree-l1.current .toctree-l2>ul,.wy-menu-vertical .toctree-l2.current .toctree-l3>ul,.wy-menu-vertical .toctree-l3.current .toctree-l4>ul,.wy-menu-vertical .toctree-l4.current .toctree-l5>ul,.wy-menu-vertical .toctree-l5.current .toctree-l6>ul,.wy-menu-vertical .toctree-l6.current .toctree-l7>ul,.wy-menu-vertical .toctree-l7.current .toctree-l8>ul,.wy-menu-vertical .toctree-l8.current .toctree-l9>ul,.wy-menu-vertical .toctree-l9.current .toctree-l10>ul,.wy-menu-vertical .toctree-l10.current .toctree-l11>ul{display:none}.wy-menu-vertical .toctree-l1.current .current.toctree-l2>ul,.wy-menu-vertical .toctree-l2.current .current.toctree-l3>ul,.wy-menu-vertical .toctree-l3.current .current.toctree-l4>ul,.wy-menu-vertical .toctree-l4.current .current.toctree-l5>ul,.wy-menu-vertical .toctree-l5.current .current.toctree-l6>ul,.wy-menu-vertical .toctree-l6.current .current.toctree-l7>ul,.wy-menu-vertical .toctree-l7.current .current.toctree-l8>ul,.wy-menu-vertical .toctree-l8.current .current.toctree-l9>ul,.wy-menu-vertical .toctree-l9.current .current.toctree-l10>ul,.wy-menu-vertical .toctree-l10.current .current.toctree-l11>ul{display:block}.wy-menu-vertical li.toctree-l3,.wy-menu-vertical li.toctree-l4{font-size:.9em}.wy-menu-vertical li.toctree-l2 a,.wy-menu-vertical li.toctree-l3 a,.wy-menu-vertical li.toctree-l4 a,.wy-menu-vertical li.toctree-l5 a,.wy-menu-vertical li.toctree-l6 a,.wy-menu-vertical li.toctree-l7 a,.wy-menu-vertical li.toctree-l8 a,.wy-menu-vertical li.toctree-l9 a,.wy-menu-vertical li.toctree-l10 a{color:#404040}.wy-menu-vertical li.toctree-l2 a:hover span.toctree-expand,.wy-menu-vertical li.toctree-l3 a:hover span.toctree-expand,.wy-menu-vertical li.toctree-l4 a:hover span.toctree-expand,.wy-menu-vertical li.toctree-l5 a:hover span.toctree-expand,.wy-menu-vertical li.toctree-l6 a:hover span.toctree-expand,.wy-menu-vertical li.toctree-l7 a:hover span.toctree-expand,.wy-menu-vertical li.toctree-l8 a:hover span.toctree-expand,.wy-menu-vertical li.toctree-l9 a:hover span.toctree-expand,.wy-menu-vertical li.toctree-l10 a:hover span.toctree-expand{color:grey}.wy-menu-vertical li.toctree-l2.current li.toctree-l3>a,.wy-menu-vertical li.toctree-l3.current li.toctree-l4>a,.wy-menu-vertical li.toctree-l4.current li.toctree-l5>a,.wy-menu-vertical li.toctree-l5.current li.toctree-l6>a,.wy-menu-vertical li.toctree-l6.current li.toctree-l7>a,.wy-menu-vertical li.toctree-l7.current li.toctree-l8>a,.wy-menu-vertical li.toctree-l8.current li.toctree-l9>a,.wy-menu-vertical li.toctree-l9.current li.toctree-l10>a,.wy-menu-vertical li.toctree-l10.current li.toctree-l11>a{display:block}.wy-menu-vertical li.toctree-l2.current>a{padding:.4045em 2.427em}.wy-menu-vertical li.toctree-l2.current li.toctree-l3>a,.wy-menu-vertical li.toctree-l3.current>a{padding:.4045em 4.045em}.wy-menu-vertical li.toctree-l3.current li.toctree-l4>a,.wy-menu-vertical li.toctree-l4.current>a{padding:.4045em 5.663em}.wy-menu-vertical li.toctree-l4.current li.toctree-l5>a,.wy-menu-vertical li.toctree-l5.current>a{padding:.4045em 7.281em}.wy-menu-vertical li.toctree-l5.current li.toctree-l6>a,.wy-menu-vertical li.toctree-l6.current>a{padding:.4045em 8.899em}.wy-menu-vertical li.toctree-l6.current li.toctree-l7>a,.wy-menu-vertical li.toctree-l7.current>a{padding:.4045em 10.517em}.wy-menu-vertical li.toctree-l7.current li.toctree-l8>a,.wy-menu-vertical li.toctree-l8.current>a{padding:.4045em 12.135em}.wy-menu-vertical li.toctree-l8.current li.toctree-l9>a,.wy-menu-vertical li.toctree-l9.current>a{padding:.4045em 13.753em}.wy-menu-vertical li.toctree-l9.current li.toctree-l10>a,.wy-menu-vertical li.toctree-l10.current>a{padding:.4045em 15.371em}.wy-menu-vertical li.toctree-l10.current li.toctree-l11>a{padding:.4045em 16.989em}.wy-menu-vertical li.toctree-l2.current>a,.wy-menu-vertical li.toctree-l2.current li.toctree-l3>a{background:#c9c9c9}.wy-menu-vertical li.toctree-l2 span.toctree-expand{color:#a3a3a3}.wy-menu-vertical li.toctree-l3.current>a,.wy-menu-vertical li.toctree-l3.current li.toctree-l4>a{background:#bdbdbd}.wy-menu-vertical li.toctree-l3 span.toctree-expand{color:#969696}.wy-menu-vertical li.current ul{display:block}.wy-menu-vertical li ul{margin-bottom:0;display:none}.wy-menu-vertical li ul li a{margin-bottom:0;color:#d9d9d9;font-weight:400}.wy-menu-vertical a{line-height:18px;padding:.4045em 1.618em;display:block;position:relative;font-size:90%;color:#d9d9d9}.wy-menu-vertical a:hover{background-color:#4e4a4a;cursor:pointer}.wy-menu-vertical a:hover span.toctree-expand{color:#d9d9d9}.wy-menu-vertical a:active{background-color:#2980b9;cursor:pointer;color:#fff}.wy-menu-vertical a:active span.toctree-expand{color:#fff}.wy-side-nav-search{display:block;width:300px;padding:.809em;margin-bottom:.809em;z-index:200;background-color:#2980b9;text-align:center;color:#fcfcfc}.wy-side-nav-search input[type=text]{width:100%;border-radius:50px;padding:6px 12px;border-color:#2472a4}.wy-side-nav-search img{display:block;margin:auto auto .809em;height:45px;width:45px;background-color:#2980b9;padding:5px;border-radius:100%}.wy-side-nav-search .wy-dropdown>a,.wy-side-nav-search>a{color:#fcfcfc;font-size:100%;font-weight:700;display:inline-block;padding:4px 6px;margin-bottom:.809em}.wy-side-nav-search .wy-dropdown>a:hover,.wy-side-nav-search>a:hover{background:hsla(0,0%,100%,.1)}.wy-side-nav-search .wy-dropdown>a img.logo,.wy-side-nav-search>a img.logo{display:block;margin:0 auto;height:auto;width:auto;border-radius:0;max-width:100%;background:transparent}.wy-side-nav-search .wy-dropdown>a.icon img.logo,.wy-side-nav-search>a.icon img.logo{margin-top:.85em}.wy-side-nav-search>div.version{margin-top:-.4045em;margin-bottom:.809em;font-weight:400;color:hsla(0,0%,100%,.3)}.wy-nav .wy-menu-vertical header{color:#2980b9}.wy-nav .wy-menu-vertical a{color:#b3b3b3}.wy-nav .wy-menu-vertical a:hover{background-color:#2980b9;color:#fff}[data-menu-wrap]{-webkit-transition:all .2s ease-in;-moz-transition:all .2s ease-in;transition:all .2s ease-in;position:absolute;opacity:1;width:100%;opacity:0}[data-menu-wrap].move-center{left:0;right:auto;opacity:1}[data-menu-wrap].move-left{right:auto;left:-100%;opacity:0}[data-menu-wrap].move-right{right:-100%;left:auto;opacity:0}.wy-body-for-nav{background:#fcfcfc}.wy-grid-for-nav{position:absolute;width:100%;height:100%}.wy-nav-side{position:fixed;top:0;bottom:0;left:0;padding-bottom:2em;width:300px;overflow-x:hidden;overflow-y:hidden;min-height:100%;color:#9b9b9b;background:#343131;z-index:200}.wy-side-scroll{width:320px;position:relative;overflow-x:hidden;overflow-y:scroll;height:100%}.wy-nav-top{display:none;background:#2980b9;color:#fff;padding:.4045em .809em;position:relative;line-height:50px;text-align:center;font-size:100%;*zoom:1}.wy-nav-top:after,.wy-nav-top:before{display:table;content:""}.wy-nav-top:after{clear:both}.wy-nav-top a{color:#fff;font-weight:700}.wy-nav-top img{margin-right:12px;height:45px;width:45px;background-color:#2980b9;padding:5px;border-radius:100%}.wy-nav-top i{font-size:30px;float:left;cursor:pointer;padding-top:inherit}.wy-nav-content-wrap{margin-left:300px;background:#fcfcfc;min-height:100%}.wy-nav-content{padding:1.618em 3.236em;height:100%;max-width:800px;margin:auto}.wy-body-mask{position:fixed;width:100%;height:100%;background:rgba(0,0,0,.2);display:none;z-index:499}.wy-body-mask.on{display:block}footer{color:grey}footer p{margin-bottom:12px}.rst-content footer span.commit tt,footer span.commit .rst-content tt,footer span.commit code{padding:0;font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,Courier,monospace;font-size:1em;background:none;border:none;color:grey}.rst-footer-buttons{*zoom:1}.rst-footer-buttons:after,.rst-footer-buttons:before{width:100%;display:table;content:""}.rst-footer-buttons:after{clear:both}.rst-breadcrumbs-buttons{margin-top:12px;*zoom:1}.rst-breadcrumbs-buttons:after,.rst-breadcrumbs-buttons:before{display:table;content:""}.rst-breadcrumbs-buttons:after{clear:both}#search-results .search li{margin-bottom:24px;border-bottom:1px solid #e1e4e5;padding-bottom:24px}#search-results .search li:first-child{border-top:1px solid #e1e4e5;padding-top:24px}#search-results .search li a{font-size:120%;margin-bottom:12px;display:inline-block}#search-results .context{color:grey;font-size:90%}.genindextable li>ul{margin-left:24px}@media screen and (max-width:768px){.wy-body-for-nav{background:#fcfcfc}.wy-nav-top{display:block}.wy-nav-side{left:-300px}.wy-nav-side.shift{width:85%;left:0}.wy-menu.wy-menu-vertical,.wy-side-nav-search,.wy-side-scroll{width:auto}.wy-nav-content-wrap{margin-left:0}.wy-nav-content-wrap .wy-nav-content{padding:1.618em}.wy-nav-content-wrap.shift{position:fixed;min-width:100%;left:85%;top:0;height:100%;overflow:hidden}}@media screen and (min-width:1100px){.wy-nav-content-wrap{background:rgba(0,0,0,.05)}.wy-nav-content{margin:0;background:#fcfcfc}}@media print{.rst-versions,.wy-nav-side,footer{display:none}.wy-nav-content-wrap{margin-left:0}}.rst-versions{position:fixed;bottom:0;left:0;width:300px;color:#fcfcfc;background:#1f1d1d;font-family:Lato,proxima-nova,Helvetica Neue,Arial,sans-serif;z-index:400}.rst-versions a{color:#2980b9;text-decoration:none}.rst-versions .rst-badge-small{display:none}.rst-versions .rst-current-version{padding:12px;background-color:#272525;display:block;text-align:right;font-size:90%;cursor:pointer;color:#27ae60;*zoom:1}.rst-versions .rst-current-version:after,.rst-versions .rst-current-version:before{display:table;content:""}.rst-versions .rst-current-version:after{clear:both}.rst-content .code-block-caption .rst-versions .rst-current-version .headerlink,.rst-content .rst-versions .rst-current-version .admonition-title,.rst-content code.download .rst-versions .rst-current-version span:first-child,.rst-content dl dt .rst-versions .rst-current-version .headerlink,.rst-content h1 .rst-versions .rst-current-version .headerlink,.rst-content h2 .rst-versions .rst-current-version .headerlink,.rst-content h3 .rst-versions .rst-current-version .headerlink,.rst-content h4 .rst-versions .rst-current-version .headerlink,.rst-content h5 .rst-versions .rst-current-version .headerlink,.rst-content h6 .rst-versions .rst-current-version .headerlink,.rst-content p.caption .rst-versions .rst-current-version .headerlink,.rst-content table>caption .rst-versions .rst-current-version .headerlink,.rst-content tt.download .rst-versions .rst-current-version span:first-child,.rst-versions .rst-current-version .fa,.rst-versions .rst-current-version .icon,.rst-versions .rst-current-version .rst-content .admonition-title,.rst-versions .rst-current-version .rst-content .code-block-caption .headerlink,.rst-versions .rst-current-version .rst-content code.download span:first-child,.rst-versions .rst-current-version .rst-content dl dt .headerlink,.rst-versions .rst-current-version .rst-content h1 .headerlink,.rst-versions .rst-current-version .rst-content h2 .headerlink,.rst-versions .rst-current-version .rst-content h3 .headerlink,.rst-versions .rst-current-version .rst-content h4 .headerlink,.rst-versions .rst-current-version .rst-content h5 .headerlink,.rst-versions .rst-current-version .rst-content h6 .headerlink,.rst-versions .rst-current-version .rst-content p.caption .headerlink,.rst-versions .rst-current-version .rst-content table>caption .headerlink,.rst-versions .rst-current-version .rst-content tt.download span:first-child,.rst-versions .rst-current-version .wy-menu-vertical li span.toctree-expand,.wy-menu-vertical li .rst-versions .rst-current-version span.toctree-expand{color:#fcfcfc}.rst-versions .rst-current-version .fa-book,.rst-versions .rst-current-version .icon-book{float:left}.rst-versions .rst-current-version.rst-out-of-date{background-color:#e74c3c;color:#fff}.rst-versions .rst-current-version.rst-active-old-version{background-color:#f1c40f;color:#000}.rst-versions.shift-up{height:auto;max-height:100%;overflow-y:scroll}.rst-versions.shift-up .rst-other-versions{display:block}.rst-versions .rst-other-versions{font-size:90%;padding:12px;color:grey;display:none}.rst-versions .rst-other-versions hr{display:block;height:1px;border:0;margin:20px 0;padding:0;border-top:1px solid #413d3d}.rst-versions .rst-other-versions dd{display:inline-block;margin:0}.rst-versions .rst-other-versions dd a{display:inline-block;padding:6px;color:#fcfcfc}.rst-versions.rst-badge{width:auto;bottom:20px;right:20px;left:auto;border:none;max-width:300px;max-height:90%}.rst-versions.rst-badge .fa-book,.rst-versions.rst-badge .icon-book{float:none;line-height:30px}.rst-versions.rst-badge.shift-up .rst-current-version{text-align:right}.rst-versions.rst-badge.shift-up .rst-current-version .fa-book,.rst-versions.rst-badge.shift-up .rst-current-version .icon-book{float:left}.rst-versions.rst-badge>.rst-current-version{width:auto;height:30px;line-height:30px;padding:0 6px;display:block;text-align:center}@media screen and (max-width:768px){.rst-versions{width:85%;display:none}.rst-versions.shift{display:block}}.rst-content img{max-width:100%;height:auto}.rst-content div.figure{margin-bottom:24px}.rst-content div.figure p.caption{font-style:italic}.rst-content div.figure p:last-child.caption{margin-bottom:0}.rst-content div.figure.align-center{text-align:center}.rst-content .section>a>img,.rst-content .section>img{margin-bottom:24px}.rst-content abbr[title]{text-decoration:none}.rst-content.style-external-links a.reference.external:after{font-family:FontAwesome;content:"\f08e";color:#b3b3b3;vertical-align:super;font-size:60%;margin:0 .2em}.rst-content blockquote{margin-left:24px;line-height:24px;margin-bottom:24px}.rst-content pre.literal-block{white-space:pre;margin:0;padding:12px;font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,Courier,monospace;display:block;overflow:auto}.rst-content div[class^=highlight],.rst-content pre.literal-block{border:1px solid #e1e4e5;overflow-x:auto;margin:1px 0 24px}.rst-content div[class^=highlight] div[class^=highlight],.rst-content pre.literal-block div[class^=highlight]{padding:0;border:none;margin:0}.rst-content div[class^=highlight] td.code{width:100%}.rst-content .linenodiv pre{border-right:1px solid #e6e9ea;margin:0;padding:12px;font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,Courier,monospace;user-select:none;pointer-events:none}.rst-content div[class^=highlight] pre{white-space:pre;margin:0;padding:12px;display:block;overflow:auto}.rst-content div[class^=highlight] pre .hll{display:block;margin:0 -12px;padding:0 12px}.rst-content .linenodiv pre,.rst-content div[class^=highlight] pre,.rst-content pre.literal-block{font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,Courier,monospace;font-size:12px;line-height:1.4}.rst-content div.highlight .gp{user-select:none;pointer-events:none}.rst-content .code-block-caption{font-style:italic;font-size:85%;line-height:1;padding:1em 0;text-align:center}@media print{.rst-content .codeblock,.rst-content div[class^=highlight],.rst-content div[class^=highlight] pre{white-space:pre-wrap}}.rst-content .admonition,.rst-content .admonition-todo,.rst-content .attention,.rst-content .caution,.rst-content .danger,.rst-content .error,.rst-content .hint,.rst-content .important,.rst-content .note,.rst-content .seealso,.rst-content .tip,.rst-content .warning{clear:both}.rst-content .admonition-todo .last,.rst-content .admonition-todo>:last-child,.rst-content .admonition .last,.rst-content .admonition>:last-child,.rst-content .attention .last,.rst-content .attention>:last-child,.rst-content .caution .last,.rst-content .caution>:last-child,.rst-content .danger .last,.rst-content .danger>:last-child,.rst-content .error .last,.rst-content .error>:last-child,.rst-content .hint .last,.rst-content .hint>:last-child,.rst-content .important .last,.rst-content .important>:last-child,.rst-content .note .last,.rst-content .note>:last-child,.rst-content .seealso .last,.rst-content .seealso>:last-child,.rst-content .tip .last,.rst-content .tip>:last-child,.rst-content .warning .last,.rst-content .warning>:last-child{margin-bottom:0}.rst-content .admonition-title:before{margin-right:4px}.rst-content .admonition table{border-color:rgba(0,0,0,.1)}.rst-content .admonition table td,.rst-content .admonition table th{background:transparent!important;border-color:rgba(0,0,0,.1)!important}.rst-content .section ol.loweralpha,.rst-content .section ol.loweralpha>li{list-style:lower-alpha}.rst-content .section ol.upperalpha,.rst-content .section ol.upperalpha>li{list-style:upper-alpha}.rst-content .section ol li>*,.rst-content .section ul li>*{margin-top:12px;margin-bottom:12px}.rst-content .section ol li>:first-child,.rst-content .section ul li>:first-child{margin-top:0}.rst-content .section ol li>p,.rst-content .section ol li>p:last-child,.rst-content .section ul li>p,.rst-content .section ul li>p:last-child{margin-bottom:12px}.rst-content .section ol li>p:only-child,.rst-content .section ol li>p:only-child:last-child,.rst-content .section ul li>p:only-child,.rst-content .section ul li>p:only-child:last-child{margin-bottom:0}.rst-content .section ol li>ol,.rst-content .section ol li>ul,.rst-content .section ul li>ol,.rst-content .section ul li>ul{margin-bottom:12px}.rst-content .section ol.simple li>*,.rst-content .section ol.simple li ol,.rst-content .section ol.simple li ul,.rst-content .section ul.simple li>*,.rst-content .section ul.simple li ol,.rst-content .section ul.simple li ul{margin-top:0;margin-bottom:0}.rst-content .line-block{margin-left:0;margin-bottom:24px;line-height:24px}.rst-content .line-block .line-block{margin-left:24px;margin-bottom:0}.rst-content .topic-title{font-weight:700;margin-bottom:12px}.rst-content .toc-backref{color:#404040}.rst-content .align-right{float:right;margin:0 0 24px 24px}.rst-content .align-left{float:left;margin:0 24px 24px 0}.rst-content .align-center{margin:auto}.rst-content .align-center:not(table){display:block}.rst-content .code-block-caption .headerlink,.rst-content .toctree-wrapper>p.caption .headerlink,.rst-content dl dt .headerlink,.rst-content h1 .headerlink,.rst-content h2 .headerlink,.rst-content h3 .headerlink,.rst-content h4 .headerlink,.rst-content h5 .headerlink,.rst-content h6 .headerlink,.rst-content p.caption .headerlink,.rst-content table>caption .headerlink{visibility:hidden;font-size:14px}.rst-content .code-block-caption .headerlink:after,.rst-content .toctree-wrapper>p.caption .headerlink:after,.rst-content dl dt .headerlink:after,.rst-content h1 .headerlink:after,.rst-content h2 .headerlink:after,.rst-content h3 .headerlink:after,.rst-content h4 .headerlink:after,.rst-content h5 .headerlink:after,.rst-content h6 .headerlink:after,.rst-content p.caption .headerlink:after,.rst-content table>caption .headerlink:after{content:"\f0c1";font-family:FontAwesome}.rst-content .code-block-caption:hover .headerlink:after,.rst-content .toctree-wrapper>p.caption:hover .headerlink:after,.rst-content dl dt:hover .headerlink:after,.rst-content h1:hover .headerlink:after,.rst-content h2:hover .headerlink:after,.rst-content h3:hover .headerlink:after,.rst-content h4:hover .headerlink:after,.rst-content h5:hover .headerlink:after,.rst-content h6:hover .headerlink:after,.rst-content p.caption:hover .headerlink:after,.rst-content table>caption:hover .headerlink:after{visibility:visible}.rst-content table>caption .headerlink:after{font-size:12px}.rst-content .centered{text-align:center}.rst-content .sidebar{float:right;width:40%;display:block;margin:0 0 24px 24px;padding:24px;background:#f3f6f6;border:1px solid #e1e4e5}.rst-content .sidebar dl,.rst-content .sidebar p,.rst-content .sidebar ul{font-size:90%}.rst-content .sidebar .last,.rst-content .sidebar>:last-child{margin-bottom:0}.rst-content .sidebar .sidebar-title{display:block;font-family:Roboto Slab,ff-tisa-web-pro,Georgia,Arial,sans-serif;font-weight:700;background:#e1e4e5;padding:6px 12px;margin:-24px -24px 24px;font-size:100%}.rst-content .highlighted{background:#f1c40f;box-shadow:0 0 0 2px #f1c40f;display:inline;font-weight:700}.rst-content .citation-reference,.rst-content .footnote-reference{vertical-align:baseline;position:relative;top:-.4em;line-height:0;font-size:90%}.rst-content .hlist{width:100%}html.writer-html4 .rst-content table.docutils.citation,html.writer-html4 .rst-content table.docutils.footnote{background:none;border:none}html.writer-html4 .rst-content table.docutils.citation td,html.writer-html4 .rst-content table.docutils.citation tr,html.writer-html4 .rst-content table.docutils.footnote td,html.writer-html4 .rst-content table.docutils.footnote tr{border:none;background-color:transparent!important;white-space:normal}html.writer-html4 .rst-content table.docutils.citation td.label,html.writer-html4 .rst-content table.docutils.footnote td.label{padding-left:0;padding-right:0;vertical-align:top}html.writer-html5 .rst-content dl dt span.classifier:before{content:" : "}html.writer-html5 .rst-content dl.field-list,html.writer-html5 .rst-content dl.footnote{display:grid;grid-template-columns:max-content auto}html.writer-html5 .rst-content dl.field-list>dt,html.writer-html5 .rst-content dl.footnote>dt{padding-left:1rem}html.writer-html5 .rst-content dl.field-list>dt:after,html.writer-html5 .rst-content dl.footnote>dt:after{content:":"}html.writer-html5 .rst-content dl.field-list>dd,html.writer-html5 .rst-content dl.field-list>dt,html.writer-html5 .rst-content dl.footnote>dd,html.writer-html5 .rst-content dl.footnote>dt{margin-bottom:0}html.writer-html5 .rst-content dl.footnote{font-size:.9rem}html.writer-html5 .rst-content dl.footnote>dt{margin:0 .5rem .5rem 0;line-height:1.2rem;word-break:break-all;font-weight:400}html.writer-html5 .rst-content dl.footnote>dt>span.brackets{margin-right:.5rem}html.writer-html5 .rst-content dl.footnote>dt>span.brackets:before{content:"["}html.writer-html5 .rst-content dl.footnote>dt>span.brackets:after{content:"]"}html.writer-html5 .rst-content dl.footnote>dt>span.fn-backref{font-style:italic}html.writer-html5 .rst-content dl.footnote>dd{margin:0 0 .5rem;line-height:1.2rem}html.writer-html5 .rst-content dl.footnote>dd p,html.writer-html5 .rst-content dl.option-list kbd{font-size:.9rem}.rst-content table.docutils.footnote,html.writer-html4 .rst-content table.docutils.citation,html.writer-html5 .rst-content dl.footnote{color:grey}.rst-content table.docutils.footnote code,.rst-content table.docutils.footnote tt,html.writer-html4 .rst-content table.docutils.citation code,html.writer-html4 .rst-content table.docutils.citation tt,html.writer-html5 .rst-content dl.footnote code,html.writer-html5 .rst-content dl.footnote tt{color:#555}.rst-content .wy-table-responsive.citation,.rst-content .wy-table-responsive.footnote{margin-bottom:0}.rst-content .wy-table-responsive.citation+:not(.citation),.rst-content .wy-table-responsive.footnote+:not(.footnote){margin-top:24px}.rst-content .wy-table-responsive.citation:last-child,.rst-content .wy-table-responsive.footnote:last-child{margin-bottom:24px}.rst-content table.docutils th{border-color:#e1e4e5}html.writer-html5 .rst-content table.docutils th{border:1px solid #e1e4e5}html.writer-html5 .rst-content table.docutils td>p,html.writer-html5 .rst-content table.docutils th>p{line-height:1rem;margin-bottom:0;font-size:.9rem}.rst-content table.docutils td .last,.rst-content table.docutils td .last>:last-child{margin-bottom:0}.rst-content table.field-list,.rst-content table.field-list td{border:none}.rst-content table.field-list td p{font-size:inherit;line-height:inherit}.rst-content table.field-list td>strong{display:inline-block}.rst-content table.field-list .field-name{padding-right:10px;text-align:left;white-space:nowrap}.rst-content table.field-list .field-body{text-align:left}.rst-content code,.rst-content tt{color:#000;font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,Courier,monospace;padding:2px 5px}.rst-content code big,.rst-content code em,.rst-content tt big,.rst-content tt em{font-size:100%!important;line-height:normal}.rst-content code.literal,.rst-content tt.literal{color:#e74c3c}.rst-content code.xref,.rst-content tt.xref,a .rst-content code,a .rst-content tt{font-weight:700;color:#404040}.rst-content kbd,.rst-content pre,.rst-content samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,Courier,monospace}.rst-content a code,.rst-content a tt{color:#2980b9}.rst-content dl{margin-bottom:24px}.rst-content dl dt{font-weight:700;margin-bottom:12px}.rst-content dl ol,.rst-content dl p,.rst-content dl table,.rst-content dl ul{margin-bottom:12px}.rst-content dl dd{margin:0 0 12px 24px;line-height:24px}html.writer-html4 .rst-content dl:not(.docutils),html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple){margin-bottom:24px}html.writer-html4 .rst-content dl:not(.docutils)>dt,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple)>dt{display:table;margin:6px 0;font-size:90%;line-height:normal;background:#e7f2fa;color:#2980b9;border-top:3px solid #6ab0de;padding:6px;position:relative}html.writer-html4 .rst-content dl:not(.docutils)>dt:before,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple)>dt:before{color:#6ab0de}html.writer-html4 .rst-content dl:not(.docutils)>dt .headerlink,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple)>dt .headerlink{color:#404040;font-size:100%!important}html.writer-html4 .rst-content dl:not(.docutils) dl:not(.field-list)>dt,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple) dl:not(.field-list)>dt{margin-bottom:6px;border:none;border-left:3px solid #ccc;background:#f0f0f0;color:#555}html.writer-html4 .rst-content dl:not(.docutils) dl:not(.field-list)>dt .headerlink,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple) dl:not(.field-list)>dt .headerlink{color:#404040;font-size:100%!important}html.writer-html4 .rst-content dl:not(.docutils)>dt:first-child,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple)>dt:first-child{margin-top:0}html.writer-html4 .rst-content dl:not(.docutils) code,html.writer-html4 .rst-content dl:not(.docutils) tt,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple) code,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple) tt{font-weight:700}html.writer-html4 .rst-content dl:not(.docutils) code.descclassname,html.writer-html4 .rst-content dl:not(.docutils) code.descname,html.writer-html4 .rst-content dl:not(.docutils) tt.descclassname,html.writer-html4 .rst-content dl:not(.docutils) tt.descname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple) code.descclassname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple) code.descname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple) tt.descclassname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple) tt.descname{background-color:transparent;border:none;padding:0;font-size:100%!important}html.writer-html4 .rst-content dl:not(.docutils) code.descname,html.writer-html4 .rst-content dl:not(.docutils) tt.descname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple) code.descname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple) tt.descname{font-weight:700}html.writer-html4 .rst-content dl:not(.docutils) .optional,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple) .optional{display:inline-block;padding:0 4px;color:#000;font-weight:700}html.writer-html4 .rst-content dl:not(.docutils) .property,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple) .property{display:inline-block;padding-right:8px}.rst-content .viewcode-back,.rst-content .viewcode-link{display:inline-block;color:#27ae60;font-size:80%;padding-left:24px}.rst-content .viewcode-back{display:block;float:right}.rst-content p.rubric{margin-bottom:12px;font-weight:700}.rst-content code.download,.rst-content tt.download{background:inherit;padding:inherit;font-weight:400;font-family:inherit;font-size:inherit;color:inherit;border:inherit;white-space:inherit}.rst-content code.download span:first-child,.rst-content tt.download span:first-child{-webkit-font-smoothing:subpixel-antialiased}.rst-content code.download span:first-child:before,.rst-content tt.download span:first-child:before{margin-right:4px}.rst-content .guilabel{border:1px solid #7fbbe3;background:#e7f2fa;font-size:80%;font-weight:700;border-radius:4px;padding:2.4px 6px;margin:auto 2px}.rst-content .versionmodified{font-style:italic}@media screen and (max-width:480px){.rst-content .sidebar{width:100%}}span[id*=MathJax-Span]{color:#404040}.math{text-align:center}@font-face{font-family:Lato;src:url(fonts/lato-normal.woff2?bd03a2cc277bbbc338d464e679fe9942) format("woff2"),url(fonts/lato-normal.woff?27bd77b9162d388cb8d4c4217c7c5e2a) format("woff");font-weight:400;font-style:normal;font-display:block}@font-face{font-family:Lato;src:url(fonts/lato-bold.woff2?cccb897485813c7c256901dbca54ecf2) format("woff2"),url(fonts/lato-bold.woff?d878b6c29b10beca227e9eef4246111b) format("woff");font-weight:700;font-style:normal;font-display:block}@font-face{font-family:Lato;src:url(fonts/lato-bold-italic.woff2?0b6bb6725576b072c5d0b02ecdd1900d) format("woff2"),url(fonts/lato-bold-italic.woff?9c7e4e9eb485b4a121c760e61bc3707c) format("woff");font-weight:700;font-style:italic;font-display:block}@font-face{font-family:Lato;src:url(fonts/lato-normal-italic.woff2?4eb103b4d12be57cb1d040ed5e162e9d) format("woff2"),url(fonts/lato-normal-italic.woff?f28f2d6482446544ef1ea1ccc6dd5892) format("woff");font-weight:400;font-style:italic;font-display:block}@font-face{font-family:Roboto Slab;font-style:normal;font-weight:400;src:url(fonts/Roboto-Slab-Regular.woff2?7abf5b8d04d26a2cafea937019bca958) format("woff2"),url(fonts/Roboto-Slab-Regular.woff?c1be9284088d487c5e3ff0a10a92e58c) format("woff");font-display:block}@font-face{font-family:Roboto Slab;font-style:normal;font-weight:700;src:url(fonts/Roboto-Slab-Bold.woff2?9984f4a9bda09be08e83f2506954adbe) format("woff2"),url(fonts/Roboto-Slab-Bold.woff?bed5564a116b05148e3b3bea6fb1162a) format("woff");font-display:block}
\ No newline at end of file
diff --git a/_static/dask.gif b/_static/dask.gif
new file mode 100644
index 00000000..faf217ed
Binary files /dev/null and b/_static/dask.gif differ
diff --git a/_static/doctools.js b/_static/doctools.js
new file mode 100644
index 00000000..527b876c
--- /dev/null
+++ b/_static/doctools.js
@@ -0,0 +1,156 @@
+/*
+ * doctools.js
+ * ~~~~~~~~~~~
+ *
+ * Base JavaScript utilities for all Sphinx HTML documentation.
+ *
+ * :copyright: Copyright 2007-2022 by the Sphinx team, see AUTHORS.
+ * :license: BSD, see LICENSE for details.
+ *
+ */
+"use strict";
+
+const BLACKLISTED_KEY_CONTROL_ELEMENTS = new Set([
+ "TEXTAREA",
+ "INPUT",
+ "SELECT",
+ "BUTTON",
+]);
+
+const _ready = (callback) => {
+ if (document.readyState !== "loading") {
+ callback();
+ } else {
+ document.addEventListener("DOMContentLoaded", callback);
+ }
+};
+
+/**
+ * Small JavaScript module for the documentation.
+ */
+const Documentation = {
+ init: () => {
+ Documentation.initDomainIndexTable();
+ Documentation.initOnKeyListeners();
+ },
+
+ /**
+ * i18n support
+ */
+ TRANSLATIONS: {},
+ PLURAL_EXPR: (n) => (n === 1 ? 0 : 1),
+ LOCALE: "unknown",
+
+ // gettext and ngettext don't access this so that the functions
+ // can safely bound to a different name (_ = Documentation.gettext)
+ gettext: (string) => {
+ const translated = Documentation.TRANSLATIONS[string];
+ switch (typeof translated) {
+ case "undefined":
+ return string; // no translation
+ case "string":
+ return translated; // translation exists
+ default:
+ return translated[0]; // (singular, plural) translation tuple exists
+ }
+ },
+
+ ngettext: (singular, plural, n) => {
+ const translated = Documentation.TRANSLATIONS[singular];
+ if (typeof translated !== "undefined")
+ return translated[Documentation.PLURAL_EXPR(n)];
+ return n === 1 ? singular : plural;
+ },
+
+ addTranslations: (catalog) => {
+ Object.assign(Documentation.TRANSLATIONS, catalog.messages);
+ Documentation.PLURAL_EXPR = new Function(
+ "n",
+ `return (${catalog.plural_expr})`
+ );
+ Documentation.LOCALE = catalog.locale;
+ },
+
+ /**
+ * helper function to focus on search bar
+ */
+ focusSearchBar: () => {
+ document.querySelectorAll("input[name=q]")[0]?.focus();
+ },
+
+ /**
+ * Initialise the domain index toggle buttons
+ */
+ initDomainIndexTable: () => {
+ const toggler = (el) => {
+ const idNumber = el.id.substr(7);
+ const toggledRows = document.querySelectorAll(`tr.cg-${idNumber}`);
+ if (el.src.substr(-9) === "minus.png") {
+ el.src = `${el.src.substr(0, el.src.length - 9)}plus.png`;
+ toggledRows.forEach((el) => (el.style.display = "none"));
+ } else {
+ el.src = `${el.src.substr(0, el.src.length - 8)}minus.png`;
+ toggledRows.forEach((el) => (el.style.display = ""));
+ }
+ };
+
+ const togglerElements = document.querySelectorAll("img.toggler");
+ togglerElements.forEach((el) =>
+ el.addEventListener("click", (event) => toggler(event.currentTarget))
+ );
+ togglerElements.forEach((el) => (el.style.display = ""));
+ if (DOCUMENTATION_OPTIONS.COLLAPSE_INDEX) togglerElements.forEach(toggler);
+ },
+
+ initOnKeyListeners: () => {
+ // only install a listener if it is really needed
+ if (
+ !DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS &&
+ !DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS
+ )
+ return;
+
+ document.addEventListener("keydown", (event) => {
+ // bail for input elements
+ if (BLACKLISTED_KEY_CONTROL_ELEMENTS.has(document.activeElement.tagName)) return;
+ // bail with special keys
+ if (event.altKey || event.ctrlKey || event.metaKey) return;
+
+ if (!event.shiftKey) {
+ switch (event.key) {
+ case "ArrowLeft":
+ if (!DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS) break;
+
+ const prevLink = document.querySelector('link[rel="prev"]');
+ if (prevLink && prevLink.href) {
+ window.location.href = prevLink.href;
+ event.preventDefault();
+ }
+ break;
+ case "ArrowRight":
+ if (!DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS) break;
+
+ const nextLink = document.querySelector('link[rel="next"]');
+ if (nextLink && nextLink.href) {
+ window.location.href = nextLink.href;
+ event.preventDefault();
+ }
+ break;
+ }
+ }
+
+ // some keyboard layouts may need Shift to get /
+ switch (event.key) {
+ case "/":
+ if (!DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS) break;
+ Documentation.focusSearchBar();
+ event.preventDefault();
+ }
+ });
+ },
+};
+
+// quick alias for translations
+const _ = Documentation.gettext;
+
+_ready(Documentation.init);
diff --git a/_static/documentation_options.js b/_static/documentation_options.js
new file mode 100644
index 00000000..4184d466
--- /dev/null
+++ b/_static/documentation_options.js
@@ -0,0 +1,14 @@
+var DOCUMENTATION_OPTIONS = {
+ URL_ROOT: document.getElementById("documentation_options").getAttribute('data-url_root'),
+ VERSION: '0.9.0',
+ LANGUAGE: 'en',
+ COLLAPSE_INDEX: false,
+ BUILDER: 'html',
+ FILE_SUFFIX: '.html',
+ LINK_SUFFIX: '.html',
+ HAS_SOURCE: true,
+ SOURCELINK_SUFFIX: '.txt',
+ NAVIGATION_WITH_KEYS: false,
+ SHOW_SEARCH_SUMMARY: true,
+ ENABLE_SEARCH_SHORTCUTS: true,
+};
\ No newline at end of file
diff --git a/_static/file.png b/_static/file.png
new file mode 100644
index 00000000..a858a410
Binary files /dev/null and b/_static/file.png differ
diff --git a/_static/fonts/Inconsolata-Bold.ttf b/_static/fonts/Inconsolata-Bold.ttf
new file mode 100644
index 00000000..809c1f58
Binary files /dev/null and b/_static/fonts/Inconsolata-Bold.ttf differ
diff --git a/_static/fonts/Inconsolata-Regular.ttf b/_static/fonts/Inconsolata-Regular.ttf
new file mode 100644
index 00000000..fc981ce7
Binary files /dev/null and b/_static/fonts/Inconsolata-Regular.ttf differ
diff --git a/_static/fonts/Inconsolata.ttf b/_static/fonts/Inconsolata.ttf
new file mode 100644
index 00000000..4b8a36d2
Binary files /dev/null and b/_static/fonts/Inconsolata.ttf differ
diff --git a/_static/fonts/Lato-Bold.ttf b/_static/fonts/Lato-Bold.ttf
new file mode 100644
index 00000000..1d23c706
Binary files /dev/null and b/_static/fonts/Lato-Bold.ttf differ
diff --git a/_static/fonts/Lato-Regular.ttf b/_static/fonts/Lato-Regular.ttf
new file mode 100644
index 00000000..0f3d0f83
Binary files /dev/null and b/_static/fonts/Lato-Regular.ttf differ
diff --git a/_static/fonts/Lato/lato-bold.eot b/_static/fonts/Lato/lato-bold.eot
new file mode 100644
index 00000000..3361183a
Binary files /dev/null and b/_static/fonts/Lato/lato-bold.eot differ
diff --git a/_static/fonts/Lato/lato-bold.ttf b/_static/fonts/Lato/lato-bold.ttf
new file mode 100644
index 00000000..29f691d5
Binary files /dev/null and b/_static/fonts/Lato/lato-bold.ttf differ
diff --git a/_static/fonts/Lato/lato-bold.woff b/_static/fonts/Lato/lato-bold.woff
new file mode 100644
index 00000000..c6dff51f
Binary files /dev/null and b/_static/fonts/Lato/lato-bold.woff differ
diff --git a/_static/fonts/Lato/lato-bold.woff2 b/_static/fonts/Lato/lato-bold.woff2
new file mode 100644
index 00000000..bb195043
Binary files /dev/null and b/_static/fonts/Lato/lato-bold.woff2 differ
diff --git a/_static/fonts/Lato/lato-bolditalic.eot b/_static/fonts/Lato/lato-bolditalic.eot
new file mode 100644
index 00000000..3d415493
Binary files /dev/null and b/_static/fonts/Lato/lato-bolditalic.eot differ
diff --git a/_static/fonts/Lato/lato-bolditalic.ttf b/_static/fonts/Lato/lato-bolditalic.ttf
new file mode 100644
index 00000000..f402040b
Binary files /dev/null and b/_static/fonts/Lato/lato-bolditalic.ttf differ
diff --git a/_static/fonts/Lato/lato-bolditalic.woff b/_static/fonts/Lato/lato-bolditalic.woff
new file mode 100644
index 00000000..88ad05b9
Binary files /dev/null and b/_static/fonts/Lato/lato-bolditalic.woff differ
diff --git a/_static/fonts/Lato/lato-bolditalic.woff2 b/_static/fonts/Lato/lato-bolditalic.woff2
new file mode 100644
index 00000000..c4e3d804
Binary files /dev/null and b/_static/fonts/Lato/lato-bolditalic.woff2 differ
diff --git a/_static/fonts/Lato/lato-italic.eot b/_static/fonts/Lato/lato-italic.eot
new file mode 100644
index 00000000..3f826421
Binary files /dev/null and b/_static/fonts/Lato/lato-italic.eot differ
diff --git a/_static/fonts/Lato/lato-italic.ttf b/_static/fonts/Lato/lato-italic.ttf
new file mode 100644
index 00000000..b4bfc9b2
Binary files /dev/null and b/_static/fonts/Lato/lato-italic.ttf differ
diff --git a/_static/fonts/Lato/lato-italic.woff b/_static/fonts/Lato/lato-italic.woff
new file mode 100644
index 00000000..76114bc0
Binary files /dev/null and b/_static/fonts/Lato/lato-italic.woff differ
diff --git a/_static/fonts/Lato/lato-italic.woff2 b/_static/fonts/Lato/lato-italic.woff2
new file mode 100644
index 00000000..3404f37e
Binary files /dev/null and b/_static/fonts/Lato/lato-italic.woff2 differ
diff --git a/_static/fonts/Lato/lato-regular.eot b/_static/fonts/Lato/lato-regular.eot
new file mode 100644
index 00000000..11e3f2a5
Binary files /dev/null and b/_static/fonts/Lato/lato-regular.eot differ
diff --git a/_static/fonts/Lato/lato-regular.ttf b/_static/fonts/Lato/lato-regular.ttf
new file mode 100644
index 00000000..74decd9e
Binary files /dev/null and b/_static/fonts/Lato/lato-regular.ttf differ
diff --git a/_static/fonts/Lato/lato-regular.woff b/_static/fonts/Lato/lato-regular.woff
new file mode 100644
index 00000000..ae1307ff
Binary files /dev/null and b/_static/fonts/Lato/lato-regular.woff differ
diff --git a/_static/fonts/Lato/lato-regular.woff2 b/_static/fonts/Lato/lato-regular.woff2
new file mode 100644
index 00000000..3bf98433
Binary files /dev/null and b/_static/fonts/Lato/lato-regular.woff2 differ
diff --git a/_static/fonts/RobotoSlab-Bold.ttf b/_static/fonts/RobotoSlab-Bold.ttf
new file mode 100644
index 00000000..df5d1df2
Binary files /dev/null and b/_static/fonts/RobotoSlab-Bold.ttf differ
diff --git a/_static/fonts/RobotoSlab-Regular.ttf b/_static/fonts/RobotoSlab-Regular.ttf
new file mode 100644
index 00000000..eb52a790
Binary files /dev/null and b/_static/fonts/RobotoSlab-Regular.ttf differ
diff --git a/_static/fonts/RobotoSlab/roboto-slab-v7-bold.eot b/_static/fonts/RobotoSlab/roboto-slab-v7-bold.eot
new file mode 100644
index 00000000..79dc8efe
Binary files /dev/null and b/_static/fonts/RobotoSlab/roboto-slab-v7-bold.eot differ
diff --git a/_static/fonts/RobotoSlab/roboto-slab-v7-bold.ttf b/_static/fonts/RobotoSlab/roboto-slab-v7-bold.ttf
new file mode 100644
index 00000000..df5d1df2
Binary files /dev/null and b/_static/fonts/RobotoSlab/roboto-slab-v7-bold.ttf differ
diff --git a/_static/fonts/RobotoSlab/roboto-slab-v7-bold.woff b/_static/fonts/RobotoSlab/roboto-slab-v7-bold.woff
new file mode 100644
index 00000000..6cb60000
Binary files /dev/null and b/_static/fonts/RobotoSlab/roboto-slab-v7-bold.woff differ
diff --git a/_static/fonts/RobotoSlab/roboto-slab-v7-bold.woff2 b/_static/fonts/RobotoSlab/roboto-slab-v7-bold.woff2
new file mode 100644
index 00000000..7059e231
Binary files /dev/null and b/_static/fonts/RobotoSlab/roboto-slab-v7-bold.woff2 differ
diff --git a/_static/fonts/RobotoSlab/roboto-slab-v7-regular.eot b/_static/fonts/RobotoSlab/roboto-slab-v7-regular.eot
new file mode 100644
index 00000000..2f7ca78a
Binary files /dev/null and b/_static/fonts/RobotoSlab/roboto-slab-v7-regular.eot differ
diff --git a/_static/fonts/RobotoSlab/roboto-slab-v7-regular.ttf b/_static/fonts/RobotoSlab/roboto-slab-v7-regular.ttf
new file mode 100644
index 00000000..eb52a790
Binary files /dev/null and b/_static/fonts/RobotoSlab/roboto-slab-v7-regular.ttf differ
diff --git a/_static/fonts/RobotoSlab/roboto-slab-v7-regular.woff b/_static/fonts/RobotoSlab/roboto-slab-v7-regular.woff
new file mode 100644
index 00000000..f815f63f
Binary files /dev/null and b/_static/fonts/RobotoSlab/roboto-slab-v7-regular.woff differ
diff --git a/_static/fonts/RobotoSlab/roboto-slab-v7-regular.woff2 b/_static/fonts/RobotoSlab/roboto-slab-v7-regular.woff2
new file mode 100644
index 00000000..f2c76e5b
Binary files /dev/null and b/_static/fonts/RobotoSlab/roboto-slab-v7-regular.woff2 differ
diff --git a/_static/fonts/fontawesome-webfont.eot b/_static/fonts/fontawesome-webfont.eot
new file mode 100644
index 00000000..e9f60ca9
Binary files /dev/null and b/_static/fonts/fontawesome-webfont.eot differ
diff --git a/_static/fonts/fontawesome-webfont.svg b/_static/fonts/fontawesome-webfont.svg
new file mode 100644
index 00000000..855c845e
--- /dev/null
+++ b/_static/fonts/fontawesome-webfont.svg
@@ -0,0 +1,2671 @@
+
+
+
diff --git a/_static/fonts/fontawesome-webfont.ttf b/_static/fonts/fontawesome-webfont.ttf
new file mode 100644
index 00000000..35acda2f
Binary files /dev/null and b/_static/fonts/fontawesome-webfont.ttf differ
diff --git a/_static/fonts/fontawesome-webfont.woff b/_static/fonts/fontawesome-webfont.woff
new file mode 100644
index 00000000..400014a4
Binary files /dev/null and b/_static/fonts/fontawesome-webfont.woff differ
diff --git a/_static/fonts/fontawesome-webfont.woff2 b/_static/fonts/fontawesome-webfont.woff2
new file mode 100644
index 00000000..4d13fc60
Binary files /dev/null and b/_static/fonts/fontawesome-webfont.woff2 differ
diff --git a/_static/front.jpg b/_static/front.jpg
new file mode 100644
index 00000000..af3e1a77
Binary files /dev/null and b/_static/front.jpg differ
diff --git a/_static/jquery-3.6.0.js b/_static/jquery-3.6.0.js
new file mode 100644
index 00000000..fc6c299b
--- /dev/null
+++ b/_static/jquery-3.6.0.js
@@ -0,0 +1,10881 @@
+/*!
+ * jQuery JavaScript Library v3.6.0
+ * https://jquery.com/
+ *
+ * Includes Sizzle.js
+ * https://sizzlejs.com/
+ *
+ * Copyright OpenJS Foundation and other contributors
+ * Released under the MIT license
+ * https://jquery.org/license
+ *
+ * Date: 2021-03-02T17:08Z
+ */
+( function( global, factory ) {
+
+ "use strict";
+
+ if ( typeof module === "object" && typeof module.exports === "object" ) {
+
+ // For CommonJS and CommonJS-like environments where a proper `window`
+ // is present, execute the factory and get jQuery.
+ // For environments that do not have a `window` with a `document`
+ // (such as Node.js), expose a factory as module.exports.
+ // This accentuates the need for the creation of a real `window`.
+ // e.g. var jQuery = require("jquery")(window);
+ // See ticket #14549 for more info.
+ module.exports = global.document ?
+ factory( global, true ) :
+ function( w ) {
+ if ( !w.document ) {
+ throw new Error( "jQuery requires a window with a document" );
+ }
+ return factory( w );
+ };
+ } else {
+ factory( global );
+ }
+
+// Pass this if window is not defined yet
+} )( typeof window !== "undefined" ? window : this, function( window, noGlobal ) {
+
+// Edge <= 12 - 13+, Firefox <=18 - 45+, IE 10 - 11, Safari 5.1 - 9+, iOS 6 - 9.1
+// throw exceptions when non-strict code (e.g., ASP.NET 4.5) accesses strict mode
+// arguments.callee.caller (trac-13335). But as of jQuery 3.0 (2016), strict mode should be common
+// enough that all such attempts are guarded in a try block.
+"use strict";
+
+var arr = [];
+
+var getProto = Object.getPrototypeOf;
+
+var slice = arr.slice;
+
+var flat = arr.flat ? function( array ) {
+ return arr.flat.call( array );
+} : function( array ) {
+ return arr.concat.apply( [], array );
+};
+
+
+var push = arr.push;
+
+var indexOf = arr.indexOf;
+
+var class2type = {};
+
+var toString = class2type.toString;
+
+var hasOwn = class2type.hasOwnProperty;
+
+var fnToString = hasOwn.toString;
+
+var ObjectFunctionString = fnToString.call( Object );
+
+var support = {};
+
+var isFunction = function isFunction( obj ) {
+
+ // Support: Chrome <=57, Firefox <=52
+ // In some browsers, typeof returns "function" for HTML