diff --git a/.gitignore b/.gitignore index eed6c903..260a980b 100644 --- a/.gitignore +++ b/.gitignore @@ -137,3 +137,9 @@ dmypy.json # Cython debug symbols cython_debug/ + +# IDE +.idea/ + +# outputs +src/primaite/outputs/ \ No newline at end of file diff --git a/docs/source/primaite-dependencies.rst b/docs/source/primaite-dependencies.rst index e9684b65..a7a0ec26 100644 --- a/docs/source/primaite-dependencies.rst +++ b/docs/source/primaite-dependencies.rst @@ -1,385 +1,323 @@ -+-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ -| Name | Version | License | URL | -+-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ -| Babel | 2.12.1 | BSD License | https://babel.pocoo.org/ | -+-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ -| GPUtil | 1.4.0 | MIT | https://github.com/anderskm/gputil | -+-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ -| Gymnasium | 0.26.3 | MIT | https://gymnasium.farama.org/ | -+-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ -| Jinja2 | 3.1.2 | BSD License | https://palletsprojects.com/p/jinja/ | -+-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ -| Markdown | 3.4.3 | BSD License | https://Python-Markdown.github.io/ | -+-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ -| MarkupSafe | 2.1.2 | BSD License | https://palletsprojects.com/p/markupsafe/ | -+-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ -| Pillow | 9.5.0 | Historical Permission Notice and Disclaimer (HPND) | https://python-pillow.org | -+-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ -| PyWavelets | 1.4.1 | MIT License | https://github.com/PyWavelets/pywt | -+-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ -| PyYAML | 6.0 | MIT License | https://pyyaml.org/ | -+-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ -| Pygments | 2.15.1 | BSD License | https://pygments.org | -+-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ -| Send2Trash | 1.8.2 | BSD License | https://github.com/arsenetar/send2trash | -+-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ -| Sphinx | 6.1.3 | BSD License | https://www.sphinx-doc.org/ | -+-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ -| Werkzeug | 2.3.4 | BSD License | UNKNOWN | -+-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ -| absl-py | 1.4.0 | Apache Software License | https://github.com/abseil/abseil-py | -+-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ -| aiofiles | 22.1.0 | Apache Software License | https://github.com/Tinche/aiofiles | -+-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ -| aiosignal | 1.3.1 | Apache Software License | https://github.com/aio-libs/aiosignal | -+-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ -| aiosqlite | 0.19.0 | MIT License | UNKNOWN | -+-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ -| alabaster | 0.7.13 | BSD License | https://alabaster.readthedocs.io | -+-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ -| anyio | 3.7.0 | MIT License | https://anyio.readthedocs.io/en/stable/versionhistory.html | -+-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ -| argon2-cffi | 21.3.0 | MIT License | https://github.com/hynek/argon2-cffi/blob/main/CHANGELOG.md | -+-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ -| argon2-cffi-bindings | 21.2.0 | MIT License | https://github.com/hynek/argon2-cffi-bindings | -+-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ -| arrow | 1.2.3 | Apache Software License | https://arrow.readthedocs.io | -+-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ -| asttokens | 2.2.1 | Apache 2.0 | https://github.com/gristlabs/asttokens | -+-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ -| attrs | 23.1.0 | MIT License | https://www.attrs.org/en/stable/changelog.html | -+-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ -| backcall | 0.2.0 | BSD License | https://github.com/takluyver/backcall | -+-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ -| beautifulsoup4 | 4.12.2 | MIT License | https://www.crummy.com/software/BeautifulSoup/bs4/ | -+-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ -| bleach | 6.0.0 | Apache Software License | https://github.com/mozilla/bleach | -+-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ -| build | 0.10.0 | MIT License | UNKNOWN | -+-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ -| cachetools | 5.3.0 | MIT License | https://github.com/tkem/cachetools/ | -+-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ -| certifi | 2023.5.7 | Mozilla Public License 2.0 (MPL 2.0) | https://github.com/certifi/python-certifi | -+-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ -| cffi | 1.15.1 | MIT License | http://cffi.readthedocs.org | -+-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ -| cfgv | 3.3.1 | MIT License | https://github.com/asottile/cfgv | -+-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ -| charset-normalizer | 3.1.0 | MIT License | https://github.com/Ousret/charset_normalizer | -+-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ -| click | 8.1.3 | BSD License | https://palletsprojects.com/p/click/ | -+-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ -| cloudpickle | 2.2.1 | BSD License | https://github.com/cloudpipe/cloudpickle | -+-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ -| colorama | 0.4.6 | BSD License | https://github.com/tartley/colorama | -+-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ -| comm | 0.1.3 | BSD License | https://github.com/ipython/comm | -+-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ -| contourpy | 1.0.7 | BSD License | UNKNOWN | -+-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ -| coverage | 7.2.6 | Apache Software License | https://github.com/nedbat/coveragepy | -+-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ -| cycler | 0.11.0 | BSD License | https://github.com/matplotlib/cycler | -+-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ -| debugpy | 1.6.7 | Eclipse Public License 2.0 (EPL-2.0); MIT License | https://aka.ms/debugpy | -+-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ -| decorator | 5.1.1 | BSD License | https://github.com/micheles/decorator | -+-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ -| defusedxml | 0.7.1 | Python Software Foundation License | https://github.com/tiran/defusedxml | -+-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ -| distlib | 0.3.6 | Python Software Foundation License | https://github.com/pypa/distlib | -+-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ -| dm-tree | 0.1.8 | Apache Software License | https://github.com/deepmind/tree | -+-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ -| docutils | 0.19 | BSD License; GNU General Public License (GPL); Public Domain; Python Software Foundation License | https://docutils.sourceforge.io/ | -+-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ -| exceptiongroup | 1.1.1 | MIT License | https://github.com/agronholm/exceptiongroup/blob/main/CHANGES.rst | -+-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ -| executing | 1.2.0 | MIT License | https://github.com/alexmojaki/executing | -+-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ -| fastjsonschema | 2.17.1 | BSD License | https://github.com/horejsek/python-fastjsonschema | -+-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ -| filelock | 3.12.0 | The Unlicense (Unlicense) | https://github.com/tox-dev/py-filelock | -+-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ -| flake8 | 6.0.0 | MIT License | https://github.com/pycqa/flake8 | -+-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ -| fonttools | 4.39.4 | MIT License | http://github.com/fonttools/fonttools | -+-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ -| fqdn | 1.5.1 | Mozilla Public License 2.0 (MPL 2.0) | https://github.com/ypcrts/fqdn | -+-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ -| frozenlist | 1.3.3 | Apache Software License | https://github.com/aio-libs/frozenlist | -+-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ -| furo | 2023.3.27 | MIT License | UNKNOWN | -+-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ -| google-auth | 2.19.0 | Apache Software License | https://github.com/googleapis/google-auth-library-python | -+-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ -| google-auth-oauthlib | 1.0.0 | Apache Software License | https://github.com/GoogleCloudPlatform/google-auth-library-python-oauthlib | -+-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ -| grpcio | 1.51.3 | Apache Software License | https://grpc.io | -+-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ -| gym | 0.21.0 | UNKNOWN | https://github.com/openai/gym | -+-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ -| gymnasium-notices | 0.0.1 | MIT License | https://github.com/Farama-Foundation/gym-notices | -+-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ -| identify | 2.5.24 | MIT License | https://github.com/pre-commit/identify | -+-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ -| idna | 3.4 | BSD License | https://github.com/kjd/idna | -+-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ -| imageio | 2.29.0 | BSD License | https://github.com/imageio/imageio | -+-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ -| imagesize | 1.4.1 | MIT License | https://github.com/shibukawa/imagesize_py | -+-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ -| importlib-metadata | 4.13.0 | Apache Software License | https://github.com/python/importlib_metadata | -+-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ -| iniconfig | 2.0.0 | MIT License | https://github.com/pytest-dev/iniconfig | -+-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ -| ipykernel | 6.23.1 | BSD License | https://ipython.org | -+-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ -| ipython | 8.13.2 | BSD License | https://ipython.org | -+-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ -| ipython-genutils | 0.2.0 | BSD License | http://ipython.org | -+-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ -| isoduration | 20.11.0 | ISC License (ISCL) | https://github.com/bolsote/isoduration | -+-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ -| jedi | 0.18.2 | MIT License | https://github.com/davidhalter/jedi | -+-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ -| json5 | 0.9.14 | Apache Software License | https://github.com/dpranke/pyjson5 | -+-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ -| jsonpointer | 2.3 | BSD License | https://github.com/stefankoegl/python-json-pointer | -+-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ -| jsonschema | 4.17.3 | MIT License | https://github.com/python-jsonschema/jsonschema | -+-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ -| jupyter-events | 0.6.3 | BSD License | http://jupyter.org | -+-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ -| jupyter-ydoc | 0.2.4 | BSD 3-Clause License | https://jupyter.org | -+-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ -| jupyter_client | 8.2.0 | BSD License | https://jupyter.org | -+-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ -| jupyter_core | 5.3.0 | BSD License | https://jupyter.org | -+-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ -| jupyter_server | 2.6.0 | BSD License | https://jupyter-server.readthedocs.io | -+-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ -| jupyter_server_fileid | 0.9.0 | BSD License | UNKNOWN | -+-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ -| jupyter_server_terminals | 0.4.4 | BSD License | https://jupyter.org | -+-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ -| jupyter_server_ydoc | 0.6.1 | BSD License | https://jupyter.org | -+-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ -| jupyterlab | 3.6.1 | BSD License | https://jupyter.org | -+-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ -| jupyterlab-pygments | 0.2.2 | BSD | https://github.com/jupyterlab/jupyterlab_pygments | -+-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ -| jupyterlab_server | 2.22.1 | BSD License | https://jupyterlab-server.readthedocs.io | -+-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ -| kiwisolver | 1.4.4 | BSD License | UNKNOWN | -+-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ -| lazy_loader | 0.2 | BSD License | https://github.com/scientific-python/lazy_loader | -+-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ -| lz4 | 4.3.2 | BSD License | https://github.com/python-lz4/python-lz4 | -+-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ -| markdown-it-py | 2.2.0 | MIT License | https://github.com/executablebooks/markdown-it-py | -+-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ -| matplotlib | 3.7.1 | Python Software Foundation License | https://matplotlib.org | -+-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ -| matplotlib-inline | 0.1.6 | BSD 3-Clause | https://github.com/ipython/matplotlib-inline | -+-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ -| mccabe | 0.7.0 | MIT License | https://github.com/pycqa/mccabe | -+-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ -| mdurl | 0.1.2 | MIT License | https://github.com/executablebooks/mdurl | -+-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ -| mistune | 2.0.5 | BSD License | https://github.com/lepture/mistune | -+-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ -| mock | 5.0.2 | BSD License | http://mock.readthedocs.org/en/latest/ | -+-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ -| mpmath | 1.3.0 | BSD License | http://mpmath.org/ | -+-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ -| msgpack | 1.0.5 | Apache Software License | https://msgpack.org/ | -+-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ -| nbclassic | 1.0.0 | BSD License | https://github.com/jupyter/nbclassic | -+-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ -| nbclient | 0.8.0 | BSD License | https://jupyter.org | -+-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ -| nbconvert | 7.4.0 | BSD License | https://jupyter.org | -+-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ -| nbformat | 5.9.0 | BSD License | https://jupyter.org | -+-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ -| nest-asyncio | 1.5.6 | BSD License | https://github.com/erdewit/nest_asyncio | -+-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ -| networkx | 3.1 | BSD License | https://networkx.org/ | -+-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ -| nodeenv | 1.8.0 | BSD License | https://github.com/ekalinin/nodeenv | -+-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ -| notebook | 6.5.4 | BSD License | http://jupyter.org | -+-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ -| notebook_shim | 0.2.3 | BSD License | UNKNOWN | -+-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ -| numpy | 1.23.5 | BSD License | https://www.numpy.org | -+-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ -| oauthlib | 3.2.2 | BSD License | https://github.com/oauthlib/oauthlib | -+-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ -| overrides | 7.3.1 | Apache License, Version 2.0 | https://github.com/mkorpela/overrides | -+-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ -| packaging | 23.1 | Apache Software License; BSD License | https://github.com/pypa/packaging | -+-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ -| pandas | 2.0.1 | BSD License | UNKNOWN | -+-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ -| pandocfilters | 1.5.0 | BSD License | http://github.com/jgm/pandocfilters | -+-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ -| parso | 0.8.3 | MIT License | https://github.com/davidhalter/parso | -+-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ -| pickleshare | 0.7.5 | MIT License | https://github.com/pickleshare/pickleshare | -+-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ -| platformdirs | 3.5.1 | MIT License | https://github.com/platformdirs/platformdirs | -+-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ -| pluggy | 1.0.0 | MIT License | https://github.com/pytest-dev/pluggy | -+-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ -| pre-commit | 2.20.0 | MIT License | https://github.com/pre-commit/pre-commit | -+-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ -| primaite | 1.2.1 | MIT License | UNKNOWN | -+-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ -| prometheus-client | 0.17.0 | Apache Software License | https://github.com/prometheus/client_python | -+-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ -| prompt-toolkit | 3.0.38 | BSD License | https://github.com/prompt-toolkit/python-prompt-toolkit | -+-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ -| protobuf | 3.20.3 | BSD-3-Clause | https://developers.google.com/protocol-buffers/ | -+-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ -| psutil | 5.9.5 | BSD License | https://github.com/giampaolo/psutil | -+-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ -| pure-eval | 0.2.2 | MIT License | http://github.com/alexmojaki/pure_eval | -+-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ -| pyasn1 | 0.5.0 | BSD License | https://github.com/pyasn1/pyasn1 | -+-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ -| pyasn1-modules | 0.3.0 | BSD License | https://github.com/pyasn1/pyasn1-modules | -+-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ -| pycodestyle | 2.10.0 | MIT License | https://pycodestyle.pycqa.org/ | -+-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ -| pycparser | 2.21 | BSD License | https://github.com/eliben/pycparser | -+-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ -| pyflakes | 3.0.1 | MIT License | https://github.com/PyCQA/pyflakes | -+-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ -| pyparsing | 3.0.9 | MIT License | https://github.com/pyparsing/pyparsing/ | -+-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ -| pyproject_hooks | 1.0.0 | MIT License | https://github.com/pypa/pyproject-hooks | -+-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ -| pyrsistent | 0.19.3 | MIT License | https://github.com/tobgu/pyrsistent/ | -+-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ -| pytest | 7.2.0 | MIT License | https://docs.pytest.org/en/latest/ | -+-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ -| pytest-cov | 4.0.0 | MIT License | https://github.com/pytest-dev/pytest-cov | -+-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ -| pytest-flake8 | 1.1.1 | BSD License | https://github.com/tholo/pytest-flake8 | -+-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ -| python-dateutil | 2.8.2 | Apache Software License; BSD License | https://github.com/dateutil/dateutil | -+-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ -| python-json-logger | 2.0.7 | BSD License | http://github.com/madzak/python-json-logger | -+-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ -| pytz | 2023.3 | MIT License | http://pythonhosted.org/pytz | -+-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ -| pywin32 | 306 | Python Software Foundation License | https://github.com/mhammond/pywin32 | -+-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ -| pywinpty | 2.0.10 | MIT | UNKNOWN | -+-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ -| pyzmq | 25.1.0 | BSD License; GNU Library or Lesser General Public License (LGPL) | https://pyzmq.readthedocs.org | -+-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ -| ray | 2.2.0 | Apache 2.0 | https://github.com/ray-project/ray | -+-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ -| requests | 2.31.0 | Apache Software License | https://requests.readthedocs.io | -+-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ -| requests-oauthlib | 1.3.1 | BSD License | https://github.com/requests/requests-oauthlib | -+-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ -| rfc3339-validator | 0.1.4 | MIT License | https://github.com/naimetti/rfc3339-validator | -+-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ -| rfc3986-validator | 0.1.1 | MIT License | https://github.com/naimetti/rfc3986-validator | -+-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ -| rich | 13.3.5 | MIT License | https://github.com/Textualize/rich | -+-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ -| rsa | 4.9 | Apache Software License | https://stuvel.eu/rsa | -+-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ -| scikit-image | 0.20.0 | BSD License | https://scikit-image.org | -+-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ -| scipy | 1.10.1 | BSD License | https://scipy.org/ | -+-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ -| shellingham | 1.5.0.post1 | ISC License (ISCL) | https://github.com/sarugaku/shellingham | -+-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ -| six | 1.16.0 | MIT License | https://github.com/benjaminp/six | -+-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ -| sniffio | 1.3.0 | Apache Software License; MIT License | https://github.com/python-trio/sniffio | -+-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ -| snowballstemmer | 2.2.0 | BSD License | https://github.com/snowballstem/snowball | -+-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ -| soupsieve | 2.4.1 | MIT License | https://github.com/facelessuser/soupsieve | -+-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ -| sphinx-basic-ng | 1.0.0b1 | MIT License | https://github.com/pradyunsg/sphinx-basic-ng | -+-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ -| sphinx-code-tabs | 0.5.3 | The Unlicense (Unlicense) | https://github.com/coldfix/sphinx-code-tabs | -+-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ -| sphinx-copybutton | 0.5.2 | MIT License | https://github.com/executablebooks/sphinx-copybutton | -+-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ -| sphinxcontrib-applehelp | 1.0.4 | BSD License | https://www.sphinx-doc.org/ | -+-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ -| sphinxcontrib-devhelp | 1.0.2 | BSD License | http://sphinx-doc.org/ | -+-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ -| sphinxcontrib-htmlhelp | 2.0.1 | BSD License | https://www.sphinx-doc.org/ | -+-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ -| sphinxcontrib-jsmath | 1.0.1 | BSD License | http://sphinx-doc.org/ | -+-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ -| sphinxcontrib-qthelp | 1.0.3 | BSD License | http://sphinx-doc.org/ | -+-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ -| sphinxcontrib-serializinghtml | 1.1.5 | BSD License | http://sphinx-doc.org/ | -+-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ -| stable-baselines3 | 1.6.2 | MIT | https://github.com/DLR-RM/stable-baselines3 | -+-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ -| stack-data | 0.6.2 | MIT License | http://github.com/alexmojaki/stack_data | -+-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ -| sympy | 1.12 | BSD License | https://sympy.org | -+-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ -| tabulate | 0.9.0 | MIT License | https://github.com/astanin/python-tabulate | -+-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ -| tensorboard | 2.12.3 | Apache Software License | https://github.com/tensorflow/tensorboard | -+-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ -| tensorboard-data-server | 0.7.0 | Apache Software License | https://github.com/tensorflow/tensorboard/tree/master/tensorboard/data/server | -+-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ -| tensorboard-plugin-wit | 1.8.1 | Apache 2.0 | https://whatif-tool.dev | -+-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ -| tensorboardX | 2.6 | MIT License | https://github.com/lanpa/tensorboardX | -+-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ -| terminado | 0.17.1 | BSD License | https://github.com/jupyter/terminado | -+-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ -| tifffile | 2023.4.12 | BSD License | https://www.cgohlke.com | -+-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ -| tinycss2 | 1.2.1 | BSD License | https://www.courtbouillon.org/tinycss2 | -+-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ -| toml | 0.10.2 | MIT License | https://github.com/uiri/toml | -+-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ -| tomli | 2.0.1 | MIT License | https://github.com/hukkin/tomli | -+-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ -| torch | 2.0.1 | BSD License | https://pytorch.org/ | -+-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ -| tornado | 6.3.2 | Apache Software License | http://www.tornadoweb.org/ | -+-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ -| traitlets | 5.9.0 | BSD License | https://github.com/ipython/traitlets | -+-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ -| typer | 0.9.0 | MIT License | https://github.com/tiangolo/typer | -+-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ -| typing_extensions | 4.6.2 | Python Software Foundation License | https://github.com/python/typing_extensions/issues | -+-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ -| tzdata | 2023.3 | Apache Software License | https://github.com/python/tzdata | -+-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ -| uri-template | 1.2.0 | MIT License | https://github.com/plinss/uri_template/ | -+-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ -| urllib3 | 1.26.16 | MIT License | https://urllib3.readthedocs.io/ | -+-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ -| virtualenv | 20.21.0 | MIT License | https://github.com/pypa/virtualenv | -+-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ -| webcolors | 1.13 | BSD License | UNKNOWN | -+-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ -| webencodings | 0.5.1 | BSD License | https://github.com/SimonSapin/python-webencodings | -+-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ -| websocket-client | 1.5.2 | Apache Software License | https://github.com/websocket-client/websocket-client.git | -+-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ -| y-py | 0.5.9 | MIT License | https://github.com/y-crdt/ypy | -+-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ -| ypy-websocket | 0.8.2 | UNKNOWN | https://github.com/y-crdt/ypy-websocket | -+-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ -| zipp | 3.15.0 | MIT License | https://github.com/jaraco/zipp | -+-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ ++-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------+ +| Name | Version | License | URL | ++-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------+ +| Babel | 2.12.1 | BSD License | https://babel.pocoo.org/ | ++-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------+ +| Jinja2 | 3.1.2 | BSD License | https://palletsprojects.com/p/jinja/ | ++-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------+ +| MarkupSafe | 2.1.3 | BSD License | https://palletsprojects.com/p/markupsafe/ | ++-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------+ +| Pillow | 9.5.0 | Historical Permission Notice and Disclaimer (HPND) | https://python-pillow.org | ++-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------+ +| PyYAML | 6.0 | MIT License | https://pyyaml.org/ | ++-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------+ +| Pygments | 2.15.1 | BSD License | https://pygments.org | ++-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------+ +| Send2Trash | 1.8.2 | BSD License | https://github.com/arsenetar/send2trash | ++-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------+ +| Sphinx | 6.1.3 | BSD License | https://www.sphinx-doc.org/ | ++-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------+ +| aiofiles | 22.1.0 | Apache Software License | https://github.com/Tinche/aiofiles | ++-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------+ +| aiosqlite | 0.19.0 | MIT License | UNKNOWN | ++-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------+ +| alabaster | 0.7.13 | BSD License | https://alabaster.readthedocs.io | ++-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------+ +| anyio | 3.7.0 | MIT License | https://anyio.readthedocs.io/en/stable/versionhistory.html | ++-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------+ +| argon2-cffi | 21.3.0 | MIT License | https://github.com/hynek/argon2-cffi/blob/main/CHANGELOG.md | ++-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------+ +| argon2-cffi-bindings | 21.2.0 | MIT License | https://github.com/hynek/argon2-cffi-bindings | ++-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------+ +| arrow | 1.2.3 | Apache Software License | https://arrow.readthedocs.io | ++-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------+ +| asttokens | 2.2.1 | Apache 2.0 | https://github.com/gristlabs/asttokens | ++-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------+ +| attrs | 23.1.0 | MIT License | https://www.attrs.org/en/stable/changelog.html | ++-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------+ +| backcall | 0.2.0 | BSD License | https://github.com/takluyver/backcall | ++-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------+ +| beautifulsoup4 | 4.12.2 | MIT License | https://www.crummy.com/software/BeautifulSoup/bs4/ | ++-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------+ +| bleach | 6.0.0 | Apache Software License | https://github.com/mozilla/bleach | ++-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------+ +| build | 0.10.0 | MIT License | UNKNOWN | ++-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------+ +| certifi | 2023.5.7 | Mozilla Public License 2.0 (MPL 2.0) | https://github.com/certifi/python-certifi | ++-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------+ +| cffi | 1.15.1 | MIT License | http://cffi.readthedocs.org | ++-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------+ +| cfgv | 3.3.1 | MIT License | https://github.com/asottile/cfgv | ++-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------+ +| charset-normalizer | 3.1.0 | MIT License | https://github.com/Ousret/charset_normalizer | ++-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------+ +| click | 8.1.3 | BSD License | https://palletsprojects.com/p/click/ | ++-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------+ +| cloudpickle | 2.2.1 | BSD License | https://github.com/cloudpipe/cloudpickle | ++-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------+ +| colorama | 0.4.6 | BSD License | https://github.com/tartley/colorama | ++-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------+ +| comm | 0.1.3 | BSD License | https://github.com/ipython/comm | ++-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------+ +| contourpy | 1.0.7 | BSD License | UNKNOWN | ++-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------+ +| coverage | 7.2.7 | Apache Software License | https://github.com/nedbat/coveragepy | ++-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------+ +| cycler | 0.11.0 | BSD License | https://github.com/matplotlib/cycler | ++-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------+ +| debugpy | 1.6.7 | Eclipse Public License 2.0 (EPL-2.0); MIT License | https://aka.ms/debugpy | ++-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------+ +| decorator | 5.1.1 | BSD License | https://github.com/micheles/decorator | ++-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------+ +| defusedxml | 0.7.1 | Python Software Foundation License | https://github.com/tiran/defusedxml | ++-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------+ +| distlib | 0.3.6 | Python Software Foundation License | https://github.com/pypa/distlib | ++-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------+ +| docutils | 0.19 | BSD License; GNU General Public License (GPL); Public Domain; Python Software Foundation License | https://docutils.sourceforge.io/ | ++-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------+ +| exceptiongroup | 1.1.1 | MIT License | https://github.com/agronholm/exceptiongroup/blob/main/CHANGES.rst | ++-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------+ +| executing | 1.2.0 | MIT License | https://github.com/alexmojaki/executing | ++-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------+ +| fastjsonschema | 2.17.1 | BSD License | https://github.com/horejsek/python-fastjsonschema | ++-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------+ +| filelock | 3.12.1 | The Unlicense (Unlicense) | https://github.com/tox-dev/py-filelock | ++-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------+ +| flake8 | 6.0.0 | MIT License | https://github.com/pycqa/flake8 | ++-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------+ +| fonttools | 4.40.0 | MIT License | http://github.com/fonttools/fonttools | ++-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------+ +| fqdn | 1.5.1 | Mozilla Public License 2.0 (MPL 2.0) | https://github.com/ypcrts/fqdn | ++-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------+ +| furo | 2023.3.27 | MIT License | UNKNOWN | ++-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------+ +| gym | 0.21.0 | UNKNOWN | https://github.com/openai/gym | ++-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------+ +| identify | 2.5.24 | MIT License | https://github.com/pre-commit/identify | ++-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------+ +| idna | 3.4 | BSD License | https://github.com/kjd/idna | ++-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------+ +| imagesize | 1.4.1 | MIT License | https://github.com/shibukawa/imagesize_py | ++-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------+ +| importlib-metadata | 4.13.0 | Apache Software License | https://github.com/python/importlib_metadata | ++-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------+ +| importlib-resources | 5.12.0 | Apache Software License | https://github.com/python/importlib_resources | ++-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------+ +| iniconfig | 2.0.0 | MIT License | https://github.com/pytest-dev/iniconfig | ++-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------+ +| ipykernel | 6.23.2 | BSD License | https://ipython.org | ++-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------+ +| ipython | 8.12.2 | BSD License | https://ipython.org | ++-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------+ +| ipython-genutils | 0.2.0 | BSD License | http://ipython.org | ++-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------+ +| isoduration | 20.11.0 | ISC License (ISCL) | https://github.com/bolsote/isoduration | ++-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------+ +| jedi | 0.18.2 | MIT License | https://github.com/davidhalter/jedi | ++-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------+ +| json5 | 0.9.14 | Apache Software License | https://github.com/dpranke/pyjson5 | ++-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------+ +| jsonpointer | 2.3 | BSD License | https://github.com/stefankoegl/python-json-pointer | ++-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------+ +| jsonschema | 4.17.3 | MIT License | https://github.com/python-jsonschema/jsonschema | ++-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------+ +| jupyter-events | 0.6.3 | BSD License | http://jupyter.org | ++-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------+ +| jupyter-ydoc | 0.2.4 | BSD 3-Clause License | https://jupyter.org | ++-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------+ +| jupyter_client | 8.2.0 | BSD License | https://jupyter.org | ++-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------+ +| jupyter_core | 5.3.0 | BSD License | https://jupyter.org | ++-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------+ +| jupyter_server | 2.6.0 | BSD License | https://jupyter-server.readthedocs.io | ++-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------+ +| jupyter_server_fileid | 0.9.0 | BSD License | UNKNOWN | ++-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------+ +| jupyter_server_terminals | 0.4.4 | BSD License | https://jupyter.org | ++-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------+ +| jupyter_server_ydoc | 0.6.1 | BSD License | https://jupyter.org | ++-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------+ +| jupyterlab | 3.6.1 | BSD License | https://jupyter.org | ++-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------+ +| jupyterlab-pygments | 0.2.2 | BSD | https://github.com/jupyterlab/jupyterlab_pygments | ++-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------+ +| jupyterlab_server | 2.23.0 | BSD License | https://jupyterlab-server.readthedocs.io | ++-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------+ +| kiwisolver | 1.4.4 | BSD License | UNKNOWN | ++-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------+ +| markdown-it-py | 3.0.0 | MIT License | https://github.com/executablebooks/markdown-it-py | ++-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------+ +| matplotlib | 3.7.1 | Python Software Foundation License | https://matplotlib.org | ++-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------+ +| matplotlib-inline | 0.1.6 | BSD 3-Clause | https://github.com/ipython/matplotlib-inline | ++-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------+ +| mccabe | 0.7.0 | MIT License | https://github.com/pycqa/mccabe | ++-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------+ +| mdurl | 0.1.2 | MIT License | https://github.com/executablebooks/mdurl | ++-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------+ +| mistune | 2.0.5 | BSD License | https://github.com/lepture/mistune | ++-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------+ +| mpmath | 1.3.0 | BSD License | http://mpmath.org/ | ++-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------+ +| nbclassic | 1.0.0 | BSD License | https://github.com/jupyter/nbclassic | ++-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------+ +| nbclient | 0.8.0 | BSD License | https://jupyter.org | ++-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------+ +| nbconvert | 7.4.0 | BSD License | https://jupyter.org | ++-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------+ +| nbformat | 5.9.0 | BSD License | https://jupyter.org | ++-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------+ +| nest-asyncio | 1.5.6 | BSD License | https://github.com/erdewit/nest_asyncio | ++-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------+ +| networkx | 3.1 | BSD License | https://networkx.org/ | ++-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------+ +| nodeenv | 1.8.0 | BSD License | https://github.com/ekalinin/nodeenv | ++-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------+ +| notebook | 6.5.4 | BSD License | http://jupyter.org | ++-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------+ +| notebook_shim | 0.2.3 | BSD License | UNKNOWN | ++-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------+ +| numpy | 1.23.5 | BSD License | https://www.numpy.org | ++-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------+ +| overrides | 7.3.1 | Apache License, Version 2.0 | https://github.com/mkorpela/overrides | ++-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------+ +| packaging | 23.1 | Apache Software License; BSD License | https://github.com/pypa/packaging | ++-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------+ +| pandas | 2.0.2 | BSD License | UNKNOWN | ++-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------+ +| pandocfilters | 1.5.0 | BSD License | http://github.com/jgm/pandocfilters | ++-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------+ +| parso | 0.8.3 | MIT License | https://github.com/davidhalter/parso | ++-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------+ +| pickleshare | 0.7.5 | MIT License | https://github.com/pickleshare/pickleshare | ++-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------+ +| pkgutil_resolve_name | 1.3.10 | MIT License | https://github.com/graingert/pkgutil-resolve-name | ++-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------+ +| platformdirs | 3.5.1 | MIT License | https://github.com/platformdirs/platformdirs | ++-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------+ +| pluggy | 1.0.0 | MIT License | https://github.com/pytest-dev/pluggy | ++-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------+ +| pre-commit | 2.20.0 | MIT License | https://github.com/pre-commit/pre-commit | ++-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------+ +| primaite | 2.0.0.dev0 | MIT License | UNKNOWN | ++-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------+ +| primaite | 2.0.0.dev0 | MIT License | UNKNOWN | ++-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------+ +| prometheus-client | 0.17.0 | Apache Software License | https://github.com/prometheus/client_python | ++-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------+ +| prompt-toolkit | 3.0.38 | BSD License | https://github.com/prompt-toolkit/python-prompt-toolkit | ++-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------+ +| psutil | 5.9.5 | BSD License | https://github.com/giampaolo/psutil | ++-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------+ +| pure-eval | 0.2.2 | MIT License | http://github.com/alexmojaki/pure_eval | ++-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------+ +| pycodestyle | 2.10.0 | MIT License | https://pycodestyle.pycqa.org/ | ++-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------+ +| pycparser | 2.21 | BSD License | https://github.com/eliben/pycparser | ++-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------+ +| pyflakes | 3.0.1 | MIT License | https://github.com/PyCQA/pyflakes | ++-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------+ +| pyparsing | 3.0.9 | MIT License | https://github.com/pyparsing/pyparsing/ | ++-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------+ +| pyproject_hooks | 1.0.0 | MIT License | https://github.com/pypa/pyproject-hooks | ++-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------+ +| pyrsistent | 0.19.3 | MIT License | https://github.com/tobgu/pyrsistent/ | ++-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------+ +| pytest | 7.2.0 | MIT License | https://docs.pytest.org/en/latest/ | ++-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------+ +| pytest-cov | 4.0.0 | MIT License | https://github.com/pytest-dev/pytest-cov | ++-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------+ +| pytest-flake8 | 1.1.1 | BSD License | https://github.com/tholo/pytest-flake8 | ++-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------+ +| python-dateutil | 2.8.2 | Apache Software License; BSD License | https://github.com/dateutil/dateutil | ++-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------+ +| python-json-logger | 2.0.7 | BSD License | http://github.com/madzak/python-json-logger | ++-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------+ +| pytz | 2023.3 | MIT License | http://pythonhosted.org/pytz | ++-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------+ +| pywin32 | 306 | Python Software Foundation License | https://github.com/mhammond/pywin32 | ++-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------+ +| pywinpty | 2.0.10 | MIT | UNKNOWN | ++-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------+ +| pyzmq | 25.1.0 | BSD License; GNU Library or Lesser General Public License (LGPL) | https://pyzmq.readthedocs.org | ++-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------+ +| requests | 2.31.0 | Apache Software License | https://requests.readthedocs.io | ++-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------+ +| rfc3339-validator | 0.1.4 | MIT License | https://github.com/naimetti/rfc3339-validator | ++-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------+ +| rfc3986-validator | 0.1.1 | MIT License | https://github.com/naimetti/rfc3986-validator | ++-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------+ +| rich | 13.4.2 | MIT License | https://github.com/Textualize/rich | ++-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------+ +| shellingham | 1.5.0.post1 | ISC License (ISCL) | https://github.com/sarugaku/shellingham | ++-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------+ +| six | 1.16.0 | MIT License | https://github.com/benjaminp/six | ++-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------+ +| sniffio | 1.3.0 | Apache Software License; MIT License | https://github.com/python-trio/sniffio | ++-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------+ +| snowballstemmer | 2.2.0 | BSD License | https://github.com/snowballstem/snowball | ++-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------+ +| soupsieve | 2.4.1 | MIT License | https://github.com/facelessuser/soupsieve | ++-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------+ +| sphinx-basic-ng | 1.0.0b1 | MIT License | https://github.com/pradyunsg/sphinx-basic-ng | ++-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------+ +| sphinx-code-tabs | 0.5.3 | The Unlicense (Unlicense) | https://github.com/coldfix/sphinx-code-tabs | ++-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------+ +| sphinx-copybutton | 0.5.2 | MIT License | https://github.com/executablebooks/sphinx-copybutton | ++-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------+ +| sphinxcontrib-applehelp | 1.0.4 | BSD License | https://www.sphinx-doc.org/ | ++-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------+ +| sphinxcontrib-devhelp | 1.0.2 | BSD License | http://sphinx-doc.org/ | ++-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------+ +| sphinxcontrib-htmlhelp | 2.0.1 | BSD License | https://www.sphinx-doc.org/ | ++-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------+ +| sphinxcontrib-jsmath | 1.0.1 | BSD License | http://sphinx-doc.org/ | ++-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------+ +| sphinxcontrib-qthelp | 1.0.3 | BSD License | http://sphinx-doc.org/ | ++-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------+ +| sphinxcontrib-serializinghtml | 1.1.5 | BSD License | http://sphinx-doc.org/ | ++-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------+ +| stable-baselines3 | 1.6.2 | MIT | https://github.com/DLR-RM/stable-baselines3 | ++-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------+ +| stack-data | 0.6.2 | MIT License | http://github.com/alexmojaki/stack_data | ++-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------+ +| sympy | 1.12 | BSD License | https://sympy.org | ++-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------+ +| terminado | 0.17.1 | BSD License | https://github.com/jupyter/terminado | ++-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------+ +| tinycss2 | 1.2.1 | BSD License | https://www.courtbouillon.org/tinycss2 | ++-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------+ +| toml | 0.10.2 | MIT License | https://github.com/uiri/toml | ++-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------+ +| tomli | 2.0.1 | MIT License | https://github.com/hukkin/tomli | ++-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------+ +| torch | 2.0.1 | BSD License | https://pytorch.org/ | ++-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------+ +| tornado | 6.3.2 | Apache Software License | http://www.tornadoweb.org/ | ++-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------+ +| traitlets | 5.9.0 | BSD License | https://github.com/ipython/traitlets | ++-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------+ +| typer | 0.9.0 | MIT License | https://github.com/tiangolo/typer | ++-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------+ +| typing_extensions | 4.6.3 | Python Software Foundation License | https://github.com/python/typing_extensions/issues | ++-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------+ +| tzdata | 2023.3 | Apache Software License | https://github.com/python/tzdata | ++-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------+ +| uri-template | 1.2.0 | MIT License | https://github.com/plinss/uri_template/ | ++-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------+ +| urllib3 | 2.0.3 | MIT License | https://github.com/urllib3/urllib3/blob/main/CHANGES.rst | ++-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------+ +| virtualenv | 20.23.0 | MIT License | https://github.com/pypa/virtualenv | ++-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------+ +| webcolors | 1.13 | BSD License | UNKNOWN | ++-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------+ +| webencodings | 0.5.1 | BSD License | https://github.com/SimonSapin/python-webencodings | ++-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------+ +| websocket-client | 1.5.3 | Apache Software License | https://github.com/websocket-client/websocket-client.git | ++-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------+ +| y-py | 0.5.9 | MIT License | https://github.com/y-crdt/ypy | ++-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------+ +| ypy-websocket | 0.8.2 | UNKNOWN | https://github.com/y-crdt/ypy-websocket | ++-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------+ +| zipp | 3.15.0 | MIT License | https://github.com/jaraco/zipp | ++-------------------------------+-------------+--------------------------------------------------------------------------------------------------+-------------------------------------------------------------------+ \ No newline at end of file diff --git a/src/primaite/config/training_config.py b/src/primaite/config/training_config.py index 4af36abe..87a473e0 100644 --- a/src/primaite/config/training_config.py +++ b/src/primaite/config/training_config.py @@ -137,6 +137,12 @@ class TrainingConfig: file_system_scanning_limit: int = 5 "The time taken to scan the file system." + deterministic: bool = False + "If true, the training will be deterministic" + + seed: int = None + "The random number generator seed to be used while training the agent" + def to_dict(self, json_serializable: bool = True): """ Serialise the ``TrainingConfig`` as dict. diff --git a/src/primaite/environment/primaite_env.py b/src/primaite/environment/primaite_env.py index da235971..a4b69ba6 100644 --- a/src/primaite/environment/primaite_env.py +++ b/src/primaite/environment/primaite_env.py @@ -45,6 +45,7 @@ from primaite.pol.ier import IER from primaite.pol.red_agent_pol import apply_red_agent_iers, \ apply_red_agent_node_pol from primaite.transactions.transaction import Transaction +from primaite.transactions.transactions_to_file import write_transaction_to_file _LOGGER = logging.getLogger(__name__) _LOGGER.setLevel(logging.INFO) @@ -221,7 +222,7 @@ class Primaite(Env): # [0, 3] - action on property (0 = nothing, On / Scan, Off / Repair, Reset / Patch / Restore) # noqa # [0, num services] - resolves to service ID (0 = nothing, resolves to service) # noqa self.action_dict = self.create_node_action_dict() - self.action_space = spaces.Discrete(len(self.action_dict)) + self.action_space = spaces.Discrete(len(self.action_dict), seed=self.training_config.seed) elif self.training_config.action_type == ActionType.ACL: _LOGGER.info("Action space type ACL selected") # Terms (for ACL action space): @@ -232,11 +233,11 @@ class Primaite(Env): # [0, num services] - Protocol (0 = any, then 1 -> x resolving to protocol) # [0, num ports] - Port (0 = any, then 1 -> x resolving to port) self.action_dict = self.create_acl_action_dict() - self.action_space = spaces.Discrete(len(self.action_dict)) + self.action_space = spaces.Discrete(len(self.action_dict), seed=self.training_config.seed) elif self.training_config.action_type == ActionType.ANY: _LOGGER.info("Action space type ANY selected - Node + ACL") self.action_dict = self.create_node_and_acl_action_dict() - self.action_space = spaces.Discrete(len(self.action_dict)) + self.action_space = spaces.Discrete(len(self.action_dict), seed=self.training_config.seed) else: _LOGGER.info(f"Invalid action type selected: {self.training_config.action_type}") # Set up a csv to store the results of the training @@ -405,8 +406,13 @@ class Primaite(Env): # Return return self.env_obs, reward, done, self.step_info + def close(self): + self.__close__() + def __close__(self): - """Override close function.""" + """ + Override close function + """ self.csv_file.close() def init_acl(self): diff --git a/src/primaite/main.py b/src/primaite/main.py index ac32a018..fc549590 100644 --- a/src/primaite/main.py +++ b/src/primaite/main.py @@ -14,8 +14,8 @@ from pathlib import Path from typing import Final, Union from uuid import uuid4 +import numpy as np from stable_baselines3 import A2C, PPO -from stable_baselines3.common.evaluation import evaluate_policy from stable_baselines3.common.on_policy_algorithm import OnPolicyAlgorithm from stable_baselines3.ppo import MlpPolicy as PPOMlp @@ -54,9 +54,6 @@ def run_generic(env: Primaite, config_values: TrainingConfig): # Introduce a delay between steps time.sleep(config_values.time_delay / 1000) - - # Reset the environment at the end of the episode - env.close() @@ -90,7 +87,7 @@ def run_stable_baselines3_ppo( _LOGGER.error("Could not load agent") _LOGGER.error("Exception occured", exc_info=True) else: - agent = PPO(PPOMlp, env, verbose=0, n_steps=config_values.num_steps) + agent = PPO(PPOMlp, env, verbose=0, n_steps=config_values.num_steps, seed=env.training_config.seed) if config_values.session_type == "TRAINING": # We're in a training session @@ -103,8 +100,19 @@ def run_stable_baselines3_ppo( # Default to being in an evaluation session print("Starting evaluation session...") _LOGGER.debug("Starting evaluation session...") - evaluate_policy(agent, env, n_eval_episodes=config_values.num_episodes) + for episode in range(0, config_values.num_episodes): + obs = env.reset() + + for step in range(0, config_values.num_steps): + action, _states = agent.predict( + obs, + deterministic=env.training_config.deterministic + ) + # convert to int if action is a numpy array + if isinstance(action, np.ndarray): + action = np.int64(action) + obs, rewards, done, info = env.step(action) env.close() @@ -138,7 +146,7 @@ def run_stable_baselines3_a2c( _LOGGER.error("Could not load agent") _LOGGER.error("Exception occured", exc_info=True) else: - agent = A2C("MlpPolicy", env, verbose=0, n_steps=config_values.num_steps) + agent = A2C("MlpPolicy", env, verbose=0, n_steps=config_values.num_steps, seed=env.training_config.seed) if config_values.session_type == "TRAINING": # We're in a training session @@ -151,7 +159,18 @@ def run_stable_baselines3_a2c( # Default to being in an evaluation session print("Starting evaluation session...") _LOGGER.debug("Starting evaluation session...") - evaluate_policy(agent, env, n_eval_episodes=config_values.num_episodes) + for episode in range(0, config_values.num_episodes): + obs = env.reset() + + for step in range(0, config_values.num_steps): + action, _states = agent.predict( + obs, + deterministic=env.training_config.deterministic + ) + # convert to int if action is a numpy array + if isinstance(action, np.ndarray): + action = np.int64(action) + obs, rewards, done, info = env.step(action) env.close() diff --git a/tests/config/e2e/a2c_deterministic_seeded_training_config.yaml b/tests/config/e2e/a2c_deterministic_seeded_training_config.yaml new file mode 100644 index 00000000..7dad0d4d --- /dev/null +++ b/tests/config/e2e/a2c_deterministic_seeded_training_config.yaml @@ -0,0 +1,98 @@ +# Main Config File + +# Generic config values +# Choose one of these (dependent on Agent being trained) +# "STABLE_BASELINES3_PPO" +# "STABLE_BASELINES3_A2C" +# "GENERIC" +agent_identifier: STABLE_BASELINES3_A2C +# Sets How the Action Space is defined: +# "NODE" +# "ACL" +# "ANY" node and acl actions +action_type: ANY +# Number of episodes to run per session +num_episodes: 3 +# Number of time_steps per episode +num_steps: 20 +# Time delay between steps (for generic agents) +time_delay: 1 +# Type of session to be run (TRAINING or EVALUATION) +session_type: TRAINING +# Determine whether to load an agent from file +load_agent: False +# File path and file name of agent if you're loading one in +agent_load_file: C:\[Path]\[agent_saved_filename.zip] + +# Environment config values +# The high value for the observation space +observation_space_high_value: 1000000000 + +# Reward values +# Generic +all_ok: 0 +# Node Operating State +off_should_be_on: -10 +off_should_be_resetting: -5 +on_should_be_off: -2 +on_should_be_resetting: -5 +resetting_should_be_on: -5 +resetting_should_be_off: -2 +resetting: -3 +# Node O/S or Service State +good_should_be_patching: 2 +good_should_be_compromised: 5 +good_should_be_overwhelmed: 5 +patching_should_be_good: -5 +patching_should_be_compromised: 2 +patching_should_be_overwhelmed: 2 +patching: -3 +compromised_should_be_good: -20 +compromised_should_be_patching: -20 +compromised_should_be_overwhelmed: -20 +compromised: -20 +overwhelmed_should_be_good: -20 +overwhelmed_should_be_patching: -20 +overwhelmed_should_be_compromised: -20 +overwhelmed: -20 +# Node File System State +good_should_be_repairing: 2 +good_should_be_restoring: 2 +good_should_be_corrupt: 5 +good_should_be_destroyed: 10 +repairing_should_be_good: -5 +repairing_should_be_restoring: 2 +repairing_should_be_corrupt: 2 +repairing_should_be_destroyed: 0 +repairing: -3 +restoring_should_be_good: -10 +restoring_should_be_repairing: -2 +restoring_should_be_corrupt: 1 +restoring_should_be_destroyed: 2 +restoring: -6 +corrupt_should_be_good: -10 +corrupt_should_be_repairing: -10 +corrupt_should_be_restoring: -10 +corrupt_should_be_destroyed: 2 +corrupt: -10 +destroyed_should_be_good: -20 +destroyed_should_be_repairing: -20 +destroyed_should_be_restoring: -20 +destroyed_should_be_corrupt: -20 +destroyed: -20 +scanning: -2 +# IER status +red_ier_running: -5 +green_ier_blocked: -10 + +# Patching / Reset durations +os_patching_duration: 5 # The time taken to patch the OS +node_reset_duration: 5 # The time taken to reset a node (hardware) +service_patching_duration: 5 # The time taken to patch a service +file_system_repairing_limit: 5 # The time take to repair the file system +file_system_restoring_limit: 5 # The time take to restore the file system +file_system_scanning_limit: 5 # The time taken to scan the file system + +# deterministic +deterministic: False +seed: 1 diff --git a/tests/config/e2e/deterministic_test_outputs/deterministic_a2c.csv b/tests/config/e2e/deterministic_test_outputs/deterministic_a2c.csv new file mode 100644 index 00000000..8f1a8912 --- /dev/null +++ b/tests/config/e2e/deterministic_test_outputs/deterministic_a2c.csv @@ -0,0 +1,61 @@ +Timestamp,Episode,Step,Reward,AS_0,OSI_0_0,OSI_0_1,OSI_0_2,OSI_0_3,OSI_0_4,OSI_0_5,OSI_0_6,OSI_1_0,OSI_1_1,OSI_1_2,OSI_1_3,OSI_1_4,OSI_1_5,OSI_1_6,OSI_2_0,OSI_2_1,OSI_2_2,OSI_2_3,OSI_2_4,OSI_2_5,OSI_2_6,OSI_3_0,OSI_3_1,OSI_3_2,OSI_3_3,OSI_3_4,OSI_3_5,OSI_3_6,OSI_4_0,OSI_4_1,OSI_4_2,OSI_4_3,OSI_4_4,OSI_4_5,OSI_4_6,OSI_5_0,OSI_5_1,OSI_5_2,OSI_5_3,OSI_5_4,OSI_5_5,OSI_5_6,OSI_6_0,OSI_6_1,OSI_6_2,OSI_6_3,OSI_6_4,OSI_6_5,OSI_6_6,OSI_7_0,OSI_7_1,OSI_7_2,OSI_7_3,OSI_7_4,OSI_7_5,OSI_7_6,OSI_8_0,OSI_8_1,OSI_8_2,OSI_8_3,OSI_8_4,OSI_8_5,OSI_8_6,OSI_9_0,OSI_9_1,OSI_9_2,OSI_9_3,OSI_9_4,OSI_9_5,OSI_9_6,OSI_10_0,OSI_10_1,OSI_10_2,OSI_10_3,OSI_10_4,OSI_10_5,OSI_10_6,OSI_11_0,OSI_11_1,OSI_11_2,OSI_11_3,OSI_11_4,OSI_11_5,OSI_11_6,OSI_12_0,OSI_12_1,OSI_12_2,OSI_12_3,OSI_12_4,OSI_12_5,OSI_12_6,OSI_13_0,OSI_13_1,OSI_13_2,OSI_13_3,OSI_13_4,OSI_13_5,OSI_13_6,OSI_14_0,OSI_14_1,OSI_14_2,OSI_14_3,OSI_14_4,OSI_14_5,OSI_14_6,OSI_15_0,OSI_15_1,OSI_15_2,OSI_15_3,OSI_15_4,OSI_15_5,OSI_15_6,OSI_16_0,OSI_16_1,OSI_16_2,OSI_16_3,OSI_16_4,OSI_16_5,OSI_16_6,OSI_17_0,OSI_17_1,OSI_17_2,OSI_17_3,OSI_17_4,OSI_17_5,OSI_17_6,OSN_0_0,OSN_0_1,OSN_0_2,OSN_0_3,OSN_0_4,OSN_0_5,OSN_0_6,OSN_1_0,OSN_1_1,OSN_1_2,OSN_1_3,OSN_1_4,OSN_1_5,OSN_1_6,OSN_2_0,OSN_2_1,OSN_2_2,OSN_2_3,OSN_2_4,OSN_2_5,OSN_2_6,OSN_3_0,OSN_3_1,OSN_3_2,OSN_3_3,OSN_3_4,OSN_3_5,OSN_3_6,OSN_4_0,OSN_4_1,OSN_4_2,OSN_4_3,OSN_4_4,OSN_4_5,OSN_4_6,OSN_5_0,OSN_5_1,OSN_5_2,OSN_5_3,OSN_5_4,OSN_5_5,OSN_5_6,OSN_6_0,OSN_6_1,OSN_6_2,OSN_6_3,OSN_6_4,OSN_6_5,OSN_6_6,OSN_7_0,OSN_7_1,OSN_7_2,OSN_7_3,OSN_7_4,OSN_7_5,OSN_7_6,OSN_8_0,OSN_8_1,OSN_8_2,OSN_8_3,OSN_8_4,OSN_8_5,OSN_8_6,OSN_9_0,OSN_9_1,OSN_9_2,OSN_9_3,OSN_9_4,OSN_9_5,OSN_9_6,OSN_10_0,OSN_10_1,OSN_10_2,OSN_10_3,OSN_10_4,OSN_10_5,OSN_10_6,OSN_11_0,OSN_11_1,OSN_11_2,OSN_11_3,OSN_11_4,OSN_11_5,OSN_11_6,OSN_12_0,OSN_12_1,OSN_12_2,OSN_12_3,OSN_12_4,OSN_12_5,OSN_12_6,OSN_13_0,OSN_13_1,OSN_13_2,OSN_13_3,OSN_13_4,OSN_13_5,OSN_13_6,OSN_14_0,OSN_14_1,OSN_14_2,OSN_14_3,OSN_14_4,OSN_14_5,OSN_14_6,OSN_15_0,OSN_15_1,OSN_15_2,OSN_15_3,OSN_15_4,OSN_15_5,OSN_15_6,OSN_16_0,OSN_16_1,OSN_16_2,OSN_16_3,OSN_16_4,OSN_16_5,OSN_16_6,OSN_17_0,OSN_17_1,OSN_17_2,OSN_17_3,OSN_17_4,OSN_17_5,OSN_17_6 +2023-06-20 10:34:31.092446,1,1,0,204,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,0,0,0,11,0,0,0,0,0,0,12,0,0,0,0,0,0,13,0,0,0,0,0,0,14,0,0,0,0,0,0,15,0,0,0,0,0,0,16,0,0,0,0,0,0,17,0,0,0,0,0,0,18,0,0,0,0,0,0,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0 +2023-06-20 10:34:31.113447,1,2,0,4,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0 +2023-06-20 10:34:31.144446,1,3,0,4,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0 +2023-06-20 10:34:31.173448,1,4,0,4,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0 +2023-06-20 10:34:31.201447,1,5,0,4,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0 +2023-06-20 10:34:31.219447,1,6,0,4,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0 +2023-06-20 10:34:31.247447,1,7,0,4,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0 +2023-06-20 10:34:31.264447,1,8,0,4,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0 +2023-06-20 10:34:31.284447,1,9,0,4,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0 +2023-06-20 10:34:31.304447,1,10,0,4,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0 +2023-06-20 10:34:31.320447,1,11,0,4,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0 +2023-06-20 10:34:31.345450,1,12,0,4,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0 +2023-06-20 10:34:31.362448,1,13,0,4,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0 +2023-06-20 10:34:31.378449,1,14,0,4,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0 +2023-06-20 10:34:31.397451,1,15,0,4,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0 +2023-06-20 10:34:31.414448,1,16,0,4,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0 +2023-06-20 10:34:31.430452,1,17,0,4,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0 +2023-06-20 10:34:31.453449,1,18,0,4,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0 +2023-06-20 10:34:31.470451,1,19,0,4,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0 +2023-06-20 10:34:31.488450,1,20,0,4,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0 +2023-06-20 10:34:31.504450,2,1,0,4,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0 +2023-06-20 10:34:31.521451,2,2,0,4,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0 +2023-06-20 10:34:31.545452,2,3,0,4,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0 +2023-06-20 10:34:31.568453,2,4,0,4,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0 +2023-06-20 10:34:31.587451,2,5,0,4,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0 +2023-06-20 10:34:31.603453,2,6,0,4,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0 +2023-06-20 10:34:31.619454,2,7,0,4,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0 +2023-06-20 10:34:31.638454,2,8,0,4,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0 +2023-06-20 10:34:31.658452,2,9,0,4,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0 +2023-06-20 10:34:31.681452,2,10,0,4,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0 +2023-06-20 10:34:31.698454,2,11,0,4,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0 +2023-06-20 10:34:31.726452,2,12,0,4,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0 +2023-06-20 10:34:31.741451,2,13,0,4,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0 +2023-06-20 10:34:31.769455,2,14,0,4,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0 +2023-06-20 10:34:31.787452,2,15,0,4,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0 +2023-06-20 10:34:31.817452,2,16,0,4,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0 +2023-06-20 10:34:31.841454,2,17,0,4,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0 +2023-06-20 10:34:31.862454,2,18,0,4,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0 +2023-06-20 10:34:31.880454,2,19,0,4,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0 +2023-06-20 10:34:31.898459,2,20,0,4,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0 +2023-06-20 10:34:31.918455,3,1,0,4,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0 +2023-06-20 10:34:31.941453,3,2,0,4,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0 +2023-06-20 10:34:31.964454,3,3,0,4,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0 +2023-06-20 10:34:31.982456,3,4,0,4,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0 +2023-06-20 10:34:32.005454,3,5,0,4,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0 +2023-06-20 10:34:32.036456,3,6,0,4,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0 +2023-06-20 10:34:32.061459,3,7,0,4,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0 +2023-06-20 10:34:32.078456,3,8,0,4,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0 +2023-06-20 10:34:32.096459,3,9,0,4,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0 +2023-06-20 10:34:32.122458,3,10,0,4,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0 +2023-06-20 10:34:32.146459,3,11,0,4,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0 +2023-06-20 10:34:32.175456,3,12,0,4,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0 +2023-06-20 10:34:32.198466,3,13,0,4,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0 +2023-06-20 10:34:32.217456,3,14,0,4,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0 +2023-06-20 10:34:32.235457,3,15,0,4,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0 +2023-06-20 10:34:32.258458,3,16,0,4,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0 +2023-06-20 10:34:32.280457,3,17,0,4,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0 +2023-06-20 10:34:32.297457,3,18,0,4,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0 +2023-06-20 10:34:32.318459,3,19,0,4,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0 +2023-06-20 10:34:32.345468,3,20,0,4,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0 diff --git a/tests/config/e2e/deterministic_test_outputs/deterministic_generic.csv b/tests/config/e2e/deterministic_test_outputs/deterministic_generic.csv new file mode 100644 index 00000000..4498ecdf --- /dev/null +++ b/tests/config/e2e/deterministic_test_outputs/deterministic_generic.csv @@ -0,0 +1,4 @@ +Episode,Average Reward +0,0 +1,-10.5 +2,-1.0 diff --git a/tests/config/e2e/deterministic_test_outputs/deterministic_ppo.csv b/tests/config/e2e/deterministic_test_outputs/deterministic_ppo.csv new file mode 100644 index 00000000..61d7d35a --- /dev/null +++ b/tests/config/e2e/deterministic_test_outputs/deterministic_ppo.csv @@ -0,0 +1,61 @@ +Timestamp,Episode,Step,Reward,AS_0,OSI_0_0,OSI_0_1,OSI_0_2,OSI_0_3,OSI_0_4,OSI_0_5,OSI_0_6,OSI_1_0,OSI_1_1,OSI_1_2,OSI_1_3,OSI_1_4,OSI_1_5,OSI_1_6,OSI_2_0,OSI_2_1,OSI_2_2,OSI_2_3,OSI_2_4,OSI_2_5,OSI_2_6,OSI_3_0,OSI_3_1,OSI_3_2,OSI_3_3,OSI_3_4,OSI_3_5,OSI_3_6,OSI_4_0,OSI_4_1,OSI_4_2,OSI_4_3,OSI_4_4,OSI_4_5,OSI_4_6,OSI_5_0,OSI_5_1,OSI_5_2,OSI_5_3,OSI_5_4,OSI_5_5,OSI_5_6,OSI_6_0,OSI_6_1,OSI_6_2,OSI_6_3,OSI_6_4,OSI_6_5,OSI_6_6,OSI_7_0,OSI_7_1,OSI_7_2,OSI_7_3,OSI_7_4,OSI_7_5,OSI_7_6,OSI_8_0,OSI_8_1,OSI_8_2,OSI_8_3,OSI_8_4,OSI_8_5,OSI_8_6,OSI_9_0,OSI_9_1,OSI_9_2,OSI_9_3,OSI_9_4,OSI_9_5,OSI_9_6,OSI_10_0,OSI_10_1,OSI_10_2,OSI_10_3,OSI_10_4,OSI_10_5,OSI_10_6,OSI_11_0,OSI_11_1,OSI_11_2,OSI_11_3,OSI_11_4,OSI_11_5,OSI_11_6,OSI_12_0,OSI_12_1,OSI_12_2,OSI_12_3,OSI_12_4,OSI_12_5,OSI_12_6,OSI_13_0,OSI_13_1,OSI_13_2,OSI_13_3,OSI_13_4,OSI_13_5,OSI_13_6,OSI_14_0,OSI_14_1,OSI_14_2,OSI_14_3,OSI_14_4,OSI_14_5,OSI_14_6,OSI_15_0,OSI_15_1,OSI_15_2,OSI_15_3,OSI_15_4,OSI_15_5,OSI_15_6,OSI_16_0,OSI_16_1,OSI_16_2,OSI_16_3,OSI_16_4,OSI_16_5,OSI_16_6,OSI_17_0,OSI_17_1,OSI_17_2,OSI_17_3,OSI_17_4,OSI_17_5,OSI_17_6,OSN_0_0,OSN_0_1,OSN_0_2,OSN_0_3,OSN_0_4,OSN_0_5,OSN_0_6,OSN_1_0,OSN_1_1,OSN_1_2,OSN_1_3,OSN_1_4,OSN_1_5,OSN_1_6,OSN_2_0,OSN_2_1,OSN_2_2,OSN_2_3,OSN_2_4,OSN_2_5,OSN_2_6,OSN_3_0,OSN_3_1,OSN_3_2,OSN_3_3,OSN_3_4,OSN_3_5,OSN_3_6,OSN_4_0,OSN_4_1,OSN_4_2,OSN_4_3,OSN_4_4,OSN_4_5,OSN_4_6,OSN_5_0,OSN_5_1,OSN_5_2,OSN_5_3,OSN_5_4,OSN_5_5,OSN_5_6,OSN_6_0,OSN_6_1,OSN_6_2,OSN_6_3,OSN_6_4,OSN_6_5,OSN_6_6,OSN_7_0,OSN_7_1,OSN_7_2,OSN_7_3,OSN_7_4,OSN_7_5,OSN_7_6,OSN_8_0,OSN_8_1,OSN_8_2,OSN_8_3,OSN_8_4,OSN_8_5,OSN_8_6,OSN_9_0,OSN_9_1,OSN_9_2,OSN_9_3,OSN_9_4,OSN_9_5,OSN_9_6,OSN_10_0,OSN_10_1,OSN_10_2,OSN_10_3,OSN_10_4,OSN_10_5,OSN_10_6,OSN_11_0,OSN_11_1,OSN_11_2,OSN_11_3,OSN_11_4,OSN_11_5,OSN_11_6,OSN_12_0,OSN_12_1,OSN_12_2,OSN_12_3,OSN_12_4,OSN_12_5,OSN_12_6,OSN_13_0,OSN_13_1,OSN_13_2,OSN_13_3,OSN_13_4,OSN_13_5,OSN_13_6,OSN_14_0,OSN_14_1,OSN_14_2,OSN_14_3,OSN_14_4,OSN_14_5,OSN_14_6,OSN_15_0,OSN_15_1,OSN_15_2,OSN_15_3,OSN_15_4,OSN_15_5,OSN_15_6,OSN_16_0,OSN_16_1,OSN_16_2,OSN_16_3,OSN_16_4,OSN_16_5,OSN_16_6,OSN_17_0,OSN_17_1,OSN_17_2,OSN_17_3,OSN_17_4,OSN_17_5,OSN_17_6 +2023-06-20 10:31:20.769116,1,1,0,1084,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,0,0,0,11,0,0,0,0,0,0,12,0,0,0,0,0,0,13,0,0,0,0,0,0,14,0,0,0,0,0,0,15,0,0,0,0,0,0,16,0,0,0,0,0,0,17,0,0,0,0,0,0,18,0,0,0,0,0,0,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0 +2023-06-20 10:31:20.772116,1,2,0,1487,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0 +2023-06-20 10:31:20.775116,1,3,0,1487,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0 +2023-06-20 10:31:20.778116,1,4,0,1487,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0 +2023-06-20 10:31:20.781116,1,5,0,1487,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0 +2023-06-20 10:31:20.785116,1,6,0,1487,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0 +2023-06-20 10:31:20.788116,1,7,0,1487,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0 +2023-06-20 10:31:20.791116,1,8,0,1487,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0 +2023-06-20 10:31:20.794116,1,9,0,1487,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0 +2023-06-20 10:31:20.797116,1,10,0,1487,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0 +2023-06-20 10:31:20.803115,1,11,0,1487,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0 +2023-06-20 10:31:20.809116,1,12,0,1487,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0 +2023-06-20 10:31:20.814117,1,13,0,1487,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0 +2023-06-20 10:31:20.817117,1,14,0,1487,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0 +2023-06-20 10:31:20.820117,1,15,0,1487,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0 +2023-06-20 10:31:20.823117,1,16,0,1487,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0 +2023-06-20 10:31:20.827117,1,17,0,1487,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0 +2023-06-20 10:31:20.830117,1,18,0,1487,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0 +2023-06-20 10:31:20.833119,1,19,0,1487,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0 +2023-06-20 10:31:20.837117,1,20,0,1487,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0 +2023-06-20 10:31:20.840117,2,1,0,1487,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0 +2023-06-20 10:31:20.843117,2,2,0,1487,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0 +2023-06-20 10:31:20.847116,2,3,0,1487,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0 +2023-06-20 10:31:20.850116,2,4,0,1487,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0 +2023-06-20 10:31:20.854116,2,5,0,1487,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0 +2023-06-20 10:31:20.857117,2,6,0,1487,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0 +2023-06-20 10:31:20.860116,2,7,0,1487,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0 +2023-06-20 10:31:20.863117,2,8,0,1487,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0 +2023-06-20 10:31:20.866117,2,9,0,1487,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0 +2023-06-20 10:31:20.870118,2,10,0,1487,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0 +2023-06-20 10:31:20.874117,2,11,0,1487,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0 +2023-06-20 10:31:20.877119,2,12,0,1487,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0 +2023-06-20 10:31:20.881117,2,13,0,1487,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0 +2023-06-20 10:31:20.884121,2,14,0,1487,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0 +2023-06-20 10:31:20.887119,2,15,0,1487,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0 +2023-06-20 10:31:20.891119,2,16,0,1487,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0 +2023-06-20 10:31:20.894117,2,17,0,1487,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0 +2023-06-20 10:31:20.898118,2,18,0,1487,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0 +2023-06-20 10:31:20.901118,2,19,0,1487,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0 +2023-06-20 10:31:20.904117,2,20,0,1487,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0 +2023-06-20 10:31:20.908117,3,1,0,1487,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0 +2023-06-20 10:31:20.911117,3,2,0,1487,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0 +2023-06-20 10:31:20.915117,3,3,0,1487,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0 +2023-06-20 10:31:20.918117,3,4,0,1487,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0 +2023-06-20 10:31:20.921117,3,5,0,1487,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0 +2023-06-20 10:31:20.927117,3,6,0,1487,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0 +2023-06-20 10:31:20.933118,3,7,0,1487,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0 +2023-06-20 10:31:20.938118,3,8,0,1487,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0 +2023-06-20 10:31:20.942118,3,9,0,1487,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0 +2023-06-20 10:31:20.947120,3,10,0,1487,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0 +2023-06-20 10:31:20.952118,3,11,0,1487,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0 +2023-06-20 10:31:20.956118,3,12,0,1487,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0 +2023-06-20 10:31:20.960118,3,13,0,1487,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0 +2023-06-20 10:31:20.964118,3,14,0,1487,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0 +2023-06-20 10:31:20.967118,3,15,0,1487,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0 +2023-06-20 10:31:20.971118,3,16,0,1487,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0 +2023-06-20 10:31:20.975118,3,17,0,1487,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0 +2023-06-20 10:31:20.978118,3,18,0,1487,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0 +2023-06-20 10:31:20.981118,3,19,0,1487,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0 +2023-06-20 10:31:20.987118,3,20,0,1487,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0,1,1,1,1,1,0,1,2,1,1,1,1,0,0,3,1,1,1,0,0,0,4,1,1,1,1,0,1,5,1,1,1,1,0,1,6,1,1,1,0,0,0,7,1,1,1,1,1,0,8,1,1,1,1,1,1,9,1,1,1,1,0,0,10,0,0,0,70000,0,0,11,0,0,0,70000,0,0,12,0,0,0,140000,0,0,13,0,0,0,0,0,0,14,0,0,0,140000,0,0,15,0,0,0,30000,0,0,16,0,0,0,50000,105000,0,17,0,0,0,10000,105000,0,18,0,0,0,110000,0,0 diff --git a/tests/config/e2e/generic_deterministic_seeded_training_config.yaml b/tests/config/e2e/generic_deterministic_seeded_training_config.yaml new file mode 100644 index 00000000..5c5426d3 --- /dev/null +++ b/tests/config/e2e/generic_deterministic_seeded_training_config.yaml @@ -0,0 +1,98 @@ +# Main Config File + +# Generic config values +# Choose one of these (dependent on Agent being trained) +# "STABLE_BASELINES3_PPO" +# "STABLE_BASELINES3_A2C" +# "GENERIC" +agent_identifier: GENERIC +# Sets How the Action Space is defined: +# "NODE" +# "ACL" +# "ANY" node and acl actions +action_type: ANY +# Number of episodes to run per session +num_episodes: 3 +# Number of time_steps per episode +num_steps: 20 +# Time delay between steps (for generic agents) +time_delay: 1 +# Type of session to be run (TRAINING or EVALUATION) +session_type: TRAINING +# Determine whether to load an agent from file +load_agent: False +# File path and file name of agent if you're loading one in +agent_load_file: C:\[Path]\[agent_saved_filename.zip] + +# Environment config values +# The high value for the observation space +observation_space_high_value: 1000000000 + +# Reward values +# Generic +all_ok: 0 +# Node Operating State +off_should_be_on: -10 +off_should_be_resetting: -5 +on_should_be_off: -2 +on_should_be_resetting: -5 +resetting_should_be_on: -5 +resetting_should_be_off: -2 +resetting: -3 +# Node O/S or Service State +good_should_be_patching: 2 +good_should_be_compromised: 5 +good_should_be_overwhelmed: 5 +patching_should_be_good: -5 +patching_should_be_compromised: 2 +patching_should_be_overwhelmed: 2 +patching: -3 +compromised_should_be_good: -20 +compromised_should_be_patching: -20 +compromised_should_be_overwhelmed: -20 +compromised: -20 +overwhelmed_should_be_good: -20 +overwhelmed_should_be_patching: -20 +overwhelmed_should_be_compromised: -20 +overwhelmed: -20 +# Node File System State +good_should_be_repairing: 2 +good_should_be_restoring: 2 +good_should_be_corrupt: 5 +good_should_be_destroyed: 10 +repairing_should_be_good: -5 +repairing_should_be_restoring: 2 +repairing_should_be_corrupt: 2 +repairing_should_be_destroyed: 0 +repairing: -3 +restoring_should_be_good: -10 +restoring_should_be_repairing: -2 +restoring_should_be_corrupt: 1 +restoring_should_be_destroyed: 2 +restoring: -6 +corrupt_should_be_good: -10 +corrupt_should_be_repairing: -10 +corrupt_should_be_restoring: -10 +corrupt_should_be_destroyed: 2 +corrupt: -10 +destroyed_should_be_good: -20 +destroyed_should_be_repairing: -20 +destroyed_should_be_restoring: -20 +destroyed_should_be_corrupt: -20 +destroyed: -20 +scanning: -2 +# IER status +red_ier_running: -5 +green_ier_blocked: -10 + +# Patching / Reset durations +os_patching_duration: 5 # The time taken to patch the OS +node_reset_duration: 5 # The time taken to reset a node (hardware) +service_patching_duration: 5 # The time taken to patch a service +file_system_repairing_limit: 5 # The time take to repair the file system +file_system_restoring_limit: 5 # The time take to restore the file system +file_system_scanning_limit: 5 # The time taken to scan the file system + +# deterministic +deterministic: False +seed: 1 diff --git a/tests/config/e2e/ppo_deterministic_seeded_training_config.yaml b/tests/config/e2e/ppo_deterministic_seeded_training_config.yaml new file mode 100644 index 00000000..4dbf7cef --- /dev/null +++ b/tests/config/e2e/ppo_deterministic_seeded_training_config.yaml @@ -0,0 +1,98 @@ +# Main Config File + +# Generic config values +# Choose one of these (dependent on Agent being trained) +# "STABLE_BASELINES3_PPO" +# "STABLE_BASELINES3_A2C" +# "GENERIC" +agent_identifier: STABLE_BASELINES3_PPO +# Sets How the Action Space is defined: +# "NODE" +# "ACL" +# "ANY" node and acl actions +action_type: ANY +# Number of episodes to run per session +num_episodes: 3 +# Number of time_steps per episode +num_steps: 20 +# Time delay between steps (for generic agents) +time_delay: 1 +# Type of session to be run (TRAINING or EVALUATION) +session_type: TRAINING +# Determine whether to load an agent from file +load_agent: False +# File path and file name of agent if you're loading one in +agent_load_file: C:\[Path]\[agent_saved_filename.zip] + +# Environment config values +# The high value for the observation space +observation_space_high_value: 1000000000 + +# Reward values +# Generic +all_ok: 0 +# Node Operating State +off_should_be_on: -10 +off_should_be_resetting: -5 +on_should_be_off: -2 +on_should_be_resetting: -5 +resetting_should_be_on: -5 +resetting_should_be_off: -2 +resetting: -3 +# Node O/S or Service State +good_should_be_patching: 2 +good_should_be_compromised: 5 +good_should_be_overwhelmed: 5 +patching_should_be_good: -5 +patching_should_be_compromised: 2 +patching_should_be_overwhelmed: 2 +patching: -3 +compromised_should_be_good: -20 +compromised_should_be_patching: -20 +compromised_should_be_overwhelmed: -20 +compromised: -20 +overwhelmed_should_be_good: -20 +overwhelmed_should_be_patching: -20 +overwhelmed_should_be_compromised: -20 +overwhelmed: -20 +# Node File System State +good_should_be_repairing: 2 +good_should_be_restoring: 2 +good_should_be_corrupt: 5 +good_should_be_destroyed: 10 +repairing_should_be_good: -5 +repairing_should_be_restoring: 2 +repairing_should_be_corrupt: 2 +repairing_should_be_destroyed: 0 +repairing: -3 +restoring_should_be_good: -10 +restoring_should_be_repairing: -2 +restoring_should_be_corrupt: 1 +restoring_should_be_destroyed: 2 +restoring: -6 +corrupt_should_be_good: -10 +corrupt_should_be_repairing: -10 +corrupt_should_be_restoring: -10 +corrupt_should_be_destroyed: 2 +corrupt: -10 +destroyed_should_be_good: -20 +destroyed_should_be_repairing: -20 +destroyed_should_be_restoring: -20 +destroyed_should_be_corrupt: -20 +destroyed: -20 +scanning: -2 +# IER status +red_ier_running: -5 +green_ier_blocked: -10 + +# Patching / Reset durations +os_patching_duration: 5 # The time taken to patch the OS +node_reset_duration: 5 # The time taken to reset a node (hardware) +service_patching_duration: 5 # The time taken to patch a service +file_system_repairing_limit: 5 # The time take to repair the file system +file_system_restoring_limit: 5 # The time take to restore the file system +file_system_scanning_limit: 5 # The time taken to scan the file system + +# deterministic +deterministic: False +seed: 1 diff --git a/tests/conftest.py b/tests/conftest.py index f1411ba9..7d552d7c 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -3,9 +3,12 @@ import tempfile import time from datetime import datetime from pathlib import Path -from typing import Union +from typing import Union, Final + +import pandas as pd from primaite.environment.primaite_env import Primaite +from primaite.main import _get_session_path, _write_session_metadata_file ACTION_SPACE_NODE_VALUES = 1 ACTION_SPACE_NODE_ACTION_VALUES = 1 @@ -27,7 +30,7 @@ def _get_temp_session_path(session_timestamp: datetime) -> Path: def _get_primaite_env_from_config( - training_config_path: Union[str, Path], lay_down_config_path: Union[str, Path] + training_config_path: Union[str, Path], lay_down_config_path: Union[str, Path] ): """Takes a config path and returns the created instance of Primaite.""" session_timestamp: datetime = datetime.now() @@ -78,3 +81,64 @@ def run_generic(env, config_values): # env.reset() # env.close() + + +def compare_file_content(output_a_file_path: str, output_b_file_path: str): + """Function used to check if output of both given files are the same""" + with open(output_a_file_path) as f1: + with open(output_b_file_path) as f2: + f1_content = f1.read() + f2_content = f2.read() + + # check that both files are not empty and are matching + if len(f1_content) > 0 and len(f2_content) > 0 and f1_content == f2_content: + # both files have the same content + return True + # both files have different content + print(f"{output_a_file_path} and {output_b_file_path} has different contents") + + return False + + +def compare_transaction_file(output_a_file_path: str, output_b_file_path: str): + """Function used to check if contents of transaction files are the same""" + # load output a file + data_a = pd.read_csv(output_a_file_path) + + # load output b file + data_b = pd.read_csv(output_b_file_path) + + # remove the time stamp column + data_a.drop('Timestamp', inplace=True, axis=1) + data_b.drop('Timestamp', inplace=True, axis=1) + + # if the comparison is empty, both files are the same i.e. True + return data_a.compare(data_b).empty + + +class TestSession: + def __init__( + self, + training_config_path, + laydown_config_path + ): + self.session_timestamp: Final[datetime] = datetime.now() + self.session_dir = _get_session_path(self.session_timestamp) + self.timestamp_str = self.session_timestamp.strftime("%Y-%m-%d_%H-%M-%S") + self.transaction_list = [] + + print(f"The output directory for this session is: {self.session_dir}") + + self.env = Primaite( + training_config_path=training_config_path, + lay_down_config_path=laydown_config_path, + transaction_list=self.transaction_list, + session_path=self.session_dir, + timestamp_str=self.timestamp_str, + ) + + print("Writing Session Metadata file...") + + _write_session_metadata_file( + session_dir=self.session_dir, uuid="test", session_timestamp=self.session_timestamp, env=self.env + ) diff --git a/tests/e2e_integration_tests/test_session_repeatability.py b/tests/e2e_integration_tests/test_session_repeatability.py new file mode 100644 index 00000000..587b8501 --- /dev/null +++ b/tests/e2e_integration_tests/test_session_repeatability.py @@ -0,0 +1,359 @@ +import time + +from primaite import getLogger +from primaite.config.lay_down_config import data_manipulation_config_path +from primaite.main import run_stable_baselines3_a2c, \ + run_stable_baselines3_ppo, run_generic, _update_session_metadata_file, _get_session_path +from primaite.transactions.transactions_to_file import write_transaction_to_file +from tests import TEST_CONFIG_ROOT +from tests.conftest import TestSession, compare_file_content, compare_transaction_file + +_LOGGER = getLogger(__name__) + + +def test_generic_same_results(): + """Runs seeded and deterministic Generic Primaite sessions and checks that the results are the same""" + print("") + print("=======================") + print("Generic test run") + print("=======================") + print("") + + + # run session 1 + session1 = TestSession( + TEST_CONFIG_ROOT / "e2e/generic_deterministic_seeded_training_config.yaml", + data_manipulation_config_path() + ) + + config_values = session1.env.training_config + + # Get the number of steps (which is stored in the child config file) + config_values.num_steps = session1.env.episode_steps + + run_generic( + env=session1.env, + config_values=session1.env.training_config + ) + + _update_session_metadata_file(session_dir=session1.session_dir, env=session1.env) + + # run session 2 + session2 = TestSession( + TEST_CONFIG_ROOT / "e2e/generic_deterministic_seeded_training_config.yaml", + data_manipulation_config_path() + ) + + config_values = session2.env.training_config + + # Get the number of steps (which is stored in the child config file) + config_values.num_steps = session2.env.episode_steps + + run_generic( + env=session2.env, + config_values=session2.env.training_config + ) + + _update_session_metadata_file(session_dir=session2.session_dir, env=session2.env) + + # wait until the csv files have been closed + while (not session1.env.csv_file.closed) or (not session2.env.csv_file.closed): + time.sleep(1) + + # check if both outputs are the same + assert compare_file_content( + session1.env.csv_file.name, + session2.env.csv_file.name, + ) is True + + # deterministic run + deterministic = TestSession( + TEST_CONFIG_ROOT / "e2e/generic_deterministic_seeded_training_config.yaml", + data_manipulation_config_path() + ) + + deterministic.env.training_config.deterministic = True + + run_generic( + env=deterministic.env, + config_values=deterministic.env.training_config + ) + + _update_session_metadata_file(session_dir=deterministic.session_dir, env=deterministic.env) + + # check if both outputs are the same + assert compare_file_content( + deterministic.env.csv_file.name, + TEST_CONFIG_ROOT / "e2e/deterministic_test_outputs/deterministic_generic.csv", + ) is True + + +def test_ppo_same_results(): + """Runs seeded and deterministic PPO Primaite sessions and checks that the results are the same""" + + print("") + print("=======================") + print("PPO test run") + print("=======================") + print("") + + training_session = TestSession( + TEST_CONFIG_ROOT / "e2e/ppo_deterministic_seeded_training_config.yaml", + data_manipulation_config_path() + ) + + # Train agent + training_session.env.training_config.session_type = "TRAINING" + + config_values = training_session.env.training_config + + # Get the number of steps (which is stored in the child config file) + config_values.num_steps = training_session.env.episode_steps + + run_stable_baselines3_ppo( + env=training_session.env, + config_values=config_values, + session_path=training_session.session_dir, + timestamp_str=training_session.timestamp_str, + ) + + write_transaction_to_file( + transaction_list=training_session.transaction_list, + session_path=training_session.session_dir, + timestamp_str=training_session.timestamp_str, + ) + + _update_session_metadata_file(session_dir=training_session.session_dir, env=training_session.env) + + # Evaluate Agent again + eval_session1 = TestSession( + TEST_CONFIG_ROOT / "e2e/ppo_deterministic_seeded_training_config.yaml", + data_manipulation_config_path() + ) + + # Get the number of steps (which is stored in the child config file) + config_values.num_steps = eval_session1.env.episode_steps + eval_session1.env.training_config.session_type = "EVALUATE" + + # load the agent that was trained previously + eval_session1.env.training_config.load_agent = True + eval_session1.env.training_config.agent_load_file = _get_session_path(training_session.session_timestamp) / f"agent_saved_{training_session.timestamp_str}.zip" + + config_values = eval_session1.env.training_config + + run_stable_baselines3_ppo( + env=eval_session1.env, + config_values=config_values, + session_path=eval_session1.session_dir, + timestamp_str=eval_session1.timestamp_str, + ) + + write_transaction_to_file( + transaction_list=eval_session1.transaction_list, + session_path=eval_session1.session_dir, + timestamp_str=eval_session1.timestamp_str, + ) + + _update_session_metadata_file(session_dir=eval_session1.session_dir, env=eval_session1.env) + + eval_session2 = TestSession( + TEST_CONFIG_ROOT / "e2e/ppo_deterministic_seeded_training_config.yaml", + data_manipulation_config_path() + ) + + # Get the number of steps (which is stored in the child config file) + config_values.num_steps = eval_session2.env.episode_steps + eval_session2.env.training_config.session_type = "EVALUATE" + + # load the agent that was trained previously + eval_session2.env.training_config.load_agent = True + eval_session2.env.training_config.agent_load_file = _get_session_path( + training_session.session_timestamp) / f"agent_saved_{training_session.timestamp_str}.zip" + + config_values = eval_session2.env.training_config + + run_stable_baselines3_ppo( + env=eval_session2.env, + config_values=config_values, + session_path=eval_session2.session_dir, + timestamp_str=eval_session2.timestamp_str, + ) + + write_transaction_to_file( + transaction_list=eval_session2.transaction_list, + session_path=eval_session2.session_dir, + timestamp_str=eval_session2.timestamp_str, + ) + + _update_session_metadata_file(session_dir=eval_session2.session_dir, env=eval_session2.env) + + # check if both eval outputs are the same + assert compare_transaction_file( + eval_session1.session_dir / f"all_transactions_{eval_session1.timestamp_str}.csv", + eval_session2.session_dir / f"all_transactions_{eval_session2.timestamp_str}.csv", + ) is True + + # deterministic run + deterministic = TestSession( + TEST_CONFIG_ROOT / "e2e/ppo_deterministic_seeded_training_config.yaml", + data_manipulation_config_path() + ) + + deterministic.env.training_config.deterministic = True + + run_stable_baselines3_ppo( + env=deterministic.env, + config_values=config_values, + session_path=deterministic.session_dir, + timestamp_str=deterministic.timestamp_str, + ) + + write_transaction_to_file( + transaction_list=deterministic.transaction_list, + session_path=deterministic.session_dir, + timestamp_str=deterministic.timestamp_str, + ) + + _update_session_metadata_file(session_dir=deterministic.session_dir, env=deterministic.env) + + # check if both outputs are the same + assert compare_transaction_file( + deterministic.session_dir / f"all_transactions_{deterministic.timestamp_str}.csv", + TEST_CONFIG_ROOT / "e2e/deterministic_test_outputs/deterministic_ppo.csv", + ) is True + + +def test_a2c_same_results(): + """Runs seeded and deterministic A2C Primaite sessions and checks that the results are the same""" + + print("") + print("=======================") + print("A2C test run") + print("=======================") + print("") + + training_session = TestSession( + TEST_CONFIG_ROOT / "e2e/a2c_deterministic_seeded_training_config.yaml", + data_manipulation_config_path() + ) + + # Train agent + training_session.env.training_config.session_type = "TRAINING" + + config_values = training_session.env.training_config + + # Get the number of steps (which is stored in the child config file) + config_values.num_steps = training_session.env.episode_steps + + run_stable_baselines3_a2c( + env=training_session.env, + config_values=config_values, + session_path=training_session.session_dir, + timestamp_str=training_session.timestamp_str, + ) + + write_transaction_to_file( + transaction_list=training_session.transaction_list, + session_path=training_session.session_dir, + timestamp_str=training_session.timestamp_str, + ) + + _update_session_metadata_file(session_dir=training_session.session_dir, env=training_session.env) + + # Evaluate Agent again + eval_session1 = TestSession( + TEST_CONFIG_ROOT / "e2e/a2c_deterministic_seeded_training_config.yaml", + data_manipulation_config_path() + ) + + # Get the number of steps (which is stored in the child config file) + config_values.num_steps = eval_session1.env.episode_steps + eval_session1.env.training_config.session_type = "EVALUATE" + + # load the agent that was trained previously + eval_session1.env.training_config.load_agent = True + eval_session1.env.training_config.agent_load_file = _get_session_path( + training_session.session_timestamp) / f"agent_saved_{training_session.timestamp_str}.zip" + + config_values = eval_session1.env.training_config + + run_stable_baselines3_a2c( + env=eval_session1.env, + config_values=config_values, + session_path=eval_session1.session_dir, + timestamp_str=eval_session1.timestamp_str, + ) + + write_transaction_to_file( + transaction_list=eval_session1.transaction_list, + session_path=eval_session1.session_dir, + timestamp_str=eval_session1.timestamp_str, + ) + + _update_session_metadata_file(session_dir=eval_session1.session_dir, env=eval_session1.env) + + eval_session2 = TestSession( + TEST_CONFIG_ROOT / "e2e/a2c_deterministic_seeded_training_config.yaml", + data_manipulation_config_path() + ) + + # Get the number of steps (which is stored in the child config file) + config_values.num_steps = eval_session2.env.episode_steps + eval_session2.env.training_config.session_type = "EVALUATE" + + # load the agent that was trained previously + eval_session2.env.training_config.load_agent = True + eval_session2.env.training_config.agent_load_file = _get_session_path( + training_session.session_timestamp) / f"agent_saved_{training_session.timestamp_str}.zip" + + config_values = eval_session2.env.training_config + + run_stable_baselines3_a2c( + env=eval_session2.env, + config_values=config_values, + session_path=eval_session2.session_dir, + timestamp_str=eval_session2.timestamp_str, + ) + + write_transaction_to_file( + transaction_list=eval_session2.transaction_list, + session_path=eval_session2.session_dir, + timestamp_str=eval_session2.timestamp_str, + ) + + _update_session_metadata_file(session_dir=eval_session2.session_dir, env=eval_session2.env) + + # check if both eval outputs are the same + assert compare_transaction_file( + eval_session1.session_dir / f"all_transactions_{eval_session1.timestamp_str}.csv", + eval_session2.session_dir / f"all_transactions_{eval_session2.timestamp_str}.csv", + ) is True + + # deterministic run + deterministic = TestSession( + TEST_CONFIG_ROOT / "e2e/a2c_deterministic_seeded_training_config.yaml", + data_manipulation_config_path() + ) + + deterministic.env.training_config.deterministic = True + + run_stable_baselines3_a2c( + env=deterministic.env, + config_values=config_values, + session_path=deterministic.session_dir, + timestamp_str=deterministic.timestamp_str, + ) + + write_transaction_to_file( + transaction_list=deterministic.transaction_list, + session_path=deterministic.session_dir, + timestamp_str=deterministic.timestamp_str, + ) + + _update_session_metadata_file(session_dir=deterministic.session_dir, env=deterministic.env) + + # check if both outputs are the same + assert compare_transaction_file( + deterministic.session_dir / f"all_transactions_{deterministic.timestamp_str}.csv", + TEST_CONFIG_ROOT / "e2e/deterministic_test_outputs/deterministic_a2c.csv", + ) is True