diff --git a/.editorconfig b/.editorconfig deleted file mode 100644 index 1342eae..0000000 --- a/.editorconfig +++ /dev/null @@ -1,16 +0,0 @@ -root = true - -[*] -indent_style = space -indent_size = 4 -insert_final_newline = true -trim_trailing_whitespace = true -end_of_line = lf -charset = utf-8 -max_line_length = 88 - -[*.{yml,yaml,json,js,css,html}] -indent_size = 2 - -[*.{md,rst}] -trim_trailing_whitespace = false diff --git a/.github/workflows/pythonapp.yaml b/.github/workflows/pythonapp.yaml deleted file mode 100644 index a59b226..0000000 --- a/.github/workflows/pythonapp.yaml +++ /dev/null @@ -1,42 +0,0 @@ -name: Python application - -on: [push] - -jobs: - build: - - runs-on: ubuntu-latest - - strategy: - matrix: - python-version: ["3.10", "3.11", "3.12"] - - steps: - - uses: actions/checkout@v1 - - - name: Set up Python ${{ matrix.python-version }} - uses: actions/setup-python@v2 - with: - python-version: ${{ matrix.python-version }} - - - name: Install dependencies - run: | - pip install poetry - poetry install --with dev - - - name: Lint with flake8 - run: | - # stop the build if there are Python syntax errors or undefined names - poetry run flake8 stegano --count --select=E9,F63,F7,F82 --show-source --statistics - # exit-zero treats all errors as warnings. The GitHub editor is 127 chars wide - poetry run flake8 stegano --count --max-complexity=18 --ignore=E203 --max-line-length=127 --statistics - - - name: Test with pytest - run: | - poetry run nose2 -v --pretty-assert - env: - testing: actions - - # - name: Type check with mypy - # run: | - # poetry run mypy . diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml deleted file mode 100644 index 64f381b..0000000 --- a/.github/workflows/release.yml +++ /dev/null @@ -1,27 +0,0 @@ -on: - release: - types: - - published - -name: release - -jobs: - pypi-publish: - name: Upload release to PyPI - runs-on: ubuntu-latest - environment: - name: pypi - url: https://pypi.org/p/Stegano - - permissions: - id-token: write # IMPORTANT: this permission is mandatory for trusted publishing - steps: - - uses: actions/checkout@v4 - with: - fetch-depth: 0 - - name: Install Poetry - run: python -m pip install --upgrade pip poetry - - name: Build artifacts - run: poetry build - - name: Publish package distributions to PyPI - uses: pypa/gh-action-pypi-publish@release/v1 diff --git a/.gitignore b/.gitignore deleted file mode 100644 index 92a9e3f..0000000 --- a/.gitignore +++ /dev/null @@ -1,38 +0,0 @@ -# use glob syntax -syntax: glob - -*.elc -*.pyc -*~ -*.db - -# Virtualenv -venv -build - -# setuptools -build/* -stegano.egg-info/ -dist/* - -# tests -.coverage -.mypy_cache/ -.cache/ - -# sphinx -docs/_build - -# Emacs -eproject.cfg - -# Temporary files (vim backups) -*.swp - -.idea/ - -# Log files: -*.log - -# Vagrant: -.vagrant/ diff --git a/.hgignore b/.hgignore new file mode 100644 index 0000000..dce4571 --- /dev/null +++ b/.hgignore @@ -0,0 +1,16 @@ +# use glob syntax +syntax: glob + +*.elc +*.pyc +*~ +*.png +*.db + +# Temporary files (vim backups) +*.swp + + +build/* +Stegano.egg-info/* +dist/* diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml deleted file mode 100644 index e814e8f..0000000 --- a/.pre-commit-config.yaml +++ /dev/null @@ -1,36 +0,0 @@ -ci: - autoupdate_schedule: monthly -repos: - - repo: https://github.com/asottile/pyupgrade - rev: v3.3.1 - hooks: - - id: pyupgrade - args: ["--py37-plus"] - - repo: https://github.com/PyCQA/isort - rev: 5.12.0 - hooks: - - id: isort - - repo: https://github.com/psf/black - rev: 22.3.0 - hooks: - - id: black - - repo: https://github.com/PyCQA/flake8 - rev: 6.1.0 - hooks: - - id: flake8 - additional_dependencies: - - flake8-bugbear - - flake8-implicit-str-concat - args: ["--max-line-length=125", "--ignore=E203"] - - repo: https://github.com/pre-commit/pre-commit-hooks - rev: v4.1.0 - hooks: - - id: fix-byte-order-marker - - id: trailing-whitespace - exclude: .md - - id: end-of-file-fixer - exclude: tests/.* - - repo: https://github.com/pypa/pip-audit - rev: v2.9.0 - hooks: - - id: pip-audit diff --git a/.readthedocs.yaml b/.readthedocs.yaml deleted file mode 100644 index 9712e40..0000000 --- a/.readthedocs.yaml +++ /dev/null @@ -1,22 +0,0 @@ -# .readthedocs.yaml -# Read the Docs configuration file -# See https://docs.readthedocs.io/en/stable/config-file/v2.html for details - -# Required -version: 2 - -# Set the version of Python and other tools you might need -build: - os: ubuntu-22.04 - tools: - python: "3.11" - -# Build documentation in the docs/ directory with Sphinx -sphinx: - configuration: docs/conf.py - -# We recommend specifying your dependencies to enable reproducible builds: -# https://docs.readthedocs.io/en/stable/guides/reproducible-builds.html -python: - install: - - requirements: docs/requirements.txt diff --git a/CHANGELOG.md b/CHANGELOG.md index e3beb66..75eeb3c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,349 +1,14 @@ -## Release History +=============== +Release History +=============== -### 2.0.0 (2025-06-22) +0.4.3 (2015-10-06) +------------------ -- Added functions for hiding/revealing messages in PCM encoded .wav files. - ([#54](https://github.com/cedricbonhomme/Stegano/pull/54)) -- Improved typing. -- Updated dependencies. +* bug fixes for Python 3; +* bug fixes in the scripts installed in */usr/local/bin*. +0.4.2 (2015-10-05) +------------------ -### 1.0.1 (2025-05-03) - -- Improved the packaging configuration for the command line (stegano.console). - - -### 1.0.0 (2025-04-26) - -- Updated dependencies. -- Improved the packaging configuration. -- Fixed typing errors. - - -### 0.11.5 (2025-02-13) - -- Updated dependencies. -- Aligned pyproject.toml with the standard specification. -- Publishing to PyPI using a Trusted Publisher. - - -### 0.11.4 (2024-09-07) - -- Added a parameter, close_file, to lsb.reveal in order to - specify if the file must be closed at the end of the processing. - - -### 0.11.3 (2024-01-02) - -- Stegano now supports Python 3.12. Support of Python 3.8 has been removed. - - -### 0.11.2 (2023-05-23) - -- improved typing of various functions; -- updated dependencies. - - -### 0.11.1 (2022-11-20) - -- Fixed a bug in the command line when no sub-command is specified. - - -### 0.11.0 (2022-11-20) - -- Reduced memory footprint and processing speed, - the modules ``lsb`` and ``lsbset`` have been merged - ([PR #34](https://github.com/cedricbonhomme/Stegano/pull/34)). - - -### 0.10.2 (2022-01-13) - -- Stegano now uses Pillow 9.0.0 (CVE-2022-22815). - - -### 0.10.1 (2021-11-30) - -- Stegano now uses OpenCV Python 4.5.4 abd Numpy 1.21.4. - - -### 0.10.0 (2021-11-29) - -- new: Implemented Shi-Tomashi corner generator - ([PR #32](https://github.com/cedricbonhomme/Stegano/pull/32)). - Implemented by thundersparkf (see CONTRIBUTORS.md file). - - -### 0.9.9 (2021-07-02) - -- Stegano now uses Pillow 8.3.0. - - -### 0.9.8 (2019-12-20) - -- Stegano is now using poetry; -- minor improvements to the command line. - - -### 0.9.7 (2019-10-27) - -- fixed markdown of the previous release. - - -### 0.9.6 (2019-10-27) - -- fixed markdown of the previous release; - - -### 0.9.5 (2019-10-27) - -- updated dependencies; -- home page of the project is now: https://github.com/cedricbonhomme/Stegano - - -### 0.9.4 (2019-06-05) - -- new: Implemented LFSR generator (with tests and CLI) - ([PR #27](https://github.com/cedricbonhomme/Stegano/pull/27)) -- new: Implemented Ackermann generators CLI interface - ([PR #26](https://github.com/cedricbonhomme/Stegano/pull/26)) -- new: The Ackermann functions are not actual generators - ([#24](https://github.com/cedricbonhomme/Stegano/issues/24)) -- new: add a shift parameter for the lsbmodule - ([#25](https://github.com/cedricbonhomme/Stegano/issues/25)) -- fix: lsbset.hide cause .png transparent area lost - ([#23](https://github.com/cedricbonhomme/Stegano/issues/23)) - - -### 0.9.3 (2019-04-10) - -- it is now possible to either pass the location of an image or directly pass - an already opened Image.Image to the hide and reveal methods; -- code re-formatted a bit with black. - - -### 0.9.2 (2019-04-04) - -- updated Pillow dependency to version 6.0.0 in order to fix a bug when opening - some PNG files (https://github.com/python-pillow/Pillow/issues/3557). - - -### 0.9.1 (2019-03-06) - -- updated Pillow dependency in order to fix a bug when opening some PNG files. - - -### 0.9.0 (2018-12-18) - -- added the possibility to shift the encoded bits when using the lsbset module. - - -### 0.8.6 (2018-11-05) - -- fixed a potential security issue related to CVE-2018-18074. - - -### 0.8.5 (2018-04-18) - -- Fixed an encoding problem which occured on Windows during the installation - of the module. - - -### 0.8.4 (2018-02-28) - -- Stegano is ready for use with pipenv and pipsi. - - -### 0.8.3 (2018-02-23) - -- the recommended way to install Stegano is now to use pipenv. - - -### 0.8.2 (2017-12-20) - -- Fixed a bug with the new 'encoding' function when using Stegano as a command - line tool. No default value was set. Default value is UTF-8. - - -### 0.8.1 (2017-05-16) - -- it is now possible to specify the encoding (UTF-8 or UTF-32LE) of the message - to hide/reveal through the command line; -- the help of the command line now displays the available choices for the - arguments, if it is necessary (list of available encodings, list of available - generators); -- tests expected results lies now in a dedicated folder; -- a script has been added in order to get proper exit code check for mypy. - - -### 0.8 (2017-05-06) - -- updated command line. All commands are now prefixed with *stegano-*; -- improved type hints; -- it is possible to load and save images from and to file objects (BytesIO); -- improved checks when revealing a message with the lsbset module fails. - - -### 0.7.1 (2017-05-05) - -- improved generators for the lsb-set module; -- improved tests for the generators; -- improved type hints. - - -### 0.7 (2017-05-04) - -- unicode is now supported. By default UTF-8 encoding is used. UTF-32LE can also - be used to hide non-ASCII characters. UTF-8 (8 bits) is the default choice - since it is possible to hide longer messages with it. -- improved checks with type hints. - - -### 0.6.9 (2017-03-10) - -- introduces some type hints (PEP 484); -- more tests for the generators and for the tools module; -- updated descriptions of generators; -- fixed a bug with a generator that has been previously renamed. - - -### 0.6.8 (2017-03-08) - -- bugfix: fixed #12: Error when revealing a hidden binary file in an image. - - -### 0.6.7 (2017-02-21) - -- bugfix: added missing dependency in the setup.py file. - - -### 0.6.6 (2017-02-20) - -- improved docstrings for the desciption of the generators; -- improved the command which displays the list of generators. - - -### 0.6.5 (2017-02-16) - -- added a command to list all available generators for the lsb-set module; -- test when the data image is coming via byte stream, for the lsb module. - - -### 0.6.4 (2017-02-06) - -- a command line for the 'red' module has been added; -- bugfix: fixed a bug in the lsb-set command line when the generator wasn't - specified by the user. - - -### 0.6.3 (2017-01-29) - -- Support for transparent PNG images has been added (lsb and lsbset modules). - - -### 0.6.2 (2017-01-19) - -- bugfix: solved a bug when the image data is coming via byte streams (ByteIO), - for the exifHeader hiding method. - - -### 0.6.1 (2016-08-25) - -- reorganization of the steganalysis sub-module. - - -### 0.6 (2016-08-04) - -- improvements of the command line of Stéganô. The use of Stéganô through the - command line has slightly changed ('hide' and 'reveal' are now sub-parameters - of the command line). No changes if you use Stéganô as a module in your - software. The documentation has been updated accordingly. - - -### 0.5.5 (2016-08-03) - -- bugfix: Incorrect padding size in `base642string` in tools.base642binary(). - - -### 0.5.4 (2016-05-22) - -- the generator provided to the functions lsbset.hide() and lsbset.reveal() is - now a function. This is more convenient for a user who wants to use a custom - generator (not in the module lsbset.generators). -- performance improvements for the lsb and lsbset modules. - - -### 0.5.3 (2016-05-19) - -- reorganization of all modules. No impact for the users of Stegano. - - -### 0.5.2 (2016-05-18) - -- improvements and bug fixes for the exifHeader module; -- added unit tests for the exifHeader module; -- improvements of the documentation. - - -### 0.5.1 (2016-04-16) - -- minor improvements and bug fixes; -- added unit tests for the slsb and slsbset modules. - - -### 0.5 (2016-03-18) - -- management of greyscale images. - - -### 0.4.6 (2016-03-12) - -- bugfix when the length of the message to hide is not divisible by 3, - for the slsb and slsbset module. - - -### 0.4.5 (2015-12-23) - -- bugfix. - - -### 0.4.4 (2015-12-23) - -- new project home page; -- minor updated to the documentation. - - -### 0.4.3 (2015-10-06) - -- bug fixes for Python 3; -- bug fixes in the scripts in *./bin*. - - -### 0.4.2 (2015-10-05) - -- first stable release on PypI. - - -### 0.4 (2012-01-02) - -This release introduces a more advanced LSB (Least Significant Bit) method -based on integers sets. The sets generated with Python generators -(Sieve of Eratosthenes, Fermat, Carmichael numbers, etc.) are used to select -the pixels used to hide the information. You can use these new methods in your -Python codes as a Python module or as a program in your scripts. - - -### 0.3 (2011-04-15) - -- you can now use Stéganô as a library in your Python program; - (python setup.py install) or as a 'program' thanks to the scripts provided - in the bin directory; -- new documentation (reStructuredText) comes with Stéganô. - - -### 0.2 (2011-03-24) - -- this release introduces some bugfixes and a major speed improvement of the - *reveal* function for the LSB method. Moreover it is now possible to hide a - binary file (ogg, executable, etc.); -- a new technique for hiding/revealing a message in a JPEG picture by using the - description field of the image is provided. +* first stable release on PypI. diff --git a/CONTRIBUTORS.md b/CONTRIBUTORS.md deleted file mode 100644 index 719e518..0000000 --- a/CONTRIBUTORS.md +++ /dev/null @@ -1,23 +0,0 @@ -## Owner - - -- Cédric Bonhomme - - -## Contributors - - -- Alexander Treml - https://github.com/AlexanderTreml -- Adrien Cosson - https://cosson.io -- Andrew Roberts -- Christophe Goessen - https://github.com/cgoessen -- Flavien Roux - https://github.com/FlavienRx -- Maxwell Gerber - https://github.com/maxwellgerber -- Mickaël Schoentgen -- Nejdet Çağdaş Yücesoy -- panni -- Peter Justin -- thundersparkf - https://github.com/thundersparkf - - -And thank you to the testers! diff --git a/COPYING b/COPYING index 94a9ed0..20d40b6 100755 --- a/COPYING +++ b/COPYING @@ -671,4 +671,4 @@ into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Lesser General Public License instead of this License. But first, please read -. +. \ No newline at end of file diff --git a/MANIFEST.in b/MANIFEST.in new file mode 100644 index 0000000..3774992 --- /dev/null +++ b/MANIFEST.in @@ -0,0 +1,13 @@ +#documentation +recursive-include docs * + +#example files +recursive-include examples * + +# binary files +recursive-include bin * + +#Misc +include COPYING +include README.md +include requirements.txt diff --git a/README.md b/README.md index 3b10733..b7d6b4d 100644 --- a/README.md +++ b/README.md @@ -1,115 +1,54 @@ -# Stegano +Stéganô +======= -[![Workflow](https://github.com/cedricbonhomme/Stegano/workflows/Python%20application/badge.svg?style=flat-square)](https://github.com/cedricbonhomme/Stegano/actions?query=workflow%3A%22Python+application%22) - -[Stegano](https://github.com/cedricbonhomme/Stegano), a pure Python Steganography -module. - -Steganography is the art and science of writing hidden messages in such a way -that no one, apart from the sender and intended recipient, suspects the -existence of the message, a form of security through obscurity. Consequently, -functions provided by Stegano only hide messages, without encryption. -Steganography is often used with cryptography. +A Python Steganography module. -## Installation +Installation +------------ + + $ sudo pip install Stegano -```bash -$ poetry install stegano -``` +Use Stéganô as a library in your Python program +----------------------------------------------- -You will be able to use Stegano in your Python programs. - -If you only want to install Stegano as a command line tool: - -```bash -$ pipx install stegano -``` - -pipx installs scripts (system wide available) provided by Python packages into -separate virtualenvs to shield them from your system and each other. - - -## Usage - -A [tutorial](https://stegano.readthedocs.io) is available. - - -## Use Stegano as a library in your Python program - -If you want to use Stegano in your Python program you just have to import the +If you want to use Stéganô in your Python program you just have to import the appropriate steganography technique. For example: -```python ->>> from stegano import lsb ->>> secret = lsb.hide("./tests/sample-files/Lenna.png", "Hello World") ->>> secret.save("./Lenna-secret.png") ->>> ->>> clear_message = lsb.reveal("./Lenna-secret.png") -``` + + >>> from stegano import slsb + >>> secret = slsb.hide("./pictures/Lenna.png", "Hello Workd") + >>> secret.save("./Lenna-secret.png") -## Use Stegano as a command line tool +Use Stéganô as a program +------------------------ -### Hide and reveal a message +In addition you can use Stéganô as a program. -```bash -$ stegano-lsb hide -i ./tests/sample-files/Lenna.png -m "Secret Message" -o Lena1.png -$ stegano-lsb reveal -i Lena1.png -Secret Message -``` +Example: + + $ slsb --hide -i ../examples/pictures/Lenna.png -o Lena1.png -m "Secret Message" + +Another example (hide the message with Sieve of Eratosthenes): + + $ slsb-set --hide -i ../examples/pictures/Lenna.png -o Lena2.png --generator eratosthenes -m 'Secret Message' -### Hide the message with the Sieve of Eratosthenes +Examples +-------- -```bash -$ stegano-lsb hide -i ./tests/sample-files/Lenna.png -m 'Secret Message' --generator eratosthenes -o Lena2.png -``` - -The message will be scattered in the picture, following a set described by the -Sieve of Eratosthenes. Other sets are available. You can also use your own -generators. - -This will make a steganalysis more complicated. +There are some examples in the folder *examples*. -## Running the tests +Turorial +-------- -```bash -$ python -m unittest discover -v -``` - -Running the static type checker: - -```bash -$ mypy stegano -``` +A [tutorial](https://stegano.readthedocs.org/en/latest/tutorial) is available. -## Contributions +Contact +------- -Contributions are welcome. If you want to contribute to Stegano I highly -recommend you to install it in a Python virtual environment with poetry. - - -## Donations - -If you wish and if you like Stegano, you can donate via GitHub Sponsors: - -[![GitHub Sponsors](https://img.shields.io/github/sponsors/cedricbonhomme)](https://github.com/sponsors/cedricbonhomme) - -or with Bitcoin to this address: -bc1q56u6sj7cvlwu58v5lemljcvkh7v2gc3tv8mj0e - -Thank you ! - - -## License - -This software is licensed under -[GNU General Public License version 3](https://www.gnu.org/licenses/gpl-3.0.html) - -Copyright (C) 2010-2025 [Cédric Bonhomme](https://www.cedricbonhomme.org) - -For more information, [the list of authors and contributors](CONTRIBUTORS.md) is available. +[My home page](https://www.cedricbonhomme.org). diff --git a/bin/slsb b/bin/slsb new file mode 100755 index 0000000..72de135 --- /dev/null +++ b/bin/slsb @@ -0,0 +1,85 @@ +#!/usr/bin/env python +#-*- coding: utf-8 -*- + +# Stéganô - Stéganô is a basic Python Steganography module. +# Copyright (C) 2010-2011 Cédric Bonhomme - http://cedricbonhomme.org/ +# +# For more information : http://bitbucket.org/cedricbonhomme/stegano/ +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see + +__author__ = "Cedric Bonhomme" +__version__ = "$Revision: 0.1 $" +__date__ = "$Date: 2011/04/06 $" +__license__ = "GPLv3" + +try: + from stegano import slsb +except: + print("Install Stegano: sudo pip install Stegano") + +from stegano import tools + +from optparse import OptionParser +parser = OptionParser(version=__version__) +parser.add_option('--hide', action='store_true', default=False, + help="Hides a message in an image.") +parser.add_option('--reveal', action='store_true', default=False, + help="Reveals the message hided in an image.") +# Original image +parser.add_option("-i", "--input", dest="input_image_file", + help="Input image file.") +# Image containing the secret +parser.add_option("-o", "--output", dest="output_image_file", + help="Output image containing the secret.") + +# Non binary secret message to hide +parser.add_option("-m", "--secret-message", dest="secret_message", + help="Your secret message to hide (non binary).") + +# Binary secret to hide (OGG, executable, etc.) +parser.add_option("-f", "--secret-file", dest="secret_file", + help="Your secret to hide (Text or any binary file).") +# Output for the binary binary secret. +parser.add_option("-b", "--binary", dest="secret_binary", + help="Output for the binary secret (Text or any binary file).") + +parser.set_defaults(input_image_file = './pictures/Lenna.png', + output_image_file = './pictures/Lenna_enc.png', + secret_message = '', secret_file = '', secret_binary = "") + +(options, args) = parser.parse_args() + + +if options.hide: + if options.secret_message != "" and options.secret_file == "": + secret = options.secret_message + elif options.secret_message == "" and options.secret_file != "": + secret = tools.binary2base64(options.secret_file) + + img_encoded = slsb.hide(options.input_image_file, secret) + try: + img_encoded.save(options.output_image_file) + except Exception as e: + # If hide() returns an error (Too long message). + print(e) + +elif options.reveal: + secret = slsb.reveal(options.input_image_file) + if options.secret_binary != "": + data = tools.base642binary(secret) + with open(options.secret_binary, "w") as f: + f.write(data) + else: + print(secret) diff --git a/bin/slsb-set b/bin/slsb-set new file mode 100755 index 0000000..1265c32 --- /dev/null +++ b/bin/slsb-set @@ -0,0 +1,95 @@ +#!/usr/bin/env python +#-*- coding: utf-8 -*- + +# Stéganô - Stéganô is a basic Python Steganography module. +# Copyright (C) 2010-2011 Cédric Bonhomme - http://cedricbonhomme.org/ +# +# For more information : http://bitbucket.org/cedricbonhomme/stegano/ +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see + +__author__ = "Cedric Bonhomme" +__version__ = "$Revision: 0.1 $" +__date__ = "$Date: 2011/12/29 $" +__license__ = "GPLv3" + +try: + from stegano import slsbset +except: + print("Install stegano: sudo pip install Stegano") + +from stegano import tools + +from optparse import OptionParser +parser = OptionParser(version=__version__) +parser.add_option('--hide', action='store_true', default=False, + help="Hides a message in an image.") +parser.add_option('--reveal', action='store_true', default=False, + help="Reveals the message hided in an image.") +# Original image +parser.add_option("-i", "--input", dest="input_image_file", + help="Input image file.") + +# Generator +parser.add_option("-g", "--generator", dest="generator_function", + help="Generator") + +# Image containing the secret +parser.add_option("-o", "--output", dest="output_image_file", + help="Output image containing the secret.") + +# Non binary secret message to hide +parser.add_option("-m", "--secret-message", dest="secret_message", + help="Your secret message to hide (non binary).") + +# Binary secret to hide (OGG, executable, etc.) +parser.add_option("-f", "--secret-file", dest="secret_file", + help="Your secret to hide (Text or any binary file).") +# Output for the binary binary secret. +parser.add_option("-b", "--binary", dest="secret_binary", + help="Output for the binary secret (Text or any binary file).") + +parser.set_defaults(input_image_file = './pictures/Lenna.png', + generator_function = 'fermat', + output_image_file = './pictures/Lenna_enc.png', + secret_message = '', secret_file = '', secret_binary = "") + +(options, args) = parser.parse_args() + + +if options.hide: + if options.secret_message != "" and options.secret_file == "": + secret = options.secret_message + elif options.secret_message == "" and options.secret_file != "": + secret = tools.binary2base64(options.secret_file) + + img_encoded = slsbset.hide(options.input_image_file, secret, options.generator_function) + try: + img_encoded.save(options.output_image_file) + except Exception as e: + # If hide() returns an error (Too long message). + print(e) + +elif options.reveal: + try: + secret = slsbset.reveal(options.input_image_file, options.generator_function) + except IndexError: + print("Impossible to detect message.") + exit(0) + if options.secret_binary != "": + data = tools.base642binary(secret) + with open(options.secret_binary, "w") as f: + f.write(data) + else: + print(secret) diff --git a/bin/steganalysis-parity b/bin/steganalysis-parity new file mode 100644 index 0000000..59f691f --- /dev/null +++ b/bin/steganalysis-parity @@ -0,0 +1,46 @@ +#!/usr/bin/env python +#-*- coding: utf-8 -*- + +# Stéganô - Stéganô is a basic Python Steganography module. +# Copyright (C) 2010-2011 Cédric Bonhomme - http://cedricbonhomme.org/ +# +# For more information : http://bitbucket.org/cedricbonhomme/stegano/ +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see + +__author__ = "Cedric Bonhomme" +__version__ = "$Revision: 0.1 $" +__date__ = "$Date: 2011/12/29 $" +__license__ = "GPLv3" + +try: + from stegano import steganalysisParity +except: + print("Install Stegano: sudo pip install Stegano") + +from PIL import Image + +from optparse import OptionParser +parser = OptionParser() +parser.add_option("-i", "--input", dest="input_image_file", + help="Image file") +parser.add_option("-o", "--output", dest="output_image_file", + help="Image file") +parser.set_defaults(input_image_file = './pictures/Lenna.png', + output_image_file = './pictures/Lenna_steganalysed.png') +(options, args) = parser.parse_args() + +input_image_file = Image.open(options.input_image_file) +output_image = steganalysisParity.steganalyse(input_image_file) +output_image.save(options.output_image_file) diff --git a/docs/conf.py b/docs/conf.py index 48f4e7a..a81baac 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -1,3 +1,4 @@ +# -*- coding: utf-8 -*- # # Stéganô documentation build configuration file, created by # sphinx-quickstart on Wed Jul 25 13:33:39 2012. @@ -9,162 +10,233 @@ # # All configuration values have a default; values that are commented out # serve to show the default. + +import sys, os + # If extensions (or modules to document with autodoc) are in another directory, # add these directories to sys.path here. If the directory is relative to the # documentation root, use os.path.abspath to make it absolute, like shown here. -# sys.path.insert(0, os.path.abspath('.')) +#sys.path.insert(0, os.path.abspath('.')) + # -- General configuration ----------------------------------------------------- + # If your documentation needs a minimal Sphinx version, state it here. -# needs_sphinx = '1.0' +#needs_sphinx = '1.0' + # Add any Sphinx extension module names here, as strings. They can be extensions # coming with Sphinx (named 'sphinx.ext.*') or your custom ones. extensions = [] # Add any paths that contain templates here, relative to this directory. -templates_path = ["_templates"] +templates_path = ['_templates'] # The suffix of source filenames. -source_suffix = ".rst" +source_suffix = '.rst' # The encoding of source files. -# source_encoding = 'utf-8-sig' +#source_encoding = 'utf-8-sig' # The master toctree document. -master_doc = "index" +master_doc = 'index' # General information about the project. -project = "Stegano" -copyright = "2010-2025, Cédric Bonhomme" -author = "Cédric Bonhomme " +project = u'Stéganô' +copyright = u'2012, Cédric Bonhomme' # The version info for the project you're documenting, acts as replacement for # |version| and |release|, also used in various other places throughout the # built documents. # # The short X.Y version. -version = "0.11" +version = '0.4' # The full version, including alpha/beta/rc tags. -release = "0.11.0" +release = '0.4' # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. -# language = None +#language = None # There are two options for replacing |today|: either, you set today to some # non-false value, then it is used: -# today = '' +#today = '' # Else, today_fmt is used as the format for a strftime call. -# today_fmt = '%B %d, %Y' +#today_fmt = '%B %d, %Y' # List of patterns, relative to source directory, that match files and # directories to ignore when looking for source files. -exclude_patterns = ["_build"] +exclude_patterns = ['_build'] # The reST default role (used for this markup: `text`) to use for all documents. -# default_role = None +#default_role = None # If true, '()' will be appended to :func: etc. cross-reference text. -# add_function_parentheses = True +#add_function_parentheses = True # If true, the current module name will be prepended to all description # unit titles (such as .. function::). -# add_module_names = True +#add_module_names = True # If true, sectionauthor and moduleauthor directives will be shown in the # output. They are ignored by default. -# show_authors = False +#show_authors = False + +# The name of the Pygments (syntax highlighting) style to use. +pygments_style = 'sphinx' # A list of ignored prefixes for module index sorting. -# modindex_common_prefix = [] +#modindex_common_prefix = [] # -- Options for HTML output --------------------------------------------------- # The theme to use for HTML and HTML Help pages. See the documentation for # a list of builtin themes. -html_theme = "sphinx_rtd_theme" +html_theme = 'default' # Theme options are theme-specific and customize the look and feel of a theme # further. For a list of options available for each theme, see the # documentation. -# html_theme_options = {} +#html_theme_options = {} # Add any paths that contain custom themes here, relative to this directory. -# html_theme_path = [] +#html_theme_path = [] # The name for this set of Sphinx documents. If None, it defaults to # " v documentation". -# html_title = None +#html_title = None # A shorter title for the navigation bar. Default is the same as html_title. -# html_short_title = None +#html_short_title = None # The name of an image file (relative to this directory) to place at the top # of the sidebar. -# html_logo = None +#html_logo = None # The name of an image file (within the static path) to use as favicon of the # docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32 # pixels large. -# html_favicon = None +#html_favicon = None # Add any paths that contain custom static files (such as style sheets) here, # relative to this directory. They are copied after the builtin static files, # so a file named "default.css" will overwrite the builtin "default.css". -html_static_path = ["_static"] +html_static_path = ['_static'] # If not '', a 'Last updated on:' timestamp is inserted at every page bottom, # using the given strftime format. -# html_last_updated_fmt = '%b %d, %Y' +#html_last_updated_fmt = '%b %d, %Y' # If true, SmartyPants will be used to convert quotes and dashes to # typographically correct entities. -# html_use_smartypants = True +#html_use_smartypants = True # Custom sidebar templates, maps document names to template names. -# html_sidebars = {} +#html_sidebars = {} # Additional templates that should be rendered to pages, maps page names to # template names. -# html_additional_pages = {} +#html_additional_pages = {} # If false, no module index is generated. -# html_domain_indices = True +#html_domain_indices = True + +# If false, no index is generated. +#html_use_index = True # If true, the index is split into individual pages for each letter. -# html_split_index = False +#html_split_index = False # If true, links to the reST sources are added to the pages. -# html_show_sourcelink = True +#html_show_sourcelink = True # If true, "Created using Sphinx" is shown in the HTML footer. Default is True. -# html_show_sphinx = True +#html_show_sphinx = True # If true, "(C) Copyright ..." is shown in the HTML footer. Default is True. -# html_show_copyright = True +#html_show_copyright = True # If true, an OpenSearch description file will be output, and all pages will # contain a tag referring to it. The value of this option must be the # base URL from which the finished HTML is served. -# html_use_opensearch = '' +#html_use_opensearch = '' # This is the file name suffix for HTML files (e.g. ".xhtml"). -# html_file_suffix = None +#html_file_suffix = None + +# Output file base name for HTML help builder. +htmlhelp_basename = 'Stgandoc' # -- Options for LaTeX output -------------------------------------------------- -latex_engine = "pdflatex" +latex_elements = { +# The paper size ('letterpaper' or 'a4paper'). +#'papersize': 'letterpaper', + +# The font size ('10pt', '11pt' or '12pt'). +#'pointsize': '10pt', + +# Additional stuff for the LaTeX preamble. +#'preamble': '', +} # Grouping the document tree into LaTeX files. List of tuples # (source start file, target name, title, author, documentclass [howto/manual]). latex_documents = [ - ("index", "Stgan.tex", "Stegano Documentation", "Cédric Bonhomme", "howto"), + ('index', 'Stgan.tex', u'Stéganô Documentation', + u'Cédric Bonhomme', 'manual'), ] -latex_show_urls = True -latex_show_pagerefs = True +# The name of an image file (relative to this directory) to place at the top of +# the title page. +#latex_logo = None -ADDITIONAL_PREAMBLE = r""" -\setcounter{tocdepth}{3} -""" +# For "manual" documents, if this is true, then toplevel headings are parts, +# not chapters. +#latex_use_parts = False + +# If true, show page references after internal links. +#latex_show_pagerefs = False + +# If true, show URL addresses after external links. +#latex_show_urls = False + +# Documents to append as an appendix to all manuals. +#latex_appendices = [] + +# If false, no module index is generated. +#latex_domain_indices = True + + +# -- Options for manual page output -------------------------------------------- + +# One entry per manual page. List of tuples +# (source start file, name, description, authors, manual section). +man_pages = [ + ('index', 'stgan', u'Stéganô Documentation', + [u'Cédric Bonhomme'], 1) +] + +# If true, show URL addresses after external links. +#man_show_urls = False + + +# -- Options for Texinfo output ------------------------------------------------ + +# Grouping the document tree into Texinfo files. List of tuples +# (source start file, target name, title, author, +# dir menu entry, description, category) +texinfo_documents = [ + ('index', 'Stgan', u'Stéganô Documentation', + u'Cédric Bonhomme', 'Stgan', 'One line description of project.', + 'Miscellaneous'), +] + +# Documents to append as an appendix to all manuals. +#texinfo_appendices = [] + +# If false, no module index is generated. +#texinfo_domain_indices = True + +# How to display URL addresses: 'footnote', 'no', or 'inline'. +#texinfo_show_urls = 'footnote' diff --git a/docs/index.rst b/docs/index.rst index 5db6c13..17b0888 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -3,78 +3,84 @@ You can adapt this file completely to your liking, but it should at least contain the root `toctree` directive. -Presentation -============ +Welcome to Stéganô's documentation! +=================================== -Stegano_ is a pure Python steganography_ module. +.. toctree:: + :maxdepth: 2 -Steganography is the art and science of writing hidden messages in such a way -that no one, apart from the sender and intended recipient, suspects the -existence of the message, a form of security through obscurity. -Consequently, functions provided by Stegano only hide messages, -without encryption. Steganography is often used with cryptography. +Stéganô is a Python steganography_ module. +Steganography is the art and science of writing hidden messages in such a way that no one, +apart from the sender and intended recipient, suspects the existence of the message, a form +of security through obscurity. Consequently, functions provided by Stéganô only hide message, +without encryption. Indeed steganography is often used with cryptography. -Stegano implements these methods of hiding: +The advantage of steganography, over cryptography alone, is that messages do not attract +attention to themselves. If you are interested in cryptography have a look at my project pySecret. -- using the red portion of a pixel to hide ASCII messages; -- using the `Least Significant Bit `_ (LSB) technique; -- using the LSB technique with sets based on generators (Sieve for Eratosthenes, Fermat, Mersenne numbers, etc.); -- using the description field of the image (JPEG and TIFF). -Moreover some methods of steganalysis_ are provided: +Download Stéganô +================ -- steganalysis of LSB encoding in color images; -- statistical steganalysis. +You can clone the source code of Stéganô_ : -You can also use Stegano through a `Web service `_. -Not all functionalities of Stegano are covered. +.. code-block:: bash + + $ hg clone https://bitbucket.org/cedricbonhomme/stegano/ + +More information about how to install Stéganô in the :doc:`tutorial `. Requirements ============ -- Python_ 3; -- `Pillow`_; -- `piexif`_. +- Python_ >= 3.2 (tested with Python 3.3.1); +- `Pillow`_ (friendly fork of Python Imaging Library). + +Methods of hiding +================= + +For the moment, Stéganô implements these methods of hiding: + +- using the red portion of a pixel to hide ASCII messages; +- using the `Least Significant Bit `_ (LSB) technique; +- using the LSB technique with sets based on generators (Sieve for Eratosthenes, Fermat, Mersenne numbers, etc.); +- using the description field of the image (JPEG). + +Moreover some methods of steganalysis_ are provided: + +- steganalysis of LSB encoding in color images; +- statistical steganalysis. -Tutorial +Turorial ======== -.. toctree:: - :maxdepth: 2 - - installation - module - software - steganalysis - -You can have a look at the -`unit tests `_. - +More information available at the :doc:`tutorial ` page License ======= -Stegano_ is under GPL v3 license. - +Stéganô is under GPL v3 license. Donation ======== -If you wish and if you like Stegano, you can -`donate `_. - - +If you wish and if you like Stéganô, you can donate via bitcoin. My bitcoin address: `1GVmhR9fbBeEh7rP1qNq76jWArDdDQ3otZ `_ Contact ======= -`My home page `_ +`My home page `_ +Indices and tables +================== -.. _Python: https://www.python.org -.. _Stegano: https://github.com/cedricbonhomme/Stegano +* :ref:`genindex` +* :ref:`modindex` +* :ref:`search` + +.. _Python: http://python.org/ +.. _Stéganô: https://bitbucket.org/cedricbonhomme/stegano/ .. _`Pillow`: https://pypi.python.org/pypi/Pillow -.. _`piexif`: https://pypi.python.org/pypi/piexif .. _steganography: http://en.wikipedia.org/wiki/Steganography .. _steganalysis: http://en.wikipedia.org/wiki/Steganalysis diff --git a/docs/installation.rst b/docs/installation.rst deleted file mode 100644 index 5f31735..0000000 --- a/docs/installation.rst +++ /dev/null @@ -1,15 +0,0 @@ -Installation -============ - -.. code-block:: bash - - $ poetry install Stegano - -You will be able to use Stegano in your Python programs -or as a command line tool. - -If you want to retrieve the source code (with the unit tests): - -.. code-block:: bash - - $ git clone https://github.com/cedricbonhomme/Stegano diff --git a/docs/module.rst b/docs/module.rst deleted file mode 100644 index 25ef9da..0000000 --- a/docs/module.rst +++ /dev/null @@ -1,120 +0,0 @@ -Using Stegano as a Python module -================================ - -You can find more examples in the -`unit tests directory `_. - -LSB method ----------- - -.. code-block:: python - - Python 3.11.0 (main, Oct 31 2022, 15:15:22) [GCC 12.2.0] on linux - Type "help", "copyright", "credits" or "license" for more information. - >>> from stegano import lsb - >>> secret = lsb.hide("./tests/sample-files/Lenna.png", "Hello world!") - >>> secret.save("./Lenna-secret.png") - >>> print(lsb.reveal("./Lenna-secret.png")) - Hello world! - - - -LSB method with sets --------------------- - -Sets are used in order to select the pixels where the message will be hidden. - -.. code-block:: python - - Python 3.11.0 (main, Oct 31 2022, 15:15:22) [GCC 12.2.0] on linux - Type "help", "copyright", "credits" or "license" for more information. - >>> from stegano import lsb - >>> from stegano.lsb import generators - - # Hide a secret with the Sieve of Eratosthenes - >>> secret_message = "Hello World!" - >>> secret_image = lsb.hide("./tests/sample-files/Lenna.png", secret_message, generators.eratosthenes()) - >>> secret_image.save("./image.png") - - # Try to decode with another generator - >>> message = lsb.reveal("./image.png", generators.fibonacci()) - Traceback (most recent call last): - File "/Users/flavien/.local/share/virtualenvs/Stegano-sY_cwr69/bin/stegano-lsb", line 6, in - sys.exit(main()) - File "/Users/flavien/Perso/dev/Stegano/bin/lsb.py", line 190, in main - img_encoded = lsb.hide( - File "/Users/flavien/Perso/dev/Stegano/stegano/lsb/lsb.py", line 63, in hide - hider.encode_pixel((col, row)) - File "/Users/flavien/Perso/dev/Stegano/stegano/tools.py", line 165, in encode_pixel - r, g, b, *a = self.encoded_image.getpixel(coordinate) - File "/Users/flavien/.local/share/virtualenvs/Stegano-sY_cwr69/lib/python3.10/site-packages/PIL/Image.py", line 1481, in getpixel - return self.im.getpixel(xy) - IndexError: image index out of range - - # Decode with Eratosthenes - >>> message = lsb.reveal("./image.png", generators.eratosthenes()) - >>> message - 'Hello World!' - - >>> # Generators available - >>> import inspect - >>> all_generators = inspect.getmembers(generators, inspect.isfunction) - >>> for generator in all_generators: - ... print(generator[0], generator[1].__doc__) - ... - Dead_Man_Walking None - OEIS_A000217 - http://oeis.org/A000217 - Triangular numbers: a(n) = C(n+1,2) = n(n+1)/2 = 0+1+2+...+n. - - ackermann - Ackermann number. - - carmichael None - eratosthenes - Generate the prime numbers with the sieve of Eratosthenes. - - eratosthenes_composite - Generate the composite numbers with the sieve of Eratosthenes. - - fermat - Generate the n-th Fermat Number. - - fibonacci - A generator for Fibonacci numbers, goes to next number in series on each call. - This generator start at 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584, 4181, 6765, 10946, ... - See: http://oeis.org/A000045 - - identity - f(x) = x - - log_gen - Logarithmic generator. - - mersenne - Generate 2^n-1. - - syracuse - Generate the sequence of Syracuse. - - shi_tomashi Shi-Tomachi corner generator of the given points - https://docs.opencv.org/4.x/d4/d8c/tutorial_py_shi_tomasi.html - - triangular_numbers Triangular numbers: a(n) = C(n+1,2) = n(n+1)/2 = 0+1+2+...+n. - http://oeis.org/A000217 - - - -Description field of the image ------------------------------- - -For JPEG and TIFF images. - -.. code-block:: python - - Python 3.11.0 (main, Oct 31 2022, 15:15:22) [GCC 12.2.0] on linux - Type "help", "copyright", "credits" or "license" for more information. - >>> from stegano import exifHeader - >>> secret = exifHeader.hide("./tests/sample-files/20160505T130442.jpg", - "./image.jpg", secret_message="Hello world!") - >>> print(exifHeader.reveal("./image.jpg")) diff --git a/docs/requirements.txt b/docs/requirements.txt deleted file mode 100644 index 8213302..0000000 --- a/docs/requirements.txt +++ /dev/null @@ -1,2 +0,0 @@ -sphinx -sphinx_rtd_theme diff --git a/docs/software.rst b/docs/software.rst deleted file mode 100644 index dfc9b95..0000000 --- a/docs/software.rst +++ /dev/null @@ -1,239 +0,0 @@ -Using Stegano in command line -============================= - -The command ``stegano-lsb`` -^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -Hide and reveal a message with the LSB method. - -Display help ------------- - -.. code-block:: bash - - $ stegano-lsb --help - usage: stegano-lsb [-h] {hide,reveal,list-generators} ... - - positional arguments: - {hide,reveal,list-generators} - sub-command help - hide hide help - reveal reveal help - list-generators list-generators help - - options: - -h, --help show this help message and exit - - -.. code-block:: bash - - $ stegano-lsb hide --help - usage: stegano-lsb hide [-h] -i INPUT_IMAGE_FILE [-e {UTF-8,UTF-32LE}] [-g [GENERATOR_FUNCTION ...]] [-s SHIFT] (-m SECRET_MESSAGE | -f SECRET_FILE) -o OUTPUT_IMAGE_FILE - - options: - -h, --help show this help message and exit - -i INPUT_IMAGE_FILE, --input INPUT_IMAGE_FILE - Input image file. - -e {UTF-8,UTF-32LE}, --encoding {UTF-8,UTF-32LE} - Specify the encoding of the message to hide. UTF-8 (default) or UTF-32LE. - -g [GENERATOR_FUNCTION ...], --generator [GENERATOR_FUNCTION ...] - Generator (with optional arguments) - -s SHIFT, --shift SHIFT - Shift for the generator - -m SECRET_MESSAGE Your secret message to hide (non binary). - -f SECRET_FILE Your secret to hide (Text or any binary file). - -o OUTPUT_IMAGE_FILE, --output OUTPUT_IMAGE_FILE - Output image containing the secret. - - -.. code-block:: bash - - $ stegano-lsb reveal --help - usage: stegano-lsb reveal [-h] -i INPUT_IMAGE_FILE [-e {UTF-8,UTF-32LE}] [-g [GENERATOR_FUNCTION ...]] [-s SHIFT] [-o SECRET_BINARY] - - options: - -h, --help show this help message and exit - -i INPUT_IMAGE_FILE, --input INPUT_IMAGE_FILE - Input image file. - -e {UTF-8,UTF-32LE}, --encoding {UTF-8,UTF-32LE} - Specify the encoding of the message to reveal. UTF-8 (default) or UTF-32LE. - -g [GENERATOR_FUNCTION ...], --generator [GENERATOR_FUNCTION ...] - Generator (with optional arguments) - -s SHIFT, --shift SHIFT - Shift for the generator - -o SECRET_BINARY Output for the binary secret (Text or any binary file). - - -Hide and reveal a text message ------------------------------- - -.. code-block:: bash - - $ stegano-lsb hide -i ./tests/sample-files/Lenna.png -m 'Hello World!' -o ./Lenna_enc.png - $ stegano-lsb reveal -i ./Lenna_enc.png - Hello World! - -Specify an encoding -------------------- - -.. code-block:: bash - - $ stegano-lsb hide -i ./tests/sample-files/Lenna.png -m 'I love 🍕 and 🍫.' -e UTF-32LE -o ./Lenna_enc.png - $ stegano-lsb reveal -i ./Lenna_enc.png - I love 🍕 and 🍫. - -The default encoding is UTF-8. - -Hide and reveal a binary file ------------------------------ - -.. code-block:: bash - - $ wget http://www.gnu.org/music/free-software-song.ogg - $ stegano-lsb hide -i ./tests/sample-files/Montenach.png -f ./free-software-song.ogg -o ./Montenach_enc.png - $ rm free-software-song.ogg - $ stegano-lsb reveal -i ./Montenach_enc.png -o ./song.ogg - - - -Sets are used in order to select the pixels where the message will be hidden. - -Hide and reveal a text message with set ---------------------------------------- - -.. code-block:: bash - - # Hide the message with the Sieve of Eratosthenes - $ stegano-lsb hide -i ./tests/sample-files/Montenach.png --generator eratosthenes -m 'Joyeux Noël!' -o ./surprise.png - - # Try to reveal with Mersenne numbers - $ stegano-lsb reveal --generator mersenne -i ./surprise.png - - # Try to reveal with fermat numbers - $ stegano-lsb reveal --generator fermat -i ./surprise.png - - # Try to reveal with carmichael numbers - $ stegano-lsb reveal --generator carmichael -i ./surprise.png - - # Try to reveal with Sieve of Eratosthenes - $ stegano-lsb reveal --generator eratosthenes -i ./surprise.png - - -Sometimes it can be useful to skip the first values of a set. For example if you want -to hide several messages or because due to the selected generator -(Fibonacci starts with 0, 1, 1, etc.). Or maybe you just want to add more complexity. -In this case, simply use the optional arguments ``--shift`` or ``-s``: - - -.. code-block:: bash - - $ stegano-lsb hide -i ./tests/sample-files/Lenna.png -m 'Shifted secret message' -o ~/Lenna1.png --shift 7 - $ stegano-lsb reveal -i ~/Lenna1.png --shift 7 - Shifted secret message - - -List all available generators ------------------------------- - -.. code-block:: bash - - $ stegano-lsb list-generators - Generator id: - ackermann - Desciption: - Ackermann number. - - Generator id: - ackermann_naive - Desciption: - Ackermann number. - - Generator id: - carmichael - Desciption: - Composite numbers n such that a^(n-1) == 1 (mod n) for every a coprime - to n. - https://oeis.org/A002997 - - Generator id: - composite - Desciption: - Generate the composite numbers using the sieve of Eratosthenes. - https://oeis.org/A002808 - - Generator id: - eratosthenes - Desciption: - Generate the prime numbers with the sieve of Eratosthenes. - https://oeis.org/A000040 - - Generator id: - fermat - Desciption: - Generate the n-th Fermat Number. - https://oeis.org/A000215 - - Generator id: - fibonacci - Desciption: - Generate the sequence of Fibonacci. - https://oeis.org/A000045 - - Generator id: - identity - Desciption: - f(x) = x - - Generator id: - log_gen - Desciption: - Logarithmic generator. - - Generator id: - mersenne - Desciption: - Generate 2^p - 1, where p is prime. - https://oeis.org/A001348 - - Generator id: - triangular_numbers - Desciption: - Triangular numbers: a(n) = C(n+1,2) = n(n+1)/2 = 0+1+2+...+n. - http://oeis.org/A000217 - - - - - - - -The command ``stegano-red`` -^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -Hide and reveal a text message with the red portion of a pixel. - -Display help ------------- - -.. code-block:: bash - - $ stegano-red hide --help - usage: stegano-red hide [-h] [-i INPUT_IMAGE_FILE] [-m SECRET_MESSAGE] - [-o OUTPUT_IMAGE_FILE] - - optional arguments: - -h, --help show this help message and exit - -i INPUT_IMAGE_FILE, --input INPUT_IMAGE_FILE - Image file - -m SECRET_MESSAGE Your secret message to hide (non binary). - -o OUTPUT_IMAGE_FILE, --output OUTPUT_IMAGE_FILE - Image file - -Hide and reveal a text message ------------------------------- - -.. code-block:: bash - - $ stegano-red hide -i ./tests/sample-files/Lenna.png -m 'Basic steganography technique.' -o ~/Lenna1.png - $ stegano-red reveal -i ~/Lenna1.png - Basic steganography technique. diff --git a/docs/steganalysis.rst b/docs/steganalysis.rst deleted file mode 100644 index 3a8b60f..0000000 --- a/docs/steganalysis.rst +++ /dev/null @@ -1,19 +0,0 @@ -Steganalysis -============ - -Parity ------- - -.. code-block:: bash - - # Hide the message with Sieve of Eratosthenes - stegano-lsb hide -i ./tests/sample-files/20160505T130442.jpg -o ./surprise.png --generator eratosthenes -m 'Very important message.' - - # Steganalysis of the original photo - stegano-steganalysis-parity -i ./tests/sample-files/20160505T130442.jpg -o ./surprise_st_original.png - - # Steganalysis of the secret photo - stegano-steganalysis-parity -i ./surprise.png -o ./surprise_st_secret.png - - # Reveal with Sieve of Eratosthenes - stegano-lsb reveal -i ./surprise.png --generator eratosthenes diff --git a/docs/tutorial.rst b/docs/tutorial.rst new file mode 100644 index 0000000..08adf1c --- /dev/null +++ b/docs/tutorial.rst @@ -0,0 +1,95 @@ +Getting Stéganô +=============== + +.. code-block:: bash + + $ hg clone https://bitbucket.org/cedricbonhomme/stegano + $ cd stegano/ + $ chmod u+x *.py # if you want to use Stéganô in command line + +Installation +============ + +.. code-block:: bash + + $ python setup.py install + +Now you will be able to use Stéganô in your Python program. + +Using Stéganô as a Python module +================================ + +.. code-block:: python + + Python 2.7 (r27:82500, Jul 5 2010, 10:14:47) + [GCC 4.3.2] on linux2 + Type "help", "copyright", "credits" or "license" for more information. + >>> from stegano import slsb + >>> secret = slsb.hide("./pictures/Lenna.png", "Hello world!") + >>> secret.save("./Lenna-secret.png") + >>> slsb.reveal("./Lenna-secret.png") + Hello world! + +Using Stéganô in command line for your scripts +============================================== + +Display help +------------ + +.. code-block:: bash + + $ ./slsb.py --help + Usage: slsb.py [options] + + Options: + --version show program's version number and exit + -h, --help show this help message and exit + --hide Hides a message in an image. + --reveal Reveals the message hided in an image. + -i INPUT_IMAGE_FILE, --input=INPUT_IMAGE_FILE + Input image file. + -o OUTPUT_IMAGE_FILE, --output=OUTPUT_IMAGE_FILE + Output image containing the secret. + -m SECRET_MESSAGE, --secret-message=SECRET_MESSAGE + Your secret message to hide (non binary). + -f SECRET_FILE, --secret-file=SECRET_FILE + Your secret to hide (Text or any binary file). + -b SECRET_BINARY, --binary=SECRET_BINARY + Output for the binary secret (Text or any binary + file). + +Hide and reveal a text message +------------------------------ + +.. code-block:: bash + + $ ./slsb.py --hide -i ./pictures/Lenna.png -o ./pictures/Lenna_enc.png -m HelloWorld! + $ ./slsb.py --reveal -i ./pictures/Lenna_enc.png + HelloWorld! + +Hide and reveal a binary file +----------------------------- + +.. code-block:: bash + + $ wget http://www.gnu.org/music/free-software-song.ogg + $ ./slsb.py --hide -i ./pictures/Montenach.png -o ./pictures/Montenach_enc.png -f ./free-software-song.ogg + $ rm free-software-song.ogg + $ ./slsb.py --reveal -i ./pictures/Montenach_enc.png -b ./song.ogg + +Hide and reveal a message by using the description field of the image +--------------------------------------------------------------------- + +.. code-block:: bash + + $ ./exif-header.py --hide -i ./Elisha-Cuthbert.jpg -o ./Elisha-Cuthbert_enc.jpg -f ./fileToHide.txt + $ ./exif-header.py --reveal -i ./Elisha-Cuthbert_enc.jpg + +Steganalysis +------------ + +.. code-block:: bash + + $ ./steganalysis-parity.py -i ./pictures./Lenna_enc.png -o ./pictures/Lenna_enc_st.png + + diff --git a/examples/example-lsb.py b/examples/example-lsb.py new file mode 100644 index 0000000..99a2f96 --- /dev/null +++ b/examples/example-lsb.py @@ -0,0 +1,4 @@ +from stegano import slsb + +secret = slsb.hide("./pictures/Lenna.png", "Bonjour tout le monde") +secret.save("./Lenna-secret.png") \ No newline at end of file diff --git a/examples/example1.sh b/examples/example1.sh new file mode 100755 index 0000000..8f0d353 --- /dev/null +++ b/examples/example1.sh @@ -0,0 +1,6 @@ +#!/bin/sh + +wget http://www.gnu.org/music/free-software-song.ogg +slsb --hide -i ./pictures/Montenach.png -o ./pictures/Montenach_enc.png -f ./free-software-song.ogg +rm free-software-song.ogg +slsb --reveal -i ./pictures/Montenach_enc.png -b ./zik.ogg diff --git a/examples/example2.sh b/examples/example2.sh new file mode 100755 index 0000000..62a54af --- /dev/null +++ b/examples/example2.sh @@ -0,0 +1,26 @@ +#!/bin/sh + +# +# Test the LSB method with sets. +# + +echo "We're going to test a little Stéganô..." + +echo "Hide the message with the Sieve of Eratosthenes..." +slsb-set --hide -i ./pictures/Montenach.png -o ./surprise.png --generator eratosthenes -m 'Joyeux Noël!' +echo "" + +echo "Try to reveal with Mersenne numbers..." +slsb-set --reveal --generator mersenne -i ./surprise.png +echo "" + +echo "Try to reveal with fermat numbers..." +slsb-set --reveal --generator fermat -i ./surprise.png +echo "" + +echo "Try to reveal with carmichael numbers..." +slsb-set --reveal --generator carmichael -i ./surprise.png +echo "" + +echo "Try to reveal with Sieve of Eratosthenes..." +slsb-set --reveal --generator eratosthenes -i ./surprise.png diff --git a/examples/example3.sh b/examples/example3.sh new file mode 100644 index 0000000..813e08e --- /dev/null +++ b/examples/example3.sh @@ -0,0 +1,22 @@ +#!/bin/sh + +# Some tests of the LSB method which uses sets (slsb-set). Sets are used in order to select the pixels where the +# message will be hidden. + + +# Hide the message - LSB with a set defined by the identity function (f(x) = x). +slsb-set --hide -i examples/pictures/Montenach.png -o ~/enc-identity.png --generator identity -m 'I like steganography.' + +# Hide the message - LSB only. +slsb --hide -i examples/pictures/Montenach.png -o ~/enc.png -m 'I like steganography.' + + +# Check if the two generated files are the same. +sha1sum ~/enc-identity.png ~/enc.png + + +# The output of slsb is given to slsb-set. +slsb-set --reveal -i ~/enc.png --generator identity + +# The output of slsb-set is given to slsb. +slsb --reveal -i ~/enc-identity.png diff --git a/examples/example4.sh b/examples/example4.sh new file mode 100755 index 0000000..cf250b7 --- /dev/null +++ b/examples/example4.sh @@ -0,0 +1,21 @@ +#!/bin/sh + +# +# Test the LSB method with sets. +# + + +echo "Hide the message with Sieve of Eratosthenes..." +slsb-set --hide -i ./pictures/Ginnifer-Goodwin.png -o ./surprise.png --generator eratosthenes -m 'Probably the most beautiful woman in the world.' +echo "" + +echo "Steganalysis of the original photo..." +steganalysis-parity -i ./pictures/Ginnifer-Goodwin.png -o ./surprise_st_original.png + +echo "Steganalysis of the secret photo..." +steganalysis-parity -i ./surprise.png -o ./surprise_st_secret.png +echo "" + +echo "Reveal with Sieve of Eratosthenes..." +echo "The secret is:" +slsb-set --reveal --generator eratosthenes -i ./surprise.png \ No newline at end of file diff --git a/tests/sample-files/lorem_ipsum.txt b/examples/lorem_ipsum.txt similarity index 100% rename from tests/sample-files/lorem_ipsum.txt rename to examples/lorem_ipsum.txt diff --git a/examples/pictures/Elisha-Cuthbert.jpg b/examples/pictures/Elisha-Cuthbert.jpg new file mode 100644 index 0000000..ffaeb90 Binary files /dev/null and b/examples/pictures/Elisha-Cuthbert.jpg differ diff --git a/examples/pictures/Ginnifer-Goodwin.png b/examples/pictures/Ginnifer-Goodwin.png new file mode 100644 index 0000000..159870f Binary files /dev/null and b/examples/pictures/Ginnifer-Goodwin.png differ diff --git a/tests/sample-files/Lenna.png b/examples/pictures/Lenna.png similarity index 100% rename from tests/sample-files/Lenna.png rename to examples/pictures/Lenna.png diff --git a/tests/sample-files/Montenach.png b/examples/pictures/Montenach.png similarity index 100% rename from tests/sample-files/Montenach.png rename to examples/pictures/Montenach.png diff --git a/poetry.lock b/poetry.lock deleted file mode 100644 index 9c7671c..0000000 --- a/poetry.lock +++ /dev/null @@ -1,1173 +0,0 @@ -# This file is automatically @generated by Poetry 2.1.2 and should not be changed by hand. - -[[package]] -name = "alabaster" -version = "0.7.16" -description = "A light, configurable Sphinx theme" -optional = false -python-versions = ">=3.9" -groups = ["dev"] -files = [ - {file = "alabaster-0.7.16-py3-none-any.whl", hash = "sha256:b46733c07dce03ae4e150330b975c75737fa60f0a7c591b6c8bf4928a28e2c92"}, - {file = "alabaster-0.7.16.tar.gz", hash = "sha256:75a8b99c28a5dad50dd7f8ccdd447a121ddb3892da9e53d1ca5cca3106d58d65"}, -] - -[[package]] -name = "babel" -version = "2.17.0" -description = "Internationalization utilities" -optional = false -python-versions = ">=3.8" -groups = ["dev"] -files = [ - {file = "babel-2.17.0-py3-none-any.whl", hash = "sha256:4d0b53093fdfb4b21c92b5213dba5a1b23885afa8383709427046b21c366e5f2"}, - {file = "babel-2.17.0.tar.gz", hash = "sha256:0c54cffb19f690cdcc52a3b50bcbf71e07a808d1c80d549f2459b9d2cf0afb9d"}, -] - -[package.extras] -dev = ["backports.zoneinfo ; python_version < \"3.9\"", "freezegun (>=1.0,<2.0)", "jinja2 (>=3.0)", "pytest (>=6.0)", "pytest-cov", "pytz", "setuptools", "tzdata ; sys_platform == \"win32\""] - -[[package]] -name = "certifi" -version = "2025.6.15" -description = "Python package for providing Mozilla's CA Bundle." -optional = false -python-versions = ">=3.7" -groups = ["dev"] -files = [ - {file = "certifi-2025.6.15-py3-none-any.whl", hash = "sha256:2e0c7ce7cb5d8f8634ca55d2ba7e6ec2689a2fd6537d8dec1296a477a4910057"}, - {file = "certifi-2025.6.15.tar.gz", hash = "sha256:d747aa5a8b9bbbb1bb8c22bb13e22bd1f18e9796defa16bab421f7f7a317323b"}, -] - -[[package]] -name = "cfgv" -version = "3.4.0" -description = "Validate configuration and produce human readable error messages." -optional = false -python-versions = ">=3.8" -groups = ["dev"] -files = [ - {file = "cfgv-3.4.0-py2.py3-none-any.whl", hash = "sha256:b7265b1f29fd3316bfcd2b330d63d024f2bfd8bcb8b0272f8e19a504856c48f9"}, - {file = "cfgv-3.4.0.tar.gz", hash = "sha256:e52591d4c5f5dead8e0f673fb16db7949d2cfb3f7da4582893288f0ded8fe560"}, -] - -[[package]] -name = "charset-normalizer" -version = "3.4.2" -description = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet." -optional = false -python-versions = ">=3.7" -groups = ["dev"] -files = [ - {file = "charset_normalizer-3.4.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:7c48ed483eb946e6c04ccbe02c6b4d1d48e51944b6db70f697e089c193404941"}, - {file = "charset_normalizer-3.4.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b2d318c11350e10662026ad0eb71bb51c7812fc8590825304ae0bdd4ac283acd"}, - {file = "charset_normalizer-3.4.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9cbfacf36cb0ec2897ce0ebc5d08ca44213af24265bd56eca54bee7923c48fd6"}, - {file = "charset_normalizer-3.4.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:18dd2e350387c87dabe711b86f83c9c78af772c748904d372ade190b5c7c9d4d"}, - {file = "charset_normalizer-3.4.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8075c35cd58273fee266c58c0c9b670947c19df5fb98e7b66710e04ad4e9ff86"}, - {file = "charset_normalizer-3.4.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5bf4545e3b962767e5c06fe1738f951f77d27967cb2caa64c28be7c4563e162c"}, - {file = "charset_normalizer-3.4.2-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:7a6ab32f7210554a96cd9e33abe3ddd86732beeafc7a28e9955cdf22ffadbab0"}, - {file = "charset_normalizer-3.4.2-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:b33de11b92e9f75a2b545d6e9b6f37e398d86c3e9e9653c4864eb7e89c5773ef"}, - {file = "charset_normalizer-3.4.2-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:8755483f3c00d6c9a77f490c17e6ab0c8729e39e6390328e42521ef175380ae6"}, - {file = "charset_normalizer-3.4.2-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:68a328e5f55ec37c57f19ebb1fdc56a248db2e3e9ad769919a58672958e8f366"}, - {file = "charset_normalizer-3.4.2-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:21b2899062867b0e1fde9b724f8aecb1af14f2778d69aacd1a5a1853a597a5db"}, - {file = "charset_normalizer-3.4.2-cp310-cp310-win32.whl", hash = "sha256:e8082b26888e2f8b36a042a58307d5b917ef2b1cacab921ad3323ef91901c71a"}, - {file = "charset_normalizer-3.4.2-cp310-cp310-win_amd64.whl", hash = "sha256:f69a27e45c43520f5487f27627059b64aaf160415589230992cec34c5e18a509"}, - {file = "charset_normalizer-3.4.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:be1e352acbe3c78727a16a455126d9ff83ea2dfdcbc83148d2982305a04714c2"}, - {file = "charset_normalizer-3.4.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:aa88ca0b1932e93f2d961bf3addbb2db902198dca337d88c89e1559e066e7645"}, - {file = "charset_normalizer-3.4.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d524ba3f1581b35c03cb42beebab4a13e6cdad7b36246bd22541fa585a56cccd"}, - {file = "charset_normalizer-3.4.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:28a1005facc94196e1fb3e82a3d442a9d9110b8434fc1ded7a24a2983c9888d8"}, - {file = "charset_normalizer-3.4.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fdb20a30fe1175ecabed17cbf7812f7b804b8a315a25f24678bcdf120a90077f"}, - {file = "charset_normalizer-3.4.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0f5d9ed7f254402c9e7d35d2f5972c9bbea9040e99cd2861bd77dc68263277c7"}, - {file = "charset_normalizer-3.4.2-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:efd387a49825780ff861998cd959767800d54f8308936b21025326de4b5a42b9"}, - {file = "charset_normalizer-3.4.2-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:f0aa37f3c979cf2546b73e8222bbfa3dc07a641585340179d768068e3455e544"}, - {file = "charset_normalizer-3.4.2-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:e70e990b2137b29dc5564715de1e12701815dacc1d056308e2b17e9095372a82"}, - {file = "charset_normalizer-3.4.2-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:0c8c57f84ccfc871a48a47321cfa49ae1df56cd1d965a09abe84066f6853b9c0"}, - {file = "charset_normalizer-3.4.2-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:6b66f92b17849b85cad91259efc341dce9c1af48e2173bf38a85c6329f1033e5"}, - {file = "charset_normalizer-3.4.2-cp311-cp311-win32.whl", hash = "sha256:daac4765328a919a805fa5e2720f3e94767abd632ae410a9062dff5412bae65a"}, - {file = "charset_normalizer-3.4.2-cp311-cp311-win_amd64.whl", hash = "sha256:e53efc7c7cee4c1e70661e2e112ca46a575f90ed9ae3fef200f2a25e954f4b28"}, - {file = "charset_normalizer-3.4.2-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:0c29de6a1a95f24b9a1aa7aefd27d2487263f00dfd55a77719b530788f75cff7"}, - {file = "charset_normalizer-3.4.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cddf7bd982eaa998934a91f69d182aec997c6c468898efe6679af88283b498d3"}, - {file = "charset_normalizer-3.4.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:fcbe676a55d7445b22c10967bceaaf0ee69407fbe0ece4d032b6eb8d4565982a"}, - {file = "charset_normalizer-3.4.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d41c4d287cfc69060fa91cae9683eacffad989f1a10811995fa309df656ec214"}, - {file = "charset_normalizer-3.4.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4e594135de17ab3866138f496755f302b72157d115086d100c3f19370839dd3a"}, - {file = "charset_normalizer-3.4.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:cf713fe9a71ef6fd5adf7a79670135081cd4431c2943864757f0fa3a65b1fafd"}, - {file = "charset_normalizer-3.4.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:a370b3e078e418187da8c3674eddb9d983ec09445c99a3a263c2011993522981"}, - {file = "charset_normalizer-3.4.2-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:a955b438e62efdf7e0b7b52a64dc5c3396e2634baa62471768a64bc2adb73d5c"}, - {file = "charset_normalizer-3.4.2-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:7222ffd5e4de8e57e03ce2cef95a4c43c98fcb72ad86909abdfc2c17d227fc1b"}, - {file = "charset_normalizer-3.4.2-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:bee093bf902e1d8fc0ac143c88902c3dfc8941f7ea1d6a8dd2bcb786d33db03d"}, - {file = "charset_normalizer-3.4.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:dedb8adb91d11846ee08bec4c8236c8549ac721c245678282dcb06b221aab59f"}, - {file = "charset_normalizer-3.4.2-cp312-cp312-win32.whl", hash = "sha256:db4c7bf0e07fc3b7d89ac2a5880a6a8062056801b83ff56d8464b70f65482b6c"}, - {file = "charset_normalizer-3.4.2-cp312-cp312-win_amd64.whl", hash = "sha256:5a9979887252a82fefd3d3ed2a8e3b937a7a809f65dcb1e068b090e165bbe99e"}, - {file = "charset_normalizer-3.4.2-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:926ca93accd5d36ccdabd803392ddc3e03e6d4cd1cf17deff3b989ab8e9dbcf0"}, - {file = "charset_normalizer-3.4.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:eba9904b0f38a143592d9fc0e19e2df0fa2e41c3c3745554761c5f6447eedabf"}, - {file = "charset_normalizer-3.4.2-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3fddb7e2c84ac87ac3a947cb4e66d143ca5863ef48e4a5ecb83bd48619e4634e"}, - {file = "charset_normalizer-3.4.2-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:98f862da73774290f251b9df8d11161b6cf25b599a66baf087c1ffe340e9bfd1"}, - {file = "charset_normalizer-3.4.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6c9379d65defcab82d07b2a9dfbfc2e95bc8fe0ebb1b176a3190230a3ef0e07c"}, - {file = "charset_normalizer-3.4.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e635b87f01ebc977342e2697d05b56632f5f879a4f15955dfe8cef2448b51691"}, - {file = "charset_normalizer-3.4.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:1c95a1e2902a8b722868587c0e1184ad5c55631de5afc0eb96bc4b0d738092c0"}, - {file = "charset_normalizer-3.4.2-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:ef8de666d6179b009dce7bcb2ad4c4a779f113f12caf8dc77f0162c29d20490b"}, - {file = "charset_normalizer-3.4.2-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:32fc0341d72e0f73f80acb0a2c94216bd704f4f0bce10aedea38f30502b271ff"}, - {file = "charset_normalizer-3.4.2-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:289200a18fa698949d2b39c671c2cc7a24d44096784e76614899a7ccf2574b7b"}, - {file = "charset_normalizer-3.4.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:4a476b06fbcf359ad25d34a057b7219281286ae2477cc5ff5e3f70a246971148"}, - {file = "charset_normalizer-3.4.2-cp313-cp313-win32.whl", hash = "sha256:aaeeb6a479c7667fbe1099af9617c83aaca22182d6cf8c53966491a0f1b7ffb7"}, - {file = "charset_normalizer-3.4.2-cp313-cp313-win_amd64.whl", hash = "sha256:aa6af9e7d59f9c12b33ae4e9450619cf2488e2bbe9b44030905877f0b2324980"}, - {file = "charset_normalizer-3.4.2-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1cad5f45b3146325bb38d6855642f6fd609c3f7cad4dbaf75549bf3b904d3184"}, - {file = "charset_normalizer-3.4.2-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b2680962a4848b3c4f155dc2ee64505a9c57186d0d56b43123b17ca3de18f0fa"}, - {file = "charset_normalizer-3.4.2-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:36b31da18b8890a76ec181c3cf44326bf2c48e36d393ca1b72b3f484113ea344"}, - {file = "charset_normalizer-3.4.2-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f4074c5a429281bf056ddd4c5d3b740ebca4d43ffffe2ef4bf4d2d05114299da"}, - {file = "charset_normalizer-3.4.2-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c9e36a97bee9b86ef9a1cf7bb96747eb7a15c2f22bdb5b516434b00f2a599f02"}, - {file = "charset_normalizer-3.4.2-cp37-cp37m-musllinux_1_2_aarch64.whl", hash = "sha256:1b1bde144d98e446b056ef98e59c256e9294f6b74d7af6846bf5ffdafd687a7d"}, - {file = "charset_normalizer-3.4.2-cp37-cp37m-musllinux_1_2_i686.whl", hash = "sha256:915f3849a011c1f593ab99092f3cecfcb4d65d8feb4a64cf1bf2d22074dc0ec4"}, - {file = "charset_normalizer-3.4.2-cp37-cp37m-musllinux_1_2_ppc64le.whl", hash = "sha256:fb707f3e15060adf5b7ada797624a6c6e0138e2a26baa089df64c68ee98e040f"}, - {file = "charset_normalizer-3.4.2-cp37-cp37m-musllinux_1_2_s390x.whl", hash = "sha256:25a23ea5c7edc53e0f29bae2c44fcb5a1aa10591aae107f2a2b2583a9c5cbc64"}, - {file = "charset_normalizer-3.4.2-cp37-cp37m-musllinux_1_2_x86_64.whl", hash = "sha256:770cab594ecf99ae64c236bc9ee3439c3f46be49796e265ce0cc8bc17b10294f"}, - {file = "charset_normalizer-3.4.2-cp37-cp37m-win32.whl", hash = "sha256:6a0289e4589e8bdfef02a80478f1dfcb14f0ab696b5a00e1f4b8a14a307a3c58"}, - {file = "charset_normalizer-3.4.2-cp37-cp37m-win_amd64.whl", hash = "sha256:6fc1f5b51fa4cecaa18f2bd7a003f3dd039dd615cd69a2afd6d3b19aed6775f2"}, - {file = "charset_normalizer-3.4.2-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:76af085e67e56c8816c3ccf256ebd136def2ed9654525348cfa744b6802b69eb"}, - {file = "charset_normalizer-3.4.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e45ba65510e2647721e35323d6ef54c7974959f6081b58d4ef5d87c60c84919a"}, - {file = "charset_normalizer-3.4.2-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:046595208aae0120559a67693ecc65dd75d46f7bf687f159127046628178dc45"}, - {file = "charset_normalizer-3.4.2-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:75d10d37a47afee94919c4fab4c22b9bc2a8bf7d4f46f87363bcf0573f3ff4f5"}, - {file = "charset_normalizer-3.4.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6333b3aa5a12c26b2a4d4e7335a28f1475e0e5e17d69d55141ee3cab736f66d1"}, - {file = "charset_normalizer-3.4.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e8323a9b031aa0393768b87f04b4164a40037fb2a3c11ac06a03ffecd3618027"}, - {file = "charset_normalizer-3.4.2-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:24498ba8ed6c2e0b56d4acbf83f2d989720a93b41d712ebd4f4979660db4417b"}, - {file = "charset_normalizer-3.4.2-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:844da2b5728b5ce0e32d863af26f32b5ce61bc4273a9c720a9f3aa9df73b1455"}, - {file = "charset_normalizer-3.4.2-cp38-cp38-musllinux_1_2_ppc64le.whl", hash = "sha256:65c981bdbd3f57670af8b59777cbfae75364b483fa8a9f420f08094531d54a01"}, - {file = "charset_normalizer-3.4.2-cp38-cp38-musllinux_1_2_s390x.whl", hash = "sha256:3c21d4fca343c805a52c0c78edc01e3477f6dd1ad7c47653241cf2a206d4fc58"}, - {file = "charset_normalizer-3.4.2-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:dc7039885fa1baf9be153a0626e337aa7ec8bf96b0128605fb0d77788ddc1681"}, - {file = "charset_normalizer-3.4.2-cp38-cp38-win32.whl", hash = "sha256:8272b73e1c5603666618805fe821edba66892e2870058c94c53147602eab29c7"}, - {file = "charset_normalizer-3.4.2-cp38-cp38-win_amd64.whl", hash = "sha256:70f7172939fdf8790425ba31915bfbe8335030f05b9913d7ae00a87d4395620a"}, - {file = "charset_normalizer-3.4.2-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:005fa3432484527f9732ebd315da8da8001593e2cf46a3d817669f062c3d9ed4"}, - {file = "charset_normalizer-3.4.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e92fca20c46e9f5e1bb485887d074918b13543b1c2a1185e69bb8d17ab6236a7"}, - {file = "charset_normalizer-3.4.2-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:50bf98d5e563b83cc29471fa114366e6806bc06bc7a25fd59641e41445327836"}, - {file = "charset_normalizer-3.4.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:721c76e84fe669be19c5791da68232ca2e05ba5185575086e384352e2c309597"}, - {file = "charset_normalizer-3.4.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:82d8fd25b7f4675d0c47cf95b594d4e7b158aca33b76aa63d07186e13c0e0ab7"}, - {file = "charset_normalizer-3.4.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b3daeac64d5b371dea99714f08ffc2c208522ec6b06fbc7866a450dd446f5c0f"}, - {file = "charset_normalizer-3.4.2-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:dccab8d5fa1ef9bfba0590ecf4d46df048d18ffe3eec01eeb73a42e0d9e7a8ba"}, - {file = "charset_normalizer-3.4.2-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:aaf27faa992bfee0264dc1f03f4c75e9fcdda66a519db6b957a3f826e285cf12"}, - {file = "charset_normalizer-3.4.2-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:eb30abc20df9ab0814b5a2524f23d75dcf83cde762c161917a2b4b7b55b1e518"}, - {file = "charset_normalizer-3.4.2-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:c72fbbe68c6f32f251bdc08b8611c7b3060612236e960ef848e0a517ddbe76c5"}, - {file = "charset_normalizer-3.4.2-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:982bb1e8b4ffda883b3d0a521e23abcd6fd17418f6d2c4118d257a10199c0ce3"}, - {file = "charset_normalizer-3.4.2-cp39-cp39-win32.whl", hash = "sha256:43e0933a0eff183ee85833f341ec567c0980dae57c464d8a508e1b2ceb336471"}, - {file = "charset_normalizer-3.4.2-cp39-cp39-win_amd64.whl", hash = "sha256:d11b54acf878eef558599658b0ffca78138c8c3655cf4f3a4a673c437e67732e"}, - {file = "charset_normalizer-3.4.2-py3-none-any.whl", hash = "sha256:7f56930ab0abd1c45cd15be65cc741c28b1c9a34876ce8c17a2fa107810c0af0"}, - {file = "charset_normalizer-3.4.2.tar.gz", hash = "sha256:5baececa9ecba31eff645232d59845c07aa030f0c81ee70184a90d35099a0e63"}, -] - -[[package]] -name = "colorama" -version = "0.4.6" -description = "Cross-platform colored terminal text." -optional = false -python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7" -groups = ["main", "dev"] -files = [ - {file = "colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6"}, - {file = "colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44"}, -] -markers = {dev = "sys_platform == \"win32\""} - -[[package]] -name = "crayons" -version = "0.4.0" -description = "TextUI colors for Python." -optional = false -python-versions = "*" -groups = ["main"] -files = [ - {file = "crayons-0.4.0-py2.py3-none-any.whl", hash = "sha256:e73ad105c78935d71fe454dd4b85c5c437ba199294e7ffd3341842bc683654b1"}, - {file = "crayons-0.4.0.tar.gz", hash = "sha256:bd33b7547800f2cfbd26b38431f9e64b487a7de74a947b0fafc89b45a601813f"}, -] - -[package.dependencies] -colorama = "*" - -[[package]] -name = "distlib" -version = "0.3.9" -description = "Distribution utilities" -optional = false -python-versions = "*" -groups = ["dev"] -files = [ - {file = "distlib-0.3.9-py2.py3-none-any.whl", hash = "sha256:47f8c22fd27c27e25a65601af709b38e4f0a45ea4fc2e710f65755fa8caaaf87"}, - {file = "distlib-0.3.9.tar.gz", hash = "sha256:a60f20dea646b8a33f3e7772f74dc0b2d0772d2837ee1342a00645c81edf9403"}, -] - -[[package]] -name = "docutils" -version = "0.19" -description = "Docutils -- Python Documentation Utilities" -optional = false -python-versions = ">=3.7" -groups = ["dev"] -files = [ - {file = "docutils-0.19-py3-none-any.whl", hash = "sha256:5e1de4d849fee02c63b040a4a3fd567f4ab104defd8a5511fbbc24a8a017efbc"}, - {file = "docutils-0.19.tar.gz", hash = "sha256:33995a6753c30b7f577febfc2c50411fec6aac7f7ffeb7c4cfe5991072dcf9e6"}, -] - -[[package]] -name = "filelock" -version = "3.18.0" -description = "A platform independent file lock." -optional = false -python-versions = ">=3.9" -groups = ["dev"] -files = [ - {file = "filelock-3.18.0-py3-none-any.whl", hash = "sha256:c401f4f8377c4464e6db25fff06205fd89bdd83b65eb0488ed1b160f780e21de"}, - {file = "filelock-3.18.0.tar.gz", hash = "sha256:adbc88eabb99d2fec8c9c1b229b171f18afa655400173ddc653d5d01501fb9f2"}, -] - -[package.extras] -docs = ["furo (>=2024.8.6)", "sphinx (>=8.1.3)", "sphinx-autodoc-typehints (>=3)"] -testing = ["covdefaults (>=2.3)", "coverage (>=7.6.10)", "diff-cover (>=9.2.1)", "pytest (>=8.3.4)", "pytest-asyncio (>=0.25.2)", "pytest-cov (>=6)", "pytest-mock (>=3.14)", "pytest-timeout (>=2.3.1)", "virtualenv (>=20.28.1)"] -typing = ["typing-extensions (>=4.12.2) ; python_version < \"3.11\""] - -[[package]] -name = "flake8" -version = "6.1.0" -description = "the modular source code checker: pep8 pyflakes and co" -optional = false -python-versions = ">=3.8.1" -groups = ["dev"] -files = [ - {file = "flake8-6.1.0-py2.py3-none-any.whl", hash = "sha256:ffdfce58ea94c6580c77888a86506937f9a1a227dfcd15f245d694ae20a6b6e5"}, - {file = "flake8-6.1.0.tar.gz", hash = "sha256:d5b3857f07c030bdb5bf41c7f53799571d75c4491748a3adcd47de929e34cd23"}, -] - -[package.dependencies] -mccabe = ">=0.7.0,<0.8.0" -pycodestyle = ">=2.11.0,<2.12.0" -pyflakes = ">=3.1.0,<3.2.0" - -[[package]] -name = "identify" -version = "2.6.12" -description = "File identification library for Python" -optional = false -python-versions = ">=3.9" -groups = ["dev"] -files = [ - {file = "identify-2.6.12-py2.py3-none-any.whl", hash = "sha256:ad9672d5a72e0d2ff7c5c8809b62dfa60458626352fb0eb7b55e69bdc45334a2"}, - {file = "identify-2.6.12.tar.gz", hash = "sha256:d8de45749f1efb108badef65ee8386f0f7bb19a7f26185f74de6367bffbaf0e6"}, -] - -[package.extras] -license = ["ukkonen"] - -[[package]] -name = "idna" -version = "3.10" -description = "Internationalized Domain Names in Applications (IDNA)" -optional = false -python-versions = ">=3.6" -groups = ["dev"] -files = [ - {file = "idna-3.10-py3-none-any.whl", hash = "sha256:946d195a0d259cbba61165e88e65941f16e9b36ea6ddb97f00452bae8b1287d3"}, - {file = "idna-3.10.tar.gz", hash = "sha256:12f65c9b470abda6dc35cf8e63cc574b1c52b11df2c86030af0ac09b01b13ea9"}, -] - -[package.extras] -all = ["flake8 (>=7.1.1)", "mypy (>=1.11.2)", "pytest (>=8.3.2)", "ruff (>=0.6.2)"] - -[[package]] -name = "imagesize" -version = "1.4.1" -description = "Getting image size from png/jpeg/jpeg2000/gif file" -optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" -groups = ["dev"] -files = [ - {file = "imagesize-1.4.1-py2.py3-none-any.whl", hash = "sha256:0d8d18d08f840c19d0ee7ca1fd82490fdc3729b7ac93f49870406ddde8ef8d8b"}, - {file = "imagesize-1.4.1.tar.gz", hash = "sha256:69150444affb9cb0d5cc5a92b3676f0b2fb7cd9ae39e947a5e11a36b4497cd4a"}, -] - -[[package]] -name = "jinja2" -version = "3.1.6" -description = "A very fast and expressive template engine." -optional = false -python-versions = ">=3.7" -groups = ["dev"] -files = [ - {file = "jinja2-3.1.6-py3-none-any.whl", hash = "sha256:85ece4451f492d0c13c5dd7c13a64681a86afae63a5f347908daf103ce6d2f67"}, - {file = "jinja2-3.1.6.tar.gz", hash = "sha256:0137fb05990d35f1275a587e9aee6d56da821fc83491a0fb838183be43f66d6d"}, -] - -[package.dependencies] -MarkupSafe = ">=2.0" - -[package.extras] -i18n = ["Babel (>=2.7)"] - -[[package]] -name = "markupsafe" -version = "3.0.2" -description = "Safely add untrusted strings to HTML/XML markup." -optional = false -python-versions = ">=3.9" -groups = ["dev"] -files = [ - {file = "MarkupSafe-3.0.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:7e94c425039cde14257288fd61dcfb01963e658efbc0ff54f5306b06054700f8"}, - {file = "MarkupSafe-3.0.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9e2d922824181480953426608b81967de705c3cef4d1af983af849d7bd619158"}, - {file = "MarkupSafe-3.0.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:38a9ef736c01fccdd6600705b09dc574584b89bea478200c5fbf112a6b0d5579"}, - {file = "MarkupSafe-3.0.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bbcb445fa71794da8f178f0f6d66789a28d7319071af7a496d4d507ed566270d"}, - {file = "MarkupSafe-3.0.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:57cb5a3cf367aeb1d316576250f65edec5bb3be939e9247ae594b4bcbc317dfb"}, - {file = "MarkupSafe-3.0.2-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:3809ede931876f5b2ec92eef964286840ed3540dadf803dd570c3b7e13141a3b"}, - {file = "MarkupSafe-3.0.2-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:e07c3764494e3776c602c1e78e298937c3315ccc9043ead7e685b7f2b8d47b3c"}, - {file = "MarkupSafe-3.0.2-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:b424c77b206d63d500bcb69fa55ed8d0e6a3774056bdc4839fc9298a7edca171"}, - {file = "MarkupSafe-3.0.2-cp310-cp310-win32.whl", hash = "sha256:fcabf5ff6eea076f859677f5f0b6b5c1a51e70a376b0579e0eadef8db48c6b50"}, - {file = "MarkupSafe-3.0.2-cp310-cp310-win_amd64.whl", hash = "sha256:6af100e168aa82a50e186c82875a5893c5597a0c1ccdb0d8b40240b1f28b969a"}, - {file = "MarkupSafe-3.0.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:9025b4018f3a1314059769c7bf15441064b2207cb3f065e6ea1e7359cb46db9d"}, - {file = "MarkupSafe-3.0.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:93335ca3812df2f366e80509ae119189886b0f3c2b81325d39efdb84a1e2ae93"}, - {file = "MarkupSafe-3.0.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2cb8438c3cbb25e220c2ab33bb226559e7afb3baec11c4f218ffa7308603c832"}, - {file = "MarkupSafe-3.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a123e330ef0853c6e822384873bef7507557d8e4a082961e1defa947aa59ba84"}, - {file = "MarkupSafe-3.0.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1e084f686b92e5b83186b07e8a17fc09e38fff551f3602b249881fec658d3eca"}, - {file = "MarkupSafe-3.0.2-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:d8213e09c917a951de9d09ecee036d5c7d36cb6cb7dbaece4c71a60d79fb9798"}, - {file = "MarkupSafe-3.0.2-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:5b02fb34468b6aaa40dfc198d813a641e3a63b98c2b05a16b9f80b7ec314185e"}, - {file = "MarkupSafe-3.0.2-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:0bff5e0ae4ef2e1ae4fdf2dfd5b76c75e5c2fa4132d05fc1b0dabcd20c7e28c4"}, - {file = "MarkupSafe-3.0.2-cp311-cp311-win32.whl", hash = "sha256:6c89876f41da747c8d3677a2b540fb32ef5715f97b66eeb0c6b66f5e3ef6f59d"}, - {file = "MarkupSafe-3.0.2-cp311-cp311-win_amd64.whl", hash = "sha256:70a87b411535ccad5ef2f1df5136506a10775d267e197e4cf531ced10537bd6b"}, - {file = "MarkupSafe-3.0.2-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:9778bd8ab0a994ebf6f84c2b949e65736d5575320a17ae8984a77fab08db94cf"}, - {file = "MarkupSafe-3.0.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:846ade7b71e3536c4e56b386c2a47adf5741d2d8b94ec9dc3e92e5e1ee1e2225"}, - {file = "MarkupSafe-3.0.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1c99d261bd2d5f6b59325c92c73df481e05e57f19837bdca8413b9eac4bd8028"}, - {file = "MarkupSafe-3.0.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e17c96c14e19278594aa4841ec148115f9c7615a47382ecb6b82bd8fea3ab0c8"}, - {file = "MarkupSafe-3.0.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:88416bd1e65dcea10bc7569faacb2c20ce071dd1f87539ca2ab364bf6231393c"}, - {file = "MarkupSafe-3.0.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:2181e67807fc2fa785d0592dc2d6206c019b9502410671cc905d132a92866557"}, - {file = "MarkupSafe-3.0.2-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:52305740fe773d09cffb16f8ed0427942901f00adedac82ec8b67752f58a1b22"}, - {file = "MarkupSafe-3.0.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:ad10d3ded218f1039f11a75f8091880239651b52e9bb592ca27de44eed242a48"}, - {file = "MarkupSafe-3.0.2-cp312-cp312-win32.whl", hash = "sha256:0f4ca02bea9a23221c0182836703cbf8930c5e9454bacce27e767509fa286a30"}, - {file = "MarkupSafe-3.0.2-cp312-cp312-win_amd64.whl", hash = "sha256:8e06879fc22a25ca47312fbe7c8264eb0b662f6db27cb2d3bbbc74b1df4b9b87"}, - {file = "MarkupSafe-3.0.2-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:ba9527cdd4c926ed0760bc301f6728ef34d841f405abf9d4f959c478421e4efd"}, - {file = "MarkupSafe-3.0.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:f8b3d067f2e40fe93e1ccdd6b2e1d16c43140e76f02fb1319a05cf2b79d99430"}, - {file = "MarkupSafe-3.0.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:569511d3b58c8791ab4c2e1285575265991e6d8f8700c7be0e88f86cb0672094"}, - {file = "MarkupSafe-3.0.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:15ab75ef81add55874e7ab7055e9c397312385bd9ced94920f2802310c930396"}, - {file = "MarkupSafe-3.0.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f3818cb119498c0678015754eba762e0d61e5b52d34c8b13d770f0719f7b1d79"}, - {file = "MarkupSafe-3.0.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:cdb82a876c47801bb54a690c5ae105a46b392ac6099881cdfb9f6e95e4014c6a"}, - {file = "MarkupSafe-3.0.2-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:cabc348d87e913db6ab4aa100f01b08f481097838bdddf7c7a84b7575b7309ca"}, - {file = "MarkupSafe-3.0.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:444dcda765c8a838eaae23112db52f1efaf750daddb2d9ca300bcae1039adc5c"}, - {file = "MarkupSafe-3.0.2-cp313-cp313-win32.whl", hash = "sha256:bcf3e58998965654fdaff38e58584d8937aa3096ab5354d493c77d1fdd66d7a1"}, - {file = "MarkupSafe-3.0.2-cp313-cp313-win_amd64.whl", hash = "sha256:e6a2a455bd412959b57a172ce6328d2dd1f01cb2135efda2e4576e8a23fa3b0f"}, - {file = "MarkupSafe-3.0.2-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:b5a6b3ada725cea8a5e634536b1b01c30bcdcd7f9c6fff4151548d5bf6b3a36c"}, - {file = "MarkupSafe-3.0.2-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:a904af0a6162c73e3edcb969eeeb53a63ceeb5d8cf642fade7d39e7963a22ddb"}, - {file = "MarkupSafe-3.0.2-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4aa4e5faecf353ed117801a068ebab7b7e09ffb6e1d5e412dc852e0da018126c"}, - {file = "MarkupSafe-3.0.2-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c0ef13eaeee5b615fb07c9a7dadb38eac06a0608b41570d8ade51c56539e509d"}, - {file = "MarkupSafe-3.0.2-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d16a81a06776313e817c951135cf7340a3e91e8c1ff2fac444cfd75fffa04afe"}, - {file = "MarkupSafe-3.0.2-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:6381026f158fdb7c72a168278597a5e3a5222e83ea18f543112b2662a9b699c5"}, - {file = "MarkupSafe-3.0.2-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:3d79d162e7be8f996986c064d1c7c817f6df3a77fe3d6859f6f9e7be4b8c213a"}, - {file = "MarkupSafe-3.0.2-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:131a3c7689c85f5ad20f9f6fb1b866f402c445b220c19fe4308c0b147ccd2ad9"}, - {file = "MarkupSafe-3.0.2-cp313-cp313t-win32.whl", hash = "sha256:ba8062ed2cf21c07a9e295d5b8a2a5ce678b913b45fdf68c32d95d6c1291e0b6"}, - {file = "MarkupSafe-3.0.2-cp313-cp313t-win_amd64.whl", hash = "sha256:e444a31f8db13eb18ada366ab3cf45fd4b31e4db1236a4448f68778c1d1a5a2f"}, - {file = "MarkupSafe-3.0.2-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:eaa0a10b7f72326f1372a713e73c3f739b524b3af41feb43e4921cb529f5929a"}, - {file = "MarkupSafe-3.0.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:48032821bbdf20f5799ff537c7ac3d1fba0ba032cfc06194faffa8cda8b560ff"}, - {file = "MarkupSafe-3.0.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1a9d3f5f0901fdec14d8d2f66ef7d035f2157240a433441719ac9a3fba440b13"}, - {file = "MarkupSafe-3.0.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:88b49a3b9ff31e19998750c38e030fc7bb937398b1f78cfa599aaef92d693144"}, - {file = "MarkupSafe-3.0.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:cfad01eed2c2e0c01fd0ecd2ef42c492f7f93902e39a42fc9ee1692961443a29"}, - {file = "MarkupSafe-3.0.2-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:1225beacc926f536dc82e45f8a4d68502949dc67eea90eab715dea3a21c1b5f0"}, - {file = "MarkupSafe-3.0.2-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:3169b1eefae027567d1ce6ee7cae382c57fe26e82775f460f0b2778beaad66c0"}, - {file = "MarkupSafe-3.0.2-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:eb7972a85c54febfb25b5c4b4f3af4dcc731994c7da0d8a0b4a6eb0640e1d178"}, - {file = "MarkupSafe-3.0.2-cp39-cp39-win32.whl", hash = "sha256:8c4e8c3ce11e1f92f6536ff07154f9d49677ebaaafc32db9db4620bc11ed480f"}, - {file = "MarkupSafe-3.0.2-cp39-cp39-win_amd64.whl", hash = "sha256:6e296a513ca3d94054c2c881cc913116e90fd030ad1c656b3869762b754f5f8a"}, - {file = "markupsafe-3.0.2.tar.gz", hash = "sha256:ee55d3edf80167e48ea11a923c7386f4669df67d7994554387f84e7d8b0a2bf0"}, -] - -[[package]] -name = "mccabe" -version = "0.7.0" -description = "McCabe checker, plugin for flake8" -optional = false -python-versions = ">=3.6" -groups = ["dev"] -files = [ - {file = "mccabe-0.7.0-py2.py3-none-any.whl", hash = "sha256:6c2d30ab6be0e4a46919781807b4f0d834ebdd6c6e3dca0bda5a15f863427b6e"}, - {file = "mccabe-0.7.0.tar.gz", hash = "sha256:348e0240c33b60bbdf4e523192ef919f28cb2c3d7d5c7794f74009290f236325"}, -] - -[[package]] -name = "mypy" -version = "1.16.1" -description = "Optional static typing for Python" -optional = false -python-versions = ">=3.9" -groups = ["dev"] -files = [ - {file = "mypy-1.16.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:b4f0fed1022a63c6fec38f28b7fc77fca47fd490445c69d0a66266c59dd0b88a"}, - {file = "mypy-1.16.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:86042bbf9f5a05ea000d3203cf87aa9d0ccf9a01f73f71c58979eb9249f46d72"}, - {file = "mypy-1.16.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ea7469ee5902c95542bea7ee545f7006508c65c8c54b06dc2c92676ce526f3ea"}, - {file = "mypy-1.16.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:352025753ef6a83cb9e7f2427319bb7875d1fdda8439d1e23de12ab164179574"}, - {file = "mypy-1.16.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:ff9fa5b16e4c1364eb89a4d16bcda9987f05d39604e1e6c35378a2987c1aac2d"}, - {file = "mypy-1.16.1-cp310-cp310-win_amd64.whl", hash = "sha256:1256688e284632382f8f3b9e2123df7d279f603c561f099758e66dd6ed4e8bd6"}, - {file = "mypy-1.16.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:472e4e4c100062488ec643f6162dd0d5208e33e2f34544e1fc931372e806c0cc"}, - {file = "mypy-1.16.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:ea16e2a7d2714277e349e24d19a782a663a34ed60864006e8585db08f8ad1782"}, - {file = "mypy-1.16.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:08e850ea22adc4d8a4014651575567b0318ede51e8e9fe7a68f25391af699507"}, - {file = "mypy-1.16.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:22d76a63a42619bfb90122889b903519149879ddbf2ba4251834727944c8baca"}, - {file = "mypy-1.16.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:2c7ce0662b6b9dc8f4ed86eb7a5d505ee3298c04b40ec13b30e572c0e5ae17c4"}, - {file = "mypy-1.16.1-cp311-cp311-win_amd64.whl", hash = "sha256:211287e98e05352a2e1d4e8759c5490925a7c784ddc84207f4714822f8cf99b6"}, - {file = "mypy-1.16.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:af4792433f09575d9eeca5c63d7d90ca4aeceda9d8355e136f80f8967639183d"}, - {file = "mypy-1.16.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:66df38405fd8466ce3517eda1f6640611a0b8e70895e2a9462d1d4323c5eb4b9"}, - {file = "mypy-1.16.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:44e7acddb3c48bd2713994d098729494117803616e116032af192871aed80b79"}, - {file = "mypy-1.16.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:0ab5eca37b50188163fa7c1b73c685ac66c4e9bdee4a85c9adac0e91d8895e15"}, - {file = "mypy-1.16.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:dedb6229b2c9086247e21a83c309754b9058b438704ad2f6807f0d8227f6ebdd"}, - {file = "mypy-1.16.1-cp312-cp312-win_amd64.whl", hash = "sha256:1f0435cf920e287ff68af3d10a118a73f212deb2ce087619eb4e648116d1fe9b"}, - {file = "mypy-1.16.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:ddc91eb318c8751c69ddb200a5937f1232ee8efb4e64e9f4bc475a33719de438"}, - {file = "mypy-1.16.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:87ff2c13d58bdc4bbe7dc0dedfe622c0f04e2cb2a492269f3b418df2de05c536"}, - {file = "mypy-1.16.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0a7cfb0fe29fe5a9841b7c8ee6dffb52382c45acdf68f032145b75620acfbd6f"}, - {file = "mypy-1.16.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:051e1677689c9d9578b9c7f4d206d763f9bbd95723cd1416fad50db49d52f359"}, - {file = "mypy-1.16.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:d5d2309511cc56c021b4b4e462907c2b12f669b2dbeb68300110ec27723971be"}, - {file = "mypy-1.16.1-cp313-cp313-win_amd64.whl", hash = "sha256:4f58ac32771341e38a853c5d0ec0dfe27e18e27da9cdb8bbc882d2249c71a3ee"}, - {file = "mypy-1.16.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:7fc688329af6a287567f45cc1cefb9db662defeb14625213a5b7da6e692e2069"}, - {file = "mypy-1.16.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:5e198ab3f55924c03ead626ff424cad1732d0d391478dfbf7bb97b34602395da"}, - {file = "mypy-1.16.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:09aa4f91ada245f0a45dbc47e548fd94e0dd5a8433e0114917dc3b526912a30c"}, - {file = "mypy-1.16.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:13c7cd5b1cb2909aa318a90fd1b7e31f17c50b242953e7dd58345b2a814f6383"}, - {file = "mypy-1.16.1-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:58e07fb958bc5d752a280da0e890c538f1515b79a65757bbdc54252ba82e0b40"}, - {file = "mypy-1.16.1-cp39-cp39-win_amd64.whl", hash = "sha256:f895078594d918f93337a505f8add9bd654d1a24962b4c6ed9390e12531eb31b"}, - {file = "mypy-1.16.1-py3-none-any.whl", hash = "sha256:5fc2ac4027d0ef28d6ba69a0343737a23c4d1b83672bf38d1fe237bdc0643b37"}, - {file = "mypy-1.16.1.tar.gz", hash = "sha256:6bd00a0a2094841c5e47e7374bb42b83d64c527a502e3334e1173a0c24437bab"}, -] - -[package.dependencies] -mypy_extensions = ">=1.0.0" -pathspec = ">=0.9.0" -tomli = {version = ">=1.1.0", markers = "python_version < \"3.11\""} -typing_extensions = ">=4.6.0" - -[package.extras] -dmypy = ["psutil (>=4.0)"] -faster-cache = ["orjson"] -install-types = ["pip"] -mypyc = ["setuptools (>=50)"] -reports = ["lxml"] - -[[package]] -name = "mypy-extensions" -version = "1.1.0" -description = "Type system extensions for programs checked with the mypy type checker." -optional = false -python-versions = ">=3.8" -groups = ["dev"] -files = [ - {file = "mypy_extensions-1.1.0-py3-none-any.whl", hash = "sha256:1be4cccdb0f2482337c4743e60421de3a356cd97508abadd57d47403e94f5505"}, - {file = "mypy_extensions-1.1.0.tar.gz", hash = "sha256:52e68efc3284861e772bbcd66823fde5ae21fd2fdb51c62a211403730b916558"}, -] - -[[package]] -name = "nodeenv" -version = "1.9.1" -description = "Node.js virtual environment builder" -optional = false -python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7" -groups = ["dev"] -files = [ - {file = "nodeenv-1.9.1-py2.py3-none-any.whl", hash = "sha256:ba11c9782d29c27c70ffbdda2d7415098754709be8a7056d79a737cd901155c9"}, - {file = "nodeenv-1.9.1.tar.gz", hash = "sha256:6ec12890a2dab7946721edbfbcd91f3319c6ccc9aec47be7c7e6b7011ee6645f"}, -] - -[[package]] -name = "nose2" -version = "0.14.2" -description = "unittest with plugins" -optional = false -python-versions = ">=3.8" -groups = ["dev"] -files = [ - {file = "nose2-0.14.2-py3-none-any.whl", hash = "sha256:50cd5f5d025dcf4b6b7c8ada9849ba9a5ffb544fc46f8740da1059502c4b7f92"}, - {file = "nose2-0.14.2.tar.gz", hash = "sha256:29e581efcef01a1aba391e817b121a681e9841b3299c1110bba8b1cd1d4074bf"}, -] - -[package.extras] -coverage-plugin = ["coverage"] -dev = ["Sphinx", "sphinx-issues", "sphinx-rtd-theme"] - -[[package]] -name = "numpy" -version = "2.2.6" -description = "Fundamental package for array computing in Python" -optional = false -python-versions = ">=3.10" -groups = ["main"] -markers = "python_version == \"3.10\"" -files = [ - {file = "numpy-2.2.6-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:b412caa66f72040e6d268491a59f2c43bf03eb6c96dd8f0307829feb7fa2b6fb"}, - {file = "numpy-2.2.6-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:8e41fd67c52b86603a91c1a505ebaef50b3314de0213461c7a6e99c9a3beff90"}, - {file = "numpy-2.2.6-cp310-cp310-macosx_14_0_arm64.whl", hash = "sha256:37e990a01ae6ec7fe7fa1c26c55ecb672dd98b19c3d0e1d1f326fa13cb38d163"}, - {file = "numpy-2.2.6-cp310-cp310-macosx_14_0_x86_64.whl", hash = "sha256:5a6429d4be8ca66d889b7cf70f536a397dc45ba6faeb5f8c5427935d9592e9cf"}, - {file = "numpy-2.2.6-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:efd28d4e9cd7d7a8d39074a4d44c63eda73401580c5c76acda2ce969e0a38e83"}, - {file = "numpy-2.2.6-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fc7b73d02efb0e18c000e9ad8b83480dfcd5dfd11065997ed4c6747470ae8915"}, - {file = "numpy-2.2.6-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:74d4531beb257d2c3f4b261bfb0fc09e0f9ebb8842d82a7b4209415896adc680"}, - {file = "numpy-2.2.6-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:8fc377d995680230e83241d8a96def29f204b5782f371c532579b4f20607a289"}, - {file = "numpy-2.2.6-cp310-cp310-win32.whl", hash = "sha256:b093dd74e50a8cba3e873868d9e93a85b78e0daf2e98c6797566ad8044e8363d"}, - {file = "numpy-2.2.6-cp310-cp310-win_amd64.whl", hash = "sha256:f0fd6321b839904e15c46e0d257fdd101dd7f530fe03fd6359c1ea63738703f3"}, - {file = "numpy-2.2.6-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:f9f1adb22318e121c5c69a09142811a201ef17ab257a1e66ca3025065b7f53ae"}, - {file = "numpy-2.2.6-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:c820a93b0255bc360f53eca31a0e676fd1101f673dda8da93454a12e23fc5f7a"}, - {file = "numpy-2.2.6-cp311-cp311-macosx_14_0_arm64.whl", hash = "sha256:3d70692235e759f260c3d837193090014aebdf026dfd167834bcba43e30c2a42"}, - {file = "numpy-2.2.6-cp311-cp311-macosx_14_0_x86_64.whl", hash = "sha256:481b49095335f8eed42e39e8041327c05b0f6f4780488f61286ed3c01368d491"}, - {file = "numpy-2.2.6-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b64d8d4d17135e00c8e346e0a738deb17e754230d7e0810ac5012750bbd85a5a"}, - {file = "numpy-2.2.6-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ba10f8411898fc418a521833e014a77d3ca01c15b0c6cdcce6a0d2897e6dbbdf"}, - {file = "numpy-2.2.6-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:bd48227a919f1bafbdda0583705e547892342c26fb127219d60a5c36882609d1"}, - {file = "numpy-2.2.6-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:9551a499bf125c1d4f9e250377c1ee2eddd02e01eac6644c080162c0c51778ab"}, - {file = "numpy-2.2.6-cp311-cp311-win32.whl", hash = "sha256:0678000bb9ac1475cd454c6b8c799206af8107e310843532b04d49649c717a47"}, - {file = "numpy-2.2.6-cp311-cp311-win_amd64.whl", hash = "sha256:e8213002e427c69c45a52bbd94163084025f533a55a59d6f9c5b820774ef3303"}, - {file = "numpy-2.2.6-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:41c5a21f4a04fa86436124d388f6ed60a9343a6f767fced1a8a71c3fbca038ff"}, - {file = "numpy-2.2.6-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:de749064336d37e340f640b05f24e9e3dd678c57318c7289d222a8a2f543e90c"}, - {file = "numpy-2.2.6-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:894b3a42502226a1cac872f840030665f33326fc3dac8e57c607905773cdcde3"}, - {file = "numpy-2.2.6-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:71594f7c51a18e728451bb50cc60a3ce4e6538822731b2933209a1f3614e9282"}, - {file = "numpy-2.2.6-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f2618db89be1b4e05f7a1a847a9c1c0abd63e63a1607d892dd54668dd92faf87"}, - {file = "numpy-2.2.6-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fd83c01228a688733f1ded5201c678f0c53ecc1006ffbc404db9f7a899ac6249"}, - {file = "numpy-2.2.6-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:37c0ca431f82cd5fa716eca9506aefcabc247fb27ba69c5062a6d3ade8cf8f49"}, - {file = "numpy-2.2.6-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:fe27749d33bb772c80dcd84ae7e8df2adc920ae8297400dabec45f0dedb3f6de"}, - {file = "numpy-2.2.6-cp312-cp312-win32.whl", hash = "sha256:4eeaae00d789f66c7a25ac5f34b71a7035bb474e679f410e5e1a94deb24cf2d4"}, - {file = "numpy-2.2.6-cp312-cp312-win_amd64.whl", hash = "sha256:c1f9540be57940698ed329904db803cf7a402f3fc200bfe599334c9bd84a40b2"}, - {file = "numpy-2.2.6-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:0811bb762109d9708cca4d0b13c4f67146e3c3b7cf8d34018c722adb2d957c84"}, - {file = "numpy-2.2.6-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:287cc3162b6f01463ccd86be154f284d0893d2b3ed7292439ea97eafa8170e0b"}, - {file = "numpy-2.2.6-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:f1372f041402e37e5e633e586f62aa53de2eac8d98cbfb822806ce4bbefcb74d"}, - {file = "numpy-2.2.6-cp313-cp313-macosx_14_0_x86_64.whl", hash = "sha256:55a4d33fa519660d69614a9fad433be87e5252f4b03850642f88993f7b2ca566"}, - {file = "numpy-2.2.6-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f92729c95468a2f4f15e9bb94c432a9229d0d50de67304399627a943201baa2f"}, - {file = "numpy-2.2.6-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1bc23a79bfabc5d056d106f9befb8d50c31ced2fbc70eedb8155aec74a45798f"}, - {file = "numpy-2.2.6-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:e3143e4451880bed956e706a3220b4e5cf6172ef05fcc397f6f36a550b1dd868"}, - {file = "numpy-2.2.6-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:b4f13750ce79751586ae2eb824ba7e1e8dba64784086c98cdbbcc6a42112ce0d"}, - {file = "numpy-2.2.6-cp313-cp313-win32.whl", hash = "sha256:5beb72339d9d4fa36522fc63802f469b13cdbe4fdab4a288f0c441b74272ebfd"}, - {file = "numpy-2.2.6-cp313-cp313-win_amd64.whl", hash = "sha256:b0544343a702fa80c95ad5d3d608ea3599dd54d4632df855e4c8d24eb6ecfa1c"}, - {file = "numpy-2.2.6-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:0bca768cd85ae743b2affdc762d617eddf3bcf8724435498a1e80132d04879e6"}, - {file = "numpy-2.2.6-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:fc0c5673685c508a142ca65209b4e79ed6740a4ed6b2267dbba90f34b0b3cfda"}, - {file = "numpy-2.2.6-cp313-cp313t-macosx_14_0_arm64.whl", hash = "sha256:5bd4fc3ac8926b3819797a7c0e2631eb889b4118a9898c84f585a54d475b7e40"}, - {file = "numpy-2.2.6-cp313-cp313t-macosx_14_0_x86_64.whl", hash = "sha256:fee4236c876c4e8369388054d02d0e9bb84821feb1a64dd59e137e6511a551f8"}, - {file = "numpy-2.2.6-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e1dda9c7e08dc141e0247a5b8f49cf05984955246a327d4c48bda16821947b2f"}, - {file = "numpy-2.2.6-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f447e6acb680fd307f40d3da4852208af94afdfab89cf850986c3ca00562f4fa"}, - {file = "numpy-2.2.6-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:389d771b1623ec92636b0786bc4ae56abafad4a4c513d36a55dce14bd9ce8571"}, - {file = "numpy-2.2.6-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:8e9ace4a37db23421249ed236fdcdd457d671e25146786dfc96835cd951aa7c1"}, - {file = "numpy-2.2.6-cp313-cp313t-win32.whl", hash = "sha256:038613e9fb8c72b0a41f025a7e4c3f0b7a1b5d768ece4796b674c8f3fe13efff"}, - {file = "numpy-2.2.6-cp313-cp313t-win_amd64.whl", hash = "sha256:6031dd6dfecc0cf9f668681a37648373bddd6421fff6c66ec1624eed0180ee06"}, - {file = "numpy-2.2.6-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:0b605b275d7bd0c640cad4e5d30fa701a8d59302e127e5f79138ad62762c3e3d"}, - {file = "numpy-2.2.6-pp310-pypy310_pp73-macosx_14_0_x86_64.whl", hash = "sha256:7befc596a7dc9da8a337f79802ee8adb30a552a94f792b9c9d18c840055907db"}, - {file = "numpy-2.2.6-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ce47521a4754c8f4593837384bd3424880629f718d87c5d44f8ed763edd63543"}, - {file = "numpy-2.2.6-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:d042d24c90c41b54fd506da306759e06e568864df8ec17ccc17e9e884634fd00"}, - {file = "numpy-2.2.6.tar.gz", hash = "sha256:e29554e2bef54a90aa5cc07da6ce955accb83f21ab5de01a62c8478897b264fd"}, -] - -[[package]] -name = "numpy" -version = "2.3.1" -description = "Fundamental package for array computing in Python" -optional = false -python-versions = ">=3.11" -groups = ["main"] -markers = "python_version >= \"3.11\"" -files = [ - {file = "numpy-2.3.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:6ea9e48336a402551f52cd8f593343699003d2353daa4b72ce8d34f66b722070"}, - {file = "numpy-2.3.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:5ccb7336eaf0e77c1635b232c141846493a588ec9ea777a7c24d7166bb8533ae"}, - {file = "numpy-2.3.1-cp311-cp311-macosx_14_0_arm64.whl", hash = "sha256:0bb3a4a61e1d327e035275d2a993c96fa786e4913aa089843e6a2d9dd205c66a"}, - {file = "numpy-2.3.1-cp311-cp311-macosx_14_0_x86_64.whl", hash = "sha256:e344eb79dab01f1e838ebb67aab09965fb271d6da6b00adda26328ac27d4a66e"}, - {file = "numpy-2.3.1-cp311-cp311-manylinux_2_28_aarch64.whl", hash = "sha256:467db865b392168ceb1ef1ffa6f5a86e62468c43e0cfb4ab6da667ede10e58db"}, - {file = "numpy-2.3.1-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:afed2ce4a84f6b0fc6c1ce734ff368cbf5a5e24e8954a338f3bdffa0718adffb"}, - {file = "numpy-2.3.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:0025048b3c1557a20bc80d06fdeb8cc7fc193721484cca82b2cfa072fec71a93"}, - {file = "numpy-2.3.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:a5ee121b60aa509679b682819c602579e1df14a5b07fe95671c8849aad8f2115"}, - {file = "numpy-2.3.1-cp311-cp311-win32.whl", hash = "sha256:a8b740f5579ae4585831b3cf0e3b0425c667274f82a484866d2adf9570539369"}, - {file = "numpy-2.3.1-cp311-cp311-win_amd64.whl", hash = "sha256:d4580adadc53311b163444f877e0789f1c8861e2698f6b2a4ca852fda154f3ff"}, - {file = "numpy-2.3.1-cp311-cp311-win_arm64.whl", hash = "sha256:ec0bdafa906f95adc9a0c6f26a4871fa753f25caaa0e032578a30457bff0af6a"}, - {file = "numpy-2.3.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:2959d8f268f3d8ee402b04a9ec4bb7604555aeacf78b360dc4ec27f1d508177d"}, - {file = "numpy-2.3.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:762e0c0c6b56bdedfef9a8e1d4538556438288c4276901ea008ae44091954e29"}, - {file = "numpy-2.3.1-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:867ef172a0976aaa1f1d1b63cf2090de8b636a7674607d514505fb7276ab08fc"}, - {file = "numpy-2.3.1-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:4e602e1b8682c2b833af89ba641ad4176053aaa50f5cacda1a27004352dde943"}, - {file = "numpy-2.3.1-cp312-cp312-manylinux_2_28_aarch64.whl", hash = "sha256:8e333040d069eba1652fb08962ec5b76af7f2c7bce1df7e1418c8055cf776f25"}, - {file = "numpy-2.3.1-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:e7cbf5a5eafd8d230a3ce356d892512185230e4781a361229bd902ff403bc660"}, - {file = "numpy-2.3.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:5f1b8f26d1086835f442286c1d9b64bb3974b0b1e41bb105358fd07d20872952"}, - {file = "numpy-2.3.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:ee8340cb48c9b7a5899d1149eece41ca535513a9698098edbade2a8e7a84da77"}, - {file = "numpy-2.3.1-cp312-cp312-win32.whl", hash = "sha256:e772dda20a6002ef7061713dc1e2585bc1b534e7909b2030b5a46dae8ff077ab"}, - {file = "numpy-2.3.1-cp312-cp312-win_amd64.whl", hash = "sha256:cfecc7822543abdea6de08758091da655ea2210b8ffa1faf116b940693d3df76"}, - {file = "numpy-2.3.1-cp312-cp312-win_arm64.whl", hash = "sha256:7be91b2239af2658653c5bb6f1b8bccafaf08226a258caf78ce44710a0160d30"}, - {file = "numpy-2.3.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:25a1992b0a3fdcdaec9f552ef10d8103186f5397ab45e2d25f8ac51b1a6b97e8"}, - {file = "numpy-2.3.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:7dea630156d39b02a63c18f508f85010230409db5b2927ba59c8ba4ab3e8272e"}, - {file = "numpy-2.3.1-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:bada6058dd886061f10ea15f230ccf7dfff40572e99fef440a4a857c8728c9c0"}, - {file = "numpy-2.3.1-cp313-cp313-macosx_14_0_x86_64.whl", hash = "sha256:a894f3816eb17b29e4783e5873f92faf55b710c2519e5c351767c51f79d8526d"}, - {file = "numpy-2.3.1-cp313-cp313-manylinux_2_28_aarch64.whl", hash = "sha256:18703df6c4a4fee55fd3d6e5a253d01c5d33a295409b03fda0c86b3ca2ff41a1"}, - {file = "numpy-2.3.1-cp313-cp313-manylinux_2_28_x86_64.whl", hash = "sha256:5902660491bd7a48b2ec16c23ccb9124b8abfd9583c5fdfa123fe6b421e03de1"}, - {file = "numpy-2.3.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:36890eb9e9d2081137bd78d29050ba63b8dab95dff7912eadf1185e80074b2a0"}, - {file = "numpy-2.3.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:a780033466159c2270531e2b8ac063704592a0bc62ec4a1b991c7c40705eb0e8"}, - {file = "numpy-2.3.1-cp313-cp313-win32.whl", hash = "sha256:39bff12c076812595c3a306f22bfe49919c5513aa1e0e70fac756a0be7c2a2b8"}, - {file = "numpy-2.3.1-cp313-cp313-win_amd64.whl", hash = "sha256:8d5ee6eec45f08ce507a6570e06f2f879b374a552087a4179ea7838edbcbfa42"}, - {file = "numpy-2.3.1-cp313-cp313-win_arm64.whl", hash = "sha256:0c4d9e0a8368db90f93bd192bfa771ace63137c3488d198ee21dfb8e7771916e"}, - {file = "numpy-2.3.1-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:b0b5397374f32ec0649dd98c652a1798192042e715df918c20672c62fb52d4b8"}, - {file = "numpy-2.3.1-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:c5bdf2015ccfcee8253fb8be695516ac4457c743473a43290fd36eba6a1777eb"}, - {file = "numpy-2.3.1-cp313-cp313t-macosx_14_0_arm64.whl", hash = "sha256:d70f20df7f08b90a2062c1f07737dd340adccf2068d0f1b9b3d56e2038979fee"}, - {file = "numpy-2.3.1-cp313-cp313t-macosx_14_0_x86_64.whl", hash = "sha256:2fb86b7e58f9ac50e1e9dd1290154107e47d1eef23a0ae9145ded06ea606f992"}, - {file = "numpy-2.3.1-cp313-cp313t-manylinux_2_28_aarch64.whl", hash = "sha256:23ab05b2d241f76cb883ce8b9a93a680752fbfcbd51c50eff0b88b979e471d8c"}, - {file = "numpy-2.3.1-cp313-cp313t-manylinux_2_28_x86_64.whl", hash = "sha256:ce2ce9e5de4703a673e705183f64fd5da5bf36e7beddcb63a25ee2286e71ca48"}, - {file = "numpy-2.3.1-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:c4913079974eeb5c16ccfd2b1f09354b8fed7e0d6f2cab933104a09a6419b1ee"}, - {file = "numpy-2.3.1-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:010ce9b4f00d5c036053ca684c77441f2f2c934fd23bee058b4d6f196efd8280"}, - {file = "numpy-2.3.1-cp313-cp313t-win32.whl", hash = "sha256:6269b9edfe32912584ec496d91b00b6d34282ca1d07eb10e82dfc780907d6c2e"}, - {file = "numpy-2.3.1-cp313-cp313t-win_amd64.whl", hash = "sha256:2a809637460e88a113e186e87f228d74ae2852a2e0c44de275263376f17b5bdc"}, - {file = "numpy-2.3.1-cp313-cp313t-win_arm64.whl", hash = "sha256:eccb9a159db9aed60800187bc47a6d3451553f0e1b08b068d8b277ddfbb9b244"}, - {file = "numpy-2.3.1-pp311-pypy311_pp73-macosx_10_15_x86_64.whl", hash = "sha256:ad506d4b09e684394c42c966ec1527f6ebc25da7f4da4b1b056606ffe446b8a3"}, - {file = "numpy-2.3.1-pp311-pypy311_pp73-macosx_14_0_arm64.whl", hash = "sha256:ebb8603d45bc86bbd5edb0d63e52c5fd9e7945d3a503b77e486bd88dde67a19b"}, - {file = "numpy-2.3.1-pp311-pypy311_pp73-macosx_14_0_x86_64.whl", hash = "sha256:15aa4c392ac396e2ad3d0a2680c0f0dee420f9fed14eef09bdb9450ee6dcb7b7"}, - {file = "numpy-2.3.1-pp311-pypy311_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:c6e0bf9d1a2f50d2b65a7cf56db37c095af17b59f6c132396f7c6d5dd76484df"}, - {file = "numpy-2.3.1-pp311-pypy311_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:eabd7e8740d494ce2b4ea0ff05afa1b7b291e978c0ae075487c51e8bd93c0c68"}, - {file = "numpy-2.3.1-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:e610832418a2bc09d974cc9fecebfa51e9532d6190223bc5ef6a7402ebf3b5cb"}, - {file = "numpy-2.3.1.tar.gz", hash = "sha256:1ec9ae20a4226da374362cca3c62cd753faf2f951440b0e3b98e93c235441d2b"}, -] - -[[package]] -name = "opencv-python" -version = "4.11.0.86" -description = "Wrapper package for OpenCV python bindings." -optional = false -python-versions = ">=3.6" -groups = ["main"] -files = [ - {file = "opencv-python-4.11.0.86.tar.gz", hash = "sha256:03d60ccae62304860d232272e4a4fda93c39d595780cb40b161b310244b736a4"}, - {file = "opencv_python-4.11.0.86-cp37-abi3-macosx_13_0_arm64.whl", hash = "sha256:432f67c223f1dc2824f5e73cdfcd9db0efc8710647d4e813012195dc9122a52a"}, - {file = "opencv_python-4.11.0.86-cp37-abi3-macosx_13_0_x86_64.whl", hash = "sha256:9d05ef13d23fe97f575153558653e2d6e87103995d54e6a35db3f282fe1f9c66"}, - {file = "opencv_python-4.11.0.86-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1b92ae2c8852208817e6776ba1ea0d6b1e0a1b5431e971a2a0ddd2a8cc398202"}, - {file = "opencv_python-4.11.0.86-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6b02611523803495003bd87362db3e1d2a0454a6a63025dc6658a9830570aa0d"}, - {file = "opencv_python-4.11.0.86-cp37-abi3-win32.whl", hash = "sha256:810549cb2a4aedaa84ad9a1c92fbfdfc14090e2749cedf2c1589ad8359aa169b"}, - {file = "opencv_python-4.11.0.86-cp37-abi3-win_amd64.whl", hash = "sha256:085ad9b77c18853ea66283e98affefe2de8cc4c1f43eda4c100cf9b2721142ec"}, -] - -[package.dependencies] -numpy = [ - {version = ">=1.26.0", markers = "python_version >= \"3.12\""}, - {version = ">=1.23.5", markers = "python_version == \"3.11\""}, - {version = ">=1.21.4", markers = "python_version == \"3.10\" and platform_system == \"Darwin\""}, - {version = ">=1.21.2", markers = "platform_system != \"Darwin\" and python_version == \"3.10\""}, -] - -[[package]] -name = "packaging" -version = "25.0" -description = "Core utilities for Python packages" -optional = false -python-versions = ">=3.8" -groups = ["dev"] -files = [ - {file = "packaging-25.0-py3-none-any.whl", hash = "sha256:29572ef2b1f17581046b3a2227d5c611fb25ec70ca1ba8554b24b0e69331a484"}, - {file = "packaging-25.0.tar.gz", hash = "sha256:d443872c98d677bf60f6a1f2f8c1cb748e8fe762d2bf9d3148b5599295b0fc4f"}, -] - -[[package]] -name = "pathspec" -version = "0.12.1" -description = "Utility library for gitignore style pattern matching of file paths." -optional = false -python-versions = ">=3.8" -groups = ["dev"] -files = [ - {file = "pathspec-0.12.1-py3-none-any.whl", hash = "sha256:a0d503e138a4c123b27490a4f7beda6a01c6f288df0e4a8b79c7eb0dc7b4cc08"}, - {file = "pathspec-0.12.1.tar.gz", hash = "sha256:a482d51503a1ab33b1c67a6c3813a26953dbdc71c31dacaef9a838c4e29f5712"}, -] - -[[package]] -name = "piexif" -version = "1.1.3" -description = "To simplify exif manipulations with python. Writing, reading, and more..." -optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" -groups = ["main"] -files = [ - {file = "piexif-1.1.3-py2.py3-none-any.whl", hash = "sha256:3bc435d171720150b81b15d27e05e54b8abbde7b4242cddd81ef160d283108b6"}, - {file = "piexif-1.1.3.zip", hash = "sha256:83cb35c606bf3a1ea1a8f0a25cb42cf17e24353fd82e87ae3884e74a302a5f1b"}, -] - -[[package]] -name = "pillow" -version = "11.2.1" -description = "Python Imaging Library (Fork)" -optional = false -python-versions = ">=3.9" -groups = ["main"] -files = [ - {file = "pillow-11.2.1-cp310-cp310-macosx_10_10_x86_64.whl", hash = "sha256:d57a75d53922fc20c165016a20d9c44f73305e67c351bbc60d1adaf662e74047"}, - {file = "pillow-11.2.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:127bf6ac4a5b58b3d32fc8289656f77f80567d65660bc46f72c0d77e6600cc95"}, - {file = "pillow-11.2.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b4ba4be812c7a40280629e55ae0b14a0aafa150dd6451297562e1764808bbe61"}, - {file = "pillow-11.2.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c8bd62331e5032bc396a93609982a9ab6b411c05078a52f5fe3cc59234a3abd1"}, - {file = "pillow-11.2.1-cp310-cp310-manylinux_2_28_aarch64.whl", hash = "sha256:562d11134c97a62fe3af29581f083033179f7ff435f78392565a1ad2d1c2c45c"}, - {file = "pillow-11.2.1-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:c97209e85b5be259994eb5b69ff50c5d20cca0f458ef9abd835e262d9d88b39d"}, - {file = "pillow-11.2.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:0c3e6d0f59171dfa2e25d7116217543310908dfa2770aa64b8f87605f8cacc97"}, - {file = "pillow-11.2.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:cc1c3bc53befb6096b84165956e886b1729634a799e9d6329a0c512ab651e579"}, - {file = "pillow-11.2.1-cp310-cp310-win32.whl", hash = "sha256:312c77b7f07ab2139924d2639860e084ec2a13e72af54d4f08ac843a5fc9c79d"}, - {file = "pillow-11.2.1-cp310-cp310-win_amd64.whl", hash = "sha256:9bc7ae48b8057a611e5fe9f853baa88093b9a76303937449397899385da06fad"}, - {file = "pillow-11.2.1-cp310-cp310-win_arm64.whl", hash = "sha256:2728567e249cdd939f6cc3d1f049595c66e4187f3c34078cbc0a7d21c47482d2"}, - {file = "pillow-11.2.1-cp311-cp311-macosx_10_10_x86_64.whl", hash = "sha256:35ca289f712ccfc699508c4658a1d14652e8033e9b69839edf83cbdd0ba39e70"}, - {file = "pillow-11.2.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:e0409af9f829f87a2dfb7e259f78f317a5351f2045158be321fd135973fff7bf"}, - {file = "pillow-11.2.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d4e5c5edee874dce4f653dbe59db7c73a600119fbea8d31f53423586ee2aafd7"}, - {file = "pillow-11.2.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b93a07e76d13bff9444f1a029e0af2964e654bfc2e2c2d46bfd080df5ad5f3d8"}, - {file = "pillow-11.2.1-cp311-cp311-manylinux_2_28_aarch64.whl", hash = "sha256:e6def7eed9e7fa90fde255afaf08060dc4b343bbe524a8f69bdd2a2f0018f600"}, - {file = "pillow-11.2.1-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:8f4f3724c068be008c08257207210c138d5f3731af6c155a81c2b09a9eb3a788"}, - {file = "pillow-11.2.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:a0a6709b47019dff32e678bc12c63008311b82b9327613f534e496dacaefb71e"}, - {file = "pillow-11.2.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:f6b0c664ccb879109ee3ca702a9272d877f4fcd21e5eb63c26422fd6e415365e"}, - {file = "pillow-11.2.1-cp311-cp311-win32.whl", hash = "sha256:cc5d875d56e49f112b6def6813c4e3d3036d269c008bf8aef72cd08d20ca6df6"}, - {file = "pillow-11.2.1-cp311-cp311-win_amd64.whl", hash = "sha256:0f5c7eda47bf8e3c8a283762cab94e496ba977a420868cb819159980b6709193"}, - {file = "pillow-11.2.1-cp311-cp311-win_arm64.whl", hash = "sha256:4d375eb838755f2528ac8cbc926c3e31cc49ca4ad0cf79cff48b20e30634a4a7"}, - {file = "pillow-11.2.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:78afba22027b4accef10dbd5eed84425930ba41b3ea0a86fa8d20baaf19d807f"}, - {file = "pillow-11.2.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:78092232a4ab376a35d68c4e6d5e00dfd73454bd12b230420025fbe178ee3b0b"}, - {file = "pillow-11.2.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:25a5f306095c6780c52e6bbb6109624b95c5b18e40aab1c3041da3e9e0cd3e2d"}, - {file = "pillow-11.2.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0c7b29dbd4281923a2bfe562acb734cee96bbb129e96e6972d315ed9f232bef4"}, - {file = "pillow-11.2.1-cp312-cp312-manylinux_2_28_aarch64.whl", hash = "sha256:3e645b020f3209a0181a418bffe7b4a93171eef6c4ef6cc20980b30bebf17b7d"}, - {file = "pillow-11.2.1-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:b2dbea1012ccb784a65349f57bbc93730b96e85b42e9bf7b01ef40443db720b4"}, - {file = "pillow-11.2.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:da3104c57bbd72948d75f6a9389e6727d2ab6333c3617f0a89d72d4940aa0443"}, - {file = "pillow-11.2.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:598174aef4589af795f66f9caab87ba4ff860ce08cd5bb447c6fc553ffee603c"}, - {file = "pillow-11.2.1-cp312-cp312-win32.whl", hash = "sha256:1d535df14716e7f8776b9e7fee118576d65572b4aad3ed639be9e4fa88a1cad3"}, - {file = "pillow-11.2.1-cp312-cp312-win_amd64.whl", hash = "sha256:14e33b28bf17c7a38eede290f77db7c664e4eb01f7869e37fa98a5aa95978941"}, - {file = "pillow-11.2.1-cp312-cp312-win_arm64.whl", hash = "sha256:21e1470ac9e5739ff880c211fc3af01e3ae505859392bf65458c224d0bf283eb"}, - {file = "pillow-11.2.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:fdec757fea0b793056419bca3e9932eb2b0ceec90ef4813ea4c1e072c389eb28"}, - {file = "pillow-11.2.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:b0e130705d568e2f43a17bcbe74d90958e8a16263868a12c3e0d9c8162690830"}, - {file = "pillow-11.2.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7bdb5e09068332578214cadd9c05e3d64d99e0e87591be22a324bdbc18925be0"}, - {file = "pillow-11.2.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d189ba1bebfbc0c0e529159631ec72bb9e9bc041f01ec6d3233d6d82eb823bc1"}, - {file = "pillow-11.2.1-cp313-cp313-manylinux_2_28_aarch64.whl", hash = "sha256:191955c55d8a712fab8934a42bfefbf99dd0b5875078240943f913bb66d46d9f"}, - {file = "pillow-11.2.1-cp313-cp313-manylinux_2_28_x86_64.whl", hash = "sha256:ad275964d52e2243430472fc5d2c2334b4fc3ff9c16cb0a19254e25efa03a155"}, - {file = "pillow-11.2.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:750f96efe0597382660d8b53e90dd1dd44568a8edb51cb7f9d5d918b80d4de14"}, - {file = "pillow-11.2.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:fe15238d3798788d00716637b3d4e7bb6bde18b26e5d08335a96e88564a36b6b"}, - {file = "pillow-11.2.1-cp313-cp313-win32.whl", hash = "sha256:3fe735ced9a607fee4f481423a9c36701a39719252a9bb251679635f99d0f7d2"}, - {file = "pillow-11.2.1-cp313-cp313-win_amd64.whl", hash = "sha256:74ee3d7ecb3f3c05459ba95eed5efa28d6092d751ce9bf20e3e253a4e497e691"}, - {file = "pillow-11.2.1-cp313-cp313-win_arm64.whl", hash = "sha256:5119225c622403afb4b44bad4c1ca6c1f98eed79db8d3bc6e4e160fc6339d66c"}, - {file = "pillow-11.2.1-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:8ce2e8411c7aaef53e6bb29fe98f28cd4fbd9a1d9be2eeea434331aac0536b22"}, - {file = "pillow-11.2.1-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:9ee66787e095127116d91dea2143db65c7bb1e232f617aa5957c0d9d2a3f23a7"}, - {file = "pillow-11.2.1-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9622e3b6c1d8b551b6e6f21873bdcc55762b4b2126633014cea1803368a9aa16"}, - {file = "pillow-11.2.1-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:63b5dff3a68f371ea06025a1a6966c9a1e1ee452fc8020c2cd0ea41b83e9037b"}, - {file = "pillow-11.2.1-cp313-cp313t-manylinux_2_28_aarch64.whl", hash = "sha256:31df6e2d3d8fc99f993fd253e97fae451a8db2e7207acf97859732273e108406"}, - {file = "pillow-11.2.1-cp313-cp313t-manylinux_2_28_x86_64.whl", hash = "sha256:062b7a42d672c45a70fa1f8b43d1d38ff76b63421cbbe7f88146b39e8a558d91"}, - {file = "pillow-11.2.1-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:4eb92eca2711ef8be42fd3f67533765d9fd043b8c80db204f16c8ea62ee1a751"}, - {file = "pillow-11.2.1-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:f91ebf30830a48c825590aede79376cb40f110b387c17ee9bd59932c961044f9"}, - {file = "pillow-11.2.1-cp313-cp313t-win32.whl", hash = "sha256:e0b55f27f584ed623221cfe995c912c61606be8513bfa0e07d2c674b4516d9dd"}, - {file = "pillow-11.2.1-cp313-cp313t-win_amd64.whl", hash = "sha256:36d6b82164c39ce5482f649b437382c0fb2395eabc1e2b1702a6deb8ad647d6e"}, - {file = "pillow-11.2.1-cp313-cp313t-win_arm64.whl", hash = "sha256:225c832a13326e34f212d2072982bb1adb210e0cc0b153e688743018c94a2681"}, - {file = "pillow-11.2.1-cp39-cp39-macosx_10_10_x86_64.whl", hash = "sha256:7491cf8a79b8eb867d419648fff2f83cb0b3891c8b36da92cc7f1931d46108c8"}, - {file = "pillow-11.2.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:8b02d8f9cb83c52578a0b4beadba92e37d83a4ef11570a8688bbf43f4ca50909"}, - {file = "pillow-11.2.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:014ca0050c85003620526b0ac1ac53f56fc93af128f7546623cc8e31875ab928"}, - {file = "pillow-11.2.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3692b68c87096ac6308296d96354eddd25f98740c9d2ab54e1549d6c8aea9d79"}, - {file = "pillow-11.2.1-cp39-cp39-manylinux_2_28_aarch64.whl", hash = "sha256:f781dcb0bc9929adc77bad571b8621ecb1e4cdef86e940fe2e5b5ee24fd33b35"}, - {file = "pillow-11.2.1-cp39-cp39-manylinux_2_28_x86_64.whl", hash = "sha256:2b490402c96f907a166615e9a5afacf2519e28295f157ec3a2bb9bd57de638cb"}, - {file = "pillow-11.2.1-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:dd6b20b93b3ccc9c1b597999209e4bc5cf2853f9ee66e3fc9a400a78733ffc9a"}, - {file = "pillow-11.2.1-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:4b835d89c08a6c2ee7781b8dd0a30209a8012b5f09c0a665b65b0eb3560b6f36"}, - {file = "pillow-11.2.1-cp39-cp39-win32.whl", hash = "sha256:b10428b3416d4f9c61f94b494681280be7686bda15898a3a9e08eb66a6d92d67"}, - {file = "pillow-11.2.1-cp39-cp39-win_amd64.whl", hash = "sha256:6ebce70c3f486acf7591a3d73431fa504a4e18a9b97ff27f5f47b7368e4b9dd1"}, - {file = "pillow-11.2.1-cp39-cp39-win_arm64.whl", hash = "sha256:c27476257b2fdcd7872d54cfd119b3a9ce4610fb85c8e32b70b42e3680a29a1e"}, - {file = "pillow-11.2.1-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:9b7b0d4fd2635f54ad82785d56bc0d94f147096493a79985d0ab57aedd563156"}, - {file = "pillow-11.2.1-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:aa442755e31c64037aa7c1cb186e0b369f8416c567381852c63444dd666fb772"}, - {file = "pillow-11.2.1-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f0d3348c95b766f54b76116d53d4cb171b52992a1027e7ca50c81b43b9d9e363"}, - {file = "pillow-11.2.1-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:85d27ea4c889342f7e35f6d56e7e1cb345632ad592e8c51b693d7b7556043ce0"}, - {file = "pillow-11.2.1-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:bf2c33d6791c598142f00c9c4c7d47f6476731c31081331664eb26d6ab583e01"}, - {file = "pillow-11.2.1-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:e616e7154c37669fc1dfc14584f11e284e05d1c650e1c0f972f281c4ccc53193"}, - {file = "pillow-11.2.1-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:39ad2e0f424394e3aebc40168845fee52df1394a4673a6ee512d840d14ab3013"}, - {file = "pillow-11.2.1-pp311-pypy311_pp73-macosx_10_15_x86_64.whl", hash = "sha256:80f1df8dbe9572b4b7abdfa17eb5d78dd620b1d55d9e25f834efdbee872d3aed"}, - {file = "pillow-11.2.1-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:ea926cfbc3957090becbcbbb65ad177161a2ff2ad578b5a6ec9bb1e1cd78753c"}, - {file = "pillow-11.2.1-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:738db0e0941ca0376804d4de6a782c005245264edaa253ffce24e5a15cbdc7bd"}, - {file = "pillow-11.2.1-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9db98ab6565c69082ec9b0d4e40dd9f6181dab0dd236d26f7a50b8b9bfbd5076"}, - {file = "pillow-11.2.1-pp311-pypy311_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:036e53f4170e270ddb8797d4c590e6dd14d28e15c7da375c18978045f7e6c37b"}, - {file = "pillow-11.2.1-pp311-pypy311_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:14f73f7c291279bd65fda51ee87affd7c1e097709f7fdd0188957a16c264601f"}, - {file = "pillow-11.2.1-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:208653868d5c9ecc2b327f9b9ef34e0e42a4cdd172c2988fd81d62d2bc9bc044"}, - {file = "pillow-11.2.1.tar.gz", hash = "sha256:a64dd61998416367b7ef979b73d3a85853ba9bec4c2925f74e588879a58716b6"}, -] - -[package.extras] -docs = ["furo", "olefile", "sphinx (>=8.2)", "sphinx-copybutton", "sphinx-inline-tabs", "sphinxext-opengraph"] -fpx = ["olefile"] -mic = ["olefile"] -test-arrow = ["pyarrow"] -tests = ["check-manifest", "coverage (>=7.4.2)", "defusedxml", "markdown2", "olefile", "packaging", "pyroma", "pytest", "pytest-cov", "pytest-timeout", "trove-classifiers (>=2024.10.12)"] -typing = ["typing-extensions ; python_version < \"3.10\""] -xmp = ["defusedxml"] - -[[package]] -name = "platformdirs" -version = "4.3.8" -description = "A small Python package for determining appropriate platform-specific dirs, e.g. a `user data dir`." -optional = false -python-versions = ">=3.9" -groups = ["dev"] -files = [ - {file = "platformdirs-4.3.8-py3-none-any.whl", hash = "sha256:ff7059bb7eb1179e2685604f4aaf157cfd9535242bd23742eadc3c13542139b4"}, - {file = "platformdirs-4.3.8.tar.gz", hash = "sha256:3d512d96e16bcb959a814c9f348431070822a6496326a4be0911c40b5a74c2bc"}, -] - -[package.extras] -docs = ["furo (>=2024.8.6)", "proselint (>=0.14)", "sphinx (>=8.1.3)", "sphinx-autodoc-typehints (>=3)"] -test = ["appdirs (==1.4.4)", "covdefaults (>=2.3)", "pytest (>=8.3.4)", "pytest-cov (>=6)", "pytest-mock (>=3.14)"] -type = ["mypy (>=1.14.1)"] - -[[package]] -name = "pre-commit" -version = "3.8.0" -description = "A framework for managing and maintaining multi-language pre-commit hooks." -optional = false -python-versions = ">=3.9" -groups = ["dev"] -files = [ - {file = "pre_commit-3.8.0-py2.py3-none-any.whl", hash = "sha256:9a90a53bf82fdd8778d58085faf8d83df56e40dfe18f45b19446e26bf1b3a63f"}, - {file = "pre_commit-3.8.0.tar.gz", hash = "sha256:8bb6494d4a20423842e198980c9ecf9f96607a07ea29549e180eef9ae80fe7af"}, -] - -[package.dependencies] -cfgv = ">=2.0.0" -identify = ">=1.0.0" -nodeenv = ">=0.11.1" -pyyaml = ">=5.1" -virtualenv = ">=20.10.0" - -[[package]] -name = "pycodestyle" -version = "2.11.1" -description = "Python style guide checker" -optional = false -python-versions = ">=3.8" -groups = ["dev"] -files = [ - {file = "pycodestyle-2.11.1-py2.py3-none-any.whl", hash = "sha256:44fe31000b2d866f2e41841b18528a505fbd7fef9017b04eff4e2648a0fadc67"}, - {file = "pycodestyle-2.11.1.tar.gz", hash = "sha256:41ba0e7afc9752dfb53ced5489e89f8186be00e599e712660695b7a75ff2663f"}, -] - -[[package]] -name = "pyflakes" -version = "3.1.0" -description = "passive checker of Python programs" -optional = false -python-versions = ">=3.8" -groups = ["dev"] -files = [ - {file = "pyflakes-3.1.0-py2.py3-none-any.whl", hash = "sha256:4132f6d49cb4dae6819e5379898f2b8cce3c5f23994194c24b77d5da2e36f774"}, - {file = "pyflakes-3.1.0.tar.gz", hash = "sha256:a0aae034c444db0071aa077972ba4768d40c830d9539fd45bf4cd3f8f6992efc"}, -] - -[[package]] -name = "pygments" -version = "2.19.2" -description = "Pygments is a syntax highlighting package written in Python." -optional = false -python-versions = ">=3.8" -groups = ["dev"] -files = [ - {file = "pygments-2.19.2-py3-none-any.whl", hash = "sha256:86540386c03d588bb81d44bc3928634ff26449851e99741617ecb9037ee5ec0b"}, - {file = "pygments-2.19.2.tar.gz", hash = "sha256:636cb2477cec7f8952536970bc533bc43743542f70392ae026374600add5b887"}, -] - -[package.extras] -windows-terminal = ["colorama (>=0.4.6)"] - -[[package]] -name = "pyyaml" -version = "6.0.2" -description = "YAML parser and emitter for Python" -optional = false -python-versions = ">=3.8" -groups = ["dev"] -files = [ - {file = "PyYAML-6.0.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:0a9a2848a5b7feac301353437eb7d5957887edbf81d56e903999a75a3d743086"}, - {file = "PyYAML-6.0.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:29717114e51c84ddfba879543fb232a6ed60086602313ca38cce623c1d62cfbf"}, - {file = "PyYAML-6.0.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8824b5a04a04a047e72eea5cec3bc266db09e35de6bdfe34c9436ac5ee27d237"}, - {file = "PyYAML-6.0.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7c36280e6fb8385e520936c3cb3b8042851904eba0e58d277dca80a5cfed590b"}, - {file = "PyYAML-6.0.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ec031d5d2feb36d1d1a24380e4db6d43695f3748343d99434e6f5f9156aaa2ed"}, - {file = "PyYAML-6.0.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:936d68689298c36b53b29f23c6dbb74de12b4ac12ca6cfe0e047bedceea56180"}, - {file = "PyYAML-6.0.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:23502f431948090f597378482b4812b0caae32c22213aecf3b55325e049a6c68"}, - {file = "PyYAML-6.0.2-cp310-cp310-win32.whl", hash = "sha256:2e99c6826ffa974fe6e27cdb5ed0021786b03fc98e5ee3c5bfe1fd5015f42b99"}, - {file = "PyYAML-6.0.2-cp310-cp310-win_amd64.whl", hash = "sha256:a4d3091415f010369ae4ed1fc6b79def9416358877534caf6a0fdd2146c87a3e"}, - {file = "PyYAML-6.0.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:cc1c1159b3d456576af7a3e4d1ba7e6924cb39de8f67111c735f6fc832082774"}, - {file = "PyYAML-6.0.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:1e2120ef853f59c7419231f3bf4e7021f1b936f6ebd222406c3b60212205d2ee"}, - {file = "PyYAML-6.0.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5d225db5a45f21e78dd9358e58a98702a0302f2659a3c6cd320564b75b86f47c"}, - {file = "PyYAML-6.0.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5ac9328ec4831237bec75defaf839f7d4564be1e6b25ac710bd1a96321cc8317"}, - {file = "PyYAML-6.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3ad2a3decf9aaba3d29c8f537ac4b243e36bef957511b4766cb0057d32b0be85"}, - {file = "PyYAML-6.0.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:ff3824dc5261f50c9b0dfb3be22b4567a6f938ccce4587b38952d85fd9e9afe4"}, - {file = "PyYAML-6.0.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:797b4f722ffa07cc8d62053e4cff1486fa6dc094105d13fea7b1de7d8bf71c9e"}, - {file = "PyYAML-6.0.2-cp311-cp311-win32.whl", hash = "sha256:11d8f3dd2b9c1207dcaf2ee0bbbfd5991f571186ec9cc78427ba5bd32afae4b5"}, - {file = "PyYAML-6.0.2-cp311-cp311-win_amd64.whl", hash = "sha256:e10ce637b18caea04431ce14fabcf5c64a1c61ec9c56b071a4b7ca131ca52d44"}, - {file = "PyYAML-6.0.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:c70c95198c015b85feafc136515252a261a84561b7b1d51e3384e0655ddf25ab"}, - {file = "PyYAML-6.0.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:ce826d6ef20b1bc864f0a68340c8b3287705cae2f8b4b1d932177dcc76721725"}, - {file = "PyYAML-6.0.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1f71ea527786de97d1a0cc0eacd1defc0985dcf6b3f17bb77dcfc8c34bec4dc5"}, - {file = "PyYAML-6.0.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9b22676e8097e9e22e36d6b7bda33190d0d400f345f23d4065d48f4ca7ae0425"}, - {file = "PyYAML-6.0.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:80bab7bfc629882493af4aa31a4cfa43a4c57c83813253626916b8c7ada83476"}, - {file = "PyYAML-6.0.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:0833f8694549e586547b576dcfaba4a6b55b9e96098b36cdc7ebefe667dfed48"}, - {file = "PyYAML-6.0.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:8b9c7197f7cb2738065c481a0461e50ad02f18c78cd75775628afb4d7137fb3b"}, - {file = "PyYAML-6.0.2-cp312-cp312-win32.whl", hash = "sha256:ef6107725bd54b262d6dedcc2af448a266975032bc85ef0172c5f059da6325b4"}, - {file = "PyYAML-6.0.2-cp312-cp312-win_amd64.whl", hash = "sha256:7e7401d0de89a9a855c839bc697c079a4af81cf878373abd7dc625847d25cbd8"}, - {file = "PyYAML-6.0.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:efdca5630322a10774e8e98e1af481aad470dd62c3170801852d752aa7a783ba"}, - {file = "PyYAML-6.0.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:50187695423ffe49e2deacb8cd10510bc361faac997de9efef88badc3bb9e2d1"}, - {file = "PyYAML-6.0.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0ffe8360bab4910ef1b9e87fb812d8bc0a308b0d0eef8c8f44e0254ab3b07133"}, - {file = "PyYAML-6.0.2-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:17e311b6c678207928d649faa7cb0d7b4c26a0ba73d41e99c4fff6b6c3276484"}, - {file = "PyYAML-6.0.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:70b189594dbe54f75ab3a1acec5f1e3faa7e8cf2f1e08d9b561cb41b845f69d5"}, - {file = "PyYAML-6.0.2-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:41e4e3953a79407c794916fa277a82531dd93aad34e29c2a514c2c0c5fe971cc"}, - {file = "PyYAML-6.0.2-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:68ccc6023a3400877818152ad9a1033e3db8625d899c72eacb5a668902e4d652"}, - {file = "PyYAML-6.0.2-cp313-cp313-win32.whl", hash = "sha256:bc2fa7c6b47d6bc618dd7fb02ef6fdedb1090ec036abab80d4681424b84c1183"}, - {file = "PyYAML-6.0.2-cp313-cp313-win_amd64.whl", hash = "sha256:8388ee1976c416731879ac16da0aff3f63b286ffdd57cdeb95f3f2e085687563"}, - {file = "PyYAML-6.0.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:24471b829b3bf607e04e88d79542a9d48bb037c2267d7927a874e6c205ca7e9a"}, - {file = "PyYAML-6.0.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d7fded462629cfa4b685c5416b949ebad6cec74af5e2d42905d41e257e0869f5"}, - {file = "PyYAML-6.0.2-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d84a1718ee396f54f3a086ea0a66d8e552b2ab2017ef8b420e92edbc841c352d"}, - {file = "PyYAML-6.0.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9056c1ecd25795207ad294bcf39f2db3d845767be0ea6e6a34d856f006006083"}, - {file = "PyYAML-6.0.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:82d09873e40955485746739bcb8b4586983670466c23382c19cffecbf1fd8706"}, - {file = "PyYAML-6.0.2-cp38-cp38-win32.whl", hash = "sha256:43fa96a3ca0d6b1812e01ced1044a003533c47f6ee8aca31724f78e93ccc089a"}, - {file = "PyYAML-6.0.2-cp38-cp38-win_amd64.whl", hash = "sha256:01179a4a8559ab5de078078f37e5c1a30d76bb88519906844fd7bdea1b7729ff"}, - {file = "PyYAML-6.0.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:688ba32a1cffef67fd2e9398a2efebaea461578b0923624778664cc1c914db5d"}, - {file = "PyYAML-6.0.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:a8786accb172bd8afb8be14490a16625cbc387036876ab6ba70912730faf8e1f"}, - {file = "PyYAML-6.0.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d8e03406cac8513435335dbab54c0d385e4a49e4945d2909a581c83647ca0290"}, - {file = "PyYAML-6.0.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f753120cb8181e736c57ef7636e83f31b9c0d1722c516f7e86cf15b7aa57ff12"}, - {file = "PyYAML-6.0.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3b1fdb9dc17f5a7677423d508ab4f243a726dea51fa5e70992e59a7411c89d19"}, - {file = "PyYAML-6.0.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:0b69e4ce7a131fe56b7e4d770c67429700908fc0752af059838b1cfb41960e4e"}, - {file = "PyYAML-6.0.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:a9f8c2e67970f13b16084e04f134610fd1d374bf477b17ec1599185cf611d725"}, - {file = "PyYAML-6.0.2-cp39-cp39-win32.whl", hash = "sha256:6395c297d42274772abc367baaa79683958044e5d3835486c16da75d2a694631"}, - {file = "PyYAML-6.0.2-cp39-cp39-win_amd64.whl", hash = "sha256:39693e1f8320ae4f43943590b49779ffb98acb81f788220ea932a6b6c51004d8"}, - {file = "pyyaml-6.0.2.tar.gz", hash = "sha256:d584d9ec91ad65861cc08d42e834324ef890a082e591037abe114850ff7bbc3e"}, -] - -[[package]] -name = "requests" -version = "2.32.4" -description = "Python HTTP for Humans." -optional = false -python-versions = ">=3.8" -groups = ["dev"] -files = [ - {file = "requests-2.32.4-py3-none-any.whl", hash = "sha256:27babd3cda2a6d50b30443204ee89830707d396671944c998b5975b031ac2b2c"}, - {file = "requests-2.32.4.tar.gz", hash = "sha256:27d0316682c8a29834d3264820024b62a36942083d52caf2f14c0591336d3422"}, -] - -[package.dependencies] -certifi = ">=2017.4.17" -charset_normalizer = ">=2,<4" -idna = ">=2.5,<4" -urllib3 = ">=1.21.1,<3" - -[package.extras] -socks = ["PySocks (>=1.5.6,!=1.5.7)"] -use-chardet-on-py3 = ["chardet (>=3.0.2,<6)"] - -[[package]] -name = "snowballstemmer" -version = "3.0.1" -description = "This package provides 32 stemmers for 30 languages generated from Snowball algorithms." -optional = false -python-versions = "!=3.0.*,!=3.1.*,!=3.2.*" -groups = ["dev"] -files = [ - {file = "snowballstemmer-3.0.1-py3-none-any.whl", hash = "sha256:6cd7b3897da8d6c9ffb968a6781fa6532dce9c3618a4b127d920dab764a19064"}, - {file = "snowballstemmer-3.0.1.tar.gz", hash = "sha256:6d5eeeec8e9f84d4d56b847692bacf79bc2c8e90c7f80ca4444ff8b6f2e52895"}, -] - -[[package]] -name = "sphinx" -version = "6.2.1" -description = "Python documentation generator" -optional = false -python-versions = ">=3.8" -groups = ["dev"] -files = [ - {file = "Sphinx-6.2.1.tar.gz", hash = "sha256:6d56a34697bb749ffa0152feafc4b19836c755d90a7c59b72bc7dfd371b9cc6b"}, - {file = "sphinx-6.2.1-py3-none-any.whl", hash = "sha256:97787ff1fa3256a3eef9eda523a63dbf299f7b47e053cfcf684a1c2a8380c912"}, -] - -[package.dependencies] -alabaster = ">=0.7,<0.8" -babel = ">=2.9" -colorama = {version = ">=0.4.5", markers = "sys_platform == \"win32\""} -docutils = ">=0.18.1,<0.20" -imagesize = ">=1.3" -Jinja2 = ">=3.0" -packaging = ">=21.0" -Pygments = ">=2.13" -requests = ">=2.25.0" -snowballstemmer = ">=2.0" -sphinxcontrib-applehelp = "*" -sphinxcontrib-devhelp = "*" -sphinxcontrib-htmlhelp = ">=2.0.0" -sphinxcontrib-jsmath = "*" -sphinxcontrib-qthelp = "*" -sphinxcontrib-serializinghtml = ">=1.1.5" - -[package.extras] -docs = ["sphinxcontrib-websupport"] -lint = ["docutils-stubs", "flake8 (>=3.5.0)", "flake8-simplify", "isort", "mypy (>=0.990)", "ruff", "sphinx-lint", "types-requests"] -test = ["cython", "filelock", "html5lib", "pytest (>=4.6)"] - -[[package]] -name = "sphinxcontrib-applehelp" -version = "2.0.0" -description = "sphinxcontrib-applehelp is a Sphinx extension which outputs Apple help books" -optional = false -python-versions = ">=3.9" -groups = ["dev"] -files = [ - {file = "sphinxcontrib_applehelp-2.0.0-py3-none-any.whl", hash = "sha256:4cd3f0ec4ac5dd9c17ec65e9ab272c9b867ea77425228e68ecf08d6b28ddbdb5"}, - {file = "sphinxcontrib_applehelp-2.0.0.tar.gz", hash = "sha256:2f29ef331735ce958efa4734873f084941970894c6090408b079c61b2e1c06d1"}, -] - -[package.extras] -lint = ["mypy", "ruff (==0.5.5)", "types-docutils"] -standalone = ["Sphinx (>=5)"] -test = ["pytest"] - -[[package]] -name = "sphinxcontrib-devhelp" -version = "2.0.0" -description = "sphinxcontrib-devhelp is a sphinx extension which outputs Devhelp documents" -optional = false -python-versions = ">=3.9" -groups = ["dev"] -files = [ - {file = "sphinxcontrib_devhelp-2.0.0-py3-none-any.whl", hash = "sha256:aefb8b83854e4b0998877524d1029fd3e6879210422ee3780459e28a1f03a8a2"}, - {file = "sphinxcontrib_devhelp-2.0.0.tar.gz", hash = "sha256:411f5d96d445d1d73bb5d52133377b4248ec79db5c793ce7dbe59e074b4dd1ad"}, -] - -[package.extras] -lint = ["mypy", "ruff (==0.5.5)", "types-docutils"] -standalone = ["Sphinx (>=5)"] -test = ["pytest"] - -[[package]] -name = "sphinxcontrib-htmlhelp" -version = "2.1.0" -description = "sphinxcontrib-htmlhelp is a sphinx extension which renders HTML help files" -optional = false -python-versions = ">=3.9" -groups = ["dev"] -files = [ - {file = "sphinxcontrib_htmlhelp-2.1.0-py3-none-any.whl", hash = "sha256:166759820b47002d22914d64a075ce08f4c46818e17cfc9470a9786b759b19f8"}, - {file = "sphinxcontrib_htmlhelp-2.1.0.tar.gz", hash = "sha256:c9e2916ace8aad64cc13a0d233ee22317f2b9025b9cf3295249fa985cc7082e9"}, -] - -[package.extras] -lint = ["mypy", "ruff (==0.5.5)", "types-docutils"] -standalone = ["Sphinx (>=5)"] -test = ["html5lib", "pytest"] - -[[package]] -name = "sphinxcontrib-jsmath" -version = "1.0.1" -description = "A sphinx extension which renders display math in HTML via JavaScript" -optional = false -python-versions = ">=3.5" -groups = ["dev"] -files = [ - {file = "sphinxcontrib-jsmath-1.0.1.tar.gz", hash = "sha256:a9925e4a4587247ed2191a22df5f6970656cb8ca2bd6284309578f2153e0c4b8"}, - {file = "sphinxcontrib_jsmath-1.0.1-py2.py3-none-any.whl", hash = "sha256:2ec2eaebfb78f3f2078e73666b1415417a116cc848b72e5172e596c871103178"}, -] - -[package.extras] -test = ["flake8", "mypy", "pytest"] - -[[package]] -name = "sphinxcontrib-qthelp" -version = "2.0.0" -description = "sphinxcontrib-qthelp is a sphinx extension which outputs QtHelp documents" -optional = false -python-versions = ">=3.9" -groups = ["dev"] -files = [ - {file = "sphinxcontrib_qthelp-2.0.0-py3-none-any.whl", hash = "sha256:b18a828cdba941ccd6ee8445dbe72ffa3ef8cbe7505d8cd1fa0d42d3f2d5f3eb"}, - {file = "sphinxcontrib_qthelp-2.0.0.tar.gz", hash = "sha256:4fe7d0ac8fc171045be623aba3e2a8f613f8682731f9153bb2e40ece16b9bbab"}, -] - -[package.extras] -lint = ["mypy", "ruff (==0.5.5)", "types-docutils"] -standalone = ["Sphinx (>=5)"] -test = ["defusedxml (>=0.7.1)", "pytest"] - -[[package]] -name = "sphinxcontrib-serializinghtml" -version = "2.0.0" -description = "sphinxcontrib-serializinghtml is a sphinx extension which outputs \"serialized\" HTML files (json and pickle)" -optional = false -python-versions = ">=3.9" -groups = ["dev"] -files = [ - {file = "sphinxcontrib_serializinghtml-2.0.0-py3-none-any.whl", hash = "sha256:6e2cb0eef194e10c27ec0023bfeb25badbbb5868244cf5bc5bdc04e4464bf331"}, - {file = "sphinxcontrib_serializinghtml-2.0.0.tar.gz", hash = "sha256:e9d912827f872c029017a53f0ef2180b327c3f7fd23c87229f7a8e8b70031d4d"}, -] - -[package.extras] -lint = ["mypy", "ruff (==0.5.5)", "types-docutils"] -standalone = ["Sphinx (>=5)"] -test = ["pytest"] - -[[package]] -name = "tomli" -version = "2.2.1" -description = "A lil' TOML parser" -optional = false -python-versions = ">=3.8" -groups = ["dev"] -markers = "python_version == \"3.10\"" -files = [ - {file = "tomli-2.2.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:678e4fa69e4575eb77d103de3df8a895e1591b48e740211bd1067378c69e8249"}, - {file = "tomli-2.2.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:023aa114dd824ade0100497eb2318602af309e5a55595f76b626d6d9f3b7b0a6"}, - {file = "tomli-2.2.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ece47d672db52ac607a3d9599a9d48dcb2f2f735c6c2d1f34130085bb12b112a"}, - {file = "tomli-2.2.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6972ca9c9cc9f0acaa56a8ca1ff51e7af152a9f87fb64623e31d5c83700080ee"}, - {file = "tomli-2.2.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c954d2250168d28797dd4e3ac5cf812a406cd5a92674ee4c8f123c889786aa8e"}, - {file = "tomli-2.2.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:8dd28b3e155b80f4d54beb40a441d366adcfe740969820caf156c019fb5c7ec4"}, - {file = "tomli-2.2.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:e59e304978767a54663af13c07b3d1af22ddee3bb2fb0618ca1593e4f593a106"}, - {file = "tomli-2.2.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:33580bccab0338d00994d7f16f4c4ec25b776af3ffaac1ed74e0b3fc95e885a8"}, - {file = "tomli-2.2.1-cp311-cp311-win32.whl", hash = "sha256:465af0e0875402f1d226519c9904f37254b3045fc5084697cefb9bdde1ff99ff"}, - {file = "tomli-2.2.1-cp311-cp311-win_amd64.whl", hash = "sha256:2d0f2fdd22b02c6d81637a3c95f8cd77f995846af7414c5c4b8d0545afa1bc4b"}, - {file = "tomli-2.2.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:4a8f6e44de52d5e6c657c9fe83b562f5f4256d8ebbfe4ff922c495620a7f6cea"}, - {file = "tomli-2.2.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:8d57ca8095a641b8237d5b079147646153d22552f1c637fd3ba7f4b0b29167a8"}, - {file = "tomli-2.2.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4e340144ad7ae1533cb897d406382b4b6fede8890a03738ff1683af800d54192"}, - {file = "tomli-2.2.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:db2b95f9de79181805df90bedc5a5ab4c165e6ec3fe99f970d0e302f384ad222"}, - {file = "tomli-2.2.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:40741994320b232529c802f8bc86da4e1aa9f413db394617b9a256ae0f9a7f77"}, - {file = "tomli-2.2.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:400e720fe168c0f8521520190686ef8ef033fb19fc493da09779e592861b78c6"}, - {file = "tomli-2.2.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:02abe224de6ae62c19f090f68da4e27b10af2b93213d36cf44e6e1c5abd19fdd"}, - {file = "tomli-2.2.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:b82ebccc8c8a36f2094e969560a1b836758481f3dc360ce9a3277c65f374285e"}, - {file = "tomli-2.2.1-cp312-cp312-win32.whl", hash = "sha256:889f80ef92701b9dbb224e49ec87c645ce5df3fa2cc548664eb8a25e03127a98"}, - {file = "tomli-2.2.1-cp312-cp312-win_amd64.whl", hash = "sha256:7fc04e92e1d624a4a63c76474610238576942d6b8950a2d7f908a340494e67e4"}, - {file = "tomli-2.2.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:f4039b9cbc3048b2416cc57ab3bda989a6fcf9b36cf8937f01a6e731b64f80d7"}, - {file = "tomli-2.2.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:286f0ca2ffeeb5b9bd4fcc8d6c330534323ec51b2f52da063b11c502da16f30c"}, - {file = "tomli-2.2.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a92ef1a44547e894e2a17d24e7557a5e85a9e1d0048b0b5e7541f76c5032cb13"}, - {file = "tomli-2.2.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9316dc65bed1684c9a98ee68759ceaed29d229e985297003e494aa825ebb0281"}, - {file = "tomli-2.2.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e85e99945e688e32d5a35c1ff38ed0b3f41f43fad8df0bdf79f72b2ba7bc5272"}, - {file = "tomli-2.2.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:ac065718db92ca818f8d6141b5f66369833d4a80a9d74435a268c52bdfa73140"}, - {file = "tomli-2.2.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:d920f33822747519673ee656a4b6ac33e382eca9d331c87770faa3eef562aeb2"}, - {file = "tomli-2.2.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:a198f10c4d1b1375d7687bc25294306e551bf1abfa4eace6650070a5c1ae2744"}, - {file = "tomli-2.2.1-cp313-cp313-win32.whl", hash = "sha256:d3f5614314d758649ab2ab3a62d4f2004c825922f9e370b29416484086b264ec"}, - {file = "tomli-2.2.1-cp313-cp313-win_amd64.whl", hash = "sha256:a38aa0308e754b0e3c67e344754dff64999ff9b513e691d0e786265c93583c69"}, - {file = "tomli-2.2.1-py3-none-any.whl", hash = "sha256:cb55c73c5f4408779d0cf3eef9f762b9c9f147a77de7b258bef0a5628adc85cc"}, - {file = "tomli-2.2.1.tar.gz", hash = "sha256:cd45e1dc79c835ce60f7404ec8119f2eb06d38b1deba146f07ced3bbc44505ff"}, -] - -[[package]] -name = "typing-extensions" -version = "4.14.0" -description = "Backported and Experimental Type Hints for Python 3.9+" -optional = false -python-versions = ">=3.9" -groups = ["dev"] -files = [ - {file = "typing_extensions-4.14.0-py3-none-any.whl", hash = "sha256:a1514509136dd0b477638fc68d6a91497af5076466ad0fa6c338e44e359944af"}, - {file = "typing_extensions-4.14.0.tar.gz", hash = "sha256:8676b788e32f02ab42d9e7c61324048ae4c6d844a399eebace3d4979d75ceef4"}, -] - -[[package]] -name = "urllib3" -version = "2.5.0" -description = "HTTP library with thread-safe connection pooling, file post, and more." -optional = false -python-versions = ">=3.9" -groups = ["dev"] -files = [ - {file = "urllib3-2.5.0-py3-none-any.whl", hash = "sha256:e6b01673c0fa6a13e374b50871808eb3bf7046c4b125b216f6bf1cc604cff0dc"}, - {file = "urllib3-2.5.0.tar.gz", hash = "sha256:3fc47733c7e419d4bc3f6b3dc2b4f890bb743906a30d56ba4a5bfa4bbff92760"}, -] - -[package.extras] -brotli = ["brotli (>=1.0.9) ; platform_python_implementation == \"CPython\"", "brotlicffi (>=0.8.0) ; platform_python_implementation != \"CPython\""] -h2 = ["h2 (>=4,<5)"] -socks = ["pysocks (>=1.5.6,!=1.5.7,<2.0)"] -zstd = ["zstandard (>=0.18.0)"] - -[[package]] -name = "virtualenv" -version = "20.31.2" -description = "Virtual Python Environment builder" -optional = false -python-versions = ">=3.8" -groups = ["dev"] -files = [ - {file = "virtualenv-20.31.2-py3-none-any.whl", hash = "sha256:36efd0d9650ee985f0cad72065001e66d49a6f24eb44d98980f630686243cf11"}, - {file = "virtualenv-20.31.2.tar.gz", hash = "sha256:e10c0a9d02835e592521be48b332b6caee6887f332c111aa79a09b9e79efc2af"}, -] - -[package.dependencies] -distlib = ">=0.3.7,<1" -filelock = ">=3.12.2,<4" -platformdirs = ">=3.9.1,<5" - -[package.extras] -docs = ["furo (>=2023.7.26)", "proselint (>=0.13)", "sphinx (>=7.1.2,!=7.3)", "sphinx-argparse (>=0.4)", "sphinxcontrib-towncrier (>=0.2.1a0)", "towncrier (>=23.6)"] -test = ["covdefaults (>=2.3)", "coverage (>=7.2.7)", "coverage-enable-subprocess (>=1)", "flaky (>=3.7)", "packaging (>=23.1)", "pytest (>=7.4)", "pytest-env (>=0.8.2)", "pytest-freezer (>=0.4.8) ; platform_python_implementation == \"PyPy\" or platform_python_implementation == \"GraalVM\" or platform_python_implementation == \"CPython\" and sys_platform == \"win32\" and python_version >= \"3.13\"", "pytest-mock (>=3.11.1)", "pytest-randomly (>=3.12)", "pytest-timeout (>=2.1)", "setuptools (>=68)", "time-machine (>=2.10) ; platform_python_implementation == \"CPython\""] - -[metadata] -lock-version = "2.1" -python-versions = ">=3.10,<4.0" -content-hash = "984dbecd1b0506ed6b385bb6f81adf8e6cc8bfc30f270027a7d86d107e83a33f" diff --git a/pyproject.toml b/pyproject.toml deleted file mode 100644 index 8c0101f..0000000 --- a/pyproject.toml +++ /dev/null @@ -1,98 +0,0 @@ -[build-system] -requires = ["poetry-core>=2.0"] -build-backend = "poetry.core.masonry.api" - - -[project] -name = "stegano" -version = "2.0.0" -description = "A pure Python Steganography module." -authors = [ - {name = "Cédric Bonhomme", email= "cedric@cedricbonhomme.org"} -] -license = "GPL-3.0-or-later" -readme = "README.md" -keywords = ["Steganography", "Security", "Stegano"] - -dynamic = ["classifiers"] - -requires-python = ">=3.10,<4.0" -dependencies = [ - "pillow (>=9.5,<12.0)", - "piexif (>=1.1.3)", - "crayons (>=0.4.0)", - "opencv-python (>=4.11.0.86)" -] - -[project.urls] -Homepage = "https://github.com/cedricbonhomme/Stegano" -Changelog = "https://github.com/cedricbonhomme/Stegano/blob/master/CHANGELOG.md" -Repository = "https://github.com/cedricbonhomme/Stegano" -Documentation = "https://stegano.readthedocs.io" - -[project.scripts] -stegano-lsb = "stegano.console.lsb:main" -stegano-red = "stegano.console.red:main" -stegano-steganalysis-parity = "stegano.console.parity:main" -stegano-steganalysis-statistics = "stegano.console.statistics:main" - - -[tool.poetry] -requires-poetry = ">=2.0" -classifiers = [ - "Development Status :: 5 - Production/Stable", - "Environment :: Console", - "Intended Audience :: Developers", - "Intended Audience :: Science/Research", - "Topic :: Security", - "Operating System :: POSIX :: Linux", - "Programming Language :: Python :: 3.10", - "Programming Language :: Python :: 3.11", - "Programming Language :: Python :: 3.12", - "Programming Language :: Python :: 3.13", - "License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)" -] -include = [ - "README.md", - "COPYING", - "CHANGELOG.md", - "docs/**/*", -] - - -[tool.poetry.group.dev.dependencies] -mypy = "^1.8.0" -flake8 = "^6.0.0" -nose2 = "^0.14.0" -Sphinx = "^6.2.1" -pre-commit = "^3.6.0" - - -[tool.poetry.group.dev] -optional = true - - -[tool.mypy] -python_version = "3.13" -check_untyped_defs = true -ignore_errors = false -ignore_missing_imports = true -strict_optional = true -no_implicit_optional = true -warn_unused_ignores = true -warn_redundant_casts = true -warn_unused_configs = true -warn_unreachable = true - -show_error_context = true -pretty = true - -exclude = "build|dist|docs" - - -[tool.isort] -profile = "black" - - -[tool.flake8] -ignore = ["E203"] diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..3868fb1 --- /dev/null +++ b/requirements.txt @@ -0,0 +1 @@ +pillow diff --git a/setup.cfg b/setup.cfg new file mode 100644 index 0000000..b88034e --- /dev/null +++ b/setup.cfg @@ -0,0 +1,2 @@ +[metadata] +description-file = README.md diff --git a/setup.py b/setup.py new file mode 100644 index 0000000..cd5319b --- /dev/null +++ b/setup.py @@ -0,0 +1,49 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +import os +import sys +import shutil + +try: + from setuptools import setup +except ImportError: + from distutils.core import setup + +packages = [ + 'stegano', + 'stegano.exif' +] + +requires = ['pillow'] + +with open('README.md', 'r') as f: + readme = f.read() +with open('CHANGELOG.md', 'r') as f: + changelog = f.read() + +setup( + name='Stegano', + version='0.4.3', + author='Cédric Bonhomme', + author_email='cedric@cedricbonhomme.org', + packages=packages, + include_package_data=True, + scripts=['bin/slsb', 'bin/slsb-set', 'bin/steganalysis-parity'], + url='https://bitbucket.org/cedricbonhomme/stegano', + description='A Python Steganography module.', + long_description=readme + changelog, + platforms = ['Linux'], + license='GPLv3', + install_requires=requires, + zip_safe=False, + classifiers=[ + "Development Status :: 4 - Beta", + "Environment :: Console", + "Topic :: Utilities", + "Operating System :: OS Independent", + "Programming Language :: Python :: 2.7", + "Programming Language :: Python :: 3.4", + "License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)" + ] +) diff --git a/stegano/__init__.py b/stegano/__init__.py index 9c49dc3..8d1c8b6 100755 --- a/stegano/__init__.py +++ b/stegano/__init__.py @@ -1,5 +1 @@ -#!/usr/bin/env python - -from . import exifHeader, lsb, red, steganalysis - -__all__ = ["red", "exifHeader", "lsb", "steganalysis"] + diff --git a/stegano/basic.py b/stegano/basic.py new file mode 100755 index 0000000..3e16916 --- /dev/null +++ b/stegano/basic.py @@ -0,0 +1,108 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# Stéganô - Stéganô is a basic Python Steganography module. +# Copyright (C) 2010-2013 Cédric Bonhomme - http://cedricbonhomme.org/ +# +# For more information : http://bitbucket.org/cedricbonhomme/stegano/ +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see + +__author__ = "Cedric Bonhomme" +__version__ = "$Revision: 0.1 $" +__date__ = "$Date: 2010/10/01 $" +__license__ = "GPLv3" + +import sys + +from PIL import Image + +def hide(img, message): + """ + Hide a message (string) in an image. + + Use the red portion of a pixel (r, g, b) tuple to + hide the message string characters as ASCII values. + The red value of the first pixel is used for length of string. + """ + length = len(message) + # Limit length of message to 255 + if length > 255: + return False + # Use a copy of image to hide the text in + encoded = img.copy() + width, height = img.size + index = 0 + for row in range(height): + for col in range(width): + (r, g, b) = img.getpixel((col, row)) + # first value is length of message + if row == 0 and col == 0 and index < length: + asc = length + elif index <= length: + c = message[index -1] + asc = ord(c) + else: + asc = r + encoded.putpixel((col, row), (asc, g , b)) + index += 1 + return encoded + +def reveal(img): + """ + Find a message in an image. + + Check the red portion of an pixel (r, g, b) tuple for + hidden message characters (ASCII values). + The red value of the first pixel is used for length of string. + """ + width, height = img.size + message = "" + index = 0 + for row in range(height): + for col in range(width): + r, g, b = img.getpixel((col, row)) + # First pixel r value is length of message + if row == 0 and col == 0: + length = r + elif index <= length: + message += chr(r) + index += 1 + return message + +if __name__ == '__main__': + # Point of entry in execution mode. + from optparse import OptionParser + usage = "usage: %prog hide|reveal [options]" + parser = OptionParser(usage) + parser.add_option("-i", "--input", dest="input_image_file", + help="Image file.") + parser.add_option("-o", "--output", dest="output_image_file", + help="Image file.") + parser.add_option("-s", "--secret", dest="secret", + help="Your secret (Message, Image, Music or any binary file).") + parser.set_defaults(input_image_file = './pictures/Lenna.png', + output_image_file = './pictures/Lenna_enc.png', + secret = 'Hello World!') + + (options, args) = parser.parse_args() + + if sys.argv[1] == "hide": + img = Image.open(options.input_image_file) + img_encoded = hide(img, options.secret) + img_encoded.save(options.output_image_file) + + elif sys.argv[1] == "reveal": + img = Image.open(options.input_image_file) + print(reveal(img)) diff --git a/stegano/console/__init__.py b/stegano/console/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/stegano/console/lsb.py b/stegano/console/lsb.py deleted file mode 100755 index 7ab98ca..0000000 --- a/stegano/console/lsb.py +++ /dev/null @@ -1,227 +0,0 @@ -#!/usr/bin/env python -# Stegano - Stegano is a pure Python steganography module. -# Copyright (C) 2010-2025 Cédric Bonhomme - https://www.cedricbonhomme.org -# -# For more information : https://github.com/cedricbonhomme/Stegano -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see - -__author__ = "Cedric Bonhomme" -__version__ = "$Revision: 0.7 $" -__date__ = "$Date: 2016/03/18 $" -__revision__ = "$Date: 2019/06/04 $" -__license__ = "GPLv3" - -import inspect - -import crayons - -try: - from stegano import lsb - from stegano.lsb import generators -except Exception: - print("Install stegano: pipx install Stegano") - -import argparse - -from stegano import tools - - -class ValidateGenerator(argparse.Action): - def __call__(self, parser, args, values, option_string=None): - valid_generators = [ - generator[0] - for generator in inspect.getmembers(generators, inspect.isfunction) - ] - # Verify that the generator is valid - generator = values[0] - if generator not in valid_generators: - raise ValueError("Unknown generator: %s" % generator) - # Set the generator_function arg of the parser - setattr(args, self.dest, values) - - -def main(): - parser = argparse.ArgumentParser(prog="stegano-lsb") - subparsers = parser.add_subparsers( - help="sub-command help", dest="command", required=True - ) - - # Subparser: Hide - parser_hide = subparsers.add_parser("hide", help="hide help") - # Original image - parser_hide.add_argument( - "-i", - "--input", - dest="input_image_file", - required=True, - help="Input image file.", - ) - parser_hide.add_argument( - "-e", - "--encoding", - dest="encoding", - choices=tools.ENCODINGS.keys(), - default="UTF-8", - help="Specify the encoding of the message to hide." - " UTF-8 (default) or UTF-32LE.", - ) - - # Generator - parser_hide.add_argument( - "-g", - "--generator", - dest="generator_function", - action=ValidateGenerator, - nargs="*", - required=False, - default=None, - help="Generator (with optional arguments)", - ) - - # Shift the message to hide - parser_hide.add_argument( - "-s", "--shift", dest="shift", default=0, help="Shift for the generator" - ) - - group_secret = parser_hide.add_mutually_exclusive_group(required=True) - # Non binary secret message to hide - group_secret.add_argument( - "-m", dest="secret_message", help="Your secret message to hide (non binary)." - ) - # Binary secret message to hide - group_secret.add_argument( - "-f", dest="secret_file", help="Your secret to hide (Text or any binary file)." - ) - - # Image containing the secret - parser_hide.add_argument( - "-o", - "--output", - dest="output_image_file", - required=True, - help="Output image containing the secret.", - ) - - # Subparser: Reveal - parser_reveal = subparsers.add_parser("reveal", help="reveal help") - parser_reveal.add_argument( - "-i", - "--input", - dest="input_image_file", - required=True, - help="Input image file.", - ) - parser_reveal.add_argument( - "-e", - "--encoding", - dest="encoding", - choices=tools.ENCODINGS.keys(), - default="UTF-8", - help="Specify the encoding of the message to reveal." - " UTF-8 (default) or UTF-32LE.", - ) - - # Generator - parser_reveal.add_argument( - "-g", - "--generator", - dest="generator_function", - action=ValidateGenerator, - nargs="*", - required=False, - help="Generator (with optional arguments)", - ) - - # Shift the message to reveal - parser_reveal.add_argument( - "-s", "--shift", dest="shift", default=0, help="Shift for the generator" - ) - parser_reveal.add_argument( - "-o", - dest="secret_binary", - help="Output for the binary secret (Text or any binary file).", - ) - - # Subparser: List generators - subparsers.add_parser("list-generators", help="list-generators help") - - arguments = parser.parse_args() - - if arguments.command != "list-generators": - if not arguments.generator_function: - generator = None - else: - try: - if arguments.generator_function[0] == "LFSR": - # Compute the size of the image for use by the LFSR generator if needed - tmp = tools.open_image(arguments.input_image_file) - size = tmp.width * tmp.height - tmp.close() - arguments.generator_function.append(size) - if len(arguments.generator_function) > 1: - generator = getattr(generators, arguments.generator_function[0])( - *[int(e) for e in arguments.generator_function[1:]] - ) - else: - generator = getattr(generators, arguments.generator_function[0])() - - except AttributeError: - print(f"Unknown generator: {arguments.generator_function}") - exit(1) - - if arguments.command == "hide": - if arguments.secret_message is not None: - secret = arguments.secret_message - elif arguments.secret_file != "": - secret = tools.binary2base64(arguments.secret_file) - - img_encoded = lsb.hide( - image=arguments.input_image_file, - message=secret, - generator=generator, - shift=int(arguments.shift), - encoding=arguments.encoding, - ) - try: - img_encoded.save(arguments.output_image_file) - except Exception as e: - # If hide() returns an error (Too long message). - print(e) - - elif arguments.command == "reveal": - try: - secret = lsb.reveal( - encoded_image=arguments.input_image_file, - generator=generator, - shift=int(arguments.shift), - encoding=arguments.encoding, - ) - except IndexError: - print("Impossible to detect message.") - exit(0) - if arguments.secret_binary is not None: - data = tools.base642binary(secret) - with open(arguments.secret_binary, "wb") as f: - f.write(data) - else: - print(secret) - - elif arguments.command == "list-generators": - all_generators = inspect.getmembers(generators, inspect.isfunction) - for generator in all_generators: - print("Generator id:") - print(f" {crayons.green(generator[0], bold=True)}") - print("Desciption:") - print(f" {generator[1].__doc__}") diff --git a/stegano/console/parity.py b/stegano/console/parity.py deleted file mode 100644 index 7c0ea8e..0000000 --- a/stegano/console/parity.py +++ /dev/null @@ -1,55 +0,0 @@ -#!/usr/bin/env python -# Stegano - Stegano is a pure Python steganography module. -# Copyright (C) 2010-2025 Cédric Bonhomme - https://www.cedricbonhomme.org -# -# For more information : https://github.com/cedricbonhomme/Stegano -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see - -__author__ = "Cedric Bonhomme" -__version__ = "$Revision: 0.7 $" -__date__ = "$Date: 2016/08/25 $" -__license__ = "GPLv3" - -import argparse - -from PIL import Image - -try: - from stegano.steganalysis import parity -except Exception: - print("Install Stegano: pipx install Stegano") - - -def main(): - parser = argparse.ArgumentParser(prog="stegano-steganalysis-parity") - parser.add_argument( - "-i", - "--input", - dest="input_image_file", - required=True, - help="Input image file.", - ) - parser.add_argument( - "-o", - "--output", - dest="output_image_file", - required=True, - help="Output image file.", - ) - arguments = parser.parse_args() - - input_image_file = Image.open(arguments.input_image_file) - output_image = parity.steganalyse(input_image_file) - output_image.save(arguments.output_image_file) diff --git a/stegano/console/red.py b/stegano/console/red.py deleted file mode 100644 index f656e2b..0000000 --- a/stegano/console/red.py +++ /dev/null @@ -1,61 +0,0 @@ -#!/usr/bin/env python -# Stegano - Stegano is a pure Python steganography module. -# Copyright (C) 2010-2025 Cédric Bonhomme - https://www.cedricbonhomme.org -# -# For more information : https://github.com/cedricbonhomme/Stegano -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see - -__author__ = "Cedric Bonhomme" -__version__ = "$Revision: 0.1 $" -__date__ = "$Date: 2017/02/06 $" -__license__ = "GPLv3" - -import argparse - -try: - from stegano import red -except Exception: - print("Install stegano: sudo pip install Stegano") - - -def main(): - parser = argparse.ArgumentParser(prog="stegano-red") - subparsers = parser.add_subparsers(help="sub-command help", dest="command") - - parser_hide = subparsers.add_parser("hide", help="hide help") - parser_hide.add_argument( - "-i", "--input", dest="input_image_file", help="Image file" - ) - parser_hide.add_argument( - "-m", dest="secret_message", help="Your secret message to hide (non binary)." - ) - parser_hide.add_argument( - "-o", "--output", dest="output_image_file", help="Image file" - ) - - parser_reveal = subparsers.add_parser("reveal", help="reveal help") - parser_reveal.add_argument( - "-i", "--input", dest="input_image_file", help="Image file" - ) - - arguments = parser.parse_args() - - if arguments.command == "hide": - secret = red.hide(arguments.input_image_file, arguments.secret_message) - secret.save(arguments.output_image_file) - - elif arguments.command == "reveal": - secret = red.reveal(arguments.input_image_file) - print(secret) diff --git a/stegano/console/statistics.py b/stegano/console/statistics.py deleted file mode 100644 index 85b144e..0000000 --- a/stegano/console/statistics.py +++ /dev/null @@ -1,44 +0,0 @@ -#!/usr/bin/env python -# Stegano - Stegano is a pure Python steganography module. -# Copyright (C) 2010-2025 Cédric Bonhomme - https://www.cedricbonhomme.org -# -# For more information : https://github.com/cedricbonhomme/Stegano -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see - -__author__ = "Cédric Bonhomme" -__version__ = "$Revision: 0.1 $" -__date__ = "$Date: 2016/08/26 $" -__revision__ = "$Date: 2016/08/26 $" -__license__ = "GPLv3" - -import argparse - -from PIL import Image - -try: - from stegano.steganalysis import statistics -except Exception: - print("Install Stegano: sudo pip install Stegano") - - -def main(): - parser = argparse.ArgumentParser(prog="stegano-steganalysis-parity") - parser.add_argument("-i", "--input", dest="input_image_file", help="Image file") - parser.add_argument("-o", "--output", dest="output_image_file", help="Image file") - arguments = parser.parse_args() - - input_image_file = Image.open(arguments.input_image_file) - output_image = statistics.steganalyse(input_image_file) - output_image.save(arguments.output_image_file) diff --git a/stegano/console/wav.py b/stegano/console/wav.py deleted file mode 100644 index d32d322..0000000 --- a/stegano/console/wav.py +++ /dev/null @@ -1,128 +0,0 @@ -#!/usr/bin/env python -# Stegano - Stegano is a pure Python steganography module. -# Copyright (C) 2010-2025 Cédric Bonhomme - https://www.cedricbonhomme.org -# -# For more information : https://github.com/cedricbonhomme/Stegano -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see - -__author__ = "Cedric Bonhomme" -__version__ = "$Revision: 0.7 $" -__date__ = "$Date: 2016/03/18 $" -__revision__ = "$Date: 2019/06/04 $" -__license__ = "GPLv3" - -try: - from stegano import wav -except Exception: - print("Install stegano: pipx install Stegano") - -import argparse - -from stegano import tools - - -def main(): - parser = argparse.ArgumentParser(prog="stegano-lsb") - subparsers = parser.add_subparsers( - help="sub-command help", dest="command", required=True - ) - - # Subparser: Hide - parser_hide = subparsers.add_parser("hide", help="hide help") - # Original audio - parser_hide.add_argument( - "-i", - "--input", - dest="input_audio_file", - required=True, - help="Input audio file.", - ) - parser_hide.add_argument( - "-e", - "--encoding", - dest="encoding", - choices=tools.ENCODINGS.keys(), - default="UTF-8", - help="Specify the encoding of the message to hide." - " UTF-8 (default) or UTF-32LE.", - ) - - group_secret = parser_hide.add_mutually_exclusive_group(required=True) - # Non binary secret message to hide - group_secret.add_argument( - "-m", dest="secret_message", help="Your secret message to hide (non binary)." - ) - # Binary secret message to hide - group_secret.add_argument( - "-f", dest="secret_file", help="Your secret to hide (Text or any binary file)." - ) - - # Audio containing the secret - parser_hide.add_argument( - "-o", - "--output", - dest="output_audio_file", - required=True, - help="Output audio containing the secret.", - ) - - # Subparser: Reveal - parser_reveal = subparsers.add_parser("reveal", help="reveal help") - parser_reveal.add_argument( - "-i", - "--input", - dest="input_audio_file", - required=True, - help="Input audio file.", - ) - parser_reveal.add_argument( - "-e", - "--encoding", - dest="encoding", - choices=tools.ENCODINGS.keys(), - default="UTF-8", - help="Specify the encoding of the message to reveal." - " UTF-8 (default) or UTF-32LE.", - ) - - arguments = parser.parse_args() - - if arguments.command == "hide": - if arguments.secret_message is not None: - secret = arguments.secret_message - elif arguments.secret_file != "": - secret = tools.binary2base64(arguments.secret_file) - - wav.hide( - input_file=arguments.input_audio_file, - message=secret, - encoding=arguments.encoding, - output_file=arguments.output_audio_file, - ) - - elif arguments.command == "reveal": - try: - secret = wav.reveal( - input_file=arguments.input_audio_file, encoding=arguments.encoding - ) - except IndexError: - print("Impossible to detect message.") - exit(0) - if arguments.secret_binary is not None: - data = tools.base642binary(secret) - with open(arguments.secret_binary, "wb") as f: - f.write(data) - else: - print(secret) diff --git a/stegano/exif/__init__.py b/stegano/exif/__init__.py new file mode 100644 index 0000000..8d1c8b6 --- /dev/null +++ b/stegano/exif/__init__.py @@ -0,0 +1 @@ + diff --git a/stegano/exif/minimal_exif_reader.py b/stegano/exif/minimal_exif_reader.py new file mode 100644 index 0000000..ab711c3 --- /dev/null +++ b/stegano/exif/minimal_exif_reader.py @@ -0,0 +1,197 @@ +""" +This module offers one class, MinimalExifReader. Pass jpg filename +to the constructor. Will read minimal exif info from the file. Three +"public" functions available: +imageDescription()--returns Exif ImageDescription tag (0x010e) contents, + or '' if not found. +copyright()--returns Exif copyright tag (0x8298) contents, or '' if not + found. +dateTimeOriginal()--returns Exif DateTimeOriginal tag (0x9003) contents, + or '' if not found. If found, the trailing nul char + is stripped. This function also takes an optional + format string to apply time.strftime-style formatting + to the date time. + +Brought to you by Megabyte Rodeo Software. +""" + +# Written by Chris Stromberger, 10/2004. Public Domain. +# Much is owed to Thierry Bousch's exifdump.py: +# http://topo.math.u-psud.fr/~bousch/exifdump.py + +#--------------------------------------------------------------------- +class ExifFormatException(Exception): + pass + +#--------------------------------------------------------------------- +class MinimalExifReader: + IMAGE_DESCRIPTION_TAG = 0x010e + COPYRIGHT_TAG = 0x8298 + EXIF_SUBIFD_TAG = 0x8769 + DATE_TIME_ORIGINAL_TAG = 0x9003 + + #--------------------------------------- + def __init__(self, filename): + """Pass in jpg exif file name to process. Will attempt to find tags + of interest.""" + + self.tagsToFind = {self.IMAGE_DESCRIPTION_TAG:'', + self.COPYRIGHT_TAG:'', + self.DATE_TIME_ORIGINAL_TAG:''} + + # Read first bit of file to see if exif file. + f = open(filename, 'rb') + firstTwoBytes = f.read(2) + if firstTwoBytes != '\xff\xd8': + f.close() + raise ExifFormatException("Missing SOI marker") + + appMarker = f.read(2) + # See if there's an APP0 section, which sometimes appears. + if appMarker == '\xff\xe0': + #print "Skipping app0" + # Yes, we have app0. Skip over it. + app0DataLength = ord(f.read(1)) * 256 + ord(f.read(1)) + app0 = f.read(app0DataLength - 2) + appMarker = f.read(2) + + if appMarker != '\xff\xe1': + raise ExifFormatException("Can't find APP1 marker") + + exifHeader = f.read(8) + #import binascii + #print binascii.hexlify(exifHeader) + if (exifHeader[2:6] != 'Exif' or + exifHeader[6:8] != '\x00\x00'): + f.close() + raise ExifFormatException("Malformed APP1") + + app1DataLength = ord(exifHeader[0]) * 256 + ord(exifHeader[1]) + #print app1DataLength + + # Read exif info starting at the beginning of the self.tiff section. + # This is 8 bytes into the app1 section, so subtract 8 from + # app1 length. + self.tiff = f.read(app1DataLength - 8) + f.close() + + self.endian = self.tiff[0] + if self.endian not in ('I', 'M'): + raise ExifFormatException("Invalid endianess found: %s" % self.endian) + + # Now navigate to the items of interest and get them. + ifdStart = self.getValueAtLocation(4, 4) + self.ifdSearch(ifdStart) + + #--------------------------------------- + def imageDescription(self): + """Return image description tag contents or '' if not found.""" + + return self.tagsToFind[self.IMAGE_DESCRIPTION_TAG].strip('\x20\x00') + + #--------------------------------------- + def copyright(self): + """Return copyright tag contents or '' if not found.""" + + return self.tagsToFind[self.COPYRIGHT_TAG].strip('\x20\x00') + + #--------------------------------------- + def dateTimeOriginal(self, formatString = None): + """Pass in optional format string to get time.strftime style formatting, + else get default exif format for date time string (without trailing nul). + Returns '' if tag not found.""" + + # The datetime should end in nul, get rid of it. + if formatString is None or not self.tagsToFind[self.DATE_TIME_ORIGINAL_TAG]: + return self.tagsToFind[self.DATE_TIME_ORIGINAL_TAG].strip('\x20\x00') + else: + # This will only work if the datetime string is in the standard exif format (i.e., hasn't been altered). + try: + import time + return time.strftime(formatString, time.strptime(self.tagsToFind[self.DATE_TIME_ORIGINAL_TAG].strip('\x20\x00'), '%Y:%m:%d %H:%M:%S')) + except: + return self.tagsToFind[self.DATE_TIME_ORIGINAL_TAG].strip('\x20\x00') + + + #--------------------------------------- + def ifdSearch(self, ifdStart): + numIfdEntries = self.getValueAtLocation(ifdStart, 2) + tagsStart = ifdStart + 2 + for entryNum in range(numIfdEntries): + # For my purposes, all files will have either no tags, or + # only our tags of interest, so no need to waste time trying to + # break out of the loop early. + thisTagStart = tagsStart + 12 * entryNum + tagId = self.getValueAtLocation(thisTagStart, 2) + if tagId == self.EXIF_SUBIFD_TAG: + # This is a special tag that points to another ifd. Our + # date time original tag is in the sub ifd. + self.ifdSearch(self.getTagValue(thisTagStart)) + elif tagId in self.tagsToFind: + assert(not self.tagsToFind[tagId]) + self.tagsToFind[tagId] = self.getTagValue(thisTagStart) + + #--------------------------------------- + def getValueAtLocation(self, offset, length): + slice = self.tiff[offset:offset + length] + if self.endian == 'I': + val = self.s2n_intel(slice) + else: + val = self.s2n_motorola(slice) + return val + + #--------------------------------------- + def s2n_motorola(self, str): + x = 0 + for c in str: + x = (x << 8) | ord(c) + return x + + #--------------------------------------- + def s2n_intel(self, str): + x = 0 + y = 0 + for c in str: + x = x | (ord(c) << y) + y = y + 8 + return x + + #--------------------------------------- + def getTagValue(self, thisTagStart): + datatype = self.getValueAtLocation(thisTagStart + 2, 2) + numBytes = [ 1, 1, 2, 4, 8, 1, 1, 2, 4, 8 ] [datatype-1] * self.getValueAtLocation(thisTagStart + 4, 4) + if numBytes > 4: + offsetToValue = self.getValueAtLocation(thisTagStart + 8, 4) + return self.tiff[offsetToValue:offsetToValue + numBytes] + else: + if datatype == 2 or datatype == 1 or datatype == 7: + return self.tiff[thisTagStart + 8:thisTagStart + 8 + numBytes] + else: + return self.getValueAtLocation(thisTagStart + 8, numBytes) + + #--------------------------------------- + def __str__(self): + return str(self.tagsToFind) + +#--------------------------------------------------------------------- +if __name__ == '__main__': + import sys + if len(sys.argv) == 1: + print("Pass jpgs to process.") + sys.exit(1) + + + for filename in sys.argv[1:]: + try: + f = MinimalExifReader(filename) + print(filename) + print("description: '%s'" % f.imageDescription()) + print("copyright: '%s'" % f.copyright()) + print("dateTimeOriginal: '%s'" % f.dateTimeOriginal()) + print("dateTimeOriginal: '%s'" % f.dateTimeOriginal('%B %d, %Y %I:%M:%S %p')) + print() + except ExifFormatException as ex: + sys.stderr.write("Exif format error: %s\n" % ex) + except: + sys.stderr.write("Unable to process %s\n" % filename) + diff --git a/stegano/exif/minimal_exif_writer.py b/stegano/exif/minimal_exif_writer.py new file mode 100644 index 0000000..ed0d198 --- /dev/null +++ b/stegano/exif/minimal_exif_writer.py @@ -0,0 +1,457 @@ +""" +Offers one class, MinimalExifWriter, which takes a jpg filename +in the constructor. Allows you to: remove exif section, add +image description, add copyright. Typical usage: + +f = MinimalExifWriter('xyz.jpg') +f.newImageDescription('This is a photo of something very interesting!') +f.newCopyright('Jose Blow, All Rights Reserved', addCopyrightYear = 1) +f.process() + +Class methods: +newImageDescription(description)--will add Exif ImageDescription to file. + +newCopyright(copyright, addSymbol = 0, addYear = 0)--will add Exif Copyright to file. + Will optionally prepend copyright symbol, or copyright symbol and current year. + +removeExif()--will obliterate existing exif section. + +process()--call after calling one or more of the above. Will remove existing exif + section, optionally saving some existing tags (see below), and insert a new exif + section with only three tags at most: description, copyright and date time original. + If removeExif() not called, existing description (or new description if newDescription() + called), existing copyright (or new copyright if newCopyright() called) and existing + "DateTimeOriginal" (date/time picture taken) tags will be rewritten to the new + minimal exif section. + +Run at comand line with no args to see command line usage. + +Does not work on unix due to differences in mmap. Not sure what's up there-- +don't need it on unix! + +Brought to you by Megabyte Rodeo Software. +http://www.fetidcascade.com/pyexif.html +""" + +# Written by Chris Stromberger, 10/2004. Public Domain. +# Last updated: 12/3/2004. + +DUMP_TIFF = 0 +VERBOSE = 0 +if VERBOSE: + import binascii + +import mmap +import sys +from . import minimal_exif_reader + +#--------------------------------------------------------------------- +class ExifFormatException(Exception): + pass + +#--------------------------------------------------------------------------- +class MinimalExifWriter: + SOI_MARKER = '\xff\xd8' + APP0_MARKER = '\xff\xe0' + APP1_MARKER = '\xff\xe1' + + # Standard app0 segment that will work for all files. We hope. + # Based on http://www.funducode.com/freec/Fileformats/format3/format3b.htm. + APP0 = '\xff\xe0\x00\x10\x4a\x46\x49\x46\x00\x01\x01\x00\x00\x01\x00\x01\x00\x00' + + def __init__(self, filename): + self.filename = filename + self.removeExifSection = 0 + self.description = None + self.copyright = None + self.dateTimeOriginal = None + + #--------------------------------------------- + def newImageDescription(self, description): + self.description = description + + #--------------------------------------------- + def newCopyright(self, copyright, addSymbol = 0, addYear = 0): + if addYear: + import time + year = time.localtime()[0] + self.copyright = "\xa9 %s %s" % (year, copyright) + elif addSymbol: + self.copyright = "\xa9 %s" % copyright + else: + self.copyright = copyright + + #--------------------------------------------- + def removeExif(self): + self.removeExifSection = 1 + + #--------------------------------------------- + def process(self): + if not self.removeExifSection: + self.getExistingExifInfo() + + if VERBOSE: + print(self) + + import os + try: + fd = os.open(self.filename, os.O_RDWR) + except: + sys.stderr.write('Unable to open "%s"\n' % filename) + return + + self.m = mmap.mmap(fd, 0) + os.close(fd) + + # We only add app0 if all we're doing is removing the exif section. + justRemovingExif = self.description is None and self.copyright is None and self.removeExifSection + if VERBOSE: print('justRemovingExif=%s' % justRemovingExif) + self.removeExifInfo(addApp0 = justRemovingExif) + if justRemovingExif: + self.m.close() + return + + # Get here means we are adding new description and/or copyright. + self.removeApp0() + + totalTagsToBeAdded = len([_f for _f in (self.description, self.copyright, self.dateTimeOriginal) if _f]) + assert(totalTagsToBeAdded > 0) + + # Layout will be: firstifd|description|copyright|exififd|datetime. + # First ifd will have tags: desc|copyright|subifd tag. + ifd = [self.twoBytesHexIntel(totalTagsToBeAdded)] + ifdEnd = ['\x00\x00\x00\x00'] + NUM_TAGS_LEN = 2 + TAG_LEN = 12 + NEXT_IFD_OFFSET_LEN = 4 + TIFF_HEADER_LENGTH = 8 + ifdLength = NUM_TAGS_LEN + TAG_LEN * totalTagsToBeAdded + NEXT_IFD_OFFSET_LEN + + # Subifd only has one tag. + SUBIFD_LENGTH = NUM_TAGS_LEN + TAG_LEN + NEXT_IFD_OFFSET_LEN + + offsetToEndOfData = ifdLength + TIFF_HEADER_LENGTH + + if self.description: + ifd.append(self.descriptionTag(len(self.description), offsetToEndOfData)) + ifdEnd.append(self.description) + offsetToEndOfData += len(self.description) + + if self.copyright: + ifd.append(self.copyrightTag(len(self.copyright), offsetToEndOfData)) + ifdEnd.append(self.copyright) + offsetToEndOfData += len(self.copyright) + + if self.dateTimeOriginal: + ifd.append(self.subIfdTag(offsetToEndOfData)) + offsetToEndOfData += SUBIFD_LENGTH + ifdEnd.append(self.buildSubIfd(len(self.dateTimeOriginal), offsetToEndOfData)) + ifdEnd.append(self.dateTimeOriginal) + + app1 = self.buildApp1Section(ifd, ifdEnd) + + self.addApp1(app1) + + self.m.close() + + #--------------------------------------------- + # Build exif subifd with one tag for datetime (0x9003). + # Type is ascii (0x0002). + def buildSubIfd(self, lenDateTime, offsetToEndOfData): + return '\x01\x00\x03\x90\x02\x00%s%s\x00\x00\x00\x00' % (self.fourBytesHexIntel(lenDateTime), self.fourBytesHexIntel(offsetToEndOfData)) + + #--------------------------------------------- + def getExistingExifInfo(self): + # Save off the old stuff. + try: + f = minimal_exif_reader.MinimalExifReader(self.filename) + except: + # Assume no existing exif info in the file. We + # don't care. + return + + if not self.description: + self.description = f.imageDescription() + + if not self.copyright: + self.copyright = f.copyright() + + self.dateTimeOriginal = f.dateTimeOriginal() + if self.dateTimeOriginal: + # Restore ending nul. + if self.dateTimeOriginal[-1] != '\x00': + self.dateTimeOriginal += '\x00' + + #--------------------------------------------------------------------------- + def removeExifInfo(self, addApp0 = 1): + """Remove the app1 section of the jpg. This removes all exif info and the exif + thumbnail. addApp0 should be 1 to add a minimal app0 section right after soi + to make it a legitimate jpg, I think (various image programs can read the file + without app0, but I think the standard requires one). + """ + # Read first bit of file to see if exif file. + self.m.seek(0) + if self.m.read(2) != self.SOI_MARKER: + self.m.close() + raise ExifFormatException("Missing SOI marker") + + app0DataLength = 0 + appMarker = self.m.read(2) + # See if there's an APP0 section, which sometimes appears. + if appMarker == self.APP0_MARKER: + if VERBOSE: print('app0 found') + app0DataLength = ord(self.m.read(1)) * 256 + ord(self.m.read(1)) + if VERBOSE: print('app0DataLength: %s' % app0DataLength) + # Back up 2 bytes to get the length bytes. + self.m.seek(-2, 1) + existingApp0 = self.m.read(app0DataLength) + appMarker = self.m.read(2) + + if appMarker != self.APP1_MARKER: + # We don't care, we'll add our minimal app1 later. + return + + exifHeader = self.m.read(8) + if VERBOSE: print('exif header: %s' % binascii.hexlify(exifHeader)) + if (exifHeader[2:6] != 'Exif' or + exifHeader[6:8] != '\x00\x00'): + self.m.close() + raise ExifFormatException("Malformed APP1") + + app1Length = ord(exifHeader[0]) * 256 + ord(exifHeader[1]) + if VERBOSE: print('app1Length: %s' % app1Length) + + originalFileSize = self.m.size() + + # Shift stuff just past app1 to overwrite app1. + # Start at app1 length bytes in + other bytes not incl in app1 length. + src = app1Length + len(self.SOI_MARKER) + len(self.APP1_MARKER) + if app0DataLength: + src += app0DataLength + len(self.APP0_MARKER) + dest = len(self.SOI_MARKER) + if addApp0: + if app0DataLength != 0: + # We'll re-add the existing app0. + dest += app0DataLength + len(self.APP0_MARKER) + else: + # Add our generic app0. + dest += len(self.APP0) + count = originalFileSize - app1Length - len(self.SOI_MARKER) - len(self.APP1_MARKER) + if app0DataLength: + count -= app0DataLength + len(self.APP0_MARKER) + + if VERBOSE: print('self.m.move(%s, %s, %s)' % (dest, src, count)) + self.m.move(dest, src, count) + + if addApp0: + if app0DataLength != 0: + self.m.resize(originalFileSize - app1Length - len(self.APP1_MARKER)) + else: + self.m.seek(len(self.SOI_MARKER)) + self.m.write(self.APP0) + self.m.resize(originalFileSize - app1Length - len(self.APP1_MARKER) + len(self.APP0)) + else: + self.m.resize(originalFileSize - app1Length - len(self.APP1_MARKER)) + + #--------------------------------------------------------------------------- + def removeApp0(self): + self.m.seek(0) + header = self.m.read(6) + if (header[0:2] != self.SOI_MARKER or + header[2:4] != self.APP0_MARKER): + if VERBOSE: print('no app0 found: %s' % binascii.hexlify(header)) + return + + originalFileSize = self.m.size() + + app0Length = ord(header[4]) * 256 + ord(header[5]) + if VERBOSE: print('app0Length:', app0Length) + + # Shift stuff to overwrite app0. + # Start at app0 length bytes in + other bytes not incl in app0 length. + src = app0Length + len(self.SOI_MARKER) + len(self.APP0_MARKER) + dest = len(self.SOI_MARKER) + count = originalFileSize - app0Length - len(self.SOI_MARKER) - len(self.APP0_MARKER) + self.m.move(dest, src, count) + if VERBOSE: print('m.move(%s, %s, %s)' % (dest, src, count)) + self.m.resize(originalFileSize - app0Length - len(self.APP0_MARKER)) + + #--------------------------------------------------------------------------- + def addApp1(self, app1): + originalFileSize = self.m.size() + + # Insert app1 section. + self.m.resize(originalFileSize + len(app1)) + src = len(self.SOI_MARKER) + dest = len(app1) + len(self.SOI_MARKER) + count = originalFileSize - len(self.SOI_MARKER) + self.m.move(dest, src, count) + self.m.seek(len(self.SOI_MARKER)) + self.m.write(app1) + + #--------------------------------------------------------------------------- + def fourBytesHexIntel(self, number): + return '%s%s%s%s' % (chr(number & 0x000000ff), + chr((number >> 8) & 0x000000ff), + chr((number >> 16) & 0x000000ff), + chr((number >> 24) & 0x000000ff)) + + #--------------------------------------------------------------------------- + def twoBytesHexIntel(self, number): + return '%s%s' % (chr(number & 0x00ff), + chr((number >> 8) & 0x00ff)) + + #--------------------------------------------------------------------------- + def descriptionTag(self, numChars, loc): + return self.asciiTag('\x0e\x01', numChars, loc) + + #--------------------------------------------------------------------------- + def copyrightTag(self, numChars, loc): + return self.asciiTag('\x98\x82', numChars, loc) + + #--------------------------------------------------------------------------- + def subIfdTag(self, loc): + return '\x69\x87\x04\x00\x01\x00\x00\x00%s' % self.fourBytesHexIntel(loc) + + #--------------------------------------------------------------------------- + def asciiTag(self, tag, numChars, loc): + """Create ascii tag. Assumes description > 4 chars long.""" + + return '%s\x02\x00%s%s' % (tag, self.fourBytesHexIntel(numChars), self.fourBytesHexIntel(loc)) + + #--------------------------------------------------------------------------- + def buildApp1Section(self, ifdPieces, ifdEndPieces): + """Create the APP1 section of an exif jpg. Consists of exif header plus + tiff header + ifd and associated data.""" + + # Intel byte order, offset to first ifd will be 8. + tiff = 'II\x2a\x00\x08\x00\x00\x00%s%s' % (''.join(ifdPieces), ''.join(ifdEndPieces)) + if DUMP_TIFF: + f = open('tiff.dump', 'wb') + f.write(tiff) + f.close() + app1Length = len(tiff) + 8 + return '\xff\xe1%s%sExif\x00\x00%s' % (chr((app1Length >> 8) & 0x00ff), chr(app1Length & 0x00ff), tiff) + + #--------------------------------------------------------------------------- + def __str__(self): + return """filename: %(filename)s +removeExifSection: %(removeExifSection)s +description: %(description)s +copyright: %(copyright)s +dateTimeOriginal: %(dateTimeOriginal)s +""" % self.__dict__ + +#--------------------------------------------------------------------------- +def usage(error = None): + """Print command line usage and exit""" + + if error: + print(error) + print() + + print("""This program will remove exif info from an exif jpg, and can optionally +add the ImageDescription exif tag and/or the Copyright tag. But it will always remove +some or all existing exif info (depending on options--see below)! +So don't run this on your original images without a backup. + +Options: + -h: shows this message. + -f : jpg to process (required). + -x: remove exif info (including thumbnail). + -d : remove exif info (including thumbnail) and then add exif + ImageDescription. Will save the existing copyright tag if present, + as well as the date time original tag (date & time photo taken), + unless -x also passed (-x always means remove all exif info). + It will attempt to open whatever is passed on the + command line as a file; if successful, the contents of the file + are added as the description, else the literal text on the + command line is used as the description. + -c : remove exif info (including thumbnail) and then add exif + Copyright tag. Will save the existing image description tag if present, + as well as the date time original tag (date & time photo taken), + unless -x also passed (-x always means remove all exif info). + It will attempt to open whatever is passed on the command line as a file; + if successful, the contents of the file are added as the copyright, + else the literal text on the command line is used as the copyright. + -s: prepend copyright symbol to copyright. + -y: prepend copyright symbol and current year to copyright. + + The image description and copyright must be > 4 characters long. + + This software courtesy of Megabyte Rodeo Software.""") + + sys.exit(1) + +#--------------------------------------------------------------------------- +def parseArgs(args_): + import getopt + try: + opts, args = getopt.getopt(args_, "yshxd:f:c:") + except getopt.GetoptError: + usage() + + filename = None + description = '' + copyright = '' + addCopyrightSymbol = 0 + addCopyrightYear = 0 + removeExif = 0 + + for o, a in opts: + if o == "-h": + usage() + if o == "-f": + filename = a + if o == "-d": + try: + f = open(a) + description = f.read() + f.close() + except: + description = a + if o == "-c": + try: + f = open(a) + copyright = f.read() + f.close() + except: + copyright = a + if o == '-x': + removeExif = 1 + if o == '-s': + addCopyrightSymbol = 1 + if o == '-y': + addCopyrightYear = 1 + + if filename is None: + usage('Missing jpg filename') + if description and (len(description) <= 4 or len(description) > 60000): + usage('Description too short or too long') + if copyright and (len(copyright) <= 4 or len(copyright) > 60000): + usage('Copyright too short or too long') + if not description and not copyright and not removeExif: + usage('Nothing to do!') + + return filename, description, copyright, removeExif, addCopyrightSymbol, addCopyrightYear + +#--------------------------------------------------------------------------- +if __name__ == '__main__': + try: + filename, description, copyright, removeExif, addCopyrightSymbol, addCopyrightYear = parseArgs(sys.argv[1:]) + f = MinimalExifWriter(filename) + if description: + f.newImageDescription(description) + if copyright: + f.newCopyright(copyright, addCopyrightSymbol, addCopyrightYear) + if removeExif: + f.removeExif() + + f.process() + except ExifFormatException as ex: + sys.stderr.write("Exif format error: %s\n" % ex) + except SystemExit: + pass + except: + sys.stderr.write("Unable to process %s\n" % filename) + raise diff --git a/stegano/exifHeader.py b/stegano/exifHeader.py new file mode 100644 index 0000000..ec5af24 --- /dev/null +++ b/stegano/exifHeader.py @@ -0,0 +1,118 @@ +#!/usr/bin/env python +#-*- coding: utf-8 -*- + +# Stéganô - Stéganô is a basic Python Steganography module. +# Copyright (C) 2010-2013 Cédric Bonhomme - http://cedricbonhomme.org/ +# +# For more information : http://bitbucket.org/cedricbonhomme/stegano/ +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see + +__author__ = "Cedric Bonhomme" +__version__ = "$Revision: 0.1 $" +__date__ = "$Date: 2010/03/24 $" +__license__ = "GPLv3" + +# Thanks to: http://www.julesberman.info/spec2img.htm + +def hide(img, img_enc, copyright="http://bitbucket.org/cedricbonhomme/stegano", \ + secret_message = None, secret_file = None): + """ + """ + import shutil + import datetime + from zlib import compress + from zlib import decompress + from base64 import b64encode + from .exif.minimal_exif_writer import MinimalExifWriter + + if secret_file != None: + with open(secret_file, "r") as f: + secret_file_content = f.read() + text = "\nImage annotation date: " + text = text + str(datetime.date.today()) + text = text + "\nImage description:\n" + if secret_file != None: + text = compress(b64encode(text + secret_file_content)) + else: + text = compress(b64encode(text + secret_message)) + + try: + shutil.copy(img, img_enc) + except Exception as e: + print(("Impossible to copy image:", e)) + return + + f = MinimalExifWriter(img_enc) + f.removeExif() + f.newImageDescription(text) + f.newCopyright(copyright, addYear = 1) + f.process() + + +def reveal(img): + """ + """ + from base64 import b64decode + from zlib import decompress + from .exif.minimal_exif_reader import MinimalExifReader + try: + g = MinimalExifReader(img) + except: + print("Impossible to read description.") + return + print((b64decode(decompress(g.imageDescription())))) + print(("\nCopyright " + g.copyright())) + #print g.dateTimeOriginal()s + + +if __name__ == "__main__": + # Point of entry in execution mode. + from optparse import OptionParser + parser = OptionParser(version=__version__) + parser.add_option('--hide', action='store_true', default=False, + help="Hides a message in an image.") + parser.add_option('--reveal', action='store_true', default=False, + help="Reveals the message hided in an image.") + # Original image + parser.add_option("-i", "--input", dest="input_image_file", + help="Input image file.") + # Image containing the secret + parser.add_option("-o", "--output", dest="output_image_file", + help="Output image containing the secret.") + + # Secret raw message to hide + parser.add_option("-m", "--secret-message", dest="secret_message", + help="Your raw secret message to hide.") + + # Secret text file to hide. + parser.add_option("-f", "--secret-file", dest="secret_file", + help="Your secret textt file to hide.") + + parser.set_defaults(input_image_file = './pictures/Elisha-Cuthbert.jpg', + output_image_file = './pictures/Elisha-Cuthbert_enc.jpg', + secret_message = '', secret_file = '') + + (options, args) = parser.parse_args() + + if options.hide: + if options.secret_message != "" and options.secret_file == "": + hide(img=options.input_image_file, img_enc=options.output_image_file, \ + secret_message=options.secret_message) + elif options.secret_message == "" and options.secret_file != "": + hide(img=options.input_image_file, img_enc=options.output_image_file, \ + secret_file=options.secret_file) + + elif options.reveal: + reveal(img=options.input_image_file) \ No newline at end of file diff --git a/stegano/exifHeader/__init__.py b/stegano/exifHeader/__init__.py deleted file mode 100644 index 6fcb15f..0000000 --- a/stegano/exifHeader/__init__.py +++ /dev/null @@ -1,5 +0,0 @@ -#!/usr/bin/env python - -from .exifHeader import hide, reveal - -__all__ = ["hide", "reveal"] diff --git a/stegano/exifHeader/exifHeader.py b/stegano/exifHeader/exifHeader.py deleted file mode 100644 index 1fefa93..0000000 --- a/stegano/exifHeader/exifHeader.py +++ /dev/null @@ -1,161 +0,0 @@ -#!/usr/bin/env python -# Stegano - Stegano is a pure Python steganography module. -# Copyright (C) 2010-2025 Cédric Bonhomme - https://www.cedricbonhomme.org -# -# For more information : https://github.com/cedricbonhomme/Stegano -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see - -__author__ = "Cedric Bonhomme" -__version__ = "$Revision: 0.2.2 $" -__date__ = "$Date: 2016/05/26 $" -__revision__ = "$Date: 2017/01/18 $" -__license__ = "GPLv3" - -import piexif - -from stegano import tools - - -def hide( - input_image_file, - img_enc, - secret_message=None, - secret_file=None, - img_format=None, -): - """Hide a message (string) in an image.""" - from base64 import b64encode - from zlib import compress - - if secret_file is not None: - with open(secret_file, "rb") as f: - secret_message = f.read() - - try: - text = compress(b64encode(bytes(secret_message, "utf-8"))) - except Exception: - text = compress(b64encode(secret_message)) - - img = tools.open_image(input_image_file) - - if img_format is None: - img_format = img.format - - if "exif" in img.info: - exif_dict = piexif.load(img.info["exif"]) - else: - exif_dict = {} - exif_dict["0th"] = {} - exif_dict["0th"][piexif.ImageIFD.ImageDescription] = text - exif_bytes = piexif.dump(exif_dict) - img.save(img_enc, format=img_format, exif=exif_bytes) - img.close() - return img - - -def reveal(input_image_file): - """Find a message in an image.""" - from base64 import b64decode - from zlib import decompress - - img = tools.open_image(input_image_file) - - try: - if img.format in ["JPEG", "TIFF"]: - if "exif" in img.info: - exif_dict = piexif.load(img.info.get("exif", b"")) - description_key = piexif.ImageIFD.ImageDescription - encoded_message = exif_dict["0th"][description_key] - else: - encoded_message = b"" - else: - raise ValueError("Given file is neither JPEG nor TIFF.") - finally: - img.close() - - return b64decode(decompress(encoded_message)) - - -if __name__ == "__main__": - # Point of entry in execution mode. - # TODO: improve the management of arguments - from optparse import OptionParser - - parser = OptionParser(version=__version__) - parser.add_option( - "--hide", - action="store_true", - default=False, - help="Hides a message in an image.", - ) - parser.add_option( - "--reveal", - action="store_true", - default=False, - help="Reveals the message hided in an image.", - ) - # Original image - parser.add_option( - "-i", "--input", dest="input_image_file", help="Input image file." - ) - # Image containing the secret - parser.add_option( - "-o", - "--output", - dest="output_image_file", - help="Output image containing the secret.", - ) - - # Secret raw message to hide - parser.add_option( - "-m", - "--secret-message", - dest="secret_message", - help="Your raw secret message to hide.", - ) - - # Secret text file to hide. - parser.add_option( - "-f", - "--secret-file", - dest="secret_file", - help="Your secret text file to hide.", - ) - - parser.set_defaults( - input_image_file="./pictures/Elisha-Cuthbert.jpg", - output_image_file="./pictures/Elisha-Cuthbert_enc.jpg", - secret_message="", - secret_file="", - ) - - (options, args) = parser.parse_args() - - if options.hide: - if options.secret_message != "" and options.secret_file == "": - hide( - input_image_file=options.input_image_file, - img_enc=options.output_image_file, - secret_message=options.secret_message, - ) - elif options.secret_message == "" and options.secret_file != "": - hide( - input_image_file=options.input_image_file, - img_enc=options.output_image_file, - secret_file=options.secret_file, - ) - - elif options.reveal: - reveal(input_image_file=options.input_image_file) diff --git a/stegano/generators.py b/stegano/generators.py new file mode 100644 index 0000000..25a3cc4 --- /dev/null +++ b/stegano/generators.py @@ -0,0 +1,155 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# Stéganô - Stéganô is a basic Python Steganography module. +# Copyright (C) 2010-2013 Cédric Bonhomme - http://cedricbonhomme.org/ +# +# For more information : http://bitbucket.org/cedricbonhomme/stegano/ +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see + +__author__ = "Cedric Bonhomme" +__version__ = "$Revision: 0.2 $" +__date__ = "$Date: 2011/12/28 $" +__revision__ = "$Date: 2012/12/14 $" +__license__ = "GPLv3" + +import math +import itertools + +def identity(): + """ + f(x) = x + """ + n = 0 + while True: + yield n + n += 1 + +def Dead_Man_Walking(): + n = 0 + while True: + yield n + 7 + n += 2 + +def OEIS_A000217(): + """ + http://oeis.org/A000217 + Triangular numbers: a(n) = C(n+1,2) = n(n+1)/2 = 0+1+2+...+n. + """ + n = 0 + while True: + yield (n*(n+1))//2 + n += 1 + +def fermat(): + """ + Generate the n-th Fermat Number. + """ + y = 5 + while True: + yield y + y = pow(y-1,2)+1 + +def mersenne(): + """ + Generate 2^n-1. + """ + y = 1 + while True: + yield y + y = 2*y + 1 + +def eratosthenes(): + """ + Generate the prime numbers with the sieve of Eratosthenes. + """ + d = {} + for i in itertools.count(2): + if i in d: + for j in d[i]: + d[i + j] = d.get(i + j, []) + [j] + del d[i] + else: + d[i * i] = [i] + yield i + +def eratosthenes_composite(): + """ + Generate the composite numbers with the sieve of Eratosthenes. + """ + p1 = 3 + for p2 in eratosthenes(): + for n in range(p1 + 1, p2): + yield n + p1 = p2 + +def carmichael(): + for m in eratosthenes_composite(): + for a in range(2, m): + if pow(a,m,m) != a: + break + else: + yield m + +def ackermann(m, n): + """ + Ackermann number. + """ + if m == 0: + return n + 1 + elif n == 0: + return ackermann(m - 1, 1) + else: + return ackermann(m - 1, ackermann(m, n - 1)) + +def fibonacci(): + """ + A generator for Fibonacci numbers, goes to next number in series on each call. + This generator start at 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584, 4181, 6765, 10946, ... + See: http://oeis.org/A000045 + """ + a, b = 1, 2 + while True: + yield a + a, b = b, a + b + +def syracuse(l=15): + """ + Generate the sequence of Syracuse. + """ + y = l + while True: + yield y + q,r = divmod(y,2) + if r == 0: + y = q + else: + y = 3*y + 1 + +def log_gen(): + """ + Logarithmic generator. + """ + y = 1 + while True: + adder = max(1, math.pow(10, int(math.log10(y)))) + yield int(y) + y = y + adder + +if __name__ == "__main__": + # Point of entry in execution mode. + f = fibonacci() + for x in range(13): + print(next(f), end=' ') # 0 1 1 2 3 5 8 13 21 34 55 89 144 diff --git a/stegano/lsb/__init__.py b/stegano/lsb/__init__.py deleted file mode 100644 index 81b5525..0000000 --- a/stegano/lsb/__init__.py +++ /dev/null @@ -1,5 +0,0 @@ -#!/usr/bin/env python - -from .lsb import hide, reveal - -__all__ = ["hide", "reveal"] diff --git a/stegano/lsb/generators.py b/stegano/lsb/generators.py deleted file mode 100644 index 3780fc9..0000000 --- a/stegano/lsb/generators.py +++ /dev/null @@ -1,254 +0,0 @@ -#!/usr/bin/env python -# Stegano - Stegano is a pure Python steganography module. -# Copyright (C) 2010-2025 Cédric Bonhomme - https://www.cedricbonhomme.org -# -# For more information : https://github.com/cedricbonhomme/Stegano -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see - -__author__ = "Cedric Bonhomme" -__version__ = "$Revision: 0.3 $" -__date__ = "$Date: 2011/12/28 $" -__revision__ = "$Date: 2021/11/29 $" -__license__ = "GPLv3" - -import itertools -import math -from typing import Any, Dict, Iterator, List - -import cv2 -import numpy as np - - -def identity() -> Iterator[int]: - """f(x) = x""" - n = 0 - while True: - yield n - n += 1 - - -def triangular_numbers() -> Iterator[int]: - """Triangular numbers: a(n) = C(n+1,2) = n(n+1)/2 = 0+1+2+...+n. - http://oeis.org/A000217 - """ - n = 0 - while True: - yield (n * (n + 1)) // 2 - n += 1 - - -def fermat() -> Iterator[int]: - """Generate the n-th Fermat Number. - https://oeis.org/A000215 - """ - y = 3 - while True: - yield y - y = pow(y - 1, 2) + 1 - - -def mersenne() -> Iterator[int]: - """Generate 2^p - 1, where p is prime. - https://oeis.org/A001348 - """ - prime_numbers = eratosthenes() - while True: - yield 2 ** next(prime_numbers) - 1 - - -def eratosthenes() -> Iterator[int]: - """Generate the prime numbers with the sieve of Eratosthenes. - https://oeis.org/A000040 - """ - d: Dict[int, List[int]] = {} - for i in itertools.count(2): - if i in d: - for j in d[i]: - d[i + j] = d.get(i + j, []) + [j] - del d[i] - else: - d[i * i] = [i] - yield i - - -def composite() -> Iterator[int]: - """Generate the composite numbers using the sieve of Eratosthenes. - https://oeis.org/A002808 - """ - p1 = 3 - for p2 in eratosthenes(): - yield from range(p1 + 1, p2) - p1 = p2 - - -def carmichael() -> Iterator[int]: - """Composite numbers n such that a^(n-1) == 1 (mod n) for every a coprime - to n. - https://oeis.org/A002997 - """ - for m in composite(): - for a in range(2, m): - if pow(a, m, m) != a: - break - else: - yield m - - -def ackermann_slow(m: int, n: int) -> int: - """Ackermann number.""" - if m == 0: - return n + 1 - elif n == 0: - return ackermann_slow(m - 1, 1) - else: - return ackermann_slow(m - 1, ackermann_slow(m, n - 1)) - - -def ackermann_naive(m: int) -> Iterator[int]: - """Naive Ackermann encapsulated in a generator.""" - n = 0 - while True: - yield ackermann_slow(m, n) - n += 1 - - -def ackermann_fast(m: int, n: int) -> int: - """Ackermann number.""" - while m >= 4: - if n == 0: - n = 1 - else: - n = ackermann_fast(m, n - 1) - m -= 1 - if m == 3: - return (1 << n + 3) - 3 - elif m == 2: - return (n << 1) + 3 - elif m == 1: - return n + 2 - else: - return n + 1 - - -def ackermann(m: int) -> Iterator[int]: - """Ackermann encapsulated in a generator.""" - n = 0 - while True: - yield ackermann_fast(m, n) - n += 1 - - -def fibonacci() -> Iterator[int]: - """Generate the sequence of Fibonacci. - https://oeis.org/A000045 - """ - a, b = 1, 2 - while True: - yield a - a, b = b, a + b - - -def log_gen() -> Iterator[int]: - """Logarithmic generator.""" - y = 1 - while True: - adder = max(1, math.pow(10, int(math.log10(y)))) - yield int(y) - y = y + int(adder) - - -polys = { - 2: [2, 1], - 3: [3, 1], - 4: [4, 1], - 5: [5, 2], - 6: [6, 1], - 7: [7, 1], - 8: [8, 4, 3, 2], - 9: [9, 4], - 10: [10, 3], - 11: [11, 2], - 12: [12, 6, 4, 1], - 13: [13, 4, 3, 1], - 14: [14, 8, 6, 1], - 15: [15, 1], - 16: [16, 12, 3, 1], - 17: [17, 3], - 18: [18, 7], - 19: [19, 5, 2, 1], - 20: [20, 3], - 21: [21, 2], - 22: [22, 1], - 23: [23, 5], - 24: [24, 7, 2, 1], - 25: [25, 3], - 26: [26, 6, 2, 1], - 27: [27, 5, 2, 1], - 28: [28, 3], - 29: [29, 2], - 30: [30, 23, 2, 1], - 31: [31, 3], -} - - -def LFSR(m: int) -> Iterator[int]: - """LFSR generator of the given size - https://en.wikipedia.org/wiki/Linear-feedback_shift_register - """ - n: int = m.bit_length() - 1 - # Set initial state to {1 0 0 ... 0} - state: List[int] = [0] * n - state[0] = 1 - feedback: int = 0 - poly: List[int] = polys[n] - while True: - # Compute the feedback bit - feedback = 0 - for i in range(len(poly)): - feedback = feedback ^ state[poly[i] - 1] - # Roll the registers - state.pop() - # Add the feedback bit - state.insert(0, feedback) - # Convert the registers to an int - out = sum(e * (2**i) for i, e in enumerate(state)) - yield out - - -def shi_tomashi( - image_path: str, - max_corners: int = 100, - quality: float = 0.01, - min_distance: float = 10.0, -) -> Iterator[int]: - """Shi-Tomachi corner generator of the given points - https://docs.opencv.org/4.x/d4/d8c/tutorial_py_shi_tomasi.html - """ - image = cv2.imread(image_path) - gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY) - corners: np.ndarray = cv2.goodFeaturesToTrack( - gray, max_corners, quality, min_distance - ) - corners_int: np.ndarray[Any, np.dtype[np.signedinteger[Any]]] = np.array( - np.intp(corners) - ) - i = 0 - while True: - x, y = corners_int[i].ravel() - # Compute the pixel number with top left of image as origin - # using coordinates of the corner. - # (y * number of pixels a row) + pixels left in last row - yield (y * image.shape[1]) + x - i += 1 diff --git a/stegano/lsb/lsb.py b/stegano/lsb/lsb.py deleted file mode 100644 index 918d939..0000000 --- a/stegano/lsb/lsb.py +++ /dev/null @@ -1,90 +0,0 @@ -#!/usr/bin/env python -# Stegano - Stegano is a pure Python steganography module. -# Copyright (C) 2010-2025 Cédric Bonhomme - https://www.cedricbonhomme.org -# -# For more information : https://github.com/cedricbonhomme/Stegano -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see - -__author__ = "Cedric Bonhomme" -__version__ = "$Revision: 0.7 $" -__date__ = "$Date: 2016/03/13 $" -__revision__ = "$Date: 2019/05/31 $" -__license__ = "GPLv3" - -from typing import IO, Iterator, Union - -from stegano import tools - -from .generators import identity - - -def hide( - image: Union[str, IO[bytes]], - message: str, - generator: Union[None, Iterator[int]] = None, - shift: int = 0, - encoding: str = "UTF-8", - auto_convert_rgb: bool = False, -): - """Hide a message (string) in an image with the - LSB (Least Significant Bit) technique. - """ - hider = tools.Hider(image, message, encoding, auto_convert_rgb) - width = hider.encoded_image.width - - if not generator: - generator = identity() - - while shift != 0: - next(generator) - shift -= 1 - - while hider.encode_another_pixel(): - generated_number = next(generator) - - col = generated_number % width - row = int(generated_number / width) - - hider.encode_pixel((col, row)) - - return hider.encoded_image - - -def reveal( - encoded_image: Union[str, IO[bytes]], - generator: Union[None, Iterator[int]] = None, - shift: int = 0, - encoding: str = "UTF-8", - close_file: bool = True, -): - """Find a message in an image (with the LSB technique).""" - revealer = tools.Revealer(encoded_image, encoding, close_file) - width = revealer.encoded_image.width - - if not generator: - generator = identity() - - while shift != 0: - next(generator) - shift -= 1 - - while True: - generated_number = next(generator) - - col = generated_number % width - row = int(generated_number / width) - - if revealer.decode_pixel((col, row)): - return revealer.secret_message diff --git a/stegano/red/__init__.py b/stegano/red/__init__.py deleted file mode 100644 index c599723..0000000 --- a/stegano/red/__init__.py +++ /dev/null @@ -1,5 +0,0 @@ -#!/usr/bin/env python - -from .red import hide, reveal - -__all__ = ["hide", "reveal"] diff --git a/stegano/red/red.py b/stegano/red/red.py deleted file mode 100755 index e6e2429..0000000 --- a/stegano/red/red.py +++ /dev/null @@ -1,94 +0,0 @@ -#!/usr/bin/env python -# Stegano - Stéganô is a basic Python Steganography module. -# Copyright (C) 2010-2024 Cédric Bonhomme - https://www.cedricbonhomme.org -# -# For more information : https://github.com/cedricbonhomme/Stegano -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see - -__author__ = "Cedric Bonhomme" -__version__ = "$Revision: 0.2 $" -__date__ = "$Date: 2010/10/01 $" -__revision__ = "$Date: 2017/02/06 $" -__license__ = "GPLv3" - -from typing import IO, Union, cast - -from stegano import tools - - -def hide(input_image: Union[str, IO[bytes]], message: str): - """ - Hide a message (string) in an image. - - Use the red portion of a pixel (r, g, b) tuple to - hide the message string characters as ASCII values. - The red value of the first pixel is used for message_length of the string. - """ - message_length = len(message) - assert message_length != 0, "message message_length is zero" - assert message_length < 255, "message is too long" - img = tools.open_image(input_image) - # Ensure image mode is RGB - if img.mode != "RGB": - img = img.convert("RGB") - # Use a copy of image to hide the text in - encoded = img.copy() - width, height = img.size - index = 0 - for row in range(height): - for col in range(width): - pixel = cast(tuple[int, int, int], img.getpixel((col, row))) - r, g, b = pixel - # first value is message_length of message - if row == 0 and col == 0 and index < message_length: - asc = message_length - elif index <= message_length: - c = message[index - 1] - asc = ord(c) - else: - asc = r - encoded.putpixel((col, row), (asc, g, b)) - index += 1 - img.close() - return encoded - - -def reveal(input_image: Union[str, IO[bytes]]): - """ - Find a message in an image. - - Check the red portion of an pixel (r, g, b) tuple for - hidden message characters (ASCII values). - The red value of the first pixel is used for message_length of string. - """ - img = tools.open_image(input_image) - # Ensure image mode is RGB - if img.mode != "RGB": - img = img.convert("RGB") - width, height = img.size - message = "" - index = 0 - for row in range(height): - for col in range(width): - pixel = cast(tuple[int, int, int], img.getpixel((col, row))) - r, g, b = pixel - # First pixel r value is length of message - if row == 0 and col == 0: - message_length = r - elif index <= message_length: - message += chr(r) - index += 1 - img.close() - return message diff --git a/stegano/slsb.py b/stegano/slsb.py new file mode 100755 index 0000000..4073e3f --- /dev/null +++ b/stegano/slsb.py @@ -0,0 +1,163 @@ +#!/usr/bin/env python +#-*- coding: utf-8 -*- + +# Stéganô - Stéganô is a basic Python Steganography module. +# Copyright (C) 2010-2011 Cédric Bonhomme - http://cedricbonhomme.org/ +# +# For more information : http://bitbucket.org/cedricbonhomme/stegano/ +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see + +__author__ = "Cedric Bonhomme" +__version__ = "$Revision: 0.2 $" +__date__ = "$Date: 2010/03/24 $" +__license__ = "GPLv3" + +import sys + +from PIL import Image + +from . import tools + +def hide(input_image_file, message): + """ + Hide a message (string) in an image with the + LSB (Least Significant Bit) technique. + """ + img = Image.open(input_image_file) + encoded = img.copy() + width, height = img.size + index = 0 + + message = str(len(message)) + ":" + message + #message_bits = tools.a2bits(message) + message_bits = "".join(tools.a2bits_list(message)) + + npixels = width * height + if len(message_bits) > npixels * 3: + raise Exception("""The message you want to hide is too long (%s > %s).""" % (len(message_bits), npixels * 3)) + + for row in range(height): + for col in range(width): + + if index + 3 <= len(message_bits) : + + # Get the colour component. + (r, g, b) = img.getpixel((col, row)) + + # Change the Least Significant Bit of each colour component. + r = tools.setlsb(r, message_bits[index]) + g = tools.setlsb(g, message_bits[index+1]) + b = tools.setlsb(b, message_bits[index+2]) + + # Save the new pixel + encoded.putpixel((col, row), (r, g , b)) + + index += 3 + + return encoded + +def reveal(input_image_file): + """ + Find a message in an image + (with the LSB technique). + """ + img = Image.open(input_image_file) + width, height = img.size + buff, count = 0, 0 + bitab = [] + limit = None + for row in range(height): + for col in range(width): + + # color = [r, g, b] + for color in img.getpixel((col, row)): + buff += (color&1)<<(7-count) + count += 1 + if count == 8: + bitab.append(chr(buff)) + buff, count = 0, 0 + if bitab[-1] == ":" and limit == None: + try: + limit = int("".join(bitab[:-1])) + except: + pass + + if len(bitab)-len(str(limit))-1 == limit : + return "".join(bitab)[len(str(limit))+1:] + return "" + +def write(image, output_image_file): + """ + """ + try: + image.save(output_image_file) + except Exception as e: + # If hide() returns an error (Too long message). + print(e) + +if __name__ == '__main__': + # Point of entry in execution mode. + from optparse import OptionParser + parser = OptionParser(version=__version__) + parser.add_option('--hide', action='store_true', default=False, + help="Hides a message in an image.") + parser.add_option('--reveal', action='store_true', default=False, + help="Reveals the message hided in an image.") + # Original image + parser.add_option("-i", "--input", dest="input_image_file", + help="Input image file.") + # Image containing the secret + parser.add_option("-o", "--output", dest="output_image_file", + help="Output image containing the secret.") + + # Non binary secret message to hide + parser.add_option("-m", "--secret-message", dest="secret_message", + help="Your secret message to hide (non binary).") + + # Binary secret to hide (OGG, executable, etc.) + parser.add_option("-f", "--secret-file", dest="secret_file", + help="Your secret to hide (Text or any binary file).") + # Output for the binary binary secret. + parser.add_option("-b", "--binary", dest="secret_binary", + help="Output for the binary secret (Text or any binary file).") + + parser.set_defaults(input_image_file = './pictures/Lenna.png', + output_image_file = './pictures/Lenna_enc.png', + secret_message = '', secret_file = '', secret_binary = "") + + (options, args) = parser.parse_args() + + + if options.hide: + if options.secret_message != "" and options.secret_file == "": + secret = options.secret_message + elif options.secret_message == "" and options.secret_file != "": + secret = tools.binary2base64(options.secret_file) + + img_encoded = hide(options.input_image_file, secret) + try: + img_encoded.save(options.output_image_file) + except Exception as e: + # If hide() returns an error (Too long message). + print(e) + + elif options.reveal: + secret = reveal(options.input_image_file) + if options.secret_binary != "": + data = tools.base642binary(secret) + with open(options.secret_binary, "w") as f: + f.write(data) + else: + print(secret) diff --git a/stegano/slsbset.py b/stegano/slsbset.py new file mode 100644 index 0000000..9788100 --- /dev/null +++ b/stegano/slsbset.py @@ -0,0 +1,183 @@ +#!/usr/bin/env python +#-*- coding: utf-8 -*- + +# Stéganô - Stéganô is a basic Python Steganography module. +# Copyright (C) 2010-2013 Cédric Bonhomme - http://cedricbonhomme.org/ +# +# For more information : http://bitbucket.org/cedricbonhomme/stegano/ +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see + +__author__ = "Cedric Bonhomme" +__version__ = "$Revision: 0.4 $" +__date__ = "$Date: 2011/12/28 $" +__license__ = "GPLv3" + +import sys + +from PIL import Image + +from . import tools +from . import generators + +def hide(input_image_file, message, generator_function): + """ + Hide a message (string) in an image with the + LSB (Least Significant Bit) technique. + """ + img = Image.open(input_image_file) + img_list = list(img.getdata()) + width, height = img.size + index = 0 + + message = str(len(message)) + ":" + message + #message_bits = tools.a2bits(message) + message_bits = "".join(tools.a2bits_list(message)) + + npixels = width * height + if len(message_bits) > npixels * 3: + raise Exception("""The message you want to hide is too long (%s > %s).""" % (len(message_bits), npixels * 3)) + + generator = getattr(generators, generator_function)() + + while index + 3 <= len(message_bits) : + generated_number = next(generator) + (r, g, b) = img_list[generated_number] + + # Change the Least Significant Bit of each colour component. + r = tools.setlsb(r, message_bits[index]) + g = tools.setlsb(g, message_bits[index+1]) + b = tools.setlsb(b, message_bits[index+2]) + + # Save the new pixel + img_list[generated_number] = (r, g , b) + + index += 3 + + # create empty new image of appropriate format + encoded = Image.new('RGB', (img.size)) + + # insert saved data into the image + encoded.putdata(img_list) + + return encoded + + + +def reveal(input_image_file, generator_function): + """ + Find a message in an image + (with the LSB technique). + """ + img = Image.open(input_image_file) + img_list = list(img.getdata()) + width, height = img.size + buff, count = 0, 0 + bitab = [] + limit = None + + generator = getattr(generators, generator_function)() + + while True: + generated_number = next(generator) + # color = [r, g, b] + for color in img_list[generated_number]: + buff += (color&1)<<(7-count) + count += 1 + if count == 8: + bitab.append(chr(buff)) + buff, count = 0, 0 + if bitab[-1] == ":" and limit == None: + try: + limit = int("".join(bitab[:-1])) + except: + pass + if len(bitab)-len(str(limit))-1 == limit : + return "".join(bitab)[len(str(limit))+1:] + + return "" + +def write(image, output_image_file): + """ + """ + try: + image.save(output_image_file) + except Exception as e: + # If hide() returns an error (Too long message). + print(e) + +if __name__ == '__main__': + # Point of entry in execution mode. + from optparse import OptionParser + parser = OptionParser(version=__version__) + parser.add_option('--hide', action='store_true', default=False, + help="Hides a message in an image.") + parser.add_option('--reveal', action='store_true', default=False, + help="Reveals the message hided in an image.") + # Original image + parser.add_option("-i", "--input", dest="input_image_file", + help="Input image file.") + + # Generator + parser.add_option("-g", "--generator", dest="generator_function", + help="Generator") + + # Image containing the secret + parser.add_option("-o", "--output", dest="output_image_file", + help="Output image containing the secret.") + + # Non binary secret message to hide + parser.add_option("-m", "--secret-message", dest="secret_message", + help="Your secret message to hide (non binary).") + + # Binary secret to hide (OGG, executable, etc.) + parser.add_option("-f", "--secret-file", dest="secret_file", + help="Your secret to hide (Text or any binary file).") + # Output for the binary binary secret. + parser.add_option("-b", "--binary", dest="secret_binary", + help="Output for the binary secret (Text or any binary file).") + + parser.set_defaults(input_image_file = './pictures/Lenna.png', + generator_function = 'fermat', + output_image_file = './pictures/Lenna_enc.png', + secret_message = '', secret_file = '', secret_binary = "") + + (options, args) = parser.parse_args() + + + if options.hide: + if options.secret_message != "" and options.secret_file == "": + secret = options.secret_message + elif options.secret_message == "" and options.secret_file != "": + secret = tools.binary2base64(options.secret_file) + + img_encoded = hide(options.input_image_file, secret, options.generator_function) + try: + img_encoded.save(options.output_image_file) + except Exception as e: + # If hide() returns an error (Too long message). + print(e) + + elif options.reveal: + try: + secret = reveal(options.input_image_file, options.generator_function) + except IndexError: + print("Impossible to detect message.") + exit(0) + if options.secret_binary != "": + data = tools.base642binary(secret) + with open(options.secret_binary, "w") as f: + f.write(data) + else: + print(secret) diff --git a/stegano/steganalysis/__init__.py b/stegano/steganalysis/__init__.py deleted file mode 100644 index 4265cc3..0000000 --- a/stegano/steganalysis/__init__.py +++ /dev/null @@ -1 +0,0 @@ -#!/usr/bin/env python diff --git a/stegano/steganalysis/statistics.py b/stegano/steganalysis/statistics.py deleted file mode 100644 index 52cb296..0000000 --- a/stegano/steganalysis/statistics.py +++ /dev/null @@ -1,52 +0,0 @@ -#!/usr/bin/env python -# Stegano - Stegano is a pure Python steganography module. -# Copyright (C) 2010-2025 Cédric Bonhomme - https://www.cedricbonhomme.org -# -# For more information : https://github.com/cedricbonhomme/Stegano -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see - -__author__ = "Cedric Bonhomme" -__version__ = "$Revision: 0.2 $" -__date__ = "$Date: 2010/10/01 $" -__revision__ = "$Date: 2021/11/01 $" -__license__ = "GPLv3" - -import typing -from collections import Counter, OrderedDict - - -def steganalyse(img): - """ - Steganlysis of the LSB technique. - """ - width, height = img.size - colours_counter: typing.Counter[int] = Counter() - for row in range(height): - for col in range(width): - r, g, b = img.getpixel((col, row)) - colours_counter[r] += 1 - - most_common = colours_counter.most_common(10) - dict_colours = OrderedDict( - sorted(list(colours_counter.items()), key=lambda t: t[1]) - ) - - colours: float = 0 - for colour in list(dict_colours.keys()): - colours += colour - colours = colours / len(dict_colours) - - # return colours.most_common(10) - return list(dict_colours.keys())[:30], most_common diff --git a/stegano/steganalysis/parity.py b/stegano/steganalysisParity.py similarity index 51% rename from stegano/steganalysis/parity.py rename to stegano/steganalysisParity.py index 36cb42a..3dc858e 100644 --- a/stegano/steganalysis/parity.py +++ b/stegano/steganalysisParity.py @@ -1,8 +1,10 @@ #!/usr/bin/env python -# Stegano - Stegano is a pure Python steganography module. -# Copyright (C) 2010-2025 Cédric Bonhomme - https://www.cedricbonhomme.org +#-*- coding: utf-8 -*- + +# Stéganô - Stéganô is a basic Python Steganography module. +# Copyright (C) 2010-2013 Cédric Bonhomme - http://cedricbonhomme.org/ # -# For more information : https://github.com/cedricbonhomme/Stegano +# For more information : http://bitbucket.org/cedricbonhomme/stegano/ # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -18,28 +20,22 @@ # along with this program. If not, see __author__ = "Cedric Bonhomme" -__version__ = "$Revision: 0.9.4 $" +__version__ = "$Revision: 0.1 $" __date__ = "$Date: 2010/10/01 $" -__revision__ = "$Date: 2019/06/06 $" __license__ = "GPLv3" -from typing import cast - from PIL import Image - -def steganalyse(img: Image.Image) -> Image.Image: +def steganalyse(img): """ Steganlysis of the LSB technique. """ - encoded = Image.new(img.mode, (img.size)) + encoded = img.copy() width, height = img.size + bits = "" for row in range(height): for col in range(width): - if pixel := cast(tuple[int, int, int], img.getpixel((col, row))): - r, g, b = pixel[0:3] - else: - raise Exception("Error during steganlysis.") + r, g, b = img.getpixel((col, row)) if r % 2 == 0: r = 0 else: @@ -52,5 +48,21 @@ def steganalyse(img: Image.Image) -> Image.Image: b = 0 else: b = 255 - encoded.putpixel((col, row), (r, g, b)) + encoded.putpixel((col, row), (r, g , b)) return encoded + +if __name__ == '__main__': + # Point of entry in execution mode. + from optparse import OptionParser + parser = OptionParser() + parser.add_option("-i", "--input", dest="input_image_file", + help="Image file") + parser.add_option("-o", "--output", dest="output_image_file", + help="Image file") + parser.set_defaults(input_image_file = './pictures/Lenna.png', + output_image_file = './pictures/Lenna_steganalysed.png') + (options, args) = parser.parse_args() + + input_image_file = Image.open(options.input_image_file) + output_image = steganalyse(input_image_file) + output_image.save(options.output_image_file) \ No newline at end of file diff --git a/stegano/steganalysisStatistics.py b/stegano/steganalysisStatistics.py new file mode 100644 index 0000000..acc4359 --- /dev/null +++ b/stegano/steganalysisStatistics.py @@ -0,0 +1,70 @@ +#!/usr/bin/env python +#-*- coding: utf-8 -*- + +# Stéganô - Stéganô is a basic Python Steganography module. +# Copyright (C) 2010-2013 Cédric Bonhomme - http://cedricbonhomme.org/ +# +# For more information : http://bitbucket.org/cedricbonhomme/stegano/ +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see + +__author__ = "Cedric Bonhomme" +__version__ = "$Revision: 0.1 $" +__date__ = "$Date: 2010/10/01 $" +__license__ = "GPLv3" + +import operator + +from PIL import Image +from collections import Counter +from collections import OrderedDict + +def steganalyse(img): + """ + Steganlysis of the LSB technique. + """ + encoded = img.copy() + width, height = img.size + colours = Counter() + for row in range(height): + for col in range(width): + r, g, b = img.getpixel((col, row)) + colours[r] += 1 + + most_common = colours.most_common(10) + dict_colours = OrderedDict(sorted(list(colours.items()), key=lambda t: t[1])) + + colours = 0 + for colour in list(dict_colours.keys()): + colours += colour + colours = colours / len(dict_colours) + + #return colours.most_common(10) + return list(dict_colours.keys())[:30], most_common + +if __name__ == '__main__': + # Point of entry in execution mode. + from optparse import OptionParser + parser = OptionParser() + parser.add_option("-i", "--input", dest="input_image_file", + help="Image file.") + parser.add_option("-o", "--output", dest="output_image_file", + help="Image file.") + parser.set_defaults(input_image_file = './pictures/Lenna.png', + output_image_file = './pictures/Lenna_steganalysed.png') + (options, args) = parser.parse_args() + + input_image_file = Image.open(options.input_image_file) + output_image = steganalyse(input_image_file) + soutput_image.save(options.output_image_file) \ No newline at end of file diff --git a/stegano/tools.py b/stegano/tools.py index fc018f7..c43843a 100755 --- a/stegano/tools.py +++ b/stegano/tools.py @@ -1,8 +1,10 @@ #!/usr/bin/env python -# Stegano - Stegano is a pure Python steganography module. -# Copyright (C) 2010-2025 Cédric Bonhomme - https://www.cedricbonhomme.org +# -*- coding: utf-8 -*- + +# Stéganô - Stéganô is a basic Python Steganography module. +# Copyright (C) 2010-2013 Cédric Bonhomme - http://cedricbonhomme.org/ # -# For more information : https://github.com/cedricbonhomme/Stegano +# For more information : http://bitbucket.org/cedricbonhomme/stegano/ # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -18,32 +20,25 @@ # along with this program. If not, see __author__ = "Cedric Bonhomme" -__version__ = "$Revision: 0.3 $" +__version__ = "$Revision: 0.1 $" __date__ = "$Date: 2010/10/01 $" -__revision__ = "$Date: 2017/05/04 $" __license__ = "GPLv3" import base64 -import itertools from functools import reduce -from typing import IO, List, Union, cast -from PIL import Image - -ENCODINGS = {"UTF-8": 8, "UTF-32LE": 32} - - -def a2bits(chars: str) -> str: - """Converts a string to its bits representation as a string of 0's and 1's. +def a2bits(chars): + """ + Converts a string to its bits representation as a string of 0's and 1's. >>> a2bits("Hello World!") '010010000110010101101100011011000110111100100000010101110110111101110010011011000110010000100001' """ - return bin(reduce(lambda x, y: (x << 8) + y, (ord(c) for c in chars), 1))[3:] + return bin(reduce(lambda x, y : (x<<8)+y, (ord(c) for c in chars), 1))[3:] - -def a2bits_list(chars: str, encoding: str = "UTF-8") -> List[str]: - """Convert a string to its bits representation as a list of 0's and 1's. +def a2bits_list(chars): + """ + Convert a string to its bits representation as a list of 0's and 1's. >>> a2bits_list("Hello World!") ['01001000', @@ -61,170 +56,55 @@ def a2bits_list(chars: str, encoding: str = "UTF-8") -> List[str]: >>> "".join(a2bits_list("Hello World!")) '010010000110010101101100011011000110111100100000010101110110111101110010011011000110010000100001' """ - return [bin(ord(x))[2:].rjust(ENCODINGS[encoding], "0") for x in chars] + return [bin(ord(x))[2:].rjust(8,"0") for x in chars] +def bs(s): + """ + Converts an int to its bits representation as a string of 0's and 1's. + """ + return str(s) if s<=1 else bs(s>>1) + str(s&1) -def bs(s: int) -> str: - """Converts an int to its bits representation as a string of 0's and 1's.""" - return str(s) if s <= 1 else bs(s >> 1) + str(s & 1) - - -def setlsb(component: int, bit: str) -> int: - """Set Least Significant Bit of a colour component.""" +def setlsb(component, bit): + """ + Set Least Significant Bit of a colour component. + """ return component & ~1 | int(bit) - -def n_at_a_time(items: List[int], n: int, fillvalue: str): - """Returns an iterator which groups n items at a time. +def n_at_a_time(items, n, fillvalue): + """ + Returns an iterator which groups n items at a time. Any final partial tuple will be padded with the fillvalue >>> list(n_at_a_time([1, 2, 3, 4, 5], 2, 'X')) [(1, 2), (3, 4), (5, 'X')] """ it = iter(items) - return itertools.zip_longest(*[it] * n, fillvalue=fillvalue) + return its.izip_longest(*[it] * n, fillvalue=fillvalue) - -def binary2base64(binary_file: str) -> str: - """Convert a binary file (OGG, executable, etc.) to a +def binary2base64(binary_file): + """ + Convert a binary file (OGG, executable, etc.) to a printable string. """ # Use mode = "rb" to read binary file - with open(binary_file, "rb") as bin_file: - encoded_string = base64.b64encode(bin_file.read()) - return encoded_string.decode() + fin = open(binary_file, "rb") + binary_data = fin.read() + fin.close() + # Encode binary to base64 string (printable) + return base64.b64encode(binary_data) + + """fout = open(output_file, "w") + fout.write(b64_data) + fout.close""" -def base642binary(b64_fname: str) -> bytes: - """Convert a printable string to a binary file.""" - b64_fname += "===" - return base64.b64decode(b64_fname) - - -def open_image(fname_or_instance: Union[str, IO[bytes], Image.Image]) -> Image.Image: - """Opens an image and returns it. - - :param fname_or_instance: Can be a path to the image (str), - a file-like object (IO[bytes]), - or a PIL Image instance. +def base642binary(b64_fname): """ - if isinstance(fname_or_instance, Image.Image): - return fname_or_instance - - return Image.open(fname_or_instance) - - -class Hider: - def __init__( - self, - input_image: Union[str, IO[bytes]], - message: str, - encoding: str = "UTF-8", - auto_convert_rgb: bool = False, - ): - self._index = 0 - - message_length = len(message) - assert message_length != 0, "message length is zero" - - image = open_image(input_image) - - if image.mode not in ["RGB", "RGBA"]: - if not auto_convert_rgb: - print(f"The mode of the image is not RGB. Mode is {image.mode}") - answer = input("Convert the image to RGB ? [Y / n]\n") or "Y" - if answer.lower() == "n": - raise Exception("Not a RGB image.") - - image = image.convert("RGB") - - self.encoded_image = image.copy() - image.close() - - message = str(message_length) + ":" + str(message) - self._message_bits = "".join(a2bits_list(message, encoding)) - self._message_bits += "0" * ((3 - (len(self._message_bits) % 3)) % 3) - - width, height = self.encoded_image.size - npixels = width * height - self._len_message_bits = len(self._message_bits) - - if self._len_message_bits > npixels * 3: - raise Exception( - f"The message you want to hide is too long: {message_length}" - ) - - def encode_another_pixel(self): - return True if self._index + 3 <= self._len_message_bits else False - - def encode_pixel(self, coordinate: tuple): - # Determine expected pixel format based on mode - if self.encoded_image.mode == "RGBA": - r, g, b, *a = cast( - tuple[int, int, int, int], self.encoded_image.getpixel(coordinate) - ) - else: - r, g, b, *a = cast( - tuple[int, int, int], self.encoded_image.getpixel(coordinate) - ) - - # Change the Least Significant Bit of each colour component. - r = setlsb(r, self._message_bits[self._index]) - g = setlsb(g, self._message_bits[self._index + 1]) - b = setlsb(b, self._message_bits[self._index + 2]) - - # Save the new pixel - if self.encoded_image.mode == "RGBA": - self.encoded_image.putpixel(coordinate, (r, g, b, *a)) - else: - self.encoded_image.putpixel(coordinate, (r, g, b)) - - self._index += 3 - - -class Revealer: - def __init__( - self, - encoded_image: Union[str, IO[bytes]], - encoding: str = "UTF-8", - close_file: bool = True, - ): - self.encoded_image = open_image(encoded_image) - self._encoding_length = ENCODINGS[encoding] - self._buff, self._count = 0, 0 - self._bitab: List[str] = [] - self._limit: Union[None, int] = None - self.secret_message = "" - self.close_file = close_file - - def decode_pixel(self, coordinate: tuple): - # Tell mypy that this will be a 3- or 4-tuple of ints - pixel = cast( - tuple[int, int, int] | tuple[int, int, int, int], - self.encoded_image.getpixel(coordinate), - ) - - if self.encoded_image.mode == "RGBA": - pixel = pixel[:3] # ignore the alpha - - for color in pixel: - self._buff += (color & 1) << (self._encoding_length - 1 - self._count) - self._count += 1 - - if self._count == self._encoding_length: - self._bitab.append(chr(self._buff)) - self._buff, self._count = 0, 0 - - if self._bitab[-1] == ":" and self._limit is None: - if "".join(self._bitab[:-1]).isdigit(): - self._limit = int("".join(self._bitab[:-1])) - else: - raise IndexError("Impossible to detect message.") - - if len(self._bitab) - len(str(self._limit)) - 1 == self._limit: - self.secret_message = "".join(self._bitab)[len(str(self._limit)) + 1 :] - if self.close_file: - self.encoded_image.close() - return True - else: - return False + Convert a printable file to a binary file. + """ + # Read base64 string + #fin = open(b64_fname, "r") + #b64_str = fin.read() + #fin.close() + # Decode base64 string to original binary sound object + return base64.b64decode(b64_fname) \ No newline at end of file diff --git a/stegano/wav/__init__.py b/stegano/wav/__init__.py deleted file mode 100644 index e2529fe..0000000 --- a/stegano/wav/__init__.py +++ /dev/null @@ -1,5 +0,0 @@ -#!/usr/bin/env python - -from .wav import hide, reveal - -__all__ = ["hide", "reveal"] diff --git a/stegano/wav/wav.py b/stegano/wav/wav.py deleted file mode 100644 index 56c5146..0000000 --- a/stegano/wav/wav.py +++ /dev/null @@ -1,112 +0,0 @@ -#!/usr/bin/env python -# Stegano - Stéganô is a basic Python Steganography module. -# Copyright (C) 2010-2024 Cédric Bonhomme - https://www.cedricbonhomme.org -# -# For more information : https://github.com/cedricbonhomme/Stegano -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see - -__author__ = "Cedric Bonhomme" -__version__ = "$Revision: 0.2 $" -__date__ = "$Date: 2010/10/01 $" -__revision__ = "$Date: 2017/02/06 $" -__license__ = "GPLv3" - -import wave -from typing import IO, Union - -from stegano import tools - - -def hide( - input_file: Union[str, IO[bytes]], - message: str, - output_file: Union[str, IO[bytes]], - encoding: str = "UTF-8", -): - """ - Hide a message (string) in a .wav audio file. - - Use the lsb of each PCM encoded sample to hide the message string characters as ASCII values. - The first eight bits are used for message_length of the string. - """ - message_length = len(message) - assert message_length != 0, "message message_length is zero" - assert message_length < 255, "message is too long" - - output = wave.open(output_file, "wb") - with wave.open(input_file, "rb") as input: - # get .wav params - nchannels, sampwidth, framerate, nframes, comptype, _ = input.getparams() - assert comptype == "NONE", "only uncompressed files are supported" - - nsamples = nframes * nchannels - - message_bits = f"{message_length:08b}" + "".join( - tools.a2bits_list(message, encoding) - ) - assert len(message_bits) <= nsamples, "message is too long" - - # copy over .wav params to output - output.setnchannels(nchannels) - output.setsampwidth(sampwidth) - output.setframerate(framerate) - - # encode message in frames - frames = bytearray(input.readframes(nsamples)) - for i in range(nsamples): - if i < len(message_bits): - if message_bits[i] == "0": - frames[i] = frames[i] & ~1 - else: - frames[i] = frames[i] | 1 - - # write out - output.writeframes(frames) - - -def reveal(input_file: Union[str, IO[bytes]], encoding: str = "UTF-8"): - """ - Find a message in an image. - - Check the lsb of each PCM encoded sample for hidden message characters (ASCII values). - The first eight bits are used for message_length of the string. - """ - message = "" - encoding_len = tools.ENCODINGS[encoding] - with wave.open(input_file, "rb") as input: - nchannels, _, _, nframes, comptype, _ = input.getparams() - assert comptype == "NONE", "only uncompressed files are supported" - - nsamples = nframes * nchannels - frames = bytearray(input.readframes(nsamples)) - - # Read first 8 bits for message length - length_bits = "" - for i in range(8): - length_bits += str(frames[i] & 1) - message_length = int(length_bits, 2) - - # Read message bits - message_bits = "" - for i in range(8, 8 + message_length * encoding_len): - message_bits += str(frames[i] & 1) - - # Convert bits to string - chars = [ - chr(int(message_bits[i : i + encoding_len], 2)) - for i in range(0, len(message_bits), encoding_len) - ] - message = "".join(chars) - return message diff --git a/tests/__init__.py b/tests/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/tests/expected-results/LFSR b/tests/expected-results/LFSR deleted file mode 100644 index cc1277e..0000000 --- a/tests/expected-results/LFSR +++ /dev/null @@ -1,256 +0,0 @@ -2 -5 -11 -22 -44 -88 -177 -99 -199 -143 -30 -61 -122 -244 -232 -208 -161 -67 -135 -15 -31 -63 -127 -255 -254 -252 -249 -242 -228 -200 -144 -33 -66 -133 -10 -20 -41 -83 -167 -79 -159 -62 -125 -250 -245 -234 -213 -170 -85 -171 -87 -174 -92 -184 -112 -224 -193 -131 -6 -12 -24 -49 -98 -197 -138 -21 -43 -86 -172 -89 -179 -102 -204 -153 -50 -101 -203 -151 -47 -95 -191 -126 -253 -251 -247 -239 -222 -188 -121 -243 -230 -205 -155 -55 -110 -221 -187 -119 -238 -220 -185 -114 -229 -202 -149 -42 -84 -169 -82 -165 -74 -148 -40 -81 -162 -68 -137 -18 -37 -75 -150 -45 -90 -180 -104 -209 -163 -70 -140 -25 -51 -103 -206 -156 -57 -115 -231 -207 -158 -60 -120 -241 -227 -198 -141 -27 -54 -108 -216 -176 -97 -194 -132 -8 -17 -34 -69 -139 -23 -46 -93 -186 -117 -235 -215 -175 -94 -189 -123 -246 -237 -219 -183 -111 -223 -190 -124 -248 -240 -225 -195 -134 -13 -26 -52 -105 -211 -166 -77 -154 -53 -107 -214 -173 -91 -182 -109 -218 -181 -106 -212 -168 -80 -160 -65 -130 -4 -9 -19 -39 -78 -157 -59 -118 -236 -217 -178 -100 -201 -146 -36 -73 -147 -38 -76 -152 -48 -96 -192 -129 -3 -7 -14 -29 -58 -116 -233 -210 -164 -72 -145 -35 -71 -142 -28 -56 -113 -226 -196 -136 -16 -32 -64 -128 -1 -2 \ No newline at end of file diff --git a/tests/expected-results/ackermann b/tests/expected-results/ackermann deleted file mode 100644 index 0e8b8b2..0000000 --- a/tests/expected-results/ackermann +++ /dev/null @@ -1,4 +0,0 @@ -13 -29 -65533 -2003529930406846464979072351560255750447825475569751419265016973710894059556311453089506130880933348101038234342907263181822949382118812668869506364761547029165041871916351587966347219442930927982084309104855990570159318959639524863372367203002916969592156108764948889254090805911457037675208500206671563702366126359747144807111774815880914135742720967190151836282560618091458852699826141425030123391108273603843767876449043205960379124490905707560314035076162562476031863793126484703743782954975613770981604614413308692118102485959152380195331030292162800160568670105651646750568038741529463842244845292537361442533614373729088303794601274724958414864915930647252015155693922628180691650796381064132275307267143998158508811292628901134237782705567421080070065283963322155077831214288551675554073345107213112427399562982719769150054883905223804357045848197956393157853510018992000024141963706813559840464039472194016069517690156119726982337890017641517190051133466306898140219383481435426387306539552969691388024158161859561100640362119796101859534802787167200122604642492385111393400464351623867567078745259464670903886547743483217897012764455529409092021959585751622973333576159552394885297579954028471943529913543763705986928913757153740001986394332464890052543106629669165243419174691389632476560289415199775477703138064781342309596190960654591300890188887588084733625956065444888501447335706058817090162108499714529568344061979690565469813631162053579369791403236328496233046421066136200220175787851857409162050489711781820400187282939943446186224328009837323764931814789848119452713007440220765680910376203999203492023906626264491909167985461515778839060397720759279378852241294301017458086862263369284725851403039615558564330385450688652213114813638408384778263790459607186876728509763471271988890680478243230394718650525660978150729861141430305816927924971409161059417185352275887504477592218301158780701975535722241400019548102005661773589781499532325208589753463547007786690406429016763808161740550405117670093673202804549339027992491867306539931640720492238474815280619166900933805732120816350707634351669869625020969023162859350071874190579161241536897514808261904847946571736601005892476655445840838334790544144817684255327207315586349347605137419779525190365032198020108764738368682531025183377533908861426184800374008082238104076468878471647552945326947661700424461063311238021134588694532200116564076327023074292426051582811070387018345324567635625951430032037432740780879056283663406965030844225855967039271869461158513793386475699748568670079823960604393478850861649260304945061743412365828352144806726676841807083754862211408236579802961200027441324438432402331257403545019352428776430880232850855886089962774458164680857875115807014743763867976955049991643998284357290415378143438847303484261903388841494031366139854257635577105335580206622185577060082551288893332226436281984838613239570676191409638533832374343758830859233722284644287996245605476932428998432652677378373173288063210753211238680604674708428051166488709084770291208161104912555598322366244868556651402684641209694982590565519216188104341226838996283071654868525536914850299539675503954938371853405900096187489473992880432496373165753803673586710175783994818471798498246948060532081996066183434012476096639519778021441199752546704080608499344178256285092726523709898651539462193004607364507926212975917698293892367015170992091531567814439791248475706237804600009918293321306880570046591458387208088016887445835557926258465124763087148566313528934166117490617526671492672176128330845273936469244582892571388877839056300482483799839692029222215486145902373478222682521639957440801727144146179559226175083889020074169926238300282286249284182671243405751424188569994272331606998712986882771820617214453142574944015066139463169197629181506579745526236191224848063890033669074365989226349564114665503062965960199720636202603521917776740668777463549375318899587866282125469797102065747232721372918144666659421872003474508942830911535189271114287108376159222380276605327823351661555149369375778466670145717971901227117812780450240026384758788339396817962950690798817121690686929538248529830023476068454114178139110648560236549754227497231007615131870024053910510913817843721791422528587432098524957878034683703337818421444017138688124249984418618129271198533315382567321870421530631197748535214670955334626336610864667332292409879849256691109516143618601548909740241913509623043612196128165950518666022030715613684732364660868905014263913906515063908199378852318365059897299125404479443425166774299659811849233151555272883274028352688442408752811283289980625912673699546247341543333500147231430612750390307397135252069338173843322950701049061867539433130784798015655130384758155685236218010419650255596181934986315913233036096461905990236112681196023441843363334594927631946101716652913823717182394299216272538461776065694542297877071383198817036964588689811863210976900355735884624464835706291453052757101278872027965364479724025405448132748391794128826423835171949197209797145936887537198729130831738033911016128547415377377715951728084111627597186384924222802373441925469991983672192131287035585307966942713416391033882754318613643490100943197409047331014476299861725424423355612237435715825933382804986243892498222780715951762757847109475119033482241412025182688713728193104253478196128440176479531505057110722974314569915223451643121848657575786528197564843508958384722923534559464521215831657751471298708225909292655638836651120681943836904116252668710044560243704200663709001941185557160472044643696932850060046928140507119069261393993902735534545567470314903886022024639948260501762431969305640666366626090207048887438898907498152865444381862917382901051820869936382661868303915273264581286782806601337500096593364625146091723180312930347877421234679118454791311109897794648216922505629399956793483801699157439700537542134485874586856047286751065423341893839099110586465595113646061055156838541217459801807133163612573079611168343863767667307354583494789788316330129240800836356825939157113130978030516441716682518346573675934198084958947940983292500086389778563494693212473426103062713745077286156922596628573857905533240641849018451328284632709269753830867308409142247659474439973348130810986399417379789657010687026734161967196591599588537834822988270125605842365589539690306474965584147981310997157542043256395776070485100881578291408250777738559790129129407309462785944505859412273194812753225152324801503466519048228961406646890305102510916237770448486230229488966711380555607956620732449373374027836767300203011615227008921843515652121379215748206859356920790214502277133099987729459596952817044582181956080965811702798062669891205061560742325686842271306295009864421853470810407128917646906550836129916694778023822502789667843489199409657361704586786242554006942516693979292624714524945408858422726153755260071904336329196375777502176005195800693847635789586878489536872122898557806826518192703632099480155874455575175312736471421295536494084385586615208012115079075068553344489258693283859653013272046970694571546959353658571788894862333292465202735853188533370948455403336565356988172582528918056635488363743793348411845580168331827676834646291995605513470039147876808640322629616641560667508153710646723108461964247537490553744805318226002710216400980584497526023035640038083472053149941172965736785066421400842696497103241919182121213206939769143923368374709228267738708132236680086924703491586840991153098315412063566123187504305467536983230827966457417620806593177265685841681837966106144963432544111706941700222657817358351259821080769101961052229263879745049019254311900620561906577452416191913187533984049343976823310298465893318373015809592522829206820862230332585280119266496314441316442773003237792274712330696417149945532261035475145631290668854345426869788447742981777493710117614651624183616680254815296335308490849943006763654806102940094693750609845588558043970485914449584445079978497045583550685408745163316464118083123079704389849190506587586425810738422420591191941674182490452700288263983057950057341711487031187142834184499153456702915280104485145176055306971441761368582384102787659324662689978418319620312262421177391477208004883578333569204533935953254564897028558589735505751235129536540502842081022785248776603574246366673148680279486052445782673626230852978265057114624846595914210278122788941448163994973881884622768244851622051817076722169863265701654316919742651230041757329904473537672536845792754365412826553581858046840069367718605020070547247548400805530424951854495267247261347318174742180078574693465447136036975884118029408039616746946288540679172138601225419503819704538417268006398820656328792839582708510919958839448297775647152026132871089526163417707151642899487953564854553553148754978134009964854498635824847690590033116961303766127923464323129706628411307427046202032013368350385425360313636763575212604707425311209233402837482949453104727418969287275572027615272268283376741393425652653283068469997597097750005560889932685025049212884068274139881631540456490350775871680074055685724021758685439053228133770707415830756269628316955687424060527726485853050611356384851965918968649596335568216975437621430778665934730450164822432964891270709898076676625671517269062058815549666382573829274182082278960684488222983394816670984039024283514306813767253460126007269262969468672750794346190439996618979611928750519442356402644303271737341591281496056168353988188569484045342311424613559925272330064881627466723523751234311893442118885085079358163848994487544756331689213869675574302737953785262542329024881047181939037220666894702204258836895840939998453560948869946833852579675161882159410981624918741813364726965123980677561947912557957446471427868624053750576104204267149366084980238274680575982591331006919941904651906531171908926077949119217946407355129633864523035673345588033313197080365457184791550432654899559705862888286866606618021882248602144999973122164138170653480175510438406624412822803616648904257377640956326482825258407669045608439490325290526337532316509087681336614242398309530806549661879381949120033919489494065132398816642080088395554942237096734840072642705701165089075196155370186264797456381187856175457113400473810762763014953309735174180655479112660938034311378532532883533352024934365979129341284854970946826329075830193072665337782559314331110963848053940859283988907796210479847919686876539987477095912788727475874439806779824968278272200926449944559380414608770641941810440758269805688038949654616587983904660587645341810289907194293021774519976104495043196841503455514044820928933378657363052830619990077748726922998608279053171691876578860908941817057993404890218441559791092676862796597583952483926734883634745651687016166240642424241228961118010615682342539392180052483454723779219911228595914191877491793823340010078128326506710281781396029120914720100947878752551263372884222353869490067927664511634758101193875319657242121476038284774774571704578610417385747911301908583877890152334343013005282797038580359815182929600305682612091950943737325454171056383887047528950563961029843641360935641632589408137981511693338619797339821670761004607980096016024823096943043806956620123213650140549586250615282588033022908385812478469315720323233601899469437647726721879376826431828382603564520699468630216048874528424363593558622333506235945002890558581611275341783750455936126130852640828051213873177490200249552738734585956405160830583053770732533971552620444705429573538361113677523169972740292941674204423248113875075631319078272188864053374694213842169928862940479635305150560788126366206497231257579019598873041195626227343728900516561111094111745277965482790471250581999077498063821559376885546498822938985408291325129076478386322494781016753491693489288104203015610283386143827378160946341335383578340765314321417150655877547820252454780657301342277470616744241968952613164274104695474621483756288299771804186785084546965619150908695874251184435837306590951460980451247409411373899927822492983367796011015387096129749705566301637307202750734759922943792393824427421186158236161317886392553095117188421298508307238259729144142251579403883011359083331651858234967221259621812507058113759495525022747274674369887131926670769299199084467161228738858457584622726573330753735572823951616964175198675012681745429323738294143824814377139861906716657572945807804820559511881687188075212971832636442155336787751274766940790117057509819575084563565217389544179875074523854455200133572033332379895074393905312918212255259833790909463630202185353848854825062897715616963860712382771725621313460549401770413581731931763370136332252819127547191443450920711848838366818174263342949611870091503049165339464763717766439120798347494627397822171502090670190302469762151278521956142070806461631373236517853976292092025500288962012970141379640038055734949269073535145961208674796547733692958773628635660143767964038430796864138563447801328261284589184898528048048844180821639423974014362903481665458114454366460032490618763039502356402044530748210241366895196644221339200757479128683805175150634662569391937740283512075666260829890491877287833852178522792045771846965855278790447562192663992008409302075673925363735628390829817577902153202106409617373283598494066652141198183810884515459772895164572131897797907491941013148368544639616904607030107596818933741217575988165127000761262789169510406315857637534787420070222051070891257612361658026806815858499852631465878086616800733264676830206391697203064894405628195406190685242003053463156621891327309069687353181641094514288036605995220248248886711554429104721929134248346438705368508648749099178812670565665387191049721820042371492740164460943459845392536706132210616533085662021188968234005752675486101476993688738209584552211571923479686888160853631615862880150395949418529489227074410828207169303387818084936204018255222271010985653444817207470756019245915599431072949578197878590578940052540122867517142511184356437184053563024181225473266093302710397968091064939272722683035410467632591355279683837705019855234621222858410557119921731717969804339317707750755627056047831779844447637560254637033369247114220815519973691371975163241302748712199863404548248524570118553342675264715978310731245663429805221455494156252724028915333354349341217862037007260315279870771872491234494477147909520734761385425485311552773301030342476835865496093722324007154518129732692081058424090557725645803681462234493189708138897143299831347617799679712453782310703739151473878692119187566700319321281896803322696594459286210607438827416919465162267632540665070881071030394178860564893769816734159025925194611823642945652669372203155504700213598846292758012527715422016629954863130324912311029627923723899766416803497141226527931907636326136814145516376656559839788489381733082668779901962886932296597379951931621187215455287394170243669885593888793316744533363119541518404088283815193421234122820030950313341050704760159987985472529190665222479319715440331794836837373220821885773341623856441380700541913530245943913502554531886454796252260251762928374330465102361057583514550739443339610216229675461415781127197001738611494279501411253280621254775810512972088465263158094806633687670147310733540717710876615935856814098212967730759197382973441445256688770855324570888958320993823432102718224114763732791357568615421252849657903335093152776925505845644010552192644505312073756287744998163646332835816140330175813967359427327690448920361880386754955751806890058532927201493923500525845146706982628548257883267398735220457228239290207144822219885587102896991935873074277815159757620764023951243860202032596596250212578349957710085626386118233813318509014686577064010676278617583772772895892746039403930337271873850536912957126715066896688493880885142943609962012966759079225082275313812849851526902931700263136328942095797577959327635531162066753488651317323872438748063513314512644889967589828812925480076425186586490241111127301357197181381602583178506932244007998656635371544088454866393181708395735780799059730839094881804060935959190907473960904410150516321749681412100765719177483767355751000733616922386537429079457803200042337452807566153042929014495780629634138383551783599764708851349004856973697965238695845994595592090709058956891451141412684505462117945026611750166928260250950770778211950432617383223562437601776799362796099368975191394965033358507155418436456852616674243688920371037495328425927131610537834980740739158633817967658425258036737206469351248652238481341663808061505704829059890696451936440018597120425723007316410009916987524260377362177763430621616744884930810929901009517974541564251204822086714586849255132444266777127863728211331536224301091824391243380214046242223349153559516890816288487989988273630445372432174280215755777967021666317047969728172483392841015642274507271779269399929740308072770395013581545142494049026536105825409373114653104943382484379718606937214444600826798002471229489405761853892203425608302697052876621377373594394224114707074072902725461307358541745691419446487624357682397065703184168467540733466346293673983620004041400714054277632480132742202685393698869787607009590048684650626771363070979821006557285101306601010780633743344773073478653881742681230743766066643312775356466578603715192922768440458273283243808212841218776132042460464900801054731426749260826922155637405486241717031027919996942645620955619816454547662045022411449404749349832206807191352767986747813458203859570413466177937228534940031631599544093684089572533438702986717829770373332806801764639502090023941931499115009105276821119510999063166150311585582835582607179410052528583611369961303442790173811787412061288182062023263849861515656451230047792967563618345768105043341769543067538041113928553792529241347339481050532025708728186307291158911335942014761872664291564036371927602306283840650425441742335464549987055318726887926424102147363698625463747159744354943443899730051742525110877357886390946812096673428152585919924857640488055071329814299359911463239919113959926752576359007446572810191805841807342227734721397723218231771716916400108826112549093361186780575722391018186168549108500885272274374212086524852372456248697662245384819298671129452945515497030585919307198497105414181636968976131126744027009648667545934567059936995464500558921628047976365686133316563907395703272034389175415267500915011198856872708848195531676931681272892143031376818016445477367518353497857924276463354162433601125960252109501612264110346083465648235597934274056868849224458745493776752120324703803035491157544831295275891939893680876327685438769557694881422844311998595700727521393176837831770339130423060958999137314684569010422095161967070506420256733873446115655276175992727151877660010238944760539789516945708802728736225121076224091810066700883474737605156285533943565843756271241244457651663064085939507947550920463932245202535463634444791755661725962187199279186575490857852950012840229035061514937310107009446151011613712423761426722541732055959202782129325725947146417224977321316381845326555279604270541871496236585252458648933254145062642337885651464670604298564781968461593663288954299780722542264790400616019751975007460545150060291806638271497016110987951336633771378434416194053121445291855180136575558667615019373029691932076120009255065081583275508499340768797252369987023567931026804136745718956641431852679054717169962990363015545645090044802789055701968328313630718997699153166679208958768572290600915472919636381673596673959975710326015571920237348580521128117458610065152598883843114511894880552129145775699146577530041384717124577965048175856395072895337539755822087777506072339445587895905719156733 \ No newline at end of file diff --git a/tests/expected-results/binary2base64 b/tests/expected-results/binary2base64 deleted file mode 100644 index c64030e..0000000 --- a/tests/expected-results/binary2base64 +++ /dev/null @@ -1 +0,0 @@ -T2dnUwACAAAAAAAAAADp8x58AAAAAIw00W0BHgF2b3JiaXMAAAAAAUAfAAAAAAAAgFcAAAAAAACZAU9nZ1MAAAAAAAAAAAAA6fMefAEAAACkzyilCy3///////////+1A3ZvcmJpcx0AAABYaXBoLk9yZyBsaWJWb3JiaXMgSSAyMDAyMDcxNwAAAAABBXZvcmJpcxJCQ1YBAAABAAxSFCElmUJKYymVUlIpJRljEEpooXPUOSedg9RBiMUY44MxLtZia2kRUlYhJRlTDFtolVJUKQUZY1JKaKFz1jlGnXMUQifFCGOMLr62YltJHWPWMSYdU4pKKJ1j1DEGnWNQSggldBZCRyV00DkGxRhjjDHC1yJbiq3FnkrprYWMW0q11tpSKraVVGSKxRghfA5G9+JbSsUYY4wxxghjZMuB0JBVAAABAABABAFCQ1YBAAoAAMIwFEVRgNCQVQBABgCAABRFcRTHcSRHkizHAkJDVgEAQAAAAgAAGI7iKI4jOZJkSZrlaaIniqar67qu67pu27Zt27YNhIasBADIAAAYhiGH3knMkFOQSSYpVcw5CKH1DjnlFGTSUsaYYoxRzpBTDDEFMYbQKYUQ1E45pQwiCENInWTOIEs96OBi5zgQGrIiAIgCAACMQYwhxpBzDEoGIXKOScggRM45KZ2UTEoorbSWSQktldYi55yUTkompbQWUsuklNZCKwUAAAQ4AAAEWAiFhqwIAKIAABCDkFJIKcSUYk4xh5RSjinHkFLMOcWYcowx6CBUzDHIHIRIKcUYc0455iBkDCrmHIQMMgEAAAEOAAABFkKhISsCgDgBAIMkaZqlaaJoaZooeqaoqqIoqqrleabpmaaqeqKpqqaquq6pqq5seZ5peqaoqp4pqqqpqq5rqqrriqpqy6ar2rbpqrbsyrJuu7Ks256qyrapurJuqq5tu7Js664s27rkearqmabreqbpuqrr2rLqurLtmabriqor26bryrLryratyrKua6bpuqKr2q6purLtyq5tu7Ks+6br6rbqyrquyrLu27au+7KtC7vourauyq6uq7Ks67It67Zs20LJ81TVM03X9UzTdVXXtW3VdW1bM03XNV1XlkXVdWXVlXVddWVb90zTdU1XlWXTVWVZlWXddmVXl0XXtW1Vln1ddWVfl23d92VZ133TdXVblWXbV2VZ92Vd94VZt33dU1VbN11X103X1X1b131htm3fF11X11XZ1oVVlnXf1n1lmHWdMLqurqu27OuqLOu+ruvGMOu6MKy6bfyurQvDq+vGseu+rty+j2rbvvDqtjG8um4cu7Abv+37xrGpqm2brqvrpivrumzrvm/runGMrqvrqiz7uurKvm/ruvDrvi8Mo+vquirLurDasq/Lui4Mu64bw2rbwu7aunDMsi4Mt+8rx68LQ9W2heHVdaOr28ZvC8PSN3a+AACAAQcAgAATykChISsCgDgBAAYhCBVjECrGIIQQUgohpFQxBiFjDkrGHJQQSkkhlNIqxiBkjknIHJMQSmiplNBKKKWlUEpLoZTWUmotptRaDKG0FEpprZTSWmopttRSbBVjEDLnpGSOSSiltFZKaSlzTErGoKQOQiqlpNJKSa1lzknJoKPSOUippNJSSam1UEproZTWSkqxpdJKba3FGkppLaTSWkmptdRSba21WiPGIGSMQcmck1JKSamU0lrmnJQOOiqZg5JKKamVklKsmJPSQSglg4xKSaW1kkoroZTWSkqxhVJaa63VmFJLNZSSWkmpxVBKa621GlMrNYVQUgultBZKaa21VmtqLbZQQmuhpBZLKjG1FmNtrcUYSmmtpBJbKanFFluNrbVYU0s1lpJibK3V2EotOdZaa0ot1tJSjK21mFtMucVYaw0ltBZKaa2U0lpKrcXWWq2hlNZKKrGVklpsrdXYWow1lNJiKSm1kEpsrbVYW2w1ppZibLHVWFKLMcZYc0u11ZRai621WEsrNcYYa2415VIAAMCAAwBAgAlloNCQlQBAFAAAYAxjjEFoFHLMOSmNUs45JyVzDkIIKWXOQQghpc45CKW01DkHoZSUQikppRRbKCWl1losAACgwAEAIMAGTYnFAQoNWQkARAEAIMYoxRiExiClGIPQGKMUYxAqpRhzDkKlFGPOQcgYc85BKRljzkEnJYQQQimlhBBCKKWUAgAAChwAAAJs0JRYHKDQkBUBQBQAAGAMYgwxhiB0UjopEYRMSielkRJaCylllkqKJcbMWomtxNhICa2F1jJrJcbSYkatxFhiKgAA7MABAOzAQig0ZCUAkAcAQBijFGPOOWcQYsw5CCE0CDHmHIQQKsaccw5CCBVjzjkHIYTOOecghBBC55xzEEIIoYMQQgillNJBCCGEUkrpIIQQQimldBBCCKGUUgoAACpwAAAIsFFkc4KRoEJDVgIAeQAAgDFKOSclpUYpxiCkFFujFGMQUmqtYgxCSq3FWDEGIaXWYuwgpNRajLV2EFJqLcZaQ0qtxVhrziGl1mKsNdfUWoy15tx7ai3GWnPOuQAA3AUHALADG0U2JxgJKjRkJQCQBwBAIKQUY4w5h5RijDHnnENKMcaYc84pxhhzzjnnFGOMOeecc4wx55xzzjnGmHPOOeecc84556CDkDnnnHPQQeicc845CCF0zjnnHIQQCgAAKnAAAAiwUWRzgpGgQkNWAgDhAACAMZRSSimllFJKqKOUUkoppZRSAiGllFJKKaWUUkoppZRSSimllFJKKaWUUkoppZRSSimllFJKKaWUUkoppZRSSimllFJKKaWUUkoppZRSSimllFJKKaWUUkoppZRSSimllFJKKaWUUkoppZRSSimllFJKKaWUUkoppZRSSimVUkoppZRSSimllFJKKaUAIN8KBwD/BxtnWEk6KxwNLjRkJQAQDgAAGMMYhIw5JyWlhjEIpXROSkklNYxBKKVzElJKKYPQWmqlpNJSShmElGILIZWUWgqltFZrKam1lFIoKcUaS0qppdYy5ySkklpLrbaYOQelpNZaaq3FEEJKsbXWUmuxdVJSSa211lptLaSUWmstxtZibCWlllprqcXWWkyptRZbSy3G1mJLrcXYYosxxhoLAOBucACASLBxhpWks8LR4EJDVgIAIQEABDJKOeecgxBCCCFSijHnoIMQQgghREox5pyDEEIIIYSMMecghBBCCKGUkDHmHIQQQgghhFI65yCEUEoJpZRSSucchBBCCKWUUkoJIYQQQiillFJKKSGEEEoppZRSSiklhBBCKKWUUkoppYQQQiillFJKKaWUEEIopZRSSimllBJCCKGUUkoppZRSQgillFJKKaWUUkooIYRSSimllFJKCSWUUkoppZRSSikhlFJKKaWUUkoppQAAgAMHAIAAI+gko8oibDThwgMQAAAAAgACTACBAYKCUQgChBEIAAAAAAAIAPgAAEgKgIiIaOYMDhASFBYYGhweICIkAAAAAAAAAAAAAAAABE9nZ1MAAAAvAAAAAAAA6fMefAIAAADY+CB7MFRSVVJTVlJWTFBVVUxRUk5TUlVTUk5PVU9PVFpdX1thWlRcXVlYXFpaWV9ZW11YV5JTzm0VIAEo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 \ No newline at end of file diff --git a/tests/expected-results/carmichael b/tests/expected-results/carmichael deleted file mode 100644 index f0cc6a4..0000000 --- a/tests/expected-results/carmichael +++ /dev/null @@ -1,33 +0,0 @@ -561 -1105 -1729 -2465 -2821 -6601 -8911 -10585 -15841 -29341 -41041 -46657 -52633 -62745 -63973 -75361 -101101 -115921 -126217 -162401 -172081 -188461 -252601 -278545 -294409 -314821 -334153 -340561 -399001 -410041 -449065 -488881 -512461 \ No newline at end of file diff --git a/tests/expected-results/composite b/tests/expected-results/composite deleted file mode 100644 index cce9117..0000000 --- a/tests/expected-results/composite +++ /dev/null @@ -1,114 +0,0 @@ -4 -6 -8 -9 -10 -12 -14 -15 -16 -18 -20 -21 -22 -24 -25 -26 -27 -28 -30 -32 -33 -34 -35 -36 -38 -39 -40 -42 -44 -45 -46 -48 -49 -50 -51 -52 -54 -55 -56 -57 -58 -60 -62 -63 -64 -65 -66 -68 -69 -70 -72 -74 -75 -76 -77 -78 -80 -81 -82 -84 -85 -86 -87 -88 -90 -91 -92 -93 -94 -95 -96 -98 -99 -100 -102 -104 -105 -106 -108 -110 -111 -112 -114 -115 -116 -117 -118 -119 -120 -121 -122 -123 -124 -125 -126 -128 -129 -130 -132 -133 -134 -135 -136 -138 -140 -141 -142 -143 -144 -145 -146 -147 -148 -150 \ No newline at end of file diff --git a/tests/expected-results/eratosthenes b/tests/expected-results/eratosthenes deleted file mode 100644 index 7ebac2a..0000000 --- a/tests/expected-results/eratosthenes +++ /dev/null @@ -1,168 +0,0 @@ -2 -3 -5 -7 -11 -13 -17 -19 -23 -29 -31 -37 -41 -43 -47 -53 -59 -61 -67 -71 -73 -79 -83 -89 -97 -101 -103 -107 -109 -113 -127 -131 -137 -139 -149 -151 -157 -163 -167 -173 -179 -181 -191 -193 -197 -199 -211 -223 -227 -229 -233 -239 -241 -251 -257 -263 -269 -271 -277 -281 -283 -293 -307 -311 -313 -317 -331 -337 -347 -349 -353 -359 -367 -373 -379 -383 -389 -397 -401 -409 -419 -421 -431 -433 -439 -443 -449 -457 -461 -463 -467 -479 -487 -491 -499 -503 -509 -521 -523 -541 -547 -557 -563 -569 -571 -577 -587 -593 -599 -601 -607 -613 -617 -619 -631 -641 -643 -647 -653 -659 -661 -673 -677 -683 -691 -701 -709 -719 -727 -733 -739 -743 -751 -757 -761 -769 -773 -787 -797 -809 -811 -821 -823 -827 -829 -839 -853 -857 -859 -863 -877 -881 -883 -887 -907 -911 -919 -929 -937 -941 -947 -953 -967 -971 -977 -983 -991 -997 \ No newline at end of file diff --git a/tests/expected-results/fermat b/tests/expected-results/fermat deleted file mode 100644 index 080f8c3..0000000 --- a/tests/expected-results/fermat +++ /dev/null @@ -1,9 +0,0 @@ -3 -5 -17 -257 -65537 -4294967297 -18446744073709551617 -340282366920938463463374607431768211457 -115792089237316195423570985008687907853269984665640564039457584007913129639937 \ No newline at end of file diff --git a/tests/expected-results/mersenne b/tests/expected-results/mersenne deleted file mode 100644 index 60b039b..0000000 --- a/tests/expected-results/mersenne +++ /dev/null @@ -1,20 +0,0 @@ -3 -7 -31 -127 -2047 -8191 -131071 -524287 -8388607 -536870911 -2147483647 -137438953471 -2199023255551 -8796093022207 -140737488355327 -9007199254740991 -576460752303423487 -2305843009213693951 -147573952589676412927 -2361183241434822606847 \ No newline at end of file diff --git a/tests/expected-results/parity.png b/tests/expected-results/parity.png deleted file mode 100644 index 0970ff3..0000000 Binary files a/tests/expected-results/parity.png and /dev/null differ diff --git a/tests/expected-results/parity_rgba.png b/tests/expected-results/parity_rgba.png deleted file mode 100644 index a1cf2af..0000000 Binary files a/tests/expected-results/parity_rgba.png and /dev/null differ diff --git a/tests/expected-results/shi_tomashi.txt b/tests/expected-results/shi_tomashi.txt deleted file mode 100644 index b205981..0000000 --- a/tests/expected-results/shi_tomashi.txt +++ /dev/null @@ -1,1000 +0,0 @@ -3.440000000000000000e+02 7.690000000000000000e+02 -5.300000000000000000e+02 1.326000000000000000e+03 -8.800000000000000000e+01 8.310000000000000000e+02 -1.508000000000000000e+03 8.200000000000000000e+02 -4.800000000000000000e+02 7.880000000000000000e+02 -1.295000000000000000e+03 8.410000000000000000e+02 -1.141000000000000000e+03 8.130000000000000000e+02 -3.940000000000000000e+02 7.340000000000000000e+02 -7.680000000000000000e+02 8.190000000000000000e+02 -2.710000000000000000e+02 1.186000000000000000e+03 -7.920000000000000000e+02 7.700000000000000000e+02 -8.550000000000000000e+02 7.600000000000000000e+02 -7.120000000000000000e+02 8.060000000000000000e+02 -1.313000000000000000e+03 8.380000000000000000e+02 -8.850000000000000000e+02 7.880000000000000000e+02 -2.180000000000000000e+02 7.580000000000000000e+02 -9.770000000000000000e+02 8.430000000000000000e+02 -1.564000000000000000e+03 1.016000000000000000e+03 -1.192000000000000000e+03 8.200000000000000000e+02 -1.254000000000000000e+03 8.170000000000000000e+02 -1.536000000000000000e+03 1.140000000000000000e+03 -1.148000000000000000e+03 1.038000000000000000e+03 -1.184000000000000000e+03 1.092000000000000000e+03 -3.730000000000000000e+02 1.271000000000000000e+03 -8.300000000000000000e+01 7.650000000000000000e+02 -5.170000000000000000e+02 1.101000000000000000e+03 -1.301000000000000000e+03 8.220000000000000000e+02 -6.820000000000000000e+02 8.080000000000000000e+02 -7.620000000000000000e+02 8.280000000000000000e+02 -8.250000000000000000e+02 7.960000000000000000e+02 -7.960000000000000000e+02 7.570000000000000000e+02 -7.410000000000000000e+02 7.690000000000000000e+02 -2.009000000000000000e+03 1.051000000000000000e+03 -4.400000000000000000e+01 7.600000000000000000e+02 -1.205000000000000000e+03 8.200000000000000000e+02 -1.168000000000000000e+03 1.095000000000000000e+03 -1.710000000000000000e+02 8.160000000000000000e+02 -1.790000000000000000e+03 9.280000000000000000e+02 -7.090000000000000000e+02 8.190000000000000000e+02 -1.702000000000000000e+03 1.031000000000000000e+03 -1.429000000000000000e+03 8.050000000000000000e+02 -5.700000000000000000e+02 7.540000000000000000e+02 -1.095000000000000000e+03 1.137000000000000000e+03 -1.222000000000000000e+03 8.210000000000000000e+02 -6.120000000000000000e+02 1.348000000000000000e+03 -8.660000000000000000e+02 8.080000000000000000e+02 -1.115000000000000000e+03 8.160000000000000000e+02 -3.560000000000000000e+02 8.120000000000000000e+02 -1.325000000000000000e+03 8.250000000000000000e+02 -4.120000000000000000e+02 7.910000000000000000e+02 -1.725000000000000000e+03 1.070000000000000000e+03 -6.580000000000000000e+02 6.520000000000000000e+02 -1.743000000000000000e+03 1.254000000000000000e+03 -1.710000000000000000e+03 8.420000000000000000e+02 -1.116000000000000000e+03 7.780000000000000000e+02 -1.365000000000000000e+03 7.980000000000000000e+02 -6.420000000000000000e+02 7.250000000000000000e+02 -3.650000000000000000e+02 7.940000000000000000e+02 -7.290000000000000000e+02 7.250000000000000000e+02 -1.214000000000000000e+03 7.900000000000000000e+02 -7.640000000000000000e+02 7.670000000000000000e+02 -1.453000000000000000e+03 9.380000000000000000e+02 -8.100000000000000000e+02 7.720000000000000000e+02 -1.148000000000000000e+03 7.750000000000000000e+02 -5.260000000000000000e+02 8.350000000000000000e+02 -1.912000000000000000e+03 1.021000000000000000e+03 -6.690000000000000000e+02 6.520000000000000000e+02 -1.576000000000000000e+03 8.290000000000000000e+02 -1.366000000000000000e+03 8.150000000000000000e+02 -6.040000000000000000e+02 7.900000000000000000e+02 -6.780000000000000000e+02 7.300000000000000000e+02 -1.328000000000000000e+03 8.430000000000000000e+02 -1.954000000000000000e+03 1.023000000000000000e+03 -1.443000000000000000e+03 8.170000000000000000e+02 -1.507000000000000000e+03 8.350000000000000000e+02 -7.060000000000000000e+02 7.910000000000000000e+02 -6.130000000000000000e+02 7.380000000000000000e+02 -5.500000000000000000e+02 8.280000000000000000e+02 -9.270000000000000000e+02 7.690000000000000000e+02 -1.853000000000000000e+03 8.620000000000000000e+02 -6.230000000000000000e+02 1.095000000000000000e+03 -6.220000000000000000e+02 8.110000000000000000e+02 -9.500000000000000000e+02 8.030000000000000000e+02 -1.059000000000000000e+03 7.920000000000000000e+02 -1.429000000000000000e+03 8.170000000000000000e+02 -1.008000000000000000e+03 8.020000000000000000e+02 -1.999000000000000000e+03 1.088000000000000000e+03 -1.100000000000000000e+03 1.092000000000000000e+03 -3.650000000000000000e+02 7.830000000000000000e+02 -4.100000000000000000e+02 1.222000000000000000e+03 -1.955000000000000000e+03 1.047000000000000000e+03 -1.001000000000000000e+03 8.430000000000000000e+02 -8.360000000000000000e+02 7.980000000000000000e+02 -1.537000000000000000e+03 1.112000000000000000e+03 -1.432000000000000000e+03 1.257000000000000000e+03 -1.081000000000000000e+03 7.980000000000000000e+02 -6.320000000000000000e+02 7.870000000000000000e+02 -9.710000000000000000e+02 8.110000000000000000e+02 -9.570000000000000000e+02 8.130000000000000000e+02 -1.339000000000000000e+03 8.430000000000000000e+02 -1.275000000000000000e+03 7.860000000000000000e+02 -1.177000000000000000e+03 1.075000000000000000e+03 -1.161000000000000000e+03 8.330000000000000000e+02 -1.129000000000000000e+03 7.890000000000000000e+02 -1.929000000000000000e+03 1.273000000000000000e+03 -1.514000000000000000e+03 9.850000000000000000e+02 -3.390000000000000000e+02 8.070000000000000000e+02 -1.851000000000000000e+03 9.070000000000000000e+02 -4.180000000000000000e+02 7.260000000000000000e+02 -1.701000000000000000e+03 8.520000000000000000e+02 -1.290000000000000000e+03 8.280000000000000000e+02 -1.254000000000000000e+03 8.370000000000000000e+02 -1.130000000000000000e+02 7.860000000000000000e+02 -1.798000000000000000e+03 8.840000000000000000e+02 -1.976000000000000000e+03 1.043000000000000000e+03 -7.560000000000000000e+02 8.190000000000000000e+02 -1.846000000000000000e+03 8.190000000000000000e+02 -1.188000000000000000e+03 1.081000000000000000e+03 -4.500000000000000000e+01 7.890000000000000000e+02 -5.320000000000000000e+02 8.190000000000000000e+02 -6.150000000000000000e+02 1.361000000000000000e+03 -1.785000000000000000e+03 8.850000000000000000e+02 -6.970000000000000000e+02 7.190000000000000000e+02 -1.500000000000000000e+02 8.200000000000000000e+02 -7.210000000000000000e+02 8.340000000000000000e+02 -1.827000000000000000e+03 8.730000000000000000e+02 -1.610000000000000000e+02 8.160000000000000000e+02 -2.039000000000000000e+03 1.255000000000000000e+03 -1.768000000000000000e+03 9.020000000000000000e+02 -9.910000000000000000e+02 8.020000000000000000e+02 -3.840000000000000000e+02 7.310000000000000000e+02 -9.190000000000000000e+02 7.880000000000000000e+02 -1.144000000000000000e+03 1.089000000000000000e+03 -1.740000000000000000e+03 1.050000000000000000e+03 -9.630000000000000000e+02 8.030000000000000000e+02 -1.740000000000000000e+03 1.063000000000000000e+03 -4.310000000000000000e+02 7.710000000000000000e+02 -1.733000000000000000e+03 9.940000000000000000e+02 -1.785000000000000000e+03 8.500000000000000000e+02 -1.504000000000000000e+03 1.110000000000000000e+03 -1.972000000000000000e+03 1.032000000000000000e+03 -1.283000000000000000e+03 1.336000000000000000e+03 -9.750000000000000000e+02 8.280000000000000000e+02 -1.498000000000000000e+03 1.025000000000000000e+03 -9.220000000000000000e+02 8.010000000000000000e+02 -1.503000000000000000e+03 1.242000000000000000e+03 -1.397000000000000000e+03 1.316000000000000000e+03 -1.088000000000000000e+03 1.060000000000000000e+03 -8.000000000000000000e+01 7.880000000000000000e+02 -1.926000000000000000e+03 1.038000000000000000e+03 -8.510000000000000000e+02 8.000000000000000000e+02 -1.783000000000000000e+03 8.950000000000000000e+02 -1.554000000000000000e+03 1.262000000000000000e+03 -1.016000000000000000e+03 8.110000000000000000e+02 -1.016000000000000000e+03 8.380000000000000000e+02 -1.066000000000000000e+03 1.306000000000000000e+03 -1.057000000000000000e+03 8.360000000000000000e+02 -1.163000000000000000e+03 8.510000000000000000e+02 -1.801000000000000000e+03 9.760000000000000000e+02 -9.200000000000000000e+01 7.880000000000000000e+02 -1.667000000000000000e+03 8.400000000000000000e+02 -9.570000000000000000e+02 8.280000000000000000e+02 -1.854000000000000000e+03 8.290000000000000000e+02 -8.520000000000000000e+02 8.340000000000000000e+02 -1.139000000000000000e+03 1.194000000000000000e+03 -6.740000000000000000e+02 7.040000000000000000e+02 -6.550000000000000000e+02 7.740000000000000000e+02 -1.746000000000000000e+03 1.084000000000000000e+03 -1.250000000000000000e+02 8.300000000000000000e+02 -8.980000000000000000e+02 5.040000000000000000e+02 -5.150000000000000000e+02 7.940000000000000000e+02 -1.047000000000000000e+03 7.930000000000000000e+02 -2.240000000000000000e+02 8.250000000000000000e+02 -1.781000000000000000e+03 9.720000000000000000e+02 -1.732000000000000000e+03 9.780000000000000000e+02 -4.420000000000000000e+02 8.060000000000000000e+02 -1.237000000000000000e+03 8.170000000000000000e+02 -3.370000000000000000e+02 1.171000000000000000e+03 -1.069000000000000000e+03 1.061000000000000000e+03 -1.808000000000000000e+03 8.460000000000000000e+02 -1.159000000000000000e+03 8.040000000000000000e+02 -1.595000000000000000e+03 8.320000000000000000e+02 -1.971000000000000000e+03 1.239000000000000000e+03 -1.576000000000000000e+03 8.000000000000000000e+02 -6.710000000000000000e+02 8.230000000000000000e+02 -1.753000000000000000e+03 9.790000000000000000e+02 -1.369000000000000000e+03 1.022000000000000000e+03 -1.813000000000000000e+03 8.960000000000000000e+02 -3.420000000000000000e+02 7.900000000000000000e+02 -1.307000000000000000e+03 1.362000000000000000e+03 -1.829000000000000000e+03 1.007000000000000000e+03 -8.820000000000000000e+02 8.080000000000000000e+02 -9.410000000000000000e+02 1.320000000000000000e+03 -1.428000000000000000e+03 1.231000000000000000e+03 -3.790000000000000000e+02 1.120000000000000000e+03 -5.250000000000000000e+02 5.430000000000000000e+02 -1.292000000000000000e+03 7.780000000000000000e+02 -1.160000000000000000e+03 1.324000000000000000e+03 -1.002000000000000000e+03 8.270000000000000000e+02 -1.607000000000000000e+03 8.150000000000000000e+02 -5.700000000000000000e+01 8.200000000000000000e+02 -1.734000000000000000e+03 1.004000000000000000e+03 -1.610000000000000000e+03 1.314000000000000000e+03 -1.600000000000000000e+01 7.600000000000000000e+02 -8.930000000000000000e+02 8.340000000000000000e+02 -1.969000000000000000e+03 1.059000000000000000e+03 -9.790000000000000000e+02 8.020000000000000000e+02 -3.620000000000000000e+02 7.680000000000000000e+02 -1.157000000000000000e+03 1.100000000000000000e+03 -7.230000000000000000e+02 7.990000000000000000e+02 -1.591000000000000000e+03 1.310000000000000000e+03 -1.180000000000000000e+03 8.150000000000000000e+02 -1.502000000000000000e+03 1.204000000000000000e+03 -1.714000000000000000e+03 1.063000000000000000e+03 -1.059000000000000000e+03 8.130000000000000000e+02 -1.227000000000000000e+03 1.249000000000000000e+03 -1.442000000000000000e+03 8.730000000000000000e+02 -4.470000000000000000e+02 1.298000000000000000e+03 -1.123000000000000000e+03 1.087000000000000000e+03 -3.730000000000000000e+02 5.960000000000000000e+02 -1.842000000000000000e+03 8.870000000000000000e+02 -1.424000000000000000e+03 1.022000000000000000e+03 -7.380000000000000000e+02 8.040000000000000000e+02 -1.452000000000000000e+03 8.320000000000000000e+02 -1.542000000000000000e+03 8.100000000000000000e+02 -6.800000000000000000e+02 8.340000000000000000e+02 -9.450000000000000000e+02 8.440000000000000000e+02 -4.460000000000000000e+02 7.910000000000000000e+02 -6.460000000000000000e+02 8.220000000000000000e+02 -2.004000000000000000e+03 9.410000000000000000e+02 -1.747000000000000000e+03 9.710000000000000000e+02 -1.768000000000000000e+03 1.087000000000000000e+03 -1.926000000000000000e+03 1.162000000000000000e+03 -1.946000000000000000e+03 1.012000000000000000e+03 -7.110000000000000000e+02 8.360000000000000000e+02 -7.150000000000000000e+02 7.010000000000000000e+02 -1.771000000000000000e+03 1.061000000000000000e+03 -1.381000000000000000e+03 1.023000000000000000e+03 -1.395000000000000000e+03 1.154000000000000000e+03 -6.980000000000000000e+02 7.850000000000000000e+02 -1.897000000000000000e+03 1.069000000000000000e+03 -1.161000000000000000e+03 1.070000000000000000e+03 -1.205000000000000000e+03 1.071000000000000000e+03 -1.482000000000000000e+03 1.219000000000000000e+03 -1.525000000000000000e+03 1.148000000000000000e+03 -1.718000000000000000e+03 1.078000000000000000e+03 -6.800000000000000000e+02 7.840000000000000000e+02 -7.770000000000000000e+02 7.740000000000000000e+02 -5.420000000000000000e+02 1.125000000000000000e+03 -2.550000000000000000e+02 8.280000000000000000e+02 -4.290000000000000000e+02 7.260000000000000000e+02 -1.267000000000000000e+03 8.450000000000000000e+02 -1.807000000000000000e+03 8.780000000000000000e+02 -6.250000000000000000e+02 7.640000000000000000e+02 -1.833000000000000000e+03 8.430000000000000000e+02 -9.370000000000000000e+02 7.910000000000000000e+02 -5.780000000000000000e+02 7.870000000000000000e+02 -4.060000000000000000e+02 1.280000000000000000e+03 -1.521000000000000000e+03 1.194000000000000000e+03 -1.378000000000000000e+03 8.310000000000000000e+02 -1.623000000000000000e+03 8.210000000000000000e+02 -1.772000000000000000e+03 1.051000000000000000e+03 -7.540000000000000000e+02 7.770000000000000000e+02 -1.452000000000000000e+03 1.162000000000000000e+03 -1.697000000000000000e+03 8.190000000000000000e+02 -1.944000000000000000e+03 1.047000000000000000e+03 -5.670000000000000000e+02 7.670000000000000000e+02 -1.988000000000000000e+03 1.199000000000000000e+03 -8.730000000000000000e+02 8.340000000000000000e+02 -1.467000000000000000e+03 8.200000000000000000e+02 -1.768000000000000000e+03 8.790000000000000000e+02 -1.234000000000000000e+03 1.353000000000000000e+03 -3.190000000000000000e+02 1.035000000000000000e+03 -7.470000000000000000e+02 8.260000000000000000e+02 -7.910000000000000000e+02 1.140000000000000000e+03 -1.759000000000000000e+03 1.117000000000000000e+03 -1.756000000000000000e+03 9.970000000000000000e+02 -7.840000000000000000e+02 8.280000000000000000e+02 -6.940000000000000000e+02 1.186000000000000000e+03 -1.460000000000000000e+02 8.350000000000000000e+02 -7.250000000000000000e+02 8.170000000000000000e+02 -2.680000000000000000e+02 7.880000000000000000e+02 -2.190000000000000000e+02 6.460000000000000000e+02 -1.418000000000000000e+03 1.252000000000000000e+03 -1.702000000000000000e+03 1.010000000000000000e+03 -3.140000000000000000e+02 7.950000000000000000e+02 -3.930000000000000000e+02 1.286000000000000000e+03 -1.564000000000000000e+03 8.280000000000000000e+02 -1.846000000000000000e+03 1.063000000000000000e+03 -1.516000000000000000e+03 1.114000000000000000e+03 -1.135000000000000000e+03 1.082000000000000000e+03 -8.430000000000000000e+02 7.880000000000000000e+02 -1.598000000000000000e+03 8.200000000000000000e+02 -1.745000000000000000e+03 1.216000000000000000e+03 -1.626000000000000000e+03 7.930000000000000000e+02 -1.284000000000000000e+03 1.297000000000000000e+03 -1.645000000000000000e+03 1.276000000000000000e+03 -4.120000000000000000e+02 7.090000000000000000e+02 -2.690000000000000000e+02 8.240000000000000000e+02 -8.030000000000000000e+02 7.960000000000000000e+02 -4.210000000000000000e+02 8.110000000000000000e+02 -1.780000000000000000e+03 9.180000000000000000e+02 -1.072000000000000000e+03 8.140000000000000000e+02 -2.800000000000000000e+01 8.170000000000000000e+02 -1.531000000000000000e+03 1.123000000000000000e+03 -1.127000000000000000e+03 8.350000000000000000e+02 -3.550000000000000000e+02 1.240000000000000000e+03 -1.997000000000000000e+03 1.020000000000000000e+03 -1.020000000000000000e+03 8.010000000000000000e+02 -1.682000000000000000e+03 8.590000000000000000e+02 -1.802000000000000000e+03 9.230000000000000000e+02 -4.520000000000000000e+02 1.237000000000000000e+03 -1.730000000000000000e+03 1.362000000000000000e+03 -1.906000000000000000e+03 1.056000000000000000e+03 -1.821000000000000000e+03 9.840000000000000000e+02 -1.550000000000000000e+02 8.300000000000000000e+02 -1.086000000000000000e+03 1.111000000000000000e+03 -1.822000000000000000e+03 8.860000000000000000e+02 -1.868000000000000000e+03 1.127000000000000000e+03 -5.470000000000000000e+02 7.700000000000000000e+02 -1.503000000000000000e+03 1.064000000000000000e+03 -1.111000000000000000e+03 1.153000000000000000e+03 -1.180000000000000000e+03 8.020000000000000000e+02 -6.610000000000000000e+02 7.370000000000000000e+02 -1.396000000000000000e+03 1.018000000000000000e+03 -1.517000000000000000e+03 1.183000000000000000e+03 -4.900000000000000000e+01 7.750000000000000000e+02 -6.510000000000000000e+02 7.390000000000000000e+02 -1.773000000000000000e+03 9.620000000000000000e+02 -1.527000000000000000e+03 1.111000000000000000e+03 -7.360000000000000000e+02 7.560000000000000000e+02 -6.400000000000000000e+02 7.400000000000000000e+02 -4.320000000000000000e+02 8.040000000000000000e+02 -1.816000000000000000e+03 8.730000000000000000e+02 -6.180000000000000000e+02 7.900000000000000000e+02 -4.290000000000000000e+02 8.490000000000000000e+02 -1.854000000000000000e+03 8.390000000000000000e+02 -1.771000000000000000e+03 1.098000000000000000e+03 -1.199000000000000000e+03 1.081000000000000000e+03 -1.920000000000000000e+03 9.650000000000000000e+02 -1.074000000000000000e+03 1.226000000000000000e+03 -1.064000000000000000e+03 8.020000000000000000e+02 -1.431000000000000000e+03 8.910000000000000000e+02 -9.920000000000000000e+02 1.211000000000000000e+03 -5.460000000000000000e+02 5.340000000000000000e+02 -9.790000000000000000e+02 1.126000000000000000e+03 -1.767000000000000000e+03 8.390000000000000000e+02 -1.439000000000000000e+03 1.321000000000000000e+03 -1.928000000000000000e+03 1.049000000000000000e+03 -9.410000000000000000e+02 1.310000000000000000e+03 -1.461000000000000000e+03 1.194000000000000000e+03 -1.131000000000000000e+03 8.130000000000000000e+02 -1.216000000000000000e+03 1.186000000000000000e+03 -1.275000000000000000e+03 1.306000000000000000e+03 -1.925000000000000000e+03 1.062000000000000000e+03 -1.109000000000000000e+03 1.319000000000000000e+03 -9.140000000000000000e+02 8.270000000000000000e+02 -1.231000000000000000e+03 7.850000000000000000e+02 -1.360000000000000000e+02 8.210000000000000000e+02 -5.000000000000000000e+00 7.920000000000000000e+02 -2.370000000000000000e+02 8.320000000000000000e+02 -4.210000000000000000e+02 1.254000000000000000e+03 -1.603000000000000000e+03 1.205000000000000000e+03 -4.640000000000000000e+02 8.430000000000000000e+02 -1.540000000000000000e+03 1.150000000000000000e+03 -4.870000000000000000e+02 7.970000000000000000e+02 -2.690000000000000000e+02 1.262000000000000000e+03 -1.461000000000000000e+03 1.334000000000000000e+03 -1.184000000000000000e+03 1.187000000000000000e+03 -1.835000000000000000e+03 1.276000000000000000e+03 -1.719000000000000000e+03 1.089000000000000000e+03 -4.920000000000000000e+02 1.297000000000000000e+03 -1.389000000000000000e+03 8.060000000000000000e+02 -1.366000000000000000e+03 8.300000000000000000e+02 -1.283000000000000000e+03 8.610000000000000000e+02 -1.408000000000000000e+03 8.290000000000000000e+02 -3.750000000000000000e+02 1.217000000000000000e+03 -1.262000000000000000e+03 1.280000000000000000e+03 -1.853000000000000000e+03 9.260000000000000000e+02 -5.720000000000000000e+02 1.344000000000000000e+03 -7.700000000000000000e+02 7.420000000000000000e+02 -1.927000000000000000e+03 1.228000000000000000e+03 -1.424000000000000000e+03 1.338000000000000000e+03 -6.510000000000000000e+02 7.850000000000000000e+02 -1.104000000000000000e+03 8.350000000000000000e+02 -1.244000000000000000e+03 1.358000000000000000e+03 -6.850000000000000000e+02 7.190000000000000000e+02 -5.630000000000000000e+02 8.060000000000000000e+02 -3.680000000000000000e+02 1.249000000000000000e+03 -1.027000000000000000e+03 8.430000000000000000e+02 -1.212000000000000000e+03 1.331000000000000000e+03 -3.200000000000000000e+02 1.068000000000000000e+03 -6.700000000000000000e+01 7.890000000000000000e+02 -1.422000000000000000e+03 1.269000000000000000e+03 -1.852000000000000000e+03 1.157000000000000000e+03 -2.031000000000000000e+03 1.054000000000000000e+03 -1.463000000000000000e+03 1.355000000000000000e+03 -1.255000000000000000e+03 1.351000000000000000e+03 -1.994000000000000000e+03 1.078000000000000000e+03 -1.984000000000000000e+03 1.249000000000000000e+03 -2.041000000000000000e+03 9.140000000000000000e+02 -4.230000000000000000e+02 1.232000000000000000e+03 -1.500000000000000000e+01 7.960000000000000000e+02 -4.120000000000000000e+02 8.040000000000000000e+02 -3.930000000000000000e+02 1.173000000000000000e+03 -1.448000000000000000e+03 1.339000000000000000e+03 -1.897000000000000000e+03 1.004000000000000000e+03 -1.057000000000000000e+03 1.295000000000000000e+03 -6.670000000000000000e+02 7.290000000000000000e+02 -2.030000000000000000e+02 7.810000000000000000e+02 -2.040000000000000000e+02 7.910000000000000000e+02 -1.795000000000000000e+03 8.420000000000000000e+02 -1.359000000000000000e+03 8.470000000000000000e+02 -1.191000000000000000e+03 1.169000000000000000e+03 -1.131000000000000000e+03 8.230000000000000000e+02 -1.576000000000000000e+03 1.352000000000000000e+03 -9.440000000000000000e+02 8.170000000000000000e+02 -1.328000000000000000e+03 1.245000000000000000e+03 -1.089000000000000000e+03 8.100000000000000000e+02 -1.981000000000000000e+03 1.171000000000000000e+03 -7.560000000000000000e+02 7.990000000000000000e+02 -3.230000000000000000e+02 1.164000000000000000e+03 -9.980000000000000000e+02 8.120000000000000000e+02 -1.558000000000000000e+03 1.062000000000000000e+03 -4.470000000000000000e+02 7.770000000000000000e+02 -2.510000000000000000e+02 7.880000000000000000e+02 -1.929000000000000000e+03 1.198000000000000000e+03 -1.949000000000000000e+03 8.590000000000000000e+02 -1.478000000000000000e+03 1.197000000000000000e+03 -1.432000000000000000e+03 1.160000000000000000e+03 -1.758000000000000000e+03 8.780000000000000000e+02 -1.317000000000000000e+03 1.352000000000000000e+03 -1.484000000000000000e+03 8.020000000000000000e+02 -5.490000000000000000e+02 7.820000000000000000e+02 -9.430000000000000000e+02 8.310000000000000000e+02 -1.614000000000000000e+03 1.328000000000000000e+03 -1.091000000000000000e+03 1.306000000000000000e+03 -1.819000000000000000e+03 1.082000000000000000e+03 -1.549000000000000000e+03 1.303000000000000000e+03 -4.100000000000000000e+02 7.380000000000000000e+02 -1.918000000000000000e+03 1.261000000000000000e+03 -9.670000000000000000e+02 8.420000000000000000e+02 -6.750000000000000000e+02 8.000000000000000000e+02 -8.850000000000000000e+02 1.247000000000000000e+03 -1.416000000000000000e+03 1.213000000000000000e+03 -1.338000000000000000e+03 1.335000000000000000e+03 -3.210000000000000000e+02 1.126000000000000000e+03 -1.480000000000000000e+03 1.320000000000000000e+03 -1.379000000000000000e+03 1.356000000000000000e+03 -1.749000000000000000e+03 1.072000000000000000e+03 -1.769000000000000000e+03 1.118000000000000000e+03 -1.871000000000000000e+03 9.040000000000000000e+02 -9.850000000000000000e+02 8.320000000000000000e+02 -1.294000000000000000e+03 7.960000000000000000e+02 -7.790000000000000000e+02 7.630000000000000000e+02 -3.770000000000000000e+02 7.700000000000000000e+02 -1.010000000000000000e+02 7.620000000000000000e+02 -8.020000000000000000e+02 5.180000000000000000e+02 -1.914000000000000000e+03 1.191000000000000000e+03 -1.520000000000000000e+02 7.900000000000000000e+02 -8.410000000000000000e+02 1.190000000000000000e+03 -1.891000000000000000e+03 1.211000000000000000e+03 -1.232000000000000000e+03 1.327000000000000000e+03 -4.150000000000000000e+02 7.510000000000000000e+02 -2.400000000000000000e+01 7.900000000000000000e+02 -1.556000000000000000e+03 1.023000000000000000e+03 -5.650000000000000000e+02 1.117000000000000000e+03 -1.560000000000000000e+03 1.180000000000000000e+03 -7.740000000000000000e+02 7.990000000000000000e+02 -9.850000000000000000e+02 8.160000000000000000e+02 -1.970000000000000000e+03 1.210000000000000000e+03 -1.140000000000000000e+03 1.291000000000000000e+03 -1.058000000000000000e+03 1.354000000000000000e+03 -4.640000000000000000e+02 5.610000000000000000e+02 -5.580000000000000000e+02 5.360000000000000000e+02 -9.440000000000000000e+02 1.243000000000000000e+03 -4.460000000000000000e+02 5.670000000000000000e+02 -1.042000000000000000e+03 1.322000000000000000e+03 -1.471000000000000000e+03 8.080000000000000000e+02 -1.795000000000000000e+03 1.358000000000000000e+03 -9.660000000000000000e+02 1.052000000000000000e+03 -4.320000000000000000e+02 7.910000000000000000e+02 -8.600000000000000000e+02 7.760000000000000000e+02 -1.984000000000000000e+03 1.025000000000000000e+03 -1.932000000000000000e+03 1.350000000000000000e+03 -1.142000000000000000e+03 8.290000000000000000e+02 -7.450000000000000000e+02 7.430000000000000000e+02 -1.717000000000000000e+03 1.229000000000000000e+03 -1.068000000000000000e+03 1.328000000000000000e+03 -4.320000000000000000e+02 1.267000000000000000e+03 -1.244000000000000000e+03 1.254000000000000000e+03 -1.502000000000000000e+03 1.224000000000000000e+03 -9.900000000000000000e+02 1.351000000000000000e+03 -9.310000000000000000e+02 1.333000000000000000e+03 -1.528000000000000000e+03 1.171000000000000000e+03 -4.300000000000000000e+02 7.520000000000000000e+02 -1.547000000000000000e+03 8.360000000000000000e+02 -9.680000000000000000e+02 1.151000000000000000e+03 -1.190000000000000000e+03 1.157000000000000000e+03 -1.296000000000000000e+03 1.336000000000000000e+03 -2.010000000000000000e+03 9.230000000000000000e+02 -1.551000000000000000e+03 1.123000000000000000e+03 -9.420000000000000000e+02 1.347000000000000000e+03 -2.810000000000000000e+02 1.256000000000000000e+03 -5.780000000000000000e+02 5.310000000000000000e+02 -3.990000000000000000e+02 1.216000000000000000e+03 -7.770000000000000000e+02 1.181000000000000000e+03 -7.850000000000000000e+02 8.180000000000000000e+02 -1.315000000000000000e+03 1.193000000000000000e+03 -1.248000000000000000e+03 1.319000000000000000e+03 -1.390000000000000000e+03 1.289000000000000000e+03 -2.800000000000000000e+02 1.027000000000000000e+03 -1.685000000000000000e+03 1.351000000000000000e+03 -1.550000000000000000e+03 1.102000000000000000e+03 -1.201000000000000000e+03 1.052000000000000000e+03 -5.180000000000000000e+02 1.253000000000000000e+03 -1.920000000000000000e+03 1.008000000000000000e+03 -1.896000000000000000e+03 1.294000000000000000e+03 -1.769000000000000000e+03 1.284000000000000000e+03 -4.880000000000000000e+02 1.112000000000000000e+03 -1.417000000000000000e+03 1.169000000000000000e+03 -1.741000000000000000e+03 1.094000000000000000e+03 -1.442000000000000000e+03 1.167000000000000000e+03 -1.509000000000000000e+03 1.000000000000000000e+03 -3.430000000000000000e+02 1.184000000000000000e+03 -1.670000000000000000e+02 7.820000000000000000e+02 -8.350000000000000000e+02 1.212000000000000000e+03 -2.001000000000000000e+03 1.153000000000000000e+03 -1.671000000000000000e+03 1.337000000000000000e+03 -3.300000000000000000e+01 8.080000000000000000e+02 -1.337000000000000000e+03 1.260000000000000000e+03 -3.460000000000000000e+02 1.197000000000000000e+03 -1.624000000000000000e+03 1.337000000000000000e+03 -7.060000000000000000e+02 7.380000000000000000e+02 -1.166000000000000000e+03 1.081000000000000000e+03 -1.918000000000000000e+03 1.051000000000000000e+03 -5.020000000000000000e+02 5.460000000000000000e+02 -5.370000000000000000e+02 8.280000000000000000e+02 -3.530000000000000000e+02 7.830000000000000000e+02 -1.350000000000000000e+03 1.265000000000000000e+03 -1.065000000000000000e+03 1.100000000000000000e+03 -1.172000000000000000e+03 1.192000000000000000e+03 -9.110000000000000000e+02 8.390000000000000000e+02 -2.860000000000000000e+02 6.270000000000000000e+02 -1.927000000000000000e+03 1.182000000000000000e+03 -1.955000000000000000e+03 1.066000000000000000e+03 -1.859000000000000000e+03 8.500000000000000000e+02 -1.820000000000000000e+03 1.028000000000000000e+03 -1.818000000000000000e+03 9.240000000000000000e+02 -1.273000000000000000e+03 8.260000000000000000e+02 -8.440000000000000000e+02 7.730000000000000000e+02 -1.706000000000000000e+03 8.120000000000000000e+02 -2.590000000000000000e+02 1.190000000000000000e+03 -1.308000000000000000e+03 1.252000000000000000e+03 -1.016000000000000000e+03 1.326000000000000000e+03 -1.539000000000000000e+03 1.335000000000000000e+03 -1.889000000000000000e+03 1.304000000000000000e+03 -9.550000000000000000e+02 1.187000000000000000e+03 -2.750000000000000000e+02 6.280000000000000000e+02 -5.910000000000000000e+02 5.280000000000000000e+02 -8.930000000000000000e+02 7.770000000000000000e+02 -1.160000000000000000e+03 1.185000000000000000e+03 -1.730000000000000000e+03 1.271000000000000000e+03 -1.624000000000000000e+03 1.350000000000000000e+03 -5.700000000000000000e+01 8.070000000000000000e+02 -7.310000000000000000e+02 1.293000000000000000e+03 -1.889000000000000000e+03 1.284000000000000000e+03 -7.330000000000000000e+02 8.250000000000000000e+02 -1.090000000000000000e+03 1.080000000000000000e+03 -1.110000000000000000e+03 1.249000000000000000e+03 -1.662000000000000000e+03 1.357000000000000000e+03 -1.501000000000000000e+03 1.353000000000000000e+03 -1.240000000000000000e+03 8.350000000000000000e+02 -1.524000000000000000e+03 1.002000000000000000e+03 -1.706000000000000000e+03 1.354000000000000000e+03 -1.885000000000000000e+03 1.197000000000000000e+03 -1.983000000000000000e+03 1.141000000000000000e+03 -1.045000000000000000e+03 1.181000000000000000e+03 -9.760000000000000000e+02 1.318000000000000000e+03 -1.042000000000000000e+03 8.130000000000000000e+02 -1.228000000000000000e+03 8.440000000000000000e+02 -1.543000000000000000e+03 1.346000000000000000e+03 -1.240000000000000000e+03 8.470000000000000000e+02 -2.380000000000000000e+02 7.770000000000000000e+02 -1.152000000000000000e+03 1.192000000000000000e+03 -1.110000000000000000e+03 1.308000000000000000e+03 -1.434000000000000000e+03 1.275000000000000000e+03 -1.538000000000000000e+03 1.323000000000000000e+03 -1.966000000000000000e+03 1.045000000000000000e+03 -1.909000000000000000e+03 1.318000000000000000e+03 -1.481000000000000000e+03 9.470000000000000000e+02 -1.334000000000000000e+03 1.296000000000000000e+03 -1.327000000000000000e+03 1.343000000000000000e+03 -1.092000000000000000e+03 1.226000000000000000e+03 -1.572000000000000000e+03 8.150000000000000000e+02 -1.225000000000000000e+03 1.271000000000000000e+03 -1.512000000000000000e+03 1.280000000000000000e+03 -7.170000000000000000e+02 1.323000000000000000e+03 -6.550000000000000000e+02 7.250000000000000000e+02 -1.783000000000000000e+03 9.910000000000000000e+02 -1.350000000000000000e+03 1.227000000000000000e+03 -1.906000000000000000e+03 1.039000000000000000e+03 -1.211000000000000000e+03 8.040000000000000000e+02 -1.595000000000000000e+03 1.280000000000000000e+03 -1.108000000000000000e+03 1.276000000000000000e+03 -1.110000000000000000e+03 1.093000000000000000e+03 -1.613000000000000000e+03 1.193000000000000000e+03 -1.782000000000000000e+03 1.304000000000000000e+03 -7.110000000000000000e+02 7.790000000000000000e+02 -1.486000000000000000e+03 1.068000000000000000e+03 -5.210000000000000000e+02 8.170000000000000000e+02 -8.560000000000000000e+02 1.055000000000000000e+03 -1.028000000000000000e+03 1.290000000000000000e+03 -6.950000000000000000e+02 7.380000000000000000e+02 -1.432000000000000000e+03 1.304000000000000000e+03 -1.636000000000000000e+03 1.078000000000000000e+03 -1.572000000000000000e+03 1.256000000000000000e+03 -5.870000000000000000e+02 7.670000000000000000e+02 -2.050000000000000000e+02 6.500000000000000000e+02 -1.876000000000000000e+03 1.013000000000000000e+03 -1.231000000000000000e+03 8.090000000000000000e+02 -7.290000000000000000e+02 1.132000000000000000e+03 -1.592000000000000000e+03 1.266000000000000000e+03 -7.420000000000000000e+02 1.328000000000000000e+03 -1.073000000000000000e+03 1.113000000000000000e+03 -1.083000000000000000e+03 1.264000000000000000e+03 -1.262000000000000000e+03 1.310000000000000000e+03 -1.425000000000000000e+03 1.351000000000000000e+03 -1.164000000000000000e+03 8.130000000000000000e+02 -4.000000000000000000e+02 7.510000000000000000e+02 -1.949000000000000000e+03 1.239000000000000000e+03 -1.786000000000000000e+03 1.065000000000000000e+03 -1.873000000000000000e+03 1.196000000000000000e+03 -1.758000000000000000e+03 8.970000000000000000e+02 -1.648000000000000000e+03 1.261000000000000000e+03 -1.511000000000000000e+03 1.302000000000000000e+03 -4.220000000000000000e+02 7.420000000000000000e+02 -1.080000000000000000e+03 1.156000000000000000e+03 -1.872000000000000000e+03 8.670000000000000000e+02 -9.810000000000000000e+02 1.147000000000000000e+03 -1.275000000000000000e+03 8.010000000000000000e+02 -7.410000000000000000e+02 9.960000000000000000e+02 -1.156000000000000000e+03 1.205000000000000000e+03 -1.010000000000000000e+02 7.820000000000000000e+02 -2.040000000000000000e+03 1.336000000000000000e+03 -1.716000000000000000e+03 1.359000000000000000e+03 -1.920000000000000000e+03 1.315000000000000000e+03 -9.890000000000000000e+02 1.133000000000000000e+03 -8.830000000000000000e+02 1.211000000000000000e+03 -1.492000000000000000e+03 1.359000000000000000e+03 -7.410000000000000000e+02 1.193000000000000000e+03 -1.802000000000000000e+03 9.880000000000000000e+02 -8.810000000000000000e+02 7.770000000000000000e+02 -1.195000000000000000e+03 1.213000000000000000e+03 -1.915000000000000000e+03 1.276000000000000000e+03 -1.497000000000000000e+03 8.970000000000000000e+02 -1.569000000000000000e+03 1.340000000000000000e+03 -5.560000000000000000e+02 1.138000000000000000e+03 -7.620000000000000000e+02 1.326000000000000000e+03 -1.599000000000000000e+03 1.355000000000000000e+03 -2.820000000000000000e+02 1.110000000000000000e+03 -1.262000000000000000e+03 7.680000000000000000e+02 -5.910000000000000000e+02 1.130000000000000000e+03 -1.057000000000000000e+03 1.332000000000000000e+03 -7.330000000000000000e+02 7.750000000000000000e+02 -1.713000000000000000e+03 1.252000000000000000e+03 -1.280000000000000000e+03 1.230000000000000000e+03 -1.301000000000000000e+03 1.354000000000000000e+03 -1.481000000000000000e+03 1.266000000000000000e+03 -1.412000000000000000e+03 1.358000000000000000e+03 -7.530000000000000000e+02 1.275000000000000000e+03 -1.943000000000000000e+03 1.291000000000000000e+03 -1.031000000000000000e+03 1.235000000000000000e+03 -9.120000000000000000e+02 1.193000000000000000e+03 -1.400000000000000000e+03 1.361000000000000000e+03 -1.455000000000000000e+03 1.279000000000000000e+03 -4.220000000000000000e+02 1.116000000000000000e+03 -2.037000000000000000e+03 7.710000000000000000e+02 -1.003000000000000000e+03 1.287000000000000000e+03 -1.126000000000000000e+03 5.110000000000000000e+02 -2.060000000000000000e+02 8.350000000000000000e+02 -1.806000000000000000e+03 1.043000000000000000e+03 -1.472000000000000000e+03 1.337000000000000000e+03 -4.060000000000000000e+02 1.239000000000000000e+03 -1.330000000000000000e+02 8.380000000000000000e+02 -3.930000000000000000e+02 1.250000000000000000e+03 -1.833000000000000000e+03 1.237000000000000000e+03 -1.601000000000000000e+03 1.074000000000000000e+03 -2.000000000000000000e+03 1.268000000000000000e+03 -1.908000000000000000e+03 1.285000000000000000e+03 -1.933000000000000000e+03 1.309000000000000000e+03 -1.533000000000000000e+03 1.016000000000000000e+03 -1.761000000000000000e+03 1.221000000000000000e+03 -1.753000000000000000e+03 1.361000000000000000e+03 -1.945000000000000000e+03 1.194000000000000000e+03 -9.290000000000000000e+02 1.247000000000000000e+03 -9.050000000000000000e+02 1.024000000000000000e+03 -1.140000000000000000e+03 1.362000000000000000e+03 -1.563000000000000000e+03 1.247000000000000000e+03 -1.724000000000000000e+03 1.282000000000000000e+03 -1.134000000000000000e+03 1.142000000000000000e+03 -1.109000000000000000e+03 1.040000000000000000e+03 -1.482000000000000000e+03 1.307000000000000000e+03 -7.800000000000000000e+02 8.090000000000000000e+02 -4.800000000000000000e+02 8.140000000000000000e+02 -4.570000000000000000e+02 7.980000000000000000e+02 -1.923000000000000000e+03 1.288000000000000000e+03 -1.178000000000000000e+03 1.361000000000000000e+03 -1.138000000000000000e+03 1.100000000000000000e+03 -2.400000000000000000e+02 8.020000000000000000e+02 -1.314000000000000000e+03 1.274000000000000000e+03 -1.427000000000000000e+03 1.198000000000000000e+03 -1.936000000000000000e+03 1.030000000000000000e+03 -1.132000000000000000e+03 1.297000000000000000e+03 -1.742000000000000000e+03 1.353000000000000000e+03 -1.740000000000000000e+03 1.277000000000000000e+03 -1.409000000000000000e+03 1.231000000000000000e+03 -8.530000000000000000e+02 1.353000000000000000e+03 -4.190000000000000000e+02 1.244000000000000000e+03 -1.072000000000000000e+03 1.354000000000000000e+03 -7.370000000000000000e+02 1.245000000000000000e+03 -7.560000000000000000e+02 1.295000000000000000e+03 -1.935000000000000000e+03 1.061000000000000000e+03 -9.840000000000000000e+02 1.271000000000000000e+03 -1.814000000000000000e+03 8.010000000000000000e+02 -7.010000000000000000e+02 8.340000000000000000e+02 -1.746000000000000000e+03 9.920000000000000000e+02 -1.190000000000000000e+02 8.140000000000000000e+02 -1.018000000000000000e+03 1.351000000000000000e+03 -1.817000000000000000e+03 8.290000000000000000e+02 -2.032000000000000000e+03 9.500000000000000000e+02 -1.376000000000000000e+03 8.030000000000000000e+02 -1.878000000000000000e+03 1.253000000000000000e+03 -1.901000000000000000e+03 1.232000000000000000e+03 -9.560000000000000000e+02 1.289000000000000000e+03 -9.230000000000000000e+02 1.198000000000000000e+03 -9.610000000000000000e+02 1.318000000000000000e+03 -1.601000000000000000e+03 1.300000000000000000e+03 -1.329000000000000000e+03 1.306000000000000000e+03 -9.420000000000000000e+02 1.361000000000000000e+03 -1.591000000000000000e+03 1.298000000000000000e+03 -1.735000000000000000e+03 1.286000000000000000e+03 -1.897000000000000000e+03 1.222000000000000000e+03 -6.880000000000000000e+02 9.940000000000000000e+02 -1.714000000000000000e+03 1.341000000000000000e+03 -7.480000000000000000e+02 8.110000000000000000e+02 -3.790000000000000000e+02 8.150000000000000000e+02 -1.925000000000000000e+03 1.298000000000000000e+03 -8.310000000000000000e+02 8.100000000000000000e+02 -1.071000000000000000e+03 8.540000000000000000e+02 -1.552000000000000000e+03 1.051000000000000000e+03 -1.385000000000000000e+03 1.273000000000000000e+03 -7.400000000000000000e+02 1.363000000000000000e+03 -3.840000000000000000e+02 7.510000000000000000e+02 -1.961000000000000000e+03 1.036000000000000000e+03 -4.330000000000000000e+02 5.730000000000000000e+02 -4.850000000000000000e+02 1.221000000000000000e+03 -1.491000000000000000e+03 1.204000000000000000e+03 -1.518000000000000000e+03 1.101000000000000000e+03 -1.719000000000000000e+03 1.218000000000000000e+03 -1.259000000000000000e+03 1.252000000000000000e+03 -1.073000000000000000e+03 7.900000000000000000e+02 -1.258000000000000000e+03 1.266000000000000000e+03 -9.900000000000000000e+02 1.331000000000000000e+03 -1.883000000000000000e+03 1.315000000000000000e+03 -1.626000000000000000e+03 1.160000000000000000e+03 -1.747000000000000000e+03 1.111000000000000000e+03 -4.170000000000000000e+02 1.192000000000000000e+03 -1.797000000000000000e+03 1.104000000000000000e+03 -1.100000000000000000e+03 1.212000000000000000e+03 -1.630000000000000000e+02 7.660000000000000000e+02 -1.324000000000000000e+03 1.296000000000000000e+03 -1.558000000000000000e+03 1.272000000000000000e+03 -1.923000000000000000e+03 1.081000000000000000e+03 -2.660000000000000000e+02 6.330000000000000000e+02 -1.239000000000000000e+03 1.295000000000000000e+03 -1.522000000000000000e+03 1.299000000000000000e+03 -2.017000000000000000e+03 1.035000000000000000e+03 -1.430000000000000000e+03 1.242000000000000000e+03 -1.138000000000000000e+03 1.155000000000000000e+03 -5.560000000000000000e+02 1.346000000000000000e+03 -1.015000000000000000e+03 1.152000000000000000e+03 -1.208000000000000000e+03 1.351000000000000000e+03 -1.197000000000000000e+03 1.319000000000000000e+03 -1.912000000000000000e+03 1.344000000000000000e+03 -1.443000000000000000e+03 1.235000000000000000e+03 -1.099000000000000000e+03 1.169000000000000000e+03 -5.990000000000000000e+02 8.000000000000000000e+02 -6.630000000000000000e+02 1.042000000000000000e+03 -1.507000000000000000e+03 1.331000000000000000e+03 -1.526000000000000000e+03 8.040000000000000000e+02 -6.720000000000000000e+02 8.120000000000000000e+02 -2.230000000000000000e+02 7.930000000000000000e+02 -1.628000000000000000e+03 1.322000000000000000e+03 -1.943000000000000000e+03 1.172000000000000000e+03 -5.690000000000000000e+02 1.132000000000000000e+03 -3.280000000000000000e+02 7.940000000000000000e+02 -1.028000000000000000e+03 1.303000000000000000e+03 -1.518000000000000000e+03 1.163000000000000000e+03 -1.393000000000000000e+03 8.310000000000000000e+02 -1.639000000000000000e+03 1.147000000000000000e+03 -1.200000000000000000e+03 1.200000000000000000e+03 -1.681000000000000000e+03 1.316000000000000000e+03 -1.172000000000000000e+03 8.390000000000000000e+02 -1.209000000000000000e+03 1.259000000000000000e+03 -1.953000000000000000e+03 1.270000000000000000e+03 -1.216000000000000000e+03 8.320000000000000000e+02 -1.694000000000000000e+03 1.112000000000000000e+03 -1.209000000000000000e+03 5.230000000000000000e+02 -1.578000000000000000e+03 8.420000000000000000e+02 -1.001000000000000000e+03 1.328000000000000000e+03 -1.457000000000000000e+03 1.320000000000000000e+03 -1.856000000000000000e+03 1.336000000000000000e+03 -1.537000000000000000e+03 1.102000000000000000e+03 -1.861000000000000000e+03 1.221000000000000000e+03 -1.158000000000000000e+03 5.140000000000000000e+02 -1.410000000000000000e+03 1.263000000000000000e+03 -1.150000000000000000e+03 1.358000000000000000e+03 -1.693000000000000000e+03 1.334000000000000000e+03 -1.282000000000000000e+03 8.450000000000000000e+02 -1.487000000000000000e+03 1.167000000000000000e+03 -1.104000000000000000e+03 1.345000000000000000e+03 -1.196000000000000000e+03 1.339000000000000000e+03 -1.282000000000000000e+03 1.347000000000000000e+03 -1.471000000000000000e+03 1.214000000000000000e+03 -9.370000000000000000e+02 1.058000000000000000e+03 -1.777000000000000000e+03 1.018000000000000000e+03 -8.930000000000000000e+02 1.239000000000000000e+03 -6.220000000000000000e+02 1.339000000000000000e+03 -1.321000000000000000e+03 9.750000000000000000e+02 -1.582000000000000000e+03 1.184000000000000000e+03 -1.557000000000000000e+03 1.008000000000000000e+03 -1.751000000000000000e+03 1.271000000000000000e+03 -1.500000000000000000e+03 8.270000000000000000e+02 -1.494000000000000000e+03 1.308000000000000000e+03 -1.338000000000000000e+03 1.209000000000000000e+03 -8.660000000000000000e+02 1.354000000000000000e+03 -5.150000000000000000e+02 8.340000000000000000e+02 -1.133000000000000000e+03 1.205000000000000000e+03 -8.120000000000000000e+02 1.218000000000000000e+03 -1.870000000000000000e+03 1.244000000000000000e+03 -3.200000000000000000e+02 1.057000000000000000e+03 -1.463000000000000000e+03 1.311000000000000000e+03 -1.922000000000000000e+03 1.018000000000000000e+03 -1.149000000000000000e+03 1.214000000000000000e+03 -9.860000000000000000e+02 7.790000000000000000e+02 -1.151000000000000000e+03 1.172000000000000000e+03 -1.395000000000000000e+03 1.272000000000000000e+03 -5.870000000000000000e+02 1.213000000000000000e+03 -7.270000000000000000e+02 1.329000000000000000e+03 -1.676000000000000000e+03 1.346000000000000000e+03 -2.007000000000000000e+03 1.332000000000000000e+03 -3.840000000000000000e+02 1.257000000000000000e+03 -8.810000000000000000e+02 5.090000000000000000e+02 -9.080000000000000000e+02 1.298000000000000000e+03 -1.163000000000000000e+03 7.940000000000000000e+02 -1.753000000000000000e+03 1.288000000000000000e+03 -1.028000000000000000e+03 1.322000000000000000e+03 -1.504000000000000000e+03 1.342000000000000000e+03 -4.250000000000000000e+02 5.790000000000000000e+02 -1.584000000000000000e+03 8.190000000000000000e+02 -1.222000000000000000e+03 1.290000000000000000e+03 -1.639000000000000000e+03 1.345000000000000000e+03 -5.010000000000000000e+02 1.290000000000000000e+03 -1.129000000000000000e+03 1.074000000000000000e+03 -1.180000000000000000e+03 8.260000000000000000e+02 -1.327000000000000000e+03 1.360000000000000000e+03 -1.971000000000000000e+03 1.317000000000000000e+03 -5.020000000000000000e+02 7.830000000000000000e+02 -5.950000000000000000e+02 1.361000000000000000e+03 -1.627000000000000000e+03 1.361000000000000000e+03 -1.114000000000000000e+03 1.168000000000000000e+03 -1.888000000000000000e+03 1.338000000000000000e+03 -1.874000000000000000e+03 1.292000000000000000e+03 -1.416000000000000000e+03 8.090000000000000000e+02 -1.338000000000000000e+03 1.237000000000000000e+03 -9.830000000000000000e+02 1.362000000000000000e+03 -7.740000000000000000e+02 8.290000000000000000e+02 -7.340000000000000000e+02 9.870000000000000000e+02 -1.125000000000000000e+03 1.247000000000000000e+03 -1.581000000000000000e+03 1.274000000000000000e+03 -1.235000000000000000e+03 1.277000000000000000e+03 -8.320000000000000000e+02 1.127000000000000000e+03 -8.700000000000000000e+02 1.276000000000000000e+03 -2.890000000000000000e+02 1.248000000000000000e+03 -1.101000000000000000e+03 1.359000000000000000e+03 -6.110000000000000000e+02 1.033000000000000000e+03 -9.620000000000000000e+02 1.122000000000000000e+03 -4.140000000000000000e+02 7.660000000000000000e+02 -1.851000000000000000e+03 8.960000000000000000e+02 -1.465000000000000000e+03 1.136000000000000000e+03 -1.877000000000000000e+03 1.352000000000000000e+03 -1.650000000000000000e+03 1.355000000000000000e+03 -1.761000000000000000e+03 1.058000000000000000e+03 -1.624000000000000000e+03 1.123000000000000000e+03 -1.834000000000000000e+03 1.286000000000000000e+03 -4.930000000000000000e+02 1.270000000000000000e+03 -1.790000000000000000e+03 1.289000000000000000e+03 -1.843000000000000000e+03 1.239000000000000000e+03 -1.058000000000000000e+03 1.091000000000000000e+03 -1.409000000000000000e+03 1.301000000000000000e+03 -3.570000000000000000e+02 1.144000000000000000e+03 -1.627000000000000000e+03 1.289000000000000000e+03 -1.832000000000000000e+03 1.257000000000000000e+03 -1.049000000000000000e+03 1.196000000000000000e+03 -1.613000000000000000e+03 1.078000000000000000e+03 -1.477000000000000000e+03 7.820000000000000000e+02 -1.349000000000000000e+03 8.400000000000000000e+02 -1.319000000000000000e+03 8.510000000000000000e+02 -1.135000000000000000e+03 1.121000000000000000e+03 -2.026000000000000000e+03 1.068000000000000000e+03 -1.182000000000000000e+03 1.282000000000000000e+03 -8.950000000000000000e+02 1.285000000000000000e+03 -1.051000000000000000e+03 1.230000000000000000e+03 -1.541000000000000000e+03 1.270000000000000000e+03 -1.243000000000000000e+03 1.284000000000000000e+03 -1.851000000000000000e+03 1.138000000000000000e+03 -1.073000000000000000e+03 1.260000000000000000e+03 -8.680000000000000000e+02 1.317000000000000000e+03 -1.375000000000000000e+03 1.342000000000000000e+03 -1.044000000000000000e+03 1.298000000000000000e+03 -5.770000000000000000e+02 1.113000000000000000e+03 -1.089000000000000000e+03 8.310000000000000000e+02 -2.810000000000000000e+02 1.098000000000000000e+03 -1.827000000000000000e+03 1.181000000000000000e+03 -1.036000000000000000e+03 1.189000000000000000e+03 -2.006000000000000000e+03 1.032000000000000000e+03 -1.981000000000000000e+03 1.226000000000000000e+03 -1.082000000000000000e+03 1.311000000000000000e+03 -7.000000000000000000e+02 1.161000000000000000e+03 -1.748000000000000000e+03 1.243000000000000000e+03 -1.857000000000000000e+03 1.207000000000000000e+03 -1.434000000000000000e+03 1.211000000000000000e+03 -1.972000000000000000e+03 1.357000000000000000e+03 -1.481000000000000000e+03 1.331000000000000000e+03 -6.490000000000000000e+02 1.363000000000000000e+03 -1.523000000000000000e+03 1.321000000000000000e+03 -9.820000000000000000e+02 1.290000000000000000e+03 -1.362000000000000000e+03 1.149000000000000000e+03 -1.493000000000000000e+03 1.106000000000000000e+03 -1.215000000000000000e+03 1.244000000000000000e+03 -1.240000000000000000e+03 1.238000000000000000e+03 -3.220000000000000000e+02 1.137000000000000000e+03 -1.086000000000000000e+03 1.326000000000000000e+03 -7.070000000000000000e+02 1.112000000000000000e+03 -1.333000000000000000e+03 1.272000000000000000e+03 -1.946000000000000000e+03 1.155000000000000000e+03 -7.090000000000000000e+02 1.301000000000000000e+03 -1.078000000000000000e+03 1.104000000000000000e+03 -9.950000000000000000e+02 1.294000000000000000e+03 -7.430000000000000000e+02 8.370000000000000000e+02 -1.126000000000000000e+03 1.332000000000000000e+03 -6.320000000000000000e+02 8.250000000000000000e+02 -9.620000000000000000e+02 1.214000000000000000e+03 -1.401000000000000000e+03 1.215000000000000000e+03 -8.040000000000000000e+02 8.100000000000000000e+02 -7.410000000000000000e+02 1.256000000000000000e+03 -1.455000000000000000e+03 1.239000000000000000e+03 -1.456000000000000000e+03 1.185000000000000000e+03 -1.179000000000000000e+03 1.145000000000000000e+03 -1.053000000000000000e+03 1.079000000000000000e+03 -1.649000000000000000e+03 1.066000000000000000e+03 -2.810000000000000000e+02 1.083000000000000000e+03 -1.506000000000000000e+03 1.131000000000000000e+03 -1.027000000000000000e+03 1.172000000000000000e+03 -1.042000000000000000e+03 8.440000000000000000e+02 -7.730000000000000000e+02 1.297000000000000000e+03 -1.296000000000000000e+03 1.318000000000000000e+03 -3.710000000000000000e+02 1.259000000000000000e+03 -1.759000000000000000e+03 9.700000000000000000e+02 -1.856000000000000000e+03 8.850000000000000000e+02 -4.960000000000000000e+02 8.310000000000000000e+02 -1.760000000000000000e+03 1.260000000000000000e+03 -3.220000000000000000e+02 1.089000000000000000e+03 -1.907000000000000000e+03 1.298000000000000000e+03 -1.046000000000000000e+03 5.080000000000000000e+02 -7.650000000000000000e+02 1.272000000000000000e+03 -1.350000000000000000e+03 1.203000000000000000e+03 -1.506000000000000000e+03 1.165000000000000000e+03 -1.140000000000000000e+03 1.224000000000000000e+03 -1.216000000000000000e+03 1.311000000000000000e+03 -1.809000000000000000e+03 1.029000000000000000e+03 -1.812000000000000000e+03 1.111000000000000000e+03 -7.050000000000000000e+02 1.080000000000000000e+03 -1.649000000000000000e+03 1.331000000000000000e+03 -3.480000000000000000e+02 7.980000000000000000e+02 -7.830000000000000000e+02 5.200000000000000000e+02 -8.060000000000000000e+02 1.287000000000000000e+03 -1.366000000000000000e+03 9.450000000000000000e+02 -4.760000000000000000e+02 1.280000000000000000e+03 -9.700000000000000000e+02 1.228000000000000000e+03 -7.260000000000000000e+02 1.149000000000000000e+03 -1.798000000000000000e+03 8.180000000000000000e+02 -9.770000000000000000e+02 1.063000000000000000e+03 -1.857000000000000000e+03 8.190000000000000000e+02 -9.830000000000000000e+02 1.106000000000000000e+03 -7.560000000000000000e+02 1.312000000000000000e+03 -1.210000000000000000e+03 1.277000000000000000e+03 -1.429000000000000000e+03 9.470000000000000000e+02 -1.190000000000000000e+03 1.253000000000000000e+03 diff --git a/tests/expected-results/statistics b/tests/expected-results/statistics deleted file mode 100644 index 028dc2e..0000000 --- a/tests/expected-results/statistics +++ /dev/null @@ -1 +0,0 @@ -([58, 56, 54, 57, 60, 59, 62, 61, 63, 65, 64, 66, 67, 254, 68, 69, 255, 70, 253, 71, 72, 74, 252, 73, 251, 250, 75, 249, 76, 77], [(224, 4327), (221, 4138), (223, 4057), (222, 3987), (225, 3713), (220, 3554), (209, 3516), (207, 3476), (208, 3424), (219, 3360)]) diff --git a/tests/expected-results/triangular_numbers b/tests/expected-results/triangular_numbers deleted file mode 100644 index 728af0e..0000000 --- a/tests/expected-results/triangular_numbers +++ /dev/null @@ -1,54 +0,0 @@ -0 -1 -3 -6 -10 -15 -21 -28 -36 -45 -55 -66 -78 -91 -105 -120 -136 -153 -171 -190 -210 -231 -253 -276 -300 -325 -351 -378 -406 -435 -465 -496 -528 -561 -595 -630 -666 -703 -741 -780 -820 -861 -903 -946 -990 -1035 -1081 -1128 -1176 -1225 -1275 -1326 -1378 -1431 \ No newline at end of file diff --git a/tests/sample-files/20160505T130442.jpg b/tests/sample-files/20160505T130442.jpg deleted file mode 100644 index 15999bb..0000000 Binary files a/tests/sample-files/20160505T130442.jpg and /dev/null differ diff --git a/tests/sample-files/Lenna-grayscale.png b/tests/sample-files/Lenna-grayscale.png deleted file mode 100644 index 314ff36..0000000 Binary files a/tests/sample-files/Lenna-grayscale.png and /dev/null differ diff --git a/tests/sample-files/Lenna.jpg b/tests/sample-files/Lenna.jpg deleted file mode 100644 index 8b22570..0000000 Binary files a/tests/sample-files/Lenna.jpg and /dev/null differ diff --git a/tests/sample-files/free-software-song.ogg b/tests/sample-files/free-software-song.ogg deleted file mode 100644 index e8703bb..0000000 Binary files a/tests/sample-files/free-software-song.ogg and /dev/null differ diff --git a/tests/sample-files/free-software-song.wav b/tests/sample-files/free-software-song.wav deleted file mode 100644 index 405684a..0000000 Binary files a/tests/sample-files/free-software-song.wav and /dev/null differ diff --git a/tests/sample-files/transparent.png b/tests/sample-files/transparent.png deleted file mode 100644 index d2fb11d..0000000 Binary files a/tests/sample-files/transparent.png and /dev/null differ diff --git a/tests/test_exifHeader.py b/tests/test_exifHeader.py deleted file mode 100644 index 893d3a7..0000000 --- a/tests/test_exifHeader.py +++ /dev/null @@ -1,109 +0,0 @@ -#!/usr/bin/env python -# Stegano - Stegano is a pure Python steganography module. -# Copyright (C) 2010-2025 Cédric Bonhomme - https://www.cedricbonhomme.org -# -# For more information : https://github.com/cedricbonhomme/Stegano -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see - -__author__ = "Cedric Bonhomme" -__version__ = "$Revision: 0.2 $" -__date__ = "$Date: 2016/05/17 $" -__revision__ = "$Date: 2017/01/18 $" -__license__ = "GPLv3" - -import io -import os -import unittest - -from stegano import exifHeader - - -class TestEXIFHeader(unittest.TestCase): - def test_hide_empty_message(self): - """Test hiding the empty string.""" - exifHeader.hide( - "./tests/sample-files/20160505T130442.jpg", "./image.jpg", secret_message="" - ) - - clear_message = exifHeader.reveal("./image.jpg") - - self.assertEqual(b"", clear_message) - - def test_hide_and_reveal(self): - messages_to_hide = ["a", "foo", "Hello World!", ":Python:"] - - for message in messages_to_hide: - exifHeader.hide( - "./tests/sample-files/20160505T130442.jpg", - "./image.jpg", - secret_message=message, - ) - - clear_message = exifHeader.reveal("./image.jpg") - - self.assertEqual(message, clear_message.decode()) - - def test_with_image_without_exif_data(self): - exifHeader.hide( - "./tests/sample-files/Lenna.jpg", "./image.jpg", secret_message="" - ) - - clear_message = exifHeader.reveal("./image.jpg") - - self.assertEqual(b"", clear_message) - - def test_with_text_file(self): - text_file_to_hide = "./tests/sample-files/lorem_ipsum.txt" - with open(text_file_to_hide, "rb") as f: - message = f.read() - exifHeader.hide( - "./tests/sample-files/20160505T130442.jpg", - img_enc="./image.jpg", - secret_file=text_file_to_hide, - ) - - clear_message = exifHeader.reveal("./image.jpg") - self.assertEqual(message, clear_message) - - def test_with_png_image(self): - exifHeader.hide( - "./tests/sample-files/Lenna.png", "./image.png", secret_message="Secret" - ) - - with self.assertRaises(ValueError): - exifHeader.reveal("./image.png") - - def test_with_bytes(self): - outputBytes = io.BytesIO() - message = b"Secret" - with open("./tests/sample-files/20160505T130442.jpg", "rb") as f: - exifHeader.hide(f, outputBytes, secret_message=message) - - clear_message = exifHeader.reveal(outputBytes) - self.assertEqual(message, clear_message) - - def tearDown(self): - try: - os.unlink("./image.jpg") - except Exception: - pass - try: - os.unlink("./image.png") - except Exception: - pass - - -if __name__ == "__main__": - unittest.main() diff --git a/tests/test_generators.py b/tests/test_generators.py deleted file mode 100644 index 9bef03a..0000000 --- a/tests/test_generators.py +++ /dev/null @@ -1,201 +0,0 @@ -#!/usr/bin/env python -# Stegano - Stegano is a pure Python steganography module. -# Copyright (C) 2010-2025 Cédric Bonhomme - https://www.cedricbonhomme.org -# -# For more information : https://github.com/cedricbonhomme/Stegano -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see - -__author__ = "Cedric Bonhomme" -__version__ = "$Revision: 0.1 $" -__date__ = "$Date: 2017/03/01 $" -__revision__ = "$Date: 2017/03/01 $" -__license__ = "GPLv3" - -import itertools -import unittest - -import cv2 -import numpy as np - -from stegano.lsb import generators - - -class TestGenerators(unittest.TestCase): - def test_identity(self): - """Test the identity generator.""" - self.assertEqual( - tuple(itertools.islice(generators.identity(), 15)), - (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14), - ) - - def test_fibonacci(self): - """Test the Fibonacci generator.""" - self.assertEqual( - tuple(itertools.islice(generators.fibonacci(), 20)), - ( - 1, - 2, - 3, - 5, - 8, - 13, - 21, - 34, - 55, - 89, - 144, - 233, - 377, - 610, - 987, - 1597, - 2584, - 4181, - 6765, - 10946, - ), - ) - - def test_eratosthenes(self): - """Test the Eratosthenes sieve.""" - with open("./tests/expected-results/eratosthenes") as f: - self.assertEqual( - tuple(itertools.islice(generators.eratosthenes(), 168)), - tuple(int(line) for line in f), - ) - - def test_composite(self): - """Test the composite sieve.""" - with open("./tests/expected-results/composite") as f: - self.assertEqual( - tuple(itertools.islice(generators.composite(), 114)), - tuple(int(line) for line in f), - ) - - def test_fermat(self): - """Test the Fermat generator.""" - with open("./tests/expected-results/fermat") as f: - self.assertEqual( - tuple(itertools.islice(generators.fermat(), 9)), - tuple(int(line) for line in f), - ) - - def test_triangular_numbers(self): - """Test the Triangular numbers generator.""" - with open("./tests/expected-results/triangular_numbers") as f: - self.assertEqual( - tuple(itertools.islice(generators.triangular_numbers(), 54)), - tuple(int(line) for line in f), - ) - - def test_mersenne(self): - """Test the Mersenne generator.""" - with open("./tests/expected-results/mersenne") as f: - self.assertEqual( - tuple(itertools.islice(generators.mersenne(), 20)), - tuple(int(line) for line in f), - ) - - def test_carmichael(self): - """Test the Carmichael generator.""" - with open("./tests/expected-results/carmichael") as f: - self.assertEqual( - tuple(itertools.islice(generators.carmichael(), 33)), - tuple(int(line) for line in f), - ) - - def test_ackermann_slow(self): - """Test the Ackermann set.""" - with open("./tests/expected-results/ackermann") as f: - self.assertEqual(generators.ackermann_slow(3, 1), int(f.readline())) - self.assertEqual(generators.ackermann_slow(3, 2), int(f.readline())) - - def test_ackermann_naive(self): - """Test the Naive Ackermann generator""" - gen = generators.ackermann_naive(3) - next(gen) - with open("./tests/expected-results/ackermann") as f: - self.assertEqual(next(gen), int(f.readline())) - self.assertEqual(next(gen), int(f.readline())) - - def test_ackermann_fast(self): - """Test the Ackermann set.""" - with open("./tests/expected-results/ackermann") as f: - self.assertEqual(generators.ackermann_fast(3, 1), int(f.readline())) - self.assertEqual(generators.ackermann_fast(3, 2), int(f.readline())) - self.assertEqual(generators.ackermann_fast(4, 1), int(f.readline())) - - def test_ackermann(self): - """Test the Ackermann generator""" - gen = generators.ackermann(3) - next(gen) - with open("./tests/expected-results/ackermann") as f: - self.assertEqual(next(gen), int(f.readline())) - self.assertEqual(next(gen), int(f.readline())) - - def test_LFSR(self): - """Test the LFSR generator""" - with open("./tests/expected-results/LFSR") as f: - self.assertEqual( - tuple(itertools.islice(generators.LFSR(2**8), 256)), - tuple(int(line) for line in f), - ) - - def test_shi_tomashi(self): - """Test the Shi Tomashi generator""" - - # The expected results are only for tests/sample-files/Montenach.png file and - # the below mentioned shi-tomashi configuration. - # If the values below are changed, - # please ensure the tests/expected-results/shi_tomashi.txt - # is also appropriately modified - # Using the shi_tomashi_reconfigure static method - - image = cv2.imread("tests/sample-files/Montenach.png") - gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY) - corners = cv2.goodFeaturesToTrack(gray, 1000, 0.001, 10) - # Commented because min_distance argument of generators.shi_tomashi is now set - # to 10.0: - # corners = np.int0(corners) - corners = corners.reshape(corners.shape[0], -1) - test_file = np.loadtxt("tests/expected-results/shi_tomashi.txt") - test_file_reshaped = test_file.reshape( - int(test_file.shape[0]), int(test_file.shape[1]) - ) - res = np.testing.assert_allclose(corners, test_file_reshaped, rtol=1e-0, atol=0) # type: ignore - self.assertIsNone(res) - - @staticmethod - def shi_tomashi_reconfigure( - file_name: str, - max_corners: int = 1000, - quality: float = 0.001, - min_distance: int = 10, - ): - """ - Method to update/reconfigure Shi-Tomashi for various images and configuration - """ - image = cv2.imread(file_name) - gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY) - corners = cv2.goodFeaturesToTrack(gray, max_corners, quality, min_distance) - # Commented because min_distance argument of generators.shi_tomashi is now set - # to 10.0: - # corners = np.int0(corners) - corners = corners.reshape(corners.shape[0], -1) - np.savetxt("tests/expected-results/shi_tomashi.txt", corners) - - -if __name__ == "__main__": - unittest.main() diff --git a/tests/test_lsb.py b/tests/test_lsb.py deleted file mode 100644 index 54004ab..0000000 --- a/tests/test_lsb.py +++ /dev/null @@ -1,248 +0,0 @@ -#!/usr/bin/env python -# Stegano - Stegano is a pure Python steganography module. -# Copyright (C) 2010-2024 Cédric Bonhomme - https://www.cedricbonhomme.org -# -# For more information : https://github.com/cedricbonhomme/Stegano -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see - -__author__ = "Cedric Bonhomme" -__version__ = "$Revision: 0.6 $" -__date__ = "$Date: 2016/04/13 $" -__revision__ = "$Date: 2022/01/04 $" -__license__ = "GPLv3" - -import io -import os -import unittest -from unittest.mock import patch - -from stegano import lsb -from stegano.lsb import generators - - -class TestLSB(unittest.TestCase): - def test_hide_empty_message(self): - """ - Test hiding the empty string. - """ - with self.assertRaises(AssertionError): - lsb.hide("./tests/sample-files/Lenna.png", "", generators.eratosthenes()) - - def test_hide_and_reveal_without_generator(self): - messages_to_hide = ["a", "foo", "Hello World!", ":Python:"] - for message in messages_to_hide: - secret = lsb.hide("./tests/sample-files/Lenna.png", message) - secret.save("./image.png") - - clear_message = lsb.reveal("./image.png") - - self.assertEqual(message, clear_message) - - def test_hide_and_reveal_with_eratosthenes(self): - messages_to_hide = ["a", "foo", "Hello World!", ":Python:"] - for message in messages_to_hide: - secret = lsb.hide( - "./tests/sample-files/Lenna.png", message, generators.eratosthenes() - ) - secret.save("./image.png") - - clear_message = lsb.reveal("./image.png", generators.eratosthenes()) - - self.assertEqual(message, clear_message) - - def test_hide_and_reveal_with_ackermann(self): - messages_to_hide = ["foo"] - for message in messages_to_hide: - secret = lsb.hide( - "./tests/sample-files/Lenna.png", message, generators.ackermann(m=3) - ) - secret.save("./image.png") - - clear_message = lsb.reveal("./image.png", generators.ackermann(m=3)) - - self.assertEqual(message, clear_message) - - def test_hide_and_reveal_with_ackermann_naive(self): - messages_to_hide = ["foo"] - for message in messages_to_hide: - secret = lsb.hide( - "./tests/sample-files/Lenna.png", - message, - generators.ackermann_naive(m=2), - ) - secret.save("./image.png") - - clear_message = lsb.reveal("./image.png", generators.ackermann_naive(m=2)) - - self.assertEqual(message, clear_message) - - def test_hide_and_reveal_with_mersenne(self): - messages_to_hide = ["f"] - for message in messages_to_hide: - secret = lsb.hide( - "./tests/sample-files/Montenach.png", - message, - generators.mersenne(), - ) - secret.save("./image.png") - - clear_message = lsb.reveal("./image.png", generators.mersenne()) - - self.assertEqual(message, clear_message) - - def test_hide_and_reveal_with_shi_tomashi(self): - messages_to_hide = ["foo bar"] - for message in messages_to_hide: - secret = lsb.hide( - "./tests/sample-files/Lenna.png", - message, - generators.shi_tomashi("./tests/sample-files/Lenna.png"), - ) - secret.save("./image.png") - - clear_message = lsb.reveal( - "./image.png", generators.shi_tomashi("./tests/sample-files/Lenna.png") - ) - - self.assertEqual(message, clear_message) - - def test_hide_and_reveal_with_shift(self): - messages_to_hide = ["a", "foo", "Hello World!", ":Python:"] - for message in messages_to_hide: - secret = lsb.hide( - "./tests/sample-files/Lenna.png", message, generators.eratosthenes(), 4 - ) - secret.save("./image.png") - - clear_message = lsb.reveal("./image.png", generators.eratosthenes(), 4) - - self.assertEqual(message, clear_message) - - def test_hide_and_reveal_UTF32LE(self): - messages_to_hide = "I love 🍕 and 🍫!" - secret = lsb.hide( - "./tests/sample-files/Lenna.png", - messages_to_hide, - generators.eratosthenes(), - encoding="UTF-32LE", - ) - secret.save("./image.png") - - clear_message = lsb.reveal( - "./image.png", generators.eratosthenes(), encoding="UTF-32LE" - ) - self.assertEqual(messages_to_hide, clear_message) - - def test_with_transparent_png(self): - messages_to_hide = ["a", "foo", "Hello World!", ":Python:"] - for message in messages_to_hide: - secret = lsb.hide( - "./tests/sample-files/transparent.png", - message, - generators.eratosthenes(), - ) - secret.save("./image.png") - - clear_message = lsb.reveal("./image.png", generators.eratosthenes()) - - self.assertEqual(message, clear_message) - - @patch("builtins.input", return_value="y") - def test_manual_convert_rgb(self, input): - message_to_hide = "Hello World!" - lsb.hide( - "./tests/sample-files/Lenna-grayscale.png", - message_to_hide, - generators.eratosthenes(), - ) - - @patch("builtins.input", return_value="n") - def test_refuse_convert_rgb(self, input): - message_to_hide = "Hello World!" - # lsb.hide( - # "./tests/sample-files/Lenna-grayscale.png", - # message_to_hide, - # generators.eratosthenes(), - # ) - with self.assertRaisesRegex(Exception, "Not a RGB image."): - lsb.hide( - "./tests/sample-files/Lenna-grayscale.png", - message_to_hide, - generators.eratosthenes(), - ) - - def test_with_location_of_image_as_argument(self): - messages_to_hide = ["Hello World!"] - - for message in messages_to_hide: - outputBytes = io.BytesIO() - bytes_image = lsb.hide( - "./tests/sample-files/20160505T130442.jpg", - message, - generators.identity(), - ) - bytes_image.save(outputBytes, "PNG") - outputBytes.seek(0) - - clear_message = lsb.reveal(outputBytes, generators.identity()) - - self.assertEqual(message, clear_message) - - def test_auto_convert_rgb(self): - message_to_hide = "Hello World!" - lsb.hide( - "./tests/sample-files/Lenna-grayscale.png", - message_to_hide, - generators.eratosthenes(), - auto_convert_rgb=True, - ) - - def test_with_too_long_message(self): - with open("./tests/sample-files/lorem_ipsum.txt") as f: - message = f.read() - message += message * 2 - with self.assertRaisesRegex( - Exception, "The message you want to hide is too long:" - ): - lsb.hide("./tests/sample-files/Lenna.png", message, generators.identity()) - - def test_hide_and_reveal_with_bad_generator(self): - message_to_hide = "Hello World!" - secret = lsb.hide( - "./tests/sample-files/Lenna.png", message_to_hide, generators.eratosthenes() - ) - secret.save("./image.png") - - with self.assertRaises(IndexError): - lsb.reveal("./image.png", generators.identity()) - - def test_with_unknown_generator(self): - message_to_hide = "Hello World!" - with self.assertRaises(AttributeError): - lsb.hide( - "./tests/sample-files/Lenna.png", - message_to_hide, - generators.unknown_generator(), # type: ignore - ) - - def tearDown(self): - try: - os.unlink("./image.png") - except Exception: - pass - - -if __name__ == "__main__": - unittest.main() diff --git a/tests/test_red.py b/tests/test_red.py deleted file mode 100644 index acde7d7..0000000 --- a/tests/test_red.py +++ /dev/null @@ -1,64 +0,0 @@ -#!/usr/bin/env python -# Stegano - Stegano is a pure Python steganography module. -# Copyright (C) 2010-2025 Cédric Bonhomme - https://www.cedricbonhomme.org -# -# For more information : https://github.com/cedricbonhomme/Stegano -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see - -__author__ = "Cedric Bonhomme" -__version__ = "$Revision: 0.1 $" -__date__ = "$Date: 2016/05/19 $" -__license__ = "GPLv3" - -import os -import unittest - -from stegano import red - - -class TestRed(unittest.TestCase): - def test_hide_empty_message(self): - """ - Test hiding the empty string. - """ - with self.assertRaises(AssertionError): - red.hide("./tests/sample-files/Lenna.png", "") - - def test_hide_and_reveal(self): - messages_to_hide = ["a", "foo", "Hello World!", ":Python:"] - - for message in messages_to_hide: - secret = red.hide("./tests/sample-files/Lenna.png", message) - secret.save("./image.png") - - clear_message = red.reveal("./image.png") - - self.assertEqual(message, clear_message) - - def test_with_too_long_message(self): - with open("./tests/sample-files/lorem_ipsum.txt") as f: - message = f.read() - with self.assertRaises(AssertionError): - red.hide("./tests/sample-files/Lenna.png", message) - - def tearDown(self): - try: - os.unlink("./image.png") - except Exception: - pass - - -if __name__ == "__main__": - unittest.main() diff --git a/tests/test_steganalysis.py b/tests/test_steganalysis.py deleted file mode 100644 index e017e10..0000000 --- a/tests/test_steganalysis.py +++ /dev/null @@ -1,66 +0,0 @@ -#!/usr/bin/env python - -# Stegano - Stegano is a pure Python steganography module. -# Copyright (C) 2010-2017 Cédric Bonhomme - https://www.cedricbonhomme.org -# -# For more information : https://github.com/cedricbonhomme/Stegano -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see - -__author__ = "Cedric Bonhomme" -__version__ = "$Revision: 0.9.4 $" -__date__ = "$Date: 2019/06/06 $" -__revision__ = "$Date: 2019/06/06 $" -__license__ = "GPLv3" - -import unittest - -from PIL import Image, ImageChops - -from stegano import lsb -from stegano.steganalysis import parity, statistics - - -class TestSteganalysis(unittest.TestCase): - def test_parity(self): - """Test stegano.steganalysis.parity""" - text_file_to_hide = "./tests/sample-files/lorem_ipsum.txt" - with open(text_file_to_hide) as f: - message = f.read() - secret = lsb.hide("./tests/sample-files/Lenna.png", message) - analysis = parity.steganalyse(secret) - target = Image.open("./tests/expected-results/parity.png") - diff = ImageChops.difference(target, analysis).getbbox() - self.assertTrue(diff is None) - - def test_parity_rgba(self): - """Test that stegano.steganalysis.parity works with RGBA images""" - img = Image.open("./tests/sample-files/transparent.png") - analysis = parity.steganalyse(img) - target = Image.open("./tests/expected-results/parity_rgba.png") - diff = ImageChops.difference(target, analysis).getbbox() - self.assertTrue(diff is None) - - def test_statistics(self): - """Test stegano.steganalysis.statistics""" - image = Image.open("./tests/sample-files/Lenna.png") - stats = str(statistics.steganalyse(image)) + "\n" - file = open("./tests/expected-results/statistics") - target = file.read() - file.close() - self.assertEqual(stats, target) - - -if __name__ == "__main__": - unittest.main() diff --git a/tests/test_tools.py b/tests/test_tools.py deleted file mode 100644 index d2aa441..0000000 --- a/tests/test_tools.py +++ /dev/null @@ -1,87 +0,0 @@ -#!/usr/bin/env python -# Stegano - Stegano is a pure Python steganography module. -# Copyright (C) 2010-2025 Cédric Bonhomme - https://www.cedricbonhomme.org -# -# For more information : https://github.com/cedricbonhomme/Stegano -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see - -__author__ = "Cedric Bonhomme" -__version__ = "$Revision: 0.1 $" -__date__ = "$Date: 2017/02/22 $" -__revision__ = "$Date: 2017/02/22 $" -__license__ = "GPLv3" - -import unittest - -from stegano import tools - - -class TestTools(unittest.TestCase): - def test_a2bits(self): - bits = tools.a2bits("Hello World!") - self.assertEqual( - bits, - "010010000110010101101100011011000110111100100000010101110110111101110010011011000110010000100001", - ) - - def test_a2bits_list_UTF8(self): - list_of_bits = tools.a2bits_list("Hello World!") - self.assertEqual( - list_of_bits, - [ - "01001000", - "01100101", - "01101100", - "01101100", - "01101111", - "00100000", - "01010111", - "01101111", - "01110010", - "01101100", - "01100100", - "00100001", - ], - ) - - def test_a2bits_list_UTF32LE(self): - list_of_bits = tools.a2bits_list("Hello World!", "UTF-32LE") - self.assertEqual( - list_of_bits, - [ - "00000000000000000000000001001000", - "00000000000000000000000001100101", - "00000000000000000000000001101100", - "00000000000000000000000001101100", - "00000000000000000000000001101111", - "00000000000000000000000000100000", - "00000000000000000000000001010111", - "00000000000000000000000001101111", - "00000000000000000000000001110010", - "00000000000000000000000001101100", - "00000000000000000000000001100100", - "00000000000000000000000000100001", - ], - ) - - def test_n_at_a_time(self): - result = tools.n_at_a_time([1, 2, 3, 4, 5], 2, "X") - self.assertEqual(list(result), [(1, 2), (3, 4), (5, "X")]) - - def test_binary2base64(self): - with open("./tests/expected-results/binary2base64") as f: - expected_value = f.read() - value = tools.binary2base64("tests/sample-files/free-software-song.ogg") - self.assertEqual(expected_value, value) diff --git a/tests/test_wav.py b/tests/test_wav.py deleted file mode 100644 index 86276d0..0000000 --- a/tests/test_wav.py +++ /dev/null @@ -1,62 +0,0 @@ -#!/usr/bin/env python -# Stegano - Stegano is a pure Python steganography module. -# Copyright (C) 2010-2025 Cédric Bonhomme - https://www.cedricbonhomme.org -# -# For more information : https://github.com/cedricbonhomme/Stegano -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see - -__author__ = "Cedric Bonhomme" -__version__ = "$Revision: 0.1 $" -__date__ = "$Date: 2016/05/19 $" -__license__ = "GPLv3" - -import os -import unittest - -from stegano import wav - - -class TestWav(unittest.TestCase): - def test_hide_empty_message(self): - """ - Test hiding the empty string. - """ - with self.assertRaises(AssertionError): - wav.hide("./tests/sample-files/free-software-song.wav", "", "./audio.wav") - - def test_hide_and_reveal(self): - messages_to_hide = ["a", "foo", "Hello World!", ":Python:"] - - for message in messages_to_hide: - wav.hide("./tests/sample-files/free-software-song.wav", message, "./audio.wav") - clear_message = wav.reveal("./audio.wav") - - self.assertEqual(message, clear_message) - - def test_with_too_long_message(self): - with open("./tests/sample-files/lorem_ipsum.txt") as f: - message = f.read() - with self.assertRaises(AssertionError): - wav.hide("./tests/sample-files/free-software-song.wav", message, "./audio.wav") - - def tearDown(self): - try: - os.unlink("./audio.wav") - except Exception: - pass - - -if __name__ == "__main__": - unittest.main()