Merge pull request #1969 from onionshare/mig/prepare-2.6.3

Prepare 2.6.3
This commit is contained in:
Saptak Sengupta 2025-02-19 19:36:10 +05:30 committed by GitHub
commit 97f7d21da9
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
47 changed files with 2755 additions and 153 deletions

View File

@ -123,7 +123,7 @@ jobs:
- name: Install Python 3.12.8 (universal2)
run: |
curl -L https://www.python.org/ftp/python/3.12.8/python-3.12.8-macos11.pkg --output ~/Downloads/python.pkg
sudo installer -pkg ~/Downloads/python.pkg -target /
cd ~/Downloads && echo "c411b5372d563532f5e6b589af7eb16e95613d61bd5af7bfe78563467130bbff python.pkg" | shasum -a 256 --check && sudo installer -pkg python.pkg -target /
- name: Install poetry
run: |

View File

@ -1,5 +1,24 @@
# OnionShare Changelog
## 2.6.3
* Feature: It is now possible to view what URLs are visited in Share/Website mode using the CLI tool, with `--log-filenames`.
* Feature: It is now possible to automatically start a saved persistent onion tab, once OnionShare itself starts and once Tor is connected.
* Bug fix: It is now once again possible to request bridges and use meek as a Pluggable Transport.
* Bug fix: Fixed a fatal error with Censorship Circumvention when no bridges are returned.
* Bug fix: Fixed an issue with lack of gevent with SocketIO on systems that don't have it.
* Bug fix: Fixed a thread-related race condition segfault with the CLI tool on shutdown.
* Bug fix: Fixed an issue with the 'auto-stop timer' when the CLI tool is being used in 'Share mode' and someone has visited the share at least once. Desktop was unaffected, as were all other modes.
* Locales: Gaeilge, Slovenčina and Tamil languages introduced, and various other translations in existing languages added or improved (thanks to the translators!)
* Documentation: Added examples of using a systemd unit file for persistent onions, and various other clarifications.
* Documentation: Documented all the config file parameters and what they mean, as well as that for persistent onion json files.
* Packaging: Built the snap with a cleanup step in such a way that it should work on Ubuntu 24.04 and higher. Unfortunately, we have to drop support for armhf for now, as there are no PySide6 packages available on Pypi to install for that architecture. However, ARM64 is supported.
* Packaging: Fixed ARM64 packaging for Flatpak.
* Packaging: Many internal packaging improvements that make it easier for us to release snap and flatpak.
* Miscellaneous: Many dependency updates to Python libraries, Tor, Snowflake
* Miscellaneous: Various minor bug fixes/warning messages resolved, and minor changes to some wording for the 'Save this tab' option to make it clearer that this means 'persistent onion address'.
* Miscellaneous: Nicer and more intuitive icons with better dark mode support.
## 2.6.2
* Security fix: Removes newlines from History item path

View File

@ -74,7 +74,7 @@ Update the versions of `meek`, `obfs4proxy`, and `snowflake` in the `desktop/scr
### Make sure Snapcraft packaging works
Ensure you have the ability to run `poetry export`. You may need to run `poetry self add poetry-plugin-export`, as in recent versions of Poetry it is now a plugin rather than in the core.
Ensure you have the ability to run `poetry export`. You may need to run `poetry self add poetry-plugin-export@latest`, as in recent versions of Poetry it is now a plugin rather than in the core.
Enter the `cli` directory and run `poetry export > ../snap/local/cli-requirements.txt`
@ -159,6 +159,7 @@ From https://snapcraft.io/onionshare/releases (you must be logged in), promote t
- [ ] Create a new branch in https://github.com/flathub/org.onionshare.OnionShare for the version
- [ ] Overwrite the manifest in the flathub repo with the updated version in [flatpak/org.onionshare.OnionShare.yaml](./flatpak/org.onionshare.OnionShare.yaml)
- [ ] Edit it so that the sources for `onionshare` and `onionshare-cli` are the GitHub repo, with the correct git tag, rather than the local filesystem
- [ ] Ensure you also copy across the `onionshare-cli.yaml`, `onionshare-desktop.yaml`, `meek-client`, `snowflake` and `obfs4proxy` from the `flatpak/` folder into the flathub repository, so that the flathub repository has all the latest dependencies.
- [ ] Make a PR in the flathub repo, and merge it to make a release
### Windows release

View File

@ -1 +1 @@
2.6.2
2.6.3

View File

@ -76,7 +76,7 @@ class Settings(object):
"el": "Ελληνικά", # Greek
"is": "Íslenska", # Icelandic
# "id": "Bahasa Indonesia", # Indonesian
# "ga": "Gaeilge", # Irish
"ga": "Gaeilge", # Irish
"it": "Italiano", # Italian
"ja": "日本語", # Japanese
"km": "ខ្មែរ", # Khmer(Central)
@ -91,10 +91,11 @@ class Settings(object):
"ru": "Русский", # Russian
"sn": "chiShona", # Shona
# "sr_Latn": "Srpska (latinica)", # Serbian (latin)
# "sk": "Slovenčina", # Slovak
"sk": "Slovenčina", # Slovak
"es": "Español", # Spanish
"sw": "Kiswahili", # Swahili
"sv": "Svenska", # Swedish
"ta": "Tamil", # Tamil
# "te": "తెలుగు", # Telugu
"tr": "Türkçe", # Turkish
"uk": "Українська", # Ukrainian

View File

@ -1,6 +1,6 @@
[tool.poetry]
name = "onionshare_cli"
version = "2.6.2"
version = "2.6.3"
description = "OnionShare lets you securely and anonymously send and receive files. It works by starting a web server, making it accessible as a Tor onion service, and generating an unguessable web address so others can download files from you, or upload files to you. It does _not_ require setting up a separate server or using a third party file-sharing service."
authors = ["Micah Lee <micah@micahflee.com>"]
license = "GPLv3+"

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -24,6 +24,6 @@
<update_contact>micah@micahflee.com</update_contact>
<content_rating type="oars-1.1" />
<releases>
<release type="development" date="2024-03-18" version="2.6.2" />
<release type="development" date="2025-02-13" version="2.6.3" />
</releases>
</component>

2
desktop/poetry.lock generated
View File

@ -1168,7 +1168,7 @@ files = [
[[package]]
name = "onionshare-cli"
version = "2.6.2"
version = "2.6.3"
description = "OnionShare lets you securely and anonymously send and receive files. It works by starting a web server, making it accessible as a Tor onion service, and generating an unguessable web address so others can download files from you, or upload files to you. It does _not_ require setting up a separate server or using a third party file-sharing service."
optional = false
python-versions = ">=3.9,<3.13"

View File

@ -1,6 +1,6 @@
[tool.poetry]
name = "onionshare"
version = "2.6.2"
version = "2.6.3"
description = "OnionShare lets you securely and anonymously send and receive files. It works by starting a web server, making it accessible as a Tor onion service, and generating an unguessable web address so others can download files from you, or upload files to you. It does _not_ require setting up a separate server or using a third party file-sharing service."
authors = ["Micah Lee <micah@micahflee.com>"]
license = "GPLv3+"

View File

@ -3,7 +3,7 @@
import setuptools
# The version must be hard-coded because Snapcraft won't have access to ../cli
version = "2.6.2"
version = "2.6.3"
setuptools.setup(
name="onionshare",

View File

@ -3,7 +3,7 @@
VERSION=$(cat ../cli/onionshare_cli/resources/version.txt)
# Supported locales
LOCALES="en fr de el ja pl ru es tr uk vi"
LOCALES="en sq bg zh_Hans de el ga ja pl ru es tr uk"
# Generate English .po files
make gettext

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -6,9 +6,9 @@
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: OnionShare 2.6.2\n"
"Project-Id-Version: OnionShare 2.6.3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-02-15 09:31+1100\n"
"POT-Creation-Date: 2025-02-18 17:24+1100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"

View File

@ -6,9 +6,9 @@
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: OnionShare 2.6.2\n"
"Project-Id-Version: OnionShare 2.6.3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-02-14 19:35+1100\n"
"POT-Creation-Date: 2025-02-18 17:24+1100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"

View File

@ -6,9 +6,9 @@
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: OnionShare 2.6.2\n"
"Project-Id-Version: OnionShare 2.6.3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-02-14 19:35+1100\n"
"POT-Creation-Date: 2025-02-18 17:24+1100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"

View File

@ -6,9 +6,9 @@
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: OnionShare 2.6.2\n"
"Project-Id-Version: OnionShare 2.6.3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-02-14 19:35+1100\n"
"POT-Creation-Date: 2025-02-18 17:24+1100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"

View File

@ -6,9 +6,9 @@
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: OnionShare 2.6.2\n"
"Project-Id-Version: OnionShare 2.6.3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-02-14 19:35+1100\n"
"POT-Creation-Date: 2025-02-18 17:24+1100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"

View File

@ -6,9 +6,9 @@
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: OnionShare 2.6.2\n"
"Project-Id-Version: OnionShare 2.6.3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-02-14 19:35+1100\n"
"POT-Creation-Date: 2025-02-18 17:24+1100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"

View File

@ -6,9 +6,9 @@
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: OnionShare 2.6.2\n"
"Project-Id-Version: OnionShare 2.6.3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-02-14 19:35+1100\n"
"POT-Creation-Date: 2025-02-18 17:24+1100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"

View File

@ -6,9 +6,9 @@
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: OnionShare 2.6.2\n"
"Project-Id-Version: OnionShare 2.6.3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-02-14 19:35+1100\n"
"POT-Creation-Date: 2025-02-18 17:24+1100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"

View File

@ -6,9 +6,9 @@
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: OnionShare 2.6.2\n"
"Project-Id-Version: OnionShare 2.6.3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-02-14 19:35+1100\n"
"POT-Creation-Date: 2025-02-18 17:24+1100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"

View File

@ -1,6 +1,6 @@
project = "OnionShare"
author = copyright = "Micah Lee, et al."
version = release = "2.6.2"
version = release = "2.6.3"
extensions = ["sphinx_rtd_theme"]
templates_path = ["_templates"]
@ -8,24 +8,21 @@ exclude_patterns = []
languages = [
("English", "en"), # English
("Français", "fr"), # French
("Shqip", "sq"), # Albanian
("Български", "bg"), #Bulgarian
("中文 (简体)", "zh_Hans"), # Simplified Chinese
("Deutsch", "de"), # German
("Ελληνικά", "el"), # Greek
# ("Italiano", "it"), # Italian
("Gaeilge", "ga"), # Irish
("日本語", "ja"), # Japanese
# ("ភាសាខ្មែរ", "km"), # Khmer (Central)
# ("Norsk Bokmål", "nb_NO"), # Norwegian Bokmål
("Polish", "pl"), # Polish
# ("Portuguese (Brazil)", "pt_BR"), # Portuguese (Brazil))
("Русский", "ru"), # Russian
("Español", "es"), # Spanish
# ("Svenska", "sv"), # Swedish
("Türkçe", "tr"), # Turkish
("Українська", "uk"), # Ukrainian
("Tiếng Việt", "vi"), # Vietnamese
]
versions = ["2.3", "2.3.1", "2.3.2", "2.3.3", "2.4", "2.5", "2.6", "2.6.1", "2.6.2"]
versions = ["2.3", "2.3.1", "2.3.2", "2.3.3", "2.4", "2.5", "2.6", "2.6.1", "2.6.2", "2.6.3"]
html_theme = "sphinx_rtd_theme"
html_logo = "_static/logo.png"

View File

@ -0,0 +1,899 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) Micah Lee, et al.
# This file is distributed under the same license as the OnionShare package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2025.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: OnionShare 2.6.3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-02-18 17:24+1100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language: zh_Hans\n"
"Language-Team: zh_Hans <LL@li.org>\n"
"Plural-Forms: nplurals=1; plural=0;\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.17.0\n"
#: ../../source/advanced.rst:2
msgid "Advanced Usage"
msgstr ""
#: ../../source/advanced.rst:7
msgid "Save Tabs"
msgstr ""
#: ../../source/advanced.rst:9
msgid ""
"Closing OnionShare tabs you host destroys them, preventing reuse. "
"Persistently hosted websites are available on the same address even if "
"the computer they are shared from is rebooted."
msgstr ""
#: ../../source/advanced.rst:12
msgid ""
"Make any tab persistent by checking the \"Always open this tab when "
"OnionShare is started\" box before starting your server."
msgstr ""
#: ../../source/advanced.rst:16
msgid ""
"When opening OnionShare, your saved tabs from the prior session will "
"start opened. Each service then can be started manually, and will be "
"available on the same OnionShare address and be protected by the same "
"private key."
msgstr ""
#: ../../source/advanced.rst:19
msgid ""
"If you save a tab, a copy of its onion service secret key is stored on "
"your computer."
msgstr ""
#: ../../source/advanced.rst:24
msgid "Turn Off Private Key"
msgstr ""
#: ../../source/advanced.rst:26
msgid ""
"By default, all OnionShare services are protected with a private key, "
"which Tor calls \"client authentication\"."
msgstr ""
#: ../../source/advanced.rst:28
msgid ""
"The Tor Browser will ask you to enter your private key when you load an "
"OnionShare service. If you want to allow the public to use your service, "
"it's better to disable the private key altogether."
msgstr ""
#: ../../source/advanced.rst:31
msgid ""
"To turn off the private key for any tab, check the \"This is a public "
"OnionShare service (disables private key)\" box before starting the "
"server. Then the server will be public and a private key is not needed to"
" load it in the Tor Browser."
msgstr ""
#: ../../source/advanced.rst:37
msgid "Custom Titles"
msgstr ""
#: ../../source/advanced.rst:39
msgid ""
"When people load OnionShare services in the Tor Browser they see the "
"default title for each type of service. For example, the default title "
"for chat services is \"OnionShare Chat\"."
msgstr ""
#: ../../source/advanced.rst:42
msgid ""
"If you edit the \"Custom title\" setting before starting a server you can"
" change it."
msgstr ""
#: ../../source/advanced.rst:45
msgid "Scheduled Times"
msgstr ""
#: ../../source/advanced.rst:47
msgid ""
"OnionShare supports scheduling exactly when a service should start and "
"stop. Before starting a server, click \"Show advanced settings\" in its "
"tab and then check the boxes next to either \"Start onion service at "
"scheduled time\", \"Stop onion service at scheduled time\", or both, and "
"set the respective desired dates and times."
msgstr ""
#: ../../source/advanced.rst:51
msgid ""
"Services scheduled to start in the future display a countdown timer when "
"the \"Start sharing\" button is clicked. Services scheduled to stop in "
"the future display a countdown timer when started."
msgstr ""
#: ../../source/advanced.rst:54
msgid ""
"**Scheduling an OnionShare service to automatically start can be used as "
"a dead man's switch**. This means your service is made public at a given "
"time in the future if you are not there to prevent it. If nothing happens"
" to you, you can cancel the service before it's scheduled to start."
msgstr ""
#: ../../source/advanced.rst:60
msgid ""
"**Scheduling an OnionShare service to automatically stop limits its "
"exposure**. If you want to share secret info or something that will be "
"outdated, you can do so for selected limited time."
msgstr ""
#: ../../source/advanced.rst:68
msgid "Command-line Interface"
msgstr ""
#: ../../source/advanced.rst:70
msgid ""
"In addition to its graphical interface, OnionShare has a command-line "
"interface."
msgstr ""
#: ../../source/advanced.rst:73
msgid "Installing the CLI version"
msgstr ""
#: ../../source/advanced.rst:75
msgid ""
"If you have installed the Snap, macOS or Windows package, you already "
"have the CLI version installed."
msgstr ""
#: ../../source/advanced.rst:77
msgid ""
"Alternatively, you can install just the command-line version of "
"OnionShare using ``pip3``::"
msgstr ""
#: ../../source/advanced.rst:81
msgid ""
"Note that you will also need the ``tor`` package installed. In macOS, "
"install it with: ``brew install tor``"
msgstr ""
#: ../../source/advanced.rst:83
msgid "Then run it like this::"
msgstr ""
#: ../../source/advanced.rst:87
msgid ""
"Info about installing it on different operating systems can be found in "
"the `CLI README file "
"<https://github.com/onionshare/onionshare/blob/develop/cli/README.md>`_ "
"in the Git repository."
msgstr ""
#: ../../source/advanced.rst:90
msgid "Running the CLI from Snap"
msgstr ""
#: ../../source/advanced.rst:92
msgid ""
"If you installed OnionShare using the Snap package, you can run "
"``onionshare.cli`` to access the command-line interface version."
msgstr ""
#: ../../source/advanced.rst:95
msgid "Running the CLI from macOS"
msgstr ""
#: ../../source/advanced.rst:97
msgid ""
"From Terminal, you can run ``/Applications/OnionShare.app/Contents/MacOS"
"/onionshare-cli --help``"
msgstr ""
#: ../../source/advanced.rst:100
msgid "Running the CLI from Windows"
msgstr ""
#: ../../source/advanced.rst:102
msgid ""
"In the Windows installation, the executable ``onionshare-cli.exe`` is "
"available."
msgstr ""
#: ../../source/advanced.rst:105
msgid "Usage"
msgstr ""
#: ../../source/advanced.rst:107
msgid "Browse the command-line documentation by running ``onionshare --help``::"
msgstr ""
#: ../../source/advanced.rst:170
msgid "Running the CLI as a systemd unit file"
msgstr ""
#: ../../source/advanced.rst:172
msgid ""
"It is possible to automatically start OnionShare from the CLI using a "
"systemd unit file."
msgstr ""
#: ../../source/advanced.rst:174
msgid ""
"You may find this particularly useful if you are operating in "
"'persistent' mode, and want to start the same onion service every time "
"your machine starts."
msgstr ""
#: ../../source/advanced.rst:176
msgid "To do this, you need to prepare some OnionShare json config first."
msgstr ""
#: ../../source/advanced.rst:178
msgid ""
"Here is the main OnionShare config. In this example, it's stored in "
"``/home/user/.config/onionshare/onionshare.json``. You may need to adjust"
" some of the settings, but if you already have OnionShare installed, it "
"probably looks much like this already::"
msgstr ""
#: ../../source/advanced.rst:207
msgid ""
"Notice the 'persistent_tabs' section. We will now create a file at "
"``/home/user/.config/onionshare/persistent/my-persistent-onion.json``, "
"that looks like this::"
msgstr ""
#: ../../source/advanced.rst:247
msgid ""
"**Don't actually use this private key, service_id or client_auth keys! "
"They are shown only as an example. Never share the private_key with "
"anyone.**"
msgstr ""
#: ../../source/advanced.rst:249
msgid ""
"The easiest way to generate the onion address and private key is to first"
" create a 'pinned' OnionShare tab in the desktop app and started the "
"share for the first time. This will then have saved the persistent "
"settings to your ``.config/onionshare/persistent/`` folder with a random "
"name. You can unpin that tab once you've generated it the first time. Or,"
" you can leave it where it is, and use that persistent file in your "
"systemd unit file below."
msgstr ""
#: ../../source/advanced.rst:251
msgid ""
"Now you can create a systemd unit file in ``/etc/systemd/system"
"/onionshare-cli.service``. Be sure to adjust the User and Group to your "
"own user/group, as well as changes to any paths to the onionshare-cli "
"binary or the paths to your JSON configs and shares."
msgstr ""
#: ../../source/advanced.rst:253
msgid "The systemd unit file should look like this::"
msgstr ""
#: ../../source/advanced.rst:268
msgid ""
"Note that although ``/home/user/my-shared-file.txt`` was defined in the "
"``filenames`` section of the ``my-persistent-onion.json`` file, it's "
"still necessary to specify it as the argument to the onionshare-cli "
"command."
msgstr ""
#: ../../source/advanced.rst:270
msgid ""
"Be sure to run ``sudo systemctl daemon-reload`` after creating the unit "
"file."
msgstr ""
#: ../../source/advanced.rst:272
msgid ""
"Now you can run ``sudo systemctl start onionshare-cli.service``. If you "
"have ``journalctl`` installed, you can run ``sudo journalctl -f -t "
"onionshare-cli``, and you should see some output of your service "
"starting::"
msgstr ""
#: ../../source/advanced.rst:282
msgid ""
"If you don't want your users to use a Private Key, set ``public`` to be "
"``true`` in the ``general`` settings of the my-persistent-onion.json "
"file."
msgstr ""
#: ../../source/advanced.rst:286
msgid "Keyboard Shortcuts"
msgstr ""
#: ../../source/advanced.rst:288
msgid ""
"The OnionShare desktop application contains some keyboard shortcuts, for "
"convenience and accessibility::"
msgstr ""
#: ../../source/advanced.rst:293
msgid "And from the main mode chooser screen::"
msgstr ""
#: ../../source/advanced.rst:303
msgid "Migrating your OnionShare data to another computer"
msgstr ""
#: ../../source/advanced.rst:305
msgid ""
"You may want to migrate your OnionShare data when switching to another "
"computer. This is especially true if you had a 'persistent' onion address"
" and you want to preserve it."
msgstr ""
#: ../../source/advanced.rst:307
msgid ""
"OnionShare stores all such data in a specific folder. Copy the relevant "
"folder for your operating system below, to your new computer:"
msgstr ""
#: ../../source/advanced.rst:309
msgid "Linux: ``~/.config/onionshare``"
msgstr ""
#: ../../source/advanced.rst:310
msgid "macOS: ``~/Library/Application Support/OnionShare``"
msgstr ""
#: ../../source/advanced.rst:311
msgid "Windows: ``%APPDATA%\\OnionShare``"
msgstr ""
#: ../../source/advanced.rst:315
msgid "Configuration file parameters"
msgstr ""
#: ../../source/advanced.rst:317
msgid ""
"OnionShare stores its settings in a JSON file. Both the CLI and the "
"Desktop versions use this configuration file. The CLI also lets you "
"specify a path to a custom configuration file with ``--config``."
msgstr ""
#: ../../source/advanced.rst:319
msgid ""
"Below are the configuration file parameters and what they mean. If your "
"configuration file has other parameters not listed here, they may be "
"obsolete from older OnionShare versions."
msgstr ""
#: ../../source/advanced.rst:322 ../../source/advanced.rst:402
#: ../../source/advanced.rst:413 ../../source/advanced.rst:424
#: ../../source/advanced.rst:439 ../../source/advanced.rst:450
#: ../../source/advanced.rst:462
msgid "Parameter"
msgstr ""
#: ../../source/advanced.rst:322 ../../source/advanced.rst:402
#: ../../source/advanced.rst:413 ../../source/advanced.rst:424
#: ../../source/advanced.rst:439 ../../source/advanced.rst:450
#: ../../source/advanced.rst:462
msgid "Type"
msgstr ""
#: ../../source/advanced.rst:322 ../../source/advanced.rst:402
#: ../../source/advanced.rst:413 ../../source/advanced.rst:424
#: ../../source/advanced.rst:439 ../../source/advanced.rst:450
#: ../../source/advanced.rst:462
msgid "Explanation"
msgstr ""
#: ../../source/advanced.rst:324
msgid "version"
msgstr ""
#: ../../source/advanced.rst:324 ../../source/advanced.rst:325
#: ../../source/advanced.rst:326 ../../source/advanced.rst:328
#: ../../source/advanced.rst:330 ../../source/advanced.rst:331
#: ../../source/advanced.rst:332 ../../source/advanced.rst:337
#: ../../source/advanced.rst:338 ../../source/advanced.rst:339
#: ../../source/advanced.rst:340 ../../source/advanced.rst:343
#: ../../source/advanced.rst:404 ../../source/advanced.rst:405
#: ../../source/advanced.rst:406 ../../source/advanced.rst:415
#: ../../source/advanced.rst:426 ../../source/advanced.rst:430
#: ../../source/advanced.rst:452 ../../source/advanced.rst:453
#: ../../source/advanced.rst:465
msgid "``string``"
msgstr ""
#: ../../source/advanced.rst:324
msgid "The version of OnionShare. You should not ever need to change this value."
msgstr ""
#: ../../source/advanced.rst:325
msgid "connection_type"
msgstr ""
#: ../../source/advanced.rst:325
msgid ""
"The way in which OnionShare connects to Tor. Valid options are 'bundled',"
" 'automatic' (use Tor Browser's Tor connection), 'control_port' or "
"'socket_file'. Default: 'bundled'"
msgstr ""
#: ../../source/advanced.rst:326
msgid "control_port_address"
msgstr ""
#: ../../source/advanced.rst:326
msgid ""
"The IP address of Tor's Control port, if ``connection_type`` is set to "
"'control_port'. Default: '127.0.0.1'"
msgstr ""
#: ../../source/advanced.rst:327
msgid "control_port_port"
msgstr ""
#: ../../source/advanced.rst:327 ../../source/advanced.rst:329
#: ../../source/advanced.rst:335
msgid "``integer``"
msgstr ""
#: ../../source/advanced.rst:327
msgid ""
"The port number of Tor's Control port, if ``connection_type`` is set to "
"'control_port'. Default: '9051'"
msgstr ""
#: ../../source/advanced.rst:328
msgid "socks_address"
msgstr ""
#: ../../source/advanced.rst:328
msgid ""
"The IP address of Tor's SOCKS proxy, if ``connection_type`` is set to "
"'control_port' or 'socket_file'. Default: '127.0.0.1'"
msgstr ""
#: ../../source/advanced.rst:329
msgid "socks_port"
msgstr ""
#: ../../source/advanced.rst:329
msgid ""
"The port number of Tor's SOCKS proxy, if ``connection_type`` is set to "
"'control_port' or 'socket_file'. Default: ''9050'"
msgstr ""
#: ../../source/advanced.rst:330
msgid "socket_file_path"
msgstr ""
#: ../../source/advanced.rst:330
msgid ""
"The path to Tor's socket file, if ``connection_type`` is set to "
"'socket_file'. Default: '/var/run/tor/control'"
msgstr ""
#: ../../source/advanced.rst:331
msgid "auth_type"
msgstr ""
#: ../../source/advanced.rst:331
msgid ""
"If access to Tor's control port requires a password, this can be set to "
"'password', otherwise 'no_auth'. Default: 'no_auth'"
msgstr ""
#: ../../source/advanced.rst:332
msgid "auth_password"
msgstr ""
#: ../../source/advanced.rst:332
msgid ""
"If access to Tor's control port requires a password, and ``auth_type`` is"
" set to 'password', specify the password here. Default: ''"
msgstr ""
#: ../../source/advanced.rst:333
msgid "auto_connect"
msgstr ""
#: ../../source/advanced.rst:333 ../../source/advanced.rst:334
#: ../../source/advanced.rst:336 ../../source/advanced.rst:344
#: ../../source/advanced.rst:416 ../../source/advanced.rst:417
#: ../../source/advanced.rst:427 ../../source/advanced.rst:428
#: ../../source/advanced.rst:429 ../../source/advanced.rst:441
#: ../../source/advanced.rst:443 ../../source/advanced.rst:454
#: ../../source/advanced.rst:455 ../../source/advanced.rst:464
#: ../../source/advanced.rst:466
msgid "``boolean``"
msgstr ""
#: ../../source/advanced.rst:333
msgid ""
"Whether OnionShare should automatically connect to Tor when it starts. "
"Default: False"
msgstr ""
#: ../../source/advanced.rst:334
msgid "use_autoupdate"
msgstr ""
#: ../../source/advanced.rst:334
msgid ""
"Whether OnionShare should automatically check for updates (over Tor). "
"This setting is only valid for MacOS or Windows installations. Default: "
"True."
msgstr ""
#: ../../source/advanced.rst:335
msgid "autoupdate_timestamp"
msgstr ""
#: ../../source/advanced.rst:335
msgid "The last time OnionShare checked for updates. Default: None"
msgstr ""
#: ../../source/advanced.rst:336
msgid "bridges_enabled"
msgstr ""
#: ../../source/advanced.rst:336
msgid "Whether to connect to Tor using bridges. Default: False"
msgstr ""
#: ../../source/advanced.rst:337
msgid "bridges_type"
msgstr ""
#: ../../source/advanced.rst:337
msgid ""
"When ``bridges_enabled`` is True, where to load bridges from. Options are"
" \"built-in\" (bridges shipped with OnionShare and which may get updated "
"from Tor), \"moat\" (request bridges from Tor's Moat API), or \"custom\" "
"(user-supplied bridges). Default: \"built-in\""
msgstr ""
#: ../../source/advanced.rst:338
msgid "bridges_builtin_pt"
msgstr ""
#: ../../source/advanced.rst:338
msgid ""
"When ``bridges_type`` is set to \"built-in\", this specifies which type "
"of bridge protocol to use. Options are \"obfs4\", \"meek-azure\" or "
"\"snowflake\". Default: \"obfs4\""
msgstr ""
#: ../../source/advanced.rst:339
msgid "bridges_moat"
msgstr ""
#: ../../source/advanced.rst:339
msgid ""
"When ``bridges_type`` is set to \"moat\", the bridges returned from Tor's"
" Moat API are stored here. Default: \"\""
msgstr ""
#: ../../source/advanced.rst:340
msgid "bridges_custom"
msgstr ""
#: ../../source/advanced.rst:340
msgid ""
"When ``bridges_type`` is set to \"custom\", the bridges specified by the "
"user are stored here. Separate each bridge line in the string with '\\n'."
" Default: \"\""
msgstr ""
#: ../../source/advanced.rst:341
msgid "bridges_builtin"
msgstr ""
#: ../../source/advanced.rst:341
msgid "``dict``"
msgstr ""
#: ../../source/advanced.rst:341
#, python-brace-format
msgid ""
"When ``bridges_type`` is set to \"built-in\", OnionShare obtains the "
"latest built-in bridges recommended by Tor and stores them here. Default:"
" {}"
msgstr ""
#: ../../source/advanced.rst:342
msgid "persistent_tabs"
msgstr ""
#: ../../source/advanced.rst:342 ../../source/advanced.rst:442
#: ../../source/advanced.rst:467
msgid "``list``"
msgstr ""
#: ../../source/advanced.rst:342
msgid ""
"If the user has defined any tabs as 'saved' (meaning that they are "
"persistent each time OnionShare starts, and their onion address doesn't "
"change), these are given a random identifier which gets listed here. The "
"persistent onion is stored as a JSON file with the same name as this "
"identifier, in a subfolder of the OnionShare configuration folder called "
"'persistent'. Default: []"
msgstr ""
#: ../../source/advanced.rst:343
msgid "locale"
msgstr ""
#: ../../source/advanced.rst:343
msgid ""
"The locale used in OnionShare. Default: None (which is the same as 'en')."
" For valid locale codes, see 'available_locales' in "
"https://github.com/onionshare/onionshare/blob/main/cli/onionshare_cli/settings.py"
msgstr ""
#: ../../source/advanced.rst:344
msgid "theme"
msgstr ""
#: ../../source/advanced.rst:344
msgid ""
"The theme for the OnionShare desktop app. Valid options are 0 "
"(automatically detect the user's computer's light or dark theme), 1 "
"(light) or 2 (dark)."
msgstr ""
#: ../../source/advanced.rst:349
msgid "Configuration file parameters for persistent onions"
msgstr ""
#: ../../source/advanced.rst:351
msgid ""
"As described above, each 'persistent' onion has parameters of its own "
"which are stored in its own JSON file. The path to this file can be "
"specified for the CLI tool with ``--persistent``."
msgstr ""
#: ../../source/advanced.rst:353
msgid "Here is an example persistent JSON configuration::"
msgstr ""
#: ../../source/advanced.rst:396
msgid ""
"Below are the configuration file parameters for a persistent onion and "
"what they mean, for each section in the JSON"
msgstr ""
#: ../../source/advanced.rst:399
msgid "onion"
msgstr ""
#: ../../source/advanced.rst:404
msgid "private_key"
msgstr ""
#: ../../source/advanced.rst:404
msgid "Base64-encoded private key of the onion service"
msgstr ""
#: ../../source/advanced.rst:405
msgid "client_auth_priv_key"
msgstr ""
#: ../../source/advanced.rst:405
msgid "The private key when using Client Authentication. Send this to the user."
msgstr ""
#: ../../source/advanced.rst:406
msgid "client_auth_pub_key"
msgstr ""
#: ../../source/advanced.rst:406
msgid ""
"The public key when using Client Authentication. Used on OnionShare's "
"side."
msgstr ""
#: ../../source/advanced.rst:410
msgid "persistent"
msgstr ""
#: ../../source/advanced.rst:415
msgid "mode"
msgstr ""
#: ../../source/advanced.rst:415
msgid ""
"The mode used by this persistent onion. Options are \"share\", "
"\"receive\", \"website\" or \"chat\"."
msgstr ""
#: ../../source/advanced.rst:416
msgid "enabled"
msgstr ""
#: ../../source/advanced.rst:416
msgid ""
"Whether persistence is enabled for this onion. When the persistent option"
" is unchecked in the desktop, this entire JSON file is deleted. Default: "
"true"
msgstr ""
#: ../../source/advanced.rst:417
msgid "autostart_on_launch"
msgstr ""
#: ../../source/advanced.rst:417
msgid ""
"Whether to automatically start this persistent onion when OnionShare "
"starts and once Tor is connected. Default: false"
msgstr ""
#: ../../source/advanced.rst:421
msgid "general"
msgstr ""
#: ../../source/advanced.rst:426
msgid "title"
msgstr ""
#: ../../source/advanced.rst:426
msgid ""
"An optional custom title for displaying on the onion service. Default: "
"null (\"OnionShare\" will be shown instead)"
msgstr ""
#: ../../source/advanced.rst:427
msgid "public"
msgstr ""
#: ../../source/advanced.rst:427
msgid ""
"Whether the onion service can be accessed with or without a Private Key "
"(Client Authentication). If true, no Private Key is required."
msgstr ""
#: ../../source/advanced.rst:428
msgid "autostart_timer"
msgstr ""
#: ../../source/advanced.rst:428
msgid ""
"Whether the onion service is configured to start at a specific time. The "
"time can be set in the desktop app or specified in seconds with ``--auto-"
"start-timer`` with the CLI tool. Default: false"
msgstr ""
#: ../../source/advanced.rst:429
msgid "autostop_timer"
msgstr ""
#: ../../source/advanced.rst:429
msgid ""
"Whether the onion service is configured to stop at a specific time. The "
"time can be set in the desktop app or specified in seconds with ``--auto-"
"stop-timer`` with the CLI tool. Default: false"
msgstr ""
#: ../../source/advanced.rst:430
msgid "service_id"
msgstr ""
#: ../../source/advanced.rst:430
msgid ""
"The 32-character onion service URL, without the scheme and without the "
"'.onion' suffix."
msgstr ""
#: ../../source/advanced.rst:433
msgid ""
"The below are settings specific to the 'mode' specified in the "
"``persistent`` section above."
msgstr ""
#: ../../source/advanced.rst:436
msgid "share"
msgstr ""
#: ../../source/advanced.rst:441
msgid "autostop_sharing"
msgstr ""
#: ../../source/advanced.rst:441
msgid ""
"Whether to automatically stop the share once files are downloaded the "
"first time. Default: true"
msgstr ""
#: ../../source/advanced.rst:442 ../../source/advanced.rst:467
msgid "filenames"
msgstr ""
#: ../../source/advanced.rst:442 ../../source/advanced.rst:467
msgid "A list of files to share. Default: []"
msgstr ""
#: ../../source/advanced.rst:443 ../../source/advanced.rst:466
msgid "log_filenames"
msgstr ""
#: ../../source/advanced.rst:443 ../../source/advanced.rst:466
msgid ""
"Whether to log URL requests to stdout when using the CLI tool. Default: "
"false"
msgstr ""
#: ../../source/advanced.rst:447
msgid "receive"
msgstr ""
#: ../../source/advanced.rst:452
msgid "data_dir"
msgstr ""
#: ../../source/advanced.rst:452
msgid ""
"The path where received files or text messages will be stored. Default: "
"the 'OnionShare' folder of the user's home directory."
msgstr ""
#: ../../source/advanced.rst:453
msgid "webhook_url"
msgstr ""
#: ../../source/advanced.rst:453
msgid ""
"A webhook URL that OnionShare will POST to when it receives files or text"
" messages. Default: null"
msgstr ""
#: ../../source/advanced.rst:454
msgid "disable_text"
msgstr ""
#: ../../source/advanced.rst:454
msgid "Whether to disable receiving text messages. Default: false"
msgstr ""
#: ../../source/advanced.rst:455
msgid "disable_files"
msgstr ""
#: ../../source/advanced.rst:455
msgid "Whether to disable receiving files. Default: false"
msgstr ""
#: ../../source/advanced.rst:459
msgid "website"
msgstr ""
#: ../../source/advanced.rst:464
msgid "disable_csp"
msgstr ""
#: ../../source/advanced.rst:464
msgid ""
"If set to ``true``, OnionShare won't set its default Content Security "
"Policy header for the website. Default: ``false``"
msgstr ""
#: ../../source/advanced.rst:465
msgid "custom_csp"
msgstr ""
#: ../../source/advanced.rst:465
msgid "A custom Content Security Policy header to send instead of the default."
msgstr ""
#: ../../source/advanced.rst:471
msgid "chat"
msgstr ""
#: ../../source/advanced.rst:473
msgid "There are currently no configurable settings for the Chat mode."
msgstr ""

View File

@ -0,0 +1,189 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) Micah Lee, et al.
# This file is distributed under the same license as the OnionShare package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2025.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: OnionShare 2.6.3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-02-12 14:33+1100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language: zh_Hans\n"
"Language-Team: zh_Hans <LL@li.org>\n"
"Plural-Forms: nplurals=1; plural=0;\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.17.0\n"
#: ../../source/develop.rst:2
msgid "Developing OnionShare"
msgstr ""
#: ../../source/develop.rst:7
msgid "Collaborating"
msgstr ""
#: ../../source/develop.rst:9
msgid ""
"OnionShare has an open Keybase team to discuss the project, ask "
"questions, share ideas and designs, and making plans for future "
"development. (It's also an easy way to send end-to-end encrypted direct "
"messages to others in the OnionShare community, like OnionShare "
"addresses.) To use Keybase, download the `Keybase app "
"<https://keybase.io/download>`_, make an account, and `join this team "
"<https://keybase.io/team/onionshare>`_. Within the app, go to \"Teams\", "
"click \"Join a Team\", and type \"onionshare\"."
msgstr ""
#: ../../source/develop.rst:12
msgid ""
"OnionShare also has a `mailing list "
"<https://lists.riseup.net/www/subscribe/onionshare-dev>`_ for developers "
"and and designers to discuss the project."
msgstr ""
#: ../../source/develop.rst:15
msgid "Contributing Code"
msgstr ""
#: ../../source/develop.rst:17
msgid ""
"OnionShare source code is to be found in this Git repository: "
"https://github.com/onionshare/onionshare"
msgstr ""
#: ../../source/develop.rst:19
msgid ""
"If you'd like to contribute code to OnionShare, it helps to join the "
"Keybase team and ask questions about what you're thinking of working on. "
"You should also review all of the `open issues "
"<https://github.com/onionshare/onionshare/issues>`_ on GitHub to see if "
"there are any you'd like to tackle."
msgstr ""
#: ../../source/develop.rst:22
msgid ""
"When you're ready to contribute code, open a pull request in the GitHub "
"repository and one of the project maintainers will review it and possibly"
" ask questions, request changes, reject it, or merge it into the project."
msgstr ""
#: ../../source/develop.rst:27
msgid "Starting Development"
msgstr ""
#: ../../source/develop.rst:29
msgid ""
"OnionShare is developed in Python. To get started, clone the Git "
"repository at https://github.com/onionshare/onionshare/ and then consult "
"the ``cli/README.md`` file to learn how to set up your development "
"environment for the command-line version, and the ``desktop/README.md`` "
"file to learn how to set up your development environment for the "
"graphical version."
msgstr ""
#: ../../source/develop.rst:32
msgid ""
"Those files contain the necessary technical instructions and commands "
"install dependencies for your platform, and to run OnionShare from the "
"source tree."
msgstr ""
#: ../../source/develop.rst:35
msgid "Debugging tips"
msgstr ""
#: ../../source/develop.rst:38
msgid "Verbose mode"
msgstr ""
#: ../../source/develop.rst:40
msgid ""
"When developing, it's convenient to run OnionShare from a terminal and "
"add the ``--verbose`` (or ``-v``) flag to the command. This prints a lot "
"of helpful messages to the terminal, such as when certain objects are "
"initialized, when events occur (like buttons clicked, settings saved or "
"reloaded), and other debug info. For example::"
msgstr ""
#: ../../source/develop.rst:117
msgid ""
"You can add your own debug messages by running the ``Common.log`` method "
"from ``onionshare/common.py``. For example::"
msgstr ""
#: ../../source/develop.rst:121
msgid ""
"This can be useful when learning the chain of events that occur when "
"using OnionShare, or the value of certain variables before and after they"
" are manipulated."
msgstr ""
#: ../../source/develop.rst:124
msgid "Local Only"
msgstr ""
#: ../../source/develop.rst:126
msgid ""
"Tor is slow, and it's often convenient to skip starting onion services "
"altogether during development. You can do this with the ``--local-only`` "
"flag. For example::"
msgstr ""
#: ../../source/develop.rst:165
msgid ""
"In this case, you load the URL ``http://127.0.0.1:17641`` in a normal "
"web-browser like Firefox, instead of using the Tor Browser. The private "
"key is not actually needed in local-only mode, so you can ignore it."
msgstr ""
#: ../../source/develop.rst:168
msgid "Contributing Translations"
msgstr ""
#: ../../source/develop.rst:170
msgid ""
"Help make OnionShare easier to use and more familiar and welcoming for "
"people by translating it on `Hosted Weblate "
"<https://hosted.weblate.org/projects/onionshare/>`_. Always keep the "
"\"OnionShare\" in latin letters, and use \"OnionShare (localname)\" if "
"needed."
msgstr ""
#: ../../source/develop.rst:172
msgid "To help translate, make a Hosted Weblate account and start contributing."
msgstr ""
#: ../../source/develop.rst:175
msgid "Suggestions for Original English Strings"
msgstr ""
#: ../../source/develop.rst:177
msgid ""
"Sometimes the original English strings are wrong, or don't match between "
"the application and the documentation."
msgstr ""
#: ../../source/develop.rst:179
msgid ""
"File source string improvements by adding @kingu to your Weblate comment,"
" or open a GitHub issue or pull request. The latter ensures all upstream "
"developers see the suggestion, and can potentially modify the string via "
"the usual code review processes."
msgstr ""
#: ../../source/develop.rst:183
msgid "Status of Translations"
msgstr ""
#: ../../source/develop.rst:184
msgid ""
"Here is the current translation status. If you want start a translation "
"in a language not yet started, please write to the mailing list: "
"onionshare-dev@lists.riseup.net"
msgstr ""

View File

@ -0,0 +1,442 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) Micah Lee, et al.
# This file is distributed under the same license as the OnionShare package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2025.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: OnionShare 2.6.3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-02-12 14:33+1100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language: zh_Hans\n"
"Language-Team: zh_Hans <LL@li.org>\n"
"Plural-Forms: nplurals=1; plural=0;\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.17.0\n"
#: ../../source/features.rst:4
msgid "How OnionShare Works"
msgstr ""
#: ../../source/features.rst:6
msgid ""
"Web servers are started locally on your computer and made accessible to "
"other people as `Tor <https://www.torproject.org/>`_ `onion services "
"<https://community.torproject.org/onion-services/>`_."
msgstr ""
#: ../../source/features.rst:8
msgid "By default, OnionShare web addresses are protected with a private key."
msgstr ""
#: ../../source/features.rst:10
msgid "OnionShare addresses look something like this::"
msgstr ""
#: ../../source/features.rst:14
msgid "And private keys might look something like this::"
msgstr ""
#: ../../source/features.rst:18
msgid ""
"You're responsible for securely sharing that URL and private key using a "
"communication channel of your choice like in an encrypted chat message, "
"or using something less secure like unencrypted email, depending on your "
"`threat model <https://ssd.eff.org/module/your-security-plan>`_."
msgstr ""
#: ../../source/features.rst:20
msgid ""
"The people you send the URL to then copy and paste it into their `Tor "
"Browser <https://www.torproject.org/>`_ to access the OnionShare service."
" Tor Browser will then prompt for the private key, which the people can "
"also then copy and paste in."
msgstr ""
#: ../../source/features.rst:24
msgid ""
"If you run OnionShare on your laptop to send someone files, and then "
"suspend it before the files are sent, the service will not be available "
"until your laptop is unsuspended and on the internet again. OnionShare "
"works best when working with people in real-time."
msgstr ""
#: ../../source/features.rst:26
msgid ""
"Because your own computer is the web server, *no third party can access "
"anything that happens in OnionShare*, not even the developers of "
"OnionShare. It's completely private. And because OnionShare is based on "
"Tor onion services too, it also protects your anonymity. See the "
":doc:`security design </security>` for more info."
msgstr ""
#: ../../source/features.rst:29
msgid "Share Files"
msgstr ""
#: ../../source/features.rst:31
msgid ""
"You can use OnionShare to send files and folders to people securely and "
"anonymously. Open a share tab, drag in the files and folders you wish to "
"share, and click \"Start sharing\"."
msgstr ""
#: ../../source/features.rst:35 ../../source/features.rst:117
msgid ""
"After you add files, you'll see some settings. Make sure you choose the "
"setting you're interested in before you start sharing."
msgstr ""
#: ../../source/features.rst:39
msgid ""
"As soon as someone finishes downloading your files, OnionShare will "
"automatically stop the server, removing the website from the internet. To"
" allow multiple people to download them, uncheck the \"Stop sharing after"
" files have been sent (uncheck to allow downloading individual files)\" "
"box."
msgstr ""
#: ../../source/features.rst:42
msgid ""
"Also, if you uncheck this box, people will be able to download the "
"individual files you share rather than a single compressed version of all"
" the files."
msgstr ""
#: ../../source/features.rst:44
msgid ""
"When you're ready to share, click the \"Start sharing\" button. You can "
"always click \"Stop sharing\", or quit OnionShare, immediately taking the"
" website down. You can also click the \"↑\" icon in the top-right corner "
"to show the history and progress of people downloading files from you."
msgstr ""
#: ../../source/features.rst:48
msgid ""
"Now that you have a OnionShare, copy the address and the private key and "
"send it to the person you want to receive the files. If the files need to"
" stay secure, or the person is otherwise exposed to danger, use an "
"encrypted messaging app."
msgstr ""
#: ../../source/features.rst:50
msgid ""
"That person then must load the address in Tor Browser. After logging in "
"with the private key, the files can be downloaded directly from your "
"computer by clicking the \"Download Files\" link in the corner."
msgstr ""
#: ../../source/features.rst:55
msgid "Receive Files and Messages"
msgstr ""
#: ../../source/features.rst:57
msgid ""
"You can use OnionShare to let people anonymously submit files and "
"messages directly to your computer, essentially turning it into an "
"anonymous dropbox. Open a receive tab and choose the settings that you "
"want."
msgstr ""
#: ../../source/features.rst:62
msgid "You can browse for a folder to save messages and files that get submitted."
msgstr ""
#: ../../source/features.rst:64
msgid ""
"You can check \"Disable submitting text\" if want to only allow file "
"uploads, and you can check \"Disable uploading files\" if you want to "
"only allow submitting text messages, like for an anonymous contact form."
msgstr ""
#: ../../source/features.rst:66
msgid ""
"You can check \"Use notification webhook\" and then choose a webhook URL "
"if you want to be notified when someone submits files or messages to your"
" OnionShare service. If you use this feature, OnionShare will make an "
"HTTP POST request to this URL whenever someone submits files or messages."
" For example, if you want to get an encrypted text messaging on the "
"messaging app `Keybase <https://keybase.io/>`_, you can start a "
"conversation with `@webhookbot <https://keybase.io/webhookbot>`_, type "
"``!webhook create onionshare-alerts``, and it will respond with a URL. "
"Use that as the notification webhook URL. If someone uploads a file to "
"your receive mode service, @webhookbot will send you a message on Keybase"
" letting you know as soon as it happens."
msgstr ""
#: ../../source/features.rst:71
msgid ""
"When you are ready, click \"Start Receive Mode\". This starts the "
"OnionShare service. Anyone loading this address in their Tor Browser will"
" be able to submit files and messages which get uploaded to your "
"computer."
msgstr ""
#: ../../source/features.rst:75
msgid ""
"You can also click the down \"↓\" icon in the top-right corner to show "
"the history and progress of people sending files to you."
msgstr ""
#: ../../source/features.rst:77
msgid "Here is what it looks like for someone sending you files and messages."
msgstr ""
#: ../../source/features.rst:81
msgid ""
"When someone submits files or messages to your receive service, by "
"default they get saved to a folder called ``OnionShare`` in the home "
"folder on your computer, automatically organized into separate subfolders"
" based on the time that the files get uploaded."
msgstr ""
#: ../../source/features.rst:83
msgid ""
"Setting up an OnionShare receiving service is useful for journalists and "
"others needing to securely accept documents from anonymous sources. When "
"used in this way, OnionShare is sort of like a lightweight, simpler, not "
"quite as secure version of `SecureDrop <https://securedrop.org/>`_, the "
"whistleblower submission system."
msgstr ""
#: ../../source/features.rst:86
msgid "Use at your own risk"
msgstr ""
#: ../../source/features.rst:88
msgid ""
"Just like with malicious email attachments, it's possible someone could "
"try to attack your computer by uploading a malicious file to your "
"OnionShare service. OnionShare does not add any safety mechanisms to "
"protect your system from malicious files."
msgstr ""
#: ../../source/features.rst:90
msgid ""
"If you receive an Office document or a PDF through OnionShare, you can "
"convert these documents into PDFs that are safe to open using `Dangerzone"
" <https://dangerzone.rocks/>`_. You can also protect yourself when "
"opening untrusted documents by opening them in `Tails "
"<https://tails.boum.org/>`_ or in a `Qubes <https://qubes-os.org/>`_ "
"disposableVM."
msgstr ""
#: ../../source/features.rst:92
msgid "However, it is always safe to open text messages sent through OnionShare."
msgstr ""
#: ../../source/features.rst:95
msgid "Tips for running a receive service"
msgstr ""
#: ../../source/features.rst:97
msgid ""
"If you want to host your own anonymous dropbox using OnionShare, it's "
"recommended you do so on a separate, dedicated computer always powered on"
" and connected to the internet, and not on the one you use on a regular "
"basis."
msgstr ""
#: ../../source/features.rst:99
msgid ""
"If you intend to put the OnionShare address on your website or social "
"media profiles, save the tab (see :ref:`save_tabs`) and run it as a "
"public service (see :ref:`turn_off_private_key`). It's also a good idea "
"to give it a custom title (see :ref:`custom_titles`)."
msgstr ""
#: ../../source/features.rst:102
msgid "Other caveats to be aware of in Receive Mode"
msgstr ""
#: ../../source/features.rst:104
msgid ""
"There are reports that OnionBrowser on iOS devices are unable to upload "
"files to an OnionShare in Receive Mode, when operating in 'Silver' "
"security mode. Try Bronze or Gold to see if you are able to upload a "
"message or a file."
msgstr ""
#: ../../source/features.rst:107
msgid "Host a Website"
msgstr ""
#: ../../source/features.rst:109
msgid ""
"To host a static HTML website with OnionShare, open a website tab, drag "
"the files and folders that make up the static content there, and click "
"\"Start sharing\" when you are ready."
msgstr ""
#: ../../source/features.rst:113
msgid ""
"If you add an ``index.html`` file, it will render when someone loads your"
" website. You should also include any other HTML files, CSS files, "
"JavaScript files, and images that make up the website. (Note that "
"OnionShare only supports hosting *static* websites. It can't host "
"websites that execute code or use databases. So you can't for example use"
" WordPress.)"
msgstr ""
#: ../../source/features.rst:115
msgid ""
"If you don't have an ``index.html`` file, it will show a directory "
"listing instead, and people loading it can look through the files and "
"download them."
msgstr ""
#: ../../source/features.rst:122
msgid "Content Security Policy"
msgstr ""
#: ../../source/features.rst:124
msgid ""
"By default OnionShare helps secure your website by setting a strict "
"`Content Security Policy "
"<https://en.wikipedia.org/wiki/Content_Security_Policy>`_ header. "
"However, this prevents third-party content from loading inside the web "
"page."
msgstr ""
#: ../../source/features.rst:126
msgid ""
"If you want to load content from third-party websites, like assets or "
"JavaScript libraries from CDNs, you have two options:"
msgstr ""
#: ../../source/features.rst:128
msgid ""
"You can disable sending a Content Security Policy header by checking the "
"\"Don't send Content Security Policy header (allows your website to use "
"third-party resources)\" box before starting the service."
msgstr ""
#: ../../source/features.rst:129
msgid "You can send a custom Content Security Policy header."
msgstr ""
#: ../../source/features.rst:132
msgid "Tips for running a website service"
msgstr ""
#: ../../source/features.rst:134
msgid ""
"If you want to host a long-term website using OnionShare (meaning not "
"just to quickly show someone something), it's recommended you do it on a "
"separate, dedicated computer that is always powered on and connected to "
"the internet, and not on the one you use on a regular basis. Save the tab"
" (see :ref:`save_tabs`) so you can resume the website with the same "
"address if you close OnionShare and re-open it later."
msgstr ""
#: ../../source/features.rst:137
msgid ""
"If your website is intended for the public, you should run it as a public"
" service (see :ref:`turn_off_private_key`)."
msgstr ""
#: ../../source/features.rst:140
msgid "Chat Anonymously"
msgstr ""
#: ../../source/features.rst:142
msgid ""
"You can use OnionShare to set up a private, secure chat room that doesn't"
" log anything. Just open a chat tab and click \"Start chat server\"."
msgstr ""
#: ../../source/features.rst:146
msgid ""
"After you start the server, copy the OnionShare address and private key "
"and send them to the people you want in the anonymous chat room. If it's "
"important to limit exactly who can join, use an encrypted messaging app "
"to send out the OnionShare address and private key."
msgstr ""
#: ../../source/features.rst:151
msgid ""
"People can join the chat room by loading its OnionShare address in Tor "
"Browser. The chat room requires JavasScript, so everyone who wants to "
"participate must have their Tor Browser security level set to "
"\"Standard\" or \"Safer\", instead of \"Safest\"."
msgstr ""
#: ../../source/features.rst:154
msgid ""
"When someone joins the chat room they get assigned a random name. They "
"can change their name by typing a new name in the box in the left panel "
"and pressing ↵. Since the chat history isn't saved anywhere, it doesn't "
"get displayed at all, even if others were already chatting in the room."
msgstr ""
#: ../../source/features.rst:160
msgid ""
"In an OnionShare chat room, everyone is anonymous. Anyone can change "
"their name to anything, and there is no way to confirm anyone's identity."
msgstr ""
#: ../../source/features.rst:163
msgid ""
"However, if you create an OnionShare chat room and securely send the "
"address only to a small group of trusted friends using encrypted "
"messages, you can be reasonably confident the people joining the chat "
"room are your friends."
msgstr ""
#: ../../source/features.rst:166
msgid "How is this useful?"
msgstr ""
#: ../../source/features.rst:168
msgid ""
"If you need to already be using an encrypted messaging app, what's the "
"point of an OnionShare chat room to begin with? It leaves less traces."
msgstr ""
#: ../../source/features.rst:170
msgid ""
"If you for example send a message to a Signal group, a copy of your "
"message ends up on each device (the smartphones, and computers if they "
"set up Signal Desktop) of each member of the group. Even if disappearing "
"messages is turned on, it's hard to confirm all copies of the messages "
"are actually deleted from all devices, and from any other places (like "
"notifications databases) they may have been saved to. OnionShare chat "
"rooms don't store any messages anywhere, so the problem is reduced to a "
"minimum."
msgstr ""
#: ../../source/features.rst:173
msgid ""
"OnionShare chat rooms can also be useful for people wanting to chat "
"anonymously and securely with someone without needing to create any "
"accounts. For example, a source can send an OnionShare address to a "
"journalist using a disposable email address, and then wait for the "
"journalist to join the chat room, all without compromosing their "
"anonymity."
msgstr ""
#: ../../source/features.rst:177
msgid "How does the encryption work?"
msgstr ""
#: ../../source/features.rst:179
msgid ""
"Because OnionShare relies on Tor onion services, connections between the "
"Tor Browser and OnionShare are all end-to-end encrypted (E2EE). When "
"someone posts a message to an OnionShare chat room, they send it to the "
"server through the E2EE onion connection, which then sends it to all "
"other members of the chat room using WebSockets, through their E2EE onion"
" connections."
msgstr ""
#: ../../source/features.rst:181
msgid ""
"OnionShare doesn't implement any chat encryption on its own. It relies on"
" the Tor onion service's encryption instead."
msgstr ""

View File

@ -0,0 +1,70 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) Micah Lee, et al.
# This file is distributed under the same license as the OnionShare package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2025.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: OnionShare 2.6.3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-02-12 14:33+1100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language: zh_Hans\n"
"Language-Team: zh_Hans <LL@li.org>\n"
"Plural-Forms: nplurals=1; plural=0;\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.17.0\n"
#: ../../source/help.rst:2
msgid "Getting Help"
msgstr ""
#: ../../source/help.rst:5
msgid "Read This Website"
msgstr ""
#: ../../source/help.rst:7
msgid ""
"You will find instructions on how to use OnionShare. Look through all of "
"the sections first to see if anything answers your questions."
msgstr ""
#: ../../source/help.rst:10
msgid "Check the GitHub Issues"
msgstr ""
#: ../../source/help.rst:12
msgid ""
"If it isn't on the website, please check the `GitHub issues "
"<https://github.com/onionshare/onionshare/issues>`_. It's possible "
"someone else has encountered the same problem and either raised it with "
"the developers, or maybe even posted a solution."
msgstr ""
#: ../../source/help.rst:15
msgid "Submit an Issue Yourself"
msgstr ""
#: ../../source/help.rst:17
msgid ""
"If you are unable to find a solution, or wish to ask a question or "
"suggest a new feature, please `submit an issue "
"<https://github.com/onionshare/onionshare/issues/new>`_. This requires "
"`creating a GitHub account <https://help.github.com/articles/signing-up-"
"for-a-new-github-account/>`_."
msgstr ""
#: ../../source/help.rst:20
msgid "Join our Keybase Team"
msgstr ""
#: ../../source/help.rst:22
msgid ""
"See :ref:`collaborating` on how to join the Keybase team used to discuss "
"the project."
msgstr ""

View File

@ -0,0 +1,31 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) Micah Lee, et al.
# This file is distributed under the same license as the OnionShare package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2025.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: OnionShare 2.6.3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-02-12 14:33+1100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language: zh_Hans\n"
"Language-Team: zh_Hans <LL@li.org>\n"
"Plural-Forms: nplurals=1; plural=0;\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.17.0\n"
#: ../../source/index.rst:2
msgid "OnionShare's documentation"
msgstr ""
#: ../../source/index.rst:6
msgid ""
"OnionShare is an open source tool that lets you securely and anonymously "
"share files, host websites, and chat with friends using the Tor network."
msgstr ""

View File

@ -0,0 +1,433 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) Micah Lee, et al.
# This file is distributed under the same license as the OnionShare package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2025.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: OnionShare 2.6.3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-02-12 14:33+1100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language: zh_Hans\n"
"Language-Team: zh_Hans <LL@li.org>\n"
"Plural-Forms: nplurals=1; plural=0;\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.17.0\n"
#: ../../source/install.rst:2
msgid "Installation"
msgstr ""
#: ../../source/install.rst:5
msgid "Windows or macOS"
msgstr ""
#: ../../source/install.rst:7
msgid ""
"You can download OnionShare for Windows and macOS from the `OnionShare "
"website <https://onionshare.org/>`_."
msgstr ""
#: ../../source/install.rst:12
msgid "Mobile"
msgstr ""
#: ../../source/install.rst:14
msgid "You can download OnionShare for Mobile from the follow links"
msgstr ""
#: ../../source/install.rst:16
msgid "Android"
msgstr ""
#: ../../source/install.rst:17
msgid ""
"Google Play: "
"https://play.google.com/store/apps/details?id=org.onionshare.android"
msgstr ""
#: ../../source/install.rst:18
msgid "F-Droid: https://github.com/onionshare/onionshare-android-nightly"
msgstr ""
#: ../../source/install.rst:20
msgid "iOS"
msgstr ""
#: ../../source/install.rst:21
msgid "Apple App Store: https://apps.apple.com/app/onionshare/id1601890129"
msgstr ""
#: ../../source/install.rst:22
msgid "Direct IPA download: https://github.com/onionshare/onionshare-ios/releases"
msgstr ""
#: ../../source/install.rst:23
msgid "Testflight: https://testflight.apple.com/join/ZCJeY65W"
msgstr ""
#: ../../source/install.rst:27
msgid "Linux"
msgstr ""
#: ../../source/install.rst:29
msgid ""
"There are various ways to install OnionShare for Linux, but the "
"recommended way is to use either the `Flatpak <https://flatpak.org/>`_ or"
" the `Snap <https://snapcraft.io/>`_ package. Flatpak and Snapcraft "
"ensure that you'll always use the newest version and run OnionShare "
"inside of a sandbox."
msgstr ""
#: ../../source/install.rst:32
msgid ""
"Snapcraft support is built-in to Ubuntu and Fedora comes with Flatpak "
"support, but which you use is up to you. Both work in all Linux "
"distributions."
msgstr ""
#: ../../source/install.rst:34
msgid ""
"**Install OnionShare using Flatpak**: "
"https://flathub.org/apps/details/org.onionshare.OnionShare"
msgstr ""
#: ../../source/install.rst:36
msgid "**Install OnionShare using Snapcraft**: https://snapcraft.io/onionshare"
msgstr ""
#: ../../source/install.rst:38
msgid ""
"You can also download and install PGP-signed ``.flatpak`` or ``.snap`` "
"packages from https://onionshare.org/dist/ if you prefer."
msgstr ""
#: ../../source/install.rst:41
msgid "Manual Flatpak Installation"
msgstr ""
#: ../../source/install.rst:43
msgid ""
"If you'd like to install OnionShare manually with Flatpak using the PGP-"
"signed `single-file bundle <https://docs.flatpak.org/en/latest/single-"
"file-bundles.html>`_, you can do so like this:"
msgstr ""
#: ../../source/install.rst:45
msgid ""
"Install Flatpak by following the instructions at "
"https://flatpak.org/setup/."
msgstr ""
#: ../../source/install.rst:46
msgid ""
"Add the Flathub repository by running ``flatpak remote-add --if-not-"
"exists flathub https://flathub.org/repo/flathub.flatpakrepo``. Even "
"though you won't be downloading OnionShare from Flathub, OnionShare "
"depends on some packages that are only available there."
msgstr ""
#: ../../source/install.rst:47
msgid ""
"Go to https://onionshare.org/dist/, choose the latest version of "
"OnionShare, and download the ``.flatpak`` and ``.flatpak.asc`` files."
msgstr ""
#: ../../source/install.rst:48
msgid ""
"Verify the PGP signature of the ``.flatpak`` file. See "
":ref:`verifying_sigs` for more info."
msgstr ""
#: ../../source/install.rst:49
msgid ""
"Install the ``.flatpak`` file by running ``flatpak install OnionShare-"
"VERSION.flatpak``. Replace ``VERSION`` with the version number of the "
"file you downloaded."
msgstr ""
#: ../../source/install.rst:51
msgid "You can run OnionShare with: `flatpak run org.onionshare.OnionShare`."
msgstr ""
#: ../../source/install.rst:54
msgid "Manual Snapcraft Installation"
msgstr ""
#: ../../source/install.rst:56
msgid ""
"If you'd like to install OnionShare manually with Snapcraft using the "
"PGP-signed Snapcraft package, you can do so like this:"
msgstr ""
#: ../../source/install.rst:58
msgid ""
"Install Snapcraft by following the instructions at "
"https://snapcraft.io/docs/installing-snapd."
msgstr ""
#: ../../source/install.rst:59
msgid ""
"Go to https://onionshare.org/dist/, choose the latest version of "
"OnionShare, and download the ``.snap`` and ``.snap.asc`` files."
msgstr ""
#: ../../source/install.rst:60
msgid ""
"Verify the PGP signature of the ``.snap`` file. See :ref:`verifying_sigs`"
" for more info."
msgstr ""
#: ../../source/install.rst:61
msgid ""
"Install the ``.snap`` file by running ``snap install --dangerous "
"onionshare_VERSION_amd64.snap``. Replace ``VERSION`` with the version "
"number of the file you downloaded. Note that you must use `--dangerous` "
"because the package is not signed by the Snapcraft store, however you did"
" verify its PGP signature, so you know it's legitimate."
msgstr ""
#: ../../source/install.rst:63
msgid "You can run OnionShare with: `snap run onionshare`."
msgstr ""
#: ../../source/install.rst:68
msgid "Command-line only"
msgstr ""
#: ../../source/install.rst:70
msgid ""
"You can install just the command-line version of OnionShare on any "
"operating system using the Python package manager ``pip``. :ref:`cli` has"
" more info."
msgstr ""
#: ../../source/install.rst:75
msgid "FreeBSD"
msgstr ""
#: ../../source/install.rst:77
msgid ""
"Althought not being officially developed for this platform, OnionShare "
"can also be installed on `FreeBSD <https://freebsd.org/>`_. It's "
"available via its ports collection or as pre-built package. Should you "
"opt to install and use OnionShare on a FreeBSD operating system, please "
"be aware that it's **NOT** officially supported by the OnionShare "
"project."
msgstr ""
#: ../../source/install.rst:79
msgid ""
"Though not being offered and officially maintained by the OnionShare "
"developers, the FreeBSD packages and ports do fetch and verifies the "
"source codes from the official OnionShare repository (or its official "
"release packages from `PyPI <https://pypi.org/project/onionshare-"
"cli/>`_). Should you wish to check changes related to this platform, "
"please refer to the following resources:"
msgstr ""
#: ../../source/install.rst:81
msgid "https://cgit.freebsd.org/ports/log/www/onionshare"
msgstr ""
#: ../../source/install.rst:82
msgid "https://www.freshports.org/www/onionshare"
msgstr ""
#: ../../source/install.rst:85
msgid "Manual pkg Installation"
msgstr ""
#: ../../source/install.rst:87
msgid ""
"To install the binary package, use ``pkg install pyXY-onionshare``, with "
"``pyXY`` specifying the version of Python the package was built for. So, "
"in order to install OnionShare for Python 3.9, use::"
msgstr ""
#: ../../source/install.rst:91
msgid ""
"There's also a **Command-line only** version of OnionShare available as "
"pre-built package. Replace ``py39-onionshare`` by ``py39-onionshare-cli``"
" if you want to install that version."
msgstr ""
#: ../../source/install.rst:93
msgid ""
"For additional information and details about the FreeBSD pre-built "
"packages, please refer to its `official Handbook section about pkg "
"<https://docs.freebsd.org/en/books/handbook/ports/#pkgng-intro>`_."
msgstr ""
#: ../../source/install.rst:96
msgid "Manual port Installation"
msgstr ""
#: ../../source/install.rst:98
msgid ""
"To install the FreeBSD port, change directory to the `ports collection "
"<https://freebsd.org/ports/>`_ you must have checked out before and run "
"the following::"
msgstr ""
#: ../../source/install.rst:102
msgid ""
"The ports collection also offers a dedicated port for the **Command-line "
"only** version of OnionShare. Replace ``www/onionshare`` by ``www"
"/onionshare-cli`` if you want to install that version."
msgstr ""
#: ../../source/install.rst:104
msgid ""
"For additional information and details about the FreeBSD ports "
"collection, please refer to its `official Handbook section about ports "
"<https://docs.freebsd.org/en/books/handbook/ports/#ports-using>`_."
msgstr ""
#: ../../source/install.rst:109
msgid "Verifying PGP signatures"
msgstr ""
#: ../../source/install.rst:111
msgid ""
"You can verify that the package you download is legitimate and hasn't "
"been tampered with by verifying its PGP signature. For Windows and macOS,"
" this step is optional and provides defense in depth: the OnionShare "
"binaries include operating system-specific signatures, and you can just "
"rely on those alone if you'd like."
msgstr ""
#: ../../source/install.rst:115
msgid "Signing key"
msgstr ""
#: ../../source/install.rst:117
msgid ""
"Packages are signed by the core developer who is responsible for the "
"particular release. Here is the GPG key information for each of the core "
"developers of OnionShare:"
msgstr ""
#: ../../source/install.rst:120
msgid "Micah Lee:"
msgstr ""
#: ../../source/install.rst:121
msgid "PGP public key fingerprint ``927F419D7EC82C2F149C1BD1403C2657CD994F73``."
msgstr ""
#: ../../source/install.rst:122
msgid ""
"You can download Micah's key `from the keys.openpgp.org keyserver "
"<https://keys.openpgp.org/vks/v1/by-"
"fingerprint/927F419D7EC82C2F149C1BD1403C2657CD994F73>`_."
msgstr ""
#: ../../source/install.rst:124
msgid "Saptak Sengupta:"
msgstr ""
#: ../../source/install.rst:125
msgid "PGP public key fingerprint ``2AE3D40A6905C8E4E8ED95ECE46A2B977C14666B``."
msgstr ""
#: ../../source/install.rst:126
msgid ""
"You can download Saptak's key `from the keys.openpgp.org keyserver "
"<https://keys.openpgp.org/vks/v1/by-"
"fingerprint/2AE3D40A6905C8E4E8ED95ECE46A2B977C14666B>`_."
msgstr ""
#: ../../source/install.rst:128
msgid "Miguel Jacq:"
msgstr ""
#: ../../source/install.rst:129
msgid "PGP public key fingerprint ``00AE817C24A10C2540461A9C1D7CDE0234DB458D``."
msgstr ""
#: ../../source/install.rst:130
msgid ""
"You can download Miguel's key `from the keys.openpgp.org keyserver "
"<https://keys.openpgp.org/vks/v1/by-"
"fingerprint/00AE817C24A10C2540461A9C1D7CDE0234DB458D>`_."
msgstr ""
#: ../../source/install.rst:132
msgid ""
"You must have GnuPG installed to verify signatures. For macOS you "
"probably want `GPGTools <https://gpgtools.org/>`_, and for Windows you "
"probably want `Gpg4win <https://www.gpg4win.org/>`_."
msgstr ""
#: ../../source/install.rst:135
msgid "Signatures"
msgstr ""
#: ../../source/install.rst:137
msgid ""
"You can find the signatures (as ``.asc`` files), as well as Windows, "
"macOS, Flatpak, Snap, and source packages, at "
"https://onionshare.org/dist/ in the folders named for each version of "
"OnionShare. You can also find them on the `GitHub Releases page "
"<https://github.com/onionshare/onionshare/releases>`_."
msgstr ""
#: ../../source/install.rst:141
msgid "Verifying"
msgstr ""
#: ../../source/install.rst:143
msgid ""
"Once you have imported the core developers public keys into your GnuPG "
"keychain, downloaded the binary and ``.asc`` signature, you can verify "
"the binary in a terminal like this:"
msgstr ""
#: ../../source/install.rst:145
msgid "For Windows::"
msgstr ""
#: ../../source/install.rst:149
msgid "For macOS::"
msgstr ""
#: ../../source/install.rst:153
msgid "For Linux::"
msgstr ""
#: ../../source/install.rst:159
msgid "and for the source file::"
msgstr ""
#: ../../source/install.rst:163
msgid "The expected output looks like this::"
msgstr ""
#: ../../source/install.rst:173
msgid ""
"If you don't see ``Good signature from``, there might be a problem with "
"the integrity of the file (malicious or otherwise), and you should not "
"install the package."
msgstr ""
#: ../../source/install.rst:175
msgid ""
"The ``WARNING:`` shown above, is not a problem with the package, it only "
"means you haven't defined a level of \"trust\" of Micah's (the core "
"developer) PGP key."
msgstr ""
#: ../../source/install.rst:177
msgid ""
"If you want to learn more about verifying PGP signatures, the guides for "
"`Qubes OS <https://www.qubes-os.org/security/verifying-signatures/>`_ and"
" the `Tor Project <https://support.torproject.org/tbb/how-to-verify-"
"signature/>`_ may be useful."
msgstr ""

View File

@ -0,0 +1,105 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) Micah Lee, et al.
# This file is distributed under the same license as the OnionShare package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2025.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: OnionShare 2.6.3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-02-12 14:33+1100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language: zh_Hans\n"
"Language-Team: zh_Hans <LL@li.org>\n"
"Plural-Forms: nplurals=1; plural=0;\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.17.0\n"
#: ../../source/security.rst:2
msgid "Security Design"
msgstr ""
#: ../../source/security.rst:4
msgid "Read :ref:`how_it_works` first to get a handle on how OnionShare works."
msgstr ""
#: ../../source/security.rst:6
msgid "Like all software, OnionShare may contain bugs or vulnerabilities."
msgstr ""
#: ../../source/security.rst:9
msgid "What OnionShare protects against"
msgstr ""
#: ../../source/security.rst:11
msgid ""
"**Third parties don't have access to anything that happens in "
"OnionShare.** Using OnionShare means hosting services directly on your "
"computer. When sharing your files with OnionShare, they are not uploaded "
"to any third-party server. If you make an OnionShare chat room, your "
"computer acts as a server for that too. This avoids the traditional model"
" of having to trust the computers of others."
msgstr ""
#: ../../source/security.rst:17
msgid ""
"**Network eavesdroppers can't spy on anything that happens in OnionShare "
"in transit.** The connection between the Tor onion service and Tor "
"Browser is end-to-end encrypted. This means network attackers can't "
"eavesdrop on anything except encrypted Tor traffic. Even if an "
"eavesdropper is a malicious rendezvous node used to connect the Tor "
"Browser with OnionShare's onion service, the traffic is encrypted using "
"the onion service's private key."
msgstr ""
#: ../../source/security.rst:23
msgid ""
"**Anonymity of OnionShare users are protected by Tor.** OnionShare and "
"Tor Browser protect the anonymity of the users. As long as the OnionShare"
" user anonymously communicates the OnionShare address with the Tor "
"Browser users, the Tor Browser users and eavesdroppers can't learn the "
"identity of the OnionShare user."
msgstr ""
#: ../../source/security.rst:28
msgid ""
"**If an attacker learns about the onion service, they still can't access "
"anything.** Prior attacks against the Tor network to enumerate onion "
"services allowed attackers to discover private ``.onion`` addresses. To "
"access an OnionShare service from its address, the private key used for "
"client authentication must be guessed (unless the service is already made"
" public by turning off the private key -- see "
":ref:`turn_off_private_key`)."
msgstr ""
#: ../../source/security.rst:33
msgid "What OnionShare doesn't protect against"
msgstr ""
#: ../../source/security.rst:35
msgid ""
"**Communicating the OnionShare address and private key might not be "
"secure.** Communicating the OnionShare address to people is the "
"responsibility of the OnionShare user. If sent insecurely (such as "
"through an e-mail message monitored by an attacker), an eavesdropper can "
"tell that OnionShare is being used. Eavesdroppers can access services "
"that are still up by loading their addresses and/or lost key in the Tor "
"Browser. Avoid this by communicating the address securely, via encrypted "
"text message (probably with disappearing messages enabled), encrypted "
"e-mail, or in person. This isn't necessary when using OnionShare for "
"something that isn't secret."
msgstr ""
#: ../../source/security.rst:42
msgid ""
"**Communicating the OnionShare address and private key might not be "
"anonymous.** Extra precaution must be taken to ensure the OnionShare "
"address is communicated anonymously. A new e-mail or chat account, only "
"accessed over Tor, can be used to share the address. This isn't necessary"
" unless anonymity is a goal."
msgstr ""

View File

@ -0,0 +1,29 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) Micah Lee, et al.
# This file is distributed under the same license as the OnionShare package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2025.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: OnionShare 2.6.3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-02-12 14:33+1100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language: zh_Hans\n"
"Language-Team: zh_Hans <LL@li.org>\n"
"Plural-Forms: nplurals=1; plural=0;\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.17.0\n"
#: ../../source/_templates/versions.html:10
msgid "Versions"
msgstr ""
#: ../../source/_templates/versions.html:18
msgid "Languages"
msgstr ""

View File

@ -0,0 +1,374 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) Micah Lee, et al.
# This file is distributed under the same license as the OnionShare package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2025.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: OnionShare 2.6.3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-02-12 14:33+1100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language: zh_Hans\n"
"Language-Team: zh_Hans <LL@li.org>\n"
"Plural-Forms: nplurals=1; plural=0;\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.17.0\n"
#: ../../source/tor.rst:2
msgid "Connecting to Tor"
msgstr ""
#: ../../source/tor.rst:4
msgid ""
"When OnionShare starts, it will show you a screen asking you to connect "
"to the Tor network."
msgstr ""
#: ../../source/tor.rst:8
msgid ""
"You can toggle on the switch \"Connect to Tor automatically\" before "
"clicking \"Connect to Tor\". This means that next time OnionShare starts,"
" it will automatically connect with its Tor connection settings from the "
"last session, instead of presenting you with the connection options. If "
"the connection fails, you can still try bridges or reconfigure Tor via "
"the \"Network Settings\" button."
msgstr ""
#: ../../source/tor.rst:11
msgid ""
"You can click \"Connect to Tor\" to begin the connection process. If "
"there are no problems with your network, including any attempts to block "
"your access to the Tor network, this should hopefully work the first "
"time."
msgstr ""
#: ../../source/tor.rst:13
msgid ""
"Or, if you want to manually configure Bridges or other Tor settings "
"before you connect, you can click \"Network Settings\"."
msgstr ""
#: ../../source/tor.rst:16
msgid "Automatic censorship circumvention"
msgstr ""
#: ../../source/tor.rst:18
msgid ""
"When you click \"Connect to Tor\", if OnionShare fails to connect, it "
"might be because Tor is censored in your country or on your local "
"network."
msgstr ""
#: ../../source/tor.rst:20
msgid "If this occurs, you will have these choices:"
msgstr ""
#: ../../source/tor.rst:22
msgid "Try again without a bridge"
msgstr ""
#: ../../source/tor.rst:23
msgid "Automatically determine my country from my IP address for bridge settings"
msgstr ""
#: ../../source/tor.rst:24
msgid "Manually select my country for bridge settings"
msgstr ""
#: ../../source/tor.rst:28
msgid ""
"If you choose the \"Try again without a bridge\" option, OnionShare will "
"retry connecting to Tor like normal, without attempting to bypass "
"censorship."
msgstr ""
#: ../../source/tor.rst:30
msgid ""
"The other two options will attempt to automatically bypass censorship "
"using Tor bridges. If your network provider is blocking access to the Tor"
" network, you can hopefully still connect to a Tor bridge, which will "
"then connect you to the Tor network, circumventing the censorship. Both "
"of these options use the Tor Project's Censorship Circumvention API to "
"provide you with bridge settings that should work for you. OnionShare "
"will temporarily use the `Meek "
"<https://gitlab.torproject.org/legacy/trac/-/wikis/doc/meek/>`_ domain-"
"fronting proxy to make a non-Tor connection from your computer to Tor's "
"Censorship Circumvention API. The Meek proxy hides the fact that you are "
"trying to find a way to connect to Tor."
msgstr ""
#: ../../source/tor.rst:36
msgid ""
"If you choose \"Automatically determine my country from my IP address for"
" bridge settings\", the Censorship Circumvention API will consider your "
"IP address (yes, your real IP address) to determine what country you "
"might reside in. Based on the country information, the API will try to "
"automatically find bridges that suit your location."
msgstr ""
#: ../../source/tor.rst:41
msgid ""
"If you choose \"Manually select my country for bridge settings\", the "
"Censorship API will find the bridges that suit the country that you "
"specified."
msgstr ""
#: ../../source/tor.rst:46
msgid "How automatic censorship circumvention works"
msgstr ""
#: ../../source/tor.rst:48
msgid ""
"If the Censorship Circumvention API finds bridges that it believes will "
"suit you, OnionShare will try to reconnect to Tor using those bridges. If"
" the API does not find any bridges for your location, OnionShare will ask"
" the API for \"fallback\" options, and then try to reconnect using those."
msgstr ""
#: ../../source/tor.rst:50
msgid ""
"If for some reason OnionShare fails to connect to the Censorship API "
"itself, or if the API returns an error message, OnionShare will attempt "
"to use the obfs4 built-in bridges."
msgstr ""
#: ../../source/tor.rst:52
msgid ""
"It's important to note that the requests to the Censorship Circumvention "
"API do not go over the Tor network (because if you could connect to Tor "
"already, you wouldn't need to connect to the API)."
msgstr ""
#: ../../source/tor.rst:54
msgid ""
"Even though it's hard for an adversary to discover where the Meek request"
" is going, this may still be risky for some users. Therefore, it is an "
"opt-in feature. The use of Meek and non-torified network requests are "
"limited only to making one or two requests to the Censorship "
"Circumvention API. Then Meek is stopped, and all further network requests"
" happen over the Tor network."
msgstr ""
#: ../../source/tor.rst:56
msgid ""
"If you are uncomfortable with making a request that doesn't go over the "
"Tor network, you can click \"Network Settings\" (or the Settings icon in "
"the bottom right corner, followed by the Tor Settings tab in the screen "
"that appears), and manually configure bridges. After you save any bridge "
"settings, OnionShare will try to reconnect using those bridges."
msgstr ""
#: ../../source/tor.rst:59
msgid "Manually configure Tor settings"
msgstr ""
#: ../../source/tor.rst:61
msgid ""
"You can get to the Tor settings by clicking \"Network Settings\" on the "
"welcome screen, or by clicking the \"⚙\" icon in the bottom-right corner "
"of the application, and then switch to the Tor Settings tab in the screen"
" that appears."
msgstr ""
#: ../../source/tor.rst:65
msgid ""
"Here are the different ways you can configure OnionShare to connect to "
"Tor:"
msgstr ""
#: ../../source/tor.rst:68
msgid "Use the Tor version built into OnionShare"
msgstr ""
#: ../../source/tor.rst:70
msgid ""
"This is the default, simplest and most reliable way that OnionShare "
"connects to Tor. For this reason, it's recommended for most users."
msgstr ""
#: ../../source/tor.rst:73
msgid ""
"When you open OnionShare, it launches an already configured ``tor`` "
"process in the background for OnionShare to use. It doesn't interfere "
"with other ``tor`` processes on your computer, so you can use the Tor "
"Browser or the system ``tor`` on their own."
msgstr ""
#: ../../source/tor.rst:76
msgid "**Using bridges**"
msgstr ""
#: ../../source/tor.rst:78
msgid ""
"To use a bridge, you must select \"Use the Tor version built into "
"OnionShare\" and check the \"Use a bridge\" checkbox."
msgstr ""
#: ../../source/tor.rst:80
msgid ""
"Try using a built-in bridge first. Using `obfs4` or `snowflake` bridges "
"is recommended over using `meek-azure`."
msgstr ""
#: ../../source/tor.rst:84
msgid ""
"If using a built-in bridge doesn't work, you can request a bridge from "
"torproject.org. You will have to solve a CAPTCHA in order to request a "
"bridge. (This makes it more difficult for governments or ISPs to block "
"access to Tor bridges.)"
msgstr ""
#: ../../source/tor.rst:88
msgid ""
"You also have the option of using a bridge that you learned about from a "
"trusted source."
msgstr ""
#: ../../source/tor.rst:91
msgid "Attempt auto-configuration with Tor Browser"
msgstr ""
#: ../../source/tor.rst:93
msgid ""
"If you have `downloaded the Tor Browser <https://www.torproject.org>`_ "
"and don't want two ``tor`` processes running, you can use the ``tor`` "
"process from the Tor Browser. Keep in mind you need to keep Tor Browser "
"open in the background while you're using OnionShare for this to work."
msgstr ""
#: ../../source/tor.rst:97
msgid "Using a system ``tor`` in Windows"
msgstr ""
#: ../../source/tor.rst:99
msgid ""
"This is fairly advanced. You'll need to know how edit plaintext files and"
" do stuff as an administrator."
msgstr ""
#: ../../source/tor.rst:101
msgid ""
"Download the Tor Windows Expert Bundle `from the Tor website "
"<https://www.torproject.org/download/tor/>`_. Extract the compressed file"
" and copy the extracted folder to ``C:\\Program Files (x86)\\`` Rename "
"the extracted folder with ``Data`` and ``Tor`` in it to ``tor-win32``."
msgstr ""
#: ../../source/tor.rst:105
msgid ""
"Make up a control port password. (Using 7 words in a sequence like "
"``comprised stumble rummage work avenging construct volatile`` is a good "
"idea for a password.) Now open a command prompt (``cmd``) as an "
"administrator, and use ``tor.exe --hash-password`` to generate a hash of "
"your password. For example::"
msgstr ""
#: ../../source/tor.rst:112
msgid ""
"The hashed password output is displayed after some warnings (which you "
"can ignore). In the case of the above example, it is "
"``16:00322E903D96DE986058BB9ABDA91E010D7A863768635AC38E213FDBEF``."
msgstr ""
#: ../../source/tor.rst:114
msgid ""
"Now create a new text file at ``C:\\Program Files (x86)\\tor-"
"win32\\torrc`` and put your hashed password output in it, replacing the "
"``HashedControlPassword`` with the one you just generated::"
msgstr ""
#: ../../source/tor.rst:119
msgid ""
"In your administrator command prompt, install ``tor`` as a service using "
"the appropriate ``torrc`` file you just created (as described in "
"`<https://2019.www.torproject.org/docs/faq.html.en#NTService>`_). Like "
"this::"
msgstr ""
#: ../../source/tor.rst:123
msgid "You are now running a system ``tor`` process in Windows!"
msgstr ""
#: ../../source/tor.rst:125
msgid ""
"Open OnionShare, click the \"⚙\" icon in it, and switch to the Tor "
"Settings tab. Under \"How should OnionShare connect to Tor?\" choose "
"\"Connect using control port\", and set \"Control port\" to ``127.0.0.1``"
" and \"Port\" to ``9051``. Under \"Tor authentication settings\" choose "
"\"Password\" and set the password to the control port password you picked"
" above. Click the \"Test Connection to Tor\" button. If all goes well, "
"you should see \"Connected to the Tor controller\"."
msgstr ""
#: ../../source/tor.rst:134
msgid "Using a system ``tor`` in macOS"
msgstr ""
#: ../../source/tor.rst:136
msgid ""
"First, install `Homebrew <https://brew.sh/>`_ if you don't already have "
"it, and then install Tor::"
msgstr ""
#: ../../source/tor.rst:140
msgid "Now configure Tor to allow connections from OnionShare::"
msgstr ""
#: ../../source/tor.rst:147
msgid "And start the system Tor service::"
msgstr ""
#: ../../source/tor.rst:151
msgid ""
"Open OnionShare, click the \"⚙\" icon in it, and switch to the Tor "
"Settings tab. Under \"How should OnionShare connect to Tor?\" choose "
"\"Connect using socket file\", and set the socket file to be "
"``/usr/local/var/run/tor/control.socket``. Under \"Tor authentication "
"settings\" choose \"No authentication, or cookie authentication\". Click "
"the \"Test Connection to Tor\" button."
msgstr ""
#: ../../source/tor.rst:157 ../../source/tor.rst:177
msgid "If all goes well, you should see \"Connected to the Tor controller\"."
msgstr ""
#: ../../source/tor.rst:160
msgid "Using a system ``tor`` in Linux"
msgstr ""
#: ../../source/tor.rst:162
msgid ""
"First, install the ``tor`` package. If you're using Debian, Ubuntu, or a "
"similar Linux distro, It is recommended to use the Tor Project's "
"`official repository <https://support.torproject.org/apt/tor-deb-"
"repo/>`_."
msgstr ""
#: ../../source/tor.rst:164
msgid ""
"Next, add your user to the group that runs the ``tor`` process (in the "
"case of Debian and Ubuntu, ``debian-tor``) and configure OnionShare to "
"connect to your system ``tor``'s control socket file."
msgstr ""
#: ../../source/tor.rst:166
msgid ""
"Add your user to the ``debian-tor`` group by running this command "
"(replace ``username`` with your actual username)::"
msgstr ""
#: ../../source/tor.rst:170
msgid ""
"Reboot your computer. After it boots up again, open OnionShare, click the"
" \"⚙\" icon in it, and switch to the Tor Settings tab. Under \"How should"
" OnionShare connect to Tor?\" choose \"Connect using socket file\". Set "
"the socket file to be ``/var/run/tor/control``. Under \"Tor "
"authentication settings\" choose \"No authentication, or cookie "
"authentication\". Click the \"Test Connection to Tor\" button."
msgstr ""

View File

@ -1,13 +1,13 @@
name: poetry-deps
buildsystem: simple
build-commands:
- pip3 install --use-pep517 --no-index --find-links="file://${PWD}" --prefix=${FLATPAK_DEST}
- pip3 install --no-index --use-pep517 --find-links="file://${PWD}" --prefix=${FLATPAK_DEST}
bidict blinker brotli brotlicffi certifi cffi charset-normalizer click colorama
cython dnspython eventlet exceptiongroup flask flask-compress flask-socketio gevent
gevent-websocket greenlet h11 idna importlib-metadata iniconfig itsdangerous jinja2
markupsafe packaging pluggy psutil pycparser pynacl pypng pysocks pytest python-engineio
python-socketio qrcode requests setuptools simple-websocket stem tomli typing-extensions
unidecode urllib3 waitress werkzeug wheel wsproto zipp zope-event zope-interface
gevent-websocket greenlet h11 idna iniconfig itsdangerous jinja2 markupsafe packaging
pluggy psutil pycparser pynacl pypng pysocks pytest python-engineio python-socketio
qrcode requests setuptools simple-websocket stem tomli typing-extensions unidecode
urllib3 waitress werkzeug wheel wsproto zope-event zope-interface
sources:
- type: file
url: https://files.pythonhosted.org/packages/b5/82/ce0b6380f35f49d3fe687979a324c342cfa3588380232f3801db9dd62f9e/bidict-0.22.1-py3-none-any.whl
@ -72,9 +72,6 @@ sources:
- type: file
url: https://files.pythonhosted.org/packages/76/c6/c88e154df9c4e1a2a66ccf0005a88dfb2650c1dffb6f5ce603dfbd452ce3/idna-3.10-py3-none-any.whl
sha256: 946d195a0d259cbba61165e88e65941f16e9b36ea6ddb97f00452bae8b1287d3
- type: file
url: https://files.pythonhosted.org/packages/c0/8b/d8427f023c081a8303e6ac7209c16e6878f2765d5b59667f3903fbcfd365/importlib_metadata-7.0.1-py3-none-any.whl
sha256: 4805911c3a4ec7c3966410053e9ec6a1fecd629117df5adee56dfc9432a1081e
- type: file
url: https://files.pythonhosted.org/packages/ef/a6/62565a6e1cf69e10f5727360368e451d4b7f58beeac6173dc9db836a5b46/iniconfig-2.0.0-py3-none-any.whl
sha256: b6a85871a79d2e3b22d2d1b94ac2824226a63c6b741c88f7ae975f18b6778374
@ -156,9 +153,6 @@ sources:
- type: file
url: https://files.pythonhosted.org/packages/78/58/e860788190eba3bcce367f74d29c4675466ce8dddfba85f7827588416f01/wsproto-1.2.0-py3-none-any.whl
sha256: b9acddd652b585d75b20477888c56642fdade28bdfd3579aa24a4d2c037dd736
- type: file
url: https://files.pythonhosted.org/packages/b7/1a/7e4798e9339adc931158c9d69ecc34f5e6791489d469f5e50ec15e35f458/zipp-3.21.0-py3-none-any.whl
sha256: ac1bbe05fd2991f160ebce24ffbac5f6d11d83dc90891255885223d42b3cd931
- type: file
url: https://files.pythonhosted.org/packages/fe/42/f8dbc2b9ad59e927940325a22d6d3931d630c3644dae7e2369ef5d9ba230/zope.event-5.0-py3-none-any.whl
sha256: 2832e95014f4db26c47a13fdaef84cef2f4df37e66b59d8f1f4a8f319a632c26

View File

@ -46,6 +46,27 @@ modules:
- type: file
url: https://files.pythonhosted.org/packages/7b/ff/ab4f287b9573e50b5a47c10e2af8feb5abecc3c7431bd5deec135efc969e/shiboken6-6.8.2.1-cp39-abi3-manylinux_2_28_x86_64.whl
sha256: c83e90056f13d0872cc4d2b7bf60b6d6e3b1b172f1f91910c0ba5b641af01758
- name: pyside6-essentials-aarch64
only-arches:
- aarch64
buildsystem: simple
build-commands:
- pip3 install --verbose --exists-action=i --no-index --find-links="file://${PWD}"
--prefix=${FLATPAK_DEST} "pyside6-essentials" --no-build-isolation
sources:
- type: file
url: https://files.pythonhosted.org/packages/fd/69/595002d860ee58431fe7add081d6f54fff94ae9680f2eb8cd355c1649bb6/PySide6_Essentials-6.8.2.1-cp39-abi3-manylinux_2_39_aarch64.whl
sha256: 7aed46f91d44399b4c713cf7387f5fb6f0114413fbcdbde493a528fb8e19f6ed
modules:
- name: shiboken6
buildsystem: simple
build-commands:
- pip3 install --verbose --exists-action=i --no-index --find-links="file://${PWD}"
--prefix=${FLATPAK_DEST} "shiboken6" --no-build-isolation
sources:
- type: file
url: https://files.pythonhosted.org/packages/a6/b0/4fb102eb5260ee06d379769f3c4f0b82ef397c15f1cbbbbb3f6dceb86d5d/shiboken6-6.8.2.1-cp39-abi3-manylinux_2_39_aarch64.whl
sha256: 8592401423acc693f51dbbfae5e7493cc3ed6738be79daaf90afa07f4da5bb25
- name: snowflake-client
buildsystem: simple
build-options:
@ -119,7 +140,7 @@ modules:
path: ..
# - type: git
# url: https://github.com/onionshare/onionshare.git
# tag: v2.6.2
# tag: v2.6.3
modules:
- onionshare-desktop.yaml
- name: onionshare-cli
@ -132,6 +153,6 @@ modules:
path: ..
# - type: git
# url: https://github.com/onionshare/onionshare.git
# tag: v2.6.2
# tag: v2.6.3
modules:
- onionshare-cli.yaml

View File

@ -1,10 +1,10 @@
bidict==0.22.1 ; python_version >= "3.9" and python_version < "3.13" \
bidict==0.22.1 ; python_version >= "3.10" and python_version < "3.13" \
--hash=sha256:1e0f7f74e4860e6d0943a05d4134c63a2fad86f3d4732fb265bd79e4e856d81d \
--hash=sha256:6ef212238eb884b664f28da76f33f1d28b260f665fc737b413b287d5487d1e7b
blinker==1.7.0 ; python_version >= "3.9" and python_version < "3.13" \
blinker==1.7.0 ; python_version >= "3.10" and python_version < "3.13" \
--hash=sha256:c3f865d4d54db7abc53758a01601cf343fe55b84c1de4e3fa910e420b438d5b9 \
--hash=sha256:e6820ff6fa4e4d1d8e2747c2283749c3f547e4fee112b98555cdcdae32996182
brotli==1.1.0 ; python_version >= "3.9" and python_version < "3.13" and platform_python_implementation != "PyPy" \
brotli==1.1.0 ; python_version >= "3.10" and python_version < "3.13" and platform_python_implementation != "PyPy" \
--hash=sha256:03d20af184290887bdea3f0f78c4f737d126c74dc2f3ccadf07e54ceca3bf208 \
--hash=sha256:0541e747cce78e24ea12d69176f6a7ddb690e62c425e01d31cc065e69ce55b48 \
--hash=sha256:069a121ac97412d1fe506da790b3e69f52254b9df4eb665cd42460c837193354 \
@ -88,7 +88,7 @@ brotli==1.1.0 ; python_version >= "3.9" and python_version < "3.13" and platform
--hash=sha256:fce1473f3ccc4187f75b4690cfc922628aed4d3dd013d047f95a9b3919a86596 \
--hash=sha256:fd5f17ff8f14003595ab414e45fce13d073e0762394f957182e69035c9f3d7c2 \
--hash=sha256:fdc3ff3bfccdc6b9cc7c342c03aa2400683f0cb891d46e94b64a197910dc4064
brotlicffi==1.1.0.0 ; python_version >= "3.9" and python_version < "3.13" and platform_python_implementation == "PyPy" \
brotlicffi==1.1.0.0 ; python_version >= "3.10" and python_version < "3.13" and platform_python_implementation == "PyPy" \
--hash=sha256:19ffc919fa4fc6ace69286e0a23b3789b4219058313cf9b45625016bf7ff996b \
--hash=sha256:1a807d760763e398bbf2c6394ae9da5815901aa93ee0a37bca5efe78d4ee3171 \
--hash=sha256:1b12b50e07c3911e1efa3a8971543e7648100713d4e0971b13631cce22c587eb \
@ -116,10 +116,10 @@ brotlicffi==1.1.0.0 ; python_version >= "3.9" and python_version < "3.13" and pl
--hash=sha256:ce01c7316aebc7fce59da734286148b1d1b9455f89cf2c8a4dfce7d41db55c2d \
--hash=sha256:d9eb71bb1085d996244439154387266fd23d6ad37161f6f52f1cd41dd95a3808 \
--hash=sha256:fa8ca0623b26c94fccc3a1fdd895be1743b838f3917300506d04aa3346fd2a14
certifi==2025.1.31 ; python_version >= "3.9" and python_version < "3.13" \
certifi==2025.1.31 ; python_version >= "3.10" and python_version < "3.13" \
--hash=sha256:3d5da6925056f6f18f119200434a4780a94263f10d1c21d032a6f6b2baa20651 \
--hash=sha256:ca78db4565a652026a4db2bcdf68f2fb589ea80d0be70e03929ed730746b84fe
cffi==1.16.0 ; python_version >= "3.9" and python_version < "3.13" \
cffi==1.16.0 ; python_version >= "3.10" and python_version < "3.13" \
--hash=sha256:0c9ef6ff37e974b73c25eecc13952c55bceed9112be2d9d938ded8e856138bcc \
--hash=sha256:131fd094d1065b19540c3d72594260f118b231090295d8c34e19a7bbcf2e860a \
--hash=sha256:1b8ebc27c014c59692bb2664c7d13ce7a6e9a629be20e54e7271fa696ff2b417 \
@ -172,7 +172,7 @@ cffi==1.16.0 ; python_version >= "3.9" and python_version < "3.13" \
--hash=sha256:ee07e47c12890ef248766a6e55bd38ebfb2bb8edd4142d56db91b21ea68b7627 \
--hash=sha256:fa3a0128b152627161ce47201262d3140edb5a5c3da88d73a1b790a959126956 \
--hash=sha256:fcc8eb6d5902bb1cf6dc4f187ee3ea80a1eba0a89aba40a5cb20a5087d961357
charset-normalizer==3.3.2 ; python_version >= "3.9" and python_version < "3.13" \
charset-normalizer==3.3.2 ; python_version >= "3.10" and python_version < "3.13" \
--hash=sha256:06435b539f889b1f6f4ac1758871aae42dc3a8c0e24ac9e60c2384973ad73027 \
--hash=sha256:06a81e93cd441c56a9b65d8e1d043daeb97a3d0856d177d5c90ba85acb3db087 \
--hash=sha256:0a55554a2fa0d408816b3b5cedf0045f4b8e1a6065aec45849de2d6f3f8e9786 \
@ -263,13 +263,13 @@ charset-normalizer==3.3.2 ; python_version >= "3.9" and python_version < "3.13"
--hash=sha256:fb69256e180cb6c8a894fee62b3afebae785babc1ee98b81cdf68bbca1987f33 \
--hash=sha256:fd1abc0d89e30cc4e02e4064dc67fcc51bd941eb395c502aac3ec19fab46b519 \
--hash=sha256:ff8fa367d09b717b2a17a052544193ad76cd49979c805768879cb63d9ca50561
click==8.1.7 ; python_version >= "3.9" and python_version < "3.13" \
click==8.1.7 ; python_version >= "3.10" and python_version < "3.13" \
--hash=sha256:ae74fb96c20a0277a1d615f1e4d73c8414f5a98db8b799a7931d1582f3390c28 \
--hash=sha256:ca9853ad459e787e2192211578cc907e7594e294c7ccc834310722b41b9ca6de
colorama==0.4.6 ; python_version >= "3.9" and python_version < "3.13" \
colorama==0.4.6 ; python_version >= "3.10" and python_version < "3.13" \
--hash=sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44 \
--hash=sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6
cython==3.0.8 ; python_version >= "3.9" and python_version < "3.13" \
cython==3.0.8 ; python_version >= "3.10" and python_version < "3.13" \
--hash=sha256:000dc9e135d0eec6ecb2b40a5b02d0868a2f8d2e027a41b0fe16a908a9e6de02 \
--hash=sha256:05d7eddc668ae7993643f32c7661f25544e791edb745758672ea5b1a82ecffa6 \
--hash=sha256:0c38c9f0bcce2df0c3347285863621be904ac6b64c5792d871130569d893efd7 \
@ -328,25 +328,25 @@ cython==3.0.8 ; python_version >= "3.9" and python_version < "3.13" \
--hash=sha256:f05c0bf9d085c031df8f583f0d506aa3be1692023de18c45d0aaf78685bbb944 \
--hash=sha256:fa97893d99385386925d00074654aeae3a98867f298d1e12ceaf38a9054a9bae \
--hash=sha256:fe81b339cffd87c0069c6049b4d33e28bdd1874625ee515785bf42c9fdff3658
dnspython==2.7.0 ; python_version >= "3.9" and python_version < "3.13" \
dnspython==2.7.0 ; python_version >= "3.10" and python_version < "3.13" \
--hash=sha256:b4c34b7d10b51bcc3a5071e7b8dee77939f1e878477eeecc965e9835f63c6c86 \
--hash=sha256:ce9c432eda0dc91cf618a5cedf1a4e142651196bbcd2c80e89ed5a907e5cfaf1
eventlet==0.39.0 ; python_version >= "3.9" and python_version < "3.13" \
eventlet==0.39.0 ; python_version >= "3.10" and python_version < "3.13" \
--hash=sha256:01ba0aa6ee2452690fc02b274a2409598a13b997c7b5af9dc66600fa42015a79 \
--hash=sha256:9522ca09ad4c1f874c238f06492a7e217ddb13bdeace4475d3b700dd0ba1f6be
flask-compress==1.14 ; python_version >= "3.9" and python_version < "3.13" \
flask-compress==1.14 ; python_version >= "3.10" and python_version < "3.13" \
--hash=sha256:b86c9808f0f38ea2246c9730972cf978f2cdf6a9a1a69102ba81e07891e6b26c \
--hash=sha256:e46528f37b91857012be38e24e65db1a248662c3dc32ee7808b5986bf1d123ee
flask-socketio==5.3.4 ; python_version >= "3.9" and python_version < "3.13" \
flask-socketio==5.3.4 ; python_version >= "3.10" and python_version < "3.13" \
--hash=sha256:1cbd379c9bf68ac37bcc4750d01708922fa6365d13a5447d3f8893792879410c \
--hash=sha256:564acfb24dcc9545cdae536cde0323653d9b547069a925f11eeb132338aa71c0
flask==2.3.2 ; python_version >= "3.9" and python_version < "3.13" \
flask==2.3.2 ; python_version >= "3.10" and python_version < "3.13" \
--hash=sha256:77fd4e1249d8c9923de34907236b747ced06e5467ecac1a7bb7115ae0e9670b0 \
--hash=sha256:8c2f9abd47a9e8df7f0c3f091ce9497d011dc3b31effcf4c85a6e2b50f4114ef
gevent-websocket==0.10.1 ; python_version >= "3.9" and python_version < "3.13" \
gevent-websocket==0.10.1 ; python_version >= "3.10" and python_version < "3.13" \
--hash=sha256:17b67d91282f8f4c973eba0551183fc84f56f1c90c8f6b6b30256f31f66f5242 \
--hash=sha256:7eaef32968290c9121f7c35b973e2cc302ffb076d018c9068d2f5ca8b2d85fb0
gevent==23.9.1 ; python_version >= "3.9" and python_version < "3.13" \
gevent==23.9.1 ; python_version >= "3.10" and python_version < "3.13" \
--hash=sha256:272cffdf535978d59c38ed837916dfd2b5d193be1e9e5dcc60a5f4d5025dd98a \
--hash=sha256:2c7b5c9912378e5f5ccf180d1fdb1e83f42b71823483066eddbe10ef1a2fcaa2 \
--hash=sha256:36a549d632c14684bcbbd3014a6ce2666c5f2a500f34d58d32df6c9ea38b6535 \
@ -387,7 +387,7 @@ gevent==23.9.1 ; python_version >= "3.9" and python_version < "3.13" \
--hash=sha256:f632487c87866094546a74eefbca2c74c1d03638b715b6feb12e80120960185a \
--hash=sha256:fae8d5b5b8fa2a8f63b39f5447168b02db10c888a3e387ed7af2bd1b8612e543 \
--hash=sha256:fde6402c5432b835fbb7698f1c7f2809c8d6b2bd9d047ac1f5a7c1d5aa569303
greenlet==3.0.3 ; python_version >= "3.9" and python_version < "3.13" \
greenlet==3.0.3 ; python_version >= "3.10" and python_version < "3.13" \
--hash=sha256:01bc7ea167cf943b4c802068e178bbf70ae2e8c080467070d01bfa02f337ee67 \
--hash=sha256:0448abc479fab28b00cb472d278828b3ccca164531daab4e970a0458786055d6 \
--hash=sha256:086152f8fbc5955df88382e8a75984e2bb1c892ad2e3c80a2508954e52295257 \
@ -446,22 +446,19 @@ greenlet==3.0.3 ; python_version >= "3.9" and python_version < "3.13" \
--hash=sha256:fcd2469d6a2cf298f198f0487e0a5b1a47a42ca0fa4dfd1b6862c999f018ebbf \
--hash=sha256:fd096eb7ffef17c456cfa587523c5f92321ae02427ff955bebe9e3c63bc9f0da \
--hash=sha256:fe754d231288e1e64323cfad462fcee8f0288654c10bdf4f603a39ed923bef33
h11==0.14.0 ; python_version >= "3.9" and python_version < "3.13" \
h11==0.14.0 ; python_version >= "3.10" and python_version < "3.13" \
--hash=sha256:8f19fbbe99e72420ff35c00b27a34cb9937e902a8b810e2c88300c6f0a3b699d \
--hash=sha256:e3fe4ac4b851c468cc8363d500db52c2ead036020723024a109d37346efaa761
idna==3.10 ; python_version >= "3.9" and python_version < "3.13" \
idna==3.10 ; python_version >= "3.10" and python_version < "3.13" \
--hash=sha256:12f65c9b470abda6dc35cf8e63cc574b1c52b11df2c86030af0ac09b01b13ea9 \
--hash=sha256:946d195a0d259cbba61165e88e65941f16e9b36ea6ddb97f00452bae8b1287d3
importlib-metadata==7.0.1 ; python_version >= "3.9" and python_version < "3.10" \
--hash=sha256:4805911c3a4ec7c3966410053e9ec6a1fecd629117df5adee56dfc9432a1081e \
--hash=sha256:f238736bb06590ae52ac1fab06a3a9ef1d8dce2b7a35b5ab329371d6c8f5d2cc
itsdangerous==2.1.2 ; python_version >= "3.9" and python_version < "3.13" \
itsdangerous==2.1.2 ; python_version >= "3.10" and python_version < "3.13" \
--hash=sha256:2c2349112351b88699d8d4b6b075022c0808887cb7ad10069318a8b0bc88db44 \
--hash=sha256:5dbbc68b317e5e42f327f9021763545dc3fc3bfe22e6deb96aaf1fc38874156a
jinja2==3.1.5 ; python_version >= "3.9" and python_version < "3.13" \
jinja2==3.1.5 ; python_version >= "3.10" and python_version < "3.13" \
--hash=sha256:8fefff8dc3034e27bb80d67c671eb8a9bc424c0ef4c0826edbff304cceff43bb \
--hash=sha256:aba0f4dc9ed8013c424088f68a5c226f7d6097ed89b246d7749c2ec4175c6adb
markupsafe==2.1.5 ; python_version >= "3.9" and python_version < "3.13" \
markupsafe==2.1.5 ; python_version >= "3.10" and python_version < "3.13" \
--hash=sha256:00e046b6dd71aa03a41079792f8473dc494d564611a8f89bbbd7cb93295ebdcf \
--hash=sha256:075202fa5b72c86ad32dc7d0b56024ebdbcf2048c0ba09f1cde31bfdd57bcfff \
--hash=sha256:0e397ac966fdf721b2c528cf028494e86172b4feba51d65f81ffd65c63798f3f \
@ -522,10 +519,10 @@ markupsafe==2.1.5 ; python_version >= "3.9" and python_version < "3.13" \
--hash=sha256:fa9db3f79de01457b03d4f01b34cf91bc0048eb2c3846ff26f66687c2f6d16ab \
--hash=sha256:fce659a462a1be54d2ffcacea5e3ba2d74daa74f30f5f143fe0c58636e355fdd \
--hash=sha256:ffee1f21e5ef0d712f9033568f8344d5da8cc2869dbd08d87c84656e6a2d2f68
packaging==24.2 ; python_version >= "3.9" and python_version < "3.13" \
packaging==24.2 ; python_version >= "3.10" and python_version < "3.13" \
--hash=sha256:09abb1bccd265c01f4a3aa3f7a7db064b36514d2cba19a2f694fe6150451a759 \
--hash=sha256:c228a6dc5e932d346bc5739379109d49e8853dd8223571c7c5b55260edc0b97f
psutil==5.9.8 ; python_version >= "3.9" and python_version < "3.13" \
psutil==5.9.8 ; python_version >= "3.10" and python_version < "3.13" \
--hash=sha256:02615ed8c5ea222323408ceba16c60e99c3f91639b07da6373fb7e6539abc56d \
--hash=sha256:05806de88103b25903dff19bb6692bd2e714ccf9e668d050d144012055cbca73 \
--hash=sha256:26bd09967ae00920df88e0352a91cff1a78f8d69b3ecabbfe733610c0af486c8 \
@ -542,10 +539,10 @@ psutil==5.9.8 ; python_version >= "3.9" and python_version < "3.13" \
--hash=sha256:bd1184ceb3f87651a67b2708d4c3338e9b10c5df903f2e3776b62303b26cb631 \
--hash=sha256:d06016f7f8625a1825ba3732081d77c94589dca78b7a3fc072194851e88461a4 \
--hash=sha256:d16bbddf0693323b8c6123dd804100241da461e41d6e332fb0ba6058f630f8c8
pycparser==2.21 ; python_version >= "3.9" and python_version < "3.13" \
pycparser==2.21 ; python_version >= "3.10" and python_version < "3.13" \
--hash=sha256:8ee45429555515e1f6b185e78100aea234072576aa43ab53aefcae078162fca9 \
--hash=sha256:e644fdec12f7872f86c58ff790da456218b10f863970249516d60a5eaca77206
pynacl==1.5.0 ; python_version >= "3.9" and python_version < "3.13" \
pynacl==1.5.0 ; python_version >= "3.10" and python_version < "3.13" \
--hash=sha256:06b8f6fa7f5de8d5d2f7573fe8c863c051225a27b61e6860fd047b1775807858 \
--hash=sha256:0c84947a22519e013607c9be43706dd42513f9e6ae5d39d3613ca1e142fba44d \
--hash=sha256:20f42270d27e1b6a29f54032090b972d97f0a1b0948cc52392041ef7831fee93 \
@ -556,61 +553,58 @@ pynacl==1.5.0 ; python_version >= "3.9" and python_version < "3.13" \
--hash=sha256:a36d4a9dda1f19ce6e03c9a784a2921a4b726b02e1c736600ca9c22029474394 \
--hash=sha256:a422368fc821589c228f4c49438a368831cb5bbc0eab5ebe1d7fac9dded6567b \
--hash=sha256:e46dae94e34b085175f8abb3b0aaa7da40767865ac82c928eeb9e57e1ea8a543
pypng==0.20220715.0 ; python_version >= "3.9" and python_version < "3.13" \
pypng==0.20220715.0 ; python_version >= "3.10" and python_version < "3.13" \
--hash=sha256:4a43e969b8f5aaafb2a415536c1a8ec7e341cd6a3f957fd5b5f32a4cfeed902c \
--hash=sha256:739c433ba96f078315de54c0db975aee537cbc3e1d0ae4ed9aab0ca1e427e2c1
pysocks==1.7.1 ; python_version >= "3.9" and python_version < "3.13" \
pysocks==1.7.1 ; python_version >= "3.10" and python_version < "3.13" \
--hash=sha256:08e69f092cc6dbe92a0fdd16eeb9b9ffbc13cadfe5ca4c7bd92ffb078b293299 \
--hash=sha256:2725bd0a9925919b9b51739eea5f9e2bae91e83288108a9ad338b2e3a4435ee5 \
--hash=sha256:3f8804571ebe159c380ac6de37643bb4685970655d3bba243530d6558b799aa0
python-engineio==4.9.0 ; python_version >= "3.9" and python_version < "3.13" \
python-engineio==4.9.0 ; python_version >= "3.10" and python_version < "3.13" \
--hash=sha256:979859bff770725b75e60353d7ae53b397e8b517d05ba76733b404a3dcca3e4c \
--hash=sha256:e87459c15638e567711fd156e6f9c4a402668871bed79523f0ecfec744729ec7
python-socketio==5.11.1 ; python_version >= "3.9" and python_version < "3.13" \
python-socketio==5.11.1 ; python_version >= "3.10" and python_version < "3.13" \
--hash=sha256:bbcbd758ed8c183775cb2853ba001361e2fa018babf5cbe11a5b77e91c2ec2a2 \
--hash=sha256:f1a0228b8b1fbdbd93fbbedd821ebce0ef54b2b5bf6e98fcf710deaa7c574259
qrcode==7.4.2 ; python_version >= "3.9" and python_version < "3.13" \
qrcode==7.4.2 ; python_version >= "3.10" and python_version < "3.13" \
--hash=sha256:581dca7a029bcb2deef5d01068e39093e80ef00b4a61098a2182eac59d01643a \
--hash=sha256:9dd969454827e127dbd93696b20747239e6d540e082937c90f14ac95b30f5845
requests==2.32.3 ; python_version >= "3.9" and python_version < "3.13" \
requests==2.32.3 ; python_version >= "3.10" and python_version < "3.13" \
--hash=sha256:55365417734eb18255590a9ff9eb97e9e1da868d4ccd6402399eaf68af20a760 \
--hash=sha256:70761cfe03c773ceb22aa2f671b4757976145175cdfca038c02654d061d6dcc6
setuptools==75.8.0 ; python_version >= "3.9" and python_version < "3.13" \
setuptools==75.8.0 ; python_version >= "3.10" and python_version < "3.13" \
--hash=sha256:c5afc8f407c626b8313a86e10311dd3f661c6cd9c09d4bf8c15c0e11f9f2b0e6 \
--hash=sha256:e3982f444617239225d675215d51f6ba05f845d4eec313da4418fdbb56fb27e3
simple-websocket==1.0.0 ; python_version >= "3.9" and python_version < "3.13" \
simple-websocket==1.0.0 ; python_version >= "3.10" and python_version < "3.13" \
--hash=sha256:17d2c72f4a2bd85174a97e3e4c88b01c40c3f81b7b648b0cc3ce1305968928c8 \
--hash=sha256:1d5bf585e415eaa2083e2bcf02a3ecf91f9712e7b3e6b9fa0b461ad04e0837bc
stem==1.8.1 ; python_version >= "3.9" and python_version < "3.13" \
stem==1.8.1 ; python_version >= "3.10" and python_version < "3.13" \
--hash=sha256:81d43a7c668ba9d7bc1103b2e7a911e9d148294b373d27a59ae8da79ef7a3e2f
typing-extensions==4.9.0 ; python_version >= "3.9" and python_version < "3.13" \
typing-extensions==4.9.0 ; python_version >= "3.10" and python_version < "3.13" \
--hash=sha256:23478f88c37f27d76ac8aee6c905017a143b0b1b886c3c9f66bc2fd94f9f5783 \
--hash=sha256:af72aea155e91adfc61c3ae9e0e342dbc0cba726d6cba4b6c72c1f34e47291cd
unidecode==1.3.8 ; python_version >= "3.9" and python_version < "3.13" \
unidecode==1.3.8 ; python_version >= "3.10" and python_version < "3.13" \
--hash=sha256:cfdb349d46ed3873ece4586b96aa75258726e2fa8ec21d6f00a591d98806c2f4 \
--hash=sha256:d130a61ce6696f8148a3bd8fe779c99adeb4b870584eeb9526584e9aa091fd39
urllib3==2.3.0 ; python_version >= "3.9" and python_version < "3.13" \
urllib3==2.3.0 ; python_version >= "3.10" and python_version < "3.13" \
--hash=sha256:1cee9ad369867bfdbbb48b7dd50374c0967a0bb7710050facf0dd6911440e3df \
--hash=sha256:f8c5449b3cf0861679ce7e0503c7b44b5ec981bec0d1d3795a07f1ba96f0204d
waitress==3.0.2 ; python_version >= "3.9" and python_version < "3.13" \
waitress==3.0.2 ; python_version >= "3.10" and python_version < "3.13" \
--hash=sha256:682aaaf2af0c44ada4abfb70ded36393f0e307f4ab9456a215ce0020baefc31f \
--hash=sha256:c56d67fd6e87c2ee598b76abdd4e96cfad1f24cacdea5078d382b1f9d7b5ed2e
werkzeug==3.0.6 ; python_version >= "3.9" and python_version < "3.13" \
werkzeug==3.0.6 ; python_version >= "3.10" and python_version < "3.13" \
--hash=sha256:1bc0c2310d2fbb07b1dd1105eba2f7af72f322e1e455f2f93c993bee8c8a5f17 \
--hash=sha256:a8dd59d4de28ca70471a34cba79bed5f7ef2e036a76b3ab0835474246eb41f8d
wheel==0.41.3 ; python_version >= "3.9" and python_version < "3.13" \
wheel==0.41.3 ; python_version >= "3.10" and python_version < "3.13" \
--hash=sha256:488609bc63a29322326e05560731bf7bfea8e48ad646e1f5e40d366607de0942 \
--hash=sha256:4d4987ce51a49370ea65c0bfd2234e8ce80a12780820d9dc462597a6e60d0841
wsproto==1.2.0 ; python_version >= "3.9" and python_version < "3.13" \
wsproto==1.2.0 ; python_version >= "3.10" and python_version < "3.13" \
--hash=sha256:ad565f26ecb92588a3e43bc3d96164de84cd9902482b130d0ddbaa9664a85065 \
--hash=sha256:b9acddd652b585d75b20477888c56642fdade28bdfd3579aa24a4d2c037dd736
zipp==3.21.0 ; python_version >= "3.9" and python_version < "3.10" \
--hash=sha256:2c9958f6430a2040341a52eb608ed6dd93ef4392e02ffe219417c1b28b5dd1f4 \
--hash=sha256:ac1bbe05fd2991f160ebce24ffbac5f6d11d83dc90891255885223d42b3cd931
zope-event==5.0 ; python_version >= "3.9" and python_version < "3.13" \
zope-event==5.0 ; python_version >= "3.10" and python_version < "3.13" \
--hash=sha256:2832e95014f4db26c47a13fdaef84cef2f4df37e66b59d8f1f4a8f319a632c26 \
--hash=sha256:bac440d8d9891b4068e2b5a2c5e2c9765a9df762944bda6955f96bb9b91e67cd
zope-interface==6.1 ; python_version >= "3.9" and python_version < "3.13" \
zope-interface==6.1 ; python_version >= "3.10" and python_version < "3.13" \
--hash=sha256:0c8cf55261e15590065039696607f6c9c1aeda700ceee40c70478552d323b3ff \
--hash=sha256:13b7d0f2a67eb83c385880489dbb80145e9d344427b4262c49fbf2581677c11c \
--hash=sha256:1f294a15f7723fc0d3b40701ca9b446133ec713eafc1cc6afa7b3d98666ee1ac \

View File

@ -1,10 +1,10 @@
bidict==0.22.1 ; python_version >= "3.10" and python_version < "3.13" and (platform_machine == "x86_64" or platform_machine == "i686" or platform_machine == "aarch64" or platform_machine == "armv7l" or platform_machine == "ppc64le" or platform_machine == "s390x") or python_version >= "3.10" and python_version < "3.13" and sys_platform != "linux" or python_version >= "3.10" and python_version < "3.13" and (platform_machine != "x86_64" and platform_machine != "i686" and platform_machine != "aarch64" and platform_machine != "armv7l" and platform_machine != "ppc64le" and platform_machine != "s390x") \
bidict==0.22.1 ; python_version >= "3.10" and python_version < "3.13" and (platform_machine == "x86_64" or platform_machine == "i686" or platform_machine == "aarch64" or platform_machine == "armv7l" or platform_machine == "ppc64le" or platform_machine == "s390x" or sys_platform != "linux" or platform_machine != "x86_64" and platform_machine != "i686" and platform_machine != "aarch64" and platform_machine != "armv7l" and platform_machine != "ppc64le" and platform_machine != "s390x") \
--hash=sha256:1e0f7f74e4860e6d0943a05d4134c63a2fad86f3d4732fb265bd79e4e856d81d \
--hash=sha256:6ef212238eb884b664f28da76f33f1d28b260f665fc737b413b287d5487d1e7b
blinker==1.7.0 ; python_version >= "3.10" and python_version < "3.13" and (platform_machine == "x86_64" or platform_machine == "i686" or platform_machine == "aarch64" or platform_machine == "armv7l" or platform_machine == "ppc64le" or platform_machine == "s390x") or python_version >= "3.10" and python_version < "3.13" and sys_platform != "linux" or python_version >= "3.10" and python_version < "3.13" and (platform_machine != "x86_64" and platform_machine != "i686" and platform_machine != "aarch64" and platform_machine != "armv7l" and platform_machine != "ppc64le" and platform_machine != "s390x") \
blinker==1.7.0 ; python_version >= "3.10" and python_version < "3.13" and (platform_machine == "x86_64" or platform_machine == "i686" or platform_machine == "aarch64" or platform_machine == "armv7l" or platform_machine == "ppc64le" or platform_machine == "s390x" or sys_platform != "linux" or platform_machine != "x86_64" and platform_machine != "i686" and platform_machine != "aarch64" and platform_machine != "armv7l" and platform_machine != "ppc64le" and platform_machine != "s390x") \
--hash=sha256:c3f865d4d54db7abc53758a01601cf343fe55b84c1de4e3fa910e420b438d5b9 \
--hash=sha256:e6820ff6fa4e4d1d8e2747c2283749c3f547e4fee112b98555cdcdae32996182
brotli==1.1.0 ; python_version >= "3.10" and python_version < "3.13" and platform_python_implementation != "PyPy" and (platform_machine == "x86_64" or platform_machine == "i686" or platform_machine == "aarch64" or platform_machine == "armv7l" or platform_machine == "ppc64le" or platform_machine == "s390x") or python_version >= "3.10" and python_version < "3.13" and platform_python_implementation != "PyPy" and sys_platform != "linux" or python_version >= "3.10" and python_version < "3.13" and platform_python_implementation != "PyPy" and (platform_machine != "x86_64" and platform_machine != "i686" and platform_machine != "aarch64" and platform_machine != "armv7l" and platform_machine != "ppc64le" and platform_machine != "s390x") \
brotli==1.1.0 ; python_version >= "3.10" and python_version < "3.13" and platform_python_implementation != "PyPy" and (platform_machine == "x86_64" or platform_machine == "i686" or platform_machine == "aarch64" or platform_machine == "armv7l" or platform_machine == "ppc64le" or platform_machine == "s390x" or sys_platform != "linux" or platform_machine != "x86_64" and platform_machine != "i686" and platform_machine != "aarch64" and platform_machine != "armv7l" and platform_machine != "ppc64le" and platform_machine != "s390x") \
--hash=sha256:03d20af184290887bdea3f0f78c4f737d126c74dc2f3ccadf07e54ceca3bf208 \
--hash=sha256:0541e747cce78e24ea12d69176f6a7ddb690e62c425e01d31cc065e69ce55b48 \
--hash=sha256:069a121ac97412d1fe506da790b3e69f52254b9df4eb665cd42460c837193354 \
@ -88,7 +88,7 @@ brotli==1.1.0 ; python_version >= "3.10" and python_version < "3.13" and platfor
--hash=sha256:fce1473f3ccc4187f75b4690cfc922628aed4d3dd013d047f95a9b3919a86596 \
--hash=sha256:fd5f17ff8f14003595ab414e45fce13d073e0762394f957182e69035c9f3d7c2 \
--hash=sha256:fdc3ff3bfccdc6b9cc7c342c03aa2400683f0cb891d46e94b64a197910dc4064
brotlicffi==1.1.0.0 ; python_version >= "3.10" and python_version < "3.13" and platform_python_implementation == "PyPy" and (platform_machine == "x86_64" or platform_machine == "i686" or platform_machine == "aarch64" or platform_machine == "armv7l" or platform_machine == "ppc64le" or platform_machine == "s390x") or python_version >= "3.10" and python_version < "3.13" and platform_python_implementation == "PyPy" and sys_platform != "linux" or python_version >= "3.10" and python_version < "3.13" and platform_python_implementation == "PyPy" and (platform_machine != "x86_64" and platform_machine != "i686" and platform_machine != "aarch64" and platform_machine != "armv7l" and platform_machine != "ppc64le" and platform_machine != "s390x") \
brotlicffi==1.1.0.0 ; python_version >= "3.10" and python_version < "3.13" and platform_python_implementation == "PyPy" and (platform_machine == "x86_64" or platform_machine == "i686" or platform_machine == "aarch64" or platform_machine == "armv7l" or platform_machine == "ppc64le" or platform_machine == "s390x" or sys_platform != "linux" or platform_machine != "x86_64" and platform_machine != "i686" and platform_machine != "aarch64" and platform_machine != "armv7l" and platform_machine != "ppc64le" and platform_machine != "s390x") \
--hash=sha256:19ffc919fa4fc6ace69286e0a23b3789b4219058313cf9b45625016bf7ff996b \
--hash=sha256:1a807d760763e398bbf2c6394ae9da5815901aa93ee0a37bca5efe78d4ee3171 \
--hash=sha256:1b12b50e07c3911e1efa3a8971543e7648100713d4e0971b13631cce22c587eb \
@ -116,10 +116,10 @@ brotlicffi==1.1.0.0 ; python_version >= "3.10" and python_version < "3.13" and p
--hash=sha256:ce01c7316aebc7fce59da734286148b1d1b9455f89cf2c8a4dfce7d41db55c2d \
--hash=sha256:d9eb71bb1085d996244439154387266fd23d6ad37161f6f52f1cd41dd95a3808 \
--hash=sha256:fa8ca0623b26c94fccc3a1fdd895be1743b838f3917300506d04aa3346fd2a14
certifi==2025.1.31 ; python_version >= "3.10" and python_version < "3.13" and (platform_machine == "x86_64" or platform_machine == "i686" or platform_machine == "aarch64" or platform_machine == "armv7l" or platform_machine == "ppc64le" or platform_machine == "s390x") or python_version >= "3.10" and python_version < "3.13" and sys_platform != "linux" or python_version >= "3.10" and python_version < "3.13" and (platform_machine != "x86_64" and platform_machine != "i686" and platform_machine != "aarch64" and platform_machine != "armv7l" and platform_machine != "ppc64le" and platform_machine != "s390x") \
certifi==2025.1.31 ; python_version >= "3.10" and python_version < "3.13" and (platform_machine == "x86_64" or platform_machine == "i686" or platform_machine == "aarch64" or platform_machine == "armv7l" or platform_machine == "ppc64le" or platform_machine == "s390x" or sys_platform != "linux" or platform_machine != "x86_64" and platform_machine != "i686" and platform_machine != "aarch64" and platform_machine != "armv7l" and platform_machine != "ppc64le" and platform_machine != "s390x") \
--hash=sha256:3d5da6925056f6f18f119200434a4780a94263f10d1c21d032a6f6b2baa20651 \
--hash=sha256:ca78db4565a652026a4db2bcdf68f2fb589ea80d0be70e03929ed730746b84fe
cffi==1.16.0 ; python_version >= "3.10" and python_version < "3.13" and (platform_machine == "x86_64" or platform_machine == "i686" or platform_machine == "aarch64" or platform_machine == "armv7l" or platform_machine == "ppc64le" or platform_machine == "s390x") or python_version >= "3.10" and python_version < "3.13" and sys_platform != "linux" or python_version >= "3.10" and python_version < "3.13" and (platform_machine != "x86_64" and platform_machine != "i686" and platform_machine != "aarch64" and platform_machine != "armv7l" and platform_machine != "ppc64le" and platform_machine != "s390x") \
cffi==1.16.0 ; python_version >= "3.10" and python_version < "3.13" and (platform_machine == "x86_64" or platform_machine == "i686" or platform_machine == "aarch64" or platform_machine == "armv7l" or platform_machine == "ppc64le" or platform_machine == "s390x" or sys_platform != "linux" or platform_machine != "x86_64" and platform_machine != "i686" and platform_machine != "aarch64" and platform_machine != "armv7l" and platform_machine != "ppc64le" and platform_machine != "s390x") \
--hash=sha256:0c9ef6ff37e974b73c25eecc13952c55bceed9112be2d9d938ded8e856138bcc \
--hash=sha256:131fd094d1065b19540c3d72594260f118b231090295d8c34e19a7bbcf2e860a \
--hash=sha256:1b8ebc27c014c59692bb2664c7d13ce7a6e9a629be20e54e7271fa696ff2b417 \
@ -172,7 +172,7 @@ cffi==1.16.0 ; python_version >= "3.10" and python_version < "3.13" and (platfor
--hash=sha256:ee07e47c12890ef248766a6e55bd38ebfb2bb8edd4142d56db91b21ea68b7627 \
--hash=sha256:fa3a0128b152627161ce47201262d3140edb5a5c3da88d73a1b790a959126956 \
--hash=sha256:fcc8eb6d5902bb1cf6dc4f187ee3ea80a1eba0a89aba40a5cb20a5087d961357
charset-normalizer==3.3.2 ; python_version >= "3.10" and python_version < "3.13" and (platform_machine == "x86_64" or platform_machine == "i686" or platform_machine == "aarch64" or platform_machine == "armv7l" or platform_machine == "ppc64le" or platform_machine == "s390x") or python_version >= "3.10" and python_version < "3.13" and sys_platform != "linux" or python_version >= "3.10" and python_version < "3.13" and (platform_machine != "x86_64" and platform_machine != "i686" and platform_machine != "aarch64" and platform_machine != "armv7l" and platform_machine != "ppc64le" and platform_machine != "s390x") \
charset-normalizer==3.3.2 ; python_version >= "3.10" and python_version < "3.13" and (platform_machine == "x86_64" or platform_machine == "i686" or platform_machine == "aarch64" or platform_machine == "armv7l" or platform_machine == "ppc64le" or platform_machine == "s390x" or sys_platform != "linux" or platform_machine != "x86_64" and platform_machine != "i686" and platform_machine != "aarch64" and platform_machine != "armv7l" and platform_machine != "ppc64le" and platform_machine != "s390x") \
--hash=sha256:06435b539f889b1f6f4ac1758871aae42dc3a8c0e24ac9e60c2384973ad73027 \
--hash=sha256:06a81e93cd441c56a9b65d8e1d043daeb97a3d0856d177d5c90ba85acb3db087 \
--hash=sha256:0a55554a2fa0d408816b3b5cedf0045f4b8e1a6065aec45849de2d6f3f8e9786 \
@ -263,13 +263,13 @@ charset-normalizer==3.3.2 ; python_version >= "3.10" and python_version < "3.13"
--hash=sha256:fb69256e180cb6c8a894fee62b3afebae785babc1ee98b81cdf68bbca1987f33 \
--hash=sha256:fd1abc0d89e30cc4e02e4064dc67fcc51bd941eb395c502aac3ec19fab46b519 \
--hash=sha256:ff8fa367d09b717b2a17a052544193ad76cd49979c805768879cb63d9ca50561
click==8.1.7 ; python_version >= "3.10" and python_version < "3.13" and (platform_machine == "x86_64" or platform_machine == "i686" or platform_machine == "aarch64" or platform_machine == "armv7l" or platform_machine == "ppc64le" or platform_machine == "s390x") or python_version >= "3.10" and python_version < "3.13" and sys_platform != "linux" or python_version >= "3.10" and python_version < "3.13" and (platform_machine != "x86_64" and platform_machine != "i686" and platform_machine != "aarch64" and platform_machine != "armv7l" and platform_machine != "ppc64le" and platform_machine != "s390x") \
click==8.1.7 ; python_version >= "3.10" and python_version < "3.13" and (platform_machine == "x86_64" or platform_machine == "i686" or platform_machine == "aarch64" or platform_machine == "armv7l" or platform_machine == "ppc64le" or platform_machine == "s390x" or sys_platform != "linux" or platform_machine != "x86_64" and platform_machine != "i686" and platform_machine != "aarch64" and platform_machine != "armv7l" and platform_machine != "ppc64le" and platform_machine != "s390x") \
--hash=sha256:ae74fb96c20a0277a1d615f1e4d73c8414f5a98db8b799a7931d1582f3390c28 \
--hash=sha256:ca9853ad459e787e2192211578cc907e7594e294c7ccc834310722b41b9ca6de
colorama==0.4.6 ; python_version >= "3.10" and python_version < "3.13" and (platform_machine == "x86_64" or platform_machine == "i686" or platform_machine == "aarch64" or platform_machine == "armv7l" or platform_machine == "ppc64le" or platform_machine == "s390x") or python_version >= "3.10" and python_version < "3.13" and sys_platform != "linux" or python_version >= "3.10" and python_version < "3.13" and (platform_machine != "x86_64" and platform_machine != "i686" and platform_machine != "aarch64" and platform_machine != "armv7l" and platform_machine != "ppc64le" and platform_machine != "s390x") \
colorama==0.4.6 ; python_version >= "3.10" and python_version < "3.13" and (platform_machine == "x86_64" or platform_machine == "i686" or platform_machine == "aarch64" or platform_machine == "armv7l" or platform_machine == "ppc64le" or platform_machine == "s390x" or sys_platform != "linux" or platform_machine != "x86_64" and platform_machine != "i686" and platform_machine != "aarch64" and platform_machine != "armv7l" and platform_machine != "ppc64le" and platform_machine != "s390x") \
--hash=sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44 \
--hash=sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6
cython==3.0.8 ; python_version >= "3.10" and python_version < "3.13" and (platform_machine == "x86_64" or platform_machine == "i686" or platform_machine == "aarch64" or platform_machine == "armv7l" or platform_machine == "ppc64le" or platform_machine == "s390x") or python_version >= "3.10" and python_version < "3.13" and sys_platform != "linux" or python_version >= "3.10" and python_version < "3.13" and (platform_machine != "x86_64" and platform_machine != "i686" and platform_machine != "aarch64" and platform_machine != "armv7l" and platform_machine != "ppc64le" and platform_machine != "s390x") \
cython==3.0.8 ; python_version >= "3.10" and python_version < "3.13" and (platform_machine == "x86_64" or platform_machine == "i686" or platform_machine == "aarch64" or platform_machine == "armv7l" or platform_machine == "ppc64le" or platform_machine == "s390x" or sys_platform != "linux" or platform_machine != "x86_64" and platform_machine != "i686" and platform_machine != "aarch64" and platform_machine != "armv7l" and platform_machine != "ppc64le" and platform_machine != "s390x") \
--hash=sha256:000dc9e135d0eec6ecb2b40a5b02d0868a2f8d2e027a41b0fe16a908a9e6de02 \
--hash=sha256:05d7eddc668ae7993643f32c7661f25544e791edb745758672ea5b1a82ecffa6 \
--hash=sha256:0c38c9f0bcce2df0c3347285863621be904ac6b64c5792d871130569d893efd7 \
@ -328,25 +328,25 @@ cython==3.0.8 ; python_version >= "3.10" and python_version < "3.13" and (platfo
--hash=sha256:f05c0bf9d085c031df8f583f0d506aa3be1692023de18c45d0aaf78685bbb944 \
--hash=sha256:fa97893d99385386925d00074654aeae3a98867f298d1e12ceaf38a9054a9bae \
--hash=sha256:fe81b339cffd87c0069c6049b4d33e28bdd1874625ee515785bf42c9fdff3658
dnspython==2.7.0 ; python_version >= "3.10" and python_version < "3.13" and (platform_machine == "x86_64" or platform_machine == "i686" or platform_machine == "aarch64" or platform_machine == "armv7l" or platform_machine == "ppc64le" or platform_machine == "s390x") or python_version >= "3.10" and python_version < "3.13" and sys_platform != "linux" or python_version >= "3.10" and python_version < "3.13" and (platform_machine != "x86_64" and platform_machine != "i686" and platform_machine != "aarch64" and platform_machine != "armv7l" and platform_machine != "ppc64le" and platform_machine != "s390x") \
dnspython==2.7.0 ; python_version >= "3.10" and python_version < "3.13" and (platform_machine == "x86_64" or platform_machine == "i686" or platform_machine == "aarch64" or platform_machine == "armv7l" or platform_machine == "ppc64le" or platform_machine == "s390x" or sys_platform != "linux" or platform_machine != "x86_64" and platform_machine != "i686" and platform_machine != "aarch64" and platform_machine != "armv7l" and platform_machine != "ppc64le" and platform_machine != "s390x") \
--hash=sha256:b4c34b7d10b51bcc3a5071e7b8dee77939f1e878477eeecc965e9835f63c6c86 \
--hash=sha256:ce9c432eda0dc91cf618a5cedf1a4e142651196bbcd2c80e89ed5a907e5cfaf1
eventlet==0.39.0 ; python_version >= "3.10" and python_version < "3.13" and (platform_machine == "x86_64" or platform_machine == "i686" or platform_machine == "aarch64" or platform_machine == "armv7l" or platform_machine == "ppc64le" or platform_machine == "s390x") or python_version >= "3.10" and python_version < "3.13" and sys_platform != "linux" or python_version >= "3.10" and python_version < "3.13" and (platform_machine != "x86_64" and platform_machine != "i686" and platform_machine != "aarch64" and platform_machine != "armv7l" and platform_machine != "ppc64le" and platform_machine != "s390x") \
eventlet==0.39.0 ; python_version >= "3.10" and python_version < "3.13" and (platform_machine == "x86_64" or platform_machine == "i686" or platform_machine == "aarch64" or platform_machine == "armv7l" or platform_machine == "ppc64le" or platform_machine == "s390x" or sys_platform != "linux" or platform_machine != "x86_64" and platform_machine != "i686" and platform_machine != "aarch64" and platform_machine != "armv7l" and platform_machine != "ppc64le" and platform_machine != "s390x") \
--hash=sha256:01ba0aa6ee2452690fc02b274a2409598a13b997c7b5af9dc66600fa42015a79 \
--hash=sha256:9522ca09ad4c1f874c238f06492a7e217ddb13bdeace4475d3b700dd0ba1f6be
flask-compress==1.14 ; python_version >= "3.10" and python_version < "3.13" and (platform_machine == "x86_64" or platform_machine == "i686" or platform_machine == "aarch64" or platform_machine == "armv7l" or platform_machine == "ppc64le" or platform_machine == "s390x") or python_version >= "3.10" and python_version < "3.13" and sys_platform != "linux" or python_version >= "3.10" and python_version < "3.13" and (platform_machine != "x86_64" and platform_machine != "i686" and platform_machine != "aarch64" and platform_machine != "armv7l" and platform_machine != "ppc64le" and platform_machine != "s390x") \
flask-compress==1.14 ; python_version >= "3.10" and python_version < "3.13" and (platform_machine == "x86_64" or platform_machine == "i686" or platform_machine == "aarch64" or platform_machine == "armv7l" or platform_machine == "ppc64le" or platform_machine == "s390x" or sys_platform != "linux" or platform_machine != "x86_64" and platform_machine != "i686" and platform_machine != "aarch64" and platform_machine != "armv7l" and platform_machine != "ppc64le" and platform_machine != "s390x") \
--hash=sha256:b86c9808f0f38ea2246c9730972cf978f2cdf6a9a1a69102ba81e07891e6b26c \
--hash=sha256:e46528f37b91857012be38e24e65db1a248662c3dc32ee7808b5986bf1d123ee
flask-socketio==5.3.4 ; python_version >= "3.10" and python_version < "3.13" and (platform_machine == "x86_64" or platform_machine == "i686" or platform_machine == "aarch64" or platform_machine == "armv7l" or platform_machine == "ppc64le" or platform_machine == "s390x") or python_version >= "3.10" and python_version < "3.13" and sys_platform != "linux" or python_version >= "3.10" and python_version < "3.13" and (platform_machine != "x86_64" and platform_machine != "i686" and platform_machine != "aarch64" and platform_machine != "armv7l" and platform_machine != "ppc64le" and platform_machine != "s390x") \
flask-socketio==5.3.4 ; python_version >= "3.10" and python_version < "3.13" and (platform_machine == "x86_64" or platform_machine == "i686" or platform_machine == "aarch64" or platform_machine == "armv7l" or platform_machine == "ppc64le" or platform_machine == "s390x" or sys_platform != "linux" or platform_machine != "x86_64" and platform_machine != "i686" and platform_machine != "aarch64" and platform_machine != "armv7l" and platform_machine != "ppc64le" and platform_machine != "s390x") \
--hash=sha256:1cbd379c9bf68ac37bcc4750d01708922fa6365d13a5447d3f8893792879410c \
--hash=sha256:564acfb24dcc9545cdae536cde0323653d9b547069a925f11eeb132338aa71c0
flask==2.3.2 ; python_version >= "3.10" and python_version < "3.13" and (platform_machine == "x86_64" or platform_machine == "i686" or platform_machine == "aarch64" or platform_machine == "armv7l" or platform_machine == "ppc64le" or platform_machine == "s390x") or python_version >= "3.10" and python_version < "3.13" and sys_platform != "linux" or python_version >= "3.10" and python_version < "3.13" and (platform_machine != "x86_64" and platform_machine != "i686" and platform_machine != "aarch64" and platform_machine != "armv7l" and platform_machine != "ppc64le" and platform_machine != "s390x") \
flask==2.3.2 ; python_version >= "3.10" and python_version < "3.13" and (platform_machine == "x86_64" or platform_machine == "i686" or platform_machine == "aarch64" or platform_machine == "armv7l" or platform_machine == "ppc64le" or platform_machine == "s390x" or sys_platform != "linux" or platform_machine != "x86_64" and platform_machine != "i686" and platform_machine != "aarch64" and platform_machine != "armv7l" and platform_machine != "ppc64le" and platform_machine != "s390x") \
--hash=sha256:77fd4e1249d8c9923de34907236b747ced06e5467ecac1a7bb7115ae0e9670b0 \
--hash=sha256:8c2f9abd47a9e8df7f0c3f091ce9497d011dc3b31effcf4c85a6e2b50f4114ef
gevent-websocket==0.10.1 ; python_version >= "3.10" and python_version < "3.13" and (platform_machine == "x86_64" or platform_machine == "i686" or platform_machine == "aarch64" or platform_machine == "armv7l" or platform_machine == "ppc64le" or platform_machine == "s390x") or python_version >= "3.10" and python_version < "3.13" and sys_platform != "linux" or python_version >= "3.10" and python_version < "3.13" and (platform_machine != "x86_64" and platform_machine != "i686" and platform_machine != "aarch64" and platform_machine != "armv7l" and platform_machine != "ppc64le" and platform_machine != "s390x") \
gevent-websocket==0.10.1 ; python_version >= "3.10" and python_version < "3.13" and (platform_machine == "x86_64" or platform_machine == "i686" or platform_machine == "aarch64" or platform_machine == "armv7l" or platform_machine == "ppc64le" or platform_machine == "s390x" or sys_platform != "linux" or platform_machine != "x86_64" and platform_machine != "i686" and platform_machine != "aarch64" and platform_machine != "armv7l" and platform_machine != "ppc64le" and platform_machine != "s390x") \
--hash=sha256:17b67d91282f8f4c973eba0551183fc84f56f1c90c8f6b6b30256f31f66f5242 \
--hash=sha256:7eaef32968290c9121f7c35b973e2cc302ffb076d018c9068d2f5ca8b2d85fb0
gevent==23.9.1 ; python_version >= "3.10" and python_version < "3.13" and (platform_machine == "x86_64" or platform_machine == "i686" or platform_machine == "aarch64" or platform_machine == "armv7l" or platform_machine == "ppc64le" or platform_machine == "s390x") or python_version >= "3.10" and python_version < "3.13" and sys_platform != "linux" or python_version >= "3.10" and python_version < "3.13" and (platform_machine != "x86_64" and platform_machine != "i686" and platform_machine != "aarch64" and platform_machine != "armv7l" and platform_machine != "ppc64le" and platform_machine != "s390x") \
gevent==23.9.1 ; python_version >= "3.10" and python_version < "3.13" and (platform_machine == "x86_64" or platform_machine == "i686" or platform_machine == "aarch64" or platform_machine == "armv7l" or platform_machine == "ppc64le" or platform_machine == "s390x" or sys_platform != "linux" or platform_machine != "x86_64" and platform_machine != "i686" and platform_machine != "aarch64" and platform_machine != "armv7l" and platform_machine != "ppc64le" and platform_machine != "s390x") \
--hash=sha256:272cffdf535978d59c38ed837916dfd2b5d193be1e9e5dcc60a5f4d5025dd98a \
--hash=sha256:2c7b5c9912378e5f5ccf180d1fdb1e83f42b71823483066eddbe10ef1a2fcaa2 \
--hash=sha256:36a549d632c14684bcbbd3014a6ce2666c5f2a500f34d58d32df6c9ea38b6535 \
@ -387,7 +387,7 @@ gevent==23.9.1 ; python_version >= "3.10" and python_version < "3.13" and (platf
--hash=sha256:f632487c87866094546a74eefbca2c74c1d03638b715b6feb12e80120960185a \
--hash=sha256:fae8d5b5b8fa2a8f63b39f5447168b02db10c888a3e387ed7af2bd1b8612e543 \
--hash=sha256:fde6402c5432b835fbb7698f1c7f2809c8d6b2bd9d047ac1f5a7c1d5aa569303
greenlet==3.0.3 ; python_version >= "3.10" and python_version < "3.13" and (platform_machine == "x86_64" or platform_machine == "i686" or platform_machine == "aarch64" or platform_machine == "armv7l" or platform_machine == "ppc64le" or platform_machine == "s390x") or python_version >= "3.10" and python_version < "3.13" and sys_platform != "linux" or python_version >= "3.10" and python_version < "3.13" and (platform_machine != "x86_64" and platform_machine != "i686" and platform_machine != "aarch64" and platform_machine != "armv7l" and platform_machine != "ppc64le" and platform_machine != "s390x") \
greenlet==3.0.3 ; python_version >= "3.10" and python_version < "3.13" and (platform_machine == "x86_64" or platform_machine == "i686" or platform_machine == "aarch64" or platform_machine == "armv7l" or platform_machine == "ppc64le" or platform_machine == "s390x" or sys_platform != "linux" or platform_machine != "x86_64" and platform_machine != "i686" and platform_machine != "aarch64" and platform_machine != "armv7l" and platform_machine != "ppc64le" and platform_machine != "s390x") \
--hash=sha256:01bc7ea167cf943b4c802068e178bbf70ae2e8c080467070d01bfa02f337ee67 \
--hash=sha256:0448abc479fab28b00cb472d278828b3ccca164531daab4e970a0458786055d6 \
--hash=sha256:086152f8fbc5955df88382e8a75984e2bb1c892ad2e3c80a2508954e52295257 \
@ -446,19 +446,19 @@ greenlet==3.0.3 ; python_version >= "3.10" and python_version < "3.13" and (plat
--hash=sha256:fcd2469d6a2cf298f198f0487e0a5b1a47a42ca0fa4dfd1b6862c999f018ebbf \
--hash=sha256:fd096eb7ffef17c456cfa587523c5f92321ae02427ff955bebe9e3c63bc9f0da \
--hash=sha256:fe754d231288e1e64323cfad462fcee8f0288654c10bdf4f603a39ed923bef33
h11==0.14.0 ; python_version >= "3.10" and python_version < "3.13" and (platform_machine == "x86_64" or platform_machine == "i686" or platform_machine == "aarch64" or platform_machine == "armv7l" or platform_machine == "ppc64le" or platform_machine == "s390x") or python_version >= "3.10" and python_version < "3.13" and sys_platform != "linux" or python_version >= "3.10" and python_version < "3.13" and (platform_machine != "x86_64" and platform_machine != "i686" and platform_machine != "aarch64" and platform_machine != "armv7l" and platform_machine != "ppc64le" and platform_machine != "s390x") \
h11==0.14.0 ; python_version >= "3.10" and python_version < "3.13" and (platform_machine == "x86_64" or platform_machine == "i686" or platform_machine == "aarch64" or platform_machine == "armv7l" or platform_machine == "ppc64le" or platform_machine == "s390x" or sys_platform != "linux" or platform_machine != "x86_64" and platform_machine != "i686" and platform_machine != "aarch64" and platform_machine != "armv7l" and platform_machine != "ppc64le" and platform_machine != "s390x") \
--hash=sha256:8f19fbbe99e72420ff35c00b27a34cb9937e902a8b810e2c88300c6f0a3b699d \
--hash=sha256:e3fe4ac4b851c468cc8363d500db52c2ead036020723024a109d37346efaa761
idna==3.10 ; python_version >= "3.10" and python_version < "3.13" and (platform_machine == "x86_64" or platform_machine == "i686" or platform_machine == "aarch64" or platform_machine == "armv7l" or platform_machine == "ppc64le" or platform_machine == "s390x") or python_version >= "3.10" and python_version < "3.13" and sys_platform != "linux" or python_version >= "3.10" and python_version < "3.13" and (platform_machine != "x86_64" and platform_machine != "i686" and platform_machine != "aarch64" and platform_machine != "armv7l" and platform_machine != "ppc64le" and platform_machine != "s390x") \
idna==3.10 ; python_version >= "3.10" and python_version < "3.13" and (platform_machine == "x86_64" or platform_machine == "i686" or platform_machine == "aarch64" or platform_machine == "armv7l" or platform_machine == "ppc64le" or platform_machine == "s390x" or sys_platform != "linux" or platform_machine != "x86_64" and platform_machine != "i686" and platform_machine != "aarch64" and platform_machine != "armv7l" and platform_machine != "ppc64le" and platform_machine != "s390x") \
--hash=sha256:12f65c9b470abda6dc35cf8e63cc574b1c52b11df2c86030af0ac09b01b13ea9 \
--hash=sha256:946d195a0d259cbba61165e88e65941f16e9b36ea6ddb97f00452bae8b1287d3
itsdangerous==2.1.2 ; python_version >= "3.10" and python_version < "3.13" and (platform_machine == "x86_64" or platform_machine == "i686" or platform_machine == "aarch64" or platform_machine == "armv7l" or platform_machine == "ppc64le" or platform_machine == "s390x") or python_version >= "3.10" and python_version < "3.13" and sys_platform != "linux" or python_version >= "3.10" and python_version < "3.13" and (platform_machine != "x86_64" and platform_machine != "i686" and platform_machine != "aarch64" and platform_machine != "armv7l" and platform_machine != "ppc64le" and platform_machine != "s390x") \
itsdangerous==2.1.2 ; python_version >= "3.10" and python_version < "3.13" and (platform_machine == "x86_64" or platform_machine == "i686" or platform_machine == "aarch64" or platform_machine == "armv7l" or platform_machine == "ppc64le" or platform_machine == "s390x" or sys_platform != "linux" or platform_machine != "x86_64" and platform_machine != "i686" and platform_machine != "aarch64" and platform_machine != "armv7l" and platform_machine != "ppc64le" and platform_machine != "s390x") \
--hash=sha256:2c2349112351b88699d8d4b6b075022c0808887cb7ad10069318a8b0bc88db44 \
--hash=sha256:5dbbc68b317e5e42f327f9021763545dc3fc3bfe22e6deb96aaf1fc38874156a
jinja2==3.1.5 ; python_version >= "3.10" and python_version < "3.13" and (platform_machine == "x86_64" or platform_machine == "i686" or platform_machine == "aarch64" or platform_machine == "armv7l" or platform_machine == "ppc64le" or platform_machine == "s390x") or python_version >= "3.10" and python_version < "3.13" and sys_platform != "linux" or python_version >= "3.10" and python_version < "3.13" and (platform_machine != "x86_64" and platform_machine != "i686" and platform_machine != "aarch64" and platform_machine != "armv7l" and platform_machine != "ppc64le" and platform_machine != "s390x") \
jinja2==3.1.5 ; python_version >= "3.10" and python_version < "3.13" and (platform_machine == "x86_64" or platform_machine == "i686" or platform_machine == "aarch64" or platform_machine == "armv7l" or platform_machine == "ppc64le" or platform_machine == "s390x" or sys_platform != "linux" or platform_machine != "x86_64" and platform_machine != "i686" and platform_machine != "aarch64" and platform_machine != "armv7l" and platform_machine != "ppc64le" and platform_machine != "s390x") \
--hash=sha256:8fefff8dc3034e27bb80d67c671eb8a9bc424c0ef4c0826edbff304cceff43bb \
--hash=sha256:aba0f4dc9ed8013c424088f68a5c226f7d6097ed89b246d7749c2ec4175c6adb
markupsafe==2.1.5 ; python_version >= "3.10" and python_version < "3.13" and (platform_machine == "x86_64" or platform_machine == "i686" or platform_machine == "aarch64" or platform_machine == "armv7l" or platform_machine == "ppc64le" or platform_machine == "s390x") or python_version >= "3.10" and python_version < "3.13" and sys_platform != "linux" or python_version >= "3.10" and python_version < "3.13" and (platform_machine != "x86_64" and platform_machine != "i686" and platform_machine != "aarch64" and platform_machine != "armv7l" and platform_machine != "ppc64le" and platform_machine != "s390x") \
markupsafe==2.1.5 ; python_version >= "3.10" and python_version < "3.13" and (platform_machine == "x86_64" or platform_machine == "i686" or platform_machine == "aarch64" or platform_machine == "armv7l" or platform_machine == "ppc64le" or platform_machine == "s390x" or sys_platform != "linux" or platform_machine != "x86_64" and platform_machine != "i686" and platform_machine != "aarch64" and platform_machine != "armv7l" and platform_machine != "ppc64le" and platform_machine != "s390x") \
--hash=sha256:00e046b6dd71aa03a41079792f8473dc494d564611a8f89bbbd7cb93295ebdcf \
--hash=sha256:075202fa5b72c86ad32dc7d0b56024ebdbcf2048c0ba09f1cde31bfdd57bcfff \
--hash=sha256:0e397ac966fdf721b2c528cf028494e86172b4feba51d65f81ffd65c63798f3f \
@ -519,10 +519,10 @@ markupsafe==2.1.5 ; python_version >= "3.10" and python_version < "3.13" and (pl
--hash=sha256:fa9db3f79de01457b03d4f01b34cf91bc0048eb2c3846ff26f66687c2f6d16ab \
--hash=sha256:fce659a462a1be54d2ffcacea5e3ba2d74daa74f30f5f143fe0c58636e355fdd \
--hash=sha256:ffee1f21e5ef0d712f9033568f8344d5da8cc2869dbd08d87c84656e6a2d2f68
packaging==24.2 ; python_version >= "3.10" and python_version < "3.13" and (platform_machine == "x86_64" or platform_machine == "i686" or platform_machine == "aarch64" or platform_machine == "armv7l" or platform_machine == "ppc64le" or platform_machine == "s390x") or python_version >= "3.10" and python_version < "3.13" and sys_platform != "linux" or python_version >= "3.10" and python_version < "3.13" and (platform_machine != "x86_64" and platform_machine != "i686" and platform_machine != "aarch64" and platform_machine != "armv7l" and platform_machine != "ppc64le" and platform_machine != "s390x") \
packaging==24.2 ; python_version >= "3.10" and python_version < "3.13" and (platform_machine == "x86_64" or platform_machine == "i686" or platform_machine == "aarch64" or platform_machine == "armv7l" or platform_machine == "ppc64le" or platform_machine == "s390x" or sys_platform != "linux" or platform_machine != "x86_64" and platform_machine != "i686" and platform_machine != "aarch64" and platform_machine != "armv7l" and platform_machine != "ppc64le" and platform_machine != "s390x") \
--hash=sha256:09abb1bccd265c01f4a3aa3f7a7db064b36514d2cba19a2f694fe6150451a759 \
--hash=sha256:c228a6dc5e932d346bc5739379109d49e8853dd8223571c7c5b55260edc0b97f
psutil==5.9.8 ; python_version >= "3.10" and python_version < "3.13" and (platform_machine == "x86_64" or platform_machine == "i686" or platform_machine == "aarch64" or platform_machine == "armv7l" or platform_machine == "ppc64le" or platform_machine == "s390x") or python_version >= "3.10" and python_version < "3.13" and sys_platform != "linux" or python_version >= "3.10" and python_version < "3.13" and (platform_machine != "x86_64" and platform_machine != "i686" and platform_machine != "aarch64" and platform_machine != "armv7l" and platform_machine != "ppc64le" and platform_machine != "s390x") \
psutil==5.9.8 ; python_version >= "3.10" and python_version < "3.13" and (platform_machine == "x86_64" or platform_machine == "i686" or platform_machine == "aarch64" or platform_machine == "armv7l" or platform_machine == "ppc64le" or platform_machine == "s390x" or sys_platform != "linux" or platform_machine != "x86_64" and platform_machine != "i686" and platform_machine != "aarch64" and platform_machine != "armv7l" and platform_machine != "ppc64le" and platform_machine != "s390x") \
--hash=sha256:02615ed8c5ea222323408ceba16c60e99c3f91639b07da6373fb7e6539abc56d \
--hash=sha256:05806de88103b25903dff19bb6692bd2e714ccf9e668d050d144012055cbca73 \
--hash=sha256:26bd09967ae00920df88e0352a91cff1a78f8d69b3ecabbfe733610c0af486c8 \
@ -539,10 +539,10 @@ psutil==5.9.8 ; python_version >= "3.10" and python_version < "3.13" and (platfo
--hash=sha256:bd1184ceb3f87651a67b2708d4c3338e9b10c5df903f2e3776b62303b26cb631 \
--hash=sha256:d06016f7f8625a1825ba3732081d77c94589dca78b7a3fc072194851e88461a4 \
--hash=sha256:d16bbddf0693323b8c6123dd804100241da461e41d6e332fb0ba6058f630f8c8
pycparser==2.21 ; python_version >= "3.10" and python_version < "3.13" and (platform_machine == "x86_64" or platform_machine == "i686" or platform_machine == "aarch64" or platform_machine == "armv7l" or platform_machine == "ppc64le" or platform_machine == "s390x") or python_version >= "3.10" and python_version < "3.13" and sys_platform != "linux" or python_version >= "3.10" and python_version < "3.13" and (platform_machine != "x86_64" and platform_machine != "i686" and platform_machine != "aarch64" and platform_machine != "armv7l" and platform_machine != "ppc64le" and platform_machine != "s390x") \
pycparser==2.21 ; python_version >= "3.10" and python_version < "3.13" and (platform_machine == "x86_64" or platform_machine == "i686" or platform_machine == "aarch64" or platform_machine == "armv7l" or platform_machine == "ppc64le" or platform_machine == "s390x" or sys_platform != "linux" or platform_machine != "x86_64" and platform_machine != "i686" and platform_machine != "aarch64" and platform_machine != "armv7l" and platform_machine != "ppc64le" and platform_machine != "s390x") \
--hash=sha256:8ee45429555515e1f6b185e78100aea234072576aa43ab53aefcae078162fca9 \
--hash=sha256:e644fdec12f7872f86c58ff790da456218b10f863970249516d60a5eaca77206
pynacl==1.5.0 ; python_version >= "3.10" and python_version < "3.13" and (platform_machine == "x86_64" or platform_machine == "i686" or platform_machine == "aarch64" or platform_machine == "armv7l" or platform_machine == "ppc64le" or platform_machine == "s390x") or python_version >= "3.10" and python_version < "3.13" and sys_platform != "linux" or python_version >= "3.10" and python_version < "3.13" and (platform_machine != "x86_64" and platform_machine != "i686" and platform_machine != "aarch64" and platform_machine != "armv7l" and platform_machine != "ppc64le" and platform_machine != "s390x") \
pynacl==1.5.0 ; python_version >= "3.10" and python_version < "3.13" and (platform_machine == "x86_64" or platform_machine == "i686" or platform_machine == "aarch64" or platform_machine == "armv7l" or platform_machine == "ppc64le" or platform_machine == "s390x" or sys_platform != "linux" or platform_machine != "x86_64" and platform_machine != "i686" and platform_machine != "aarch64" and platform_machine != "armv7l" and platform_machine != "ppc64le" and platform_machine != "s390x") \
--hash=sha256:06b8f6fa7f5de8d5d2f7573fe8c863c051225a27b61e6860fd047b1775807858 \
--hash=sha256:0c84947a22519e013607c9be43706dd42513f9e6ae5d39d3613ca1e142fba44d \
--hash=sha256:20f42270d27e1b6a29f54032090b972d97f0a1b0948cc52392041ef7831fee93 \
@ -553,81 +553,81 @@ pynacl==1.5.0 ; python_version >= "3.10" and python_version < "3.13" and (platfo
--hash=sha256:a36d4a9dda1f19ce6e03c9a784a2921a4b726b02e1c736600ca9c22029474394 \
--hash=sha256:a422368fc821589c228f4c49438a368831cb5bbc0eab5ebe1d7fac9dded6567b \
--hash=sha256:e46dae94e34b085175f8abb3b0aaa7da40767865ac82c928eeb9e57e1ea8a543
pypng==0.20220715.0 ; python_version >= "3.10" and python_version < "3.13" and (platform_machine == "x86_64" or platform_machine == "i686" or platform_machine == "aarch64" or platform_machine == "armv7l" or platform_machine == "ppc64le" or platform_machine == "s390x") or python_version >= "3.10" and python_version < "3.13" and sys_platform != "linux" or python_version >= "3.10" and python_version < "3.13" and (platform_machine != "x86_64" and platform_machine != "i686" and platform_machine != "aarch64" and platform_machine != "armv7l" and platform_machine != "ppc64le" and platform_machine != "s390x") \
pypng==0.20220715.0 ; python_version >= "3.10" and python_version < "3.13" and (platform_machine == "x86_64" or platform_machine == "i686" or platform_machine == "aarch64" or platform_machine == "armv7l" or platform_machine == "ppc64le" or platform_machine == "s390x" or sys_platform != "linux" or platform_machine != "x86_64" and platform_machine != "i686" and platform_machine != "aarch64" and platform_machine != "armv7l" and platform_machine != "ppc64le" and platform_machine != "s390x") \
--hash=sha256:4a43e969b8f5aaafb2a415536c1a8ec7e341cd6a3f957fd5b5f32a4cfeed902c \
--hash=sha256:739c433ba96f078315de54c0db975aee537cbc3e1d0ae4ed9aab0ca1e427e2c1
pyside6-addons==6.8.2.1 ; python_version >= "3.10" and python_version < "3.13" and (platform_machine == "x86_64" or platform_machine == "i686" or platform_machine == "aarch64" or platform_machine == "armv7l" or platform_machine == "ppc64le" or platform_machine == "s390x") or python_version >= "3.10" and python_version < "3.13" and sys_platform != "linux" or python_version >= "3.10" and python_version < "3.13" and (platform_machine != "x86_64" and platform_machine != "i686" and platform_machine != "aarch64" and platform_machine != "armv7l" and platform_machine != "ppc64le" and platform_machine != "s390x") \
pyside6-addons==6.8.2.1 ; python_version >= "3.10" and python_version < "3.13" and (platform_machine == "x86_64" or platform_machine == "i686" or platform_machine == "aarch64" or platform_machine == "armv7l" or platform_machine == "ppc64le" or platform_machine == "s390x" or sys_platform != "linux" or platform_machine != "x86_64" and platform_machine != "i686" and platform_machine != "aarch64" and platform_machine != "armv7l" and platform_machine != "ppc64le" and platform_machine != "s390x") \
--hash=sha256:5558816018042fecd0d782111ced529585a23ea9a010b518f8495764f578a01f \
--hash=sha256:c761cc45022aa79d8419e671e7fb34a4a3e5b3826f1e68fcb819bd6e3a387fbb \
--hash=sha256:d904179f16deeca4ba440b4ef78e8d54df2b994b46784ad9d53b741082f3b2a7 \
--hash=sha256:f3d85e676851ada8238bc76ebfacbee738fc0b35b3bc15c9765dd107b8ee6ec4
pyside6-essentials==6.8.2.1 ; python_version >= "3.10" and python_version < "3.13" and (platform_machine == "x86_64" or platform_machine == "i686" or platform_machine == "aarch64" or platform_machine == "armv7l" or platform_machine == "ppc64le" or platform_machine == "s390x") or python_version >= "3.10" and python_version < "3.13" and sys_platform != "linux" or python_version >= "3.10" and python_version < "3.13" and (platform_machine != "x86_64" and platform_machine != "i686" and platform_machine != "aarch64" and platform_machine != "armv7l" and platform_machine != "ppc64le" and platform_machine != "s390x") \
pyside6-essentials==6.8.2.1 ; python_version >= "3.10" and python_version < "3.13" and (platform_machine == "x86_64" or platform_machine == "i686" or platform_machine == "aarch64" or platform_machine == "armv7l" or platform_machine == "ppc64le" or platform_machine == "s390x" or sys_platform != "linux" or platform_machine != "x86_64" and platform_machine != "i686" and platform_machine != "aarch64" and platform_machine != "armv7l" and platform_machine != "ppc64le" and platform_machine != "s390x") \
--hash=sha256:18de224f09108998d194e60f2fb8a1e86367dd525dd8a6192598e80e6ada649e \
--hash=sha256:5ab31e5395a4724102edd6e8ff980fa3f7cde2aa79050763a1dcc30bb914195a \
--hash=sha256:7aed46f91d44399b4c713cf7387f5fb6f0114413fbcdbde493a528fb8e19f6ed \
--hash=sha256:ae5cc48f7e9a08e73e3ec2387ce245c8150e620b8d5a87548ebd4b8e3aeae49b
pyside6==6.8.2.1 ; python_version >= "3.10" and python_version < "3.13" and (platform_machine == "x86_64" or platform_machine == "i686" or platform_machine == "aarch64" or platform_machine == "armv7l" or platform_machine == "ppc64le" or platform_machine == "s390x") or python_version >= "3.10" and python_version < "3.13" and sys_platform != "linux" or python_version >= "3.10" and python_version < "3.13" and (platform_machine != "x86_64" and platform_machine != "i686" and platform_machine != "aarch64" and platform_machine != "armv7l" and platform_machine != "ppc64le" and platform_machine != "s390x") \
pyside6==6.8.2.1 ; python_version >= "3.10" and python_version < "3.13" and (platform_machine == "x86_64" or platform_machine == "i686" or platform_machine == "aarch64" or platform_machine == "armv7l" or platform_machine == "ppc64le" or platform_machine == "s390x" or sys_platform != "linux" or platform_machine != "x86_64" and platform_machine != "i686" and platform_machine != "aarch64" and platform_machine != "armv7l" and platform_machine != "ppc64le" and platform_machine != "s390x") \
--hash=sha256:23d2a1a77b25459a049c4276b4e0bbfb375b73d3921061b1a16bcfa64e1fe517 \
--hash=sha256:3fcb551729f235475b2abe7d919027de54a65d850e744f60716f890202273720 \
--hash=sha256:92361e41727910e3560ea5ba494fabecc76cd20892c9fcb2ced07619081c4e65 \
--hash=sha256:bfefa80a93db06dc64c0e7beef0377c9b8ca51e007cfc34575defe065af893b6
pysocks==1.7.1 ; python_version >= "3.10" and python_version < "3.13" and (platform_machine == "x86_64" or platform_machine == "i686" or platform_machine == "aarch64" or platform_machine == "armv7l" or platform_machine == "ppc64le" or platform_machine == "s390x") or python_version >= "3.10" and python_version < "3.13" and sys_platform != "linux" or python_version >= "3.10" and python_version < "3.13" and (platform_machine != "x86_64" and platform_machine != "i686" and platform_machine != "aarch64" and platform_machine != "armv7l" and platform_machine != "ppc64le" and platform_machine != "s390x") \
pysocks==1.7.1 ; python_version >= "3.10" and python_version < "3.13" and (platform_machine == "x86_64" or platform_machine == "i686" or platform_machine == "aarch64" or platform_machine == "armv7l" or platform_machine == "ppc64le" or platform_machine == "s390x" or sys_platform != "linux" or platform_machine != "x86_64" and platform_machine != "i686" and platform_machine != "aarch64" and platform_machine != "armv7l" and platform_machine != "ppc64le" and platform_machine != "s390x") \
--hash=sha256:08e69f092cc6dbe92a0fdd16eeb9b9ffbc13cadfe5ca4c7bd92ffb078b293299 \
--hash=sha256:2725bd0a9925919b9b51739eea5f9e2bae91e83288108a9ad338b2e3a4435ee5 \
--hash=sha256:3f8804571ebe159c380ac6de37643bb4685970655d3bba243530d6558b799aa0
python-engineio==4.9.0 ; python_version >= "3.10" and python_version < "3.13" and (platform_machine == "x86_64" or platform_machine == "i686" or platform_machine == "aarch64" or platform_machine == "armv7l" or platform_machine == "ppc64le" or platform_machine == "s390x") or python_version >= "3.10" and python_version < "3.13" and sys_platform != "linux" or python_version >= "3.10" and python_version < "3.13" and (platform_machine != "x86_64" and platform_machine != "i686" and platform_machine != "aarch64" and platform_machine != "armv7l" and platform_machine != "ppc64le" and platform_machine != "s390x") \
python-engineio==4.9.0 ; python_version >= "3.10" and python_version < "3.13" and (platform_machine == "x86_64" or platform_machine == "i686" or platform_machine == "aarch64" or platform_machine == "armv7l" or platform_machine == "ppc64le" or platform_machine == "s390x" or sys_platform != "linux" or platform_machine != "x86_64" and platform_machine != "i686" and platform_machine != "aarch64" and platform_machine != "armv7l" and platform_machine != "ppc64le" and platform_machine != "s390x") \
--hash=sha256:979859bff770725b75e60353d7ae53b397e8b517d05ba76733b404a3dcca3e4c \
--hash=sha256:e87459c15638e567711fd156e6f9c4a402668871bed79523f0ecfec744729ec7
python-gnupg==0.5.2 ; python_version >= "3.10" and python_version < "3.13" and (platform_machine == "x86_64" or platform_machine == "i686" or platform_machine == "aarch64" or platform_machine == "armv7l" or platform_machine == "ppc64le" or platform_machine == "s390x") or python_version >= "3.10" and python_version < "3.13" and sys_platform != "linux" or python_version >= "3.10" and python_version < "3.13" and (platform_machine != "x86_64" and platform_machine != "i686" and platform_machine != "aarch64" and platform_machine != "armv7l" and platform_machine != "ppc64le" and platform_machine != "s390x") \
python-gnupg==0.5.2 ; python_version >= "3.10" and python_version < "3.13" and (platform_machine == "x86_64" or platform_machine == "i686" or platform_machine == "aarch64" or platform_machine == "armv7l" or platform_machine == "ppc64le" or platform_machine == "s390x" or sys_platform != "linux" or platform_machine != "x86_64" and platform_machine != "i686" and platform_machine != "aarch64" and platform_machine != "armv7l" and platform_machine != "ppc64le" and platform_machine != "s390x") \
--hash=sha256:01d8013931c9fa3f45824bbea7054c03d6e11f258a72e7e086e168dbcb91854c \
--hash=sha256:72ce142af6da7f07e433fef148b445fb3e07854acd2f88739008838745c0e9f5
python-socketio==5.11.1 ; python_version >= "3.10" and python_version < "3.13" and (platform_machine == "x86_64" or platform_machine == "i686" or platform_machine == "aarch64" or platform_machine == "armv7l" or platform_machine == "ppc64le" or platform_machine == "s390x") or python_version >= "3.10" and python_version < "3.13" and sys_platform != "linux" or python_version >= "3.10" and python_version < "3.13" and (platform_machine != "x86_64" and platform_machine != "i686" and platform_machine != "aarch64" and platform_machine != "armv7l" and platform_machine != "ppc64le" and platform_machine != "s390x") \
python-socketio==5.11.1 ; python_version >= "3.10" and python_version < "3.13" and (platform_machine == "x86_64" or platform_machine == "i686" or platform_machine == "aarch64" or platform_machine == "armv7l" or platform_machine == "ppc64le" or platform_machine == "s390x" or sys_platform != "linux" or platform_machine != "x86_64" and platform_machine != "i686" and platform_machine != "aarch64" and platform_machine != "armv7l" and platform_machine != "ppc64le" and platform_machine != "s390x") \
--hash=sha256:bbcbd758ed8c183775cb2853ba001361e2fa018babf5cbe11a5b77e91c2ec2a2 \
--hash=sha256:f1a0228b8b1fbdbd93fbbedd821ebce0ef54b2b5bf6e98fcf710deaa7c574259
qrcode==7.4.2 ; python_version >= "3.10" and python_version < "3.13" and (platform_machine == "x86_64" or platform_machine == "i686" or platform_machine == "aarch64" or platform_machine == "armv7l" or platform_machine == "ppc64le" or platform_machine == "s390x") or python_version >= "3.10" and python_version < "3.13" and sys_platform != "linux" or python_version >= "3.10" and python_version < "3.13" and (platform_machine != "x86_64" and platform_machine != "i686" and platform_machine != "aarch64" and platform_machine != "armv7l" and platform_machine != "ppc64le" and platform_machine != "s390x") \
qrcode==7.4.2 ; python_version >= "3.10" and python_version < "3.13" and (platform_machine == "x86_64" or platform_machine == "i686" or platform_machine == "aarch64" or platform_machine == "armv7l" or platform_machine == "ppc64le" or platform_machine == "s390x" or sys_platform != "linux" or platform_machine != "x86_64" and platform_machine != "i686" and platform_machine != "aarch64" and platform_machine != "armv7l" and platform_machine != "ppc64le" and platform_machine != "s390x") \
--hash=sha256:581dca7a029bcb2deef5d01068e39093e80ef00b4a61098a2182eac59d01643a \
--hash=sha256:9dd969454827e127dbd93696b20747239e6d540e082937c90f14ac95b30f5845
requests==2.32.3 ; python_version >= "3.10" and python_version < "3.13" and (platform_machine == "x86_64" or platform_machine == "i686" or platform_machine == "aarch64" or platform_machine == "armv7l" or platform_machine == "ppc64le" or platform_machine == "s390x") or python_version >= "3.10" and python_version < "3.13" and sys_platform != "linux" or python_version >= "3.10" and python_version < "3.13" and (platform_machine != "x86_64" and platform_machine != "i686" and platform_machine != "aarch64" and platform_machine != "armv7l" and platform_machine != "ppc64le" and platform_machine != "s390x") \
requests==2.32.3 ; python_version >= "3.10" and python_version < "3.13" and (platform_machine == "x86_64" or platform_machine == "i686" or platform_machine == "aarch64" or platform_machine == "armv7l" or platform_machine == "ppc64le" or platform_machine == "s390x" or sys_platform != "linux" or platform_machine != "x86_64" and platform_machine != "i686" and platform_machine != "aarch64" and platform_machine != "armv7l" and platform_machine != "ppc64le" and platform_machine != "s390x") \
--hash=sha256:55365417734eb18255590a9ff9eb97e9e1da868d4ccd6402399eaf68af20a760 \
--hash=sha256:70761cfe03c773ceb22aa2f671b4757976145175cdfca038c02654d061d6dcc6
setuptools==75.8.0 ; python_version >= "3.10" and python_version < "3.13" and (platform_machine == "x86_64" or platform_machine == "i686" or platform_machine == "aarch64" or platform_machine == "armv7l" or platform_machine == "ppc64le" or platform_machine == "s390x") or python_version >= "3.10" and python_version < "3.13" and sys_platform != "linux" or python_version >= "3.10" and python_version < "3.13" and (platform_machine != "x86_64" and platform_machine != "i686" and platform_machine != "aarch64" and platform_machine != "armv7l" and platform_machine != "ppc64le" and platform_machine != "s390x") \
setuptools==75.8.0 ; python_version >= "3.10" and python_version < "3.13" and (platform_machine == "x86_64" or platform_machine == "i686" or platform_machine == "aarch64" or platform_machine == "armv7l" or platform_machine == "ppc64le" or platform_machine == "s390x" or sys_platform != "linux" or platform_machine != "x86_64" and platform_machine != "i686" and platform_machine != "aarch64" and platform_machine != "armv7l" and platform_machine != "ppc64le" and platform_machine != "s390x") \
--hash=sha256:c5afc8f407c626b8313a86e10311dd3f661c6cd9c09d4bf8c15c0e11f9f2b0e6 \
--hash=sha256:e3982f444617239225d675215d51f6ba05f845d4eec313da4418fdbb56fb27e3
shiboken6==6.8.2.1 ; python_version >= "3.10" and python_version < "3.13" and (platform_machine == "x86_64" or platform_machine == "i686" or platform_machine == "aarch64" or platform_machine == "armv7l" or platform_machine == "ppc64le" or platform_machine == "s390x") or python_version >= "3.10" and python_version < "3.13" and sys_platform != "linux" or python_version >= "3.10" and python_version < "3.13" and (platform_machine != "x86_64" and platform_machine != "i686" and platform_machine != "aarch64" and platform_machine != "armv7l" and platform_machine != "ppc64le" and platform_machine != "s390x") \
shiboken6==6.8.2.1 ; python_version >= "3.10" and python_version < "3.13" and (platform_machine == "x86_64" or platform_machine == "i686" or platform_machine == "aarch64" or platform_machine == "armv7l" or platform_machine == "ppc64le" or platform_machine == "s390x" or sys_platform != "linux" or platform_machine != "x86_64" and platform_machine != "i686" and platform_machine != "aarch64" and platform_machine != "armv7l" and platform_machine != "ppc64le" and platform_machine != "s390x") \
--hash=sha256:1b751d47b759762b7ca31bad278d52eca4105d3028880d93979261ebbfba810c \
--hash=sha256:8592401423acc693f51dbbfae5e7493cc3ed6738be79daaf90afa07f4da5bb25 \
--hash=sha256:c83e90056f13d0872cc4d2b7bf60b6d6e3b1b172f1f91910c0ba5b641af01758 \
--hash=sha256:d3dedeb3732ecfc920c9f97da769c0022a1c3bda99346a9eba56fbf093deaa75
simple-websocket==1.0.0 ; python_version >= "3.10" and python_version < "3.13" and (platform_machine == "x86_64" or platform_machine == "i686" or platform_machine == "aarch64" or platform_machine == "armv7l" or platform_machine == "ppc64le" or platform_machine == "s390x") or python_version >= "3.10" and python_version < "3.13" and sys_platform != "linux" or python_version >= "3.10" and python_version < "3.13" and (platform_machine != "x86_64" and platform_machine != "i686" and platform_machine != "aarch64" and platform_machine != "armv7l" and platform_machine != "ppc64le" and platform_machine != "s390x") \
simple-websocket==1.0.0 ; python_version >= "3.10" and python_version < "3.13" and (platform_machine == "x86_64" or platform_machine == "i686" or platform_machine == "aarch64" or platform_machine == "armv7l" or platform_machine == "ppc64le" or platform_machine == "s390x" or sys_platform != "linux" or platform_machine != "x86_64" and platform_machine != "i686" and platform_machine != "aarch64" and platform_machine != "armv7l" and platform_machine != "ppc64le" and platform_machine != "s390x") \
--hash=sha256:17d2c72f4a2bd85174a97e3e4c88b01c40c3f81b7b648b0cc3ce1305968928c8 \
--hash=sha256:1d5bf585e415eaa2083e2bcf02a3ecf91f9712e7b3e6b9fa0b461ad04e0837bc
stem==1.8.1 ; python_version >= "3.10" and python_version < "3.13" and (platform_machine == "x86_64" or platform_machine == "i686" or platform_machine == "aarch64" or platform_machine == "armv7l" or platform_machine == "ppc64le" or platform_machine == "s390x") or python_version >= "3.10" and python_version < "3.13" and sys_platform != "linux" or python_version >= "3.10" and python_version < "3.13" and (platform_machine != "x86_64" and platform_machine != "i686" and platform_machine != "aarch64" and platform_machine != "armv7l" and platform_machine != "ppc64le" and platform_machine != "s390x") \
stem==1.8.1 ; python_version >= "3.10" and python_version < "3.13" and (platform_machine == "x86_64" or platform_machine == "i686" or platform_machine == "aarch64" or platform_machine == "armv7l" or platform_machine == "ppc64le" or platform_machine == "s390x" or sys_platform != "linux" or platform_machine != "x86_64" and platform_machine != "i686" and platform_machine != "aarch64" and platform_machine != "armv7l" and platform_machine != "ppc64le" and platform_machine != "s390x") \
--hash=sha256:81d43a7c668ba9d7bc1103b2e7a911e9d148294b373d27a59ae8da79ef7a3e2f
typing-extensions==4.9.0 ; python_version >= "3.10" and python_version < "3.13" and (platform_machine == "x86_64" or platform_machine == "i686" or platform_machine == "aarch64" or platform_machine == "armv7l" or platform_machine == "ppc64le" or platform_machine == "s390x") or python_version >= "3.10" and python_version < "3.13" and sys_platform != "linux" or python_version >= "3.10" and python_version < "3.13" and (platform_machine != "x86_64" and platform_machine != "i686" and platform_machine != "aarch64" and platform_machine != "armv7l" and platform_machine != "ppc64le" and platform_machine != "s390x") \
typing-extensions==4.9.0 ; python_version >= "3.10" and python_version < "3.13" and (platform_machine == "x86_64" or platform_machine == "i686" or platform_machine == "aarch64" or platform_machine == "armv7l" or platform_machine == "ppc64le" or platform_machine == "s390x" or sys_platform != "linux" or platform_machine != "x86_64" and platform_machine != "i686" and platform_machine != "aarch64" and platform_machine != "armv7l" and platform_machine != "ppc64le" and platform_machine != "s390x") \
--hash=sha256:23478f88c37f27d76ac8aee6c905017a143b0b1b886c3c9f66bc2fd94f9f5783 \
--hash=sha256:af72aea155e91adfc61c3ae9e0e342dbc0cba726d6cba4b6c72c1f34e47291cd
unidecode==1.3.8 ; python_version >= "3.10" and python_version < "3.13" and (platform_machine == "x86_64" or platform_machine == "i686" or platform_machine == "aarch64" or platform_machine == "armv7l" or platform_machine == "ppc64le" or platform_machine == "s390x") or python_version >= "3.10" and python_version < "3.13" and sys_platform != "linux" or python_version >= "3.10" and python_version < "3.13" and (platform_machine != "x86_64" and platform_machine != "i686" and platform_machine != "aarch64" and platform_machine != "armv7l" and platform_machine != "ppc64le" and platform_machine != "s390x") \
unidecode==1.3.8 ; python_version >= "3.10" and python_version < "3.13" and (platform_machine == "x86_64" or platform_machine == "i686" or platform_machine == "aarch64" or platform_machine == "armv7l" or platform_machine == "ppc64le" or platform_machine == "s390x" or sys_platform != "linux" or platform_machine != "x86_64" and platform_machine != "i686" and platform_machine != "aarch64" and platform_machine != "armv7l" and platform_machine != "ppc64le" and platform_machine != "s390x") \
--hash=sha256:cfdb349d46ed3873ece4586b96aa75258726e2fa8ec21d6f00a591d98806c2f4 \
--hash=sha256:d130a61ce6696f8148a3bd8fe779c99adeb4b870584eeb9526584e9aa091fd39
urllib3==2.3.0 ; python_version >= "3.10" and python_version < "3.13" and (platform_machine == "x86_64" or platform_machine == "i686" or platform_machine == "aarch64" or platform_machine == "armv7l" or platform_machine == "ppc64le" or platform_machine == "s390x") or python_version >= "3.10" and python_version < "3.13" and sys_platform != "linux" or python_version >= "3.10" and python_version < "3.13" and (platform_machine != "x86_64" and platform_machine != "i686" and platform_machine != "aarch64" and platform_machine != "armv7l" and platform_machine != "ppc64le" and platform_machine != "s390x") \
urllib3==2.3.0 ; python_version >= "3.10" and python_version < "3.13" and (platform_machine == "x86_64" or platform_machine == "i686" or platform_machine == "aarch64" or platform_machine == "armv7l" or platform_machine == "ppc64le" or platform_machine == "s390x" or sys_platform != "linux" or platform_machine != "x86_64" and platform_machine != "i686" and platform_machine != "aarch64" and platform_machine != "armv7l" and platform_machine != "ppc64le" and platform_machine != "s390x") \
--hash=sha256:1cee9ad369867bfdbbb48b7dd50374c0967a0bb7710050facf0dd6911440e3df \
--hash=sha256:f8c5449b3cf0861679ce7e0503c7b44b5ec981bec0d1d3795a07f1ba96f0204d
waitress==3.0.2 ; python_version >= "3.10" and python_version < "3.13" and (platform_machine == "x86_64" or platform_machine == "i686" or platform_machine == "aarch64" or platform_machine == "armv7l" or platform_machine == "ppc64le" or platform_machine == "s390x") or python_version >= "3.10" and python_version < "3.13" and sys_platform != "linux" or python_version >= "3.10" and python_version < "3.13" and (platform_machine != "x86_64" and platform_machine != "i686" and platform_machine != "aarch64" and platform_machine != "armv7l" and platform_machine != "ppc64le" and platform_machine != "s390x") \
waitress==3.0.2 ; python_version >= "3.10" and python_version < "3.13" and (platform_machine == "x86_64" or platform_machine == "i686" or platform_machine == "aarch64" or platform_machine == "armv7l" or platform_machine == "ppc64le" or platform_machine == "s390x" or sys_platform != "linux" or platform_machine != "x86_64" and platform_machine != "i686" and platform_machine != "aarch64" and platform_machine != "armv7l" and platform_machine != "ppc64le" and platform_machine != "s390x") \
--hash=sha256:682aaaf2af0c44ada4abfb70ded36393f0e307f4ab9456a215ce0020baefc31f \
--hash=sha256:c56d67fd6e87c2ee598b76abdd4e96cfad1f24cacdea5078d382b1f9d7b5ed2e
werkzeug==3.0.6 ; python_version >= "3.10" and python_version < "3.13" and (platform_machine == "x86_64" or platform_machine == "i686" or platform_machine == "aarch64" or platform_machine == "armv7l" or platform_machine == "ppc64le" or platform_machine == "s390x") or python_version >= "3.10" and python_version < "3.13" and sys_platform != "linux" or python_version >= "3.10" and python_version < "3.13" and (platform_machine != "x86_64" and platform_machine != "i686" and platform_machine != "aarch64" and platform_machine != "armv7l" and platform_machine != "ppc64le" and platform_machine != "s390x") \
werkzeug==3.0.6 ; python_version >= "3.10" and python_version < "3.13" and (platform_machine == "x86_64" or platform_machine == "i686" or platform_machine == "aarch64" or platform_machine == "armv7l" or platform_machine == "ppc64le" or platform_machine == "s390x" or sys_platform != "linux" or platform_machine != "x86_64" and platform_machine != "i686" and platform_machine != "aarch64" and platform_machine != "armv7l" and platform_machine != "ppc64le" and platform_machine != "s390x") \
--hash=sha256:1bc0c2310d2fbb07b1dd1105eba2f7af72f322e1e455f2f93c993bee8c8a5f17 \
--hash=sha256:a8dd59d4de28ca70471a34cba79bed5f7ef2e036a76b3ab0835474246eb41f8d
wheel==0.41.3 ; python_version >= "3.10" and python_version < "3.13" and (platform_machine == "x86_64" or platform_machine == "i686" or platform_machine == "aarch64" or platform_machine == "armv7l" or platform_machine == "ppc64le" or platform_machine == "s390x") or python_version >= "3.10" and python_version < "3.13" and sys_platform != "linux" or python_version >= "3.10" and python_version < "3.13" and (platform_machine != "x86_64" and platform_machine != "i686" and platform_machine != "aarch64" and platform_machine != "armv7l" and platform_machine != "ppc64le" and platform_machine != "s390x") \
wheel==0.41.3 ; python_version >= "3.10" and python_version < "3.13" and (platform_machine == "x86_64" or platform_machine == "i686" or platform_machine == "aarch64" or platform_machine == "armv7l" or platform_machine == "ppc64le" or platform_machine == "s390x" or sys_platform != "linux" or platform_machine != "x86_64" and platform_machine != "i686" and platform_machine != "aarch64" and platform_machine != "armv7l" and platform_machine != "ppc64le" and platform_machine != "s390x") \
--hash=sha256:488609bc63a29322326e05560731bf7bfea8e48ad646e1f5e40d366607de0942 \
--hash=sha256:4d4987ce51a49370ea65c0bfd2234e8ce80a12780820d9dc462597a6e60d0841
wsproto==1.2.0 ; python_version >= "3.10" and python_version < "3.13" and (platform_machine == "x86_64" or platform_machine == "i686" or platform_machine == "aarch64" or platform_machine == "armv7l" or platform_machine == "ppc64le" or platform_machine == "s390x") or python_version >= "3.10" and python_version < "3.13" and sys_platform != "linux" or python_version >= "3.10" and python_version < "3.13" and (platform_machine != "x86_64" and platform_machine != "i686" and platform_machine != "aarch64" and platform_machine != "armv7l" and platform_machine != "ppc64le" and platform_machine != "s390x") \
wsproto==1.2.0 ; python_version >= "3.10" and python_version < "3.13" and (platform_machine == "x86_64" or platform_machine == "i686" or platform_machine == "aarch64" or platform_machine == "armv7l" or platform_machine == "ppc64le" or platform_machine == "s390x" or sys_platform != "linux" or platform_machine != "x86_64" and platform_machine != "i686" and platform_machine != "aarch64" and platform_machine != "armv7l" and platform_machine != "ppc64le" and platform_machine != "s390x") \
--hash=sha256:ad565f26ecb92588a3e43bc3d96164de84cd9902482b130d0ddbaa9664a85065 \
--hash=sha256:b9acddd652b585d75b20477888c56642fdade28bdfd3579aa24a4d2c037dd736
zope-event==5.0 ; python_version >= "3.10" and python_version < "3.13" and (platform_machine == "x86_64" or platform_machine == "i686" or platform_machine == "aarch64" or platform_machine == "armv7l" or platform_machine == "ppc64le" or platform_machine == "s390x") or python_version >= "3.10" and python_version < "3.13" and sys_platform != "linux" or python_version >= "3.10" and python_version < "3.13" and (platform_machine != "x86_64" and platform_machine != "i686" and platform_machine != "aarch64" and platform_machine != "armv7l" and platform_machine != "ppc64le" and platform_machine != "s390x") \
zope-event==5.0 ; python_version >= "3.10" and python_version < "3.13" and (platform_machine == "x86_64" or platform_machine == "i686" or platform_machine == "aarch64" or platform_machine == "armv7l" or platform_machine == "ppc64le" or platform_machine == "s390x" or sys_platform != "linux" or platform_machine != "x86_64" and platform_machine != "i686" and platform_machine != "aarch64" and platform_machine != "armv7l" and platform_machine != "ppc64le" and platform_machine != "s390x") \
--hash=sha256:2832e95014f4db26c47a13fdaef84cef2f4df37e66b59d8f1f4a8f319a632c26 \
--hash=sha256:bac440d8d9891b4068e2b5a2c5e2c9765a9df762944bda6955f96bb9b91e67cd
zope-interface==6.1 ; python_version >= "3.10" and python_version < "3.13" and (platform_machine == "x86_64" or platform_machine == "i686" or platform_machine == "aarch64" or platform_machine == "armv7l" or platform_machine == "ppc64le" or platform_machine == "s390x") or python_version >= "3.10" and python_version < "3.13" and sys_platform != "linux" or python_version >= "3.10" and python_version < "3.13" and (platform_machine != "x86_64" and platform_machine != "i686" and platform_machine != "aarch64" and platform_machine != "armv7l" and platform_machine != "ppc64le" and platform_machine != "s390x") \
zope-interface==6.1 ; python_version >= "3.10" and python_version < "3.13" and (platform_machine == "x86_64" or platform_machine == "i686" or platform_machine == "aarch64" or platform_machine == "armv7l" or platform_machine == "ppc64le" or platform_machine == "s390x" or sys_platform != "linux" or platform_machine != "x86_64" and platform_machine != "i686" and platform_machine != "aarch64" and platform_machine != "armv7l" and platform_machine != "ppc64le" and platform_machine != "s390x") \
--hash=sha256:0c8cf55261e15590065039696607f6c9c1aeda700ceee40c70478552d323b3ff \
--hash=sha256:13b7d0f2a67eb83c385880489dbb80145e9d344427b4262c49fbf2581677c11c \
--hash=sha256:1f294a15f7723fc0d3b40701ca9b446133ec713eafc1cc6afa7b3d98666ee1ac \

View File

@ -1,6 +1,6 @@
name: onionshare
base: core24
version: "2.6.2"
version: "2.6.3"
summary: Securely and anonymously share files, host websites, and chat using Tor
description: |
OnionShare lets you securely and anonymously send and receive files. It works by starting