From e4f9f5f21226922e21a16f1ad1ae28ab3423aea4 Mon Sep 17 00:00:00 2001 From: Saptak S Date: Fri, 1 Oct 2021 23:08:49 +0530 Subject: Initial structuring of the enable quickstart screen --- cli/onionshare_cli/settings.py | 1 + desktop/src/onionshare/auto_connect.py | 100 +++++++++++++++++++++++++++++++++ desktop/src/onionshare/main_window.py | 44 ++++++++++----- 3 files changed, 131 insertions(+), 14 deletions(-) create mode 100644 desktop/src/onionshare/auto_connect.py diff --git a/cli/onionshare_cli/settings.py b/cli/onionshare_cli/settings.py index 29b59c80..d3bb74e2 100644 --- a/cli/onionshare_cli/settings.py +++ b/cli/onionshare_cli/settings.py @@ -103,6 +103,7 @@ class Settings(object): "socket_file_path": "/var/run/tor/control", "auth_type": "no_auth", "auth_password": "", + "auto_connect": False, "use_autoupdate": True, "autoupdate_timestamp": None, "no_bridges": True, diff --git a/desktop/src/onionshare/auto_connect.py b/desktop/src/onionshare/auto_connect.py new file mode 100644 index 00000000..f7e0c00a --- /dev/null +++ b/desktop/src/onionshare/auto_connect.py @@ -0,0 +1,100 @@ +# -*- coding: utf-8 -*- +""" +OnionShare | https://onionshare.org/ + +Copyright (C) 2014-2021 Micah Lee, et al. + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +""" + +from PySide2 import QtCore, QtWidgets, QtGui + +from onionshare_cli.settings import Settings + +from .gui_common import GuiCommon + + +class AutoConnect(QtWidgets.QWidget): + """ + GUI window that appears in the very beginning to ask user if + should auto connect. + """ + def __init__(self, common, parent=None): + super(AutoConnect, self).__init__(parent) + common.log("AutoConnect", "__init__") + + # Was auto connected? + self.curr_settings = Settings(common) + self.curr_settings.load() + self.auto_connect_enabled = self.curr_settings.get("auto_connect") + + if self.auto_connect_enabled: + self.parent().start_onionshare() + else: + # Onionshare logo + self.image_label = QtWidgets.QLabel() + self.image_label.setPixmap( + QtGui.QPixmap.fromImage( + QtGui.QImage( + GuiCommon.get_resource_path( + "images/{}_logo_text.png".format(common.gui.color_mode) + ) + ) + ) + ) + self.image_label.setFixedSize(180, 40) + image_layout = QtWidgets.QVBoxLayout() + image_layout.addWidget(self.image_label) + self.image = QtWidgets.QWidget() + self.image.setLayout(image_layout) + + # Description and checkbox + description_label = QtWidgets.QLabel("Some description about OnionShare and explain autoconnect stuff") + self.enable_autoconnect_checkbox = QtWidgets.QCheckBox() + self.enable_autoconnect_checkbox.clicked.connect(self.toggle_auto_connect) + self.enable_autoconnect_checkbox.setText( + "Enable automatically connecting to OnionShare" + ) + + # CTA buttons + self.connect_button = QtWidgets.QPushButton("Start OnionShare") + self.connect_button.setStyleSheet( + common.gui.css["server_status_button_stopped"] + ) + self.configure_button = QtWidgets.QPushButton("Configure") + cta_layout = QtWidgets.QHBoxLayout() + cta_layout.addWidget(self.connect_button) + cta_layout.addWidget(self.configure_button) + cta_widget = QtWidgets.QWidget() + cta_widget.setLayout(cta_layout) + + + # Layout + self.layout = QtWidgets.QVBoxLayout() + self.layout.setContentsMargins(0, 0, 0, 0) + self.layout.addStretch() + self.layout.addWidget(self.image) + self.layout.addWidget(description_label) + self.layout.addWidget(self.enable_autoconnect_checkbox) + self.layout.addStretch() + self.layout.addWidget(cta_widget) + self.layout.addStretch() + self.layout.setAlignment(QtCore.Qt.AlignCenter) + self.setLayout(self.layout) + + def toggle_auto_connect(self): + self.curr_settings.set( + "auto_connect", self.enable_autoconnect_checkbox.isChecked() + ) + self.curr_settings.save() diff --git a/desktop/src/onionshare/main_window.py b/desktop/src/onionshare/main_window.py index c125741c..22f813ad 100644 --- a/desktop/src/onionshare/main_window.py +++ b/desktop/src/onionshare/main_window.py @@ -23,6 +23,7 @@ import time from PySide2 import QtCore, QtWidgets, QtGui from . import strings +from .auto_connect import AutoConnect from .tor_connection_dialog import TorConnectionDialog from .tor_settings_dialog import TorSettingsDialog from .settings_dialog import SettingsDialog @@ -157,21 +158,17 @@ class MainWindow(QtWidgets.QMainWindow): layout = QtWidgets.QVBoxLayout() layout.addWidget(self.tabs) - central_widget = QtWidgets.QWidget() - central_widget.setLayout(layout) - self.setCentralWidget(central_widget) - self.show() + self.connected_central_widget = QtWidgets.QWidget() + self.connected_central_widget.setLayout(layout) + - # Start the "Connecting to Tor" dialog, which calls onion.connect() - tor_con = TorConnectionDialog(self.common) - tor_con.canceled.connect(self.tor_connection_canceled) - tor_con.open_tor_settings.connect(self.tor_connection_open_tor_settings) - if not self.common.gui.local_only: - tor_con.start() - self.settings_have_changed() - - # After connecting to Tor, check for updates - self.check_for_updates() + # Auto connect OnionShare? + auto_connect = AutoConnect(self.common, self) + if not auto_connect.auto_connect_enabled: + auto_connect.configure_button.clicked.connect(self.open_tor_settings) + auto_connect.connect_button.clicked.connect(self.start_onionshare) + self.setCentralWidget(auto_connect) + self.show() # Create the close warning dialog -- the dialog widget needs to be in the constructor # in order to test it @@ -187,6 +184,25 @@ class MainWindow(QtWidgets.QMainWindow): ) self.close_dialog.setDefaultButton(self.close_dialog.reject_button) + def start_onionshare(self): + """ + Once the user clicks on connect in the initial screen, start tor connection + and show new tab screen + """ + self.setCentralWidget(self.connected_central_widget) + self.show() + + # Start the "Connecting to Tor" dialog, which calls onion.connect() + tor_con = TorConnectionDialog(self.common) + tor_con.canceled.connect(self.tor_connection_canceled) + tor_con.open_tor_settings.connect(self.tor_connection_open_tor_settings) + if not self.common.gui.local_only: + tor_con.start() + self.settings_have_changed() + + # After connecting to Tor, check for updates + self.check_for_updates() + def tor_connection_canceled(self): """ If the user cancels before Tor finishes connecting, ask if they want to -- cgit v1.2.3-54-g00ecf From 8e5da9558a997f79ed0e9d2845099b77ed91e14e Mon Sep 17 00:00:00 2001 From: Saptak S Date: Sat, 2 Oct 2021 02:18:25 +0530 Subject: Adds translatable strings for the different parts of the UI --- desktop/src/onionshare/resources/locale/en.json | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/desktop/src/onionshare/resources/locale/en.json b/desktop/src/onionshare/resources/locale/en.json index a9fb562a..84332c16 100644 --- a/desktop/src/onionshare/resources/locale/en.json +++ b/desktop/src/onionshare/resources/locale/en.json @@ -41,6 +41,10 @@ "gui_please_wait": "Starting… Click to cancel.", "zip_progress_bar_format": "Compressing: %p%", "gui_tor_settings_window_title": "Tor Settings", + "gui_autoconnect_description": "Some description about OnionShare and explain autoconnect stuff", + "gui_enable_autoconnect_checkbox": "Enable automatically connecting to OnionShare", + "gui_autoconnect_start": "Start OnionShare", + "gui_autoconnect_configure": "Configure", "gui_settings_window_title": "Settings", "gui_settings_autoupdate_label": "Check for new version", "gui_settings_autoupdate_option": "Notify me when a new version is available", -- cgit v1.2.3-54-g00ecf From 6520d4ba2521bba432d2de48666c5e98cc9c2ff4 Mon Sep 17 00:00:00 2001 From: Saptak S Date: Sat, 2 Oct 2021 02:19:01 +0530 Subject: Adjusts spacing and padding of different parts --- desktop/src/onionshare/auto_connect.py | 25 ++++++++++++++++++------- desktop/src/onionshare/gui_common.py | 16 ++++++++++++++++ 2 files changed, 34 insertions(+), 7 deletions(-) diff --git a/desktop/src/onionshare/auto_connect.py b/desktop/src/onionshare/auto_connect.py index f7e0c00a..ff456aa4 100644 --- a/desktop/src/onionshare/auto_connect.py +++ b/desktop/src/onionshare/auto_connect.py @@ -22,6 +22,7 @@ from PySide2 import QtCore, QtWidgets, QtGui from onionshare_cli.settings import Settings +from . import strings from .gui_common import GuiCommon @@ -60,19 +61,30 @@ class AutoConnect(QtWidgets.QWidget): self.image.setLayout(image_layout) # Description and checkbox - description_label = QtWidgets.QLabel("Some description about OnionShare and explain autoconnect stuff") + description_label = QtWidgets.QLabel(strings._("gui_autoconnect_description")) self.enable_autoconnect_checkbox = QtWidgets.QCheckBox() self.enable_autoconnect_checkbox.clicked.connect(self.toggle_auto_connect) self.enable_autoconnect_checkbox.setText( - "Enable automatically connecting to OnionShare" + strings._("gui_enable_autoconnect_checkbox") ) + self.enable_autoconnect_checkbox.setStyleSheet( + common.gui.css["enable_autoconnect"] + ) + description_layout = QtWidgets.QVBoxLayout() + description_layout.addWidget(description_label) + description_layout.addWidget(self.enable_autoconnect_checkbox) + description_widget = QtWidgets.QWidget() + description_widget.setLayout(description_layout) # CTA buttons - self.connect_button = QtWidgets.QPushButton("Start OnionShare") + self.connect_button = QtWidgets.QPushButton(strings._("gui_autoconnect_start")) self.connect_button.setStyleSheet( - common.gui.css["server_status_button_stopped"] + common.gui.css["autoconnect_start_button"] + ) + self.configure_button = QtWidgets.QPushButton(strings._("gui_autoconnect_configure")) + self.configure_button.setStyleSheet( + common.gui.css["autoconnect_configure_button"] ) - self.configure_button = QtWidgets.QPushButton("Configure") cta_layout = QtWidgets.QHBoxLayout() cta_layout.addWidget(self.connect_button) cta_layout.addWidget(self.configure_button) @@ -85,8 +97,7 @@ class AutoConnect(QtWidgets.QWidget): self.layout.setContentsMargins(0, 0, 0, 0) self.layout.addStretch() self.layout.addWidget(self.image) - self.layout.addWidget(description_label) - self.layout.addWidget(self.enable_autoconnect_checkbox) + self.layout.addWidget(description_widget) self.layout.addStretch() self.layout.addWidget(cta_widget) self.layout.addStretch() diff --git a/desktop/src/onionshare/gui_common.py b/desktop/src/onionshare/gui_common.py index 019cf193..c092cddd 100644 --- a/desktop/src/onionshare/gui_common.py +++ b/desktop/src/onionshare/gui_common.py @@ -147,6 +147,22 @@ class GuiCommon: QStatusBar::item { border: 0px; }""", + "autoconnect_start_button": """ + QPushButton { + background-color: #5fa416; + color: #ffffff; + padding: 10px 30px; + border: 0; + border-radius: 5px; + }""", + "autoconnect_configure_button": """ + QPushButton { + padding: 9px 29px; + }""", + "enable_autoconnect": """ + QCheckBox { + margin-top: 30px; + }""", # Common styles between modes and their child widgets "mode_settings_toggle_advanced": """ QPushButton { -- cgit v1.2.3-54-g00ecf From 8f4c804b48fb15735718bddf2a0d5825d95523ca Mon Sep 17 00:00:00 2001 From: Saptak S Date: Mon, 18 Oct 2021 14:45:36 +0530 Subject: Updates the strings and alignment of content --- desktop/src/onionshare/auto_connect.py | 22 ++++++++++++++-------- desktop/src/onionshare/resources/locale/en.json | 6 +++--- 2 files changed, 17 insertions(+), 11 deletions(-) diff --git a/desktop/src/onionshare/auto_connect.py b/desktop/src/onionshare/auto_connect.py index ff456aa4..f4378372 100644 --- a/desktop/src/onionshare/auto_connect.py +++ b/desktop/src/onionshare/auto_connect.py @@ -93,15 +93,21 @@ class AutoConnect(QtWidgets.QWidget): # Layout - self.layout = QtWidgets.QVBoxLayout() - self.layout.setContentsMargins(0, 0, 0, 0) + content_layout = QtWidgets.QVBoxLayout() + content_layout.addStretch() + content_layout.addWidget(self.image) + content_layout.addWidget(description_widget) + content_layout.addStretch() + content_layout.addWidget(cta_widget) + content_layout.addStretch() + content_layout.setAlignment(QtCore.Qt.AlignCenter) + content_widget = QtWidgets.QWidgets() + content_widget.setLayout(content_layout) + + self.layout = QtWidgets.QHBoxLayout() + self.layout.addWidget(content_widget) self.layout.addStretch() - self.layout.addWidget(self.image) - self.layout.addWidget(description_widget) - self.layout.addStretch() - self.layout.addWidget(cta_widget) - self.layout.addStretch() - self.layout.setAlignment(QtCore.Qt.AlignCenter) + self.setLayout(self.layout) def toggle_auto_connect(self): diff --git a/desktop/src/onionshare/resources/locale/en.json b/desktop/src/onionshare/resources/locale/en.json index 84332c16..0d142017 100644 --- a/desktop/src/onionshare/resources/locale/en.json +++ b/desktop/src/onionshare/resources/locale/en.json @@ -41,9 +41,9 @@ "gui_please_wait": "Starting… Click to cancel.", "zip_progress_bar_format": "Compressing: %p%", "gui_tor_settings_window_title": "Tor Settings", - "gui_autoconnect_description": "Some description about OnionShare and explain autoconnect stuff", - "gui_enable_autoconnect_checkbox": "Enable automatically connecting to OnionShare", - "gui_autoconnect_start": "Start OnionShare", + "gui_autoconnect_description": "OnionShare relies on the Tor Network, run by thousands of volunteers around the world.", + "gui_enable_autoconnect_checkbox": "Enable automatically connecting to Tor", + "gui_autoconnect_start": "Connect to Tor", "gui_autoconnect_configure": "Configure", "gui_settings_window_title": "Settings", "gui_settings_autoupdate_label": "Check for new version", -- cgit v1.2.3-54-g00ecf From 8505bdcca110bde83618c2091afd2223b26de2b8 Mon Sep 17 00:00:00 2001 From: Saptak S Date: Mon, 18 Oct 2021 19:01:22 +0530 Subject: Cancel button shouldn't give warning message if opened from autoconnect window --- desktop/src/onionshare/auto_connect.py | 6 ++--- desktop/src/onionshare/main_window.py | 8 +++--- .../resources/images/light_logo_text_bg.png | Bin 0 -> 15778 bytes desktop/src/onionshare/tor_settings_dialog.py | 27 ++++++++++++--------- 4 files changed, 23 insertions(+), 18 deletions(-) create mode 100644 desktop/src/onionshare/resources/images/light_logo_text_bg.png diff --git a/desktop/src/onionshare/auto_connect.py b/desktop/src/onionshare/auto_connect.py index f4378372..550a0611 100644 --- a/desktop/src/onionshare/auto_connect.py +++ b/desktop/src/onionshare/auto_connect.py @@ -49,12 +49,12 @@ class AutoConnect(QtWidgets.QWidget): QtGui.QPixmap.fromImage( QtGui.QImage( GuiCommon.get_resource_path( - "images/{}_logo_text.png".format(common.gui.color_mode) + "images/{}_logo_text_bg.png".format(common.gui.color_mode) ) ) ) ) - self.image_label.setFixedSize(180, 40) + self.image_label.setFixedSize(322, 65) image_layout = QtWidgets.QVBoxLayout() image_layout.addWidget(self.image_label) self.image = QtWidgets.QWidget() @@ -101,7 +101,7 @@ class AutoConnect(QtWidgets.QWidget): content_layout.addWidget(cta_widget) content_layout.addStretch() content_layout.setAlignment(QtCore.Qt.AlignCenter) - content_widget = QtWidgets.QWidgets() + content_widget = QtWidgets.QWidget() content_widget.setLayout(content_layout) self.layout = QtWidgets.QHBoxLayout() diff --git a/desktop/src/onionshare/main_window.py b/desktop/src/onionshare/main_window.py index 22f813ad..ac100694 100644 --- a/desktop/src/onionshare/main_window.py +++ b/desktop/src/onionshare/main_window.py @@ -165,7 +165,9 @@ class MainWindow(QtWidgets.QMainWindow): # Auto connect OnionShare? auto_connect = AutoConnect(self.common, self) if not auto_connect.auto_connect_enabled: - auto_connect.configure_button.clicked.connect(self.open_tor_settings) + auto_connect.configure_button.clicked.connect( + lambda: self.open_tor_settings("autoconnect") + ) auto_connect.connect_button.clicked.connect(self.start_onionshare) self.setCentralWidget(auto_connect) self.show() @@ -259,12 +261,12 @@ class MainWindow(QtWidgets.QMainWindow): # Wait 1ms for the event loop to finish closing the TorConnectionDialog QtCore.QTimer.singleShot(1, self.open_tor_settings) - def open_tor_settings(self): + def open_tor_settings(self, openner=None): """ Open the TorSettingsDialog. """ self.common.log("MainWindow", "open_tor_settings") - d = TorSettingsDialog(self.common) + d = TorSettingsDialog(self.common, openner) d.settings_saved.connect(self.settings_have_changed) d.exec_() diff --git a/desktop/src/onionshare/resources/images/light_logo_text_bg.png b/desktop/src/onionshare/resources/images/light_logo_text_bg.png new file mode 100644 index 00000000..72156b50 Binary files /dev/null and b/desktop/src/onionshare/resources/images/light_logo_text_bg.png differ diff --git a/desktop/src/onionshare/tor_settings_dialog.py b/desktop/src/onionshare/tor_settings_dialog.py index 6737ae4b..cd993ecc 100644 --- a/desktop/src/onionshare/tor_settings_dialog.py +++ b/desktop/src/onionshare/tor_settings_dialog.py @@ -42,10 +42,11 @@ class TorSettingsDialog(QtWidgets.QDialog): settings_saved = QtCore.Signal() - def __init__(self, common): + def __init__(self, common, openner=None): super(TorSettingsDialog, self).__init__() self.common = common + self.openner = openner self.common.log("TorSettingsDialog", "__init__") @@ -692,7 +693,7 @@ class TorSettingsDialog(QtWidgets.QDialog): self.settings_saved.emit() self.close() - def cancel_clicked(self): + def cancel_clicked(self, openner): """ Cancel button clicked. """ @@ -700,6 +701,7 @@ class TorSettingsDialog(QtWidgets.QDialog): if ( not self.common.gui.local_only and not self.common.gui.onion.is_authenticated() + and not (self.openner and self.openner == "autoconnect") ): Alert( self.common, @@ -831,17 +833,18 @@ class TorSettingsDialog(QtWidgets.QDialog): return settings - def closeEvent(self, e): + def closeEvent(self, e, openner=None): self.common.log("TorSettingsDialog", "closeEvent") # On close, if Tor isn't connected, then quit OnionShare altogether - if not self.common.gui.local_only: - if not self.common.gui.onion.is_authenticated(): - self.common.log( - "TorSettingsDialog", - "closeEvent", - "Closing while not connected to Tor", - ) + if not (self.openner and self.openner == "autoconnect"): + if not self.common.gui.local_only: + if not self.common.gui.onion.is_authenticated(): + self.common.log( + "TorSettingsDialog", + "closeEvent", + "Closing while not connected to Tor", + ) - # Wait 1ms for the event loop to finish, then quit - QtCore.QTimer.singleShot(1, self.common.gui.qtapp.quit) + # Wait 1ms for the event loop to finish, then quit + QtCore.QTimer.singleShot(1, self.common.gui.qtapp.quit) -- cgit v1.2.3-54-g00ecf From bd027dff0cdbab9f7237750eca7891ddb659002b Mon Sep 17 00:00:00 2001 From: Saptak S Date: Thu, 28 Oct 2021 14:10:22 +0530 Subject: Updates content layout --- desktop/src/onionshare/auto_connect.py | 2 +- desktop/src/onionshare/gui_common.py | 8 +++++++- desktop/src/onionshare/resources/locale/en.json | 2 +- 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/desktop/src/onionshare/auto_connect.py b/desktop/src/onionshare/auto_connect.py index 550a0611..399fef0f 100644 --- a/desktop/src/onionshare/auto_connect.py +++ b/desktop/src/onionshare/auto_connect.py @@ -82,6 +82,7 @@ class AutoConnect(QtWidgets.QWidget): common.gui.css["autoconnect_start_button"] ) self.configure_button = QtWidgets.QPushButton(strings._("gui_autoconnect_configure")) + self.configure_button.setFlat(True) self.configure_button.setStyleSheet( common.gui.css["autoconnect_configure_button"] ) @@ -97,7 +98,6 @@ class AutoConnect(QtWidgets.QWidget): content_layout.addStretch() content_layout.addWidget(self.image) content_layout.addWidget(description_widget) - content_layout.addStretch() content_layout.addWidget(cta_widget) content_layout.addStretch() content_layout.setAlignment(QtCore.Qt.AlignCenter) diff --git a/desktop/src/onionshare/gui_common.py b/desktop/src/onionshare/gui_common.py index c092cddd..de69f360 100644 --- a/desktop/src/onionshare/gui_common.py +++ b/desktop/src/onionshare/gui_common.py @@ -151,17 +151,23 @@ class GuiCommon: QPushButton { background-color: #5fa416; color: #ffffff; - padding: 10px 30px; + padding: 10px; border: 0; border-radius: 5px; }""", "autoconnect_configure_button": """ QPushButton { padding: 9px 29px; + color: #3f7fcf; + text-align: left; }""", "enable_autoconnect": """ QCheckBox { margin-top: 30px; + background: #FCFCFC; + border: 1px solid #DDDBDA; + border-radius: 8px; + padding: 16px; }""", # Common styles between modes and their child widgets "mode_settings_toggle_advanced": """ diff --git a/desktop/src/onionshare/resources/locale/en.json b/desktop/src/onionshare/resources/locale/en.json index 0d142017..84312c8e 100644 --- a/desktop/src/onionshare/resources/locale/en.json +++ b/desktop/src/onionshare/resources/locale/en.json @@ -44,7 +44,7 @@ "gui_autoconnect_description": "OnionShare relies on the Tor Network, run by thousands of volunteers around the world.", "gui_enable_autoconnect_checkbox": "Enable automatically connecting to Tor", "gui_autoconnect_start": "Connect to Tor", - "gui_autoconnect_configure": "Configure", + "gui_autoconnect_configure": "Network Settings", "gui_settings_window_title": "Settings", "gui_settings_autoupdate_label": "Check for new version", "gui_settings_autoupdate_option": "Notify me when a new version is available", -- cgit v1.2.3-54-g00ecf From b727a9651f065379a9725a01398b247aa4a2ef0e Mon Sep 17 00:00:00 2001 From: Miguel Jacq Date: Thu, 11 Nov 2021 17:33:19 +1100 Subject: Initial work on supporting the option to automatically attempt to fetch bridges based on the user's location if Tor fails to connect (censorship circumvention) --- cli/onionshare_cli/settings.py | 1 + cli/tests/test_cli_settings.py | 1 + desktop/src/onionshare/resources/locale/en.json | 3 ++- desktop/src/onionshare/tor_connection.py | 31 ++++++++++++++++++++++--- desktop/src/onionshare/tor_settings_tab.py | 23 +++++++++++++++++- 5 files changed, 54 insertions(+), 5 deletions(-) diff --git a/cli/onionshare_cli/settings.py b/cli/onionshare_cli/settings.py index c7d74a70..020c2776 100644 --- a/cli/onionshare_cli/settings.py +++ b/cli/onionshare_cli/settings.py @@ -113,6 +113,7 @@ class Settings(object): "persistent_tabs": [], "locale": None, # this gets defined in fill_in_defaults() "theme": 0, + "censorship_circumvention": False, } self._settings = {} self.fill_in_defaults() diff --git a/cli/tests/test_cli_settings.py b/cli/tests/test_cli_settings.py index 9513b013..9486e8d1 100644 --- a/cli/tests/test_cli_settings.py +++ b/cli/tests/test_cli_settings.py @@ -36,6 +36,7 @@ class TestSettings: "bridges_custom": "", "persistent_tabs": [], "theme": 0, + "censorship_circumvention": False, } for key in settings_obj._settings: # Skip locale, it will not always default to the same thing diff --git a/desktop/src/onionshare/resources/locale/en.json b/desktop/src/onionshare/resources/locale/en.json index 868a6fa9..a69a7101 100644 --- a/desktop/src/onionshare/resources/locale/en.json +++ b/desktop/src/onionshare/resources/locale/en.json @@ -63,6 +63,7 @@ "gui_settings_tor_bridges": "Connect using a Tor bridge?", "gui_settings_tor_bridges_label": "Bridges help you access the Tor Network in places where Tor is blocked. Depending on where you are, one bridge may work better than another.", "gui_settings_bridge_use_checkbox": "Use a bridge", + "gui_settings_censorship_circumvention_checkbox": "Attempt to automatically find a bridge based on your country if Tor fails to connect", "gui_settings_bridge_radio_builtin": "Select a built-in bridge", "gui_settings_bridge_none_radio_option": "Don't use a bridge", "gui_settings_meek_lite_expensive_warning": "Warning: The meek-azure bridges are very costly for the Tor Project to run.

Only use them if unable to connect to Tor directly, via obfs4 transports, or other normal bridges.", @@ -231,4 +232,4 @@ "moat_captcha_error": "The solution is not correct. Please try again.", "moat_solution_empty_error": "You must enter the characters from the image", "mode_tor_not_connected_label": "OnionShare is not connected to the Tor network" -} \ No newline at end of file +} diff --git a/desktop/src/onionshare/tor_connection.py b/desktop/src/onionshare/tor_connection.py index 2cc599c4..0f3b7b2b 100644 --- a/desktop/src/onionshare/tor_connection.py +++ b/desktop/src/onionshare/tor_connection.py @@ -41,7 +41,7 @@ from onionshare_cli.onion import ( from . import strings from .gui_common import GuiCommon from .widgets import Alert - +from onionshare_cli.censorship import CensorshipCircumvention class TorConnectionDialog(QtWidgets.QProgressDialog): """ @@ -165,7 +165,7 @@ class TorConnectionWidget(QtWidgets.QWidget): success = QtCore.Signal() fail = QtCore.Signal(str) - def __init__(self, common, status_bar): + def __init__(self, common, status_bar, meek): super(TorConnectionWidget, self).__init__(None) self.common = common self.common.log("TorConnectionWidget", "__init__") @@ -181,6 +181,8 @@ class TorConnectionWidget(QtWidgets.QWidget): ) self.cancel_button.clicked.connect(self.cancel_clicked) + self.meek = meek + progress_layout = QtWidgets.QHBoxLayout() progress_layout.addWidget(self.progress) progress_layout.addWidget(self.cancel_button) @@ -263,7 +265,30 @@ class TorConnectionWidget(QtWidgets.QWidget): def _error_connecting_to_tor(self, msg): self.common.log("TorConnectionWidget", "_error_connecting_to_tor") self.active = False - self.fail.emit(msg) + # If we are allowed to try automatically resolving connection issues + # (e.g possible censorship) by obtaining bridges for the user, do so + if self.settings.get("censorship_circumvention"): + # Automatically try to obtain bridges from the Censorship Circumvention API + self.common.log("TorConnectionWidget", "_error_connecting_to_tor", "Trying to automatically obtain bridges") + self.meek.start() + self.censorship_circumvention = CensorshipCircumvention(self.common, self.meek) + request_bridges = self.censorship_circumvention.request_settings(country="cn") + if request_bridges: + # @TODO there might be several bridges + bridges = request_bridges["settings"][0]["bridges"]["bridge_strings"][0] + self.common.log("TorConnectionWidget", "_error_connecting_to_tor", f"Obtained bridges: {bridges}") + self.settings.set("bridges_enabled", True) + self.settings.set("bridges_type", "custom") + # @TODO there might be several bridges + self.settings.set("bridges_custom", bridges) + self.common.log("TorConnectionWidget", "_error_connecting_to_tor", "Starting Tor again") + self.settings.save() + # Now try and connect again + self.start() + else: + self.fail.emit() + else: + self.fail.emit() class TorConnectionThread(QtCore.QThread): diff --git a/desktop/src/onionshare/tor_settings_tab.py b/desktop/src/onionshare/tor_settings_tab.py index e28e5260..382b34fd 100644 --- a/desktop/src/onionshare/tor_settings_tab.py +++ b/desktop/src/onionshare/tor_settings_tab.py @@ -91,6 +91,12 @@ class TorSettingsTab(QtWidgets.QWidget): self.bridge_use_checkbox.stateChanged.connect( self.bridge_use_checkbox_state_changed ) + self.censorship_circumvention_checkbox = QtWidgets.QCheckBox( + strings._("gui_settings_censorship_circumvention_checkbox") + ) + self.censorship_circumvention_checkbox.stateChanged.connect( + self.censorship_circumvention_checkbox_state_changed + ) # Built-in bridge self.bridge_builtin_radio = QtWidgets.QRadioButton( @@ -164,6 +170,7 @@ class TorSettingsTab(QtWidgets.QWidget): bridges_layout = QtWidgets.QVBoxLayout() bridges_layout.addWidget(bridges_label) bridges_layout.addWidget(self.bridge_use_checkbox) + bridges_layout.addWidget(self.censorship_circumvention_checkbox) bridges_layout.addWidget(self.bridge_settings) self.bridges = QtWidgets.QWidget() @@ -330,7 +337,7 @@ class TorSettingsTab(QtWidgets.QWidget): columns_wrapper.setLayout(columns_layout) # Tor connection widget - self.tor_con = TorConnectionWidget(self.common, self.status_bar) + self.tor_con = TorConnectionWidget(self.common, self.status_bar, self.meek) self.tor_con.success.connect(self.tor_con_success) self.tor_con.fail.connect(self.tor_con_fail) self.tor_con.hide() @@ -430,6 +437,7 @@ class TorSettingsTab(QtWidgets.QWidget): if self.old_settings.get("bridges_enabled"): self.bridge_use_checkbox.setCheckState(QtCore.Qt.Checked) + self.censorship_circumvention_checkbox.setCheckState(QtCore.Qt.Checked) self.bridge_settings.show() bridges_type = self.old_settings.get("bridges_type") @@ -506,6 +514,16 @@ class TorSettingsTab(QtWidgets.QWidget): else: self.bridge_settings.hide() + def censorship_circumvention_checkbox_state_changed(self, state): + """ + 'Allow censorship circumvention (automatic bridges)' checkbox changed + """ + # Turning on censorship circumvention through the act of + # automatic bridge selection, implicitly means enabling + # bridges. + if state == QtCore.Qt.Checked: + self.bridge_use_checkbox.setCheckState(QtCore.Qt.Checked) + def bridge_builtin_radio_toggled(self, checked): """ 'Select a built-in bridge' radio button toggled @@ -812,6 +830,9 @@ class TorSettingsTab(QtWidgets.QWidget): if self.bridge_use_checkbox.checkState() == QtCore.Qt.Checked: settings.set("bridges_enabled", True) + if self.censorship_circumvention_checkbox.checkState() == QtCore.Qt.Checked: + settings.set("censorship_circumvention", True) + if self.bridge_builtin_radio.isChecked(): settings.set("bridges_type", "built-in") -- cgit v1.2.3-54-g00ecf From e2603ed7ad1e3ad6cdc9b77a64c8b18e7aa6fb54 Mon Sep 17 00:00:00 2001 From: Miguel Jacq Date: Thu, 11 Nov 2021 18:46:22 +1100 Subject: Better detection of different types of bridges, different sources, and multiple bridges of the same type --- desktop/src/onionshare/tor_connection.py | 64 ++++++++++++++++++++++++++------ 1 file changed, 53 insertions(+), 11 deletions(-) diff --git a/desktop/src/onionshare/tor_connection.py b/desktop/src/onionshare/tor_connection.py index 0f3b7b2b..51100650 100644 --- a/desktop/src/onionshare/tor_connection.py +++ b/desktop/src/onionshare/tor_connection.py @@ -43,6 +43,7 @@ from .gui_common import GuiCommon from .widgets import Alert from onionshare_cli.censorship import CensorshipCircumvention + class TorConnectionDialog(QtWidgets.QProgressDialog): """ Connecting to Tor dialog. @@ -269,19 +270,60 @@ class TorConnectionWidget(QtWidgets.QWidget): # (e.g possible censorship) by obtaining bridges for the user, do so if self.settings.get("censorship_circumvention"): # Automatically try to obtain bridges from the Censorship Circumvention API - self.common.log("TorConnectionWidget", "_error_connecting_to_tor", "Trying to automatically obtain bridges") + self.common.log( + "TorConnectionWidget", + "_error_connecting_to_tor", + "Trying to automatically obtain bridges", + ) self.meek.start() - self.censorship_circumvention = CensorshipCircumvention(self.common, self.meek) - request_bridges = self.censorship_circumvention.request_settings(country="cn") + self.censorship_circumvention = CensorshipCircumvention( + self.common, self.meek + ) + request_bridges = self.censorship_circumvention.request_settings( + country="tm" + ) if request_bridges: - # @TODO there might be several bridges - bridges = request_bridges["settings"][0]["bridges"]["bridge_strings"][0] - self.common.log("TorConnectionWidget", "_error_connecting_to_tor", f"Obtained bridges: {bridges}") - self.settings.set("bridges_enabled", True) - self.settings.set("bridges_type", "custom") - # @TODO there might be several bridges - self.settings.set("bridges_custom", bridges) - self.common.log("TorConnectionWidget", "_error_connecting_to_tor", "Starting Tor again") + # @TODO there might be several bridge types recommended. + # Should we attempt to iterate over each type if one of them fails to connect? + # But if so, how to stop it starting 3 separate Tor connection threads? + # for bridges in request_bridges["settings"]: + bridges = request_bridges["settings"][0]["bridges"] + self.common.log( + "TorConnectionWidget", + "_error_connecting_to_tor", + f"Obtained bridges: {bridges}", + ) + bridge_strings = bridges["bridge_strings"] + bridge_type = bridges["type"] + bridge_source = bridges["source"] + + # If the recommended bridge source is to use the built-in + # bridges, set that in our settings, as if the user had + # selected the built-in bridges for a specific PT themselves. + # + # @TODO should we fetch the built-in bridges from + # censorship_circumvention.request_builtin_bridges()? + # + # In fact, the bridge_string returned for a bridge type 'builtin' + # is in fact the same bridges we'd get from that other method anyway. + if bridge_source == "builtin": + self.settings.set("bridges_type", "built-in") + if bridge_type == "obfs4": + self.settings.set("bridges_builtin_pt", "obfs4") + if bridge_type == "snowflake": + self.settings.set("bridges_builtin_pt", "snowflake") + if bridge_type == "meek": + self.settings.set("bridges_builtin_pt", "meek-azure") + else: + self.settings.set("bridges_type", "custom") + # @TODO do we want to to a sanity check on the bridges like custom ones? + self.settings.set("bridges_custom", "\n".join(bridge_strings)) + + self.common.log( + "TorConnectionWidget", + "_error_connecting_to_tor", + "Starting Tor again", + ) self.settings.save() # Now try and connect again self.start() -- cgit v1.2.3-54-g00ecf From 3283fb76077ca40601de4ad3d1532862f20b5108 Mon Sep 17 00:00:00 2001 From: Saptak S Date: Tue, 30 Nov 2021 02:48:20 +0530 Subject: Updates autoconnect to use tab widget --- desktop/src/onionshare/auto_connect.py | 117 -------------------- desktop/src/onionshare/connection_tab.py | 184 +++++++++++++++++++++++++++++++ desktop/src/onionshare/main_window.py | 36 +----- desktop/src/onionshare/tab_widget.py | 48 +++++++- 4 files changed, 232 insertions(+), 153 deletions(-) delete mode 100644 desktop/src/onionshare/auto_connect.py create mode 100644 desktop/src/onionshare/connection_tab.py diff --git a/desktop/src/onionshare/auto_connect.py b/desktop/src/onionshare/auto_connect.py deleted file mode 100644 index 399fef0f..00000000 --- a/desktop/src/onionshare/auto_connect.py +++ /dev/null @@ -1,117 +0,0 @@ -# -*- coding: utf-8 -*- -""" -OnionShare | https://onionshare.org/ - -Copyright (C) 2014-2021 Micah Lee, et al. - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 3 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -""" - -from PySide2 import QtCore, QtWidgets, QtGui - -from onionshare_cli.settings import Settings - -from . import strings -from .gui_common import GuiCommon - - -class AutoConnect(QtWidgets.QWidget): - """ - GUI window that appears in the very beginning to ask user if - should auto connect. - """ - def __init__(self, common, parent=None): - super(AutoConnect, self).__init__(parent) - common.log("AutoConnect", "__init__") - - # Was auto connected? - self.curr_settings = Settings(common) - self.curr_settings.load() - self.auto_connect_enabled = self.curr_settings.get("auto_connect") - - if self.auto_connect_enabled: - self.parent().start_onionshare() - else: - # Onionshare logo - self.image_label = QtWidgets.QLabel() - self.image_label.setPixmap( - QtGui.QPixmap.fromImage( - QtGui.QImage( - GuiCommon.get_resource_path( - "images/{}_logo_text_bg.png".format(common.gui.color_mode) - ) - ) - ) - ) - self.image_label.setFixedSize(322, 65) - image_layout = QtWidgets.QVBoxLayout() - image_layout.addWidget(self.image_label) - self.image = QtWidgets.QWidget() - self.image.setLayout(image_layout) - - # Description and checkbox - description_label = QtWidgets.QLabel(strings._("gui_autoconnect_description")) - self.enable_autoconnect_checkbox = QtWidgets.QCheckBox() - self.enable_autoconnect_checkbox.clicked.connect(self.toggle_auto_connect) - self.enable_autoconnect_checkbox.setText( - strings._("gui_enable_autoconnect_checkbox") - ) - self.enable_autoconnect_checkbox.setStyleSheet( - common.gui.css["enable_autoconnect"] - ) - description_layout = QtWidgets.QVBoxLayout() - description_layout.addWidget(description_label) - description_layout.addWidget(self.enable_autoconnect_checkbox) - description_widget = QtWidgets.QWidget() - description_widget.setLayout(description_layout) - - # CTA buttons - self.connect_button = QtWidgets.QPushButton(strings._("gui_autoconnect_start")) - self.connect_button.setStyleSheet( - common.gui.css["autoconnect_start_button"] - ) - self.configure_button = QtWidgets.QPushButton(strings._("gui_autoconnect_configure")) - self.configure_button.setFlat(True) - self.configure_button.setStyleSheet( - common.gui.css["autoconnect_configure_button"] - ) - cta_layout = QtWidgets.QHBoxLayout() - cta_layout.addWidget(self.connect_button) - cta_layout.addWidget(self.configure_button) - cta_widget = QtWidgets.QWidget() - cta_widget.setLayout(cta_layout) - - - # Layout - content_layout = QtWidgets.QVBoxLayout() - content_layout.addStretch() - content_layout.addWidget(self.image) - content_layout.addWidget(description_widget) - content_layout.addWidget(cta_widget) - content_layout.addStretch() - content_layout.setAlignment(QtCore.Qt.AlignCenter) - content_widget = QtWidgets.QWidget() - content_widget.setLayout(content_layout) - - self.layout = QtWidgets.QHBoxLayout() - self.layout.addWidget(content_widget) - self.layout.addStretch() - - self.setLayout(self.layout) - - def toggle_auto_connect(self): - self.curr_settings.set( - "auto_connect", self.enable_autoconnect_checkbox.isChecked() - ) - self.curr_settings.save() diff --git a/desktop/src/onionshare/connection_tab.py b/desktop/src/onionshare/connection_tab.py new file mode 100644 index 00000000..eeb91d1e --- /dev/null +++ b/desktop/src/onionshare/connection_tab.py @@ -0,0 +1,184 @@ +# -*- coding: utf-8 -*- +""" +OnionShare | https://onionshare.org/ + +Copyright (C) 2014-2021 Micah Lee, et al. + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +""" + +from PySide2 import QtCore, QtWidgets, QtGui + +from onionshare_cli.settings import Settings + +from . import strings +from .gui_common import GuiCommon +from .tor_connection import TorConnectionWidget + + +class AutoConnectTab(QtWidgets.QWidget): + """ + Initial Tab that appears in the very beginning to ask user if + should auto connect. + """ + + close_this_tab = QtCore.Signal() + tor_is_connected = QtCore.Signal() + tor_is_disconnected = QtCore.Signal() + def __init__(self, common, tab_id, status_bar): + super(AutoConnectTab, self).__init__() + self.common = common + self.common.log("AutoConnectTab", "__init__") + + self.status_bar = status_bar + self.tab_id = tab_id + + # Was auto connected? + self.curr_settings = Settings(common) + self.curr_settings.load() + self.auto_connect_enabled = self.curr_settings.get("auto_connect") + + if self.auto_connect_enabled: + self.parent().start_onionshare() + else: + # Onionshare logo + self.image_label = QtWidgets.QLabel() + self.image_label.setPixmap( + QtGui.QPixmap.fromImage( + QtGui.QImage( + GuiCommon.get_resource_path( + "images/{}_logo_text_bg.png".format(common.gui.color_mode) + ) + ) + ) + ) + self.image_label.setFixedSize(322, 65) + image_layout = QtWidgets.QVBoxLayout() + image_layout.addWidget(self.image_label) + self.image = QtWidgets.QWidget() + self.image.setLayout(image_layout) + + # Description and checkbox + description_label = QtWidgets.QLabel(strings._("gui_autoconnect_description")) + self.enable_autoconnect_checkbox = QtWidgets.QCheckBox() + self.enable_autoconnect_checkbox.clicked.connect(self.toggle_auto_connect) + self.enable_autoconnect_checkbox.setText( + strings._("gui_enable_autoconnect_checkbox") + ) + self.enable_autoconnect_checkbox.setStyleSheet( + common.gui.css["enable_autoconnect"] + ) + description_layout = QtWidgets.QVBoxLayout() + description_layout.addWidget(description_label) + description_layout.addWidget(self.enable_autoconnect_checkbox) + description_widget = QtWidgets.QWidget() + description_widget.setLayout(description_layout) + + # Tor connection widget + self.tor_con = TorConnectionWidget(self.common, self.status_bar) + self.tor_con.success.connect(self.tor_con_success) + self.tor_con.fail.connect(self.tor_con_fail) + self.tor_con.hide() + + # Error label + self.error_label = QtWidgets.QLabel() + self.error_label.setStyleSheet(self.common.gui.css["tor_settings_error"]) + self.error_label.setWordWrap(True) + + # CTA buttons + self.connect_button = QtWidgets.QPushButton(strings._("gui_autoconnect_start")) + self.connect_button.clicked.connect(self.connect_clicked) + self.connect_button.setStyleSheet( + common.gui.css["autoconnect_start_button"] + ) + self.configure_button = QtWidgets.QPushButton(strings._("gui_autoconnect_configure")) + self.configure_button.setFlat(True) + self.configure_button.setStyleSheet( + common.gui.css["autoconnect_configure_button"] + ) + cta_layout = QtWidgets.QHBoxLayout() + cta_layout.addWidget(self.connect_button) + cta_layout.addWidget(self.configure_button) + cta_widget = QtWidgets.QWidget() + cta_widget.setLayout(cta_layout) + + + # Layout + content_layout = QtWidgets.QVBoxLayout() + content_layout.addStretch() + content_layout.addWidget(self.image) + content_layout.addWidget(description_widget) + content_layout.addWidget(self.tor_con) + content_layout.addWidget(cta_widget) + content_layout.addStretch() + content_layout.setAlignment(QtCore.Qt.AlignCenter) + content_widget = QtWidgets.QWidget() + content_widget.setLayout(content_layout) + + self.layout = QtWidgets.QHBoxLayout() + self.layout.addWidget(content_widget) + self.layout.addStretch() + + self.setLayout(self.layout) + + def toggle_auto_connect(self): + """ + Auto connect checkbox clicked + """ + self.common.log("AutoConnectTab", "autoconnect_checkbox_clicked") + self.curr_settings.set( + "auto_connect", self.enable_autoconnect_checkbox.isChecked() + ) + self.curr_settings.save() + + def connect_clicked(self): + """ + Connect button clicked. Try to connect to tor. + """ + self.common.log("AutoConnectTab", "connect_clicked") + + self.error_label.setText("") + self.connect_button.hide() + self.configure_button.hide() + + if not self.common.gui.local_only: + self.tor_con.show() + self.tor_con.start(self.curr_settings) + else: + self.close_this_tab.emit() + + def tor_con_success(self): + """ + Finished testing tor connection. + """ + self.tor_con.hide() + self.connect_button.show() + self.configure_button.show() + if ( + self.common.gui.onion.is_authenticated() + and not self.tor_con.wasCanceled() + ): + # Tell the tabs that Tor is connected + self.tor_is_connected.emit() + # Close the tab + self.close_this_tab.emit() + + def tor_con_fail(self, msg): + """ + Finished testing tor connection. + """ + self.tor_con.hide() + self.connect_button.show() + self.configure_button.show() + self.error_label.setText(msg) diff --git a/desktop/src/onionshare/main_window.py b/desktop/src/onionshare/main_window.py index fd550970..8c38c38d 100644 --- a/desktop/src/onionshare/main_window.py +++ b/desktop/src/onionshare/main_window.py @@ -155,19 +155,10 @@ class MainWindow(QtWidgets.QMainWindow): layout = QtWidgets.QVBoxLayout() layout.addWidget(self.tabs) - self.connected_central_widget = QtWidgets.QWidget() - self.connected_central_widget.setLayout(layout) - - - # Auto connect OnionShare? - auto_connect = AutoConnect(self.common, self) - if not auto_connect.auto_connect_enabled: - auto_connect.configure_button.clicked.connect( - lambda: self.open_tor_settings("autoconnect") - ) - auto_connect.connect_button.clicked.connect(self.start_onionshare) - self.setCentralWidget(auto_connect) - self.show() + central_widget = QtWidgets.QWidget() + central_widget.setLayout(layout) + self.setCentralWidget(central_widget) + self.show() # Create the close warning dialog -- the dialog widget needs to be in the constructor # in order to test it @@ -183,25 +174,6 @@ class MainWindow(QtWidgets.QMainWindow): ) self.close_dialog.setDefaultButton(self.close_dialog.reject_button) - def start_onionshare(self): - """ - Once the user clicks on connect in the initial screen, start tor connection - and show new tab screen - """ - self.setCentralWidget(self.connected_central_widget) - self.show() - - # Start the "Connecting to Tor" dialog, which calls onion.connect() - tor_con = TorConnectionDialog(self.common) - tor_con.canceled.connect(self.tor_connection_canceled) - tor_con.open_tor_settings.connect(self.tor_connection_open_tor_settings) - if not self.common.gui.local_only: - tor_con.start() - self.settings_have_changed() - - # After connecting to Tor, check for updates - self.check_for_updates() - def tor_connection_canceled(self): """ If the user cancels before Tor finishes connecting, ask if they want to diff --git a/desktop/src/onionshare/tab_widget.py b/desktop/src/onionshare/tab_widget.py index 7162fcc4..d26947e4 100644 --- a/desktop/src/onionshare/tab_widget.py +++ b/desktop/src/onionshare/tab_widget.py @@ -28,6 +28,7 @@ from .threads import EventHandlerThread from .gui_common import GuiCommon from .tor_settings_tab import TorSettingsTab from .settings_tab import SettingsTab +from .connection_tab import AutoConnectTab class TabWidget(QtWidgets.QTabWidget): @@ -98,6 +99,7 @@ class TabWidget(QtWidgets.QTabWidget): if not ( type(self.tabs[tab_id]) is SettingsTab or type(self.tabs[tab_id]) is TorSettingsTab + or type(self.tabs[tab_id]) is AutoConnectTab ): self.tabs[tab_id].cleanup() @@ -138,6 +140,7 @@ class TabWidget(QtWidgets.QTabWidget): if ( type(self.tabs[tab_id]) is SettingsTab or type(self.tabs[tab_id]) is TorSettingsTab + or type(self.tabs[tab_id]) is AutoConnectTab ): # Blank the server status indicator self.status_bar.server_status_image_label.clear() @@ -159,8 +162,12 @@ class TabWidget(QtWidgets.QTabWidget): pass def new_tab_clicked(self): - # Create a new tab - self.add_tab() + # if already connected to tor, create a new tab + # Else open the initial connection tab + if self.common.gui.onion.is_authenticated(): + self.add_tab() + else: + self.open_connection_tab() def load_tab(self, mode_settings_id): # Load the tab's mode settings @@ -198,6 +205,22 @@ class TabWidget(QtWidgets.QTabWidget): # Bring the window to front, in case this is being added by an event self.bring_to_front.emit() + def open_connection_tab(self): + self.common.log("TabWidget", "open_connection_tab") + + # See if a connection tab is already open, and if so switch to it + for tab_id in self.tabs: + if type(self.tabs[tab_id]) is AutoConnectTab: + self.setCurrentIndex(self.indexOf(self.tabs[tab_id])) + return + + connection_tab = AutoConnectTab(self.common, self.current_tab_id, self.status_bar) + connection_tab.close_this_tab.connect(self.close_connection_tab) + self.tabs[self.current_tab_id] = connection_tab + self.current_tab_id += 1 + index = self.addTab(connection_tab, strings._("gui_settings_window_title")) + self.setCurrentIndex(index) + def open_settings_tab(self): self.common.log("TabWidget", "open_settings_tab") @@ -281,6 +304,7 @@ class TabWidget(QtWidgets.QTabWidget): if not ( type(self.tabs[tab_id]) is SettingsTab or type(self.tabs[tab_id]) is TorSettingsTab + or type(self.tabs[tab_id]) is AutoConnectTab ): tab = self.widget(self.indexOf(self.tabs[tab_id])) if tab.settings.get("persistent", "enabled"): @@ -298,6 +322,7 @@ class TabWidget(QtWidgets.QTabWidget): if ( type(self.tabs[tab_id]) is SettingsTab or type(self.tabs[tab_id]) is TorSettingsTab + or type(self.tabs[tab_id]) is AutoConnectTab ): self.common.log("TabWidget", "closing a settings tab") @@ -333,6 +358,14 @@ class TabWidget(QtWidgets.QTabWidget): else: self.common.log("TabWidget", "user does not want to close the tab") + def close_connection_tab(self): + self.common.log("TabWidget", "close_connection_tab") + for tab_id in self.tabs: + if type(self.tabs[tab_id]) is AutoConnectTab: + index = self.indexOf(self.tabs[tab_id]) + self.close_tab(index) + return + def close_settings_tab(self): self.common.log("TabWidget", "close_settings_tab") for tab_id in self.tabs: @@ -357,6 +390,7 @@ class TabWidget(QtWidgets.QTabWidget): if not ( type(self.tabs[tab_id]) is SettingsTab or type(self.tabs[tab_id]) is TorSettingsTab + or type(self.tabs[tab_id]) is AutoConnectTab ): mode = self.tabs[tab_id].get_mode() if mode: @@ -381,7 +415,10 @@ class TabWidget(QtWidgets.QTabWidget): if type(self.tabs[tab_id]) is SettingsTab: self.tabs[tab_id].tor_is_connected() else: - if not type(self.tabs[tab_id]) is TorSettingsTab: + if not ( + type(self.tabs[tab_id]) is TorSettingsTab + or type(self.tabs[tab_id]) is AutoConnectTab + ): mode = self.tabs[tab_id].get_mode() if mode: mode.tor_connection_started() @@ -391,7 +428,10 @@ class TabWidget(QtWidgets.QTabWidget): if type(self.tabs[tab_id]) is SettingsTab: self.tabs[tab_id].tor_is_disconnected() else: - if not type(self.tabs[tab_id]) is TorSettingsTab: + if not ( + type(self.tabs[tab_id]) is TorSettingsTab + or type(self.tabs[tab_id]) is AutoConnectTab + ): mode = self.tabs[tab_id].get_mode() if mode: mode.tor_connection_stopped() -- cgit v1.2.3-54-g00ecf From c8224a25460f6fa8c70698f8d3b98789998da2e1 Mon Sep 17 00:00:00 2001 From: Saptak S Date: Tue, 30 Nov 2021 03:08:56 +0530 Subject: Resize components in the connection tab --- desktop/src/onionshare/connection_tab.py | 2 ++ desktop/src/onionshare/gui_common.py | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/desktop/src/onionshare/connection_tab.py b/desktop/src/onionshare/connection_tab.py index eeb91d1e..8d6aef29 100644 --- a/desktop/src/onionshare/connection_tab.py +++ b/desktop/src/onionshare/connection_tab.py @@ -76,6 +76,7 @@ class AutoConnectTab(QtWidgets.QWidget): self.enable_autoconnect_checkbox.setText( strings._("gui_enable_autoconnect_checkbox") ) + self.enable_autoconnect_checkbox.setFixedWidth(400) self.enable_autoconnect_checkbox.setStyleSheet( common.gui.css["enable_autoconnect"] ) @@ -99,6 +100,7 @@ class AutoConnectTab(QtWidgets.QWidget): # CTA buttons self.connect_button = QtWidgets.QPushButton(strings._("gui_autoconnect_start")) self.connect_button.clicked.connect(self.connect_clicked) + self.connect_button.setFixedWidth(150) self.connect_button.setStyleSheet( common.gui.css["autoconnect_start_button"] ) diff --git a/desktop/src/onionshare/gui_common.py b/desktop/src/onionshare/gui_common.py index c9c0b349..5b0cb907 100644 --- a/desktop/src/onionshare/gui_common.py +++ b/desktop/src/onionshare/gui_common.py @@ -169,7 +169,7 @@ class GuiCommon: background: #FCFCFC; border: 1px solid #DDDBDA; border-radius: 8px; - padding: 16px; + padding: 24px 16px; }""", # Common styles between modes and their child widgets "mode_settings_toggle_advanced": """ -- cgit v1.2.3-54-g00ecf From 1cde115f6ed17e71f0a03e81f5af826a86301500 Mon Sep 17 00:00:00 2001 From: Saptak S Date: Tue, 30 Nov 2021 03:11:29 +0530 Subject: Corrects the auto connect with checkbox logic --- desktop/src/onionshare/connection_tab.py | 163 ++++++++++++++++--------------- 1 file changed, 82 insertions(+), 81 deletions(-) diff --git a/desktop/src/onionshare/connection_tab.py b/desktop/src/onionshare/connection_tab.py index 8d6aef29..f066c6ed 100644 --- a/desktop/src/onionshare/connection_tab.py +++ b/desktop/src/onionshare/connection_tab.py @@ -49,90 +49,91 @@ class AutoConnectTab(QtWidgets.QWidget): self.curr_settings.load() self.auto_connect_enabled = self.curr_settings.get("auto_connect") - if self.auto_connect_enabled: - self.parent().start_onionshare() - else: - # Onionshare logo - self.image_label = QtWidgets.QLabel() - self.image_label.setPixmap( - QtGui.QPixmap.fromImage( - QtGui.QImage( - GuiCommon.get_resource_path( - "images/{}_logo_text_bg.png".format(common.gui.color_mode) - ) + # Onionshare logo + self.image_label = QtWidgets.QLabel() + self.image_label.setPixmap( + QtGui.QPixmap.fromImage( + QtGui.QImage( + GuiCommon.get_resource_path( + "images/{}_logo_text_bg.png".format(common.gui.color_mode) ) ) ) - self.image_label.setFixedSize(322, 65) - image_layout = QtWidgets.QVBoxLayout() - image_layout.addWidget(self.image_label) - self.image = QtWidgets.QWidget() - self.image.setLayout(image_layout) - - # Description and checkbox - description_label = QtWidgets.QLabel(strings._("gui_autoconnect_description")) - self.enable_autoconnect_checkbox = QtWidgets.QCheckBox() - self.enable_autoconnect_checkbox.clicked.connect(self.toggle_auto_connect) - self.enable_autoconnect_checkbox.setText( - strings._("gui_enable_autoconnect_checkbox") - ) - self.enable_autoconnect_checkbox.setFixedWidth(400) - self.enable_autoconnect_checkbox.setStyleSheet( - common.gui.css["enable_autoconnect"] - ) - description_layout = QtWidgets.QVBoxLayout() - description_layout.addWidget(description_label) - description_layout.addWidget(self.enable_autoconnect_checkbox) - description_widget = QtWidgets.QWidget() - description_widget.setLayout(description_layout) - - # Tor connection widget - self.tor_con = TorConnectionWidget(self.common, self.status_bar) - self.tor_con.success.connect(self.tor_con_success) - self.tor_con.fail.connect(self.tor_con_fail) - self.tor_con.hide() - - # Error label - self.error_label = QtWidgets.QLabel() - self.error_label.setStyleSheet(self.common.gui.css["tor_settings_error"]) - self.error_label.setWordWrap(True) - - # CTA buttons - self.connect_button = QtWidgets.QPushButton(strings._("gui_autoconnect_start")) - self.connect_button.clicked.connect(self.connect_clicked) - self.connect_button.setFixedWidth(150) - self.connect_button.setStyleSheet( - common.gui.css["autoconnect_start_button"] - ) - self.configure_button = QtWidgets.QPushButton(strings._("gui_autoconnect_configure")) - self.configure_button.setFlat(True) - self.configure_button.setStyleSheet( - common.gui.css["autoconnect_configure_button"] - ) - cta_layout = QtWidgets.QHBoxLayout() - cta_layout.addWidget(self.connect_button) - cta_layout.addWidget(self.configure_button) - cta_widget = QtWidgets.QWidget() - cta_widget.setLayout(cta_layout) - - - # Layout - content_layout = QtWidgets.QVBoxLayout() - content_layout.addStretch() - content_layout.addWidget(self.image) - content_layout.addWidget(description_widget) - content_layout.addWidget(self.tor_con) - content_layout.addWidget(cta_widget) - content_layout.addStretch() - content_layout.setAlignment(QtCore.Qt.AlignCenter) - content_widget = QtWidgets.QWidget() - content_widget.setLayout(content_layout) - - self.layout = QtWidgets.QHBoxLayout() - self.layout.addWidget(content_widget) - self.layout.addStretch() - - self.setLayout(self.layout) + ) + self.image_label.setFixedSize(322, 65) + image_layout = QtWidgets.QVBoxLayout() + image_layout.addWidget(self.image_label) + self.image = QtWidgets.QWidget() + self.image.setLayout(image_layout) + + # Description and checkbox + description_label = QtWidgets.QLabel(strings._("gui_autoconnect_description")) + self.enable_autoconnect_checkbox = QtWidgets.QCheckBox() + self.enable_autoconnect_checkbox.clicked.connect(self.toggle_auto_connect) + self.enable_autoconnect_checkbox.setText( + strings._("gui_enable_autoconnect_checkbox") + ) + self.enable_autoconnect_checkbox.setFixedWidth(400) + self.enable_autoconnect_checkbox.setStyleSheet( + common.gui.css["enable_autoconnect"] + ) + description_layout = QtWidgets.QVBoxLayout() + description_layout.addWidget(description_label) + description_layout.addWidget(self.enable_autoconnect_checkbox) + description_widget = QtWidgets.QWidget() + description_widget.setLayout(description_layout) + + # Tor connection widget + self.tor_con = TorConnectionWidget(self.common, self.status_bar) + self.tor_con.success.connect(self.tor_con_success) + self.tor_con.fail.connect(self.tor_con_fail) + self.tor_con.hide() + + # Error label + self.error_label = QtWidgets.QLabel() + self.error_label.setStyleSheet(self.common.gui.css["tor_settings_error"]) + self.error_label.setWordWrap(True) + + # CTA buttons + self.connect_button = QtWidgets.QPushButton(strings._("gui_autoconnect_start")) + self.connect_button.clicked.connect(self.connect_clicked) + self.connect_button.setFixedWidth(150) + self.connect_button.setStyleSheet( + common.gui.css["autoconnect_start_button"] + ) + self.configure_button = QtWidgets.QPushButton(strings._("gui_autoconnect_configure")) + self.configure_button.clicked.connect(self.open_tor_settings) + self.configure_button.setFlat(True) + self.configure_button.setStyleSheet( + common.gui.css["autoconnect_configure_button"] + ) + cta_layout = QtWidgets.QHBoxLayout() + cta_layout.addWidget(self.connect_button) + cta_layout.addWidget(self.configure_button) + cta_widget = QtWidgets.QWidget() + cta_widget.setLayout(cta_layout) + + + # Layout + content_layout = QtWidgets.QVBoxLayout() + content_layout.addStretch() + content_layout.addWidget(self.image) + content_layout.addWidget(description_widget) + content_layout.addWidget(self.tor_con) + content_layout.addWidget(cta_widget) + content_layout.addStretch() + content_layout.setAlignment(QtCore.Qt.AlignCenter) + content_widget = QtWidgets.QWidget() + content_widget.setLayout(content_layout) + + self.layout = QtWidgets.QHBoxLayout() + self.layout.addWidget(content_widget) + self.layout.addStretch() + + self.setLayout(self.layout) + + if self.auto_connect_enabled: + self.connect_clicked() def toggle_auto_connect(self): """ -- cgit v1.2.3-54-g00ecf From e2dbe6089a3b640f7890e805c221de5cc51cf5b4 Mon Sep 17 00:00:00 2001 From: Saptak S Date: Tue, 30 Nov 2021 03:23:16 +0530 Subject: Opens TorSettingsTab when clicked on network settings --- desktop/src/onionshare/connection_tab.py | 6 +++++- desktop/src/onionshare/tab_widget.py | 2 +- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/desktop/src/onionshare/connection_tab.py b/desktop/src/onionshare/connection_tab.py index f066c6ed..4c06b713 100644 --- a/desktop/src/onionshare/connection_tab.py +++ b/desktop/src/onionshare/connection_tab.py @@ -36,13 +36,14 @@ class AutoConnectTab(QtWidgets.QWidget): close_this_tab = QtCore.Signal() tor_is_connected = QtCore.Signal() tor_is_disconnected = QtCore.Signal() - def __init__(self, common, tab_id, status_bar): + def __init__(self, common, tab_id, status_bar, parent=None): super(AutoConnectTab, self).__init__() self.common = common self.common.log("AutoConnectTab", "__init__") self.status_bar = status_bar self.tab_id = tab_id + self.parent = parent # Was auto connected? self.curr_settings = Settings(common) @@ -145,6 +146,9 @@ class AutoConnectTab(QtWidgets.QWidget): ) self.curr_settings.save() + def open_tor_settings(self): + self.parent.open_tor_settings_tab() + def connect_clicked(self): """ Connect button clicked. Try to connect to tor. diff --git a/desktop/src/onionshare/tab_widget.py b/desktop/src/onionshare/tab_widget.py index d26947e4..b5c18023 100644 --- a/desktop/src/onionshare/tab_widget.py +++ b/desktop/src/onionshare/tab_widget.py @@ -214,7 +214,7 @@ class TabWidget(QtWidgets.QTabWidget): self.setCurrentIndex(self.indexOf(self.tabs[tab_id])) return - connection_tab = AutoConnectTab(self.common, self.current_tab_id, self.status_bar) + connection_tab = AutoConnectTab(self.common, self.current_tab_id, self.status_bar, parent=self) connection_tab.close_this_tab.connect(self.close_connection_tab) self.tabs[self.current_tab_id] = connection_tab self.current_tab_id += 1 -- cgit v1.2.3-54-g00ecf From b151eeb3c3a0eb6e2ff999377edf5fbc40742e09 Mon Sep 17 00:00:00 2001 From: Miguel Jacq Date: Tue, 30 Nov 2021 10:01:14 +1100 Subject: Make sanity checking of bridges a reusable component in cli.Common, so we can reuse it for automatic bridge fetching in censorship circumvention --- cli/onionshare_cli/common.py | 35 ++++++++++++++++++++++++++++++ desktop/src/onionshare/tor_connection.py | 11 ++++------ desktop/src/onionshare/tor_settings_tab.py | 30 ++----------------------- 3 files changed, 41 insertions(+), 35 deletions(-) diff --git a/cli/onionshare_cli/common.py b/cli/onionshare_cli/common.py index bab3fd86..7a8bc857 100644 --- a/cli/onionshare_cli/common.py +++ b/cli/onionshare_cli/common.py @@ -28,6 +28,7 @@ import sys import threading import time import shutil +import re from pkg_resources import resource_filename import colorama @@ -432,6 +433,40 @@ class Common: r = random.SystemRandom() return "-".join(r.choice(wordlist) for _ in range(word_count)) + def check_bridges_valid(self, bridges): + """ + Does a regex check against a supplied list of bridges, to make sure they + are valid strings depending on the bridge type. + """ + valid_bridges = [] + self.log("Common", "check_bridges_valid", "Checking bridge syntax") + for bridge in bridges: + if bridge != "": + # Check the syntax of the custom bridge to make sure it looks legitimate + ipv4_pattern = re.compile( + "(obfs4\s+)?(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]):([0-9]+)(\s+)([A-Z0-9]+)(.+)$" + ) + ipv6_pattern = re.compile( + "(obfs4\s+)?\[(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\]:[0-9]+\s+[A-Z0-9]+(.+)$" + ) + meek_lite_pattern = re.compile( + "(meek_lite)(\s)+([0-9]+\.[0-9]+\.[0-9]+\.[0-9]+:[0-9]+)(\s)+([0-9A-Z]+)(\s)+url=(.+)(\s)+front=(.+)" + ) + snowflake_pattern = re.compile( + "(snowflake)(\s)+([0-9]+\.[0-9]+\.[0-9]+\.[0-9]+:[0-9]+)(\s)+([0-9A-Z]+)" + ) + if ( + ipv4_pattern.match(bridge) + or ipv6_pattern.match(bridge) + or meek_lite_pattern.match(bridge) + or snowflake_pattern.match(bridge) + ): + valid_bridges.append(bridge) + if valid_bridges: + return valid_bridges + else: + return False + @staticmethod def random_string(num_bytes, output_len=None): """ diff --git a/desktop/src/onionshare/tor_connection.py b/desktop/src/onionshare/tor_connection.py index 51100650..a0025623 100644 --- a/desktop/src/onionshare/tor_connection.py +++ b/desktop/src/onionshare/tor_connection.py @@ -301,11 +301,6 @@ class TorConnectionWidget(QtWidgets.QWidget): # bridges, set that in our settings, as if the user had # selected the built-in bridges for a specific PT themselves. # - # @TODO should we fetch the built-in bridges from - # censorship_circumvention.request_builtin_bridges()? - # - # In fact, the bridge_string returned for a bridge type 'builtin' - # is in fact the same bridges we'd get from that other method anyway. if bridge_source == "builtin": self.settings.set("bridges_type", "built-in") if bridge_type == "obfs4": @@ -316,8 +311,10 @@ class TorConnectionWidget(QtWidgets.QWidget): self.settings.set("bridges_builtin_pt", "meek-azure") else: self.settings.set("bridges_type", "custom") - # @TODO do we want to to a sanity check on the bridges like custom ones? - self.settings.set("bridges_custom", "\n".join(bridge_strings)) + # Sanity check the bridges provided from the Tor API before saving + bridges_checked = self.common.check_bridges_valid(bridge_strings) + if bridges_checked: + self.settings.set("bridges_custom", "\n".join(bridges_checked)) self.common.log( "TorConnectionWidget", diff --git a/desktop/src/onionshare/tor_settings_tab.py b/desktop/src/onionshare/tor_settings_tab.py index 382b34fd..9d9ec2ef 100644 --- a/desktop/src/onionshare/tor_settings_tab.py +++ b/desktop/src/onionshare/tor_settings_tab.py @@ -21,7 +21,6 @@ along with this program. If not, see . from PySide2 import QtCore, QtWidgets, QtGui import sys import platform -import re import os from onionshare_cli.meek import Meek @@ -856,35 +855,10 @@ class TorSettingsTab(QtWidgets.QWidget): if self.bridge_custom_radio.isChecked(): settings.set("bridges_type", "custom") - new_bridges = [] bridges = self.bridge_custom_textbox.toPlainText().split("\n") - bridges_valid = False - for bridge in bridges: - if bridge != "": - # Check the syntax of the custom bridge to make sure it looks legitimate - ipv4_pattern = re.compile( - "(obfs4\s+)?(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]):([0-9]+)(\s+)([A-Z0-9]+)(.+)$" - ) - ipv6_pattern = re.compile( - "(obfs4\s+)?\[(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\]:[0-9]+\s+[A-Z0-9]+(.+)$" - ) - meek_lite_pattern = re.compile( - "(meek_lite)(\s)+([0-9]+\.[0-9]+\.[0-9]+\.[0-9]+:[0-9]+)(\s)+([0-9A-Z]+)(\s)+url=(.+)(\s)+front=(.+)" - ) - snowflake_pattern = re.compile( - "(snowflake)(\s)+([0-9]+\.[0-9]+\.[0-9]+\.[0-9]+:[0-9]+)(\s)+([0-9A-Z]+)" - ) - if ( - ipv4_pattern.match(bridge) - or ipv6_pattern.match(bridge) - or meek_lite_pattern.match(bridge) - or snowflake_pattern.match(bridge) - ): - new_bridges.append(bridge) - bridges_valid = True - + bridges_valid = self.common.check_bridges_valid(bridges) if bridges_valid: - new_bridges = "\n".join(new_bridges) + "\n" + new_bridges = "\n".join(bridges_valid) + "\n" settings.set("bridges_custom", new_bridges) else: self.error_label.setText( -- cgit v1.2.3-54-g00ecf From 3273832da717aed487955be82bff71407991842a Mon Sep 17 00:00:00 2001 From: Miguel Jacq Date: Tue, 30 Nov 2021 10:50:47 +1100 Subject: Make the saving of the automatically-obtained bridges reusable (move it to CensorshipCircumvention class). Add the same functionality used in TorConnectionWidget to TorConnectionDialog. --- cli/onionshare_cli/censorship.py | 62 ++++++++++++++++++++++++++ desktop/src/onionshare/main_window.py | 6 ++- desktop/src/onionshare/tor_connection.py | 76 ++++++++++++++------------------ 3 files changed, 100 insertions(+), 44 deletions(-) diff --git a/cli/onionshare_cli/censorship.py b/cli/onionshare_cli/censorship.py index f84b1058..89513faa 100644 --- a/cli/onionshare_cli/censorship.py +++ b/cli/onionshare_cli/censorship.py @@ -167,3 +167,65 @@ class CensorshipCircumvention(object): return False return result + + def save_settings(self, settings, bridge_settings): + """ + Checks the bridges and saves them in settings. + """ + bridges_ok = False + self.settings = settings + + # @TODO there might be several bridge types recommended. + # Should we attempt to iterate over each type if one of them fails to connect? + # But if so, how to stop it starting 3 separate Tor connection threads? + # for bridges in request_bridges["settings"]: + bridges = bridge_settings["settings"][0]["bridges"] + self.common.log( + "CensorshipCircumvention", + "save_settings", + f"Obtained bridges: {bridges}", + ) + bridge_strings = bridges["bridge_strings"] + bridge_type = bridges["type"] + bridge_source = bridges["source"] + + # If the recommended bridge source is to use the built-in + # bridges, set that in our settings, as if the user had + # selected the built-in bridges for a specific PT themselves. + # + if bridge_source == "builtin": + self.settings.set("bridges_type", "built-in") + if bridge_type == "obfs4": + self.settings.set("bridges_builtin_pt", "obfs4") + if bridge_type == "snowflake": + self.settings.set("bridges_builtin_pt", "snowflake") + if bridge_type == "meek": + self.settings.set("bridges_builtin_pt", "meek-azure") + bridges_ok = True + else: + # Any other type of bridge we can treat as custom. + self.settings.set("bridges_type", "custom") + + # Sanity check the bridges provided from the Tor API before saving + bridges_checked = self.common.check_bridges_valid(bridge_strings) + + if bridges_checked: + self.settings.set("bridges_custom", "\n".join(bridges_checked)) + bridges_ok = True + + # If we got any good bridges, save them to settings and return. + if bridges_ok: + self.common.log( + "CensorshipCircumvention", + "save_settings", + "Saving settings with automatically-obtained bridges", + ) + self.settings.save() + return True + else: + self.common.log( + "CensorshipCircumvention", + "save_settings", + "Could not use any of the obtained bridges.", + ) + return False diff --git a/desktop/src/onionshare/main_window.py b/desktop/src/onionshare/main_window.py index 546592a1..79738d38 100644 --- a/desktop/src/onionshare/main_window.py +++ b/desktop/src/onionshare/main_window.py @@ -30,6 +30,7 @@ from .tab_widget import TabWidget from .gui_common import GuiCommon from .threads import OnionCleanupThread +from onionshare_cli.meek import Meek class MainWindow(QtWidgets.QMainWindow): """ @@ -160,8 +161,11 @@ class MainWindow(QtWidgets.QMainWindow): self.setCentralWidget(central_widget) self.show() + # Instantiate Meek, which the TorConnectionDialog may use to resolve + # connection issues by automatically obtaining bridges. + self.meek = Meek(self.common, get_tor_paths=self.common.gui.get_tor_paths) # Start the "Connecting to Tor" dialog, which calls onion.connect() - tor_con = TorConnectionDialog(self.common) + tor_con = TorConnectionDialog(self.common, self.meek) tor_con.canceled.connect(self.tor_connection_canceled) tor_con.open_tor_settings.connect(self.tor_connection_open_tor_settings) if not self.common.gui.local_only: diff --git a/desktop/src/onionshare/tor_connection.py b/desktop/src/onionshare/tor_connection.py index a0025623..5c427d3d 100644 --- a/desktop/src/onionshare/tor_connection.py +++ b/desktop/src/onionshare/tor_connection.py @@ -53,13 +53,15 @@ class TorConnectionDialog(QtWidgets.QProgressDialog): success = QtCore.Signal() def __init__( - self, common, custom_settings=False, testing_settings=False, onion=None + self, common, meek, custom_settings=False, testing_settings=False, onion=None ): super(TorConnectionDialog, self).__init__(None) self.common = common self.testing_settings = testing_settings + self.meek = meek + if custom_settings: self.settings = custom_settings else: @@ -138,6 +140,30 @@ class TorConnectionDialog(QtWidgets.QProgressDialog): def alert(): Alert(self.common, msg, QtWidgets.QMessageBox.Warning, title=self.title) + # If we are allowed to try automatically resolving connection issues + # (e.g possible censorship) by obtaining bridges for the user, do so + elif self.settings.get("censorship_circumvention"): + def alert(): + return + + # Automatically try to obtain bridges from the Censorship Circumvention API + self.common.log( + "TorConnectionDialog", + "_error_connecting_to_tor", + "Trying to automatically obtain bridges", + ) + self.meek.start() + self.censorship_circumvention = CensorshipCircumvention( + self.common, self.meek + ) + bridge_settings = self.censorship_circumvention.request_settings( + country="tm" + ) + self.meek.cleanup() + + if bridge_settings and self.censorship_circumvention.save_settings(self.settings, bridge_settings): + # Try and connect again + self.start() else: # If not testing, open settings after displaying the error def alert(): @@ -266,6 +292,7 @@ class TorConnectionWidget(QtWidgets.QWidget): def _error_connecting_to_tor(self, msg): self.common.log("TorConnectionWidget", "_error_connecting_to_tor") self.active = False + # If we are allowed to try automatically resolving connection issues # (e.g possible censorship) by obtaining bridges for the user, do so if self.settings.get("censorship_circumvention"): @@ -279,50 +306,13 @@ class TorConnectionWidget(QtWidgets.QWidget): self.censorship_circumvention = CensorshipCircumvention( self.common, self.meek ) - request_bridges = self.censorship_circumvention.request_settings( + bridge_settings = self.censorship_circumvention.request_settings( country="tm" ) - if request_bridges: - # @TODO there might be several bridge types recommended. - # Should we attempt to iterate over each type if one of them fails to connect? - # But if so, how to stop it starting 3 separate Tor connection threads? - # for bridges in request_bridges["settings"]: - bridges = request_bridges["settings"][0]["bridges"] - self.common.log( - "TorConnectionWidget", - "_error_connecting_to_tor", - f"Obtained bridges: {bridges}", - ) - bridge_strings = bridges["bridge_strings"] - bridge_type = bridges["type"] - bridge_source = bridges["source"] - - # If the recommended bridge source is to use the built-in - # bridges, set that in our settings, as if the user had - # selected the built-in bridges for a specific PT themselves. - # - if bridge_source == "builtin": - self.settings.set("bridges_type", "built-in") - if bridge_type == "obfs4": - self.settings.set("bridges_builtin_pt", "obfs4") - if bridge_type == "snowflake": - self.settings.set("bridges_builtin_pt", "snowflake") - if bridge_type == "meek": - self.settings.set("bridges_builtin_pt", "meek-azure") - else: - self.settings.set("bridges_type", "custom") - # Sanity check the bridges provided from the Tor API before saving - bridges_checked = self.common.check_bridges_valid(bridge_strings) - if bridges_checked: - self.settings.set("bridges_custom", "\n".join(bridges_checked)) - - self.common.log( - "TorConnectionWidget", - "_error_connecting_to_tor", - "Starting Tor again", - ) - self.settings.save() - # Now try and connect again + self.meek.cleanup() + + if bridge_settings and self.censorship_circumvention.save_settings(self.settings, bridge_settings): + # Try and connect again self.start() else: self.fail.emit() -- cgit v1.2.3-54-g00ecf From 4c3af76a5bf8513452e04d36f68653f660c1379f Mon Sep 17 00:00:00 2001 From: Saptak S Date: Fri, 3 Dec 2021 18:27:03 +0530 Subject: Creates a toggle checkbox --- desktop/src/onionshare/connection_tab.py | 12 ++++---- desktop/src/onionshare/gui_common.py | 47 ++++++++++++++++++++++++++++++++ 2 files changed, 54 insertions(+), 5 deletions(-) diff --git a/desktop/src/onionshare/connection_tab.py b/desktop/src/onionshare/connection_tab.py index 4c06b713..a0d7b78f 100644 --- a/desktop/src/onionshare/connection_tab.py +++ b/desktop/src/onionshare/connection_tab.py @@ -23,7 +23,7 @@ from PySide2 import QtCore, QtWidgets, QtGui from onionshare_cli.settings import Settings from . import strings -from .gui_common import GuiCommon +from .gui_common import GuiCommon, ToggleCheckbox from .tor_connection import TorConnectionWidget @@ -69,11 +69,13 @@ class AutoConnectTab(QtWidgets.QWidget): # Description and checkbox description_label = QtWidgets.QLabel(strings._("gui_autoconnect_description")) - self.enable_autoconnect_checkbox = QtWidgets.QCheckBox() - self.enable_autoconnect_checkbox.clicked.connect(self.toggle_auto_connect) - self.enable_autoconnect_checkbox.setText( + self.enable_autoconnect_checkbox = ToggleCheckbox( strings._("gui_enable_autoconnect_checkbox") - ) + ) + self.enable_autoconnect_checkbox.clicked.connect(self.toggle_auto_connect) + # self.enable_autoconnect_checkbox.setText( + # strings._("gui_enable_autoconnect_checkbox") + # ) self.enable_autoconnect_checkbox.setFixedWidth(400) self.enable_autoconnect_checkbox.setStyleSheet( common.gui.css["enable_autoconnect"] diff --git a/desktop/src/onionshare/gui_common.py b/desktop/src/onionshare/gui_common.py index 5b0cb907..aa3a596e 100644 --- a/desktop/src/onionshare/gui_common.py +++ b/desktop/src/onionshare/gui_common.py @@ -21,6 +21,7 @@ along with this program. If not, see . import os import shutil from pkg_resources import resource_filename +from PySide2 import QtCore, QtWidgets, QtGui from . import strings from onionshare_cli.onion import ( @@ -170,6 +171,10 @@ class GuiCommon: border: 1px solid #DDDBDA; border-radius: 8px; padding: 24px 16px; + } + QCheckBox::indicator { + width: 0; + height: 0; }""", # Common styles between modes and their child widgets "mode_settings_toggle_advanced": """ @@ -531,3 +536,45 @@ class GuiCommon: return strings._("error_port_not_available") return None + + +class ToggleCheckbox(QtWidgets.QCheckBox): + def __init__(self, text): + super(ToggleCheckbox, self).__init__(text) + print(text) + # Set default parameters + self.setCursor(QtCore.Qt.PointingHandCursor) + self.w = 50 + self.h = 24 + self.bg_color = "#D4D4D4" + self.circle_color = "#BDBDBD" + self.active_color = "#4E0D4E" + self.inactive_color = "" + + def hitButton(self, pos): + return self.toggleRect.contains(pos) + + def paintEvent(self, e): + painter = QtGui.QPainter(self) + painter.setRenderHint(QtGui.QPainter.Antialiasing) + painter.setPen(QtCore.Qt.NoPen) + opt = QtWidgets.QStyleOptionButton() + opt.init(self) + self.initStyleOption(opt) + s = self.style() + s.drawControl(QtWidgets.QStyle.CE_CheckBox, opt, painter, self) + + rect = QtCore.QRect(s.subElementRect(QtWidgets.QStyle.SE_CheckBoxContents, opt, self)) + x = rect.width() - rect.x() - self.w + 20 # 20 is the padding between text and toggle + y = self.height() / 2 - self.h / 2 + self.y() / 2 + self.toggleRect = QtCore.QRect(x, y, self.w, self.h) + painter.setBrush(QtGui.QColor(self.bg_color)) + painter.drawRoundedRect(x, y, self.w, self.h, self.h / 2, self.h / 2) + if not self.isChecked(): + painter.setBrush(QtGui.QColor(self.circle_color)) + painter.drawEllipse(x, y - 3, self.h + 6, self.h + 6) + else: + painter.setBrush(QtGui.QColor(self.active_color)) + painter.drawEllipse(x + self.w - (self.h + 6), y - 3, self.h + 6, self.h + 6) + + painter.end() -- cgit v1.2.3-54-g00ecf From bbdfea218efb083915e7f39e36b39291d0431f95 Mon Sep 17 00:00:00 2001 From: Saptak S Date: Fri, 3 Dec 2021 18:34:53 +0530 Subject: Reflects the autoconnect status on toggle checkbox on opening --- desktop/src/onionshare/connection_tab.py | 4 +--- desktop/src/onionshare/gui_common.py | 1 - 2 files changed, 1 insertion(+), 4 deletions(-) diff --git a/desktop/src/onionshare/connection_tab.py b/desktop/src/onionshare/connection_tab.py index a0d7b78f..6cdba20d 100644 --- a/desktop/src/onionshare/connection_tab.py +++ b/desktop/src/onionshare/connection_tab.py @@ -73,9 +73,6 @@ class AutoConnectTab(QtWidgets.QWidget): strings._("gui_enable_autoconnect_checkbox") ) self.enable_autoconnect_checkbox.clicked.connect(self.toggle_auto_connect) - # self.enable_autoconnect_checkbox.setText( - # strings._("gui_enable_autoconnect_checkbox") - # ) self.enable_autoconnect_checkbox.setFixedWidth(400) self.enable_autoconnect_checkbox.setStyleSheet( common.gui.css["enable_autoconnect"] @@ -136,6 +133,7 @@ class AutoConnectTab(QtWidgets.QWidget): self.setLayout(self.layout) if self.auto_connect_enabled: + self.enable_autoconnect_checkbox.setCheckState(QtCore.Qt.Checked) self.connect_clicked() def toggle_auto_connect(self): diff --git a/desktop/src/onionshare/gui_common.py b/desktop/src/onionshare/gui_common.py index aa3a596e..dc9c74b6 100644 --- a/desktop/src/onionshare/gui_common.py +++ b/desktop/src/onionshare/gui_common.py @@ -541,7 +541,6 @@ class GuiCommon: class ToggleCheckbox(QtWidgets.QCheckBox): def __init__(self, text): super(ToggleCheckbox, self).__init__(text) - print(text) # Set default parameters self.setCursor(QtCore.Qt.PointingHandCursor) self.w = 50 -- cgit v1.2.3-54-g00ecf From 51e49c01f1a32753efc3de74953ffcc0260d5b15 Mon Sep 17 00:00:00 2001 From: Saptak S Date: Fri, 3 Dec 2021 19:02:41 +0530 Subject: Adds autoconnect settings in tor settings tab --- desktop/src/onionshare/tor_settings_tab.py | 29 ++++++++++++++++++++++++++++- 1 file changed, 28 insertions(+), 1 deletion(-) diff --git a/desktop/src/onionshare/tor_settings_tab.py b/desktop/src/onionshare/tor_settings_tab.py index e28e5260..76957a8e 100644 --- a/desktop/src/onionshare/tor_settings_tab.py +++ b/desktop/src/onionshare/tor_settings_tab.py @@ -303,6 +303,24 @@ class TorSettingsTab(QtWidgets.QWidget): ) connection_type_radio_group.setLayout(connection_type_radio_group_layout) + # Quickstart settings + self.autoconnect_checkbox = QtWidgets.QCheckBox( + strings._("gui_enable_autoconnect_checkbox") + ) + self.autoconnect_checkbox.toggled.connect( + self.autoconnect_toggled + ) + left_column_settings = QtWidgets.QVBoxLayout() + connection_type_radio_group.setFixedHeight(300) + left_column_settings.addWidget(connection_type_radio_group) + left_column_settings.addSpacing(20) + left_column_settings.addWidget(self.autoconnect_checkbox) + left_column_settings.addStretch() + left_column_settings.setContentsMargins(0, 0, 0, 0) + left_column_setting_widget = QtWidgets.QWidget() + left_column_setting_widget.setLayout(left_column_settings) + + # The Bridges options are not exclusive (enabling Bridges offers obfs4 or custom bridges) connection_type_bridges_radio_group_layout = QtWidgets.QVBoxLayout() connection_type_bridges_radio_group_layout.addWidget(self.bridges) @@ -322,7 +340,7 @@ class TorSettingsTab(QtWidgets.QWidget): # Settings are in columns columns_layout = QtWidgets.QHBoxLayout() - columns_layout.addWidget(connection_type_radio_group) + columns_layout.addWidget(left_column_setting_widget) columns_layout.addSpacing(20) columns_layout.addLayout(connection_type_layout, stretch=1) columns_wrapper = QtWidgets.QWidget() @@ -477,6 +495,12 @@ class TorSettingsTab(QtWidgets.QWidget): self.bridge_use_checkbox.setCheckState(QtCore.Qt.Unchecked) self.bridge_settings.hide() + def autoconnect_toggled(self): + """ + Auto connect checkbox clicked + """ + self.common.log("TorSettingsTab", "autoconnect_checkbox_clicked") + def active_tabs_changed(self, are_tabs_active): if are_tabs_active: self.main_widget.hide() @@ -777,6 +801,9 @@ class TorSettingsTab(QtWidgets.QWidget): settings = Settings(self.common) settings.load() # To get the last update timestamp + # autoconnect + settings.set("auto_connect", self.autoconnect_checkbox.isChecked()) + # Tor connection if self.connection_type_bundled_radio.isChecked(): settings.set("connection_type", "bundled") -- cgit v1.2.3-54-g00ecf From 97a604a4c86f795e29d6bcf6437c45de8ca105f3 Mon Sep 17 00:00:00 2001 From: Saptak S Date: Fri, 3 Dec 2021 19:30:20 +0530 Subject: Shows the Main window before starting to connect to Tor on autoconnect enabled --- desktop/src/onionshare/connection_tab.py | 5 +++++ desktop/src/onionshare/main_window.py | 3 +++ desktop/src/onionshare/tab_widget.py | 4 ++++ desktop/src/onionshare/tor_settings_tab.py | 4 ++++ 4 files changed, 16 insertions(+) diff --git a/desktop/src/onionshare/connection_tab.py b/desktop/src/onionshare/connection_tab.py index 6cdba20d..bb5f72a3 100644 --- a/desktop/src/onionshare/connection_tab.py +++ b/desktop/src/onionshare/connection_tab.py @@ -132,6 +132,11 @@ class AutoConnectTab(QtWidgets.QWidget): self.setLayout(self.layout) + def check_autoconnect(self): + """ + After rendering, check if autoconnect was clicked, then start connecting + """ + self.common.log("AutoConnectTab", "autoconnect_checking") if self.auto_connect_enabled: self.enable_autoconnect_checkbox.setCheckState(QtCore.Qt.Checked) self.connect_clicked() diff --git a/desktop/src/onionshare/main_window.py b/desktop/src/onionshare/main_window.py index 8c38c38d..54fef40c 100644 --- a/desktop/src/onionshare/main_window.py +++ b/desktop/src/onionshare/main_window.py @@ -174,6 +174,9 @@ class MainWindow(QtWidgets.QMainWindow): ) self.close_dialog.setDefaultButton(self.close_dialog.reject_button) + # Check for autoconnect + self.tabs.check_autoconnect_tab() + def tor_connection_canceled(self): """ If the user cancels before Tor finishes connecting, ask if they want to diff --git a/desktop/src/onionshare/tab_widget.py b/desktop/src/onionshare/tab_widget.py index b5c18023..901a2ce0 100644 --- a/desktop/src/onionshare/tab_widget.py +++ b/desktop/src/onionshare/tab_widget.py @@ -168,6 +168,10 @@ class TabWidget(QtWidgets.QTabWidget): self.add_tab() else: self.open_connection_tab() + + def check_autoconnect_tab(self): + if type(self.tabs[0]) is AutoConnectTab: + self.tabs[0].check_autoconnect() def load_tab(self, mode_settings_id): # Load the tab's mode settings diff --git a/desktop/src/onionshare/tor_settings_tab.py b/desktop/src/onionshare/tor_settings_tab.py index 76957a8e..28778365 100644 --- a/desktop/src/onionshare/tor_settings_tab.py +++ b/desktop/src/onionshare/tor_settings_tab.py @@ -409,6 +409,10 @@ class TorSettingsTab(QtWidgets.QWidget): self.old_settings = Settings(self.common) self.old_settings.load() + # Check if autoconnect was enabled + if self.old_settings.get("auto_connect"): + self.autoconnect_checkbox.setCheckState(QtCore.Qt.Checked) + connection_type = self.old_settings.get("connection_type") if connection_type == "bundled": if self.connection_type_bundled_radio.isEnabled(): -- cgit v1.2.3-54-g00ecf From 3b16ca461b8ff0fca9e31d1a5b5248f32934d65f Mon Sep 17 00:00:00 2001 From: Saptak S Date: Fri, 3 Dec 2021 19:53:00 +0530 Subject: Fix window title in quickstart --- desktop/src/onionshare/tab_widget.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/desktop/src/onionshare/tab_widget.py b/desktop/src/onionshare/tab_widget.py index 901a2ce0..41833635 100644 --- a/desktop/src/onionshare/tab_widget.py +++ b/desktop/src/onionshare/tab_widget.py @@ -222,7 +222,7 @@ class TabWidget(QtWidgets.QTabWidget): connection_tab.close_this_tab.connect(self.close_connection_tab) self.tabs[self.current_tab_id] = connection_tab self.current_tab_id += 1 - index = self.addTab(connection_tab, strings._("gui_settings_window_title")) + index = self.addTab(connection_tab, strings._("gui_autoconnect_start")) self.setCurrentIndex(index) def open_settings_tab(self): -- cgit v1.2.3-54-g00ecf From 5ca7236f0cdec55d7eb4a457affcb4dd78f84d84 Mon Sep 17 00:00:00 2001 From: Saptak S Date: Fri, 3 Dec 2021 20:03:22 +0530 Subject: Fixes CLI tests --- cli/tests/test_cli_settings.py | 1 + 1 file changed, 1 insertion(+) diff --git a/cli/tests/test_cli_settings.py b/cli/tests/test_cli_settings.py index 9513b013..f4222b81 100644 --- a/cli/tests/test_cli_settings.py +++ b/cli/tests/test_cli_settings.py @@ -36,6 +36,7 @@ class TestSettings: "bridges_custom": "", "persistent_tabs": [], "theme": 0, + "auto_connect": False, } for key in settings_obj._settings: # Skip locale, it will not always default to the same thing -- cgit v1.2.3-54-g00ecf From 22fb0cfac581cc7863afaba11da6e0c71877a91b Mon Sep 17 00:00:00 2001 From: Micah Lee Date: Sun, 5 Dec 2021 15:12:18 -0800 Subject: Delete the TorConnectionDialog --- desktop/src/onionshare/main_window.py | 1 - desktop/src/onionshare/tor_connection.py | 117 +------------------------------ 2 files changed, 1 insertion(+), 117 deletions(-) diff --git a/desktop/src/onionshare/main_window.py b/desktop/src/onionshare/main_window.py index 54fef40c..6a19bf94 100644 --- a/desktop/src/onionshare/main_window.py +++ b/desktop/src/onionshare/main_window.py @@ -23,7 +23,6 @@ import time from PySide2 import QtCore, QtWidgets, QtGui from . import strings -from .tor_connection import TorConnectionDialog from .widgets import Alert from .update_checker import UpdateThread from .tab_widget import TabWidget diff --git a/desktop/src/onionshare/tor_connection.py b/desktop/src/onionshare/tor_connection.py index 2cc599c4..81cc37c9 100644 --- a/desktop/src/onionshare/tor_connection.py +++ b/desktop/src/onionshare/tor_connection.py @@ -19,7 +19,7 @@ along with this program. If not, see . """ import time -from PySide2 import QtCore, QtWidgets, QtGui +from PySide2 import QtCore, QtWidgets from onionshare_cli.onion import ( BundledTorCanceled, @@ -39,121 +39,6 @@ from onionshare_cli.onion import ( ) from . import strings -from .gui_common import GuiCommon -from .widgets import Alert - - -class TorConnectionDialog(QtWidgets.QProgressDialog): - """ - Connecting to Tor dialog. - """ - - open_tor_settings = QtCore.Signal() - success = QtCore.Signal() - - def __init__( - self, common, custom_settings=False, testing_settings=False, onion=None - ): - super(TorConnectionDialog, self).__init__(None) - - self.common = common - self.testing_settings = testing_settings - - if custom_settings: - self.settings = custom_settings - else: - self.settings = self.common.settings - - self.common.log("TorConnectionDialog", "__init__") - - if self.testing_settings: - self.title = strings._("gui_settings_connection_type_test_button") - self.onion = onion - else: - self.title = "OnionShare" - self.onion = self.common.gui.onion - - self.setWindowTitle(self.title) - - self.setWindowIcon(QtGui.QIcon(GuiCommon.get_resource_path("images/logo.png"))) - self.setModal(True) - self.setFixedSize(400, 150) - - # Label - self.setLabelText(strings._("connecting_to_tor")) - - # Progress bar ticks from 0 to 100 - self.setRange(0, 100) - # Don't show if connection takes less than 100ms (for non-bundled tor) - self.setMinimumDuration(100) - - # Start displaying the status at 0 - self._tor_status_update(0, "") - - def start(self): - self.common.log("TorConnectionDialog", "start") - - t = TorConnectionThread(self.common, self.settings, self) - t.tor_status_update.connect(self._tor_status_update) - t.connected_to_tor.connect(self._connected_to_tor) - t.canceled_connecting_to_tor.connect(self._canceled_connecting_to_tor) - t.error_connecting_to_tor.connect(self._error_connecting_to_tor) - t.start() - - # The main thread needs to remain active, and checking for Qt events, - # until the thread is finished. Otherwise it won't be able to handle - # accepting signals. - self.active = True - while self.active: - time.sleep(0.1) - self.common.gui.qtapp.processEvents() - - def _tor_status_update(self, progress, summary): - self.setValue(int(progress)) - self.setLabelText( - f"{strings._('connecting_to_tor')}
{summary}" - ) - - def _connected_to_tor(self): - self.common.log("TorConnectionDialog", "_connected_to_tor") - self.active = False - # Close the dialog after connecting - self.setValue(self.maximum()) - - def _canceled_connecting_to_tor(self): - self.common.log("TorConnectionDialog", "_canceled_connecting_to_tor") - self.active = False - self.onion.cleanup() - - # Cancel connecting to Tor - QtCore.QTimer.singleShot(1, self.cancel) - - def _error_connecting_to_tor(self, msg): - self.common.log("TorConnectionDialog", "_error_connecting_to_tor") - self.active = False - - if self.testing_settings: - # If testing, just display the error but don't open settings - def alert(): - Alert(self.common, msg, QtWidgets.QMessageBox.Warning, title=self.title) - - else: - # If not testing, open settings after displaying the error - def alert(): - Alert( - self.common, - f"{msg}\n\n{strings._('gui_tor_connection_error_settings')}", - QtWidgets.QMessageBox.Warning, - title=self.title, - ) - - # Open settings - self.open_tor_settings.emit() - - QtCore.QTimer.singleShot(1, alert) - - # Cancel connecting to Tor - QtCore.QTimer.singleShot(1, self.cancel) class TorConnectionWidget(QtWidgets.QWidget): -- cgit v1.2.3-54-g00ecf From 6a132a4991ba24756da3f7a457e63602c9e5614b Mon Sep 17 00:00:00 2001 From: Micah Lee Date: Sun, 5 Dec 2021 15:14:21 -0800 Subject: Remove stretch from TorConnectionWidget so it takes the full width --- desktop/src/onionshare/tor_connection.py | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/desktop/src/onionshare/tor_connection.py b/desktop/src/onionshare/tor_connection.py index 81cc37c9..1f07242d 100644 --- a/desktop/src/onionshare/tor_connection.py +++ b/desktop/src/onionshare/tor_connection.py @@ -70,14 +70,10 @@ class TorConnectionWidget(QtWidgets.QWidget): progress_layout.addWidget(self.progress) progress_layout.addWidget(self.cancel_button) - inner_layout = QtWidgets.QVBoxLayout() - inner_layout.addWidget(self.label) - inner_layout.addLayout(progress_layout) - - layout = QtWidgets.QHBoxLayout() - layout.addStretch() - layout.addLayout(inner_layout) - layout.addStretch() + layout = QtWidgets.QVBoxLayout() + layout.addWidget(self.label) + layout.addLayout(progress_layout) + self.setLayout(layout) # Start displaying the status at 0 -- cgit v1.2.3-54-g00ecf From ce9c35ac9b6103bc0919c68fc6c1263dd5845484 Mon Sep 17 00:00:00 2001 From: Micah Lee Date: Sun, 5 Dec 2021 15:36:23 -0800 Subject: Move the first launch widgets into AutoConnectFirstLaunchWidget --- desktop/src/onionshare/connection_tab.py | 166 +++++++++++++++++++++---------- 1 file changed, 112 insertions(+), 54 deletions(-) diff --git a/desktop/src/onionshare/connection_tab.py b/desktop/src/onionshare/connection_tab.py index bb5f72a3..88783ec6 100644 --- a/desktop/src/onionshare/connection_tab.py +++ b/desktop/src/onionshare/connection_tab.py @@ -36,6 +36,7 @@ class AutoConnectTab(QtWidgets.QWidget): close_this_tab = QtCore.Signal() tor_is_connected = QtCore.Signal() tor_is_disconnected = QtCore.Signal() + def __init__(self, common, tab_id, status_bar, parent=None): super(AutoConnectTab, self).__init__() self.common = common @@ -67,21 +68,16 @@ class AutoConnectTab(QtWidgets.QWidget): self.image = QtWidgets.QWidget() self.image.setLayout(image_layout) - # Description and checkbox - description_label = QtWidgets.QLabel(strings._("gui_autoconnect_description")) - self.enable_autoconnect_checkbox = ToggleCheckbox( - strings._("gui_enable_autoconnect_checkbox") - ) - self.enable_autoconnect_checkbox.clicked.connect(self.toggle_auto_connect) - self.enable_autoconnect_checkbox.setFixedWidth(400) - self.enable_autoconnect_checkbox.setStyleSheet( - common.gui.css["enable_autoconnect"] - ) - description_layout = QtWidgets.QVBoxLayout() - description_layout.addWidget(description_label) - description_layout.addWidget(self.enable_autoconnect_checkbox) - description_widget = QtWidgets.QWidget() - description_widget.setLayout(description_layout) + # First launch widget + self.first_launch_widget = AutoConnectFirstLaunchWidget(self.common) + self.first_launch_widget.toggle_auto_connect.connect(self.toggle_auto_connect) + self.first_launch_widget.connect_clicked.connect(self.connect_clicked) + self.first_launch_widget.open_tor_settings.connect(self.open_tor_settings) + self.first_launch_widget.show() + + # Use bridge widget + self.use_bridge_widget = AutoConnectUseBridgeWidget(self.common) + self.use_bridge_widget.hide() # Tor connection widget self.tor_con = TorConnectionWidget(self.common, self.status_bar) @@ -89,38 +85,13 @@ class AutoConnectTab(QtWidgets.QWidget): self.tor_con.fail.connect(self.tor_con_fail) self.tor_con.hide() - # Error label - self.error_label = QtWidgets.QLabel() - self.error_label.setStyleSheet(self.common.gui.css["tor_settings_error"]) - self.error_label.setWordWrap(True) - - # CTA buttons - self.connect_button = QtWidgets.QPushButton(strings._("gui_autoconnect_start")) - self.connect_button.clicked.connect(self.connect_clicked) - self.connect_button.setFixedWidth(150) - self.connect_button.setStyleSheet( - common.gui.css["autoconnect_start_button"] - ) - self.configure_button = QtWidgets.QPushButton(strings._("gui_autoconnect_configure")) - self.configure_button.clicked.connect(self.open_tor_settings) - self.configure_button.setFlat(True) - self.configure_button.setStyleSheet( - common.gui.css["autoconnect_configure_button"] - ) - cta_layout = QtWidgets.QHBoxLayout() - cta_layout.addWidget(self.connect_button) - cta_layout.addWidget(self.configure_button) - cta_widget = QtWidgets.QWidget() - cta_widget.setLayout(cta_layout) - - # Layout content_layout = QtWidgets.QVBoxLayout() content_layout.addStretch() content_layout.addWidget(self.image) - content_layout.addWidget(description_widget) + content_layout.addWidget(self.first_launch_widget) + content_layout.addWidget(self.use_bridge_widget) content_layout.addWidget(self.tor_con) - content_layout.addWidget(cta_widget) content_layout.addStretch() content_layout.setAlignment(QtCore.Qt.AlignCenter) content_widget = QtWidgets.QWidget() @@ -138,7 +109,9 @@ class AutoConnectTab(QtWidgets.QWidget): """ self.common.log("AutoConnectTab", "autoconnect_checking") if self.auto_connect_enabled: - self.enable_autoconnect_checkbox.setCheckState(QtCore.Qt.Checked) + self.first_launch_widget.enable_autoconnect_checkbox.setCheckState( + QtCore.Qt.Checked + ) self.connect_clicked() def toggle_auto_connect(self): @@ -147,7 +120,8 @@ class AutoConnectTab(QtWidgets.QWidget): """ self.common.log("AutoConnectTab", "autoconnect_checkbox_clicked") self.curr_settings.set( - "auto_connect", self.enable_autoconnect_checkbox.isChecked() + "auto_connect", + self.first_launch_widget.enable_autoconnect_checkbox.isChecked(), ) self.curr_settings.save() @@ -160,9 +134,9 @@ class AutoConnectTab(QtWidgets.QWidget): """ self.common.log("AutoConnectTab", "connect_clicked") - self.error_label.setText("") - self.connect_button.hide() - self.configure_button.hide() + # If we're on first launch, hide the buttons + if self.first_launch_widget.isVisible(): + self.first_launch_widget.hide_buttons() if not self.common.gui.local_only: self.tor_con.show() @@ -175,12 +149,9 @@ class AutoConnectTab(QtWidgets.QWidget): Finished testing tor connection. """ self.tor_con.hide() - self.connect_button.show() - self.configure_button.show() - if ( - self.common.gui.onion.is_authenticated() - and not self.tor_con.wasCanceled() - ): + self.first_launch_widget.show_buttons() + + if self.common.gui.onion.is_authenticated() and not self.tor_con.wasCanceled(): # Tell the tabs that Tor is connected self.tor_is_connected.emit() # Close the tab @@ -191,6 +162,93 @@ class AutoConnectTab(QtWidgets.QWidget): Finished testing tor connection. """ self.tor_con.hide() + + # If we're on first launch, switch to use bridge + if self.first_launch_widget.isVisible(): + self.first_launch_widget.show_buttons() + self.first_launch_widget.hide() + self.use_bridge_widget.show() + + +class AutoConnectFirstLaunchWidget(QtWidgets.QWidget): + """ + When you first launch OnionShare, this is the widget that is displayed + """ + + toggle_auto_connect = QtCore.Signal() + connect_clicked = QtCore.Signal() + open_tor_settings = QtCore.Signal() + + def __init__(self, common): + super(AutoConnectFirstLaunchWidget, self).__init__() + self.common = common + self.common.log("AutoConnectFirstLaunchWidget", "__init__") + + # Description and checkbox + description_label = QtWidgets.QLabel(strings._("gui_autoconnect_description")) + self.enable_autoconnect_checkbox = ToggleCheckbox( + strings._("gui_enable_autoconnect_checkbox") + ) + self.enable_autoconnect_checkbox.clicked.connect(self._toggle_auto_connect) + self.enable_autoconnect_checkbox.setFixedWidth(400) + self.enable_autoconnect_checkbox.setStyleSheet( + common.gui.css["enable_autoconnect"] + ) + description_layout = QtWidgets.QVBoxLayout() + description_layout.addWidget(description_label) + description_layout.addWidget(self.enable_autoconnect_checkbox) + description_widget = QtWidgets.QWidget() + description_widget.setLayout(description_layout) + + # Buttons + self.connect_button = QtWidgets.QPushButton(strings._("gui_autoconnect_start")) + self.connect_button.clicked.connect(self._connect_clicked) + self.connect_button.setFixedWidth(150) + self.connect_button.setStyleSheet(common.gui.css["autoconnect_start_button"]) + self.configure_button = QtWidgets.QPushButton( + strings._("gui_autoconnect_configure") + ) + self.configure_button.clicked.connect(self._open_tor_settings) + self.configure_button.setFlat(True) + self.configure_button.setStyleSheet( + common.gui.css["autoconnect_configure_button"] + ) + cta_layout = QtWidgets.QHBoxLayout() + cta_layout.addWidget(self.connect_button) + cta_layout.addWidget(self.configure_button) + cta_widget = QtWidgets.QWidget() + cta_widget.setLayout(cta_layout) + + # Layout + layout = QtWidgets.QVBoxLayout() + layout.addWidget(description_widget) + layout.addWidget(cta_widget) + self.setLayout(layout) + + def hide_buttons(self): + self.connect_button.hide() + self.configure_button.hide() + + def show_buttons(self): self.connect_button.show() self.configure_button.show() - self.error_label.setText(msg) + + def _toggle_auto_connect(self): + self.toggle_auto_connect.emit() + + def _connect_clicked(self): + self.connect_clicked.emit() + + def _open_tor_settings(self): + self.open_tor_settings.emit() + + +class AutoConnectUseBridgeWidget(QtWidgets.QWidget): + """ + If connecting fails, this is the widget that helps the user bypass censorship + """ + + def __init__(self, common): + super(AutoConnectUseBridgeWidget, self).__init__() + self.common = common + self.common.log("AutoConnectUseBridgeWidget", "__init__") -- cgit v1.2.3-54-g00ecf From 339fc9338eb7d56135511be83381f09728323161 Mon Sep 17 00:00:00 2001 From: Micah Lee Date: Mon, 6 Dec 2021 19:39:44 -0800 Subject: Start making UseBridgeWidget, and add json files that list country names for each enabled locale --- cli/onionshare_cli/onion.py | 2 +- desktop/scripts/update-country-list.py | 42 +++++++++ desktop/src/onionshare/connection_tab.py | 101 ++++++++++++++++++++- desktop/src/onionshare/resources/countries/ar.json | 1 + desktop/src/onionshare/resources/countries/bn.json | 1 + desktop/src/onionshare/resources/countries/de.json | 1 + desktop/src/onionshare/resources/countries/en.json | 1 + desktop/src/onionshare/resources/countries/es.json | 1 + desktop/src/onionshare/resources/countries/fi.json | 1 + desktop/src/onionshare/resources/countries/gl.json | 1 + desktop/src/onionshare/resources/countries/is.json | 1 + desktop/src/onionshare/resources/countries/lt.json | 1 + .../src/onionshare/resources/countries/nb_NO.json | 1 + desktop/src/onionshare/resources/countries/pl.json | 1 + .../src/onionshare/resources/countries/pt_BR.json | 1 + desktop/src/onionshare/resources/countries/ru.json | 1 + desktop/src/onionshare/resources/countries/sv.json | 1 + desktop/src/onionshare/resources/countries/tr.json | 1 + desktop/src/onionshare/resources/countries/uk.json | 1 + .../onionshare/resources/countries/zh_Hans.json | 1 + desktop/src/onionshare/resources/locale/en.json | 5 + 21 files changed, 165 insertions(+), 2 deletions(-) create mode 100755 desktop/scripts/update-country-list.py create mode 100644 desktop/src/onionshare/resources/countries/ar.json create mode 100644 desktop/src/onionshare/resources/countries/bn.json create mode 100644 desktop/src/onionshare/resources/countries/de.json create mode 100644 desktop/src/onionshare/resources/countries/en.json create mode 100644 desktop/src/onionshare/resources/countries/es.json create mode 100644 desktop/src/onionshare/resources/countries/fi.json create mode 100644 desktop/src/onionshare/resources/countries/gl.json create mode 100644 desktop/src/onionshare/resources/countries/is.json create mode 100644 desktop/src/onionshare/resources/countries/lt.json create mode 100644 desktop/src/onionshare/resources/countries/nb_NO.json create mode 100644 desktop/src/onionshare/resources/countries/pl.json create mode 100644 desktop/src/onionshare/resources/countries/pt_BR.json create mode 100644 desktop/src/onionshare/resources/countries/ru.json create mode 100644 desktop/src/onionshare/resources/countries/sv.json create mode 100644 desktop/src/onionshare/resources/countries/tr.json create mode 100644 desktop/src/onionshare/resources/countries/uk.json create mode 100644 desktop/src/onionshare/resources/countries/zh_Hans.json diff --git a/cli/onionshare_cli/onion.py b/cli/onionshare_cli/onion.py index 5ac669b8..94009db4 100644 --- a/cli/onionshare_cli/onion.py +++ b/cli/onionshare_cli/onion.py @@ -192,7 +192,7 @@ class Onion(object): custom_settings=None, config=None, tor_status_update_func=None, - connect_timeout=120, + connect_timeout=1, local_only=False, ): if local_only: diff --git a/desktop/scripts/update-country-list.py b/desktop/scripts/update-country-list.py new file mode 100755 index 00000000..8fe829cb --- /dev/null +++ b/desktop/scripts/update-country-list.py @@ -0,0 +1,42 @@ +#!/usr/bin/env python3 +import os +import tempfile +import subprocess +import json + +import onionshare_cli + + +def main(): + # Clone the country-list repo + tmp_dir = tempfile.TemporaryDirectory() + subprocess.run( + ["git", "clone", "https://github.com/umpirsky/country-list.git"], + cwd=tmp_dir.name, + ) + repo_dir = os.path.join(tmp_dir.name, "country-list") + + # Get the list of enabled languages + common = onionshare_cli.common.Common() + settings = onionshare_cli.settings.Settings(common) + available_locales = list(settings.available_locales) + + # Make a dictionary that makes a language's ISO 3166-1 to its name in all enabled languages + os.makedirs( + os.path.join("src", "onionshare", "resources", "countries"), exist_ok=True + ) + for locale in available_locales: + with open(os.path.join(repo_dir, "data", locale, "country.json")) as f: + countries = json.loads(f.read()) + + with open( + os.path.join( + "src", "onionshare", "resources", "countries", f"{locale}.json" + ), + "w", + ) as f: + f.write(json.dumps(countries)) + + +if __name__ == "__main__": + main() diff --git a/desktop/src/onionshare/connection_tab.py b/desktop/src/onionshare/connection_tab.py index 88783ec6..9b0c188d 100644 --- a/desktop/src/onionshare/connection_tab.py +++ b/desktop/src/onionshare/connection_tab.py @@ -77,6 +77,9 @@ class AutoConnectTab(QtWidgets.QWidget): # Use bridge widget self.use_bridge_widget = AutoConnectUseBridgeWidget(self.common) + self.use_bridge_widget.connect_clicked.connect(self.connect_clicked) + self.use_bridge_widget.back_clicked.connect(self.back_clicked) + self.use_bridge_widget.open_tor_settings.connect(self.open_tor_settings) self.use_bridge_widget.hide() # Tor connection widget @@ -134,9 +137,11 @@ class AutoConnectTab(QtWidgets.QWidget): """ self.common.log("AutoConnectTab", "connect_clicked") - # If we're on first launch, hide the buttons + # Hide the buttons if self.first_launch_widget.isVisible(): self.first_launch_widget.hide_buttons() + elif self.use_bridge_widget.isVisible(): + self.use_bridge_widget.hide_buttons() if not self.common.gui.local_only: self.tor_con.show() @@ -144,12 +149,20 @@ class AutoConnectTab(QtWidgets.QWidget): else: self.close_this_tab.emit() + def back_clicked(self): + """ + Switch from use bridge widget back to first launch widget + """ + self.use_bridge_widget.hide() + self.first_launch_widget.show() + def tor_con_success(self): """ Finished testing tor connection. """ self.tor_con.hide() self.first_launch_widget.show_buttons() + self.use_bridge_widget.show_buttons() if self.common.gui.onion.is_authenticated() and not self.tor_con.wasCanceled(): # Tell the tabs that Tor is connected @@ -186,6 +199,7 @@ class AutoConnectFirstLaunchWidget(QtWidgets.QWidget): # Description and checkbox description_label = QtWidgets.QLabel(strings._("gui_autoconnect_description")) + description_label.setWordWrap(True) self.enable_autoconnect_checkbox = ToggleCheckbox( strings._("gui_enable_autoconnect_checkbox") ) @@ -248,7 +262,92 @@ class AutoConnectUseBridgeWidget(QtWidgets.QWidget): If connecting fails, this is the widget that helps the user bypass censorship """ + connect_clicked = QtCore.Signal() + back_clicked = QtCore.Signal() + open_tor_settings = QtCore.Signal() + def __init__(self, common): super(AutoConnectUseBridgeWidget, self).__init__() self.common = common self.common.log("AutoConnectUseBridgeWidget", "__init__") + + # Description + description_label = QtWidgets.QLabel( + strings._("gui_autoconnect_bridge_description") + ) + description_label.setTextFormat(QtCore.Qt.RichText) + description_label.setWordWrap(True) + + # Detection preference + self.detect_automatic_radio = QtWidgets.QRadioButton( + strings._("gui_autoconnect_bridge_detect_automatic") + ) + self.detect_automatic_radio.toggled.connect(self._detect_automatic_toggled) + self.detect_manual_radio = QtWidgets.QRadioButton( + strings._("gui_autoconnect_bridge_detect_manual") + ) + self.detect_manual_radio.toggled.connect(self._detect_manual_toggled) + detect_layout = QtWidgets.QVBoxLayout() + detect_layout.addWidget(self.detect_automatic_radio) + detect_layout.addWidget(self.detect_manual_radio) + + # World map + + # Buttons + self.connect_button = QtWidgets.QPushButton( + strings._("gui_autoconnect_bridge_start") + ) + self.connect_button.clicked.connect(self._connect_clicked) + self.connect_button.setFixedWidth(150) + self.connect_button.setStyleSheet(common.gui.css["autoconnect_start_button"]) + self.back_button = QtWidgets.QPushButton( + strings._("gui_autoconnect_bridge_back") + ) + self.back_button.clicked.connect(self._back_clicked) + self.back_button.setFlat(True) + self.back_button.setStyleSheet(common.gui.css["autoconnect_configure_button"]) + self.configure_button = QtWidgets.QPushButton( + strings._("gui_autoconnect_configure") + ) + self.configure_button.clicked.connect(self._open_tor_settings) + self.configure_button.setFlat(True) + self.configure_button.setStyleSheet( + common.gui.css["autoconnect_configure_button"] + ) + cta_layout = QtWidgets.QHBoxLayout() + cta_layout.addWidget(self.connect_button) + cta_layout.addWidget(self.back_button) + cta_layout.addWidget(self.configure_button) + cta_layout.addStretch() + cta_widget = QtWidgets.QWidget() + cta_widget.setLayout(cta_layout) + + # Layout + layout = QtWidgets.QVBoxLayout() + layout.addWidget(description_label) + layout.addLayout(detect_layout) + layout.addWidget(cta_widget) + self.setLayout(layout) + + def hide_buttons(self): + self.connect_button.hide() + self.configure_button.hide() + + def show_buttons(self): + self.connect_button.show() + self.configure_button.show() + + def _detect_automatic_toggled(self): + pass + + def _detect_manual_toggled(self): + pass + + def _connect_clicked(self): + self.connect_clicked.emit() + + def _back_clicked(self): + self.back_clicked.emit() + + def _open_tor_settings(self): + self.open_tor_settings.emit() diff --git a/desktop/src/onionshare/resources/countries/ar.json b/desktop/src/onionshare/resources/countries/ar.json new file mode 100644 index 00000000..23b95a22 --- /dev/null +++ b/desktop/src/onionshare/resources/countries/ar.json @@ -0,0 +1 @@ +{"IS": "\u0622\u064a\u0633\u0644\u0646\u062f\u0627", "ET": "\u0625\u062b\u064a\u0648\u0628\u064a\u0627", "AZ": "\u0623\u0630\u0631\u0628\u064a\u062c\u0627\u0646", "AM": "\u0623\u0631\u0645\u064a\u0646\u064a\u0627", "AW": "\u0623\u0631\u0648\u0628\u0627", "ER": "\u0625\u0631\u064a\u062a\u0631\u064a\u0627", "ES": "\u0625\u0633\u0628\u0627\u0646\u064a\u0627", "AU": "\u0623\u0633\u062a\u0631\u0627\u0644\u064a\u0627", "EE": "\u0625\u0633\u062a\u0648\u0646\u064a\u0627", "IL": "\u0625\u0633\u0631\u0627\u0626\u064a\u0644", "SZ": "\u0625\u0633\u0648\u0627\u062a\u064a\u0646\u064a", "AF": "\u0623\u0641\u063a\u0627\u0646\u0633\u062a\u0627\u0646", "PS": "\u0627\u0644\u0623\u0631\u0627\u0636\u064a \u0627\u0644\u0641\u0644\u0633\u0637\u064a\u0646\u064a\u0629", "AR": "\u0627\u0644\u0623\u0631\u062c\u0646\u062a\u064a\u0646", "JO": "\u0627\u0644\u0623\u0631\u062f\u0646", "TF": "\u0627\u0644\u0623\u0642\u0627\u0644\u064a\u0645 \u0627\u0644\u062c\u0646\u0648\u0628\u064a\u0629 \u0627\u0644\u0641\u0631\u0646\u0633\u064a\u0629", "IO": "\u0627\u0644\u0625\u0642\u0644\u064a\u0645 \u0627\u0644\u0628\u0631\u064a\u0637\u0627\u0646\u064a \u0641\u064a \u0627\u0644\u0645\u062d\u064a\u0637 \u0627\u0644\u0647\u0646\u062f\u064a", "EC": "\u0627\u0644\u0625\u0643\u0648\u0627\u062f\u0648\u0631", "AE": "\u0627\u0644\u0625\u0645\u0627\u0631\u0627\u062a \u0627\u0644\u0639\u0631\u0628\u064a\u0629 \u0627\u0644\u0645\u062a\u062d\u062f\u0629", "AL": "\u0623\u0644\u0628\u0627\u0646\u064a\u0627", "BH": "\u0627\u0644\u0628\u062d\u0631\u064a\u0646", "BR": "\u0627\u0644\u0628\u0631\u0627\u0632\u064a\u0644", "PT": "\u0627\u0644\u0628\u0631\u062a\u063a\u0627\u0644", "BA": "\u0627\u0644\u0628\u0648\u0633\u0646\u0629 \u0648\u0627\u0644\u0647\u0631\u0633\u0643", "CZ": "\u0627\u0644\u062a\u0634\u064a\u0643", "ME": "\u0627\u0644\u062c\u0628\u0644 \u0627\u0644\u0623\u0633\u0648\u062f", "DZ": "\u0627\u0644\u062c\u0632\u0627\u0626\u0631", "DK": "\u0627\u0644\u062f\u0627\u0646\u0645\u0631\u0643", "CV": "\u0627\u0644\u0631\u0623\u0633 \u0627\u0644\u0623\u062e\u0636\u0631", "SV": "\u0627\u0644\u0633\u0644\u0641\u0627\u062f\u0648\u0631", "SN": "\u0627\u0644\u0633\u0646\u063a\u0627\u0644", "SD": "\u0627\u0644\u0633\u0648\u062f\u0627\u0646", "SE": "\u0627\u0644\u0633\u0648\u064a\u062f", "EH": "\u0627\u0644\u0635\u062d\u0631\u0627\u0621 \u0627\u0644\u063a\u0631\u0628\u064a\u0629", "SO": "\u0627\u0644\u0635\u0648\u0645\u0627\u0644", "CN": "\u0627\u0644\u0635\u064a\u0646", "IQ": "\u0627\u0644\u0639\u0631\u0627\u0642", "GA": "\u0627\u0644\u063a\u0627\u0628\u0648\u0646", "VA": "\u0627\u0644\u0641\u0627\u062a\u064a\u0643\u0627\u0646", "PH": "\u0627\u0644\u0641\u0644\u0628\u064a\u0646", "CM": "\u0627\u0644\u0643\u0627\u0645\u064a\u0631\u0648\u0646", "CG": "\u0627\u0644\u0643\u0648\u0646\u063a\u0648 - \u0628\u0631\u0627\u0632\u0627\u0641\u064a\u0644", "CD": "\u0627\u0644\u0643\u0648\u0646\u063a\u0648 - \u0643\u064a\u0646\u0634\u0627\u0633\u0627", "KW": "\u0627\u0644\u0643\u0648\u064a\u062a", "DE": "\u0623\u0644\u0645\u0627\u0646\u064a\u0627", "MA": "\u0627\u0644\u0645\u063a\u0631\u0628", "MX": "\u0627\u0644\u0645\u0643\u0633\u064a\u0643", "SA": "\u0627\u0644\u0645\u0645\u0644\u0643\u0629 \u0627\u0644\u0639\u0631\u0628\u064a\u0629 \u0627\u0644\u0633\u0639\u0648\u062f\u064a\u0629", "GB": "\u0627\u0644\u0645\u0645\u0644\u0643\u0629 \u0627\u0644\u0645\u062a\u062d\u062f\u0629", "NO": "\u0627\u0644\u0646\u0631\u0648\u064a\u062c", "AT": "\u0627\u0644\u0646\u0645\u0633\u0627", "NE": "\u0627\u0644\u0646\u064a\u062c\u0631", "IN": "\u0627\u0644\u0647\u0646\u062f", "US": "\u0627\u0644\u0648\u0644\u0627\u064a\u0627\u062a \u0627\u0644\u0645\u062a\u062d\u062f\u0629", "JP": "\u0627\u0644\u064a\u0627\u0628\u0627\u0646", "YE": "\u0627\u0644\u064a\u0645\u0646", "GR": "\u0627\u0644\u064a\u0648\u0646\u0627\u0646", "AQ": "\u0623\u0646\u062a\u0627\u0631\u0643\u062a\u064a\u0643\u0627", "AG": "\u0623\u0646\u062a\u064a\u063a\u0648\u0627 \u0648\u0628\u0631\u0628\u0648\u062f\u0627", "AD": "\u0623\u0646\u062f\u0648\u0631\u0627", "ID": "\u0625\u0646\u062f\u0648\u0646\u064a\u0633\u064a\u0627", "AO": "\u0623\u0646\u063a\u0648\u0644\u0627", "AI": "\u0623\u0646\u063a\u0648\u064a\u0644\u0627", "UY": "\u0623\u0648\u0631\u063a\u0648\u0627\u064a", "UZ": "\u0623\u0648\u0632\u0628\u0643\u0633\u062a\u0627\u0646", "UG": "\u0623\u0648\u063a\u0646\u062f\u0627", "UA": "\u0623\u0648\u0643\u0631\u0627\u0646\u064a\u0627", "IR": "\u0625\u064a\u0631\u0627\u0646", "IE": "\u0623\u064a\u0631\u0644\u0646\u062f\u0627", "IT": "\u0625\u064a\u0637\u0627\u0644\u064a\u0627", "PG": "\u0628\u0627\u0628\u0648\u0627 \u063a\u064a\u0646\u064a\u0627 \u0627\u0644\u062c\u062f\u064a\u062f\u0629", "PY": "\u0628\u0627\u0631\u0627\u063a\u0648\u0627\u064a", "PK": "\u0628\u0627\u0643\u0633\u062a\u0627\u0646", "PW": "\u0628\u0627\u0644\u0627\u0648", "BB": "\u0628\u0631\u0628\u0627\u062f\u0648\u0633", "BM": "\u0628\u0631\u0645\u0648\u062f\u0627", "BN": "\u0628\u0631\u0648\u0646\u0627\u064a", "BE": "\u0628\u0644\u062c\u064a\u0643\u0627", "BG": "\u0628\u0644\u063a\u0627\u0631\u064a\u0627", "BZ": "\u0628\u0644\u064a\u0632", "BD": "\u0628\u0646\u063a\u0644\u0627\u062f\u064a\u0634", "PA": "\u0628\u0646\u0645\u0627", "BJ": "\u0628\u0646\u064a\u0646", "BT": "\u0628\u0648\u062a\u0627\u0646", "BW": "\u0628\u0648\u062a\u0633\u0648\u0627\u0646\u0627", "PR": "\u0628\u0648\u0631\u062a\u0648\u0631\u064a\u0643\u0648", "BF": "\u0628\u0648\u0631\u0643\u064a\u0646\u0627 \u0641\u0627\u0633\u0648", "BI": "\u0628\u0648\u0631\u0648\u0646\u062f\u064a", "PL": "\u0628\u0648\u0644\u0646\u062f\u0627", "BO": "\u0628\u0648\u0644\u064a\u0641\u064a\u0627", "PF": "\u0628\u0648\u0644\u064a\u0646\u064a\u0632\u064a\u0627 \u0627\u0644\u0641\u0631\u0646\u0633\u064a\u0629", "PE": "\u0628\u064a\u0631\u0648", "BY": "\u0628\u064a\u0644\u0627\u0631\u0648\u0633", "TH": "\u062a\u0627\u064a\u0644\u0627\u0646\u062f", "TW": "\u062a\u0627\u064a\u0648\u0627\u0646", "TM": "\u062a\u0631\u0643\u0645\u0627\u0646\u0633\u062a\u0627\u0646", "TR": "\u062a\u0631\u0643\u064a\u0627", "TT": "\u062a\u0631\u064a\u0646\u064a\u062f\u0627\u062f \u0648\u062a\u0648\u0628\u0627\u063a\u0648", "TD": "\u062a\u0634\u0627\u062f", "CL": "\u062a\u0634\u064a\u0644\u064a", "TZ": "\u062a\u0646\u0632\u0627\u0646\u064a\u0627", "TG": "\u062a\u0648\u063a\u0648", "TV": "\u062a\u0648\u0641\u0627\u0644\u0648", "TK": "\u062a\u0648\u0643\u064a\u0644\u0648", "TN": "\u062a\u0648\u0646\u0633", "TO": "\u062a\u0648\u0646\u063a\u0627", "TL": "\u062a\u064a\u0645\u0648\u0631 - \u0644\u064a\u0634\u062a\u064a", "JM": "\u062c\u0627\u0645\u0627\u064a\u0643\u0627", "GI": "\u062c\u0628\u0644 \u0637\u0627\u0631\u0642", "AX": "\u062c\u0632\u0631 \u0622\u0644\u0627\u0646\u062f", "BS": "\u062c\u0632\u0631 \u0627\u0644\u0628\u0647\u0627\u0645\u0627", "KM": "\u062c\u0632\u0631 \u0627\u0644\u0642\u0645\u0631", "MQ": "\u062c\u0632\u0631 \u0627\u0644\u0645\u0627\u0631\u062a\u064a\u0646\u064a\u0643", "MV": "\u062c\u0632\u0631 \u0627\u0644\u0645\u0627\u0644\u062f\u064a\u0641", "UM": "\u062c\u0632\u0631 \u0627\u0644\u0648\u0644\u0627\u064a\u0627\u062a \u0627\u0644\u0645\u062a\u062d\u062f\u0629 \u0627\u0644\u0646\u0627\u0626\u064a\u0629", "PN": "\u062c\u0632\u0631 \u0628\u064a\u062a\u0643\u064a\u0631\u0646", "TC": "\u062c\u0632\u0631 \u062a\u0648\u0631\u0643\u0633 \u0648\u0643\u0627\u064a\u0643\u0648\u0633", "SB": "\u062c\u0632\u0631 \u0633\u0644\u064a\u0645\u0627\u0646", "FO": "\u062c\u0632\u0631 \u0641\u0627\u0631\u0648", "FK": "\u062c\u0632\u0631 \u0641\u0648\u0643\u0644\u0627\u0646\u062f", "VG": "\u062c\u0632\u0631 \u0641\u064a\u0631\u062c\u0646 \u0627\u0644\u0628\u0631\u064a\u0637\u0627\u0646\u064a\u0629", "VI": "\u062c\u0632\u0631 \u0641\u064a\u0631\u062c\u0646 \u0627\u0644\u062a\u0627\u0628\u0639\u0629 \u0644\u0644\u0648\u0644\u0627\u064a\u0627\u062a \u0627\u0644\u0645\u062a\u062d\u062f\u0629", "KY": "\u062c\u0632\u0631 \u0643\u0627\u064a\u0645\u0627\u0646", "CK": "\u062c\u0632\u0631 \u0643\u0648\u0643", "CC": "\u062c\u0632\u0631 \u0643\u0648\u0643\u0648\u0633 (\u0643\u064a\u0644\u064a\u0646\u063a)", "MH": "\u062c\u0632\u0631 \u0645\u0627\u0631\u0634\u0627\u0644", "MP": "\u062c\u0632\u0631 \u0645\u0627\u0631\u064a\u0627\u0646\u0627 \u0627\u0644\u0634\u0645\u0627\u0644\u064a\u0629", "WF": "\u062c\u0632\u0631 \u0648\u0627\u0644\u0633 \u0648\u0641\u0648\u062a\u0648\u0646\u0627", "BV": "\u062c\u0632\u064a\u0631\u0629 \u0628\u0648\u0641\u064a\u0647", "CX": "\u062c\u0632\u064a\u0631\u0629 \u0643\u0631\u064a\u0633\u0645\u0627\u0633", "IM": "\u062c\u0632\u064a\u0631\u0629 \u0645\u0627\u0646", "NF": "\u062c\u0632\u064a\u0631\u0629 \u0646\u0648\u0631\u0641\u0648\u0644\u0643", "HM": "\u062c\u0632\u064a\u0631\u0629 \u0647\u064a\u0631\u062f \u0648\u062c\u0632\u0631 \u0645\u0627\u0643\u062f\u0648\u0646\u0627\u0644\u062f", "CF": "\u062c\u0645\u0647\u0648\u0631\u064a\u0629 \u0623\u0641\u0631\u064a\u0642\u064a\u0627 \u0627\u0644\u0648\u0633\u0637\u0649", "DO": "\u062c\u0645\u0647\u0648\u0631\u064a\u0629 \u0627\u0644\u062f\u0648\u0645\u064a\u0646\u064a\u0643\u0627\u0646", "ZA": "\u062c\u0646\u0648\u0628 \u0623\u0641\u0631\u064a\u0642\u064a\u0627", "SS": "\u062c\u0646\u0648\u0628 \u0627\u0644\u0633\u0648\u062f\u0627\u0646", "GE": "\u062c\u0648\u0631\u062c\u064a\u0627", "GS": "\u062c\u0648\u0631\u062c\u064a\u0627 \u0627\u0644\u062c\u0646\u0648\u0628\u064a\u0629 \u0648\u062c\u0632\u0631 \u0633\u0627\u0646\u062f\u0648\u064a\u062a\u0634 \u0627\u0644\u062c\u0646\u0648\u0628\u064a\u0629", "DJ": "\u062c\u064a\u0628\u0648\u062a\u064a", "JE": "\u062c\u064a\u0631\u0633\u064a", "DM": "\u062f\u0648\u0645\u064a\u0646\u064a\u0643\u0627", "RW": "\u0631\u0648\u0627\u0646\u062f\u0627", "RU": "\u0631\u0648\u0633\u064a\u0627", "RO": "\u0631\u0648\u0645\u0627\u0646\u064a\u0627", "RE": "\u0631\u0648\u064a\u0646\u064a\u0648\u0646", "ZM": "\u0632\u0627\u0645\u0628\u064a\u0627", "ZW": "\u0632\u064a\u0645\u0628\u0627\u0628\u0648\u064a", "CI": "\u0633\u0627\u062d\u0644 \u0627\u0644\u0639\u0627\u062c", "WS": "\u0633\u0627\u0645\u0648\u0627", "AS": "\u0633\u0627\u0645\u0648\u0627 \u0627\u0644\u0623\u0645\u0631\u064a\u0643\u064a\u0629", "BL": "\u0633\u0627\u0646 \u0628\u0627\u0631\u062a\u0644\u064a\u0645\u064a", "PM": "\u0633\u0627\u0646 \u0628\u064a\u064a\u0631 \u0648\u0645\u0643\u0648\u064a\u0644\u0648\u0646", "MF": "\u0633\u0627\u0646 \u0645\u0627\u0631\u062a\u0646", "SM": "\u0633\u0627\u0646 \u0645\u0627\u0631\u064a\u0646\u0648", "VC": "\u0633\u0627\u0646\u062a \u0641\u0646\u0633\u0646\u062a \u0648\u062c\u0632\u0631 \u063a\u0631\u064a\u0646\u0627\u062f\u064a\u0646", "KN": "\u0633\u0627\u0646\u062a \u0643\u064a\u062a\u0633 \u0648\u0646\u064a\u0641\u064a\u0633", "LC": "\u0633\u0627\u0646\u062a \u0644\u0648\u0633\u064a\u0627", "SX": "\u0633\u0627\u0646\u062a \u0645\u0627\u0631\u062a\u0646", "SH": "\u0633\u0627\u0646\u062a \u0647\u064a\u0644\u064a\u0646\u0627", "ST": "\u0633\u0627\u0648 \u062a\u0648\u0645\u064a \u0648\u0628\u0631\u064a\u0646\u0633\u064a\u0628\u064a", "LK": "\u0633\u0631\u064a\u0644\u0627\u0646\u0643\u0627", "SJ": "\u0633\u0641\u0627\u0644\u0628\u0627\u0631\u062f \u0648\u062c\u0627\u0646 \u0645\u0627\u064a\u0646", "SK": "\u0633\u0644\u0648\u0641\u0627\u0643\u064a\u0627", "SI": "\u0633\u0644\u0648\u0641\u064a\u0646\u064a\u0627", "SG": "\u0633\u0646\u063a\u0627\u0641\u0648\u0631\u0629", "SY": "\u0633\u0648\u0631\u064a\u0627", "SR": "\u0633\u0648\u0631\u064a\u0646\u0627\u0645", "CH": "\u0633\u0648\u064a\u0633\u0631\u0627", "SL": "\u0633\u064a\u0631\u0627\u0644\u064a\u0648\u0646", "SC": "\u0633\u064a\u0634\u0644", "RS": "\u0635\u0631\u0628\u064a\u0627", "TJ": "\u0637\u0627\u062c\u064a\u0643\u0633\u062a\u0627\u0646", "OM": "\u0639\u064f\u0645\u0627\u0646", "GM": "\u063a\u0627\u0645\u0628\u064a\u0627", "GH": "\u063a\u0627\u0646\u0627", "GD": "\u063a\u0631\u064a\u0646\u0627\u062f\u0627", "GL": "\u063a\u0631\u064a\u0646\u0644\u0627\u0646\u062f", "GT": "\u063a\u0648\u0627\u062a\u064a\u0645\u0627\u0644\u0627", "GP": "\u063a\u0648\u0627\u062f\u0644\u0648\u0628", "GU": "\u063a\u0648\u0627\u0645", "GF": "\u063a\u0648\u064a\u0627\u0646\u0627 \u0627\u0644\u0641\u0631\u0646\u0633\u064a\u0629", "GY": "\u063a\u064a\u0627\u0646\u0627", "GG": "\u063a\u064a\u0631\u0646\u0632\u064a", "GN": "\u063a\u064a\u0646\u064a\u0627", "GQ": "\u063a\u064a\u0646\u064a\u0627 \u0627\u0644\u0627\u0633\u062a\u0648\u0627\u0626\u064a\u0629", "GW": "\u063a\u064a\u0646\u064a\u0627 \u0628\u064a\u0633\u0627\u0648", "VU": "\u0641\u0627\u0646\u0648\u0627\u062a\u0648", "FR": "\u0641\u0631\u0646\u0633\u0627", "VE": "\u0641\u0646\u0632\u0648\u064a\u0644\u0627", "FI": "\u0641\u0646\u0644\u0646\u062f\u0627", "VN": "\u0641\u064a\u062a\u0646\u0627\u0645", "FJ": "\u0641\u064a\u062c\u064a", "CY": "\u0642\u0628\u0631\u0635", "QA": "\u0642\u0637\u0631", "KG": "\u0642\u064a\u0631\u063a\u064a\u0632\u0633\u062a\u0627\u0646", "KZ": "\u0643\u0627\u0632\u0627\u062e\u0633\u062a\u0627\u0646", "NC": "\u0643\u0627\u0644\u064a\u062f\u0648\u0646\u064a\u0627 \u0627\u0644\u062c\u062f\u064a\u062f\u0629", "HR": "\u0643\u0631\u0648\u0627\u062a\u064a\u0627", "KH": "\u0643\u0645\u0628\u0648\u062f\u064a\u0627", "CA": "\u0643\u0646\u062f\u0627", "CU": "\u0643\u0648\u0628\u0627", "CW": "\u0643\u0648\u0631\u0627\u0633\u0627\u0648", "KR": "\u0643\u0648\u0631\u064a\u0627 \u0627\u0644\u062c\u0646\u0648\u0628\u064a\u0629", "KP": "\u0643\u0648\u0631\u064a\u0627 \u0627\u0644\u0634\u0645\u0627\u0644\u064a\u0629", "CR": "\u0643\u0648\u0633\u062a\u0627\u0631\u064a\u0643\u0627", "CO": "\u0643\u0648\u0644\u0648\u0645\u0628\u064a\u0627", "KI": "\u0643\u064a\u0631\u064a\u0628\u0627\u062a\u064a", "KE": "\u0643\u064a\u0646\u064a\u0627", "LV": "\u0644\u0627\u062a\u0641\u064a\u0627", "LA": "\u0644\u0627\u0648\u0633", "LB": "\u0644\u0628\u0646\u0627\u0646", "LU": "\u0644\u0648\u0643\u0633\u0645\u0628\u0648\u0631\u063a", "LY": "\u0644\u064a\u0628\u064a\u0627", "LR": "\u0644\u064a\u0628\u064a\u0631\u064a\u0627", "LT": "\u0644\u064a\u062a\u0648\u0627\u0646\u064a\u0627", "LI": "\u0644\u064a\u062e\u062a\u0646\u0634\u062a\u0627\u064a\u0646", "LS": "\u0644\u064a\u0633\u0648\u062a\u0648", "MT": "\u0645\u0627\u0644\u0637\u0627", "ML": "\u0645\u0627\u0644\u064a", "MY": "\u0645\u0627\u0644\u064a\u0632\u064a\u0627", "YT": "\u0645\u0627\u064a\u0648\u062a", "MG": "\u0645\u062f\u063a\u0634\u0642\u0631", "EG": "\u0645\u0635\u0631", "MK": "\u0645\u0642\u062f\u0648\u0646\u064a\u0627 \u0627\u0644\u0634\u0645\u0627\u0644\u064a\u0629", "MW": "\u0645\u0644\u0627\u0648\u064a", "MO": "\u0645\u0646\u0637\u0642\u0629 \u0645\u0627\u0643\u0627\u0648 \u0627\u0644\u0625\u062f\u0627\u0631\u064a\u0629 \u0627\u0644\u062e\u0627\u0635\u0629", "MN": "\u0645\u0646\u063a\u0648\u0644\u064a\u0627", "MR": "\u0645\u0648\u0631\u064a\u062a\u0627\u0646\u064a\u0627", "MU": "\u0645\u0648\u0631\u064a\u0634\u064a\u0648\u0633", "MZ": "\u0645\u0648\u0632\u0645\u0628\u064a\u0642", "MD": "\u0645\u0648\u0644\u062f\u0648\u0641\u0627", "MC": "\u0645\u0648\u0646\u0627\u0643\u0648", "MS": "\u0645\u0648\u0646\u062a\u0633\u0631\u0627\u062a", "MM": "\u0645\u064a\u0627\u0646\u0645\u0627\u0631 (\u0628\u0648\u0631\u0645\u0627)", "FM": "\u0645\u064a\u0643\u0631\u0648\u0646\u064a\u0632\u064a\u0627", "NA": "\u0646\u0627\u0645\u064a\u0628\u064a\u0627", "NR": "\u0646\u0627\u0648\u0631\u0648", "NP": "\u0646\u064a\u0628\u0627\u0644", "NG": "\u0646\u064a\u062c\u064a\u0631\u064a\u0627", "NI": "\u0646\u064a\u0643\u0627\u0631\u0627\u063a\u0648\u0627", "NZ": "\u0646\u064a\u0648\u0632\u064a\u0644\u0646\u062f\u0627", "NU": "\u0646\u064a\u0648\u064a", "HT": "\u0647\u0627\u064a\u062a\u064a", "HN": "\u0647\u0646\u062f\u0648\u0631\u0627\u0633", "HU": "\u0647\u0646\u063a\u0627\u0631\u064a\u0627", "NL": "\u0647\u0648\u0644\u0646\u062f\u0627", "BQ": "\u0647\u0648\u0644\u0646\u062f\u0627 \u0627\u0644\u0643\u0627\u0631\u064a\u0628\u064a\u0629", "HK": "\u0647\u0648\u0646\u063a \u0643\u0648\u0646\u063a \u0627\u0644\u0635\u064a\u0646\u064a\u0629 (\u0645\u0646\u0637\u0642\u0629 \u0625\u062f\u0627\u0631\u064a\u0629 \u062e\u0627\u0635\u0629)"} \ No newline at end of file diff --git a/desktop/src/onionshare/resources/countries/bn.json b/desktop/src/onionshare/resources/countries/bn.json new file mode 100644 index 00000000..a68e0d05 --- /dev/null +++ b/desktop/src/onionshare/resources/countries/bn.json @@ -0,0 +1 @@ +{"AT": "\u0985\u09b8\u09cd\u099f\u09cd\u09b0\u09bf\u09af\u09bc\u09be", "AU": "\u0985\u09b8\u09cd\u099f\u09cd\u09b0\u09c7\u09b2\u09bf\u09af\u09bc\u09be", "AO": "\u0985\u09cd\u09af\u09be\u0999\u09cd\u0997\u09cb\u09b2\u09be", "AQ": "\u0985\u09cd\u09af\u09be\u09a8\u09cd\u099f\u09be\u09b0\u09cd\u0995\u099f\u09bf\u0995\u09be", "AG": "\u0985\u09cd\u09af\u09be\u09a8\u09cd\u099f\u09bf\u0997\u09c1\u09af\u09bc\u09be \u0993 \u09ac\u09be\u09b0\u09ac\u09c1\u09a1\u09be", "IM": "\u0986\u0987\u09b2 \u0985\u09ab \u09ae\u09cd\u09af\u09be\u09a8", "IS": "\u0986\u0987\u09b8\u09b2\u09cd\u09af\u09be\u09a8\u09cd\u09a1", "AZ": "\u0986\u099c\u09be\u09b0\u09ac\u09be\u0987\u099c\u09be\u09a8", "AD": "\u0986\u09a8\u09cd\u09a1\u09cb\u09b0\u09be", "AF": "\u0986\u09ab\u0997\u09be\u09a8\u09bf\u09b8\u09cd\u09a4\u09be\u09a8", "AS": "\u0986\u09ae\u09c7\u09b0\u09bf\u0995\u09be\u09a8 \u09b8\u09be\u09ae\u09cb\u09af\u09bc\u09be", "IE": "\u0986\u09af\u09bc\u09be\u09b0\u09b2\u09cd\u09af\u09be\u09a8\u09cd\u09a1", "AW": "\u0986\u09b0\u09c1\u09ac\u09be", "AR": "\u0986\u09b0\u09cd\u099c\u09c7\u09a8\u09cd\u099f\u09bf\u09a8\u09be", "AM": "\u0986\u09b0\u09cd\u09ae\u09c7\u09a8\u09bf\u09af\u09bc\u09be", "DZ": "\u0986\u09b2\u099c\u09c7\u09b0\u09bf\u09af\u09bc\u09be", "AL": "\u0986\u09b2\u09ac\u09c7\u09a8\u09bf\u09af\u09bc\u09be", "AX": "\u0986\u09b2\u09be\u09a8\u09cd\u09a1 \u09a6\u09cd\u09ac\u09c0\u09aa\u09aa\u09c1\u099e\u09cd\u099c", "UA": "\u0987\u0989\u0995\u09cd\u09b0\u09c7\u09a8", "EC": "\u0987\u0995\u09c1\u09af\u09bc\u09c7\u09a1\u09b0", "IL": "\u0987\u099c\u09b0\u09be\u09af\u09bc\u09c7\u09b2", "IT": "\u0987\u09a4\u09be\u09b2\u09bf", "ET": "\u0987\u09a5\u09bf\u0993\u09aa\u09bf\u09af\u09bc\u09be", "ID": "\u0987\u09a8\u09cd\u09a6\u09cb\u09a8\u09c7\u09b6\u09bf\u09af\u09bc\u09be", "YE": "\u0987\u09af\u09bc\u09c7\u09ae\u09c7\u09a8", "IQ": "\u0987\u09b0\u09be\u0995", "IR": "\u0987\u09b0\u09be\u09a8", "ER": "\u0987\u09b0\u09bf\u09a4\u09cd\u09b0\u09bf\u09af\u09bc\u09be", "SZ": "\u0987\u09b8\u0993\u09af\u09bc\u09be\u09a4\u09bf\u09a8\u09bf", "UG": "\u0989\u0997\u09be\u09a8\u09cd\u09a1\u09be", "UZ": "\u0989\u099c\u09ac\u09c7\u0995\u09bf\u09b8\u09cd\u09a4\u09be\u09a8", "KP": "\u0989\u09a4\u09cd\u09a4\u09b0 \u0995\u09cb\u09b0\u09bf\u09af\u09bc\u09be", "MK": "\u0989\u09a4\u09cd\u09a4\u09b0 \u09ae\u09cd\u09af\u09be\u09b8\u09c7\u09a1\u09cb\u09a8\u09bf\u09af\u09bc\u09be", "MP": "\u0989\u09a4\u09cd\u09a4\u09b0\u09be\u099e\u09cd\u099a\u09b2\u09c0\u09af\u09bc \u09ae\u09be\u09b0\u09bf\u09af\u09bc\u09be\u09a8\u09be \u09a6\u09cd\u09ac\u09c0\u09aa\u09aa\u09c1\u099e\u09cd\u099c", "UY": "\u0989\u09b0\u09c1\u0997\u09c1\u09af\u09bc\u09c7", "SV": "\u098f\u09b2 \u09b8\u09be\u09b2\u09ad\u09c7\u09a6\u09b0", "EE": "\u098f\u09b8\u09cd\u09a4\u09cb\u09a8\u09bf\u09af\u09bc\u09be", "AI": "\u098f\u09cd\u09af\u09be\u0999\u09cd\u0997\u09c1\u0987\u09b2\u09be", "OM": "\u0993\u09ae\u09be\u09a8", "WF": "\u0993\u09af\u09bc\u09be\u09b2\u09bf\u09b8 \u0993 \u09ab\u09c1\u099f\u09c1\u09a8\u09be", "CG": "\u0995\u0999\u09cd\u0997\u09cb - \u09ac\u09cd\u09b0\u09be\u099c\u09be\u09ad\u09bf\u09b2", "CD": "\u0995\u0999\u09cd\u0997\u09cb-\u0995\u09bf\u09a8\u09b6\u09be\u09b8\u09be", "KM": "\u0995\u09ae\u09cb\u09b0\u09cb\u09b8", "KH": "\u0995\u09ae\u09cd\u09ac\u09cb\u09a1\u09bf\u09af\u09bc\u09be", "CO": "\u0995\u09b2\u09ae\u09cd\u09ac\u09bf\u09af\u09bc\u09be", "KZ": "\u0995\u09be\u099c\u09be\u0996\u09b8\u09cd\u09a4\u09be\u09a8", "QA": "\u0995\u09be\u09a4\u09be\u09b0", "CA": "\u0995\u09be\u09a8\u09be\u09a1\u09be", "CU": "\u0995\u09bf\u0989\u09ac\u09be", "KG": "\u0995\u09bf\u09b0\u0997\u09bf\u099c\u09bf\u09b8\u09cd\u09a4\u09be\u09a8", "KI": "\u0995\u09bf\u09b0\u09bf\u09ac\u09be\u09a4\u09bf", "CK": "\u0995\u09c1\u0995 \u09a6\u09cd\u09ac\u09c0\u09aa\u09aa\u09c1\u099e\u09cd\u099c", "KW": "\u0995\u09c1\u09af\u09bc\u09c7\u09a4", "CW": "\u0995\u09c1\u09b0\u09be\u09b8\u09be\u0993", "KE": "\u0995\u09c7\u09a8\u09bf\u09af\u09bc\u09be", "CV": "\u0995\u09c7\u09aa\u09ad\u09be\u09b0\u09cd\u09a6\u09c7", "KY": "\u0995\u09c7\u09ae\u09cd\u09af\u09be\u09a8 \u09a6\u09cd\u09ac\u09c0\u09aa\u09aa\u09c1\u099e\u09cd\u099c", "CC": "\u0995\u09cb\u0995\u09cb\u09b8 (\u0995\u09bf\u09b2\u09bf\u0982) \u09a6\u09cd\u09ac\u09c0\u09aa\u09aa\u09c1\u099e\u09cd\u099c", "CI": "\u0995\u09cb\u09a4 \u09a6\u09bf\u09ad\u09cb\u09af\u09bc\u09be\u09b0", "CR": "\u0995\u09cb\u09b8\u09cd\u099f\u09be\u09b0\u09bf\u0995\u09be", "CM": "\u0995\u09cd\u09af\u09be\u09ae\u09c7\u09b0\u09c1\u09a8", "BQ": "\u0995\u09cd\u09af\u09be\u09b0\u09bf\u09ac\u09bf\u09af\u09bc\u09be\u09a8 \u09a8\u09c7\u09a6\u09be\u09b0\u09b2\u09cd\u09af\u09be\u09a8\u09cd\u09a1\u09b8", "CX": "\u0995\u09cd\u09b0\u09bf\u09b8\u09ae\u09be\u09b8 \u09a6\u09cd\u09ac\u09c0\u09aa", "HR": "\u0995\u09cd\u09b0\u09cb\u09af\u09bc\u09c7\u09b6\u09bf\u09af\u09bc\u09be", "GM": "\u0997\u09be\u09ae\u09cd\u09ac\u09bf\u09af\u09bc\u09be", "GN": "\u0997\u09bf\u09a8\u09bf", "GW": "\u0997\u09bf\u09a8\u09bf-\u09ac\u09bf\u09b8\u09be\u0989", "GY": "\u0997\u09bf\u09af\u09bc\u09be\u09a8\u09be", "GT": "\u0997\u09c1\u09af\u09bc\u09be\u09a4\u09c7\u09ae\u09be\u09b2\u09be", "GP": "\u0997\u09c1\u09af\u09bc\u09be\u09a6\u09c7\u09b2\u09cc\u09aa", "GU": "\u0997\u09c1\u09af\u09bc\u09be\u09ae", "GG": "\u0997\u09c1\u09af\u09bc\u09be\u09b0\u09cd\u09a8\u09b8\u09bf", "GA": "\u0997\u09cd\u09af\u09be\u09ac\u09a8", "GL": "\u0997\u09cd\u09b0\u09c0\u09a8\u09b2\u09cd\u09af\u09be\u09a8\u09cd\u09a1", "GR": "\u0997\u09cd\u09b0\u09c0\u09b8", "GD": "\u0997\u09cd\u09b0\u09c7\u09a8\u09be\u09a1\u09be", "GH": "\u0998\u09be\u09a8\u09be", "TD": "\u099a\u09be\u09a6", "CL": "\u099a\u09bf\u09b2\u09bf", "CN": "\u099a\u09c0\u09a8", "CZ": "\u099a\u09c7\u099a\u09bf\u09af\u09bc\u09be", "GE": "\u099c\u09b0\u09cd\u099c\u09bf\u09af\u09bc\u09be", "JO": "\u099c\u09b0\u09cd\u09a1\u09a8", "JP": "\u099c\u09be\u09aa\u09be\u09a8", "JM": "\u099c\u09be\u09ae\u09be\u0987\u0995\u09be", "ZM": "\u099c\u09be\u09ae\u09cd\u09ac\u09bf\u09af\u09bc\u09be", "DE": "\u099c\u09be\u09b0\u09cd\u09ae\u09be\u09a8\u09bf", "JE": "\u099c\u09be\u09b0\u09cd\u09b8\u09bf", "DJ": "\u099c\u09bf\u09ac\u09c1\u09a4\u09bf", "GI": "\u099c\u09bf\u09ac\u09cd\u09b0\u09be\u09b2\u09cd\u099f\u09be\u09b0", "ZW": "\u099c\u09bf\u09ae\u09cd\u09ac\u09be\u09ac\u09cb\u09af\u09bc\u09c7", "TV": "\u099f\u09c1\u09ad\u09be\u09b2\u09c1", "TK": "\u099f\u09cb\u0995\u09c7\u09b2\u09be\u0989", "TG": "\u099f\u09cb\u0997\u09cb", "TO": "\u099f\u09cb\u0999\u09cd\u0997\u09be", "DK": "\u09a1\u09c7\u09a8\u09ae\u09be\u09b0\u09cd\u0995", "DM": "\u09a1\u09cb\u09ae\u09bf\u09a8\u09bf\u0995\u09be", "DO": "\u09a1\u09cb\u09ae\u09c7\u09a8\u09bf\u0995\u09be\u09a8 \u09aa\u09cd\u09b0\u099c\u09be\u09a4\u09a8\u09cd\u09a4\u09cd\u09b0", "TW": "\u09a4\u09be\u0987\u0993\u09af\u09bc\u09be\u09a8", "TJ": "\u09a4\u09be\u099c\u09bf\u0995\u09bf\u09b8\u09cd\u09a4\u09be\u09a8", "TZ": "\u09a4\u09be\u099e\u09cd\u099c\u09be\u09a8\u09bf\u09af\u09bc\u09be", "TN": "\u09a4\u09bf\u0989\u09a8\u09bf\u09b8\u09bf\u09af\u09bc\u09be", "TL": "\u09a4\u09bf\u09ae\u09c1\u09b0-\u09b2\u09c7\u09b8\u09cd\u09a4\u09c7", "TR": "\u09a4\u09c1\u09b0\u09b8\u09cd\u0995", "TM": "\u09a4\u09c1\u09b0\u09cd\u0995\u09ae\u09c7\u09a8\u09bf\u09b8\u09cd\u09a4\u09be\u09a8", "TC": "\u09a4\u09c1\u09b0\u09cd\u0995\u09b8 \u0993 \u0995\u09be\u0987\u0995\u09cb\u09b8 \u09a6\u09cd\u09ac\u09c0\u09aa\u09aa\u09c1\u099e\u09cd\u099c", "TT": "\u09a4\u09cd\u09b0\u09bf\u09a8\u09bf\u09a8\u09be\u09a6 \u0993 \u099f\u09cb\u09ac\u09cd\u09af\u09be\u0997\u09cb", "TH": "\u09a5\u09be\u0987\u09b2\u09cd\u09af\u09be\u09a8\u09cd\u09a1", "ZA": "\u09a6\u0995\u09cd\u09b7\u09bf\u09a3 \u0986\u09ab\u09cd\u09b0\u09bf\u0995\u09be", "KR": "\u09a6\u0995\u09cd\u09b7\u09bf\u09a3 \u0995\u09cb\u09b0\u09bf\u09af\u09bc\u09be", "GS": "\u09a6\u0995\u09cd\u09b7\u09bf\u09a3 \u099c\u09b0\u09cd\u099c\u09bf\u09af\u09bc\u09be \u0993 \u09a6\u0995\u09cd\u09b7\u09bf\u09a3 \u09b8\u09cd\u09af\u09be\u09a8\u09cd\u09a1\u0989\u0987\u099a \u09a6\u09cd\u09ac\u09c0\u09aa\u09aa\u09c1\u099e\u09cd\u099c", "SS": "\u09a6\u0995\u09cd\u09b7\u09bf\u09a3 \u09b8\u09c1\u09a6\u09be\u09a8", "NO": "\u09a8\u09b0\u0993\u09af\u09bc\u09c7", "NF": "\u09a8\u09b0\u09ab\u09cb\u0995 \u09a6\u09cd\u09ac\u09c0\u09aa", "NE": "\u09a8\u09be\u0987\u099c\u09be\u09b0", "NG": "\u09a8\u09be\u0987\u099c\u09c7\u09b0\u09bf\u09af\u09bc\u09be", "NR": "\u09a8\u09be\u0989\u09b0\u09c1", "NA": "\u09a8\u09be\u09ae\u09bf\u09ac\u09bf\u09af\u09bc\u09be", "NC": "\u09a8\u09bf\u0989 \u0995\u09cd\u09af\u09be\u09b2\u09c7\u09a1\u09cb\u09a8\u09bf\u09af\u09bc\u09be", "NZ": "\u09a8\u09bf\u0989\u099c\u09bf\u09b2\u09cd\u09af\u09be\u09a8\u09cd\u09a1", "NU": "\u09a8\u09bf\u0989\u09af\u09bc\u09c7", "NI": "\u09a8\u09bf\u0995\u09be\u09b0\u09be\u0997\u09c1\u09af\u09bc\u09be", "GQ": "\u09a8\u09bf\u09b0\u0995\u09cd\u09b7\u09c0\u09af\u09bc \u0997\u09bf\u09a8\u09bf", "NL": "\u09a8\u09c7\u09a6\u09be\u09b0\u09b2\u09cd\u09af\u09be\u09a8\u09cd\u09a1\u09b8", "NP": "\u09a8\u09c7\u09aa\u09be\u09b2", "PT": "\u09aa\u09b0\u09cd\u09a4\u09c1\u0997\u09be\u09b2", "EH": "\u09aa\u09b6\u09cd\u099a\u09bf\u09ae \u09b8\u09be\u09b9\u09be\u09b0\u09be", "PK": "\u09aa\u09be\u0995\u09bf\u09b8\u09cd\u09a4\u09be\u09a8", "PA": "\u09aa\u09be\u09a8\u09be\u09ae\u09be", "PG": "\u09aa\u09be\u09aa\u09c1\u09af\u09bc\u09be \u09a8\u09bf\u0989 \u0997\u09bf\u09a8\u09bf", "PW": "\u09aa\u09be\u09b2\u09be\u0989", "PN": "\u09aa\u09bf\u099f\u0995\u09c7\u09af\u09bc\u09be\u09b0\u09cd\u09a8 \u09a6\u09cd\u09ac\u09c0\u09aa\u09aa\u09c1\u099e\u09cd\u099c", "PR": "\u09aa\u09c1\u09af\u09bc\u09c7\u09b0\u09cd\u09a4\u09cb \u09b0\u09bf\u0995\u09cb", "PE": "\u09aa\u09c7\u09b0\u09c1", "PL": "\u09aa\u09cb\u09b2\u09cd\u09af\u09be\u09a8\u09cd\u09a1", "PY": "\u09aa\u09cd\u09af\u09be\u09b0\u09be\u0997\u09c1\u09af\u09bc\u09c7", "PS": "\u09aa\u09cd\u09af\u09be\u09b2\u09c7\u09b8\u09cd\u099f\u09be\u0987\u09a8\u09c7\u09b0 \u0985\u099e\u09cd\u099a\u09b2\u09b8\u09ae\u09c2\u09b9", "FK": "\u09ab\u0995\u09b2\u09cd\u09af\u09be\u09a8\u09cd\u09a1 \u09a6\u09cd\u09ac\u09c0\u09aa\u09aa\u09c1\u099e\u09cd\u099c", "GF": "\u09ab\u09b0\u09be\u09b8\u09c0 \u0997\u09be\u09af\u09bc\u09be\u09a8\u09be", "TF": "\u09ab\u09b0\u09be\u09b8\u09c0 \u09a6\u0995\u09cd\u09b7\u09bf\u09a3\u09be\u099e\u09cd\u099a\u09b2", "PF": "\u09ab\u09b0\u09be\u09b8\u09c0 \u09aa\u09b2\u09bf\u09a8\u09c7\u09b6\u09bf\u09af\u09bc\u09be", "FJ": "\u09ab\u09bf\u099c\u09bf", "FI": "\u09ab\u09bf\u09a8\u09b2\u09cd\u09af\u09be\u09a8\u09cd\u09a1", "PH": "\u09ab\u09bf\u09b2\u09bf\u09aa\u09be\u0987\u09a8", "FO": "\u09ab\u09cd\u09af\u09be\u09b0\u0993 \u09a6\u09cd\u09ac\u09c0\u09aa\u09aa\u09c1\u099e\u09cd\u099c", "FR": "\u09ab\u09cd\u09b0\u09be\u09a8\u09cd\u09b8", "BW": "\u09ac\u09a4\u09b8\u09cb\u09af\u09bc\u09be\u09a8\u09be", "BO": "\u09ac\u09b2\u09bf\u09ad\u09bf\u09af\u09bc\u09be", "BA": "\u09ac\u09b8\u09a8\u09bf\u09af\u09bc\u09be \u0993 \u09b9\u09be\u09b0\u09cd\u099c\u09c7\u0997\u09cb\u09ad\u09bf\u09a8\u09be", "BD": "\u09ac\u09be\u0982\u09b2\u09be\u09a6\u09c7\u09b6", "BB": "\u09ac\u09be\u09b0\u09ac\u09be\u09a6\u09cb\u09b8", "BM": "\u09ac\u09be\u09b0\u09ae\u09c1\u09a1\u09be", "BH": "\u09ac\u09be\u09b9\u09b0\u09be\u0987\u09a8", "BS": "\u09ac\u09be\u09b9\u09be\u09ae\u09be \u09a6\u09cd\u09ac\u09c0\u09aa\u09aa\u09c1\u099e\u09cd\u099c", "BF": "\u09ac\u09c1\u09b0\u0995\u09bf\u09a8\u09be \u09ab\u09be\u09b8\u09cb", "BI": "\u09ac\u09c1\u09b0\u09c1\u09a8\u09cd\u09a1\u09bf", "BG": "\u09ac\u09c1\u09b2\u0997\u09c7\u09b0\u09bf\u09af\u09bc\u09be", "BJ": "\u09ac\u09c7\u09a8\u09bf\u09a8", "BE": "\u09ac\u09c7\u09b2\u099c\u09bf\u09af\u09bc\u09be\u09ae", "BY": "\u09ac\u09c7\u09b2\u09be\u09b0\u09c1\u09b6", "BZ": "\u09ac\u09c7\u09b2\u09bf\u099c", "BV": "\u09ac\u09cb\u09ad\u09c7\u099f \u09a6\u09cd\u09ac\u09c0\u09aa", "BR": "\u09ac\u09cd\u09b0\u09be\u099c\u09bf\u09b2", "IO": "\u09ac\u09cd\u09b0\u09bf\u099f\u09bf\u09b6 \u09ad\u09be\u09b0\u09a4 \u09ae\u09b9\u09be\u09b8\u09be\u0997\u09b0\u09c0\u09af\u09bc \u0985\u099e\u09cd\u099a\u09b2", "VG": "\u09ac\u09cd\u09b0\u09bf\u099f\u09bf\u09b6 \u09ad\u09be\u09b0\u09cd\u099c\u09bf\u09a8 \u09a6\u09cd\u09ac\u09c0\u09aa\u09aa\u09c1\u099e\u09cd\u099c", "BN": "\u09ac\u09cd\u09b0\u09c1\u09a8\u09c7\u0987", "VU": "\u09ad\u09be\u09a8\u09c1\u09af\u09bc\u09be\u099f\u09c1", "IN": "\u09ad\u09be\u09b0\u09a4", "VN": "\u09ad\u09bf\u09af\u09bc\u09c7\u09a4\u09a8\u09be\u09ae", "BT": "\u09ad\u09c1\u099f\u09be\u09a8", "VE": "\u09ad\u09c7\u09a8\u09c7\u099c\u09c1\u09af\u09bc\u09c7\u09b2\u09be", "VA": "\u09ad\u09cd\u09af\u09be\u099f\u09bf\u0995\u09be\u09a8 \u09b8\u09bf\u099f\u09bf", "MN": "\u09ae\u0999\u09cd\u0997\u09cb\u09b2\u09bf\u09af\u09bc\u09be", "CF": "\u09ae\u09a7\u09cd\u09af \u0986\u09ab\u09cd\u09b0\u09bf\u0995\u09be\u09b0 \u09aa\u09cd\u09b0\u099c\u09be\u09a4\u09a8\u09cd\u09a4\u09cd\u09b0", "MS": "\u09ae\u09a8\u09cd\u099f\u09b8\u09c7\u09b0\u09be\u099f", "ME": "\u09ae\u09a8\u09cd\u099f\u09bf\u09a8\u09bf\u0997\u09cd\u09b0\u09cb", "MR": "\u09ae\u09b0\u09bf\u09a4\u09be\u09a8\u09bf\u09af\u09bc\u09be", "MU": "\u09ae\u09b0\u09bf\u09b6\u09be\u09b8", "MD": "\u09ae\u09b2\u09a1\u09cb\u09ad\u09be", "FM": "\u09ae\u09be\u0987\u0995\u09cd\u09b0\u09cb\u09a8\u09c7\u09b6\u09bf\u09af\u09bc\u09be", "MG": "\u09ae\u09be\u09a6\u09be\u0997\u09be\u09b8\u09cd\u0995\u09be\u09b0", "MM": "\u09ae\u09be\u09af\u09bc\u09be\u09a8\u09ae\u09be\u09b0 (\u09ac\u09be\u09b0\u09cd\u09ae\u09be)", "YT": "\u09ae\u09be\u09af\u09bc\u09cb\u09a4\u09cd\u09a4\u09c7", "US": "\u09ae\u09be\u09b0\u09cd\u0995\u09bf\u09a8 \u09af\u09c1\u0995\u09cd\u09a4\u09b0\u09be\u09b7\u09cd\u099f\u09cd\u09b0", "VI": "\u09ae\u09be\u09b0\u09cd\u0995\u09bf\u09a8 \u09af\u09c1\u0995\u09cd\u09a4\u09b0\u09be\u09b7\u09cd\u099f\u09cd\u09b0\u09c7\u09b0 \u09ad\u09be\u09b0\u09cd\u099c\u09bf\u09a8 \u09a6\u09cd\u09ac\u09c0\u09aa\u09aa\u09c1\u099e\u09cd\u099c", "MQ": "\u09ae\u09be\u09b0\u09cd\u099f\u09bf\u09a8\u09bf\u0995", "MH": "\u09ae\u09be\u09b0\u09cd\u09b6\u09be\u09b2 \u09a6\u09cd\u09ac\u09c0\u09aa\u09aa\u09c1\u099e\u09cd\u099c", "MV": "\u09ae\u09be\u09b2\u09a6\u09cd\u09ac\u09c0\u09aa", "MY": "\u09ae\u09be\u09b2\u09af\u09bc\u09c7\u09b6\u09bf\u09af\u09bc\u09be", "MW": "\u09ae\u09be\u09b2\u09be\u0989\u0987", "ML": "\u09ae\u09be\u09b2\u09bf", "MT": "\u09ae\u09be\u09b2\u09cd\u099f\u09be", "EG": "\u09ae\u09bf\u09b6\u09b0", "MX": "\u09ae\u09c7\u0995\u09cd\u09b8\u09bf\u0995\u09cb", "MZ": "\u09ae\u09cb\u099c\u09be\u09ae\u09cd\u09ac\u09bf\u0995", "MC": "\u09ae\u09cb\u09a8\u09be\u0995\u09cb", "MA": "\u09ae\u09cb\u09b0\u0995\u09cd\u0995\u09cb", "MO": "\u09ae\u09cd\u09af\u09be\u0995\u09be\u0993 \u098f\u09b8\u098f\u0986\u09b0 \u099a\u09c0\u09a8\u09be", "GB": "\u09af\u09c1\u0995\u09cd\u09a4\u09b0\u09be\u099c\u09cd\u09af", "UM": "\u09af\u09c1\u0995\u09cd\u09a4\u09b0\u09be\u09b7\u09cd\u099f\u09cd\u09b0\u09c7\u09b0 \u09aa\u09be\u09b0\u09cd\u09b6\u09cd\u09ac\u09ac\u09b0\u09cd\u09a4\u09c0 \u09a6\u09cd\u09ac\u09c0\u09aa\u09aa\u09c1\u099e\u09cd\u099c", "RU": "\u09b0\u09be\u09b6\u09bf\u09af\u09bc\u09be", "RE": "\u09b0\u09bf\u0987\u0989\u09a8\u09bf\u09af\u09bc\u09a8", "RW": "\u09b0\u09c1\u09af\u09bc\u09be\u09a8\u09cd\u09a1\u09be", "RO": "\u09b0\u09cb\u09ae\u09be\u09a8\u09bf\u09af\u09bc\u09be", "LR": "\u09b2\u09be\u0987\u09ac\u09c7\u09b0\u09bf\u09af\u09bc\u09be", "LA": "\u09b2\u09be\u0993\u09b8", "LU": "\u09b2\u09be\u0995\u09cd\u09b8\u09c7\u09ae\u09ac\u09be\u09b0\u09cd\u0997", "LV": "\u09b2\u09be\u09a4\u09cd\u09ad\u09bf\u09af\u09bc\u09be", "LI": "\u09b2\u09bf\u099a\u09c7\u09a8\u09b8\u09cd\u099f\u09c7\u0987\u09a8", "LT": "\u09b2\u09bf\u09a5\u09c1\u09af\u09bc\u09be\u09a8\u09bf\u09af\u09bc\u09be", "LY": "\u09b2\u09bf\u09ac\u09bf\u09af\u09bc\u09be", "LB": "\u09b2\u09c7\u09ac\u09be\u09a8\u09a8", "LS": "\u09b2\u09c7\u09b8\u09cb\u09a5\u09cb", "LK": "\u09b6\u09cd\u09b0\u09c0\u09b2\u0999\u09cd\u0995\u09be", "AE": "\u09b8\u0982\u09af\u09c1\u0995\u09cd\u09a4 \u0986\u09b0\u09ac \u0986\u09ae\u09bf\u09b0\u09be\u09a4", "SB": "\u09b8\u09b2\u09cb\u09ae\u09a8 \u09a6\u09cd\u09ac\u09c0\u09aa\u09aa\u09c1\u099e\u09cd\u099c", "CY": "\u09b8\u09be\u0987\u09aa\u09cd\u09b0\u09be\u09b8", "ST": "\u09b8\u09be\u0993\u099f\u09cb\u09ae\u09be \u0993 \u09aa\u09cd\u09b0\u09bf\u09a8\u09cd\u09b8\u09bf\u09aa\u09bf", "SM": "\u09b8\u09be\u09a8 \u09ae\u09be\u09b0\u09bf\u09a8\u09cb", "WS": "\u09b8\u09be\u09ae\u09cb\u09af\u09bc\u09be", "RS": "\u09b8\u09be\u09b0\u09cd\u09ac\u09bf\u09af\u09bc\u09be", "SG": "\u09b8\u09bf\u0999\u09cd\u0997\u09be\u09aa\u09c1\u09b0", "SX": "\u09b8\u09bf\u09a8\u09cd\u099f \u09ae\u09be\u09b0\u09cd\u099f\u09c7\u09a8", "SL": "\u09b8\u09bf\u09af\u09bc\u09c7\u09b0\u09be \u09b2\u09bf\u0993\u09a8", "SY": "\u09b8\u09bf\u09b0\u09bf\u09af\u09bc\u09be", "SC": "\u09b8\u09bf\u09b8\u09bf\u09b2\u09bf", "CH": "\u09b8\u09c1\u0987\u099c\u09be\u09b0\u09b2\u09cd\u09af\u09be\u09a8\u09cd\u09a1", "SE": "\u09b8\u09c1\u0987\u09a1\u09c7\u09a8", "SD": "\u09b8\u09c1\u09a6\u09be\u09a8", "SR": "\u09b8\u09c1\u09b0\u09bf\u09a8\u09be\u09ae", "SN": "\u09b8\u09c7\u09a8\u09c7\u0997\u09be\u09b2", "KN": "\u09b8\u09c7\u09a8\u09cd\u099f \u0995\u09bf\u099f\u09b8 \u0993 \u09a8\u09c7\u09ad\u09bf\u09b8", "PM": "\u09b8\u09c7\u09a8\u09cd\u099f \u09aa\u09bf\u09af\u09bc\u09c7\u09b0 \u0993 \u09ae\u09bf\u0995\u09c1\u09af\u09bc\u09c7\u09b2\u09a8", "BL": "\u09b8\u09c7\u09a8\u09cd\u099f \u09ac\u09be\u09b0\u09a5\u09c7\u09b2\u09bf\u09ae\u09bf", "VC": "\u09b8\u09c7\u09a8\u09cd\u099f \u09ad\u09bf\u09a8\u09b8\u09c7\u09a8\u09cd\u099f \u0993 \u0997\u09cd\u09b0\u09c7\u09a8\u09be\u09a1\u09bf\u09a8\u09b8", "MF": "\u09b8\u09c7\u09a8\u09cd\u099f \u09ae\u09be\u09b0\u09cd\u099f\u09bf\u09a8", "LC": "\u09b8\u09c7\u09a8\u09cd\u099f \u09b2\u09c1\u09b8\u09bf\u09af\u09bc\u09be", "SH": "\u09b8\u09c7\u09a8\u09cd\u099f \u09b9\u09c7\u09b2\u09c7\u09a8\u09be", "SO": "\u09b8\u09cb\u09ae\u09be\u09b2\u09bf\u09af\u09bc\u09be", "SA": "\u09b8\u09cc\u09a6\u09bf \u0986\u09b0\u09ac", "ES": "\u09b8\u09cd\u09aa\u09c7\u09a8", "SJ": "\u09b8\u09cd\u09ac\u09be\u09b2\u09ac\u09be\u09b0\u09cd\u09a1 \u0993 \u099c\u09be\u09a8 \u09ae\u09c7\u09af\u09bc\u09c7\u09a8", "SK": "\u09b8\u09cd\u09b2\u09cb\u09ad\u09be\u0995\u09bf\u09af\u09bc\u09be", "SI": "\u09b8\u09cd\u09b2\u09cb\u09ad\u09be\u09a8\u09bf\u09af\u09bc\u09be", "HK": "\u09b9\u0982\u0995\u0982 \u098f\u09b8\u098f\u0986\u09b0 \u099a\u09c0\u09a8\u09be", "HN": "\u09b9\u09a8\u09cd\u09a1\u09c1\u09b0\u09be\u09b8", "HT": "\u09b9\u09be\u0987\u09a4\u09bf", "HU": "\u09b9\u09be\u0999\u09cd\u0997\u09c7\u09b0\u09bf", "HM": "\u09b9\u09be\u09b0\u09cd\u09a1 \u098f\u09ac\u0982 \u09ae\u09cd\u09af\u09be\u0995\u09a1\u09cb\u09a8\u09be\u09b2\u09cd\u09a1 \u09a6\u09cd\u09ac\u09c0\u09aa\u09aa\u09c1\u099e\u09cd\u099c"} \ No newline at end of file diff --git a/desktop/src/onionshare/resources/countries/de.json b/desktop/src/onionshare/resources/countries/de.json new file mode 100644 index 00000000..a9233848 --- /dev/null +++ b/desktop/src/onionshare/resources/countries/de.json @@ -0,0 +1 @@ +{"AF": "Afghanistan", "EG": "\u00c4gypten", "AX": "\u00c5landinseln", "AL": "Albanien", "DZ": "Algerien", "AS": "Amerikanisch-Samoa", "VI": "Amerikanische Jungferninseln", "UM": "Amerikanische \u00dcberseeinseln", "AD": "Andorra", "AO": "Angola", "AI": "Anguilla", "AQ": "Antarktis", "AG": "Antigua und Barbuda", "GQ": "\u00c4quatorialguinea", "AR": "Argentinien", "AM": "Armenien", "AW": "Aruba", "AZ": "Aserbaidschan", "ET": "\u00c4thiopien", "AU": "Australien", "BS": "Bahamas", "BH": "Bahrain", "BD": "Bangladesch", "BB": "Barbados", "BY": "Belarus", "BE": "Belgien", "BZ": "Belize", "BJ": "Benin", "BM": "Bermuda", "BT": "Bhutan", "BO": "Bolivien", "BQ": "Bonaire, Sint Eustatius und Saba", "BA": "Bosnien und Herzegowina", "BW": "Botsuana", "BV": "Bouvetinsel", "BR": "Brasilien", "VG": "Britische Jungferninseln", "IO": "Britisches Territorium im Indischen Ozean", "BN": "Brunei Darussalam", "BG": "Bulgarien", "BF": "Burkina Faso", "BI": "Burundi", "CV": "Cabo Verde", "CL": "Chile", "CN": "China", "CK": "Cookinseln", "CR": "Costa Rica", "CI": "C\u00f4te d\u2019Ivoire", "CW": "Cura\u00e7ao", "DK": "D\u00e4nemark", "DE": "Deutschland", "DM": "Dominica", "DO": "Dominikanische Republik", "DJ": "Dschibuti", "EC": "Ecuador", "SV": "El Salvador", "ER": "Eritrea", "EE": "Estland", "SZ": "Eswatini", "FK": "Falklandinseln", "FO": "F\u00e4r\u00f6er", "FJ": "Fidschi", "FI": "Finnland", "FR": "Frankreich", "GF": "Franz\u00f6sisch-Guayana", "PF": "Franz\u00f6sisch-Polynesien", "TF": "Franz\u00f6sische S\u00fcd- und Antarktisgebiete", "GA": "Gabun", "GM": "Gambia", "GE": "Georgien", "GH": "Ghana", "GI": "Gibraltar", "GD": "Grenada", "GR": "Griechenland", "GL": "Gr\u00f6nland", "GP": "Guadeloupe", "GU": "Guam", "GT": "Guatemala", "GG": "Guernsey", "GN": "Guinea", "GW": "Guinea-Bissau", "GY": "Guyana", "HT": "Haiti", "HM": "Heard und McDonaldinseln", "HN": "Honduras", "IN": "Indien", "ID": "Indonesien", "IQ": "Irak", "IR": "Iran", "IE": "Irland", "IS": "Island", "IM": "Isle of Man", "IL": "Israel", "IT": "Italien", "JM": "Jamaika", "JP": "Japan", "YE": "Jemen", "JE": "Jersey", "JO": "Jordanien", "KY": "Kaimaninseln", "KH": "Kambodscha", "CM": "Kamerun", "CA": "Kanada", "KZ": "Kasachstan", "QA": "Katar", "KE": "Kenia", "KG": "Kirgisistan", "KI": "Kiribati", "CC": "Kokosinseln", "CO": "Kolumbien", "KM": "Komoren", "CG": "Kongo-Brazzaville", "CD": "Kongo-Kinshasa", "HR": "Kroatien", "CU": "Kuba", "KW": "Kuwait", "LA": "Laos", "LS": "Lesotho", "LV": "Lettland", "LB": "Libanon", "LR": "Liberia", "LY": "Libyen", "LI": "Liechtenstein", "LT": "Litauen", "LU": "Luxemburg", "MG": "Madagaskar", "MW": "Malawi", "MY": "Malaysia", "MV": "Malediven", "ML": "Mali", "MT": "Malta", "MA": "Marokko", "MH": "Marshallinseln", "MQ": "Martinique", "MR": "Mauretanien", "MU": "Mauritius", "YT": "Mayotte", "MX": "Mexiko", "FM": "Mikronesien", "MC": "Monaco", "MN": "Mongolei", "ME": "Montenegro", "MS": "Montserrat", "MZ": "Mosambik", "MM": "Myanmar", "NA": "Namibia", "NR": "Nauru", "NP": "Nepal", "NC": "Neukaledonien", "NZ": "Neuseeland", "NI": "Nicaragua", "NL": "Niederlande", "NE": "Niger", "NG": "Nigeria", "NU": "Niue", "KP": "Nordkorea", "MP": "N\u00f6rdliche Marianen", "MK": "Nordmazedonien", "NF": "Norfolkinsel", "NO": "Norwegen", "OM": "Oman", "AT": "\u00d6sterreich", "PK": "Pakistan", "PS": "Pal\u00e4stinensische Autonomiegebiete", "PW": "Palau", "PA": "Panama", "PG": "Papua-Neuguinea", "PY": "Paraguay", "PE": "Peru", "PH": "Philippinen", "PN": "Pitcairninseln", "PL": "Polen", "PT": "Portugal", "PR": "Puerto Rico", "MD": "Republik Moldau", "RE": "R\u00e9union", "RW": "Ruanda", "RO": "Rum\u00e4nien", "RU": "Russland", "SB": "Salomonen", "ZM": "Sambia", "WS": "Samoa", "SM": "San Marino", "ST": "S\u00e3o Tom\u00e9 und Pr\u00edncipe", "SA": "Saudi-Arabien", "SE": "Schweden", "CH": "Schweiz", "SN": "Senegal", "RS": "Serbien", "SC": "Seychellen", "SL": "Sierra Leone", "ZW": "Simbabwe", "SG": "Singapur", "SX": "Sint Maarten", "SK": "Slowakei", "SI": "Slowenien", "SO": "Somalia", "HK": "Sonderverwaltungsregion Hongkong", "MO": "Sonderverwaltungsregion Macau", "ES": "Spanien", "SJ": "Spitzbergen und Jan Mayen", "LK": "Sri Lanka", "BL": "St. Barth\u00e9lemy", "SH": "St. Helena", "KN": "St. Kitts und Nevis", "LC": "St. Lucia", "MF": "St. Martin", "PM": "St. Pierre und Miquelon", "VC": "St. Vincent und die Grenadinen", "ZA": "S\u00fcdafrika", "SD": "Sudan", "GS": "S\u00fcdgeorgien und die S\u00fcdlichen Sandwichinseln", "KR": "S\u00fcdkorea", "SS": "S\u00fcdsudan", "SR": "Suriname", "SY": "Syrien", "TJ": "Tadschikistan", "TW": "Taiwan", "TZ": "Tansania", "TH": "Thailand", "TL": "Timor-Leste", "TG": "Togo", "TK": "Tokelau", "TO": "Tonga", "TT": "Trinidad und Tobago", "TD": "Tschad", "CZ": "Tschechien", "TN": "Tunesien", "TR": "T\u00fcrkei", "TM": "Turkmenistan", "TC": "Turks- und Caicosinseln", "TV": "Tuvalu", "UG": "Uganda", "UA": "Ukraine", "HU": "Ungarn", "UY": "Uruguay", "UZ": "Usbekistan", "VU": "Vanuatu", "VA": "Vatikanstadt", "VE": "Venezuela", "AE": "Vereinigte Arabische Emirate", "US": "Vereinigte Staaten", "GB": "Vereinigtes K\u00f6nigreich", "VN": "Vietnam", "WF": "Wallis und Futuna", "CX": "Weihnachtsinsel", "EH": "Westsahara", "CF": "Zentralafrikanische Republik", "CY": "Zypern"} \ No newline at end of file diff --git a/desktop/src/onionshare/resources/countries/en.json b/desktop/src/onionshare/resources/countries/en.json new file mode 100644 index 00000000..04819d56 --- /dev/null +++ b/desktop/src/onionshare/resources/countries/en.json @@ -0,0 +1 @@ +{"AF": "Afghanistan", "AX": "\u00c5land Islands", "AL": "Albania", "DZ": "Algeria", "AS": "American Samoa", "AD": "Andorra", "AO": "Angola", "AI": "Anguilla", "AQ": "Antarctica", "AG": "Antigua & Barbuda", "AR": "Argentina", "AM": "Armenia", "AW": "Aruba", "AU": "Australia", "AT": "Austria", "AZ": "Azerbaijan", "BS": "Bahamas", "BH": "Bahrain", "BD": "Bangladesh", "BB": "Barbados", "BY": "Belarus", "BE": "Belgium", "BZ": "Belize", "BJ": "Benin", "BM": "Bermuda", "BT": "Bhutan", "BO": "Bolivia", "BA": "Bosnia & Herzegovina", "BW": "Botswana", "BV": "Bouvet Island", "BR": "Brazil", "IO": "British Indian Ocean Territory", "VG": "British Virgin Islands", "BN": "Brunei", "BG": "Bulgaria", "BF": "Burkina Faso", "BI": "Burundi", "KH": "Cambodia", "CM": "Cameroon", "CA": "Canada", "CV": "Cape Verde", "BQ": "Caribbean Netherlands", "KY": "Cayman Islands", "CF": "Central African Republic", "TD": "Chad", "CL": "Chile", "CN": "China", "CX": "Christmas Island", "CC": "Cocos (Keeling) Islands", "CO": "Colombia", "KM": "Comoros", "CG": "Congo - Brazzaville", "CD": "Congo - Kinshasa", "CK": "Cook Islands", "CR": "Costa Rica", "CI": "C\u00f4te d\u2019Ivoire", "HR": "Croatia", "CU": "Cuba", "CW": "Cura\u00e7ao", "CY": "Cyprus", "CZ": "Czechia", "DK": "Denmark", "DJ": "Djibouti", "DM": "Dominica", "DO": "Dominican Republic", "EC": "Ecuador", "EG": "Egypt", "SV": "El Salvador", "GQ": "Equatorial Guinea", "ER": "Eritrea", "EE": "Estonia", "SZ": "Eswatini", "ET": "Ethiopia", "FK": "Falkland Islands", "FO": "Faroe Islands", "FJ": "Fiji", "FI": "Finland", "FR": "France", "GF": "French Guiana", "PF": "French Polynesia", "TF": "French Southern Territories", "GA": "Gabon", "GM": "Gambia", "GE": "Georgia", "DE": "Germany", "GH": "Ghana", "GI": "Gibraltar", "GR": "Greece", "GL": "Greenland", "GD": "Grenada", "GP": "Guadeloupe", "GU": "Guam", "GT": "Guatemala", "GG": "Guernsey", "GN": "Guinea", "GW": "Guinea-Bissau", "GY": "Guyana", "HT": "Haiti", "HM": "Heard & McDonald Islands", "HN": "Honduras", "HK": "Hong Kong SAR China", "HU": "Hungary", "IS": "Iceland", "IN": "India", "ID": "Indonesia", "IR": "Iran", "IQ": "Iraq", "IE": "Ireland", "IM": "Isle of Man", "IL": "Israel", "IT": "Italy", "JM": "Jamaica", "JP": "Japan", "JE": "Jersey", "JO": "Jordan", "KZ": "Kazakhstan", "KE": "Kenya", "KI": "Kiribati", "KW": "Kuwait", "KG": "Kyrgyzstan", "LA": "Laos", "LV": "Latvia", "LB": "Lebanon", "LS": "Lesotho", "LR": "Liberia", "LY": "Libya", "LI": "Liechtenstein", "LT": "Lithuania", "LU": "Luxembourg", "MO": "Macao SAR China", "MG": "Madagascar", "MW": "Malawi", "MY": "Malaysia", "MV": "Maldives", "ML": "Mali", "MT": "Malta", "MH": "Marshall Islands", "MQ": "Martinique", "MR": "Mauritania", "MU": "Mauritius", "YT": "Mayotte", "MX": "Mexico", "FM": "Micronesia", "MD": "Moldova", "MC": "Monaco", "MN": "Mongolia", "ME": "Montenegro", "MS": "Montserrat", "MA": "Morocco", "MZ": "Mozambique", "MM": "Myanmar (Burma)", "NA": "Namibia", "NR": "Nauru", "NP": "Nepal", "NL": "Netherlands", "NC": "New Caledonia", "NZ": "New Zealand", "NI": "Nicaragua", "NE": "Niger", "NG": "Nigeria", "NU": "Niue", "NF": "Norfolk Island", "KP": "North Korea", "MK": "North Macedonia", "MP": "Northern Mariana Islands", "NO": "Norway", "OM": "Oman", "PK": "Pakistan", "PW": "Palau", "PS": "Palestinian Territories", "PA": "Panama", "PG": "Papua New Guinea", "PY": "Paraguay", "PE": "Peru", "PH": "Philippines", "PN": "Pitcairn Islands", "PL": "Poland", "PT": "Portugal", "PR": "Puerto Rico", "QA": "Qatar", "RE": "R\u00e9union", "RO": "Romania", "RU": "Russia", "RW": "Rwanda", "WS": "Samoa", "SM": "San Marino", "ST": "S\u00e3o Tom\u00e9 & Pr\u00edncipe", "SA": "Saudi Arabia", "SN": "Senegal", "RS": "Serbia", "SC": "Seychelles", "SL": "Sierra Leone", "SG": "Singapore", "SX": "Sint Maarten", "SK": "Slovakia", "SI": "Slovenia", "SB": "Solomon Islands", "SO": "Somalia", "ZA": "South Africa", "GS": "South Georgia & South Sandwich Islands", "KR": "South Korea", "SS": "South Sudan", "ES": "Spain", "LK": "Sri Lanka", "BL": "St. Barth\u00e9lemy", "SH": "St. Helena", "KN": "St. Kitts & Nevis", "LC": "St. Lucia", "MF": "St. Martin", "PM": "St. Pierre & Miquelon", "VC": "St. Vincent & Grenadines", "SD": "Sudan", "SR": "Suriname", "SJ": "Svalbard & Jan Mayen", "SE": "Sweden", "CH": "Switzerland", "SY": "Syria", "TW": "Taiwan", "TJ": "Tajikistan", "TZ": "Tanzania", "TH": "Thailand", "TL": "Timor-Leste", "TG": "Togo", "TK": "Tokelau", "TO": "Tonga", "TT": "Trinidad & Tobago", "TN": "Tunisia", "TR": "Turkey", "TM": "Turkmenistan", "TC": "Turks & Caicos Islands", "TV": "Tuvalu", "UM": "U.S. Outlying Islands", "VI": "U.S. Virgin Islands", "UG": "Uganda", "UA": "Ukraine", "AE": "United Arab Emirates", "GB": "United Kingdom", "US": "United States", "UY": "Uruguay", "UZ": "Uzbekistan", "VU": "Vanuatu", "VA": "Vatican City", "VE": "Venezuela", "VN": "Vietnam", "WF": "Wallis & Futuna", "EH": "Western Sahara", "YE": "Yemen", "ZM": "Zambia", "ZW": "Zimbabwe"} \ No newline at end of file diff --git a/desktop/src/onionshare/resources/countries/es.json b/desktop/src/onionshare/resources/countries/es.json new file mode 100644 index 00000000..c5e30bc9 --- /dev/null +++ b/desktop/src/onionshare/resources/countries/es.json @@ -0,0 +1 @@ +{"AF": "Afganist\u00e1n", "AL": "Albania", "DE": "Alemania", "AD": "Andorra", "AO": "Angola", "AI": "Anguila", "AQ": "Ant\u00e1rtida", "AG": "Antigua y Barbuda", "SA": "Arabia Saud\u00ed", "DZ": "Argelia", "AR": "Argentina", "AM": "Armenia", "AW": "Aruba", "AU": "Australia", "AT": "Austria", "AZ": "Azerbaiy\u00e1n", "BS": "Bahamas", "BD": "Banglad\u00e9s", "BB": "Barbados", "BH": "Bar\u00e9in", "BE": "B\u00e9lgica", "BZ": "Belice", "BJ": "Ben\u00edn", "BM": "Bermudas", "BY": "Bielorrusia", "BO": "Bolivia", "BA": "Bosnia y Herzegovina", "BW": "Botsuana", "BR": "Brasil", "BN": "Brun\u00e9i", "BG": "Bulgaria", "BF": "Burkina Faso", "BI": "Burundi", "BT": "But\u00e1n", "CV": "Cabo Verde", "KH": "Camboya", "CM": "Camer\u00fan", "CA": "Canad\u00e1", "BQ": "Caribe neerland\u00e9s", "QA": "Catar", "TD": "Chad", "CZ": "Chequia", "CL": "Chile", "CN": "China", "CY": "Chipre", "VA": "Ciudad del Vaticano", "CO": "Colombia", "KM": "Comoras", "CG": "Congo", "KP": "Corea del Norte", "KR": "Corea del Sur", "CR": "Costa Rica", "CI": "C\u00f4te d\u2019Ivoire", "HR": "Croacia", "CU": "Cuba", "CW": "Curazao", "DK": "Dinamarca", "DM": "Dominica", "EC": "Ecuador", "EG": "Egipto", "SV": "El Salvador", "AE": "Emiratos \u00c1rabes Unidos", "ER": "Eritrea", "SK": "Eslovaquia", "SI": "Eslovenia", "ES": "Espa\u00f1a", "US": "Estados Unidos", "EE": "Estonia", "SZ": "Esuatini", "ET": "Etiop\u00eda", "PH": "Filipinas", "FI": "Finlandia", "FJ": "Fiyi", "FR": "Francia", "GA": "Gab\u00f3n", "GM": "Gambia", "GE": "Georgia", "GH": "Ghana", "GI": "Gibraltar", "GD": "Granada", "GR": "Grecia", "GL": "Groenlandia", "GP": "Guadalupe", "GU": "Guam", "GT": "Guatemala", "GF": "Guayana Francesa", "GG": "Guernsey", "GN": "Guinea", "GQ": "Guinea Ecuatorial", "GW": "Guinea-Bis\u00e1u", "GY": "Guyana", "HT": "Hait\u00ed", "HN": "Honduras", "HU": "Hungr\u00eda", "IN": "India", "ID": "Indonesia", "IQ": "Irak", "IR": "Ir\u00e1n", "IE": "Irlanda", "BV": "Isla Bouvet", "IM": "Isla de Man", "CX": "Isla de Navidad", "NF": "Isla Norfolk", "IS": "Islandia", "AX": "Islas \u00c5land", "KY": "Islas Caim\u00e1n", "CC": "Islas Cocos", "CK": "Islas Cook", "FO": "Islas Feroe", "GS": "Islas Georgia del Sur y Sandwich del Sur", "HM": "Islas Heard y McDonald", "FK": "Islas Malvinas", "MP": "Islas Marianas del Norte", "MH": "Islas Marshall", "UM": "Islas menores alejadas de EE. UU.", "PN": "Islas Pitcairn", "SB": "Islas Salom\u00f3n", "TC": "Islas Turcas y Caicos", "VG": "Islas V\u00edrgenes Brit\u00e1nicas", "VI": "Islas V\u00edrgenes de EE. UU.", "IL": "Israel", "IT": "Italia", "JM": "Jamaica", "JP": "Jap\u00f3n", "JE": "Jersey", "JO": "Jordania", "KZ": "Kazajist\u00e1n", "KE": "Kenia", "KG": "Kirguist\u00e1n", "KI": "Kiribati", "KW": "Kuwait", "LA": "Laos", "LS": "Lesoto", "LV": "Letonia", "LB": "L\u00edbano", "LR": "Liberia", "LY": "Libia", "LI": "Liechtenstein", "LT": "Lituania", "LU": "Luxemburgo", "MK": "Macedonia del Norte", "MG": "Madagascar", "MY": "Malasia", "MW": "Malaui", "MV": "Maldivas", "ML": "Mali", "MT": "Malta", "MA": "Marruecos", "MQ": "Martinica", "MU": "Mauricio", "MR": "Mauritania", "YT": "Mayotte", "MX": "M\u00e9xico", "FM": "Micronesia", "MD": "Moldavia", "MC": "M\u00f3naco", "MN": "Mongolia", "ME": "Montenegro", "MS": "Montserrat", "MZ": "Mozambique", "MM": "Myanmar (Birmania)", "NA": "Namibia", "NR": "Nauru", "NP": "Nepal", "NI": "Nicaragua", "NE": "N\u00edger", "NG": "Nigeria", "NU": "Niue", "NO": "Noruega", "NC": "Nueva Caledonia", "NZ": "Nueva Zelanda", "OM": "Om\u00e1n", "NL": "Pa\u00edses Bajos", "PK": "Pakist\u00e1n", "PW": "Palaos", "PA": "Panam\u00e1", "PG": "Pap\u00faa Nueva Guinea", "PY": "Paraguay", "PE": "Per\u00fa", "PF": "Polinesia Francesa", "PL": "Polonia", "PT": "Portugal", "PR": "Puerto Rico", "HK": "RAE de Hong Kong (China)", "MO": "RAE de Macao (China)", "GB": "Reino Unido", "CF": "Rep\u00fablica Centroafricana", "CD": "Rep\u00fablica Democr\u00e1tica del Congo", "DO": "Rep\u00fablica Dominicana", "RE": "Reuni\u00f3n", "RW": "Ruanda", "RO": "Ruman\u00eda", "RU": "Rusia", "EH": "S\u00e1hara Occidental", "WS": "Samoa", "AS": "Samoa Americana", "BL": "San Bartolom\u00e9", "KN": "San Crist\u00f3bal y Nieves", "SM": "San Marino", "MF": "San Mart\u00edn", "PM": "San Pedro y Miquel\u00f3n", "VC": "San Vicente y las Granadinas", "SH": "Santa Elena", "LC": "Santa Luc\u00eda", "ST": "Santo Tom\u00e9 y Pr\u00edncipe", "SN": "Senegal", "RS": "Serbia", "SC": "Seychelles", "SL": "Sierra Leona", "SG": "Singapur", "SX": "Sint Maarten", "SY": "Siria", "SO": "Somalia", "LK": "Sri Lanka", "ZA": "Sud\u00e1frica", "SD": "Sud\u00e1n", "SS": "Sud\u00e1n del Sur", "SE": "Suecia", "CH": "Suiza", "SR": "Surinam", "SJ": "Svalbard y Jan Mayen", "TH": "Tailandia", "TW": "Taiw\u00e1n", "TZ": "Tanzania", "TJ": "Tayikist\u00e1n", "IO": "Territorio Brit\u00e1nico del Oc\u00e9ano \u00cdndico", "TF": "Territorios Australes Franceses", "PS": "Territorios Palestinos", "TL": "Timor-Leste", "TG": "Togo", "TK": "Tokelau", "TO": "Tonga", "TT": "Trinidad y Tobago", "TN": "T\u00fanez", "TM": "Turkmenist\u00e1n", "TR": "Turqu\u00eda", "TV": "Tuvalu", "UA": "Ucrania", "UG": "Uganda", "UY": "Uruguay", "UZ": "Uzbekist\u00e1n", "VU": "Vanuatu", "VE": "Venezuela", "VN": "Vietnam", "WF": "Wallis y Futuna", "YE": "Yemen", "DJ": "Yibuti", "ZM": "Zambia", "ZW": "Zimbabue"} \ No newline at end of file diff --git a/desktop/src/onionshare/resources/countries/fi.json b/desktop/src/onionshare/resources/countries/fi.json new file mode 100644 index 00000000..c2fce915 --- /dev/null +++ b/desktop/src/onionshare/resources/countries/fi.json @@ -0,0 +1 @@ +{"AF": "Afganistan", "AX": "Ahvenanmaa", "NL": "Alankomaat", "AL": "Albania", "DZ": "Algeria", "AS": "Amerikan Samoa", "AD": "Andorra", "AO": "Angola", "AI": "Anguilla", "AQ": "Antarktis", "AG": "Antigua ja Barbuda", "AE": "Arabiemiirikunnat", "AR": "Argentiina", "AM": "Armenia", "AW": "Aruba", "AU": "Australia", "AZ": "Azerbaid\u017ean", "BS": "Bahama", "BH": "Bahrain", "BD": "Bangladesh", "BB": "Barbados", "BE": "Belgia", "BZ": "Belize", "BJ": "Benin", "BM": "Bermuda", "BT": "Bhutan", "BO": "Bolivia", "BA": "Bosnia ja Hertsegovina", "BW": "Botswana", "BV": "Bouvet\u2019nsaari", "BR": "Brasilia", "IO": "Brittil\u00e4inen Intian valtameren alue", "VG": "Brittil\u00e4iset Neitsytsaaret", "BN": "Brunei", "BG": "Bulgaria", "BF": "Burkina Faso", "BI": "Burundi", "KY": "Caymansaaret", "CL": "Chile", "CK": "Cookinsaaret", "CR": "Costa Rica", "CW": "Cura\u00e7ao", "DJ": "Djibouti", "DM": "Dominica", "DO": "Dominikaaninen tasavalta", "EC": "Ecuador", "EG": "Egypti", "SV": "El Salvador", "ER": "Eritrea", "ES": "Espanja", "ZA": "Etel\u00e4-Afrikka", "GS": "Etel\u00e4-Georgia ja Etel\u00e4iset Sandwichsaaret", "KR": "Etel\u00e4-Korea", "SS": "Etel\u00e4-Sudan", "ET": "Etiopia", "FK": "Falklandinsaaret", "FJ": "Fid\u017ei", "PH": "Filippiinit", "FO": "F\u00e4rsaaret", "GA": "Gabon", "GM": "Gambia", "GE": "Georgia", "GH": "Ghana", "GI": "Gibraltar", "GD": "Grenada", "GL": "Gr\u00f6nlanti", "GP": "Guadeloupe", "GU": "Guam", "GT": "Guatemala", "GG": "Guernsey", "GN": "Guinea", "GW": "Guinea-Bissau", "GY": "Guyana", "HT": "Haiti", "HM": "Heard ja McDonaldinsaaret", "HN": "Honduras", "HK": "Hongkong \u2013 Kiinan e.h.a.", "SJ": "Huippuvuoret ja Jan Mayen", "ID": "Indonesia", "IN": "Intia", "IQ": "Irak", "IR": "Iran", "IE": "Irlanti", "IS": "Islanti", "GB": "Iso-Britannia", "IL": "Israel", "IT": "Italia", "TL": "It\u00e4-Timor", "AT": "It\u00e4valta", "JM": "Jamaika", "JP": "Japani", "YE": "Jemen", "JE": "Jersey", "JO": "Jordania", "CX": "Joulusaari", "KH": "Kambod\u017ea", "CM": "Kamerun", "CA": "Kanada", "CV": "Kap Verde", "BQ": "Karibian Alankomaat", "KZ": "Kazakstan", "KE": "Kenia", "CF": "Keski-Afrikan tasavalta", "CN": "Kiina", "KG": "Kirgisia", "KI": "Kiribati", "CO": "Kolumbia", "KM": "Komorit", "CD": "Kongon demokraattinen tasavalta", "CG": "Kongon tasavalta", "CC": "Kookossaaret (Keelingsaaret)", "GR": "Kreikka", "HR": "Kroatia", "CU": "Kuuba", "KW": "Kuwait", "CY": "Kypros", "LA": "Laos", "LV": "Latvia", "LS": "Lesotho", "LB": "Libanon", "LR": "Liberia", "LY": "Libya", "LI": "Liechtenstein", "LT": "Liettua", "LU": "Luxemburg", "EH": "L\u00e4nsi-Sahara", "MO": "Macao \u2013 Kiinan e.h.a.", "MG": "Madagaskar", "MW": "Malawi", "MV": "Malediivit", "MY": "Malesia", "ML": "Mali", "MT": "Malta", "IM": "Mansaari", "MA": "Marokko", "MH": "Marshallinsaaret", "MQ": "Martinique", "MR": "Mauritania", "MU": "Mauritius", "YT": "Mayotte", "MX": "Meksiko", "FM": "Mikronesian liittovaltio", "MD": "Moldova", "MC": "Monaco", "MN": "Mongolia", "ME": "Montenegro", "MS": "Montserrat", "MZ": "Mosambik", "MM": "Myanmar (Burma)", "NA": "Namibia", "NR": "Nauru", "NP": "Nepal", "NI": "Nicaragua", "NE": "Niger", "NG": "Nigeria", "NU": "Niue", "NF": "Norfolkinsaari", "NO": "Norja", "CI": "Norsunluurannikko", "OM": "Oman", "PK": "Pakistan", "PW": "Palau", "PS": "Palestiinalaisalueet", "PA": "Panama", "PG": "Papua-Uusi-Guinea", "PY": "Paraguay", "PE": "Peru", "PN": "Pitcairn", "KP": "Pohjois-Korea", "MK": "Pohjois-Makedonia", "MP": "Pohjois-Mariaanit", "PT": "Portugali", "PR": "Puerto Rico", "PL": "Puola", "GQ": "P\u00e4iv\u00e4ntasaajan Guinea", "QA": "Qatar", "FR": "Ranska", "TF": "Ranskan etel\u00e4iset alueet", "GF": "Ranskan Guayana", "PF": "Ranskan Polynesia", "RE": "R\u00e9union", "RO": "Romania", "RW": "Ruanda", "SE": "Ruotsi", "SH": "Saint Helena", "KN": "Saint Kitts ja Nevis", "LC": "Saint Lucia", "VC": "Saint Vincent ja Grenadiinit", "BL": "Saint-Barth\u00e9lemy", "MF": "Saint-Martin", "PM": "Saint-Pierre ja Miquelon", "DE": "Saksa", "SB": "Salomonsaaret", "ZM": "Sambia", "WS": "Samoa", "SM": "San Marino", "ST": "S\u00e3o Tom\u00e9 ja Pr\u00edncipe", "SA": "Saudi-Arabia", "SN": "Senegal", "RS": "Serbia", "SC": "Seychellit", "SL": "Sierra Leone", "SG": "Singapore", "SX": "Sint Maarten", "SK": "Slovakia", "SI": "Slovenia", "SO": "Somalia", "LK": "Sri Lanka", "SD": "Sudan", "FI": "Suomi", "SR": "Suriname", "CH": "Sveitsi", "SZ": "Swazimaa", "SY": "Syyria", "TJ": "Tad\u017eikistan", "TW": "Taiwan", "TZ": "Tansania", "DK": "Tanska", "TH": "Thaimaa", "TG": "Togo", "TK": "Tokelau", "TO": "Tonga", "TT": "Trinidad ja Tobago", "TD": "T\u0161ad", "CZ": "T\u0161ekki", "TN": "Tunisia", "TR": "Turkki", "TM": "Turkmenistan", "TC": "Turks- ja Caicossaaret", "TV": "Tuvalu", "UG": "Uganda", "UA": "Ukraina", "HU": "Unkari", "UY": "Uruguay", "NC": "Uusi-Kaledonia", "NZ": "Uusi-Seelanti", "UZ": "Uzbekistan", "BY": "Valko-Ven\u00e4j\u00e4", "VU": "Vanuatu", "VA": "Vatikaani", "VE": "Venezuela", "RU": "Ven\u00e4j\u00e4", "VN": "Vietnam", "EE": "Viro", "WF": "Wallis ja Futuna", "US": "Yhdysvallat", "UM": "Yhdysvaltain erillissaaret", "VI": "Yhdysvaltain Neitsytsaaret", "ZW": "Zimbabwe"} \ No newline at end of file diff --git a/desktop/src/onionshare/resources/countries/gl.json b/desktop/src/onionshare/resources/countries/gl.json new file mode 100644 index 00000000..28cd6d9f --- /dev/null +++ b/desktop/src/onionshare/resources/countries/gl.json @@ -0,0 +1 @@ +{"AQ": "A Ant\u00e1rtida", "AR": "A Arxentina", "CN": "A China", "GW": "A Guinea Bissau", "IN": "A India", "PF": "A Polinesia Francesa", "AZ": "Acerbaix\u00e1n", "AF": "Afganist\u00e1n", "AL": "Albania", "DE": "Alema\u00f1a", "DZ": "Alxeria", "AD": "Andorra", "AO": "Angola", "AI": "Anguila", "AG": "Antigua e Barbuda", "SA": "Arabia Saudita", "AM": "Armenia", "AW": "Aruba", "AU": "Australia", "AT": "Austria", "BS": "Bahamas", "BH": "Bahrain", "BD": "Bangladesh", "BB": "Barbados", "BY": "Belar\u00fas", "BZ": "Belize", "BE": "B\u00e9lxica", "BJ": "Ben\u00edn", "BO": "Bolivia", "BA": "Bosnia e Hercegovina", "BW": "Botswana", "BN": "Brunei", "BG": "Bulgaria", "BF": "Burkina Faso", "BI": "Burundi", "BT": "But\u00e1n", "CV": "Cabo Verde", "KH": "Camboxa", "CM": "Camer\u00fan", "BQ": "Caribe Neerland\u00e9s", "TD": "Chad", "CZ": "Chequia", "CL": "Chile", "CY": "Chipre", "VA": "Cidade do Vaticano", "CO": "Colombia", "KM": "Comores", "KP": "Corea do Norte", "KR": "Corea do Sur", "CR": "Costa Rica", "CI": "C\u00f4te d\u2019Ivoire", "HR": "Croacia", "CU": "Cuba", "CW": "Cura\u00e7ao", "DK": "Dinamarca", "DJ": "Djibuti", "DM": "Dominica", "EC": "Ecuador", "ER": "Eritrea", "SK": "Eslovaquia", "SI": "Eslovenia", "ES": "Espa\u00f1a", "EE": "Estonia", "SZ": "Eswatini", "ET": "Etiop\u00eda", "EG": "Exipto", "PH": "Filipinas", "FI": "Finlandia", "FJ": "Fixi", "FR": "Francia", "GA": "Gab\u00f3n", "GM": "Gambia", "GH": "Ghana", "GD": "Granada", "GR": "Grecia", "GL": "Groenlandia", "GP": "Guadalupe", "GU": "Guam", "GT": "Guatemala", "GG": "Guernsey", "GY": "G\u00fciana", "GF": "G\u00fciana Francesa", "GN": "Guinea", "GQ": "Guinea Ecuatorial", "HT": "Hait\u00ed", "HN": "Honduras", "HK": "Hong Kong RAE da China", "HU": "Hungr\u00eda", "BV": "Illa Bouvet", "CX": "Illa Christmas", "IM": "Illa de Man", "HM": "Illa Heard e Illas McDonald", "NF": "Illa Norfolk", "AX": "Illas \u00c5land", "BM": "Illas Bermudas", "KY": "Illas Caim\u00e1n", "CC": "Illas Cocos (Keeling)", "CK": "Illas Cook", "FO": "Illas Feroe", "FK": "Illas Malvinas", "MP": "Illas Marianas do Norte", "MH": "Illas Marshall", "UM": "Illas Menores Distantes dos Estados Unidos", "PN": "Illas Pitcairn", "SB": "Illas Salom\u00f3n", "TC": "Illas Turks e Caicos", "VG": "Illas Virxes Brit\u00e1nicas", "VI": "Illas Virxes Estadounidenses", "GS": "Illas Xeorxia do Sur e Sandwich do Sur", "ID": "Indonesia", "IR": "Ir\u00e1n", "IQ": "Iraq", "IE": "Irlanda", "IS": "Islandia", "IL": "Israel", "IT": "Italia", "JE": "Jersey", "KZ": "Kazakist\u00e1n", "KE": "Kenya", "KG": "Kirguizist\u00e1n", "KI": "Kiribati", "KW": "Kuwait", "LA": "Laos", "LS": "Lesotho", "LV": "Letonia", "LR": "Liberia", "LY": "Libia", "LI": "Liechtenstein", "LT": "Lituania", "LU": "Luxemburgo", "MO": "Macau RAE da China", "MK": "Macedonia do Norte", "MG": "Madagascar", "MY": "Malaisia", "MW": "Malawi", "MV": "Maldivas", "ML": "Mal\u00ed", "MT": "Malta", "MA": "Marrocos", "MQ": "Martinica", "MU": "Mauricio", "MR": "Mauritania", "YT": "Mayotte", "MX": "M\u00e9xico", "FM": "Micronesia", "MD": "Moldavia", "MC": "M\u00f3naco", "MN": "Mongolia", "ME": "Montenegro", "MS": "Montserrat", "MZ": "Mozambique", "MM": "Myanmar (Birmania)", "NA": "Namibia", "NR": "Nauru", "NP": "Nepal", "NI": "Nicaragua", "NU": "Niue", "NE": "N\u00edxer", "NG": "Nixeria", "NO": "Noruega", "NC": "Nova Caledonia", "NZ": "Nova Zelandia", "BR": "O Brasil", "CA": "O Canad\u00e1", "YE": "O Iemen", "LB": "O L\u00edbano", "PY": "O Paraguai", "PE": "O Per\u00fa", "GB": "O Reino Unido", "EH": "O S\u00e1hara Occidental", "SV": "O Salvador", "SD": "O Sud\u00e1n", "SS": "O Sud\u00e1n do Sur", "UY": "O Uruguai", "JP": "O Xap\u00f3n", "OM": "Om\u00e1n", "AE": "Os Emiratos \u00c1rabes Unidos", "US": "Os Estados Unidos", "NL": "Pa\u00edses Baixos", "PW": "Palau", "PA": "Panam\u00e1", "PG": "Pap\u00faa-Nova Guinea", "PK": "Paquist\u00e1n", "PL": "Polonia", "PR": "Porto Rico", "PT": "Portugal", "QA": "Qatar", "CF": "Rep\u00fablica Centroafricana", "CD": "Rep\u00fablica Democr\u00e1tica do Congo", "CG": "Rep\u00fablica do Congo", "DO": "Rep\u00fablica Dominicana", "RE": "Reuni\u00f3n", "RO": "Roman\u00eda", "RW": "Ruanda", "RU": "Rusia", "BL": "Saint Barth\u00e9lemy", "KN": "Saint Kitts e Nevis", "MF": "Saint Martin", "PM": "Saint Pierre et Miquelon", "WS": "Samoa", "AS": "Samoa Americana", "SM": "San Marino", "ST": "San Tom\u00e9 e Pr\u00edncipe", "VC": "San Vicente e As Granadinas", "SH": "Santa Helena", "LC": "Santa Luc\u00eda", "SN": "Senegal", "RS": "Serbia", "SL": "Serra Leoa", "SC": "Seychelles", "SG": "Singapur", "SX": "Sint Maarten", "SY": "Siria", "SO": "Somalia", "LK": "Sri Lanka", "SE": "Suecia", "CH": "Su\u00edza", "ZA": "Sur\u00e1frica", "SR": "Suriname", "SJ": "Svalbard e Jan Mayen", "TH": "Tailandia", "TW": "Taiw\u00e1n", "TZ": "Tanzania", "TJ": "Taxiquist\u00e1n", "IO": "Territorio Brit\u00e1nico do Oc\u00e9ano \u00cdndico", "TF": "Territorios Austrais Franceses", "PS": "Territorios Palestinos", "TL": "Timor Leste", "TG": "Togo", "TK": "Tokelau", "TO": "Tonga", "TT": "Trinidad e Tobago", "TN": "Tunisia", "TM": "Turkmenist\u00e1n", "TR": "Turqu\u00eda", "TV": "Tuvalu", "UA": "Ucra\u00edna", "UG": "Uganda", "UZ": "Uzbekist\u00e1n", "VU": "Vanuatu", "VE": "Venezuela", "VN": "Vietnam", "WF": "Wallis e Futuna", "JM": "Xamaica", "GE": "Xeorxia", "GI": "Xibraltar", "JO": "Xordania", "ZM": "Zambia", "ZW": "Zimbabwe"} \ No newline at end of file diff --git a/desktop/src/onionshare/resources/countries/is.json b/desktop/src/onionshare/resources/countries/is.json new file mode 100644 index 00000000..608883fd --- /dev/null +++ b/desktop/src/onionshare/resources/countries/is.json @@ -0,0 +1 @@ +{"AF": "Afganistan", "AL": "Alban\u00eda", "DZ": "Als\u00edr", "AD": "Andorra", "AO": "Ang\u00f3la", "AI": "Angvilla", "AG": "Ant\u00edgva og Barb\u00fada", "AR": "Argent\u00edna", "AM": "Armen\u00eda", "AW": "Ar\u00faba", "AZ": "Aserba\u00eddsjan", "AT": "Austurr\u00edki", "AX": "\u00c1landseyjar", "AU": "\u00c1stral\u00eda", "BS": "Bahamaeyjar", "US": "Bandar\u00edkin", "AS": "Bandar\u00edska Sam\u00f3a", "VI": "Bandar\u00edsku J\u00f3mfr\u00faaeyjar", "BD": "Bangladess", "BB": "Barbados", "BH": "Barein", "BE": "Belg\u00eda", "BZ": "Bel\u00eds", "BJ": "Ben\u00edn", "BM": "Berm\u00fadaeyjar", "BA": "Bosn\u00eda og Herseg\u00f3v\u00edna", "BW": "Botsvana", "BV": "Bouveteyja", "BO": "B\u00f3liv\u00eda", "BR": "Brasil\u00eda", "IO": "Bresku Indlandshafseyjar", "VG": "Bresku J\u00f3mfr\u00faaeyjar", "GB": "Bretland", "BN": "Br\u00fanei", "BG": "B\u00falgar\u00eda", "BF": "B\u00fark\u00edna Fas\u00f3", "BI": "B\u00far\u00fand\u00ed", "BT": "B\u00fatan", "KY": "Caymaneyjar", "CK": "Cooks-eyjar", "CW": "Curacao", "DK": "Danm\u00f6rk", "DJ": "Dj\u00edb\u00fat\u00ed", "DM": "D\u00f3min\u00edka", "DO": "D\u00f3min\u00edska l\u00fd\u00f0veldi\u00f0", "EG": "Egyptaland", "EE": "Eistland", "EC": "Ekvador", "SV": "El Salvador", "ER": "Er\u00edtrea", "ET": "E\u00fe\u00ed\u00f3p\u00eda", "FK": "Falklandseyjar", "PH": "Filippseyjar", "FI": "Finnland", "FJ": "F\u00eddj\u00edeyjar", "CI": "F\u00edlabeinsstr\u00f6ndin", "FR": "Frakkland", "GF": "Franska Gv\u00e6jana", "PF": "Franska P\u00f3l\u00fdnes\u00eda", "TF": "Fr\u00f6nsku su\u00f0l\u00e6gu landsv\u00e6\u00f0in", "FO": "F\u00e6reyjar", "GA": "Gabon", "GM": "Gamb\u00eda", "GH": "Gana", "GE": "Georg\u00eda", "GI": "G\u00edbraltar", "GN": "G\u00ednea", "GW": "G\u00ednea-Biss\u00e1", "GD": "Grenada", "GR": "Grikkland", "CV": "Gr\u00e6nh\u00f6f\u00f0aeyjar", "GL": "Gr\u00e6nland", "GG": "Guernsey", "GP": "Gvadel\u00fapeyjar", "GU": "Gvam", "GT": "Gvatemala", "GY": "Gv\u00e6jana", "HT": "Ha\u00edt\u00ed", "HM": "Heard og McDonaldseyjar", "PS": "Heimastj\u00f3rnarsv\u00e6\u00f0i Palest\u00ednumanna", "NL": "Holland", "HN": "Hond\u00faras", "BY": "Hv\u00edta-R\u00fassland", "IN": "Indland", "ID": "Ind\u00f3nes\u00eda", "IQ": "\u00cdrak", "IR": "\u00cdran", "IE": "\u00cdrland", "IS": "\u00cdsland", "IL": "\u00cdsrael", "IT": "\u00cdtal\u00eda", "JM": "Jama\u00edka", "JP": "Japan", "YE": "Jemen", "JE": "Jersey", "CX": "J\u00f3laey", "JO": "J\u00f3rdan\u00eda", "KH": "Kamb\u00f3d\u00eda", "CM": "Kamer\u00fan", "CA": "Kanada", "BQ": "Kar\u00edbahafshluti Hollands", "KZ": "Kasakstan", "QA": "Katar", "KE": "Ken\u00eda", "KG": "Kirgistan", "CN": "K\u00edna", "KI": "K\u00edribat\u00ed", "CG": "Kong\u00f3-Brazzaville", "CD": "Kong\u00f3-Kinshasa", "CR": "Kostar\u00edka", "CC": "K\u00f3koseyjar (Keeling)", "CO": "K\u00f3lumb\u00eda", "KM": "K\u00f3moreyjar", "HR": "Kr\u00f3at\u00eda", "CU": "K\u00faba", "KW": "K\u00faveit", "CY": "K\u00fdpur", "LA": "Laos", "LS": "Les\u00f3t\u00f3", "LV": "Lettland", "LI": "Liechtenstein", "LT": "Lith\u00e1en", "LB": "L\u00edbanon", "LR": "L\u00edber\u00eda", "LY": "L\u00edb\u00eda", "LU": "L\u00faxemborg", "MG": "Madagaskar", "MY": "Malas\u00eda", "MW": "Malav\u00ed", "MV": "Mald\u00edveyjar", "ML": "Mal\u00ed", "MT": "Malta", "MA": "Marokk\u00f3", "MH": "Marshalleyjar", "MQ": "Martin\u00edk", "YT": "Mayotte", "MR": "M\u00e1ritan\u00eda", "MU": "M\u00e1rit\u00edus", "MX": "Mex\u00edk\u00f3", "CF": "Mi\u00f0-Afr\u00edkul\u00fd\u00f0veldi\u00f0", "GQ": "Mi\u00f0baugs-G\u00ednea", "FM": "M\u00edkr\u00f3nes\u00eda", "MM": "Mjanmar (B\u00farma)", "MD": "Mold\u00f3va", "MN": "Mong\u00f3l\u00eda", "MS": "Montserrat", "MC": "M\u00f3nak\u00f3", "MZ": "M\u00f3samb\u00edk", "IM": "M\u00f6n", "NA": "Namib\u00eda", "NR": "N\u00e1r\u00fa", "NP": "Nepal", "NU": "Niue", "NE": "N\u00edger", "NG": "N\u00edger\u00eda", "NI": "N\u00edkaragva", "KP": "Nor\u00f0ur-K\u00f3rea", "MK": "Nor\u00f0ur-Maked\u00f3n\u00eda", "MP": "Nor\u00f0ur-Mar\u00edanaeyjar", "NO": "Noregur", "NF": "Norfolkeyja", "NC": "N\u00fdja-Kaled\u00f3n\u00eda", "NZ": "N\u00fdja-Sj\u00e1land", "OM": "\u00d3man", "PK": "Pakistan", "PW": "Pal\u00e1", "PA": "Panama", "PG": "Pap\u00faa N\u00fdja-G\u00ednea", "PY": "Paragv\u00e6", "PE": "Per\u00fa", "PN": "Pitcairn-eyjar", "PT": "Port\u00fagal", "PL": "P\u00f3lland", "PR": "P\u00faert\u00f3 R\u00edk\u00f3", "RE": "R\u00e9union", "RW": "R\u00faanda", "RO": "R\u00famen\u00eda", "RU": "R\u00fassland", "MF": "Saint-Martin", "SB": "Sal\u00f3monseyjar", "ZM": "Samb\u00eda", "AE": "Sameinu\u00f0u arab\u00edsku furstad\u00e6min", "WS": "Sam\u00f3a", "SM": "San Mar\u00edn\u00f3", "BL": "Sankti Bart\u00f3l\u00f3meusareyjar", "SH": "Sankti Helena", "KN": "Sankti Kitts og Nevis", "LC": "Sankti L\u00fas\u00eda", "SX": "Sankti Martin", "PM": "Sankti Pierre og Miquelon", "VC": "Sankti Vinsent og Grenad\u00edneyjar", "ST": "Sa\u00f3 T\u00f3me og Prins\u00edpe", "SA": "S\u00e1di-Arab\u00eda", "SN": "Senegal", "RS": "Serb\u00eda", "SC": "Seychelles-eyjar", "HK": "s\u00e9rstj\u00f3rnarsv\u00e6\u00f0i\u00f0 Hong Kong", "MO": "s\u00e9rstj\u00f3rnarsv\u00e6\u00f0i\u00f0 Maka\u00f3", "ZW": "Simbabve", "SG": "Singap\u00far", "SL": "S\u00ederra Le\u00f3ne", "CL": "S\u00edle", "SK": "Sl\u00f3vak\u00eda", "SI": "Sl\u00f3ven\u00eda", "UM": "Sm\u00e1eyjar Bandar\u00edkjanna", "SO": "S\u00f3mal\u00eda", "ES": "Sp\u00e1nn", "LK": "Sr\u00ed Lanka", "ZA": "Su\u00f0ur-Afr\u00edka", "GS": "Su\u00f0ur-Georg\u00eda og Su\u00f0ur-Sandv\u00edkureyjar", "KR": "Su\u00f0ur-K\u00f3rea", "SS": "Su\u00f0ur-S\u00fadan", "AQ": "Su\u00f0urskautslandi\u00f0", "SD": "S\u00fadan", "SR": "S\u00far\u00ednam", "SJ": "Svalbar\u00f0i og Jan Mayen", "ME": "Svartfjallaland", "SZ": "Svas\u00edland", "CH": "Sviss", "SE": "Sv\u00ed\u00fej\u00f3\u00f0", "SY": "S\u00fdrland", "TJ": "Tadsjikistan", "TH": "Ta\u00edland", "TW": "Ta\u00edvan", "TZ": "Tansan\u00eda", "CZ": "T\u00e9kkland", "TL": "T\u00edmor-Leste", "TO": "Tonga", "TG": "T\u00f3g\u00f3", "TK": "T\u00f3kel\u00e1", "TT": "Tr\u00ednidad og T\u00f3bag\u00f3", "TD": "Tsjad", "TC": "Turks- og Caicoseyjar", "TN": "T\u00fanis", "TM": "T\u00farkmenistan", "TV": "T\u00faval\u00fa", "TR": "Tyrkland", "HU": "Ungverjaland", "UG": "\u00daganda", "UA": "\u00dakra\u00edna", "UY": "\u00dar\u00fagv\u00e6", "UZ": "\u00dasbekistan", "VU": "Van\u00faat\u00fa", "VA": "Vat\u00edkani\u00f0", "VE": "Venes\u00faela", "EH": "Vestur-Sahara", "VN": "V\u00edetnam", "WF": "Wallis- og F\u00fat\u00fanaeyjar", "DE": "\u00de\u00fdskaland"} \ No newline at end of file diff --git a/desktop/src/onionshare/resources/countries/lt.json b/desktop/src/onionshare/resources/countries/lt.json new file mode 100644 index 00000000..1b4af8cf --- /dev/null +++ b/desktop/src/onionshare/resources/countries/lt.json @@ -0,0 +1 @@ +{"AF": "Afganistanas", "IE": "Airija", "AX": "Aland\u0173 Salos", "AL": "Albanija", "DZ": "Al\u017eyras", "AS": "Amerikos Samoa", "AD": "Andora", "AI": "Angilija", "AO": "Angola", "AQ": "Antarktida", "AG": "Antigva ir Barbuda", "AR": "Argentina", "AM": "Arm\u0117nija", "AW": "Aruba", "AU": "Australija", "AT": "Austrija", "AZ": "Azerbaid\u017eanas", "BS": "Bahamos", "BH": "Bahreinas", "BY": "Baltarusija", "BD": "Banglade\u0161as", "BB": "Barbadosas", "BE": "Belgija", "BZ": "Belizas", "BJ": "Beninas", "BM": "Bermuda", "GW": "Bisau Gvin\u0117ja", "BO": "Bolivija", "BA": "Bosnija ir Hercegovina", "BW": "Botsvana", "BR": "Brazilija", "BN": "Brun\u0117jus", "BG": "Bulgarija", "BF": "Burkina Fasas", "BI": "Burundis", "BT": "Butanas", "BV": "Buv\u0117 Sala", "CF": "Centrin\u0117s Afrikos Respublika", "TD": "\u010cadas", "CZ": "\u010cekija", "CL": "\u010cil\u0117", "DK": "Danija", "VG": "Did\u017eiosios Britanijos Mergeli\u0173 Salos", "DM": "Dominika", "DO": "Dominikos Respublika", "CI": "Dramblio Kaulo Krantas", "JE": "D\u017eersis", "DJ": "D\u017eibutis", "EG": "Egiptas", "EC": "Ekvadoras", "ER": "Eritr\u0117ja", "EE": "Estija", "ET": "Etiopija", "FO": "Farer\u0173 Salos", "FJ": "Fid\u017eis", "PH": "Filipinai", "FK": "Folklando Salos", "GA": "Gabonas", "GY": "Gajana", "GM": "Gambija", "GH": "Gana", "GG": "Gernsis", "GI": "Gibraltaras", "GR": "Graikija", "GD": "Grenada", "GL": "Grenlandija", "GE": "Gruzija", "GU": "Guamas", "GP": "Gvadelupa", "GT": "Gvatemala", "GN": "Gvin\u0117ja", "HT": "Haitis", "HM": "Herdo ir Makdonaldo Salos", "HN": "Hond\u016bras", "IN": "Indija", "IO": "Indijos Vandenyno Brit\u0173 Sritis", "ID": "Indonezija", "HK": "Ypatingasis Administracinis Kinijos Regionas Honkongas", "MO": "Ypatingasis Administracinis Kinijos Regionas Makao", "IQ": "Irakas", "IR": "Iranas", "IS": "Islandija", "ES": "Ispanija", "IT": "Italija", "IL": "Izraelis", "JM": "Jamaika", "JP": "Japonija", "YE": "Jemenas", "JO": "Jordanija", "GB": "Jungtin\u0117 Karalyst\u0117", "US": "Jungtin\u0117s Valstijos", "AE": "Jungtiniai Arab\u0173 Emyratai", "UM": "Jungtini\u0173 Valstij\u0173 Ma\u017eosios Tolimosios Salos", "VI": "Jungtini\u0173 Valstij\u0173 Mergeli\u0173 Salos", "ME": "Juodkalnija", "KY": "Kaiman\u0173 Salos", "CX": "Kal\u0117d\u0173 Sala", "KH": "Kambod\u017ea", "CM": "Kamer\u016bnas", "CA": "Kanada", "BQ": "Karib\u0173 Nyderlandai", "QA": "Kataras", "KZ": "Kazachstanas", "KE": "Kenija", "CN": "Kinija", "CY": "Kipras", "KG": "Kirgizija", "KI": "Kiribatis", "CW": "Kiurasao", "CC": "Kokos\u0173 (Kilingo) Salos", "CO": "Kolumbija", "KM": "Komorai", "CG": "Kongas-Brazavilis", "CD": "Kongas-Kin\u0161asa", "CR": "Kosta Rika", "HR": "Kroatija", "CU": "Kuba", "CK": "Kuko Salos", "KW": "Kuveitas", "LA": "Laosas", "LV": "Latvija", "PL": "Lenkija", "LS": "Lesotas", "LB": "Libanas", "LR": "Liberija", "LY": "Libija", "LI": "Lichten\u0161teinas", "LT": "Lietuva", "LU": "Liuksemburgas", "MG": "Madagaskaras", "YT": "Majotas", "MY": "Malaizija", "MW": "Malavis", "MV": "Maldyvai", "ML": "Malis", "MT": "Malta", "MP": "Marianos \u0160iaurin\u0117s Salos", "MA": "Marokas", "MH": "Mar\u0161alo Salos", "MQ": "Martinika", "MU": "Mauricijus", "MR": "Mauritanija", "MX": "Meksika", "IM": "Meno Sala", "MM": "Mianmaras (Birma)", "FM": "Mikronezija", "MD": "Moldova", "MC": "Monakas", "MN": "Mongolija", "MS": "Montseratas", "MZ": "Mozambikas", "NA": "Namibija", "NC": "Naujoji Kaledonija", "NZ": "Naujoji Zelandija", "NR": "Nauru", "NP": "Nepalas", "NL": "Nyderlandai", "NG": "Nigerija", "NE": "Nigeris", "NI": "Nikaragva", "NU": "Niuj\u0117", "NF": "Norfolko sala", "NO": "Norvegija", "OM": "Omanas", "PK": "Pakistanas", "PW": "Palau", "PS": "Palestinos teritorija", "PA": "Panama", "PG": "Papua Naujoji Gvin\u0117ja", "PY": "Paragvajus", "PE": "Peru", "ZA": "Piet\u0173 Afrika", "GS": "Piet\u0173 D\u017eord\u017eija ir Piet\u0173 Sandvi\u010do salos", "KR": "Piet\u0173 Kor\u0117ja", "SS": "Piet\u0173 Sudanas", "PN": "Pitkerno salos", "PT": "Portugalija", "FR": "Pranc\u016bzija", "GF": "Pranc\u016bzijos Gviana", "TF": "Pranc\u016bzijos Piet\u0173 sritys", "PF": "Pranc\u016bzijos Polinezija", "PR": "Puerto Rikas", "GQ": "Pusiaujo Gvin\u0117ja", "RE": "Reunjonas", "TL": "Ryt\u0173 Timoras", "RW": "Ruanda", "RO": "Rumunija", "RU": "Rusija", "SB": "Saliamono Salos", "SV": "Salvadoras", "WS": "Samoa", "SM": "San Marinas", "ST": "San Tom\u0117 ir Prinsip\u0117", "SA": "Saudo Arabija", "SC": "Sei\u0161eliai", "BL": "Sen Bartelemi", "MF": "Sen Martenas", "PM": "Sen Pjeras ir Mikelonas", "SN": "Senegalas", "KN": "Sent Kitsas ir Nevis", "LC": "Sent Lusija", "RS": "Serbija", "SL": "Siera Leon\u0117", "SG": "Singap\u016bras", "SX": "Sint Martenas", "SY": "Sirija", "SK": "Slovakija", "SI": "Slov\u0117nija", "SO": "Somalis", "SD": "Sudanas", "FI": "Suomija", "SR": "Surinamas", "SJ": "Svalbardas ir Janas Majenas", "SZ": "Svazilandas", "KP": "\u0160iaur\u0117s Kor\u0117ja", "MK": "\u0160iaur\u0117s Makedonija", "LK": "\u0160ri Lanka", "SH": "\u0160v. Elenos Sala", "SE": "\u0160vedija", "CH": "\u0160veicarija", "VC": "\u0160ventasis Vincentas ir Grenadinai", "TJ": "Tad\u017eikija", "TH": "Tailandas", "TW": "Taivanas", "TZ": "Tanzanija", "TC": "Terkso ir Kaikoso Salos", "TG": "Togas", "TK": "Tokelau", "TO": "Tonga", "TT": "Trinidadas ir Tobagas", "TN": "Tunisas", "TR": "Turkija", "TM": "Turkm\u0117nistanas", "TV": "Tuvalu", "UG": "Uganda", "UA": "Ukraina", "UY": "Urugvajus", "UZ": "Uzbekistanas", "EH": "Vakar\u0173 Sachara", "VU": "Vanuatu", "VA": "Vatikano Miesto Valstyb\u0117", "VE": "Venesuela", "HU": "Vengrija", "VN": "Vietnamas", "DE": "Vokietija", "WF": "Volisas ir Fut\u016bna", "ZM": "Zambija", "ZW": "Zimbabv\u0117", "CV": "\u017daliasis Ky\u0161ulys"} \ No newline at end of file diff --git a/desktop/src/onionshare/resources/countries/nb_NO.json b/desktop/src/onionshare/resources/countries/nb_NO.json new file mode 100644 index 00000000..b0780387 --- /dev/null +++ b/desktop/src/onionshare/resources/countries/nb_NO.json @@ -0,0 +1 @@ +{"AF": "Afghanistan", "AL": "Albania", "DZ": "Algerie", "AS": "Amerikansk Samoa", "AD": "Andorra", "AO": "Angola", "AI": "Anguilla", "AQ": "Antarktis", "AG": "Antigua og Barbuda", "AR": "Argentina", "AM": "Armenia", "AW": "Aruba", "AZ": "Aserbajdsjan", "AU": "Australia", "BS": "Bahamas", "BH": "Bahrain", "BD": "Bangladesh", "BB": "Barbados", "BE": "Belgia", "BZ": "Belize", "BJ": "Benin", "BM": "Bermuda", "BT": "Bhutan", "BO": "Bolivia", "BA": "Bosnia-Hercegovina", "BW": "Botswana", "BV": "Bouvet\u00f8ya", "BR": "Brasil", "BN": "Brunei", "BG": "Bulgaria", "BF": "Burkina Faso", "BI": "Burundi", "CA": "Canada", "KY": "Cayman\u00f8yene", "CL": "Chile", "CX": "Christmas\u00f8ya", "CO": "Colombia", "CK": "Cook\u00f8yene", "CR": "Costa Rica", "CU": "Cuba", "CW": "Cura\u00e7ao", "DK": "Danmark", "VI": "De amerikanske jomfru\u00f8yene", "VG": "De britiske jomfru\u00f8yene", "AE": "De forente arabiske emirater", "TF": "De franske s\u00f8rterritorier", "DO": "Den dominikanske republikk", "CF": "Den sentralafrikanske republikk", "IO": "Det britiske territoriet i Indiahavet", "PS": "Det palestinske omr\u00e5det", "DJ": "Djibouti", "DM": "Dominica", "EC": "Ecuador", "EG": "Egypt", "GQ": "Ekvatorial-Guinea", "SV": "El Salvador", "CI": "Elfenbenskysten", "ER": "Eritrea", "EE": "Estland", "SZ": "Eswatini", "ET": "Etiopia", "FK": "Falklands\u00f8yene", "FJ": "Fiji", "PH": "Filippinene", "FI": "Finland", "FR": "Frankrike", "GF": "Fransk Guyana", "PF": "Fransk Polynesia", "FO": "F\u00e6r\u00f8yene", "GA": "Gabon", "GM": "Gambia", "GE": "Georgia", "GH": "Ghana", "GI": "Gibraltar", "GD": "Grenada", "GL": "Gr\u00f8nland", "GP": "Guadeloupe", "GU": "Guam", "GT": "Guatemala", "GG": "Guernsey", "GN": "Guinea", "GW": "Guinea-Bissau", "GY": "Guyana", "HT": "Haiti", "HM": "Heard- og McDonald\u00f8yene", "GR": "Hellas", "HN": "Honduras", "HK": "Hongkong S.A.R. Kina", "BY": "Hviterussland", "IN": "India", "ID": "Indonesia", "IQ": "Irak", "IR": "Iran", "IE": "Irland", "IS": "Island", "IL": "Israel", "IT": "Italia", "JM": "Jamaica", "JP": "Japan", "YE": "Jemen", "JE": "Jersey", "JO": "Jordan", "KH": "Kambodsja", "CM": "Kamerun", "CV": "Kapp Verde", "BQ": "Karibisk Nederland", "KZ": "Kasakhstan", "KE": "Kenya", "CN": "Kina", "KG": "Kirgisistan", "KI": "Kiribati", "CC": "Kokos\u00f8yene", "KM": "Komorene", "CG": "Kongo-Brazzaville", "CD": "Kongo-Kinshasa", "HR": "Kroatia", "KW": "Kuwait", "CY": "Kypros", "LA": "Laos", "LV": "Latvia", "LS": "Lesotho", "LB": "Libanon", "LR": "Liberia", "LY": "Libya", "LI": "Liechtenstein", "LT": "Litauen", "LU": "Luxemburg", "MO": "Macao S.A.R. Kina", "MG": "Madagaskar", "MW": "Malawi", "MY": "Malaysia", "MV": "Maldivene", "ML": "Mali", "MT": "Malta", "IM": "Man", "MA": "Marokko", "MH": "Marshall\u00f8yene", "MQ": "Martinique", "MR": "Mauritania", "MU": "Mauritius", "YT": "Mayotte", "MX": "Mexico", "FM": "Mikronesiaf\u00f8derasjonen", "MD": "Moldova", "MC": "Monaco", "MN": "Mongolia", "ME": "Montenegro", "MS": "Montserrat", "MZ": "Mosambik", "MM": "Myanmar (Burma)", "NA": "Namibia", "NR": "Nauru", "NL": "Nederland", "NP": "Nepal", "NZ": "New Zealand", "NI": "Nicaragua", "NE": "Niger", "NG": "Nigeria", "NU": "Niue", "KP": "Nord-Korea", "MK": "Nord-Makedonia", "MP": "Nord-Marianene", "NF": "Norfolk\u00f8ya", "NO": "Norge", "NC": "Ny-Caledonia", "OM": "Oman", "PK": "Pakistan", "PW": "Palau", "PA": "Panama", "PG": "Papua Ny-Guinea", "PY": "Paraguay", "PE": "Peru", "PN": "Pitcairn\u00f8yene", "PL": "Polen", "PT": "Portugal", "PR": "Puerto Rico", "QA": "Qatar", "RE": "R\u00e9union", "RO": "Romania", "RU": "Russland", "RW": "Rwanda", "KN": "Saint Kitts og Nevis", "BL": "Saint-Barth\u00e9lemy", "MF": "Saint-Martin", "PM": "Saint-Pierre-et-Miquelon", "SB": "Salomon\u00f8yene", "WS": "Samoa", "SM": "San Marino", "ST": "S\u00e3o Tom\u00e9 og Pr\u00edncipe", "SA": "Saudi-Arabia", "SN": "Senegal", "RS": "Serbia", "SC": "Seychellene", "SL": "Sierra Leone", "SG": "Singapore", "SX": "Sint Maarten", "SK": "Slovakia", "SI": "Slovenia", "SO": "Somalia", "ES": "Spania", "LK": "Sri Lanka", "SH": "St. Helena", "LC": "St. Lucia", "VC": "St. Vincent og Grenadinene", "GB": "Storbritannia", "SD": "Sudan", "SR": "Surinam", "SJ": "Svalbard og Jan Mayen", "CH": "Sveits", "SE": "Sverige", "SY": "Syria", "ZA": "S\u00f8r-Afrika", "GS": "S\u00f8r-Georgia og S\u00f8r-Sandwich\u00f8yene", "KR": "S\u00f8r-Korea", "SS": "S\u00f8r-Sudan", "TJ": "Tadsjikistan", "TW": "Taiwan", "TZ": "Tanzania", "TH": "Thailand", "TG": "Togo", "TK": "Tokelau", "TO": "Tonga", "TT": "Trinidad og Tobago", "TD": "Tsjad", "CZ": "Tsjekkia", "TN": "Tunisia", "TM": "Turkmenistan", "TC": "Turks- og Caicos\u00f8yene", "TV": "Tuvalu", "TR": "Tyrkia", "DE": "Tyskland", "UG": "Uganda", "UA": "Ukraina", "HU": "Ungarn", "UY": "Uruguay", "US": "USA", "UM": "USAs ytre \u00f8yer", "UZ": "Usbekistan", "VU": "Vanuatu", "VA": "Vatikanstaten", "VE": "Venezuela", "EH": "Vest-Sahara", "VN": "Vietnam", "WF": "Wallis og Futuna", "ZM": "Zambia", "ZW": "Zimbabwe", "TL": "\u00d8st-Timor", "AT": "\u00d8sterrike", "AX": "\u00c5land"} \ No newline at end of file diff --git a/desktop/src/onionshare/resources/countries/pl.json b/desktop/src/onionshare/resources/countries/pl.json new file mode 100644 index 00000000..bf6c6e3b --- /dev/null +++ b/desktop/src/onionshare/resources/countries/pl.json @@ -0,0 +1 @@ +{"AF": "Afganistan", "AL": "Albania", "DZ": "Algieria", "AD": "Andora", "AO": "Angola", "AI": "Anguilla", "AQ": "Antarktyda", "AG": "Antigua i Barbuda", "SA": "Arabia Saudyjska", "AR": "Argentyna", "AM": "Armenia", "AW": "Aruba", "AU": "Australia", "AT": "Austria", "AZ": "Azerbejd\u017can", "BS": "Bahamy", "BH": "Bahrajn", "BD": "Bangladesz", "BB": "Barbados", "BE": "Belgia", "BZ": "Belize", "BJ": "Benin", "BM": "Bermudy", "BT": "Bhutan", "BY": "Bia\u0142oru\u015b", "BO": "Boliwia", "BA": "Bo\u015bnia i Hercegowina", "BW": "Botswana", "BR": "Brazylia", "BN": "Brunei", "IO": "Brytyjskie Terytorium Oceanu Indyjskiego", "VG": "Brytyjskie Wyspy Dziewicze", "BG": "Bu\u0142garia", "BF": "Burkina Faso", "BI": "Burundi", "CL": "Chile", "CN": "Chiny", "HR": "Chorwacja", "CI": "C\u00f4te d\u2019Ivoire", "CW": "Cura\u00e7ao", "CY": "Cypr", "TD": "Czad", "ME": "Czarnog\u00f3ra", "CZ": "Czechy", "UM": "Dalekie Wyspy Mniejsze Stan\u00f3w Zjednoczonych", "DK": "Dania", "CD": "Demokratyczna Republika Konga", "DM": "Dominika", "DO": "Dominikana", "DJ": "D\u017cibuti", "EG": "Egipt", "EC": "Ekwador", "ER": "Erytrea", "EE": "Estonia", "SZ": "Eswatini", "ET": "Etiopia", "FK": "Falklandy", "FJ": "Fid\u017ci", "PH": "Filipiny", "FI": "Finlandia", "FR": "Francja", "TF": "Francuskie Terytoria Po\u0142udniowe i Antarktyczne", "GA": "Gabon", "GM": "Gambia", "GS": "Georgia Po\u0142udniowa i Sandwich Po\u0142udniowy", "GH": "Ghana", "GI": "Gibraltar", "GR": "Grecja", "GD": "Grenada", "GL": "Grenlandia", "GE": "Gruzja", "GU": "Guam", "GG": "Guernsey", "GY": "Gujana", "GF": "Gujana Francuska", "GP": "Gwadelupa", "GT": "Gwatemala", "GN": "Gwinea", "GW": "Gwinea Bissau", "GQ": "Gwinea R\u00f3wnikowa", "HT": "Haiti", "ES": "Hiszpania", "NL": "Holandia", "HN": "Honduras", "IN": "Indie", "ID": "Indonezja", "IQ": "Irak", "IR": "Iran", "IE": "Irlandia", "IS": "Islandia", "IL": "Izrael", "JM": "Jamajka", "JP": "Japonia", "YE": "Jemen", "JE": "Jersey", "JO": "Jordania", "KY": "Kajmany", "KH": "Kambod\u017ca", "CM": "Kamerun", "CA": "Kanada", "QA": "Katar", "KZ": "Kazachstan", "KE": "Kenia", "KG": "Kirgistan", "KI": "Kiribati", "CO": "Kolumbia", "KM": "Komory", "CG": "Kongo", "KR": "Korea Po\u0142udniowa", "KP": "Korea P\u00f3\u0142nocna", "CR": "Kostaryka", "CU": "Kuba", "KW": "Kuwejt", "LA": "Laos", "LS": "Lesotho", "LB": "Liban", "LR": "Liberia", "LY": "Libia", "LI": "Liechtenstein", "LT": "Litwa", "LU": "Luksemburg", "LV": "\u0141otwa", "MK": "Macedonia P\u00f3\u0142nocna", "MG": "Madagaskar", "YT": "Majotta", "MW": "Malawi", "MV": "Malediwy", "MY": "Malezja", "ML": "Mali", "MT": "Malta", "MP": "Mariany P\u00f3\u0142nocne", "MA": "Maroko", "MQ": "Martynika", "MR": "Mauretania", "MU": "Mauritius", "MX": "Meksyk", "FM": "Mikronezja", "MM": "Mjanma (Birma)", "MD": "Mo\u0142dawia", "MC": "Monako", "MN": "Mongolia", "MS": "Montserrat", "MZ": "Mozambik", "NA": "Namibia", "NR": "Nauru", "NP": "Nepal", "BQ": "Niderlandy Karaibskie", "DE": "Niemcy", "NE": "Niger", "NG": "Nigeria", "NI": "Nikaragua", "NU": "Niue", "NF": "Norfolk", "NO": "Norwegia", "NC": "Nowa Kaledonia", "NZ": "Nowa Zelandia", "OM": "Oman", "PK": "Pakistan", "PW": "Palau", "PA": "Panama", "PG": "Papua-Nowa Gwinea", "PY": "Paragwaj", "PE": "Peru", "PN": "Pitcairn", "PF": "Polinezja Francuska", "PL": "Polska", "PR": "Portoryko", "PT": "Portugalia", "ZA": "Republika Po\u0142udniowej Afryki", "CF": "Republika \u015arodkowoafryka\u0144ska", "CV": "Republika Zielonego Przyl\u0105dka", "RE": "Reunion", "RU": "Rosja", "RO": "Rumunia", "RW": "Rwanda", "EH": "Sahara Zachodnia", "KN": "Saint Kitts i Nevis", "LC": "Saint Lucia", "VC": "Saint Vincent i Grenadyny", "BL": "Saint-Barth\u00e9lemy", "MF": "Saint-Martin", "PM": "Saint-Pierre i Miquelon", "SV": "Salwador", "WS": "Samoa", "AS": "Samoa Ameryka\u0144skie", "SM": "San Marino", "SN": "Senegal", "RS": "Serbia", "SC": "Seszele", "SL": "Sierra Leone", "SG": "Singapur", "SX": "Sint Maarten", "SK": "S\u0142owacja", "SI": "S\u0142owenia", "SO": "Somalia", "HK": "SRA Hongkong (Chiny)", "MO": "SRA Makau (Chiny)", "LK": "Sri Lanka", "US": "Stany Zjednoczone", "SD": "Sudan", "SS": "Sudan Po\u0142udniowy", "SR": "Surinam", "SJ": "Svalbard i Jan Mayen", "SY": "Syria", "CH": "Szwajcaria", "SE": "Szwecja", "TJ": "Tad\u017cykistan", "TH": "Tajlandia", "TW": "Tajwan", "TZ": "Tanzania", "PS": "Terytoria Palesty\u0144skie", "TL": "Timor Wschodni", "TG": "Togo", "TK": "Tokelau", "TO": "Tonga", "TT": "Trynidad i Tobago", "TN": "Tunezja", "TR": "Turcja", "TM": "Turkmenistan", "TC": "Turks i Caicos", "TV": "Tuvalu", "UG": "Uganda", "UA": "Ukraina", "UY": "Urugwaj", "UZ": "Uzbekistan", "VU": "Vanuatu", "WF": "Wallis i Futuna", "VA": "Watykan", "VE": "Wenezuela", "HU": "W\u0119gry", "GB": "Wielka Brytania", "VN": "Wietnam", "IT": "W\u0142ochy", "BV": "Wyspa Bouveta", "CX": "Wyspa Bo\u017cego Narodzenia", "IM": "Wyspa Man", "SH": "Wyspa \u015awi\u0119tej Heleny", "AX": "Wyspy Alandzkie", "CK": "Wyspy Cooka", "VI": "Wyspy Dziewicze Stan\u00f3w Zjednoczonych", "HM": "Wyspy Heard i McDonalda", "CC": "Wyspy Kokosowe", "MH": "Wyspy Marshalla", "FO": "Wyspy Owcze", "SB": "Wyspy Salomona", "ST": "Wyspy \u015awi\u0119tego Tomasza i Ksi\u0105\u017c\u0119ca", "ZM": "Zambia", "ZW": "Zimbabwe", "AE": "Zjednoczone Emiraty Arabskie"} \ No newline at end of file diff --git a/desktop/src/onionshare/resources/countries/pt_BR.json b/desktop/src/onionshare/resources/countries/pt_BR.json new file mode 100644 index 00000000..74c02816 --- /dev/null +++ b/desktop/src/onionshare/resources/countries/pt_BR.json @@ -0,0 +1 @@ +{"AF": "Afeganist\u00e3o", "ZA": "\u00c1frica do Sul", "AL": "Alb\u00e2nia", "DE": "Alemanha", "AD": "Andorra", "AO": "Angola", "AI": "Anguila", "AQ": "Ant\u00e1rtida", "AG": "Ant\u00edgua e Barbuda", "SA": "Ar\u00e1bia Saudita", "DZ": "Arg\u00e9lia", "AR": "Argentina", "AM": "Arm\u00eania", "AW": "Aruba", "AU": "Austr\u00e1lia", "AT": "\u00c1ustria", "AZ": "Azerbaij\u00e3o", "BS": "Bahamas", "BH": "Bahrein", "BD": "Bangladesh", "BB": "Barbados", "BE": "B\u00e9lgica", "BZ": "Belize", "BJ": "Benin", "BM": "Bermudas", "BY": "Bielorr\u00fassia", "BO": "Bol\u00edvia", "BA": "B\u00f3snia e Herzegovina", "BW": "Botsuana", "BR": "Brasil", "BN": "Brunei", "BG": "Bulg\u00e1ria", "BF": "Burquina Faso", "BI": "Burundi", "BT": "But\u00e3o", "CV": "Cabo Verde", "CM": "Camar\u00f5es", "KH": "Camboja", "CA": "Canad\u00e1", "QA": "Catar", "KZ": "Cazaquist\u00e3o", "TD": "Chade", "CL": "Chile", "CN": "China", "CY": "Chipre", "VA": "Cidade do Vaticano", "CO": "Col\u00f4mbia", "KM": "Comores", "CD": "Congo - Kinshasa", "KP": "Coreia do Norte", "KR": "Coreia do Sul", "CI": "Costa do Marfim", "CR": "Costa Rica", "HR": "Cro\u00e1cia", "CU": "Cuba", "CW": "Cura\u00e7ao", "DK": "Dinamarca", "DJ": "Djibuti", "DM": "Dominica", "EG": "Egito", "SV": "El Salvador", "AE": "Emirados \u00c1rabes Unidos", "EC": "Equador", "ER": "Eritreia", "SK": "Eslov\u00e1quia", "SI": "Eslov\u00eania", "ES": "Espanha", "SZ": "Essuat\u00edni", "US": "Estados Unidos", "EE": "Est\u00f4nia", "ET": "Eti\u00f3pia", "FJ": "Fiji", "PH": "Filipinas", "FI": "Finl\u00e2ndia", "FR": "Fran\u00e7a", "GA": "Gab\u00e3o", "GM": "G\u00e2mbia", "GH": "Gana", "GE": "Ge\u00f3rgia", "GI": "Gibraltar", "GD": "Granada", "GR": "Gr\u00e9cia", "GL": "Groenl\u00e2ndia", "GP": "Guadalupe", "GU": "Guam", "GT": "Guatemala", "GG": "Guernsey", "GY": "Guiana", "GF": "Guiana Francesa", "GN": "Guin\u00e9", "GQ": "Guin\u00e9 Equatorial", "GW": "Guin\u00e9-Bissau", "HT": "Haiti", "HN": "Honduras", "HK": "Hong Kong, RAE da China", "HU": "Hungria", "YE": "I\u00eamen", "BV": "Ilha Bouvet", "CX": "Ilha Christmas", "IM": "Ilha de Man", "NF": "Ilha Norfolk", "AX": "Ilhas Aland", "KY": "Ilhas Cayman", "CC": "Ilhas Cocos (Keeling)", "CK": "Ilhas Cook", "FO": "Ilhas Faroe", "GS": "Ilhas Ge\u00f3rgia do Sul e Sandwich do Sul", "HM": "Ilhas Heard e McDonald", "FK": "Ilhas Malvinas", "MP": "Ilhas Marianas do Norte", "MH": "Ilhas Marshall", "UM": "Ilhas Menores Distantes dos EUA", "PN": "Ilhas Pitcairn", "SB": "Ilhas Salom\u00e3o", "TC": "Ilhas Turcas e Caicos", "VI": "Ilhas Virgens Americanas", "VG": "Ilhas Virgens Brit\u00e2nicas", "IN": "\u00cdndia", "ID": "Indon\u00e9sia", "IR": "Ir\u00e3", "IQ": "Iraque", "IE": "Irlanda", "IS": "Isl\u00e2ndia", "IL": "Israel", "IT": "It\u00e1lia", "JM": "Jamaica", "JP": "Jap\u00e3o", "JE": "Jersey", "JO": "Jord\u00e2nia", "KW": "Kuwait", "LA": "Laos", "LS": "Lesoto", "LV": "Let\u00f4nia", "LB": "L\u00edbano", "LR": "Lib\u00e9ria", "LY": "L\u00edbia", "LI": "Liechtenstein", "LT": "Litu\u00e2nia", "LU": "Luxemburgo", "MO": "Macau, RAE da China", "MK": "Maced\u00f4nia do Norte", "MG": "Madagascar", "MY": "Mal\u00e1sia", "MW": "Malaui", "MV": "Maldivas", "ML": "Mali", "MT": "Malta", "MA": "Marrocos", "MQ": "Martinica", "MU": "Maur\u00edcio", "MR": "Maurit\u00e2nia", "YT": "Mayotte", "MX": "M\u00e9xico", "MM": "Mianmar (Birm\u00e2nia)", "FM": "Micron\u00e9sia", "MZ": "Mo\u00e7ambique", "MD": "Moldova", "MC": "M\u00f4naco", "MN": "Mong\u00f3lia", "ME": "Montenegro", "MS": "Montserrat", "NA": "Nam\u00edbia", "NR": "Nauru", "NP": "Nepal", "NI": "Nicar\u00e1gua", "NE": "N\u00edger", "NG": "Nig\u00e9ria", "NU": "Niue", "NO": "Noruega", "NC": "Nova Caled\u00f4nia", "NZ": "Nova Zel\u00e2ndia", "OM": "Om\u00e3", "NL": "Pa\u00edses Baixos", "BQ": "Pa\u00edses Baixos Caribenhos", "PW": "Palau", "PA": "Panam\u00e1", "PG": "Papua-Nova Guin\u00e9", "PK": "Paquist\u00e3o", "PY": "Paraguai", "PE": "Peru", "PF": "Polin\u00e9sia Francesa", "PL": "Pol\u00f4nia", "PR": "Porto Rico", "PT": "Portugal", "KE": "Qu\u00eania", "KG": "Quirguist\u00e3o", "KI": "Quiribati", "GB": "Reino Unido", "CF": "Rep\u00fablica Centro-Africana", "CG": "Rep\u00fablica do Congo", "DO": "Rep\u00fablica Dominicana", "RE": "Reuni\u00e3o", "RO": "Rom\u00eania", "RW": "Ruanda", "RU": "R\u00fassia", "EH": "Saara Ocidental", "WS": "Samoa", "AS": "Samoa Americana", "SM": "San Marino", "SH": "Santa Helena", "LC": "Santa L\u00facia", "BL": "S\u00e3o Bartolomeu", "KN": "S\u00e3o Crist\u00f3v\u00e3o e N\u00e9vis", "MF": "S\u00e3o Martinho", "PM": "S\u00e3o Pedro e Miquel\u00e3o", "ST": "S\u00e3o Tom\u00e9 e Pr\u00edncipe", "VC": "S\u00e3o Vicente e Granadinas", "SC": "Seicheles", "SN": "Senegal", "SL": "Serra Leoa", "RS": "S\u00e9rvia", "SG": "Singapura", "SX": "Sint Maarten", "SY": "S\u00edria", "SO": "Som\u00e1lia", "LK": "Sri Lanka", "SD": "Sud\u00e3o", "SS": "Sud\u00e3o do Sul", "SE": "Su\u00e9cia", "CH": "Su\u00ed\u00e7a", "SR": "Suriname", "SJ": "Svalbard e Jan Mayen", "TJ": "Tadjiquist\u00e3o", "TH": "Tail\u00e2ndia", "TW": "Taiwan", "TZ": "Tanz\u00e2nia", "CZ": "Tch\u00e9quia", "IO": "Territ\u00f3rio Brit\u00e2nico do Oceano \u00cdndico", "TF": "Territ\u00f3rios Franceses do Sul", "PS": "Territ\u00f3rios palestinos", "TL": "Timor-Leste", "TG": "Togo", "TK": "Tokelau", "TO": "Tonga", "TT": "Trinidad e Tobago", "TN": "Tun\u00edsia", "TM": "Turcomenist\u00e3o", "TR": "Turquia", "TV": "Tuvalu", "UA": "Ucr\u00e2nia", "UG": "Uganda", "UY": "Uruguai", "UZ": "Uzbequist\u00e3o", "VU": "Vanuatu", "VE": "Venezuela", "VN": "Vietn\u00e3", "WF": "Wallis e Futuna", "ZM": "Z\u00e2mbia", "ZW": "Zimb\u00e1bue"} \ No newline at end of file diff --git a/desktop/src/onionshare/resources/countries/ru.json b/desktop/src/onionshare/resources/countries/ru.json new file mode 100644 index 00000000..e7c9200c --- /dev/null +++ b/desktop/src/onionshare/resources/countries/ru.json @@ -0,0 +1 @@ +{"AU": "\u0410\u0432\u0441\u0442\u0440\u0430\u043b\u0438\u044f", "AT": "\u0410\u0432\u0441\u0442\u0440\u0438\u044f", "AZ": "\u0410\u0437\u0435\u0440\u0431\u0430\u0439\u0434\u0436\u0430\u043d", "AX": "\u0410\u043b\u0430\u043d\u0434\u0441\u043a\u0438\u0435 \u043e-\u0432\u0430", "AL": "\u0410\u043b\u0431\u0430\u043d\u0438\u044f", "DZ": "\u0410\u043b\u0436\u0438\u0440", "AS": "\u0410\u043c\u0435\u0440\u0438\u043a\u0430\u043d\u0441\u043a\u043e\u0435 \u0421\u0430\u043c\u043e\u0430", "AI": "\u0410\u043d\u0433\u0438\u043b\u044c\u044f", "AO": "\u0410\u043d\u0433\u043e\u043b\u0430", "AD": "\u0410\u043d\u0434\u043e\u0440\u0440\u0430", "AQ": "\u0410\u043d\u0442\u0430\u0440\u043a\u0442\u0438\u0434\u0430", "AG": "\u0410\u043d\u0442\u0438\u0433\u0443\u0430 \u0438 \u0411\u0430\u0440\u0431\u0443\u0434\u0430", "AR": "\u0410\u0440\u0433\u0435\u043d\u0442\u0438\u043d\u0430", "AM": "\u0410\u0440\u043c\u0435\u043d\u0438\u044f", "AW": "\u0410\u0440\u0443\u0431\u0430", "AF": "\u0410\u0444\u0433\u0430\u043d\u0438\u0441\u0442\u0430\u043d", "BS": "\u0411\u0430\u0433\u0430\u043c\u044b", "BD": "\u0411\u0430\u043d\u0433\u043b\u0430\u0434\u0435\u0448", "BB": "\u0411\u0430\u0440\u0431\u0430\u0434\u043e\u0441", "BH": "\u0411\u0430\u0445\u0440\u0435\u0439\u043d", "BY": "\u0411\u0435\u043b\u0430\u0440\u0443\u0441\u044c", "BZ": "\u0411\u0435\u043b\u0438\u0437", "BE": "\u0411\u0435\u043b\u044c\u0433\u0438\u044f", "BJ": "\u0411\u0435\u043d\u0438\u043d", "BM": "\u0411\u0435\u0440\u043c\u0443\u0434\u0441\u043a\u0438\u0435 \u043e-\u0432\u0430", "BG": "\u0411\u043e\u043b\u0433\u0430\u0440\u0438\u044f", "BO": "\u0411\u043e\u043b\u0438\u0432\u0438\u044f", "BQ": "\u0411\u043e\u043d\u044d\u0439\u0440, \u0421\u0438\u043d\u0442-\u042d\u0441\u0442\u0430\u0442\u0438\u0443\u0441 \u0438 \u0421\u0430\u0431\u0430", "BA": "\u0411\u043e\u0441\u043d\u0438\u044f \u0438 \u0413\u0435\u0440\u0446\u0435\u0433\u043e\u0432\u0438\u043d\u0430", "BW": "\u0411\u043e\u0442\u0441\u0432\u0430\u043d\u0430", "BR": "\u0411\u0440\u0430\u0437\u0438\u043b\u0438\u044f", "IO": "\u0411\u0440\u0438\u0442\u0430\u043d\u0441\u043a\u0430\u044f \u0442\u0435\u0440\u0440\u0438\u0442\u043e\u0440\u0438\u044f \u0432 \u0418\u043d\u0434\u0438\u0439\u0441\u043a\u043e\u043c \u043e\u043a\u0435\u0430\u043d\u0435", "BN": "\u0411\u0440\u0443\u043d\u0435\u0439-\u0414\u0430\u0440\u0443\u0441\u0441\u0430\u043b\u0430\u043c", "BF": "\u0411\u0443\u0440\u043a\u0438\u043d\u0430-\u0424\u0430\u0441\u043e", "BI": "\u0411\u0443\u0440\u0443\u043d\u0434\u0438", "BT": "\u0411\u0443\u0442\u0430\u043d", "VU": "\u0412\u0430\u043d\u0443\u0430\u0442\u0443", "VA": "\u0412\u0430\u0442\u0438\u043a\u0430\u043d", "GB": "\u0412\u0435\u043b\u0438\u043a\u043e\u0431\u0440\u0438\u0442\u0430\u043d\u0438\u044f", "HU": "\u0412\u0435\u043d\u0433\u0440\u0438\u044f", "VE": "\u0412\u0435\u043d\u0435\u0441\u0443\u044d\u043b\u0430", "VG": "\u0412\u0438\u0440\u0433\u0438\u043d\u0441\u043a\u0438\u0435 \u043e-\u0432\u0430 (\u0412\u0435\u043b\u0438\u043a\u043e\u0431\u0440\u0438\u0442\u0430\u043d\u0438\u044f)", "VI": "\u0412\u0438\u0440\u0433\u0438\u043d\u0441\u043a\u0438\u0435 \u043e-\u0432\u0430 (\u0421\u0428\u0410)", "UM": "\u0412\u043d\u0435\u0448\u043d\u0438\u0435 \u043c\u0430\u043b\u044b\u0435 \u043e-\u0432\u0430 (\u0421\u0428\u0410)", "TL": "\u0412\u043e\u0441\u0442\u043e\u0447\u043d\u044b\u0439 \u0422\u0438\u043c\u043e\u0440", "VN": "\u0412\u044c\u0435\u0442\u043d\u0430\u043c", "GA": "\u0413\u0430\u0431\u043e\u043d", "HT": "\u0413\u0430\u0438\u0442\u0438", "GY": "\u0413\u0430\u0439\u0430\u043d\u0430", "GM": "\u0413\u0430\u043c\u0431\u0438\u044f", "GH": "\u0413\u0430\u043d\u0430", "GP": "\u0413\u0432\u0430\u0434\u0435\u043b\u0443\u043f\u0430", "GT": "\u0413\u0432\u0430\u0442\u0435\u043c\u0430\u043b\u0430", "GN": "\u0413\u0432\u0438\u043d\u0435\u044f", "GW": "\u0413\u0432\u0438\u043d\u0435\u044f-\u0411\u0438\u0441\u0430\u0443", "DE": "\u0413\u0435\u0440\u043c\u0430\u043d\u0438\u044f", "GG": "\u0413\u0435\u0440\u043d\u0441\u0438", "GI": "\u0413\u0438\u0431\u0440\u0430\u043b\u0442\u0430\u0440", "HN": "\u0413\u043e\u043d\u0434\u0443\u0440\u0430\u0441", "HK": "\u0413\u043e\u043d\u043a\u043e\u043d\u0433 (\u0421\u0410\u0420)", "GD": "\u0413\u0440\u0435\u043d\u0430\u0434\u0430", "GL": "\u0413\u0440\u0435\u043d\u043b\u0430\u043d\u0434\u0438\u044f", "GR": "\u0413\u0440\u0435\u0446\u0438\u044f", "GE": "\u0413\u0440\u0443\u0437\u0438\u044f", "GU": "\u0413\u0443\u0430\u043c", "DK": "\u0414\u0430\u043d\u0438\u044f", "JE": "\u0414\u0436\u0435\u0440\u0441\u0438", "DJ": "\u0414\u0436\u0438\u0431\u0443\u0442\u0438", "DM": "\u0414\u043e\u043c\u0438\u043d\u0438\u043a\u0430", "DO": "\u0414\u043e\u043c\u0438\u043d\u0438\u043a\u0430\u043d\u0441\u043a\u0430\u044f \u0420\u0435\u0441\u043f\u0443\u0431\u043b\u0438\u043a\u0430", "EG": "\u0415\u0433\u0438\u043f\u0435\u0442", "ZM": "\u0417\u0430\u043c\u0431\u0438\u044f", "EH": "\u0417\u0430\u043f\u0430\u0434\u043d\u0430\u044f \u0421\u0430\u0445\u0430\u0440\u0430", "ZW": "\u0417\u0438\u043c\u0431\u0430\u0431\u0432\u0435", "IL": "\u0418\u0437\u0440\u0430\u0438\u043b\u044c", "IN": "\u0418\u043d\u0434\u0438\u044f", "ID": "\u0418\u043d\u0434\u043e\u043d\u0435\u0437\u0438\u044f", "JO": "\u0418\u043e\u0440\u0434\u0430\u043d\u0438\u044f", "IQ": "\u0418\u0440\u0430\u043a", "IR": "\u0418\u0440\u0430\u043d", "IE": "\u0418\u0440\u043b\u0430\u043d\u0434\u0438\u044f", "IS": "\u0418\u0441\u043b\u0430\u043d\u0434\u0438\u044f", "ES": "\u0418\u0441\u043f\u0430\u043d\u0438\u044f", "IT": "\u0418\u0442\u0430\u043b\u0438\u044f", "YE": "\u0419\u0435\u043c\u0435\u043d", "CV": "\u041a\u0430\u0431\u043e-\u0412\u0435\u0440\u0434\u0435", "KZ": "\u041a\u0430\u0437\u0430\u0445\u0441\u0442\u0430\u043d", "KH": "\u041a\u0430\u043c\u0431\u043e\u0434\u0436\u0430", "CM": "\u041a\u0430\u043c\u0435\u0440\u0443\u043d", "CA": "\u041a\u0430\u043d\u0430\u0434\u0430", "QA": "\u041a\u0430\u0442\u0430\u0440", "KE": "\u041a\u0435\u043d\u0438\u044f", "CY": "\u041a\u0438\u043f\u0440", "KG": "\u041a\u0438\u0440\u0433\u0438\u0437\u0438\u044f", "KI": "\u041a\u0438\u0440\u0438\u0431\u0430\u0442\u0438", "CN": "\u041a\u0438\u0442\u0430\u0439", "KP": "\u041a\u041d\u0414\u0420", "CC": "\u041a\u043e\u043a\u043e\u0441\u043e\u0432\u044b\u0435 \u043e-\u0432\u0430", "CO": "\u041a\u043e\u043b\u0443\u043c\u0431\u0438\u044f", "KM": "\u041a\u043e\u043c\u043e\u0440\u044b", "CG": "\u041a\u043e\u043d\u0433\u043e - \u0411\u0440\u0430\u0437\u0437\u0430\u0432\u0438\u043b\u044c", "CD": "\u041a\u043e\u043d\u0433\u043e - \u041a\u0438\u043d\u0448\u0430\u0441\u0430", "CR": "\u041a\u043e\u0441\u0442\u0430-\u0420\u0438\u043a\u0430", "CI": "\u041a\u043e\u0442-\u0434\u2019\u0418\u0432\u0443\u0430\u0440", "CU": "\u041a\u0443\u0431\u0430", "KW": "\u041a\u0443\u0432\u0435\u0439\u0442", "CW": "\u041a\u044e\u0440\u0430\u0441\u0430\u043e", "LA": "\u041b\u0430\u043e\u0441", "LV": "\u041b\u0430\u0442\u0432\u0438\u044f", "LS": "\u041b\u0435\u0441\u043e\u0442\u043e", "LR": "\u041b\u0438\u0431\u0435\u0440\u0438\u044f", "LB": "\u041b\u0438\u0432\u0430\u043d", "LY": "\u041b\u0438\u0432\u0438\u044f", "LT": "\u041b\u0438\u0442\u0432\u0430", "LI": "\u041b\u0438\u0445\u0442\u0435\u043d\u0448\u0442\u0435\u0439\u043d", "LU": "\u041b\u044e\u043a\u0441\u0435\u043c\u0431\u0443\u0440\u0433", "MU": "\u041c\u0430\u0432\u0440\u0438\u043a\u0438\u0439", "MR": "\u041c\u0430\u0432\u0440\u0438\u0442\u0430\u043d\u0438\u044f", "MG": "\u041c\u0430\u0434\u0430\u0433\u0430\u0441\u043a\u0430\u0440", "YT": "\u041c\u0430\u0439\u043e\u0442\u0442\u0430", "MO": "\u041c\u0430\u043a\u0430\u043e (\u0421\u0410\u0420)", "MW": "\u041c\u0430\u043b\u0430\u0432\u0438", "MY": "\u041c\u0430\u043b\u0430\u0439\u0437\u0438\u044f", "ML": "\u041c\u0430\u043b\u0438", "MV": "\u041c\u0430\u043b\u044c\u0434\u0438\u0432\u044b", "MT": "\u041c\u0430\u043b\u044c\u0442\u0430", "MA": "\u041c\u0430\u0440\u043e\u043a\u043a\u043e", "MQ": "\u041c\u0430\u0440\u0442\u0438\u043d\u0438\u043a\u0430", "MH": "\u041c\u0430\u0440\u0448\u0430\u043b\u043b\u043e\u0432\u044b \u041e\u0441\u0442\u0440\u043e\u0432\u0430", "MX": "\u041c\u0435\u043a\u0441\u0438\u043a\u0430", "MZ": "\u041c\u043e\u0437\u0430\u043c\u0431\u0438\u043a", "MD": "\u041c\u043e\u043b\u0434\u043e\u0432\u0430", "MC": "\u041c\u043e\u043d\u0430\u043a\u043e", "MN": "\u041c\u043e\u043d\u0433\u043e\u043b\u0438\u044f", "MS": "\u041c\u043e\u043d\u0442\u0441\u0435\u0440\u0440\u0430\u0442", "MM": "\u041c\u044c\u044f\u043d\u043c\u0430 (\u0411\u0438\u0440\u043c\u0430)", "NA": "\u041d\u0430\u043c\u0438\u0431\u0438\u044f", "NR": "\u041d\u0430\u0443\u0440\u0443", "NP": "\u041d\u0435\u043f\u0430\u043b", "NE": "\u041d\u0438\u0433\u0435\u0440", "NG": "\u041d\u0438\u0433\u0435\u0440\u0438\u044f", "NL": "\u041d\u0438\u0434\u0435\u0440\u043b\u0430\u043d\u0434\u044b", "NI": "\u041d\u0438\u043a\u0430\u0440\u0430\u0433\u0443\u0430", "NU": "\u041d\u0438\u0443\u044d", "NZ": "\u041d\u043e\u0432\u0430\u044f \u0417\u0435\u043b\u0430\u043d\u0434\u0438\u044f", "NC": "\u041d\u043e\u0432\u0430\u044f \u041a\u0430\u043b\u0435\u0434\u043e\u043d\u0438\u044f", "NO": "\u041d\u043e\u0440\u0432\u0435\u0433\u0438\u044f", "BV": "\u043e-\u0432 \u0411\u0443\u0432\u0435", "IM": "\u043e-\u0432 \u041c\u044d\u043d", "NF": "\u043e-\u0432 \u041d\u043e\u0440\u0444\u043e\u043b\u043a", "CX": "\u043e-\u0432 \u0420\u043e\u0436\u0434\u0435\u0441\u0442\u0432\u0430", "SH": "\u043e-\u0432 \u0421\u0432. \u0415\u043b\u0435\u043d\u044b", "PN": "\u043e-\u0432\u0430 \u041f\u0438\u0442\u043a\u044d\u0440\u043d", "TC": "\u043e-\u0432\u0430 \u0422\u0451\u0440\u043a\u0441 \u0438 \u041a\u0430\u0439\u043a\u043e\u0441", "HM": "\u043e-\u0432\u0430 \u0425\u0435\u0440\u0434 \u0438 \u041c\u0430\u043a\u0434\u043e\u043d\u0430\u043b\u044c\u0434", "AE": "\u041e\u0410\u042d", "OM": "\u041e\u043c\u0430\u043d", "KY": "\u041e\u0441\u0442\u0440\u043e\u0432\u0430 \u041a\u0430\u0439\u043c\u0430\u043d", "CK": "\u041e\u0441\u0442\u0440\u043e\u0432\u0430 \u041a\u0443\u043a\u0430", "PK": "\u041f\u0430\u043a\u0438\u0441\u0442\u0430\u043d", "PW": "\u041f\u0430\u043b\u0430\u0443", "PS": "\u041f\u0430\u043b\u0435\u0441\u0442\u0438\u043d\u0441\u043a\u0438\u0435 \u0442\u0435\u0440\u0440\u0438\u0442\u043e\u0440\u0438\u0438", "PA": "\u041f\u0430\u043d\u0430\u043c\u0430", "PG": "\u041f\u0430\u043f\u0443\u0430 \u2014 \u041d\u043e\u0432\u0430\u044f \u0413\u0432\u0438\u043d\u0435\u044f", "PY": "\u041f\u0430\u0440\u0430\u0433\u0432\u0430\u0439", "PE": "\u041f\u0435\u0440\u0443", "PL": "\u041f\u043e\u043b\u044c\u0448\u0430", "PT": "\u041f\u043e\u0440\u0442\u0443\u0433\u0430\u043b\u0438\u044f", "PR": "\u041f\u0443\u044d\u0440\u0442\u043e-\u0420\u0438\u043a\u043e", "KR": "\u0420\u0435\u0441\u043f\u0443\u0431\u043b\u0438\u043a\u0430 \u041a\u043e\u0440\u0435\u044f", "RE": "\u0420\u0435\u044e\u043d\u044c\u043e\u043d", "RU": "\u0420\u043e\u0441\u0441\u0438\u044f", "RW": "\u0420\u0443\u0430\u043d\u0434\u0430", "RO": "\u0420\u0443\u043c\u044b\u043d\u0438\u044f", "SV": "\u0421\u0430\u043b\u044c\u0432\u0430\u0434\u043e\u0440", "WS": "\u0421\u0430\u043c\u043e\u0430", "SM": "\u0421\u0430\u043d-\u041c\u0430\u0440\u0438\u043d\u043e", "ST": "\u0421\u0430\u043d-\u0422\u043e\u043c\u0435 \u0438 \u041f\u0440\u0438\u043d\u0441\u0438\u043f\u0438", "SA": "\u0421\u0430\u0443\u0434\u043e\u0432\u0441\u043a\u0430\u044f \u0410\u0440\u0430\u0432\u0438\u044f", "MK": "\u0421\u0435\u0432\u0435\u0440\u043d\u0430\u044f \u041c\u0430\u043a\u0435\u0434\u043e\u043d\u0438\u044f", "MP": "\u0421\u0435\u0432\u0435\u0440\u043d\u044b\u0435 \u041c\u0430\u0440\u0438\u0430\u043d\u0441\u043a\u0438\u0435 \u043e-\u0432\u0430", "SC": "\u0421\u0435\u0439\u0448\u0435\u043b\u044c\u0441\u043a\u0438\u0435 \u041e\u0441\u0442\u0440\u043e\u0432\u0430", "BL": "\u0421\u0435\u043d-\u0411\u0430\u0440\u0442\u0435\u043b\u0435\u043c\u0438", "MF": "\u0421\u0435\u043d-\u041c\u0430\u0440\u0442\u0435\u043d", "PM": "\u0421\u0435\u043d-\u041f\u044c\u0435\u0440 \u0438 \u041c\u0438\u043a\u0435\u043b\u043e\u043d", "SN": "\u0421\u0435\u043d\u0435\u0433\u0430\u043b", "VC": "\u0421\u0435\u043d\u0442-\u0412\u0438\u043d\u0441\u0435\u043d\u0442 \u0438 \u0413\u0440\u0435\u043d\u0430\u0434\u0438\u043d\u044b", "KN": "\u0421\u0435\u043d\u0442-\u041a\u0438\u0442\u0441 \u0438 \u041d\u0435\u0432\u0438\u0441", "LC": "\u0421\u0435\u043d\u0442-\u041b\u044e\u0441\u0438\u044f", "RS": "\u0421\u0435\u0440\u0431\u0438\u044f", "SG": "\u0421\u0438\u043d\u0433\u0430\u043f\u0443\u0440", "SX": "\u0421\u0438\u043d\u0442-\u041c\u0430\u0440\u0442\u0435\u043d", "SY": "\u0421\u0438\u0440\u0438\u044f", "SK": "\u0421\u043b\u043e\u0432\u0430\u043a\u0438\u044f", "SI": "\u0421\u043b\u043e\u0432\u0435\u043d\u0438\u044f", "US": "\u0421\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u043d\u044b\u0435 \u0428\u0442\u0430\u0442\u044b", "SB": "\u0421\u043e\u043b\u043e\u043c\u043e\u043d\u043e\u0432\u044b \u041e\u0441\u0442\u0440\u043e\u0432\u0430", "SO": "\u0421\u043e\u043c\u0430\u043b\u0438", "SD": "\u0421\u0443\u0434\u0430\u043d", "SR": "\u0421\u0443\u0440\u0438\u043d\u0430\u043c", "SL": "\u0421\u044c\u0435\u0440\u0440\u0430-\u041b\u0435\u043e\u043d\u0435", "TJ": "\u0422\u0430\u0434\u0436\u0438\u043a\u0438\u0441\u0442\u0430\u043d", "TH": "\u0422\u0430\u0438\u043b\u0430\u043d\u0434", "TW": "\u0422\u0430\u0439\u0432\u0430\u043d\u044c", "TZ": "\u0422\u0430\u043d\u0437\u0430\u043d\u0438\u044f", "TG": "\u0422\u043e\u0433\u043e", "TK": "\u0422\u043e\u043a\u0435\u043b\u0430\u0443", "TO": "\u0422\u043e\u043d\u0433\u0430", "TT": "\u0422\u0440\u0438\u043d\u0438\u0434\u0430\u0434 \u0438 \u0422\u043e\u0431\u0430\u0433\u043e", "TV": "\u0422\u0443\u0432\u0430\u043b\u0443", "TN": "\u0422\u0443\u043d\u0438\u0441", "TM": "\u0422\u0443\u0440\u043a\u043c\u0435\u043d\u0438\u0441\u0442\u0430\u043d", "TR": "\u0422\u0443\u0440\u0446\u0438\u044f", "UG": "\u0423\u0433\u0430\u043d\u0434\u0430", "UZ": "\u0423\u0437\u0431\u0435\u043a\u0438\u0441\u0442\u0430\u043d", "UA": "\u0423\u043a\u0440\u0430\u0438\u043d\u0430", "WF": "\u0423\u043e\u043b\u043b\u0438\u0441 \u0438 \u0424\u0443\u0442\u0443\u043d\u0430", "UY": "\u0423\u0440\u0443\u0433\u0432\u0430\u0439", "FO": "\u0424\u0430\u0440\u0435\u0440\u0441\u043a\u0438\u0435 \u043e-\u0432\u0430", "FM": "\u0424\u0435\u0434\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u044b\u0435 \u0428\u0442\u0430\u0442\u044b \u041c\u0438\u043a\u0440\u043e\u043d\u0435\u0437\u0438\u0438", "FJ": "\u0424\u0438\u0434\u0436\u0438", "PH": "\u0424\u0438\u043b\u0438\u043f\u043f\u0438\u043d\u044b", "FI": "\u0424\u0438\u043d\u043b\u044f\u043d\u0434\u0438\u044f", "FK": "\u0424\u043e\u043b\u043a\u043b\u0435\u043d\u0434\u0441\u043a\u0438\u0435 \u043e-\u0432\u0430", "FR": "\u0424\u0440\u0430\u043d\u0446\u0438\u044f", "GF": "\u0424\u0440\u0430\u043d\u0446\u0443\u0437\u0441\u043a\u0430\u044f \u0413\u0432\u0438\u0430\u043d\u0430", "PF": "\u0424\u0440\u0430\u043d\u0446\u0443\u0437\u0441\u043a\u0430\u044f \u041f\u043e\u043b\u0438\u043d\u0435\u0437\u0438\u044f", "TF": "\u0424\u0440\u0430\u043d\u0446\u0443\u0437\u0441\u043a\u0438\u0435 \u042e\u0436\u043d\u044b\u0435 \u0442\u0435\u0440\u0440\u0438\u0442\u043e\u0440\u0438\u0438", "HR": "\u0425\u043e\u0440\u0432\u0430\u0442\u0438\u044f", "CF": "\u0426\u0435\u043d\u0442\u0440\u0430\u043b\u044c\u043d\u043e-\u0410\u0444\u0440\u0438\u043a\u0430\u043d\u0441\u043a\u0430\u044f \u0420\u0435\u0441\u043f\u0443\u0431\u043b\u0438\u043a\u0430", "TD": "\u0427\u0430\u0434", "ME": "\u0427\u0435\u0440\u043d\u043e\u0433\u043e\u0440\u0438\u044f", "CZ": "\u0427\u0435\u0445\u0438\u044f", "CL": "\u0427\u0438\u043b\u0438", "CH": "\u0428\u0432\u0435\u0439\u0446\u0430\u0440\u0438\u044f", "SE": "\u0428\u0432\u0435\u0446\u0438\u044f", "SJ": "\u0428\u043f\u0438\u0446\u0431\u0435\u0440\u0433\u0435\u043d \u0438 \u042f\u043d-\u041c\u0430\u0439\u0435\u043d", "LK": "\u0428\u0440\u0438-\u041b\u0430\u043d\u043a\u0430", "EC": "\u042d\u043a\u0432\u0430\u0434\u043e\u0440", "GQ": "\u042d\u043a\u0432\u0430\u0442\u043e\u0440\u0438\u0430\u043b\u044c\u043d\u0430\u044f \u0413\u0432\u0438\u043d\u0435\u044f", "ER": "\u042d\u0440\u0438\u0442\u0440\u0435\u044f", "SZ": "\u042d\u0441\u0432\u0430\u0442\u0438\u043d\u0438", "EE": "\u042d\u0441\u0442\u043e\u043d\u0438\u044f", "ET": "\u042d\u0444\u0438\u043e\u043f\u0438\u044f", "GS": "\u042e\u0436\u043d\u0430\u044f \u0413\u0435\u043e\u0440\u0433\u0438\u044f \u0438 \u042e\u0436\u043d\u044b\u0435 \u0421\u0430\u043d\u0434\u0432\u0438\u0447\u0435\u0432\u044b \u043e-\u0432\u0430", "ZA": "\u042e\u0436\u043d\u043e-\u0410\u0444\u0440\u0438\u043a\u0430\u043d\u0441\u043a\u0430\u044f \u0420\u0435\u0441\u043f\u0443\u0431\u043b\u0438\u043a\u0430", "SS": "\u042e\u0436\u043d\u044b\u0439 \u0421\u0443\u0434\u0430\u043d", "JM": "\u042f\u043c\u0430\u0439\u043a\u0430", "JP": "\u042f\u043f\u043e\u043d\u0438\u044f"} \ No newline at end of file diff --git a/desktop/src/onionshare/resources/countries/sv.json b/desktop/src/onionshare/resources/countries/sv.json new file mode 100644 index 00000000..401b9156 --- /dev/null +++ b/desktop/src/onionshare/resources/countries/sv.json @@ -0,0 +1 @@ +{"AF": "Afghanistan", "AL": "Albanien", "DZ": "Algeriet", "VI": "Amerikanska Jungfru\u00f6arna", "AS": "Amerikanska Samoa", "AD": "Andorra", "AO": "Angola", "AI": "Anguilla", "AQ": "Antarktis", "AG": "Antigua och Barbuda", "AR": "Argentina", "AM": "Armenien", "AW": "Aruba", "AU": "Australien", "AZ": "Azerbajdzjan", "BS": "Bahamas", "BH": "Bahrain", "BD": "Bangladesh", "BB": "Barbados", "BE": "Belgien", "BZ": "Belize", "BJ": "Benin", "BM": "Bermuda", "BT": "Bhutan", "BO": "Bolivia", "BA": "Bosnien och Hercegovina", "BW": "Botswana", "BV": "Bouvet\u00f6n", "BR": "Brasilien", "VG": "Brittiska Jungfru\u00f6arna", "IO": "Brittiska territoriet i Indiska oceanen", "BN": "Brunei", "BG": "Bulgarien", "BF": "Burkina Faso", "BI": "Burundi", "KY": "Cayman\u00f6arna", "CF": "Centralafrikanska republiken", "CL": "Chile", "CO": "Colombia", "CK": "Cook\u00f6arna", "CR": "Costa Rica", "CW": "Cura\u00e7ao", "CY": "Cypern", "CI": "C\u00f4te d\u2019Ivoire", "DK": "Danmark", "DJ": "Djibouti", "DM": "Dominica", "DO": "Dominikanska republiken", "EC": "Ecuador", "EG": "Egypten", "GQ": "Ekvatorialguinea", "SV": "El Salvador", "ER": "Eritrea", "EE": "Estland", "ET": "Etiopien", "FK": "Falklands\u00f6arna", "FJ": "Fiji", "PH": "Filippinerna", "FI": "Finland", "FR": "Frankrike", "GF": "Franska Guyana", "PF": "Franska Polynesien", "TF": "Franska sydterritorierna", "FO": "F\u00e4r\u00f6arna", "AE": "F\u00f6renade Arabemiraten", "GA": "Gabon", "GM": "Gambia", "GE": "Georgien", "GH": "Ghana", "GI": "Gibraltar", "GR": "Grekland", "GD": "Grenada", "GL": "Gr\u00f6nland", "GP": "Guadeloupe", "GU": "Guam", "GT": "Guatemala", "GG": "Guernsey", "GN": "Guinea", "GW": "Guinea-Bissau", "GY": "Guyana", "HT": "Haiti", "HM": "Heard\u00f6n och McDonald\u00f6arna", "HN": "Honduras", "HK": "Hongkong", "IN": "Indien", "ID": "Indonesien", "IQ": "Irak", "IR": "Iran", "IE": "Irland", "IS": "Island", "IM": "Isle of Man", "IL": "Israel", "IT": "Italien", "JM": "Jamaica", "JP": "Japan", "YE": "Jemen", "JE": "Jersey", "JO": "Jordanien", "CX": "Jul\u00f6n", "KH": "Kambodja", "CM": "Kamerun", "CA": "Kanada", "CV": "Kap Verde", "BQ": "Karibiska Nederl\u00e4nderna", "KZ": "Kazakstan", "KE": "Kenya", "CN": "Kina", "KG": "Kirgizistan", "KI": "Kiribati", "CC": "Kokos\u00f6arna", "KM": "Komorerna", "CG": "Kongo-Brazzaville", "CD": "Kongo-Kinshasa", "HR": "Kroatien", "CU": "Kuba", "KW": "Kuwait", "LA": "Laos", "LS": "Lesotho", "LV": "Lettland", "LB": "Libanon", "LR": "Liberia", "LY": "Libyen", "LI": "Liechtenstein", "LT": "Litauen", "LU": "Luxemburg", "MO": "Macao", "MG": "Madagaskar", "MW": "Malawi", "MY": "Malaysia", "MV": "Maldiverna", "ML": "Mali", "MT": "Malta", "MA": "Marocko", "MH": "Marshall\u00f6arna", "MQ": "Martinique", "MR": "Mauretanien", "MU": "Mauritius", "YT": "Mayotte", "MX": "Mexiko", "FM": "Mikronesien", "MZ": "Mo\u00e7ambique", "MD": "Moldavien", "MC": "Monaco", "MN": "Mongoliet", "ME": "Montenegro", "MS": "Montserrat", "MM": "Myanmar (Burma)", "NA": "Namibia", "NR": "Nauru", "NL": "Nederl\u00e4nderna", "NP": "Nepal", "NI": "Nicaragua", "NE": "Niger", "NG": "Nigeria", "NU": "Niue", "KP": "Nordkorea", "MK": "Nordmakedonien", "MP": "Nordmarianerna", "NF": "Norfolk\u00f6n", "NO": "Norge", "NC": "Nya Kaledonien", "NZ": "Nya Zeeland", "OM": "Oman", "PK": "Pakistan", "PW": "Palau", "PS": "Palestinska territorierna", "PA": "Panama", "PG": "Papua Nya Guinea", "PY": "Paraguay", "PE": "Peru", "PN": "Pitcairn\u00f6arna", "PL": "Polen", "PT": "Portugal", "PR": "Puerto Rico", "QA": "Qatar", "RE": "R\u00e9union", "RO": "Rum\u00e4nien", "RW": "Rwanda", "RU": "Ryssland", "BL": "S:t Barth\u00e9lemy", "SH": "S:t Helena", "KN": "S:t Kitts och Nevis", "LC": "S:t Lucia", "PM": "S:t Pierre och Miquelon", "VC": "S:t Vincent och Grenadinerna", "MF": "Saint-Martin", "SB": "Salomon\u00f6arna", "WS": "Samoa", "SM": "San Marino", "ST": "S\u00e3o Tom\u00e9 och Pr\u00edncipe", "SA": "Saudiarabien", "CH": "Schweiz", "SN": "Senegal", "RS": "Serbien", "SC": "Seychellerna", "SL": "Sierra Leone", "SG": "Singapore", "SX": "Sint Maarten", "SK": "Slovakien", "SI": "Slovenien", "SO": "Somalia", "ES": "Spanien", "LK": "Sri Lanka", "GB": "Storbritannien", "SD": "Sudan", "SR": "Surinam", "SJ": "Svalbard och Jan Mayen", "SE": "Sverige", "SZ": "Swaziland", "ZA": "Sydafrika", "GS": "Sydgeorgien och Sydsandwich\u00f6arna", "KR": "Sydkorea", "SS": "Sydsudan", "SY": "Syrien", "TJ": "Tadzjikistan", "TW": "Taiwan", "TZ": "Tanzania", "TD": "Tchad", "TH": "Thailand", "CZ": "Tjeckien", "TG": "Togo", "TK": "Tokelau", "TO": "Tonga", "TT": "Trinidad och Tobago", "TN": "Tunisien", "TR": "Turkiet", "TM": "Turkmenistan", "TC": "Turks- och Caicos\u00f6arna", "TV": "Tuvalu", "DE": "Tyskland", "UG": "Uganda", "UA": "Ukraina", "HU": "Ungern", "UY": "Uruguay", "US": "USA", "UM": "USA:s yttre \u00f6ar", "UZ": "Uzbekistan", "VU": "Vanuatu", "VA": "Vatikanstaten", "VE": "Venezuela", "VN": "Vietnam", "BY": "Vitryssland", "EH": "V\u00e4stsahara", "WF": "Wallis- och Futuna\u00f6arna", "ZM": "Zambia", "ZW": "Zimbabwe", "AX": "\u00c5land", "AT": "\u00d6sterrike", "TL": "\u00d6sttimor"} \ No newline at end of file diff --git a/desktop/src/onionshare/resources/countries/tr.json b/desktop/src/onionshare/resources/countries/tr.json new file mode 100644 index 00000000..246d6ab7 --- /dev/null +++ b/desktop/src/onionshare/resources/countries/tr.json @@ -0,0 +1 @@ +{"UM": "ABD K\u00fc\u00e7\u00fck Harici Adalar\u0131", "VI": "ABD Virjin Adalar\u0131", "AF": "Afganistan", "AX": "\u00c5land Adalar\u0131", "DE": "Almanya", "US": "Amerika Birle\u015fik Devletleri", "AS": "Amerikan Samoas\u0131", "AD": "Andorra", "AO": "Angola", "AI": "Anguilla", "AQ": "Antarktika", "AG": "Antigua ve Barbuda", "AR": "Arjantin", "AL": "Arnavutluk", "AW": "Aruba", "AU": "Avustralya", "AT": "Avusturya", "AZ": "Azerbaycan", "BS": "Bahamalar", "BH": "Bahreyn", "BD": "Banglade\u015f", "BB": "Barbados", "EH": "Bat\u0131 Sahra", "BY": "Belarus", "BE": "Bel\u00e7ika", "BZ": "Belize", "BJ": "Benin", "BM": "Bermuda", "AE": "Birle\u015fik Arap Emirlikleri", "GB": "Birle\u015fik Krall\u0131k", "BO": "Bolivya", "BA": "Bosna-Hersek", "BW": "Botsvana", "BV": "Bouvet Adas\u0131", "BR": "Brezilya", "IO": "Britanya Hint Okyanusu Topraklar\u0131", "VG": "Britanya Virjin Adalar\u0131", "BN": "Brunei", "BG": "Bulgaristan", "BF": "Burkina Faso", "BI": "Burundi", "BT": "Butan", "CV": "Cape Verde", "KY": "Cayman Adalar\u0131", "GI": "Cebelitar\u0131k", "DZ": "Cezayir", "CX": "Christmas Adas\u0131", "DJ": "Cibuti", "CC": "Cocos (Keeling) Adalar\u0131", "CK": "Cook Adalar\u0131", "CI": "C\u00f4te d\u2019Ivoire", "CW": "Cura\u00e7ao", "TD": "\u00c7ad", "CZ": "\u00c7ekya", "CN": "\u00c7in", "HK": "\u00c7in Hong Kong \u00d6\u0130B", "MO": "\u00c7in Makao \u00d6\u0130B", "DK": "Danimarka", "DO": "Dominik Cumhuriyeti", "DM": "Dominika", "EC": "Ekvador", "GQ": "Ekvator Ginesi", "SV": "El Salvador", "ID": "Endonezya", "ER": "Eritre", "AM": "Ermenistan", "EE": "Estonya", "SZ": "Esvatini", "ET": "Etiyopya", "FK": "Falkland Adalar\u0131", "FO": "Faroe Adalar\u0131", "MA": "Fas", "FJ": "Fiji", "PH": "Filipinler", "PS": "Filistin B\u00f6lgeleri", "FI": "Finlandiya", "FR": "Fransa", "GF": "Frans\u0131z Guyanas\u0131", "TF": "Frans\u0131z G\u00fcney Topraklar\u0131", "PF": "Frans\u0131z Polinezyas\u0131", "GA": "Gabon", "GM": "Gambiya", "GH": "Gana", "GN": "Gine", "GW": "Gine-Bissau", "GD": "Grenada", "GL": "Gr\u00f6nland", "GP": "Guadeloupe", "GU": "Guam", "GT": "Guatemala", "GG": "Guernsey", "GY": "Guyana", "ZA": "G\u00fcney Afrika", "GS": "G\u00fcney Georgia ve G\u00fcney Sandwich Adalar\u0131", "KR": "G\u00fcney Kore", "SS": "G\u00fcney Sudan", "GE": "G\u00fcrcistan", "HT": "Haiti", "HM": "Heard Adas\u0131 ve McDonald Adalar\u0131", "HR": "H\u0131rvatistan", "IN": "Hindistan", "NL": "Hollanda", "HN": "Honduras", "IQ": "Irak", "IR": "\u0130ran", "IE": "\u0130rlanda", "ES": "\u0130spanya", "IL": "\u0130srail", "SE": "\u0130sve\u00e7", "CH": "\u0130svi\u00e7re", "IT": "\u0130talya", "IS": "\u0130zlanda", "JM": "Jamaika", "JP": "Japonya", "JE": "Jersey", "KH": "Kambo\u00e7ya", "CM": "Kamerun", "CA": "Kanada", "ME": "Karada\u011f", "BQ": "Karayip Hollandas\u0131", "QA": "Katar", "KZ": "Kazakistan", "KE": "Kenya", "CY": "K\u0131br\u0131s", "KG": "K\u0131rg\u0131zistan", "KI": "Kiribati", "CO": "Kolombiya", "KM": "Komorlar", "CG": "Kongo - Brazavil", "CD": "Kongo - Kin\u015fasa", "CR": "Kosta Rika", "KW": "Kuveyt", "KP": "Kuzey Kore", "MK": "Kuzey Makedonya", "MP": "Kuzey Mariana Adalar\u0131", "CU": "K\u00fcba", "LA": "Laos", "LS": "Lesotho", "LV": "Letonya", "LR": "Liberya", "LY": "Libya", "LI": "Liechtenstein", "LT": "Litvanya", "LB": "L\u00fcbnan", "LU": "L\u00fcksemburg", "HU": "Macaristan", "MG": "Madagaskar", "MW": "Malavi", "MV": "Maldivler", "MY": "Malezya", "ML": "Mali", "MT": "Malta", "IM": "Man Adas\u0131", "MH": "Marshall Adalar\u0131", "MQ": "Martinik", "MU": "Mauritius", "YT": "Mayotte", "MX": "Meksika", "EG": "M\u0131s\u0131r", "FM": "Mikronezya", "MN": "Mo\u011folistan", "MD": "Moldova", "MC": "Monako", "MS": "Montserrat", "MR": "Moritanya", "MZ": "Mozambik", "MM": "Myanmar (Burma)", "NA": "Namibya", "NR": "Nauru", "NP": "Nepal", "NE": "Nijer", "NG": "Nijerya", "NI": "Nikaragua", "NU": "Niue", "NF": "Norfolk Adas\u0131", "NO": "Norve\u00e7", "CF": "Orta Afrika Cumhuriyeti", "UZ": "\u00d6zbekistan", "PK": "Pakistan", "PW": "Palau", "PA": "Panama", "PG": "Papua Yeni Gine", "PY": "Paraguay", "PE": "Peru", "PN": "Pitcairn Adalar\u0131", "PL": "Polonya", "PT": "Portekiz", "PR": "Porto Riko", "RE": "Reunion", "RO": "Romanya", "RW": "Ruanda", "RU": "Rusya", "BL": "Saint Barthelemy", "SH": "Saint Helena", "KN": "Saint Kitts ve Nevis", "LC": "Saint Lucia", "MF": "Saint Martin", "PM": "Saint Pierre ve Miquelon", "VC": "Saint Vincent ve Grenadinler", "WS": "Samoa", "SM": "San Marino", "ST": "Sao Tome ve Principe", "SN": "Senegal", "SC": "Sey\u015feller", "RS": "S\u0131rbistan", "SL": "Sierra Leone", "SG": "Singapur", "SX": "Sint Maarten", "SK": "Slovakya", "SI": "Slovenya", "SB": "Solomon Adalar\u0131", "SO": "Somali", "LK": "Sri Lanka", "SD": "Sudan", "SR": "Surinam", "SY": "Suriye", "SA": "Suudi Arabistan", "SJ": "Svalbard ve Jan Mayen", "CL": "\u015eili", "TJ": "Tacikistan", "TZ": "Tanzanya", "TH": "Tayland", "TW": "Tayvan", "TL": "Timor-Leste", "TG": "Togo", "TK": "Tokelau", "TO": "Tonga", "TT": "Trinidad ve Tobago", "TN": "Tunus", "TC": "Turks ve Caicos Adalar\u0131", "TV": "Tuvalu", "TR": "T\u00fcrkiye", "TM": "T\u00fcrkmenistan", "UG": "Uganda", "UA": "Ukrayna", "OM": "Umman", "UY": "Uruguay", "JO": "\u00dcrd\u00fcn", "VU": "Vanuatu", "VA": "Vatikan", "VE": "Venezuela", "VN": "Vietnam", "WF": "Wallis ve Futuna", "YE": "Yemen", "NC": "Yeni Kaledonya", "NZ": "Yeni Zelanda", "GR": "Yunanistan", "ZM": "Zambiya", "ZW": "Zimbabve"} \ No newline at end of file diff --git a/desktop/src/onionshare/resources/countries/uk.json b/desktop/src/onionshare/resources/countries/uk.json new file mode 100644 index 00000000..7875dac0 --- /dev/null +++ b/desktop/src/onionshare/resources/countries/uk.json @@ -0,0 +1 @@ +{"AU": "\u0410\u0432\u0441\u0442\u0440\u0430\u043b\u0456\u044f", "AT": "\u0410\u0432\u0441\u0442\u0440\u0456\u044f", "AZ": "\u0410\u0437\u0435\u0440\u0431\u0430\u0439\u0434\u0436\u0430\u043d", "AX": "\u0410\u043b\u0430\u043d\u0434\u0441\u044c\u043a\u0456 \u041e\u0441\u0442\u0440\u043e\u0432\u0438", "AL": "\u0410\u043b\u0431\u0430\u043d\u0456\u044f", "DZ": "\u0410\u043b\u0436\u0438\u0440", "AS": "\u0410\u043c\u0435\u0440\u0438\u043a\u0430\u043d\u0441\u044c\u043a\u0435 \u0421\u0430\u043c\u043e\u0430", "AO": "\u0410\u043d\u0433\u043e\u043b\u0430", "AI": "\u0410\u043d\u0491\u0456\u043b\u044c\u044f", "AD": "\u0410\u043d\u0434\u043e\u0440\u0440\u0430", "AQ": "\u0410\u043d\u0442\u0430\u0440\u043a\u0442\u0438\u043a\u0430", "AG": "\u0410\u043d\u0442\u0438\u0491\u0443\u0430 \u0456 \u0411\u0430\u0440\u0431\u0443\u0434\u0430", "AR": "\u0410\u0440\u0433\u0435\u043d\u0442\u0438\u043d\u0430", "AW": "\u0410\u0440\u0443\u0431\u0430", "AF": "\u0410\u0444\u0433\u0430\u043d\u0456\u0441\u0442\u0430\u043d", "BS": "\u0411\u0430\u0433\u0430\u043c\u0441\u044c\u043a\u0456 \u041e\u0441\u0442\u0440\u043e\u0432\u0438", "BD": "\u0411\u0430\u043d\u0433\u043b\u0430\u0434\u0435\u0448", "BB": "\u0411\u0430\u0440\u0431\u0430\u0434\u043e\u0441", "BH": "\u0411\u0430\u0445\u0440\u0435\u0439\u043d", "BZ": "\u0411\u0435\u043b\u0456\u0437", "BE": "\u0411\u0435\u043b\u044c\u0491\u0456\u044f", "BJ": "\u0411\u0435\u043d\u0456\u043d", "BM": "\u0411\u0435\u0440\u043c\u0443\u0434\u0441\u044c\u043a\u0456 \u041e\u0441\u0442\u0440\u043e\u0432\u0438", "BY": "\u0411\u0456\u043b\u043e\u0440\u0443\u0441\u044c", "BG": "\u0411\u043e\u043b\u0433\u0430\u0440\u0456\u044f", "BO": "\u0411\u043e\u043b\u0456\u0432\u0456\u044f", "BA": "\u0411\u043e\u0441\u043d\u0456\u044f \u0456 \u0413\u0435\u0440\u0446\u0435\u0491\u043e\u0432\u0438\u043d\u0430", "BW": "\u0411\u043e\u0442\u0441\u0432\u0430\u043d\u0430", "BR": "\u0411\u0440\u0430\u0437\u0456\u043b\u0456\u044f", "IO": "\u0411\u0440\u0438\u0442\u0430\u043d\u0441\u044c\u043a\u0430 \u0442\u0435\u0440\u0438\u0442\u043e\u0440\u0456\u044f \u0432 \u0406\u043d\u0434\u0456\u0439\u0441\u044c\u043a\u043e\u043c\u0443 \u041e\u043a\u0435\u0430\u043d\u0456", "VG": "\u0411\u0440\u0438\u0442\u0430\u043d\u0441\u044c\u043a\u0456 \u0412\u0456\u0440\u0433\u0456\u043d\u0441\u044c\u043a\u0456 \u043e\u0441\u0442\u0440\u043e\u0432\u0438", "BN": "\u0411\u0440\u0443\u043d\u0435\u0439", "BF": "\u0411\u0443\u0440\u043a\u0456\u043d\u0430-\u0424\u0430\u0441\u043e", "BI": "\u0411\u0443\u0440\u0443\u043d\u0434\u0456", "BT": "\u0411\u0443\u0442\u0430\u043d", "VU": "\u0412\u0430\u043d\u0443\u0430\u0442\u0443", "VA": "\u0412\u0430\u0442\u0438\u043a\u0430\u043d", "GB": "\u0412\u0435\u043b\u0438\u043a\u0430 \u0411\u0440\u0438\u0442\u0430\u043d\u0456\u044f", "VE": "\u0412\u0435\u043d\u0435\u0441\u0443\u0435\u043b\u0430", "UM": "\u0412\u0456\u0434\u0434\u0430\u043b\u0435\u043d\u0456 \u043e\u0441\u0442\u0440\u043e\u0432\u0438 \u0421\u0428\u0410", "VI": "\u0412\u0456\u0440\u0433\u0456\u043d\u0441\u044c\u043a\u0456 \u043e\u0441\u0442\u0440\u043e\u0432\u0438, \u0421\u0428\u0410", "AM": "\u0412\u0456\u0440\u043c\u0435\u043d\u0456\u044f", "VN": "\u0412\u02bc\u0454\u0442\u043d\u0430\u043c", "GA": "\u0413\u0430\u0431\u043e\u043d", "HT": "\u0413\u0430\u0457\u0442\u0456", "GM": "\u0413\u0430\u043c\u0431\u0456\u044f", "GH": "\u0413\u0430\u043d\u0430", "GN": "\u0413\u0432\u0456\u043d\u0435\u044f", "GW": "\u0413\u0432\u0456\u043d\u0435\u044f-\u0411\u0456\u0441\u0430\u0443", "HN": "\u0413\u043e\u043d\u0434\u0443\u0440\u0430\u0441", "HK": "\u0413\u043e\u043d\u043a\u043e\u043d\u0433, \u041e.\u0410.\u0420. \u041a\u0438\u0442\u0430\u044e", "GR": "\u0413\u0440\u0435\u0446\u0456\u044f", "GE": "\u0413\u0440\u0443\u0437\u0456\u044f", "GY": "\u0490\u0430\u0439\u0430\u043d\u0430", "GP": "\u0490\u0432\u0430\u0434\u0435\u043b\u0443\u043f\u0430", "GT": "\u0490\u0432\u0430\u0442\u0435\u043c\u0430\u043b\u0430", "GG": "\u0490\u0435\u0440\u043d\u0441\u0456", "GI": "\u0490\u0456\u0431\u0440\u0430\u043b\u0442\u0430\u0440", "GD": "\u0490\u0440\u0435\u043d\u0430\u0434\u0430", "GL": "\u0490\u0440\u0435\u043d\u043b\u0430\u043d\u0434\u0456\u044f", "GU": "\u0490\u0443\u0430\u043c", "DK": "\u0414\u0430\u043d\u0456\u044f", "JE": "\u0414\u0436\u0435\u0440\u0441\u0456", "DJ": "\u0414\u0436\u0438\u0431\u0443\u0442\u0456", "DM": "\u0414\u043e\u043c\u0456\u043d\u0456\u043a\u0430", "DO": "\u0414\u043e\u043c\u0456\u043d\u0456\u043a\u0430\u043d\u0441\u044c\u043a\u0430 \u0420\u0435\u0441\u043f\u0443\u0431\u043b\u0456\u043a\u0430", "EC": "\u0415\u043a\u0432\u0430\u0434\u043e\u0440", "GQ": "\u0415\u043a\u0432\u0430\u0442\u043e\u0440\u0456\u0430\u043b\u044c\u043d\u0430 \u0413\u0432\u0456\u043d\u0435\u044f", "ER": "\u0415\u0440\u0438\u0442\u0440\u0435\u044f", "SZ": "\u0415\u0441\u0432\u0430\u0442\u0456\u043d\u0456", "EE": "\u0415\u0441\u0442\u043e\u043d\u0456\u044f", "ET": "\u0415\u0444\u0456\u043e\u043f\u0456\u044f", "EG": "\u0404\u0433\u0438\u043f\u0435\u0442", "YE": "\u0404\u043c\u0435\u043d", "ZM": "\u0417\u0430\u043c\u0431\u0456\u044f", "EH": "\u0417\u0430\u0445\u0456\u0434\u043d\u0430 \u0421\u0430\u0445\u0430\u0440\u0430", "ZW": "\u0417\u0456\u043c\u0431\u0430\u0431\u0432\u0435", "IL": "\u0406\u0437\u0440\u0430\u0457\u043b\u044c", "IN": "\u0406\u043d\u0434\u0456\u044f", "ID": "\u0406\u043d\u0434\u043e\u043d\u0435\u0437\u0456\u044f", "IQ": "\u0406\u0440\u0430\u043a", "IR": "\u0406\u0440\u0430\u043d", "IE": "\u0406\u0440\u043b\u0430\u043d\u0434\u0456\u044f", "IS": "\u0406\u0441\u043b\u0430\u043d\u0434\u0456\u044f", "ES": "\u0406\u0441\u043f\u0430\u043d\u0456\u044f", "IT": "\u0406\u0442\u0430\u043b\u0456\u044f", "JO": "\u0419\u043e\u0440\u0434\u0430\u043d\u0456\u044f", "CV": "\u041a\u0430\u0431\u043e-\u0412\u0435\u0440\u0434\u0435", "KZ": "\u041a\u0430\u0437\u0430\u0445\u0441\u0442\u0430\u043d", "KY": "\u041a\u0430\u0439\u043c\u0430\u043d\u043e\u0432\u0456 \u041e\u0441\u0442\u0440\u043e\u0432\u0438", "KH": "\u041a\u0430\u043c\u0431\u043e\u0434\u0436\u0430", "CM": "\u041a\u0430\u043c\u0435\u0440\u0443\u043d", "CA": "\u041a\u0430\u043d\u0430\u0434\u0430", "QA": "\u041a\u0430\u0442\u0430\u0440", "KE": "\u041a\u0435\u043d\u0456\u044f", "KG": "\u041a\u0438\u0440\u0433\u0438\u0437\u0441\u0442\u0430\u043d", "CN": "\u041a\u0438\u0442\u0430\u0439", "CY": "\u041a\u0456\u043f\u0440", "KI": "\u041a\u0456\u0440\u0456\u0431\u0430\u0442\u0456", "CC": "\u041a\u043e\u043a\u043e\u0441\u043e\u0432\u0456 (\u041a\u0456\u043b\u0456\u043d\u0491) \u041e\u0441\u0442\u0440\u043e\u0432\u0438", "CO": "\u041a\u043e\u043b\u0443\u043c\u0431\u0456\u044f", "KM": "\u041a\u043e\u043c\u043e\u0440\u0438", "CG": "\u041a\u043e\u043d\u0433\u043e \u2013 \u0411\u0440\u0430\u0437\u0437\u0430\u0432\u0456\u043b\u044c", "CD": "\u041a\u043e\u043d\u0433\u043e \u2013 \u041a\u0456\u043d\u0448\u0430\u0441\u0430", "CR": "\u041a\u043e\u0441\u0442\u0430-\u0420\u0456\u043a\u0430", "CI": "\u041a\u043e\u0442-\u0434\u02bc\u0406\u0432\u0443\u0430\u0440", "CU": "\u041a\u0443\u0431\u0430", "KW": "\u041a\u0443\u0432\u0435\u0439\u0442", "CW": "\u041a\u044e\u0440\u0430\u0441\u0430\u043e", "LA": "\u041b\u0430\u043e\u0441", "LV": "\u041b\u0430\u0442\u0432\u0456\u044f", "LS": "\u041b\u0435\u0441\u043e\u0442\u043e", "LT": "\u041b\u0438\u0442\u0432\u0430", "LR": "\u041b\u0456\u0431\u0435\u0440\u0456\u044f", "LB": "\u041b\u0456\u0432\u0430\u043d", "LY": "\u041b\u0456\u0432\u0456\u044f", "LI": "\u041b\u0456\u0445\u0442\u0435\u043d\u0448\u0442\u0435\u0439\u043d", "LU": "\u041b\u044e\u043a\u0441\u0435\u043c\u0431\u0443\u0440\u0491", "MR": "\u041c\u0430\u0432\u0440\u0438\u0442\u0430\u043d\u0456\u044f", "MU": "\u041c\u0430\u0432\u0440\u0456\u043a\u0456\u0439", "MG": "\u041c\u0430\u0434\u0430\u0433\u0430\u0441\u043a\u0430\u0440", "YT": "\u041c\u0430\u0439\u043e\u0442\u0442\u0430", "MO": "\u041c\u0430\u043a\u0430\u043e, \u041e.\u0410.\u0420 \u041a\u0438\u0442\u0430\u044e", "MW": "\u041c\u0430\u043b\u0430\u0432\u0456", "MY": "\u041c\u0430\u043b\u0430\u0439\u0437\u0456\u044f", "ML": "\u041c\u0430\u043b\u0456", "MV": "\u041c\u0430\u043b\u044c\u0434\u0456\u0432\u0438", "MT": "\u041c\u0430\u043b\u044c\u0442\u0430", "MA": "\u041c\u0430\u0440\u043e\u043a\u043a\u043e", "MQ": "\u041c\u0430\u0440\u0442\u0456\u043d\u0456\u043a\u0430", "MH": "\u041c\u0430\u0440\u0448\u0430\u043b\u043b\u043e\u0432\u0456 \u041e\u0441\u0442\u0440\u043e\u0432\u0438", "MX": "\u041c\u0435\u043a\u0441\u0438\u043a\u0430", "FM": "\u041c\u0456\u043a\u0440\u043e\u043d\u0435\u0437\u0456\u044f", "MZ": "\u041c\u043e\u0437\u0430\u043c\u0431\u0456\u043a", "MD": "\u041c\u043e\u043b\u0434\u043e\u0432\u0430", "MC": "\u041c\u043e\u043d\u0430\u043a\u043e", "MN": "\u041c\u043e\u043d\u0433\u043e\u043b\u0456\u044f", "MS": "\u041c\u043e\u043d\u0442\u0441\u0435\u0440\u0440\u0430\u0442", "MM": "\u041c\u02bc\u044f\u043d\u043c\u0430 (\u0411\u0456\u0440\u043c\u0430)", "NA": "\u041d\u0430\u043c\u0456\u0431\u0456\u044f", "NR": "\u041d\u0430\u0443\u0440\u0443", "NP": "\u041d\u0435\u043f\u0430\u043b", "NE": "\u041d\u0456\u0433\u0435\u0440", "NG": "\u041d\u0456\u0433\u0435\u0440\u0456\u044f", "NL": "\u041d\u0456\u0434\u0435\u0440\u043b\u0430\u043d\u0434\u0438", "BQ": "\u041d\u0456\u0434\u0435\u0440\u043b\u0430\u043d\u0434\u0441\u044c\u043a\u0456 \u041a\u0430\u0440\u0438\u0431\u0441\u044c\u043a\u0456 \u043e\u0441\u0442\u0440\u043e\u0432\u0438", "NI": "\u041d\u0456\u043a\u0430\u0440\u0430\u0491\u0443\u0430", "DE": "\u041d\u0456\u043c\u0435\u0447\u0447\u0438\u043d\u0430", "NU": "\u041d\u0456\u0443\u0435", "NZ": "\u041d\u043e\u0432\u0430 \u0417\u0435\u043b\u0430\u043d\u0434\u0456\u044f", "NC": "\u041d\u043e\u0432\u0430 \u041a\u0430\u043b\u0435\u0434\u043e\u043d\u0456\u044f", "NO": "\u041d\u043e\u0440\u0432\u0435\u0491\u0456\u044f", "AE": "\u041e\u0431\u02bc\u0454\u0434\u043d\u0430\u043d\u0456 \u0410\u0440\u0430\u0431\u0441\u044c\u043a\u0456 \u0415\u043c\u0456\u0440\u0430\u0442\u0438", "OM": "\u041e\u043c\u0430\u043d", "BV": "\u041e\u0441\u0442\u0440\u0456\u0432 \u0411\u0443\u0432\u0435", "IM": "\u041e\u0441\u0442\u0440\u0456\u0432 \u041c\u0435\u043d", "NF": "\u041e\u0441\u0442\u0440\u0456\u0432 \u041d\u043e\u0440\u0444\u043e\u043b\u043a", "CX": "\u041e\u0441\u0442\u0440\u0456\u0432 \u0420\u0456\u0437\u0434\u0432\u0430", "SH": "\u041e\u0441\u0442\u0440\u0456\u0432 \u0421\u0432\u044f\u0442\u043e\u0457 \u0404\u043b\u0435\u043d\u0438", "HM": "\u041e\u0441\u0442\u0440\u043e\u0432\u0438 \u0413\u0435\u0440\u0434 \u0456 \u041c\u0430\u043a\u0434\u043e\u043d\u0430\u043b\u0434", "CK": "\u041e\u0441\u0442\u0440\u043e\u0432\u0438 \u041a\u0443\u043a\u0430", "PN": "\u041e\u0441\u0442\u0440\u043e\u0432\u0438 \u041f\u0456\u0442\u043a\u0435\u0440\u043d", "TC": "\u041e\u0441\u0442\u0440\u043e\u0432\u0438 \u0422\u0435\u0440\u043a\u0441 \u0456 \u041a\u0430\u0439\u043a\u043e\u0441", "PK": "\u041f\u0430\u043a\u0438\u0441\u0442\u0430\u043d", "PW": "\u041f\u0430\u043b\u0430\u0443", "PS": "\u041f\u0430\u043b\u0435\u0441\u0442\u0438\u043d\u0441\u044c\u043a\u0456 \u0442\u0435\u0440\u0438\u0442\u043e\u0440\u0456\u0457", "PA": "\u041f\u0430\u043d\u0430\u043c\u0430", "PG": "\u041f\u0430\u043f\u0443\u0430-\u041d\u043e\u0432\u0430 \u0490\u0432\u0456\u043d\u0435\u044f", "PY": "\u041f\u0430\u0440\u0430\u0491\u0432\u0430\u0439", "PE": "\u041f\u0435\u0440\u0443", "GS": "\u041f\u0456\u0432\u0434\u0435\u043d\u043d\u0430 \u0414\u0436\u043e\u0440\u0434\u0436\u0456\u044f \u0442\u0430 \u041f\u0456\u0432\u0434\u0435\u043d\u043d\u0456 \u0421\u0430\u043d\u0434\u0432\u0456\u0447\u0435\u0432\u0456 \u041e\u0441\u0442\u0440\u043e\u0432\u0438", "KR": "\u041f\u0456\u0432\u0434\u0435\u043d\u043d\u0430 \u041a\u043e\u0440\u0435\u044f", "SS": "\u041f\u0456\u0432\u0434\u0435\u043d\u043d\u0438\u0439 \u0421\u0443\u0434\u0430\u043d", "ZA": "\u041f\u0456\u0432\u0434\u0435\u043d\u043d\u043e-\u0410\u0444\u0440\u0438\u043a\u0430\u043d\u0441\u044c\u043a\u0430 \u0420\u0435\u0441\u043f\u0443\u0431\u043b\u0456\u043a\u0430", "KP": "\u041f\u0456\u0432\u043d\u0456\u0447\u043d\u0430 \u041a\u043e\u0440\u0435\u044f", "MK": "\u041f\u0456\u0432\u043d\u0456\u0447\u043d\u0430 \u041c\u0430\u043a\u0435\u0434\u043e\u043d\u0456\u044f", "MP": "\u041f\u0456\u0432\u043d\u0456\u0447\u043d\u0456 \u041c\u0430\u0440\u0456\u0430\u043d\u0441\u044c\u043a\u0456 \u041e\u0441\u0442\u0440\u043e\u0432\u0438", "PL": "\u041f\u043e\u043b\u044c\u0449\u0430", "PT": "\u041f\u043e\u0440\u0442\u0443\u0491\u0430\u043b\u0456\u044f", "PR": "\u041f\u0443\u0435\u0440\u0442\u043e-\u0420\u0456\u043a\u043e", "RE": "\u0420\u0435\u044e\u043d\u044c\u0439\u043e\u043d", "RU": "\u0420\u043e\u0441\u0456\u044f", "RW": "\u0420\u0443\u0430\u043d\u0434\u0430", "RO": "\u0420\u0443\u043c\u0443\u043d\u0456\u044f", "SV": "\u0421\u0430\u043b\u044c\u0432\u0430\u0434\u043e\u0440", "WS": "\u0421\u0430\u043c\u043e\u0430", "SM": "\u0421\u0430\u043d-\u041c\u0430\u0440\u0456\u043d\u043e", "ST": "\u0421\u0430\u043d-\u0422\u043e\u043c\u0435 \u0456 \u041f\u0440\u0456\u043d\u0441\u0456\u043f\u0456", "SA": "\u0421\u0430\u0443\u0434\u0456\u0432\u0441\u044c\u043a\u0430 \u0410\u0440\u0430\u0432\u0456\u044f", "SC": "\u0421\u0435\u0439\u0448\u0435\u043b\u044c\u0441\u044c\u043a\u0456 \u041e\u0441\u0442\u0440\u043e\u0432\u0438", "BL": "\u0421\u0435\u043d-\u0411\u0430\u0440\u0442\u0435\u043b\u044c\u043c\u0456", "MF": "\u0421\u0435\u043d-\u041c\u0430\u0440\u0442\u0435\u043d", "PM": "\u0421\u0435\u043d-\u041f\u02bc\u0454\u0440 \u0456 \u041c\u0456\u043a\u0435\u043b\u043e\u043d", "SN": "\u0421\u0435\u043d\u0435\u0433\u0430\u043b", "VC": "\u0421\u0435\u043d\u0442-\u0412\u0456\u043d\u0441\u0435\u043d\u0442 \u0456 \u0490\u0440\u0435\u043d\u0430\u0434\u0456\u043d\u0438", "KN": "\u0421\u0435\u043d\u0442-\u041a\u0456\u0442\u0441 \u0456 \u041d\u0435\u0432\u0456\u0441", "LC": "\u0421\u0435\u043d\u0442-\u041b\u044e\u0441\u0456\u044f", "RS": "\u0421\u0435\u0440\u0431\u0456\u044f", "SY": "\u0421\u0438\u0440\u0456\u044f", "SG": "\u0421\u0456\u043d\u0433\u0430\u043f\u0443\u0440", "SX": "\u0421\u0456\u043d\u0442-\u041c\u0430\u0440\u0442\u0435\u043d", "SK": "\u0421\u043b\u043e\u0432\u0430\u0447\u0447\u0438\u043d\u0430", "SI": "\u0421\u043b\u043e\u0432\u0435\u043d\u0456\u044f", "SB": "\u0421\u043e\u043b\u043e\u043c\u043e\u043d\u043e\u0432\u0456 \u041e\u0441\u0442\u0440\u043e\u0432\u0438", "SO": "\u0421\u043e\u043c\u0430\u043b\u0456", "US": "\u0421\u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0456 \u0428\u0442\u0430\u0442\u0438", "SD": "\u0421\u0443\u0434\u0430\u043d", "SR": "\u0421\u0443\u0440\u0456\u043d\u0430\u043c", "SL": "\u0421\u044c\u0454\u0440\u0440\u0430-\u041b\u0435\u043e\u043d\u0435", "TJ": "\u0422\u0430\u0434\u0436\u0438\u043a\u0438\u0441\u0442\u0430\u043d", "TH": "\u0422\u0430\u0457\u043b\u0430\u043d\u0434", "TW": "\u0422\u0430\u0439\u0432\u0430\u043d\u044c", "TZ": "\u0422\u0430\u043d\u0437\u0430\u043d\u0456\u044f", "TL": "\u0422\u0456\u043c\u043e\u0440-\u041b\u0435\u0448\u0442\u0456", "TG": "\u0422\u043e\u0433\u043e", "TK": "\u0422\u043e\u043a\u0435\u043b\u0430\u0443", "TO": "\u0422\u043e\u043d\u0491\u0430", "TT": "\u0422\u0440\u0456\u043d\u0456\u0434\u0430\u0434 \u0456 \u0422\u043e\u0431\u0430\u0491\u043e", "TV": "\u0422\u0443\u0432\u0430\u043b\u0443", "TN": "\u0422\u0443\u043d\u0456\u0441", "TR": "\u0422\u0443\u0440\u0435\u0447\u0447\u0438\u043d\u0430", "TM": "\u0422\u0443\u0440\u043a\u043c\u0435\u043d\u0456\u0441\u0442\u0430\u043d", "UG": "\u0423\u0433\u0430\u043d\u0434\u0430", "HU": "\u0423\u0433\u043e\u0440\u0449\u0438\u043d\u0430", "UZ": "\u0423\u0437\u0431\u0435\u043a\u0438\u0441\u0442\u0430\u043d", "UA": "\u0423\u043a\u0440\u0430\u0457\u043d\u0430", "WF": "\u0423\u043e\u043b\u043b\u0456\u0441 \u0456 \u0424\u0443\u0442\u0443\u043d\u0430", "UY": "\u0423\u0440\u0443\u0491\u0432\u0430\u0439", "FO": "\u0424\u0430\u0440\u0435\u0440\u0441\u044c\u043a\u0456 \u041e\u0441\u0442\u0440\u043e\u0432\u0438", "FJ": "\u0424\u0456\u0434\u0436\u0456", "PH": "\u0424\u0456\u043b\u0456\u043f\u043f\u0456\u043d\u0438", "FI": "\u0424\u0456\u043d\u043b\u044f\u043d\u0434\u0456\u044f", "FK": "\u0424\u043e\u043b\u043a\u043b\u0435\u043d\u0434\u0441\u044c\u043a\u0456 \u041e\u0441\u0442\u0440\u043e\u0432\u0438", "FR": "\u0424\u0440\u0430\u043d\u0446\u0456\u044f", "GF": "\u0424\u0440\u0430\u043d\u0446\u0443\u0437\u044c\u043a\u0430 \u0490\u0432\u0456\u0430\u043d\u0430", "PF": "\u0424\u0440\u0430\u043d\u0446\u0443\u0437\u044c\u043a\u0430 \u041f\u043e\u043b\u0456\u043d\u0435\u0437\u0456\u044f", "TF": "\u0424\u0440\u0430\u043d\u0446\u0443\u0437\u044c\u043a\u0456 \u041f\u0456\u0432\u0434\u0435\u043d\u043d\u0456 \u0422\u0435\u0440\u0438\u0442\u043e\u0440\u0456\u0457", "HR": "\u0425\u043e\u0440\u0432\u0430\u0442\u0456\u044f", "CF": "\u0426\u0435\u043d\u0442\u0440\u0430\u043b\u044c\u043d\u043e\u0430\u0444\u0440\u0438\u043a\u0430\u043d\u0441\u044c\u043a\u0430 \u0420\u0435\u0441\u043f\u0443\u0431\u043b\u0456\u043a\u0430", "TD": "\u0427\u0430\u0434", "CZ": "\u0427\u0435\u0445\u0456\u044f", "CL": "\u0427\u0456\u043b\u0456", "ME": "\u0427\u043e\u0440\u043d\u043e\u0433\u043e\u0440\u0456\u044f", "CH": "\u0428\u0432\u0435\u0439\u0446\u0430\u0440\u0456\u044f", "SE": "\u0428\u0432\u0435\u0446\u0456\u044f", "SJ": "\u0428\u043f\u0456\u0446\u0431\u0435\u0440\u0433\u0435\u043d \u0442\u0430 \u042f\u043d-\u041c\u0430\u0454\u043d", "LK": "\u0428\u0440\u0456-\u041b\u0430\u043d\u043a\u0430", "JM": "\u042f\u043c\u0430\u0439\u043a\u0430", "JP": "\u042f\u043f\u043e\u043d\u0456\u044f"} \ No newline at end of file diff --git a/desktop/src/onionshare/resources/countries/zh_Hans.json b/desktop/src/onionshare/resources/countries/zh_Hans.json new file mode 100644 index 00000000..e6127167 --- /dev/null +++ b/desktop/src/onionshare/resources/countries/zh_Hans.json @@ -0,0 +1 @@ +{"AL": "\u963f\u5c14\u5df4\u5c3c\u4e9a", "DZ": "\u963f\u5c14\u53ca\u5229\u4e9a", "AF": "\u963f\u5bcc\u6c57", "AR": "\u963f\u6839\u5ef7", "AE": "\u963f\u62c9\u4f2f\u8054\u5408\u914b\u957f\u56fd", "AW": "\u963f\u9c81\u5df4", "OM": "\u963f\u66fc", "AZ": "\u963f\u585e\u62dc\u7586", "EG": "\u57c3\u53ca", "ET": "\u57c3\u585e\u4fc4\u6bd4\u4e9a", "IE": "\u7231\u5c14\u5170", "EE": "\u7231\u6c99\u5c3c\u4e9a", "AD": "\u5b89\u9053\u5c14", "AO": "\u5b89\u54e5\u62c9", "AI": "\u5b89\u572d\u62c9", "AG": "\u5b89\u63d0\u74dc\u548c\u5df4\u5e03\u8fbe", "AT": "\u5965\u5730\u5229", "AX": "\u5965\u5170\u7fa4\u5c9b", "AU": "\u6fb3\u5927\u5229\u4e9a", "BB": "\u5df4\u5df4\u591a\u65af", "PG": "\u5df4\u5e03\u4e9a\u65b0\u51e0\u5185\u4e9a", "BS": "\u5df4\u54c8\u9a6c", "PK": "\u5df4\u57fa\u65af\u5766", "PY": "\u5df4\u62c9\u572d", "PS": "\u5df4\u52d2\u65af\u5766\u9886\u571f", "BH": "\u5df4\u6797", "PA": "\u5df4\u62ff\u9a6c", "BR": "\u5df4\u897f", "BY": "\u767d\u4fc4\u7f57\u65af", "BM": "\u767e\u6155\u5927", "BG": "\u4fdd\u52a0\u5229\u4e9a", "MP": "\u5317\u9a6c\u91cc\u4e9a\u7eb3\u7fa4\u5c9b", "MK": "\u5317\u9a6c\u5176\u987f", "BJ": "\u8d1d\u5b81", "BE": "\u6bd4\u5229\u65f6", "IS": "\u51b0\u5c9b", "PR": "\u6ce2\u591a\u9ece\u5404", "PL": "\u6ce2\u5170", "BA": "\u6ce2\u65af\u5c3c\u4e9a\u548c\u9ed1\u585e\u54e5\u7ef4\u90a3", "BO": "\u73bb\u5229\u7ef4\u4e9a", "BZ": "\u4f2f\u5229\u5179", "BW": "\u535a\u8328\u74e6\u7eb3", "BT": "\u4e0d\u4e39", "BF": "\u5e03\u57fa\u7eb3\u6cd5\u7d22", "BI": "\u5e03\u9686\u8fea", "BV": "\u5e03\u97e6\u5c9b", "KP": "\u671d\u9c9c", "GQ": "\u8d64\u9053\u51e0\u5185\u4e9a", "DK": "\u4e39\u9ea6", "DE": "\u5fb7\u56fd", "TL": "\u4e1c\u5e1d\u6c76", "TG": "\u591a\u54e5", "DO": "\u591a\u7c73\u5c3c\u52a0\u5171\u548c\u56fd", "DM": "\u591a\u7c73\u5c3c\u514b", "RU": "\u4fc4\u7f57\u65af", "EC": "\u5384\u74dc\u591a\u5c14", "ER": "\u5384\u7acb\u7279\u91cc\u4e9a", "FR": "\u6cd5\u56fd", "FO": "\u6cd5\u7f57\u7fa4\u5c9b", "PF": "\u6cd5\u5c5e\u6ce2\u5229\u5c3c\u897f\u4e9a", "GF": "\u6cd5\u5c5e\u572d\u4e9a\u90a3", "TF": "\u6cd5\u5c5e\u5357\u90e8\u9886\u5730", "MF": "\u6cd5\u5c5e\u5723\u9a6c\u4e01", "VA": "\u68b5\u8482\u5188", "PH": "\u83f2\u5f8b\u5bbe", "FJ": "\u6590\u6d4e", "FI": "\u82ac\u5170", "CV": "\u4f5b\u5f97\u89d2", "FK": "\u798f\u514b\u5170\u7fa4\u5c9b", "GM": "\u5188\u6bd4\u4e9a", "CG": "\u521a\u679c\uff08\u5e03\uff09", "CD": "\u521a\u679c\uff08\u91d1\uff09", "CO": "\u54e5\u4f26\u6bd4\u4e9a", "CR": "\u54e5\u65af\u8fbe\u9ece\u52a0", "GD": "\u683c\u6797\u7eb3\u8fbe", "GL": "\u683c\u9675\u5170", "GE": "\u683c\u9c81\u5409\u4e9a", "GG": "\u6839\u897f\u5c9b", "CU": "\u53e4\u5df4", "GP": "\u74dc\u5fb7\u7f57\u666e", "GU": "\u5173\u5c9b", "GY": "\u572d\u4e9a\u90a3", "KZ": "\u54c8\u8428\u514b\u65af\u5766", "HT": "\u6d77\u5730", "KR": "\u97e9\u56fd", "NL": "\u8377\u5170", "BQ": "\u8377\u5c5e\u52a0\u52d2\u6bd4\u533a", "SX": "\u8377\u5c5e\u5723\u9a6c\u4e01", "HM": "\u8d6b\u5fb7\u5c9b\u548c\u9ea6\u514b\u5510\u7eb3\u7fa4\u5c9b", "ME": "\u9ed1\u5c71", "HN": "\u6d2a\u90fd\u62c9\u65af", "KI": "\u57fa\u91cc\u5df4\u65af", "DJ": "\u5409\u5e03\u63d0", "KG": "\u5409\u5c14\u5409\u65af\u65af\u5766", "GN": "\u51e0\u5185\u4e9a", "GW": "\u51e0\u5185\u4e9a\u6bd4\u7ecd", "CA": "\u52a0\u62ff\u5927", "GH": "\u52a0\u7eb3", "GA": "\u52a0\u84ec", "KH": "\u67ec\u57d4\u5be8", "CZ": "\u6377\u514b", "ZW": "\u6d25\u5df4\u5e03\u97e6", "CM": "\u5580\u9ea6\u9686", "QA": "\u5361\u5854\u5c14", "KY": "\u5f00\u66fc\u7fa4\u5c9b", "CC": "\u79d1\u79d1\u65af\uff08\u57fa\u6797\uff09\u7fa4\u5c9b", "KM": "\u79d1\u6469\u7f57", "CI": "\u79d1\u7279\u8fea\u74e6", "KW": "\u79d1\u5a01\u7279", "HR": "\u514b\u7f57\u5730\u4e9a", "KE": "\u80af\u5c3c\u4e9a", "CK": "\u5e93\u514b\u7fa4\u5c9b", "CW": "\u5e93\u62c9\u7d22", "LV": "\u62c9\u8131\u7ef4\u4e9a", "LS": "\u83b1\u7d22\u6258", "LA": "\u8001\u631d", "LB": "\u9ece\u5df4\u5ae9", "LT": "\u7acb\u9676\u5b9b", "LR": "\u5229\u6bd4\u91cc\u4e9a", "LY": "\u5229\u6bd4\u4e9a", "LI": "\u5217\u652f\u6566\u58eb\u767b", "RE": "\u7559\u5c3c\u6c6a", "LU": "\u5362\u68ee\u5821", "RW": "\u5362\u65fa\u8fbe", "RO": "\u7f57\u9a6c\u5c3c\u4e9a", "MG": "\u9a6c\u8fbe\u52a0\u65af\u52a0", "IM": "\u9a6c\u6069\u5c9b", "MV": "\u9a6c\u5c14\u4ee3\u592b", "MT": "\u9a6c\u8033\u4ed6", "MW": "\u9a6c\u62c9\u7ef4", "MY": "\u9a6c\u6765\u897f\u4e9a", "ML": "\u9a6c\u91cc", "MH": "\u9a6c\u7ecd\u5c14\u7fa4\u5c9b", "MQ": "\u9a6c\u63d0\u5c3c\u514b", "YT": "\u9a6c\u7ea6\u7279", "MU": "\u6bdb\u91cc\u6c42\u65af", "MR": "\u6bdb\u91cc\u5854\u5c3c\u4e9a", "US": "\u7f8e\u56fd", "UM": "\u7f8e\u56fd\u672c\u571f\u5916\u5c0f\u5c9b\u5c7f", "AS": "\u7f8e\u5c5e\u8428\u6469\u4e9a", "VI": "\u7f8e\u5c5e\u7ef4\u5c14\u4eac\u7fa4\u5c9b", "MN": "\u8499\u53e4", "MS": "\u8499\u7279\u585e\u62c9\u7279", "BD": "\u5b5f\u52a0\u62c9\u56fd", "PE": "\u79d8\u9c81", "FM": "\u5bc6\u514b\u7f57\u5c3c\u897f\u4e9a", "MM": "\u7f05\u7538", "MD": "\u6469\u5c14\u591a\u74e6", "MA": "\u6469\u6d1b\u54e5", "MC": "\u6469\u7eb3\u54e5", "MZ": "\u83ab\u6851\u6bd4\u514b", "MX": "\u58a8\u897f\u54e5", "NA": "\u7eb3\u7c73\u6bd4\u4e9a", "ZA": "\u5357\u975e", "AQ": "\u5357\u6781\u6d32", "GS": "\u5357\u4e54\u6cbb\u4e9a\u548c\u5357\u6851\u5a01\u5947\u7fa4\u5c9b", "SS": "\u5357\u82cf\u4e39", "NR": "\u7459\u9c81", "NI": "\u5c3c\u52a0\u62c9\u74dc", "NP": "\u5c3c\u6cca\u5c14", "NE": "\u5c3c\u65e5\u5c14", "NG": "\u5c3c\u65e5\u5229\u4e9a", "NU": "\u7ebd\u57c3", "NO": "\u632a\u5a01", "NF": "\u8bfa\u798f\u514b\u5c9b", "PW": "\u5e15\u52b3", "PN": "\u76ae\u7279\u51ef\u6069\u7fa4\u5c9b", "PT": "\u8461\u8404\u7259", "JP": "\u65e5\u672c", "SE": "\u745e\u5178", "CH": "\u745e\u58eb", "SV": "\u8428\u5c14\u74e6\u591a", "WS": "\u8428\u6469\u4e9a", "RS": "\u585e\u5c14\u7ef4\u4e9a", "SL": "\u585e\u62c9\u5229\u6602", "SN": "\u585e\u5185\u52a0\u5c14", "CY": "\u585e\u6d66\u8def\u65af", "SC": "\u585e\u820c\u5c14", "SA": "\u6c99\u7279\u963f\u62c9\u4f2f", "BL": "\u5723\u5df4\u6cf0\u52d2\u7c73", "CX": "\u5723\u8bde\u5c9b", "ST": "\u5723\u591a\u7f8e\u548c\u666e\u6797\u897f\u6bd4", "SH": "\u5723\u8d6b\u52d2\u62ff", "KN": "\u5723\u57fa\u8328\u548c\u5c3c\u7ef4\u65af", "LC": "\u5723\u5362\u897f\u4e9a", "SM": "\u5723\u9a6c\u529b\u8bfa", "PM": "\u5723\u76ae\u57c3\u5c14\u548c\u5bc6\u514b\u9686\u7fa4\u5c9b", "VC": "\u5723\u6587\u68ee\u7279\u548c\u683c\u6797\u7eb3\u4e01\u65af", "LK": "\u65af\u91cc\u5170\u5361", "SK": "\u65af\u6d1b\u4f10\u514b", "SI": "\u65af\u6d1b\u6587\u5c3c\u4e9a", "SJ": "\u65af\u74e6\u5c14\u5df4\u548c\u626c\u9a6c\u5ef6", "SZ": "\u65af\u5a01\u58eb\u5170", "SD": "\u82cf\u4e39", "SR": "\u82cf\u91cc\u5357", "SB": "\u6240\u7f57\u95e8\u7fa4\u5c9b", "SO": "\u7d22\u9a6c\u91cc", "TJ": "\u5854\u5409\u514b\u65af\u5766", "TW": "\u53f0\u6e7e", "TH": "\u6cf0\u56fd", "TZ": "\u5766\u6851\u5c3c\u4e9a", "TO": "\u6c64\u52a0", "TC": "\u7279\u514b\u65af\u548c\u51ef\u79d1\u65af\u7fa4\u5c9b", "TT": "\u7279\u7acb\u5c3c\u8fbe\u548c\u591a\u5df4\u54e5", "TN": "\u7a81\u5c3c\u65af", "TV": "\u56fe\u74e6\u5362", "TR": "\u571f\u8033\u5176", "TM": "\u571f\u5e93\u66fc\u65af\u5766", "TK": "\u6258\u514b\u52b3", "WF": "\u74e6\u5229\u65af\u548c\u5bcc\u56fe\u7eb3", "VU": "\u74e6\u52aa\u963f\u56fe", "GT": "\u5371\u5730\u9a6c\u62c9", "VE": "\u59d4\u5185\u745e\u62c9", "BN": "\u6587\u83b1", "UG": "\u4e4c\u5e72\u8fbe", "UA": "\u4e4c\u514b\u5170", "UY": "\u4e4c\u62c9\u572d", "UZ": "\u4e4c\u5179\u522b\u514b\u65af\u5766", "ES": "\u897f\u73ed\u7259", "EH": "\u897f\u6492\u54c8\u62c9", "GR": "\u5e0c\u814a", "SG": "\u65b0\u52a0\u5761", "NC": "\u65b0\u5580\u91cc\u591a\u5c3c\u4e9a", "NZ": "\u65b0\u897f\u5170", "HU": "\u5308\u7259\u5229", "SY": "\u53d9\u5229\u4e9a", "JM": "\u7259\u4e70\u52a0", "AM": "\u4e9a\u7f8e\u5c3c\u4e9a", "YE": "\u4e5f\u95e8", "IQ": "\u4f0a\u62c9\u514b", "IR": "\u4f0a\u6717", "IL": "\u4ee5\u8272\u5217", "IT": "\u610f\u5927\u5229", "IN": "\u5370\u5ea6", "ID": "\u5370\u5ea6\u5c3c\u897f\u4e9a", "GB": "\u82f1\u56fd", "VG": "\u82f1\u5c5e\u7ef4\u5c14\u4eac\u7fa4\u5c9b", "IO": "\u82f1\u5c5e\u5370\u5ea6\u6d0b\u9886\u5730", "JO": "\u7ea6\u65e6", "VN": "\u8d8a\u5357", "ZM": "\u8d5e\u6bd4\u4e9a", "JE": "\u6cfd\u897f\u5c9b", "TD": "\u4e4d\u5f97", "GI": "\u76f4\u5e03\u7f57\u9640", "CL": "\u667a\u5229", "CF": "\u4e2d\u975e\u5171\u548c\u56fd", "CN": "\u4e2d\u56fd", "MO": "\u4e2d\u56fd\u6fb3\u95e8\u7279\u522b\u884c\u653f\u533a", "HK": "\u4e2d\u56fd\u9999\u6e2f\u7279\u522b\u884c\u653f\u533a"} \ No newline at end of file diff --git a/desktop/src/onionshare/resources/locale/en.json b/desktop/src/onionshare/resources/locale/en.json index 65b067d1..48fc16f2 100644 --- a/desktop/src/onionshare/resources/locale/en.json +++ b/desktop/src/onionshare/resources/locale/en.json @@ -44,8 +44,13 @@ "gui_tor_settings_window_title": "Tor Settings", "gui_autoconnect_description": "OnionShare relies on the Tor Network, run by thousands of volunteers around the world.", "gui_enable_autoconnect_checkbox": "Enable automatically connecting to Tor", + "gui_autoconnect_bridge_description": "Failed connecting to Tor. This could be because your internet is being censored, and you might be able to bypass this censorship by using a bridge.", + "gui_autoconnect_bridge_detect_automatic": "Automatically determine my location to bypass country-specific censorship", + "gui_autoconnect_bridge_detect_manual": "Manually select my country", "gui_autoconnect_start": "Connect to Tor", "gui_autoconnect_configure": "Network Settings", + "gui_autoconnect_bridge_start": "Use a Bridge", + "gui_autoconnect_bridge_back": "Back", "gui_settings_window_title": "Settings", "gui_settings_autoupdate_label": "Check for new version", "gui_settings_autoupdate_option": "Notify me when a new version is available", -- cgit v1.2.3-54-g00ecf From 08ed7dab6577760f6b1470fb87ba315a0d460e3a Mon Sep 17 00:00:00 2001 From: Micah Lee Date: Mon, 6 Dec 2021 19:42:43 -0800 Subject: Oops, default connect_timeout should still be 120s --- cli/onionshare_cli/onion.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cli/onionshare_cli/onion.py b/cli/onionshare_cli/onion.py index 94009db4..5ac669b8 100644 --- a/cli/onionshare_cli/onion.py +++ b/cli/onionshare_cli/onion.py @@ -192,7 +192,7 @@ class Onion(object): custom_settings=None, config=None, tor_status_update_func=None, - connect_timeout=1, + connect_timeout=120, local_only=False, ): if local_only: -- cgit v1.2.3-54-g00ecf From 09ac74a1be1842397dc74b7444ec569359b9dec4 Mon Sep 17 00:00:00 2001 From: Micah Lee Date: Mon, 6 Dec 2021 20:01:28 -0800 Subject: Add country dropdown --- cli/onionshare_cli/common.py | 1 - desktop/src/onionshare/connection_tab.py | 32 +++++++++++++++++++++---- desktop/src/onionshare/gui_common.py | 23 ++++++++++++++---- desktop/src/onionshare/resources/locale/en.json | 2 +- 4 files changed, 48 insertions(+), 10 deletions(-) diff --git a/cli/onionshare_cli/common.py b/cli/onionshare_cli/common.py index a8e32411..87ecff93 100644 --- a/cli/onionshare_cli/common.py +++ b/cli/onionshare_cli/common.py @@ -312,7 +312,6 @@ class Common: """ Returns the absolute path of a resource """ - self.log("Common", "get_resource_path", f"filename={filename}") path = resource_filename("onionshare_cli", os.path.join("resources", filename)) self.log("Common", "get_resource_path", f"filename={filename}, path={path}") return path diff --git a/desktop/src/onionshare/connection_tab.py b/desktop/src/onionshare/connection_tab.py index 9b0c188d..b7381926 100644 --- a/desktop/src/onionshare/connection_tab.py +++ b/desktop/src/onionshare/connection_tab.py @@ -18,6 +18,8 @@ You should have received a copy of the GNU General Public License along with this program. If not, see . """ +import json +import os from PySide2 import QtCore, QtWidgets, QtGui from onionshare_cli.settings import Settings @@ -57,7 +59,9 @@ class AutoConnectTab(QtWidgets.QWidget): QtGui.QPixmap.fromImage( QtGui.QImage( GuiCommon.get_resource_path( - "images/{}_logo_text_bg.png".format(common.gui.color_mode) + os.path.join( + "images", f"{common.gui.color_mode}_logo_text_bg.png" + ) ) ) ) @@ -291,7 +295,22 @@ class AutoConnectUseBridgeWidget(QtWidgets.QWidget): detect_layout.addWidget(self.detect_automatic_radio) detect_layout.addWidget(self.detect_manual_radio) - # World map + # Country list + locale = self.common.settings.get("locale") + if not locale: + locale = "en" + + with open( + GuiCommon.get_resource_path(os.path.join("countries", f"{locale}.json")) + ) as f: + countries = json.loads(f.read()) + + self.country_combobox = QtWidgets.QComboBox() + self.country_combobox.setStyleSheet( + common.gui.css["autoconnect_countries_combobox"] + ) + for country_code in countries: + self.country_combobox.addItem(countries[country_code], country_code) # Buttons self.connect_button = QtWidgets.QPushButton( @@ -326,9 +345,12 @@ class AutoConnectUseBridgeWidget(QtWidgets.QWidget): layout = QtWidgets.QVBoxLayout() layout.addWidget(description_label) layout.addLayout(detect_layout) + layout.addWidget(self.country_combobox) layout.addWidget(cta_widget) self.setLayout(layout) + self.detect_automatic_radio.setChecked(True) + def hide_buttons(self): self.connect_button.hide() self.configure_button.hide() @@ -338,10 +360,12 @@ class AutoConnectUseBridgeWidget(QtWidgets.QWidget): self.configure_button.show() def _detect_automatic_toggled(self): - pass + self.country_combobox.setEnabled(False) + self.country_combobox.hide() def _detect_manual_toggled(self): - pass + self.country_combobox.setEnabled(True) + self.country_combobox.show() def _connect_clicked(self): self.connect_clicked.emit() diff --git a/desktop/src/onionshare/gui_common.py b/desktop/src/onionshare/gui_common.py index dc9c74b6..a9bc9795 100644 --- a/desktop/src/onionshare/gui_common.py +++ b/desktop/src/onionshare/gui_common.py @@ -176,6 +176,15 @@ class GuiCommon: width: 0; height: 0; }""", + "autoconnect_countries_combobox": """ + QComboBox { + padding: 10px; + font-size: 16px; + } + QComboBox:disabled { + color: #666666; + } + """, # Common styles between modes and their child widgets "mode_settings_toggle_advanced": """ QPushButton { @@ -562,9 +571,13 @@ class ToggleCheckbox(QtWidgets.QCheckBox): self.initStyleOption(opt) s = self.style() s.drawControl(QtWidgets.QStyle.CE_CheckBox, opt, painter, self) - - rect = QtCore.QRect(s.subElementRect(QtWidgets.QStyle.SE_CheckBoxContents, opt, self)) - x = rect.width() - rect.x() - self.w + 20 # 20 is the padding between text and toggle + + rect = QtCore.QRect( + s.subElementRect(QtWidgets.QStyle.SE_CheckBoxContents, opt, self) + ) + x = ( + rect.width() - rect.x() - self.w + 20 + ) # 20 is the padding between text and toggle y = self.height() / 2 - self.h / 2 + self.y() / 2 self.toggleRect = QtCore.QRect(x, y, self.w, self.h) painter.setBrush(QtGui.QColor(self.bg_color)) @@ -574,6 +587,8 @@ class ToggleCheckbox(QtWidgets.QCheckBox): painter.drawEllipse(x, y - 3, self.h + 6, self.h + 6) else: painter.setBrush(QtGui.QColor(self.active_color)) - painter.drawEllipse(x + self.w - (self.h + 6), y - 3, self.h + 6, self.h + 6) + painter.drawEllipse( + x + self.w - (self.h + 6), y - 3, self.h + 6, self.h + 6 + ) painter.end() diff --git a/desktop/src/onionshare/resources/locale/en.json b/desktop/src/onionshare/resources/locale/en.json index 48fc16f2..e1a543e1 100644 --- a/desktop/src/onionshare/resources/locale/en.json +++ b/desktop/src/onionshare/resources/locale/en.json @@ -44,7 +44,7 @@ "gui_tor_settings_window_title": "Tor Settings", "gui_autoconnect_description": "OnionShare relies on the Tor Network, run by thousands of volunteers around the world.", "gui_enable_autoconnect_checkbox": "Enable automatically connecting to Tor", - "gui_autoconnect_bridge_description": "Failed connecting to Tor. This could be because your internet is being censored, and you might be able to bypass this censorship by using a bridge.", + "gui_autoconnect_bridge_description": "Failed connecting to Tor. This could be because your internet is being censored. You might be able to bypass this censorship by using a bridge.", "gui_autoconnect_bridge_detect_automatic": "Automatically determine my location to bypass country-specific censorship", "gui_autoconnect_bridge_detect_manual": "Manually select my country", "gui_autoconnect_start": "Connect to Tor", -- cgit v1.2.3-54-g00ecf From 8416d089f4fd3daabd24a335d6c3169abeebc67c Mon Sep 17 00:00:00 2001 From: Micah Lee Date: Mon, 6 Dec 2021 20:54:03 -0800 Subject: Make automatic detection flip through country names while it's running meek --- cli/onionshare_cli/settings.py | 1 - desktop/src/onionshare/connection_tab.py | 84 +++++++++-- desktop/src/onionshare/gui_common.py | 9 ++ desktop/src/onionshare/main_window.py | 21 +-- desktop/src/onionshare/resources/locale/en.json | 5 +- desktop/src/onionshare/tab_widget.py | 6 +- desktop/src/onionshare/tor_connection.py | 187 +----------------------- 7 files changed, 96 insertions(+), 217 deletions(-) diff --git a/cli/onionshare_cli/settings.py b/cli/onionshare_cli/settings.py index e36c1121..473d8379 100644 --- a/cli/onionshare_cli/settings.py +++ b/cli/onionshare_cli/settings.py @@ -115,7 +115,6 @@ class Settings(object): "persistent_tabs": [], "locale": None, # this gets defined in fill_in_defaults() "theme": 0, - "censorship_circumvention": False, } self._settings = {} self.fill_in_defaults() diff --git a/desktop/src/onionshare/connection_tab.py b/desktop/src/onionshare/connection_tab.py index b7381926..7c97c54a 100644 --- a/desktop/src/onionshare/connection_tab.py +++ b/desktop/src/onionshare/connection_tab.py @@ -20,6 +20,7 @@ along with this program. If not, see . import json import os +import random from PySide2 import QtCore, QtWidgets, QtGui from onionshare_cli.settings import Settings @@ -75,13 +76,15 @@ class AutoConnectTab(QtWidgets.QWidget): # First launch widget self.first_launch_widget = AutoConnectFirstLaunchWidget(self.common) self.first_launch_widget.toggle_auto_connect.connect(self.toggle_auto_connect) - self.first_launch_widget.connect_clicked.connect(self.connect_clicked) + self.first_launch_widget.connect_clicked.connect( + self.first_launch_widget_connect_clicked + ) self.first_launch_widget.open_tor_settings.connect(self.open_tor_settings) self.first_launch_widget.show() # Use bridge widget self.use_bridge_widget = AutoConnectUseBridgeWidget(self.common) - self.use_bridge_widget.connect_clicked.connect(self.connect_clicked) + self.use_bridge_widget.connect_clicked.connect(self.use_bridge_connect_clicked) self.use_bridge_widget.back_clicked.connect(self.back_clicked) self.use_bridge_widget.open_tor_settings.connect(self.open_tor_settings) self.use_bridge_widget.hide() @@ -119,7 +122,7 @@ class AutoConnectTab(QtWidgets.QWidget): self.first_launch_widget.enable_autoconnect_checkbox.setCheckState( QtCore.Qt.Checked ) - self.connect_clicked() + self.first_launch_widget_connect_clicked() def toggle_auto_connect(self): """ @@ -135,17 +138,12 @@ class AutoConnectTab(QtWidgets.QWidget): def open_tor_settings(self): self.parent.open_tor_settings_tab() - def connect_clicked(self): + def first_launch_widget_connect_clicked(self): """ - Connect button clicked. Try to connect to tor. + Connect button in first launch widget clicked. Try to connect to tor. """ - self.common.log("AutoConnectTab", "connect_clicked") - - # Hide the buttons - if self.first_launch_widget.isVisible(): - self.first_launch_widget.hide_buttons() - elif self.use_bridge_widget.isVisible(): - self.use_bridge_widget.hide_buttons() + self.common.log("AutoConnectTab", "first_launch_widget_connect_clicked") + self.first_launch_widget.hide_buttons() if not self.common.gui.local_only: self.tor_con.show() @@ -153,6 +151,33 @@ class AutoConnectTab(QtWidgets.QWidget): else: self.close_this_tab.emit() + def use_bridge_connect_clicked(self): + """ + Connect button in use bridge widget clicked. + """ + self.common.log( + "AutoConnectTab", + "use_bridge_connect_clicked", + "Trying to automatically obtain bridges", + ) + self.use_bridge_widget.hide_buttons() + self.use_bridge_widget.start_autodetecting_location() + + # self.common.gui.meek.start() + # self.censorship_circumvention = CensorshipCircumvention( + # self.common, self.common.gui.meek + # ) + # bridge_settings = self.censorship_circumvention.request_settings(country="tm") + # self.common.gui.meek.cleanup() + + # if bridge_settings and self.censorship_circumvention.save_settings( + # self.settings, bridge_settings + # ): + # # Try and connect again + # self.start() + # else: + # self.fail.emit() + def back_clicked(self): """ Switch from use bridge widget back to first launch widget @@ -174,7 +199,7 @@ class AutoConnectTab(QtWidgets.QWidget): # Close the tab self.close_this_tab.emit() - def tor_con_fail(self, msg): + def tor_con_fail(self): """ Finished testing tor connection. """ @@ -312,6 +337,11 @@ class AutoConnectUseBridgeWidget(QtWidgets.QWidget): for country_code in countries: self.country_combobox.addItem(countries[country_code], country_code) + # Task label + self.task_label = QtWidgets.QLabel() + self.task_label.setStyleSheet(common.gui.css["enable_autoconnect"]) + self.task_label.hide() + # Buttons self.connect_button = QtWidgets.QPushButton( strings._("gui_autoconnect_bridge_start") @@ -346,6 +376,7 @@ class AutoConnectUseBridgeWidget(QtWidgets.QWidget): layout.addWidget(description_label) layout.addLayout(detect_layout) layout.addWidget(self.country_combobox) + layout.addWidget(self.task_label) layout.addWidget(cta_widget) self.setLayout(layout) @@ -353,12 +384,39 @@ class AutoConnectUseBridgeWidget(QtWidgets.QWidget): def hide_buttons(self): self.connect_button.hide() + self.back_button.hide() self.configure_button.hide() def show_buttons(self): self.connect_button.show() + self.back_button.show() self.configure_button.show() + def start_autodetecting_location(self): + self.detect_automatic_radio.setEnabled(False) + self.detect_manual_radio.setEnabled(False) + + self.country_combobox.setEnabled(False) + self.country_combobox.show() + + # If we're automatically detecting it, randomly switch up the country + # dropdown until we detect the location + if self.detect_automatic_radio.isChecked(): + self.task_label.show() + self.task_label.setText(strings._("gui_autoconnect_task_detect_location")) + + self.autodetecting_timer = QtCore.QTimer() + self.autodetecting_timer.timeout.connect(self._autodetecting_timer_callback) + self.autodetecting_timer.start(200) + + def stop_autodetecting_location(self): + self.task_label.hide() + self.autodetecting_timer.stop() + + def _autodetecting_timer_callback(self): + new_index = random.randrange(0, self.country_combobox.count()) + self.country_combobox.setCurrentIndex(new_index) + def _detect_automatic_toggled(self): self.country_combobox.setEnabled(False) self.country_combobox.hide() diff --git a/desktop/src/onionshare/gui_common.py b/desktop/src/onionshare/gui_common.py index 0e0ca9d3..7c97d238 100644 --- a/desktop/src/onionshare/gui_common.py +++ b/desktop/src/onionshare/gui_common.py @@ -40,6 +40,7 @@ from onionshare_cli.onion import ( TorTooOldStealth, PortNotAvailable, ) +from onionshare_cli.meek import Meek class GuiCommon: @@ -78,6 +79,9 @@ class GuiCommon: os.makedirs(self.events_dir, 0o700, True) self.events_filename = os.path.join(self.events_dir, "events") + # Instantiate Meek, which is used to bypass censorship + self.meek = Meek(self.common, get_tor_paths=self.get_tor_paths) + self.css = self.get_css(qtapp.color_mode) self.color_mode = qtapp.color_mode @@ -185,6 +189,11 @@ class GuiCommon: color: #666666; } """, + "autoconnect_task_label": """ + QLabel { + font-weight: bold; + } + """, # Common styles between modes and their child widgets "mode_settings_toggle_advanced": """ QPushButton { diff --git a/desktop/src/onionshare/main_window.py b/desktop/src/onionshare/main_window.py index e36ec53b..c7f74e4d 100644 --- a/desktop/src/onionshare/main_window.py +++ b/desktop/src/onionshare/main_window.py @@ -26,10 +26,10 @@ from . import strings from .widgets import Alert from .update_checker import UpdateThread from .tab_widget import TabWidget +from .settings_tab import SettingsTab from .gui_common import GuiCommon from .threads import OnionCleanupThread -from onionshare_cli.meek import Meek class MainWindow(QtWidgets.QMainWindow): """ @@ -53,7 +53,7 @@ class MainWindow(QtWidgets.QMainWindow): self.settings_action = menu.addAction(strings._("gui_settings_window_title")) self.settings_action.triggered.connect(self.open_settings) self.help_action = menu.addAction(strings._("gui_settings_button_help")) - self.help_action.triggered.connect(lambda: SettingsDialog.help_clicked(self)) + self.help_action.triggered.connect(lambda: SettingsTab.open_help()) exit_action = menu.addAction(strings._("systray_menu_exit")) exit_action.triggered.connect(self.close) @@ -160,23 +160,6 @@ class MainWindow(QtWidgets.QMainWindow): self.setCentralWidget(central_widget) self.show() -<<<<<<< HEAD -======= - # Instantiate Meek, which the TorConnectionDialog may use to resolve - # connection issues by automatically obtaining bridges. - self.meek = Meek(self.common, get_tor_paths=self.common.gui.get_tor_paths) - # Start the "Connecting to Tor" dialog, which calls onion.connect() - tor_con = TorConnectionDialog(self.common, self.meek) - tor_con.canceled.connect(self.tor_connection_canceled) - tor_con.open_tor_settings.connect(self.tor_connection_open_tor_settings) - if not self.common.gui.local_only: - tor_con.start() - self.settings_have_changed() - - # After connecting to Tor, check for updates - self.check_for_updates() - ->>>>>>> mig5-censorship_automatically_attempt_and_reconnect # Create the close warning dialog -- the dialog widget needs to be in the constructor # in order to test it self.close_dialog = QtWidgets.QMessageBox() diff --git a/desktop/src/onionshare/resources/locale/en.json b/desktop/src/onionshare/resources/locale/en.json index eeb991f4..a4780230 100644 --- a/desktop/src/onionshare/resources/locale/en.json +++ b/desktop/src/onionshare/resources/locale/en.json @@ -45,12 +45,13 @@ "gui_autoconnect_description": "OnionShare relies on the Tor Network, run by thousands of volunteers around the world.", "gui_enable_autoconnect_checkbox": "Enable automatically connecting to Tor", "gui_autoconnect_bridge_description": "Failed connecting to Tor. This could be because your internet is being censored. You might be able to bypass this censorship by using a bridge.", - "gui_autoconnect_bridge_detect_automatic": "Automatically determine my location to bypass country-specific censorship", + "gui_autoconnect_bridge_detect_automatic": "Automatically determine my country to bypass country-specific censorship", "gui_autoconnect_bridge_detect_manual": "Manually select my country", "gui_autoconnect_start": "Connect to Tor", "gui_autoconnect_configure": "Network Settings", "gui_autoconnect_bridge_start": "Use a Bridge", "gui_autoconnect_bridge_back": "Back", + "gui_autoconnect_task_detect_location": "Automatically determining your country...", "gui_settings_window_title": "Settings", "gui_settings_autoupdate_label": "Check for new version", "gui_settings_autoupdate_option": "Notify me when a new version is available", @@ -243,4 +244,4 @@ "moat_captcha_error": "The solution is not correct. Please try again.", "moat_solution_empty_error": "You must enter the characters from the image", "mode_tor_not_connected_label": "OnionShare is not connected to the Tor network" -} +} \ No newline at end of file diff --git a/desktop/src/onionshare/tab_widget.py b/desktop/src/onionshare/tab_widget.py index ae1fe651..db139ea8 100644 --- a/desktop/src/onionshare/tab_widget.py +++ b/desktop/src/onionshare/tab_widget.py @@ -168,7 +168,7 @@ class TabWidget(QtWidgets.QTabWidget): self.add_tab() else: self.open_connection_tab() - + def check_autoconnect_tab(self): if type(self.tabs[0]) is AutoConnectTab: self.tabs[0].check_autoconnect() @@ -218,7 +218,9 @@ class TabWidget(QtWidgets.QTabWidget): self.setCurrentIndex(self.indexOf(self.tabs[tab_id])) return - connection_tab = AutoConnectTab(self.common, self.current_tab_id, self.status_bar, parent=self) + connection_tab = AutoConnectTab( + self.common, self.current_tab_id, self.status_bar, parent=self + ) connection_tab.close_this_tab.connect(self.close_connection_tab) self.tabs[self.current_tab_id] = connection_tab self.current_tab_id += 1 diff --git a/desktop/src/onionshare/tor_connection.py b/desktop/src/onionshare/tor_connection.py index cb825487..fe3274a6 100644 --- a/desktop/src/onionshare/tor_connection.py +++ b/desktop/src/onionshare/tor_connection.py @@ -39,153 +39,9 @@ from onionshare_cli.onion import ( ) from . import strings -from .gui_common import GuiCommon -from .widgets import Alert from onionshare_cli.censorship import CensorshipCircumvention -class TorConnectionDialog(QtWidgets.QProgressDialog): - """ - Connecting to Tor dialog. - """ - - open_tor_settings = QtCore.Signal() - success = QtCore.Signal() - - def __init__( - self, common, meek, custom_settings=False, testing_settings=False, onion=None - ): - super(TorConnectionDialog, self).__init__(None) - - self.common = common - self.testing_settings = testing_settings - - self.meek = meek - - if custom_settings: - self.settings = custom_settings - else: - self.settings = self.common.settings - - self.common.log("TorConnectionDialog", "__init__") - - if self.testing_settings: - self.title = strings._("gui_settings_connection_type_test_button") - self.onion = onion - else: - self.title = "OnionShare" - self.onion = self.common.gui.onion - - self.setWindowTitle(self.title) - - self.setWindowIcon(QtGui.QIcon(GuiCommon.get_resource_path("images/logo.png"))) - self.setModal(True) - self.setFixedSize(400, 150) - - # Label - self.setLabelText(strings._("connecting_to_tor")) - - # Progress bar ticks from 0 to 100 - self.setRange(0, 100) - # Don't show if connection takes less than 100ms (for non-bundled tor) - self.setMinimumDuration(100) - - # Start displaying the status at 0 - self._tor_status_update(0, "") - - def start(self): - self.common.log("TorConnectionDialog", "start") - - t = TorConnectionThread(self.common, self.settings, self) - t.tor_status_update.connect(self._tor_status_update) - t.connected_to_tor.connect(self._connected_to_tor) - t.canceled_connecting_to_tor.connect(self._canceled_connecting_to_tor) - t.error_connecting_to_tor.connect(self._error_connecting_to_tor) - t.start() - - # The main thread needs to remain active, and checking for Qt events, - # until the thread is finished. Otherwise it won't be able to handle - # accepting signals. - self.active = True - while self.active: - time.sleep(0.1) - self.common.gui.qtapp.processEvents() - - def _tor_status_update(self, progress, summary): - self.setValue(int(progress)) - self.setLabelText( - f"{strings._('connecting_to_tor')}
{summary}" - ) - - def _connected_to_tor(self): - self.common.log("TorConnectionDialog", "_connected_to_tor") - self.active = False - # Close the dialog after connecting - self.setValue(self.maximum()) - - def _canceled_connecting_to_tor(self): - self.common.log("TorConnectionDialog", "_canceled_connecting_to_tor") - self.active = False - self.onion.cleanup() - - # Cancel connecting to Tor - QtCore.QTimer.singleShot(1, self.cancel) - - def _error_connecting_to_tor(self, msg): - self.common.log("TorConnectionDialog", "_error_connecting_to_tor") - self.active = False - - if self.testing_settings: - # If testing, just display the error but don't open settings - def alert(): - Alert(self.common, msg, QtWidgets.QMessageBox.Warning, title=self.title) - - # If we are allowed to try automatically resolving connection issues - # (e.g possible censorship) by obtaining bridges for the user, do so - elif self.settings.get("censorship_circumvention"): - - def alert(): - return - - # Automatically try to obtain bridges from the Censorship Circumvention API - self.common.log( - "TorConnectionDialog", - "_error_connecting_to_tor", - "Trying to automatically obtain bridges", - ) - self.meek.start() - self.censorship_circumvention = CensorshipCircumvention( - self.common, self.meek - ) - bridge_settings = self.censorship_circumvention.request_settings( - country="tm" - ) - self.meek.cleanup() - - if bridge_settings and self.censorship_circumvention.save_settings( - self.settings, bridge_settings - ): - # Try and connect again - self.start() - else: - # If not testing, open settings after displaying the error - def alert(): - Alert( - self.common, - f"{msg}\n\n{strings._('gui_tor_connection_error_settings')}", - QtWidgets.QMessageBox.Warning, - title=self.title, - ) - - # Open settings - self.open_tor_settings.emit() - - QtCore.QTimer.singleShot(1, alert) - - # Cancel connecting to Tor - QtCore.QTimer.singleShot(1, self.cancel) - - class TorConnectionWidget(QtWidgets.QWidget): """ Connecting to Tor widget, with a progress bar @@ -193,9 +49,9 @@ class TorConnectionWidget(QtWidgets.QWidget): open_tor_settings = QtCore.Signal() success = QtCore.Signal() - fail = QtCore.Signal(str) + fail = QtCore.Signal() - def __init__(self, common, status_bar, meek): + def __init__(self, common, status_bar): super(TorConnectionWidget, self).__init__(None) self.common = common self.common.log("TorConnectionWidget", "__init__") @@ -211,8 +67,6 @@ class TorConnectionWidget(QtWidgets.QWidget): ) self.cancel_button.clicked.connect(self.cancel_clicked) - self.meek = meek - progress_layout = QtWidgets.QHBoxLayout() progress_layout.addWidget(self.progress) progress_layout.addWidget(self.cancel_button) @@ -259,7 +113,7 @@ class TorConnectionWidget(QtWidgets.QWidget): def cancel_clicked(self): self.was_canceled = True - self.fail.emit("") + self.fail.emit() def wasCanceled(self): return self.was_canceled @@ -288,44 +142,17 @@ class TorConnectionWidget(QtWidgets.QWidget): # Cancel connecting to Tor QtCore.QTimer.singleShot(1, self.cancel_clicked) - def _error_connecting_to_tor(self, msg): + def _error_connecting_to_tor(self): self.common.log("TorConnectionWidget", "_error_connecting_to_tor") self.active = False - - # If we are allowed to try automatically resolving connection issues - # (e.g possible censorship) by obtaining bridges for the user, do so - if self.settings.get("censorship_circumvention"): - # Automatically try to obtain bridges from the Censorship Circumvention API - self.common.log( - "TorConnectionWidget", - "_error_connecting_to_tor", - "Trying to automatically obtain bridges", - ) - self.meek.start() - self.censorship_circumvention = CensorshipCircumvention( - self.common, self.meek - ) - bridge_settings = self.censorship_circumvention.request_settings( - country="tm" - ) - self.meek.cleanup() - - if bridge_settings and self.censorship_circumvention.save_settings( - self.settings, bridge_settings - ): - # Try and connect again - self.start() - else: - self.fail.emit() - else: - self.fail.emit() + self.fail.emit() class TorConnectionThread(QtCore.QThread): tor_status_update = QtCore.Signal(str, str) connected_to_tor = QtCore.Signal() canceled_connecting_to_tor = QtCore.Signal() - error_connecting_to_tor = QtCore.Signal(str) + error_connecting_to_tor = QtCore.Signal() def __init__(self, common, settings, parent): super(TorConnectionThread, self).__init__() @@ -370,7 +197,7 @@ class TorConnectionThread(QtCore.QThread): self.common.log( "TorConnectionThread", "run", f"caught exception: {message}" ) - self.error_connecting_to_tor.emit(message) + self.error_connecting_to_tor.emit() def _tor_status_update(self, progress, summary): self.tor_status_update.emit(progress, summary) -- cgit v1.2.3-54-g00ecf From 2ad9f8df589f33082fbda47ec49b312db4c93f3e Mon Sep 17 00:00:00 2001 From: Saptak S Date: Thu, 9 Dec 2021 03:15:21 +0530 Subject: Don't show autoconnect tab if local only --- desktop/src/onionshare/tab_widget.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/desktop/src/onionshare/tab_widget.py b/desktop/src/onionshare/tab_widget.py index 41833635..99770576 100644 --- a/desktop/src/onionshare/tab_widget.py +++ b/desktop/src/onionshare/tab_widget.py @@ -162,9 +162,9 @@ class TabWidget(QtWidgets.QTabWidget): pass def new_tab_clicked(self): - # if already connected to tor, create a new tab + # if already connected to tor or local only, create a new tab # Else open the initial connection tab - if self.common.gui.onion.is_authenticated(): + if self.common.gui.local_only or self.common.gui.onion.is_authenticated(): self.add_tab() else: self.open_connection_tab() -- cgit v1.2.3-54-g00ecf From 8d1d395d1100f704d2e03cf57958a004f4dcf82b Mon Sep 17 00:00:00 2001 From: Saptak S Date: Thu, 9 Dec 2021 03:20:54 +0530 Subject: Dont start tor if torsettingstab opened from autoconnect --- desktop/src/onionshare/connection_tab.py | 9 +++------ desktop/src/onionshare/main_window.py | 5 +++-- desktop/src/onionshare/tab_widget.py | 4 ++-- desktop/src/onionshare/tor_settings_tab.py | 5 +++-- 4 files changed, 11 insertions(+), 12 deletions(-) diff --git a/desktop/src/onionshare/connection_tab.py b/desktop/src/onionshare/connection_tab.py index bb5f72a3..13a6b2ad 100644 --- a/desktop/src/onionshare/connection_tab.py +++ b/desktop/src/onionshare/connection_tab.py @@ -152,7 +152,7 @@ class AutoConnectTab(QtWidgets.QWidget): self.curr_settings.save() def open_tor_settings(self): - self.parent.open_tor_settings_tab() + self.parent.open_tor_settings_tab(from_autoconnect=True) def connect_clicked(self): """ @@ -164,11 +164,8 @@ class AutoConnectTab(QtWidgets.QWidget): self.connect_button.hide() self.configure_button.hide() - if not self.common.gui.local_only: - self.tor_con.show() - self.tor_con.start(self.curr_settings) - else: - self.close_this_tab.emit() + self.tor_con.show() + self.tor_con.start(self.curr_settings) def tor_con_success(self): """ diff --git a/desktop/src/onionshare/main_window.py b/desktop/src/onionshare/main_window.py index 54fef40c..80d9b5c1 100644 --- a/desktop/src/onionshare/main_window.py +++ b/desktop/src/onionshare/main_window.py @@ -23,8 +23,8 @@ import time from PySide2 import QtCore, QtWidgets, QtGui from . import strings -from .tor_connection import TorConnectionDialog from .widgets import Alert +from .connection_tab import AutoConnectTab from .update_checker import UpdateThread from .tab_widget import TabWidget from .gui_common import GuiCommon @@ -238,7 +238,8 @@ class MainWindow(QtWidgets.QMainWindow): Open the TorSettingsTab """ self.common.log("MainWindow", "open_tor_settings") - self.tabs.open_tor_settings_tab() + from_autoconnect = type(self.tabs.tabs[0]) is AutoConnectTab + self.tabs.open_tor_settings_tab(from_autoconnect) def open_settings(self): """ diff --git a/desktop/src/onionshare/tab_widget.py b/desktop/src/onionshare/tab_widget.py index 99770576..972792fd 100644 --- a/desktop/src/onionshare/tab_widget.py +++ b/desktop/src/onionshare/tab_widget.py @@ -241,7 +241,7 @@ class TabWidget(QtWidgets.QTabWidget): index = self.addTab(settings_tab, strings._("gui_settings_window_title")) self.setCurrentIndex(index) - def open_tor_settings_tab(self): + def open_tor_settings_tab(self, from_autoconnect=False): self.common.log("TabWidget", "open_tor_settings_tab") # See if a settings tab is already open, and if so switch to it @@ -251,7 +251,7 @@ class TabWidget(QtWidgets.QTabWidget): return self.tor_settings_tab = TorSettingsTab( - self.common, self.current_tab_id, self.are_tabs_active(), self.status_bar + self.common, self.current_tab_id, self.are_tabs_active(), self.status_bar, from_autoconnect ) self.tor_settings_tab.close_this_tab.connect(self.close_tor_settings_tab) self.tor_settings_tab.tor_is_connected.connect(self.tor_is_connected) diff --git a/desktop/src/onionshare/tor_settings_tab.py b/desktop/src/onionshare/tor_settings_tab.py index 28778365..1557a4d6 100644 --- a/desktop/src/onionshare/tor_settings_tab.py +++ b/desktop/src/onionshare/tor_settings_tab.py @@ -43,7 +43,7 @@ class TorSettingsTab(QtWidgets.QWidget): tor_is_connected = QtCore.Signal() tor_is_disconnected = QtCore.Signal() - def __init__(self, common, tab_id, are_tabs_active, status_bar): + def __init__(self, common, tab_id, are_tabs_active, status_bar, from_autoconnect=False): super(TorSettingsTab, self).__init__() self.common = common @@ -54,6 +54,7 @@ class TorSettingsTab(QtWidgets.QWidget): self.system = platform.system() self.tab_id = tab_id + self.from_autoconnect = from_autoconnect # Connection type: either automatic, control port, or socket file @@ -692,7 +693,7 @@ class TorSettingsTab(QtWidgets.QWidget): # If Tor isn't connected, or if Tor settings have changed, Reinitialize # the Onion object reboot_onion = False - if not self.common.gui.local_only: + if not self.common.gui.local_only and not self.from_autoconnect: if self.common.gui.onion.is_authenticated(): self.common.log( "TorSettingsTab", "save_clicked", "Connected to Tor" -- cgit v1.2.3-54-g00ecf From 7e982f222364610165286a991451a23e93ea2695 Mon Sep 17 00:00:00 2001 From: Saptak S Date: Thu, 9 Dec 2021 03:43:19 +0530 Subject: Opens connect tab if persistent tab is there --- desktop/src/onionshare/main_window.py | 3 +++ desktop/src/onionshare/tab_widget.py | 2 ++ 2 files changed, 5 insertions(+) diff --git a/desktop/src/onionshare/main_window.py b/desktop/src/onionshare/main_window.py index 80d9b5c1..4ad5c14c 100644 --- a/desktop/src/onionshare/main_window.py +++ b/desktop/src/onionshare/main_window.py @@ -147,6 +147,9 @@ class MainWindow(QtWidgets.QMainWindow): if len(self.common.settings.get("persistent_tabs")) > 0: for mode_settings_id in self.common.settings.get("persistent_tabs"): self.tabs.load_tab(mode_settings_id) + # If not connected to tor in beginning, show autoconnect tab + if not self.common.gui.onion.connected_to_tor: + self.tabs.new_tab_clicked() else: # Start with opening the first tab self.tabs.new_tab_clicked() diff --git a/desktop/src/onionshare/tab_widget.py b/desktop/src/onionshare/tab_widget.py index 972792fd..b5df855e 100644 --- a/desktop/src/onionshare/tab_widget.py +++ b/desktop/src/onionshare/tab_widget.py @@ -220,6 +220,8 @@ class TabWidget(QtWidgets.QTabWidget): connection_tab = AutoConnectTab(self.common, self.current_tab_id, self.status_bar, parent=self) connection_tab.close_this_tab.connect(self.close_connection_tab) + connection_tab.tor_is_connected.connect(self.tor_is_connected) + connection_tab.tor_is_disconnected.connect(self.tor_is_disconnected) self.tabs[self.current_tab_id] = connection_tab self.current_tab_id += 1 index = self.addTab(connection_tab, strings._("gui_autoconnect_start")) -- cgit v1.2.3-54-g00ecf From df85ea0f60f47c606ee59b8e96ebe94cf3b599aa Mon Sep 17 00:00:00 2001 From: Saptak S Date: Thu, 9 Dec 2021 14:07:25 +0530 Subject: Fixes from_autoconnect check from MainWindow --- desktop/src/onionshare/main_window.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/desktop/src/onionshare/main_window.py b/desktop/src/onionshare/main_window.py index 4ad5c14c..824aeb6c 100644 --- a/desktop/src/onionshare/main_window.py +++ b/desktop/src/onionshare/main_window.py @@ -241,7 +241,11 @@ class MainWindow(QtWidgets.QMainWindow): Open the TorSettingsTab """ self.common.log("MainWindow", "open_tor_settings") - from_autoconnect = type(self.tabs.tabs[0]) is AutoConnectTab + from_autoconnect = False + for tab_id in self.tabs.tabs: + if type(self.tabs.tabs[tab_id]) is AutoConnectTab: + from_autoconnect = True + break self.tabs.open_tor_settings_tab(from_autoconnect) def open_settings(self): -- cgit v1.2.3-54-g00ecf From 24152e8b4d64082217e89a7b6a69b406c5435936 Mon Sep 17 00:00:00 2001 From: Saptak S Date: Thu, 9 Dec 2021 14:38:11 +0530 Subject: Reload settings in connection tab when tor settings tab closed --- desktop/src/onionshare/connection_tab.py | 7 ++++++- desktop/src/onionshare/tab_widget.py | 3 +++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/desktop/src/onionshare/connection_tab.py b/desktop/src/onionshare/connection_tab.py index 13a6b2ad..bf9fbfea 100644 --- a/desktop/src/onionshare/connection_tab.py +++ b/desktop/src/onionshare/connection_tab.py @@ -138,7 +138,7 @@ class AutoConnectTab(QtWidgets.QWidget): """ self.common.log("AutoConnectTab", "autoconnect_checking") if self.auto_connect_enabled: - self.enable_autoconnect_checkbox.setCheckState(QtCore.Qt.Checked) + self.enable_autoconnect_checkbox.setChecked(True) self.connect_clicked() def toggle_auto_connect(self): @@ -191,3 +191,8 @@ class AutoConnectTab(QtWidgets.QWidget): self.connect_button.show() self.configure_button.show() self.error_label.setText(msg) + + def reload_settings(self): + self.curr_settings.load() + self.auto_connect_enabled = self.curr_settings.get("auto_connect") + self.enable_autoconnect_checkbox.setChecked(self.auto_connect_enabled) diff --git a/desktop/src/onionshare/tab_widget.py b/desktop/src/onionshare/tab_widget.py index b5df855e..92032f85 100644 --- a/desktop/src/onionshare/tab_widget.py +++ b/desktop/src/onionshare/tab_widget.py @@ -382,6 +382,9 @@ class TabWidget(QtWidgets.QTabWidget): def close_tor_settings_tab(self): self.common.log("TabWidget", "close_tor_settings_tab") + for tab_id in self.tabs: + if type(self.tabs[tab_id]) is AutoConnectTab: + self.tabs[tab_id].reload_settings() for tab_id in self.tabs: if type(self.tabs[tab_id]) is TorSettingsTab: index = self.indexOf(self.tabs[tab_id]) -- cgit v1.2.3-54-g00ecf From 2af28def345d140d49892b1162a5bbaa58992b06 Mon Sep 17 00:00:00 2001 From: Micah Lee Date: Thu, 9 Dec 2021 21:51:07 -0800 Subject: Add country shapes --- desktop/scripts/countries-get-images.py | 74 +++++++++++++++++++++ desktop/scripts/countries-update-list.py | 46 +++++++++++++ desktop/scripts/update-country-list.py | 42 ------------ desktop/src/onionshare/connection_tab.py | 31 ++++++++- desktop/src/onionshare/resources/countries/ar.json | 2 +- desktop/src/onionshare/resources/countries/bn.json | 2 +- desktop/src/onionshare/resources/countries/de.json | 2 +- desktop/src/onionshare/resources/countries/en.json | 2 +- desktop/src/onionshare/resources/countries/es.json | 2 +- desktop/src/onionshare/resources/countries/fi.json | 2 +- desktop/src/onionshare/resources/countries/gl.json | 2 +- desktop/src/onionshare/resources/countries/is.json | 2 +- desktop/src/onionshare/resources/countries/lt.json | 2 +- .../src/onionshare/resources/countries/nb_NO.json | 2 +- desktop/src/onionshare/resources/countries/pl.json | 2 +- .../src/onionshare/resources/countries/pt_BR.json | 2 +- desktop/src/onionshare/resources/countries/ru.json | 2 +- desktop/src/onionshare/resources/countries/sv.json | 2 +- desktop/src/onionshare/resources/countries/tr.json | 2 +- desktop/src/onionshare/resources/countries/uk.json | 2 +- .../onionshare/resources/countries/zh_Hans.json | 2 +- .../resources/images/countries/ad-dark.png | Bin 0 -> 2268 bytes .../resources/images/countries/ad-light.png | Bin 0 -> 2268 bytes .../resources/images/countries/ae-dark.png | Bin 0 -> 2306 bytes .../resources/images/countries/ae-light.png | Bin 0 -> 2306 bytes .../resources/images/countries/af-dark.png | Bin 0 -> 2307 bytes .../resources/images/countries/af-light.png | Bin 0 -> 2307 bytes .../resources/images/countries/ag-dark.png | Bin 0 -> 3253 bytes .../resources/images/countries/ag-light.png | Bin 0 -> 3253 bytes .../resources/images/countries/ai-dark.png | Bin 0 -> 2081 bytes .../resources/images/countries/ai-light.png | Bin 0 -> 2081 bytes .../resources/images/countries/al-dark.png | Bin 0 -> 2280 bytes .../resources/images/countries/al-light.png | Bin 0 -> 2280 bytes .../resources/images/countries/am-dark.png | Bin 0 -> 2695 bytes .../resources/images/countries/am-light.png | Bin 0 -> 2695 bytes .../resources/images/countries/ao-dark.png | Bin 0 -> 2191 bytes .../resources/images/countries/ao-light.png | Bin 0 -> 2191 bytes .../resources/images/countries/aq-dark.png | Bin 0 -> 3120 bytes .../resources/images/countries/aq-light.png | Bin 0 -> 3120 bytes .../resources/images/countries/ar-dark.png | Bin 0 -> 2492 bytes .../resources/images/countries/ar-light.png | Bin 0 -> 2492 bytes .../resources/images/countries/as-dark.png | Bin 0 -> 2291 bytes .../resources/images/countries/as-light.png | Bin 0 -> 2291 bytes .../resources/images/countries/at-dark.png | Bin 0 -> 3598 bytes .../resources/images/countries/at-light.png | Bin 0 -> 3598 bytes .../resources/images/countries/au-dark.png | Bin 0 -> 2973 bytes .../resources/images/countries/au-light.png | Bin 0 -> 2973 bytes .../resources/images/countries/aw-dark.png | Bin 0 -> 2685 bytes .../resources/images/countries/aw-light.png | Bin 0 -> 2685 bytes .../resources/images/countries/ax-dark.png | Bin 0 -> 2985 bytes .../resources/images/countries/ax-light.png | Bin 0 -> 2985 bytes .../resources/images/countries/az-dark.png | Bin 0 -> 3352 bytes .../resources/images/countries/az-light.png | Bin 0 -> 3352 bytes .../resources/images/countries/ba-dark.png | Bin 0 -> 2863 bytes .../resources/images/countries/ba-light.png | Bin 0 -> 2863 bytes .../resources/images/countries/bb-dark.png | Bin 0 -> 2511 bytes .../resources/images/countries/bb-light.png | Bin 0 -> 2511 bytes .../resources/images/countries/bd-dark.png | Bin 0 -> 3710 bytes .../resources/images/countries/bd-light.png | Bin 0 -> 3710 bytes .../resources/images/countries/be-dark.png | Bin 0 -> 2780 bytes .../resources/images/countries/be-light.png | Bin 0 -> 2780 bytes .../resources/images/countries/bf-dark.png | Bin 0 -> 2363 bytes .../resources/images/countries/bf-light.png | Bin 0 -> 2363 bytes .../resources/images/countries/bg-dark.png | Bin 0 -> 2319 bytes .../resources/images/countries/bg-light.png | Bin 0 -> 2319 bytes .../resources/images/countries/bh-dark.png | Bin 0 -> 2617 bytes .../resources/images/countries/bh-light.png | Bin 0 -> 2617 bytes .../resources/images/countries/bi-dark.png | Bin 0 -> 2785 bytes .../resources/images/countries/bi-light.png | Bin 0 -> 2785 bytes .../resources/images/countries/bj-dark.png | Bin 0 -> 2203 bytes .../resources/images/countries/bj-light.png | Bin 0 -> 2203 bytes .../resources/images/countries/bl-dark.png | Bin 0 -> 2704 bytes .../resources/images/countries/bl-light.png | Bin 0 -> 2704 bytes .../resources/images/countries/bm-dark.png | Bin 0 -> 3540 bytes .../resources/images/countries/bm-light.png | Bin 0 -> 3540 bytes .../resources/images/countries/bn-dark.png | Bin 0 -> 2932 bytes .../resources/images/countries/bn-light.png | Bin 0 -> 2932 bytes .../resources/images/countries/bo-dark.png | Bin 0 -> 2757 bytes .../resources/images/countries/bo-light.png | Bin 0 -> 2757 bytes .../resources/images/countries/bq-dark.png | Bin 0 -> 2658 bytes .../resources/images/countries/bq-light.png | Bin 0 -> 2658 bytes .../resources/images/countries/br-dark.png | Bin 0 -> 2683 bytes .../resources/images/countries/br-light.png | Bin 0 -> 2683 bytes .../resources/images/countries/bs-dark.png | Bin 0 -> 2680 bytes .../resources/images/countries/bs-light.png | Bin 0 -> 2680 bytes .../resources/images/countries/bt-dark.png | Bin 0 -> 2075 bytes .../resources/images/countries/bt-light.png | Bin 0 -> 2075 bytes .../resources/images/countries/bv-dark.png | Bin 0 -> 2143 bytes .../resources/images/countries/bv-light.png | Bin 0 -> 2143 bytes .../resources/images/countries/bw-dark.png | Bin 0 -> 2250 bytes .../resources/images/countries/bw-light.png | Bin 0 -> 2250 bytes .../resources/images/countries/by-dark.png | Bin 0 -> 2695 bytes .../resources/images/countries/by-light.png | Bin 0 -> 2695 bytes .../resources/images/countries/bz-dark.png | Bin 0 -> 2485 bytes .../resources/images/countries/bz-light.png | Bin 0 -> 2485 bytes .../resources/images/countries/ca-dark.png | Bin 0 -> 5288 bytes .../resources/images/countries/ca-light.png | Bin 0 -> 5288 bytes .../resources/images/countries/cc-dark.png | Bin 0 -> 3437 bytes .../resources/images/countries/cc-light.png | Bin 0 -> 3437 bytes .../resources/images/countries/cd-dark.png | Bin 0 -> 2474 bytes .../resources/images/countries/cd-light.png | Bin 0 -> 2474 bytes .../resources/images/countries/cf-dark.png | Bin 0 -> 2167 bytes .../resources/images/countries/cf-light.png | Bin 0 -> 2167 bytes .../resources/images/countries/cg-dark.png | Bin 0 -> 2962 bytes .../resources/images/countries/cg-light.png | Bin 0 -> 2962 bytes .../resources/images/countries/ch-dark.png | Bin 0 -> 2806 bytes .../resources/images/countries/ch-light.png | Bin 0 -> 2806 bytes .../resources/images/countries/ci-dark.png | Bin 0 -> 2828 bytes .../resources/images/countries/ci-light.png | Bin 0 -> 2828 bytes .../resources/images/countries/ck-dark.png | Bin 0 -> 2166 bytes .../resources/images/countries/ck-light.png | Bin 0 -> 2166 bytes .../resources/images/countries/cl-dark.png | Bin 0 -> 2208 bytes .../resources/images/countries/cl-light.png | Bin 0 -> 2208 bytes .../resources/images/countries/cm-dark.png | Bin 0 -> 2632 bytes .../resources/images/countries/cm-light.png | Bin 0 -> 2632 bytes .../resources/images/countries/cn-dark.png | Bin 0 -> 3009 bytes .../resources/images/countries/cn-light.png | Bin 0 -> 3009 bytes .../resources/images/countries/co-dark.png | Bin 0 -> 2727 bytes .../resources/images/countries/co-light.png | Bin 0 -> 2727 bytes .../resources/images/countries/cr-dark.png | Bin 0 -> 3183 bytes .../resources/images/countries/cr-light.png | Bin 0 -> 3183 bytes .../resources/images/countries/cu-dark.png | Bin 0 -> 1994 bytes .../resources/images/countries/cu-light.png | Bin 0 -> 1994 bytes .../resources/images/countries/cv-dark.png | Bin 0 -> 2297 bytes .../resources/images/countries/cv-light.png | Bin 0 -> 2297 bytes .../resources/images/countries/cw-dark.png | Bin 0 -> 2017 bytes .../resources/images/countries/cw-light.png | Bin 0 -> 2017 bytes .../resources/images/countries/cx-dark.png | Bin 0 -> 2577 bytes .../resources/images/countries/cx-light.png | Bin 0 -> 2577 bytes .../resources/images/countries/cy-dark.png | Bin 0 -> 2058 bytes .../resources/images/countries/cy-light.png | Bin 0 -> 2058 bytes .../resources/images/countries/cz-dark.png | Bin 0 -> 2360 bytes .../resources/images/countries/cz-light.png | Bin 0 -> 2360 bytes .../resources/images/countries/de-dark.png | Bin 0 -> 3419 bytes .../resources/images/countries/de-light.png | Bin 0 -> 3419 bytes .../resources/images/countries/dj-dark.png | Bin 0 -> 2940 bytes .../resources/images/countries/dj-light.png | Bin 0 -> 2940 bytes .../resources/images/countries/dk-dark.png | Bin 0 -> 4913 bytes .../resources/images/countries/dk-light.png | Bin 0 -> 4913 bytes .../resources/images/countries/dm-dark.png | Bin 0 -> 2265 bytes .../resources/images/countries/dm-light.png | Bin 0 -> 2265 bytes .../resources/images/countries/do-dark.png | Bin 0 -> 2542 bytes .../resources/images/countries/do-light.png | Bin 0 -> 2542 bytes .../resources/images/countries/dz-dark.png | Bin 0 -> 2316 bytes .../resources/images/countries/dz-light.png | Bin 0 -> 2316 bytes .../resources/images/countries/ec-dark.png | Bin 0 -> 3017 bytes .../resources/images/countries/ec-light.png | Bin 0 -> 3017 bytes .../resources/images/countries/ee-dark.png | Bin 0 -> 3069 bytes .../resources/images/countries/ee-light.png | Bin 0 -> 3069 bytes .../resources/images/countries/eg-dark.png | Bin 0 -> 2592 bytes .../resources/images/countries/eg-light.png | Bin 0 -> 2592 bytes .../resources/images/countries/eh-dark.png | Bin 0 -> 1840 bytes .../resources/images/countries/eh-light.png | Bin 0 -> 1840 bytes .../resources/images/countries/er-dark.png | Bin 0 -> 2957 bytes .../resources/images/countries/er-light.png | Bin 0 -> 2957 bytes .../resources/images/countries/es-dark.png | Bin 0 -> 2612 bytes .../resources/images/countries/es-light.png | Bin 0 -> 2612 bytes .../resources/images/countries/et-dark.png | Bin 0 -> 2396 bytes .../resources/images/countries/et-light.png | Bin 0 -> 2396 bytes .../resources/images/countries/fi-dark.png | Bin 0 -> 2747 bytes .../resources/images/countries/fi-light.png | Bin 0 -> 2747 bytes .../resources/images/countries/fj-dark.png | Bin 0 -> 3076 bytes .../resources/images/countries/fj-light.png | Bin 0 -> 3076 bytes .../resources/images/countries/fk-dark.png | Bin 0 -> 5712 bytes .../resources/images/countries/fk-light.png | Bin 0 -> 5712 bytes .../resources/images/countries/fo-dark.png | Bin 0 -> 3927 bytes .../resources/images/countries/fo-light.png | Bin 0 -> 3927 bytes .../resources/images/countries/fr-dark.png | Bin 0 -> 3194 bytes .../resources/images/countries/fr-light.png | Bin 0 -> 3194 bytes .../resources/images/countries/ga-dark.png | Bin 0 -> 2879 bytes .../resources/images/countries/ga-light.png | Bin 0 -> 2879 bytes .../resources/images/countries/gb-dark.png | Bin 0 -> 4178 bytes .../resources/images/countries/gb-light.png | Bin 0 -> 4178 bytes .../resources/images/countries/gd-dark.png | Bin 0 -> 3012 bytes .../resources/images/countries/gd-light.png | Bin 0 -> 3012 bytes .../resources/images/countries/ge-dark.png | Bin 0 -> 2110 bytes .../resources/images/countries/ge-light.png | Bin 0 -> 2110 bytes .../resources/images/countries/gf-dark.png | Bin 0 -> 2505 bytes .../resources/images/countries/gf-light.png | Bin 0 -> 2505 bytes .../resources/images/countries/gg-dark.png | Bin 0 -> 3145 bytes .../resources/images/countries/gg-light.png | Bin 0 -> 3145 bytes .../resources/images/countries/gh-dark.png | Bin 0 -> 2456 bytes .../resources/images/countries/gh-light.png | Bin 0 -> 2456 bytes .../resources/images/countries/gi-dark.png | Bin 0 -> 2883 bytes .../resources/images/countries/gi-light.png | Bin 0 -> 2883 bytes .../resources/images/countries/gl-dark.png | Bin 0 -> 3105 bytes .../resources/images/countries/gl-light.png | Bin 0 -> 3105 bytes .../resources/images/countries/gm-dark.png | Bin 0 -> 1681 bytes .../resources/images/countries/gm-light.png | Bin 0 -> 1681 bytes .../resources/images/countries/gn-dark.png | Bin 0 -> 2862 bytes .../resources/images/countries/gn-light.png | Bin 0 -> 2862 bytes .../resources/images/countries/gp-dark.png | Bin 0 -> 2950 bytes .../resources/images/countries/gp-light.png | Bin 0 -> 2950 bytes .../resources/images/countries/gq-dark.png | Bin 0 -> 1799 bytes .../resources/images/countries/gq-light.png | Bin 0 -> 1799 bytes .../resources/images/countries/gr-dark.png | Bin 0 -> 5540 bytes .../resources/images/countries/gr-light.png | Bin 0 -> 5540 bytes .../resources/images/countries/gs-dark.png | Bin 0 -> 3355 bytes .../resources/images/countries/gs-light.png | Bin 0 -> 3355 bytes .../resources/images/countries/gt-dark.png | Bin 0 -> 2276 bytes .../resources/images/countries/gt-light.png | Bin 0 -> 2276 bytes .../resources/images/countries/gu-dark.png | Bin 0 -> 2734 bytes .../resources/images/countries/gu-light.png | Bin 0 -> 2734 bytes .../resources/images/countries/gw-dark.png | Bin 0 -> 3457 bytes .../resources/images/countries/gw-light.png | Bin 0 -> 3457 bytes .../resources/images/countries/gy-dark.png | Bin 0 -> 2618 bytes .../resources/images/countries/gy-light.png | Bin 0 -> 2618 bytes .../resources/images/countries/hk-dark.png | Bin 0 -> 5635 bytes .../resources/images/countries/hk-light.png | Bin 0 -> 5635 bytes .../resources/images/countries/hm-dark.png | Bin 0 -> 2180 bytes .../resources/images/countries/hm-light.png | Bin 0 -> 2180 bytes .../resources/images/countries/hn-dark.png | Bin 0 -> 2340 bytes .../resources/images/countries/hn-light.png | Bin 0 -> 2340 bytes .../resources/images/countries/hr-dark.png | Bin 0 -> 4228 bytes .../resources/images/countries/hr-light.png | Bin 0 -> 4228 bytes .../resources/images/countries/ht-dark.png | Bin 0 -> 3333 bytes .../resources/images/countries/ht-light.png | Bin 0 -> 3333 bytes .../resources/images/countries/hu-dark.png | Bin 0 -> 2299 bytes .../resources/images/countries/hu-light.png | Bin 0 -> 2299 bytes .../resources/images/countries/id-dark.png | Bin 0 -> 3218 bytes .../resources/images/countries/id-light.png | Bin 0 -> 3218 bytes .../resources/images/countries/ie-dark.png | Bin 0 -> 3812 bytes .../resources/images/countries/ie-light.png | Bin 0 -> 3812 bytes .../resources/images/countries/il-dark.png | Bin 0 -> 2272 bytes .../resources/images/countries/il-light.png | Bin 0 -> 2272 bytes .../resources/images/countries/im-dark.png | Bin 0 -> 2601 bytes .../resources/images/countries/im-light.png | Bin 0 -> 2601 bytes .../resources/images/countries/in-dark.png | Bin 0 -> 3182 bytes .../resources/images/countries/in-light.png | Bin 0 -> 3182 bytes .../resources/images/countries/io-dark.png | Bin 0 -> 3312 bytes .../resources/images/countries/io-light.png | Bin 0 -> 3312 bytes .../resources/images/countries/iq-dark.png | Bin 0 -> 2282 bytes .../resources/images/countries/iq-light.png | Bin 0 -> 2282 bytes .../resources/images/countries/ir-dark.png | Bin 0 -> 2634 bytes .../resources/images/countries/ir-light.png | Bin 0 -> 2634 bytes .../resources/images/countries/is-dark.png | Bin 0 -> 4079 bytes .../resources/images/countries/is-light.png | Bin 0 -> 4079 bytes .../resources/images/countries/it-dark.png | Bin 0 -> 3435 bytes .../resources/images/countries/it-light.png | Bin 0 -> 3435 bytes .../resources/images/countries/jm-dark.png | Bin 0 -> 1802 bytes .../resources/images/countries/jm-light.png | Bin 0 -> 1802 bytes .../resources/images/countries/jo-dark.png | Bin 0 -> 2658 bytes .../resources/images/countries/jo-light.png | Bin 0 -> 2658 bytes .../resources/images/countries/jp-dark.png | Bin 0 -> 3613 bytes .../resources/images/countries/jp-light.png | Bin 0 -> 3613 bytes .../resources/images/countries/ke-dark.png | Bin 0 -> 2374 bytes .../resources/images/countries/ke-light.png | Bin 0 -> 2374 bytes .../resources/images/countries/kg-dark.png | Bin 0 -> 2024 bytes .../resources/images/countries/kg-light.png | Bin 0 -> 2024 bytes .../resources/images/countries/kh-dark.png | Bin 0 -> 2735 bytes .../resources/images/countries/kh-light.png | Bin 0 -> 2735 bytes .../resources/images/countries/ki-dark.png | Bin 0 -> 3144 bytes .../resources/images/countries/ki-light.png | Bin 0 -> 3144 bytes .../resources/images/countries/km-dark.png | Bin 0 -> 1966 bytes .../resources/images/countries/km-light.png | Bin 0 -> 1966 bytes .../resources/images/countries/kn-dark.png | Bin 0 -> 2508 bytes .../resources/images/countries/kn-light.png | Bin 0 -> 2508 bytes .../resources/images/countries/kp-dark.png | Bin 0 -> 3235 bytes .../resources/images/countries/kp-light.png | Bin 0 -> 3235 bytes .../resources/images/countries/kr-dark.png | Bin 0 -> 3366 bytes .../resources/images/countries/kr-light.png | Bin 0 -> 3366 bytes .../resources/images/countries/kw-dark.png | Bin 0 -> 3096 bytes .../resources/images/countries/kw-light.png | Bin 0 -> 3096 bytes .../resources/images/countries/ky-dark.png | Bin 0 -> 2207 bytes .../resources/images/countries/ky-light.png | Bin 0 -> 2207 bytes .../resources/images/countries/kz-dark.png | Bin 0 -> 2430 bytes .../resources/images/countries/kz-light.png | Bin 0 -> 2430 bytes .../resources/images/countries/la-dark.png | Bin 0 -> 2938 bytes .../resources/images/countries/la-light.png | Bin 0 -> 2938 bytes .../resources/images/countries/lb-dark.png | Bin 0 -> 2553 bytes .../resources/images/countries/lb-light.png | Bin 0 -> 2553 bytes .../resources/images/countries/lc-dark.png | Bin 0 -> 2600 bytes .../resources/images/countries/lc-light.png | Bin 0 -> 2600 bytes .../resources/images/countries/li-dark.png | Bin 0 -> 2642 bytes .../resources/images/countries/li-light.png | Bin 0 -> 2642 bytes .../resources/images/countries/lk-dark.png | Bin 0 -> 2761 bytes .../resources/images/countries/lk-light.png | Bin 0 -> 2761 bytes .../resources/images/countries/lr-dark.png | Bin 0 -> 2755 bytes .../resources/images/countries/lr-light.png | Bin 0 -> 2755 bytes .../resources/images/countries/ls-dark.png | Bin 0 -> 2381 bytes .../resources/images/countries/ls-light.png | Bin 0 -> 2381 bytes .../resources/images/countries/lt-dark.png | Bin 0 -> 2434 bytes .../resources/images/countries/lt-light.png | Bin 0 -> 2434 bytes .../resources/images/countries/lu-dark.png | Bin 0 -> 2607 bytes .../resources/images/countries/lu-light.png | Bin 0 -> 2607 bytes .../resources/images/countries/lv-dark.png | Bin 0 -> 2337 bytes .../resources/images/countries/lv-light.png | Bin 0 -> 2337 bytes .../resources/images/countries/ly-dark.png | Bin 0 -> 2261 bytes .../resources/images/countries/ly-light.png | Bin 0 -> 2261 bytes .../resources/images/countries/ma-dark.png | Bin 0 -> 2199 bytes .../resources/images/countries/ma-light.png | Bin 0 -> 2199 bytes .../resources/images/countries/mc-dark.png | Bin 0 -> 2930 bytes .../resources/images/countries/mc-light.png | Bin 0 -> 2930 bytes .../resources/images/countries/md-dark.png | Bin 0 -> 2719 bytes .../resources/images/countries/md-light.png | Bin 0 -> 2719 bytes .../resources/images/countries/me-dark.png | Bin 0 -> 3031 bytes .../resources/images/countries/me-light.png | Bin 0 -> 3031 bytes .../resources/images/countries/mf-dark.png | Bin 0 -> 2999 bytes .../resources/images/countries/mf-light.png | Bin 0 -> 2999 bytes .../resources/images/countries/mg-dark.png | Bin 0 -> 2493 bytes .../resources/images/countries/mg-light.png | Bin 0 -> 2493 bytes .../resources/images/countries/mk-dark.png | Bin 0 -> 2464 bytes .../resources/images/countries/mk-light.png | Bin 0 -> 2464 bytes .../resources/images/countries/ml-dark.png | Bin 0 -> 2483 bytes .../resources/images/countries/ml-light.png | Bin 0 -> 2483 bytes .../resources/images/countries/mm-dark.png | Bin 0 -> 2896 bytes .../resources/images/countries/mm-light.png | Bin 0 -> 2896 bytes .../resources/images/countries/mn-dark.png | Bin 0 -> 2043 bytes .../resources/images/countries/mn-light.png | Bin 0 -> 2043 bytes .../resources/images/countries/mo-dark.png | Bin 0 -> 3477 bytes .../resources/images/countries/mo-light.png | Bin 0 -> 3477 bytes .../resources/images/countries/mq-dark.png | Bin 0 -> 3467 bytes .../resources/images/countries/mq-light.png | Bin 0 -> 3467 bytes .../resources/images/countries/mr-dark.png | Bin 0 -> 2255 bytes .../resources/images/countries/mr-light.png | Bin 0 -> 2255 bytes .../resources/images/countries/ms-dark.png | Bin 0 -> 2305 bytes .../resources/images/countries/ms-light.png | Bin 0 -> 2305 bytes .../resources/images/countries/mt-dark.png | Bin 0 -> 3182 bytes .../resources/images/countries/mt-light.png | Bin 0 -> 3182 bytes .../resources/images/countries/mu-dark.png | Bin 0 -> 2777 bytes .../resources/images/countries/mu-light.png | Bin 0 -> 2777 bytes .../resources/images/countries/mv-dark.png | Bin 0 -> 2158 bytes .../resources/images/countries/mv-light.png | Bin 0 -> 2158 bytes .../resources/images/countries/mw-dark.png | Bin 0 -> 2672 bytes .../resources/images/countries/mw-light.png | Bin 0 -> 2672 bytes .../resources/images/countries/mx-dark.png | Bin 0 -> 2856 bytes .../resources/images/countries/mx-light.png | Bin 0 -> 2856 bytes .../resources/images/countries/my-dark.png | Bin 0 -> 2810 bytes .../resources/images/countries/my-light.png | Bin 0 -> 2810 bytes .../resources/images/countries/mz-dark.png | Bin 0 -> 2686 bytes .../resources/images/countries/mz-light.png | Bin 0 -> 2686 bytes .../resources/images/countries/na-dark.png | Bin 0 -> 2124 bytes .../resources/images/countries/na-light.png | Bin 0 -> 2124 bytes .../resources/images/countries/nc-dark.png | Bin 0 -> 2797 bytes .../resources/images/countries/nc-light.png | Bin 0 -> 2797 bytes .../resources/images/countries/ne-dark.png | Bin 0 -> 2146 bytes .../resources/images/countries/ne-light.png | Bin 0 -> 2146 bytes .../resources/images/countries/nf-dark.png | Bin 0 -> 2790 bytes .../resources/images/countries/nf-light.png | Bin 0 -> 2790 bytes .../resources/images/countries/ng-dark.png | Bin 0 -> 2421 bytes .../resources/images/countries/ng-light.png | Bin 0 -> 2421 bytes .../resources/images/countries/ni-dark.png | Bin 0 -> 2713 bytes .../resources/images/countries/ni-light.png | Bin 0 -> 2713 bytes .../resources/images/countries/nl-dark.png | Bin 0 -> 4318 bytes .../resources/images/countries/nl-light.png | Bin 0 -> 4318 bytes .../resources/images/countries/no-dark.png | Bin 0 -> 3558 bytes .../resources/images/countries/no-light.png | Bin 0 -> 3558 bytes .../resources/images/countries/np-dark.png | Bin 0 -> 2031 bytes .../resources/images/countries/np-light.png | Bin 0 -> 2031 bytes .../resources/images/countries/nr-dark.png | Bin 0 -> 2265 bytes .../resources/images/countries/nr-light.png | Bin 0 -> 2265 bytes .../resources/images/countries/nu-dark.png | Bin 0 -> 2321 bytes .../resources/images/countries/nu-light.png | Bin 0 -> 2321 bytes .../resources/images/countries/nz-dark.png | Bin 0 -> 3088 bytes .../resources/images/countries/nz-light.png | Bin 0 -> 3088 bytes .../resources/images/countries/om-dark.png | Bin 0 -> 2602 bytes .../resources/images/countries/om-light.png | Bin 0 -> 2602 bytes .../resources/images/countries/pa-dark.png | Bin 0 -> 2752 bytes .../resources/images/countries/pa-light.png | Bin 0 -> 2752 bytes .../resources/images/countries/pe-dark.png | Bin 0 -> 2716 bytes .../resources/images/countries/pe-light.png | Bin 0 -> 2716 bytes .../resources/images/countries/pf-dark.png | Bin 0 -> 2873 bytes .../resources/images/countries/pf-light.png | Bin 0 -> 2873 bytes .../resources/images/countries/pg-dark.png | Bin 0 -> 2673 bytes .../resources/images/countries/pg-light.png | Bin 0 -> 2673 bytes .../resources/images/countries/ph-dark.png | Bin 0 -> 4193 bytes .../resources/images/countries/ph-light.png | Bin 0 -> 4193 bytes .../resources/images/countries/pk-dark.png | Bin 0 -> 2862 bytes .../resources/images/countries/pk-light.png | Bin 0 -> 2862 bytes .../resources/images/countries/pl-dark.png | Bin 0 -> 2449 bytes .../resources/images/countries/pl-light.png | Bin 0 -> 2449 bytes .../resources/images/countries/pm-dark.png | Bin 0 -> 3047 bytes .../resources/images/countries/pm-light.png | Bin 0 -> 3047 bytes .../resources/images/countries/pn-dark.png | Bin 0 -> 1997 bytes .../resources/images/countries/pn-light.png | Bin 0 -> 1997 bytes .../resources/images/countries/pr-dark.png | Bin 0 -> 1777 bytes .../resources/images/countries/pr-light.png | Bin 0 -> 1777 bytes .../resources/images/countries/pt-dark.png | Bin 0 -> 2776 bytes .../resources/images/countries/pt-light.png | Bin 0 -> 2776 bytes .../resources/images/countries/pw-dark.png | Bin 0 -> 2566 bytes .../resources/images/countries/pw-light.png | Bin 0 -> 2566 bytes .../resources/images/countries/py-dark.png | Bin 0 -> 2571 bytes .../resources/images/countries/py-light.png | Bin 0 -> 2571 bytes .../resources/images/countries/qa-dark.png | Bin 0 -> 2720 bytes .../resources/images/countries/qa-light.png | Bin 0 -> 2720 bytes .../resources/images/countries/re-dark.png | Bin 0 -> 2323 bytes .../resources/images/countries/re-light.png | Bin 0 -> 2323 bytes .../resources/images/countries/ro-dark.png | Bin 0 -> 2291 bytes .../resources/images/countries/ro-light.png | Bin 0 -> 2291 bytes .../resources/images/countries/rs-dark.png | Bin 0 -> 2808 bytes .../resources/images/countries/rs-light.png | Bin 0 -> 2808 bytes .../resources/images/countries/ru-dark.png | Bin 0 -> 3412 bytes .../resources/images/countries/ru-light.png | Bin 0 -> 3412 bytes .../resources/images/countries/rw-dark.png | Bin 0 -> 2460 bytes .../resources/images/countries/rw-light.png | Bin 0 -> 2460 bytes .../resources/images/countries/sa-dark.png | Bin 0 -> 2460 bytes .../resources/images/countries/sa-light.png | Bin 0 -> 2460 bytes .../resources/images/countries/sb-dark.png | Bin 0 -> 2920 bytes .../resources/images/countries/sb-light.png | Bin 0 -> 2920 bytes .../resources/images/countries/sc-dark.png | Bin 0 -> 2245 bytes .../resources/images/countries/sc-light.png | Bin 0 -> 2245 bytes .../resources/images/countries/sd-dark.png | Bin 0 -> 2327 bytes .../resources/images/countries/sd-light.png | Bin 0 -> 2327 bytes .../resources/images/countries/se-dark.png | Bin 0 -> 2782 bytes .../resources/images/countries/se-light.png | Bin 0 -> 2782 bytes .../resources/images/countries/sg-dark.png | Bin 0 -> 3363 bytes .../resources/images/countries/sg-light.png | Bin 0 -> 3363 bytes .../resources/images/countries/sh-dark.png | Bin 0 -> 2436 bytes .../resources/images/countries/sh-light.png | Bin 0 -> 2436 bytes .../resources/images/countries/si-dark.png | Bin 0 -> 2558 bytes .../resources/images/countries/si-light.png | Bin 0 -> 2558 bytes .../resources/images/countries/sj-dark.png | Bin 0 -> 1847 bytes .../resources/images/countries/sj-light.png | Bin 0 -> 1847 bytes .../resources/images/countries/sk-dark.png | Bin 0 -> 2122 bytes .../resources/images/countries/sk-light.png | Bin 0 -> 2122 bytes .../resources/images/countries/sl-dark.png | Bin 0 -> 3089 bytes .../resources/images/countries/sl-light.png | Bin 0 -> 3089 bytes .../resources/images/countries/sm-dark.png | Bin 0 -> 2537 bytes .../resources/images/countries/sm-light.png | Bin 0 -> 2537 bytes .../resources/images/countries/sn-dark.png | Bin 0 -> 2946 bytes .../resources/images/countries/sn-light.png | Bin 0 -> 2946 bytes .../resources/images/countries/so-dark.png | Bin 0 -> 2424 bytes .../resources/images/countries/so-light.png | Bin 0 -> 2424 bytes .../resources/images/countries/sr-dark.png | Bin 0 -> 2739 bytes .../resources/images/countries/sr-light.png | Bin 0 -> 2739 bytes .../resources/images/countries/ss-dark.png | Bin 0 -> 2294 bytes .../resources/images/countries/ss-light.png | Bin 0 -> 2294 bytes .../resources/images/countries/st-dark.png | Bin 0 -> 2740 bytes .../resources/images/countries/st-light.png | Bin 0 -> 2740 bytes .../resources/images/countries/sv-dark.png | Bin 0 -> 2136 bytes .../resources/images/countries/sv-light.png | Bin 0 -> 2136 bytes .../resources/images/countries/sx-dark.png | Bin 0 -> 2984 bytes .../resources/images/countries/sx-light.png | Bin 0 -> 2984 bytes .../resources/images/countries/sy-dark.png | Bin 0 -> 2458 bytes .../resources/images/countries/sy-light.png | Bin 0 -> 2458 bytes .../resources/images/countries/sz-dark.png | Bin 0 -> 2233 bytes .../resources/images/countries/sz-light.png | Bin 0 -> 2233 bytes .../resources/images/countries/tc-dark.png | Bin 0 -> 3911 bytes .../resources/images/countries/tc-light.png | Bin 0 -> 3911 bytes .../resources/images/countries/td-dark.png | Bin 0 -> 2162 bytes .../resources/images/countries/td-light.png | Bin 0 -> 2162 bytes .../resources/images/countries/tf-dark.png | Bin 0 -> 6236 bytes .../resources/images/countries/tf-light.png | Bin 0 -> 6236 bytes .../resources/images/countries/tg-dark.png | Bin 0 -> 2146 bytes .../resources/images/countries/tg-light.png | Bin 0 -> 2146 bytes .../resources/images/countries/th-dark.png | Bin 0 -> 2976 bytes .../resources/images/countries/th-light.png | Bin 0 -> 2976 bytes .../resources/images/countries/tj-dark.png | Bin 0 -> 2801 bytes .../resources/images/countries/tj-light.png | Bin 0 -> 2801 bytes .../resources/images/countries/tk-dark.png | Bin 0 -> 897 bytes .../resources/images/countries/tk-light.png | Bin 0 -> 897 bytes .../resources/images/countries/tl-dark.png | Bin 0 -> 1794 bytes .../resources/images/countries/tl-light.png | Bin 0 -> 1794 bytes .../resources/images/countries/tm-dark.png | Bin 0 -> 2330 bytes .../resources/images/countries/tm-light.png | Bin 0 -> 2330 bytes .../resources/images/countries/tn-dark.png | Bin 0 -> 2530 bytes .../resources/images/countries/tn-light.png | Bin 0 -> 2530 bytes .../resources/images/countries/to-dark.png | Bin 0 -> 2288 bytes .../resources/images/countries/to-light.png | Bin 0 -> 2288 bytes .../resources/images/countries/tr-dark.png | Bin 0 -> 2226 bytes .../resources/images/countries/tr-light.png | Bin 0 -> 2226 bytes .../resources/images/countries/tt-dark.png | Bin 0 -> 2353 bytes .../resources/images/countries/tt-light.png | Bin 0 -> 2353 bytes .../resources/images/countries/tw-dark.png | Bin 0 -> 2482 bytes .../resources/images/countries/tw-light.png | Bin 0 -> 2482 bytes .../resources/images/countries/tz-dark.png | Bin 0 -> 3093 bytes .../resources/images/countries/tz-light.png | Bin 0 -> 3093 bytes .../resources/images/countries/ua-dark.png | Bin 0 -> 2788 bytes .../resources/images/countries/ua-light.png | Bin 0 -> 2788 bytes .../resources/images/countries/ug-dark.png | Bin 0 -> 3055 bytes .../resources/images/countries/ug-light.png | Bin 0 -> 3055 bytes .../resources/images/countries/us-dark.png | Bin 0 -> 2796 bytes .../resources/images/countries/us-light.png | Bin 0 -> 2796 bytes .../resources/images/countries/uy-dark.png | Bin 0 -> 2648 bytes .../resources/images/countries/uy-light.png | Bin 0 -> 2648 bytes .../resources/images/countries/uz-dark.png | Bin 0 -> 2552 bytes .../resources/images/countries/uz-light.png | Bin 0 -> 2552 bytes .../resources/images/countries/va-dark.png | Bin 0 -> 2058 bytes .../resources/images/countries/va-light.png | Bin 0 -> 2058 bytes .../resources/images/countries/vc-dark.png | Bin 0 -> 1893 bytes .../resources/images/countries/vc-light.png | Bin 0 -> 1893 bytes .../resources/images/countries/ve-dark.png | Bin 0 -> 2986 bytes .../resources/images/countries/ve-light.png | Bin 0 -> 2986 bytes .../resources/images/countries/vg-dark.png | Bin 0 -> 3121 bytes .../resources/images/countries/vg-light.png | Bin 0 -> 3121 bytes .../resources/images/countries/vi-dark.png | Bin 0 -> 2622 bytes .../resources/images/countries/vi-light.png | Bin 0 -> 2622 bytes .../resources/images/countries/vn-dark.png | Bin 0 -> 2985 bytes .../resources/images/countries/vn-light.png | Bin 0 -> 2985 bytes .../resources/images/countries/vu-dark.png | Bin 0 -> 2353 bytes .../resources/images/countries/vu-light.png | Bin 0 -> 2353 bytes .../resources/images/countries/wf-dark.png | Bin 0 -> 2451 bytes .../resources/images/countries/wf-light.png | Bin 0 -> 2451 bytes .../resources/images/countries/ws-dark.png | Bin 0 -> 1799 bytes .../resources/images/countries/ws-light.png | Bin 0 -> 1799 bytes .../resources/images/countries/ye-dark.png | Bin 0 -> 2294 bytes .../resources/images/countries/ye-light.png | Bin 0 -> 2294 bytes .../resources/images/countries/yt-dark.png | Bin 0 -> 3392 bytes .../resources/images/countries/yt-light.png | Bin 0 -> 3392 bytes .../resources/images/countries/za-dark.png | Bin 0 -> 2643 bytes .../resources/images/countries/za-light.png | Bin 0 -> 2643 bytes .../resources/images/countries/zm-dark.png | Bin 0 -> 2582 bytes .../resources/images/countries/zm-light.png | Bin 0 -> 2582 bytes .../resources/images/countries/zw-dark.png | Bin 0 -> 2396 bytes .../resources/images/countries/zw-light.png | Bin 0 -> 2396 bytes 505 files changed, 167 insertions(+), 60 deletions(-) create mode 100755 desktop/scripts/countries-get-images.py create mode 100755 desktop/scripts/countries-update-list.py delete mode 100755 desktop/scripts/update-country-list.py create mode 100644 desktop/src/onionshare/resources/images/countries/ad-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/ad-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/ae-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/ae-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/af-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/af-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/ag-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/ag-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/ai-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/ai-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/al-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/al-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/am-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/am-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/ao-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/ao-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/aq-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/aq-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/ar-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/ar-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/as-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/as-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/at-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/at-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/au-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/au-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/aw-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/aw-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/ax-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/ax-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/az-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/az-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/ba-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/ba-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/bb-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/bb-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/bd-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/bd-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/be-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/be-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/bf-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/bf-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/bg-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/bg-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/bh-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/bh-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/bi-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/bi-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/bj-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/bj-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/bl-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/bl-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/bm-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/bm-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/bn-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/bn-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/bo-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/bo-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/bq-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/bq-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/br-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/br-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/bs-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/bs-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/bt-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/bt-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/bv-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/bv-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/bw-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/bw-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/by-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/by-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/bz-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/bz-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/ca-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/ca-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/cc-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/cc-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/cd-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/cd-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/cf-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/cf-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/cg-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/cg-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/ch-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/ch-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/ci-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/ci-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/ck-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/ck-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/cl-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/cl-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/cm-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/cm-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/cn-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/cn-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/co-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/co-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/cr-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/cr-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/cu-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/cu-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/cv-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/cv-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/cw-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/cw-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/cx-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/cx-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/cy-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/cy-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/cz-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/cz-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/de-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/de-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/dj-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/dj-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/dk-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/dk-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/dm-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/dm-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/do-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/do-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/dz-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/dz-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/ec-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/ec-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/ee-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/ee-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/eg-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/eg-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/eh-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/eh-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/er-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/er-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/es-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/es-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/et-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/et-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/fi-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/fi-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/fj-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/fj-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/fk-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/fk-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/fo-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/fo-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/fr-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/fr-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/ga-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/ga-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/gb-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/gb-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/gd-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/gd-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/ge-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/ge-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/gf-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/gf-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/gg-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/gg-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/gh-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/gh-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/gi-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/gi-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/gl-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/gl-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/gm-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/gm-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/gn-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/gn-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/gp-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/gp-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/gq-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/gq-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/gr-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/gr-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/gs-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/gs-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/gt-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/gt-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/gu-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/gu-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/gw-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/gw-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/gy-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/gy-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/hk-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/hk-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/hm-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/hm-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/hn-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/hn-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/hr-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/hr-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/ht-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/ht-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/hu-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/hu-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/id-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/id-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/ie-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/ie-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/il-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/il-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/im-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/im-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/in-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/in-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/io-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/io-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/iq-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/iq-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/ir-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/ir-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/is-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/is-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/it-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/it-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/jm-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/jm-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/jo-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/jo-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/jp-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/jp-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/ke-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/ke-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/kg-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/kg-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/kh-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/kh-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/ki-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/ki-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/km-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/km-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/kn-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/kn-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/kp-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/kp-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/kr-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/kr-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/kw-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/kw-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/ky-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/ky-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/kz-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/kz-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/la-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/la-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/lb-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/lb-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/lc-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/lc-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/li-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/li-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/lk-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/lk-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/lr-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/lr-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/ls-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/ls-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/lt-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/lt-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/lu-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/lu-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/lv-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/lv-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/ly-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/ly-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/ma-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/ma-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/mc-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/mc-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/md-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/md-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/me-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/me-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/mf-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/mf-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/mg-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/mg-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/mk-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/mk-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/ml-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/ml-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/mm-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/mm-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/mn-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/mn-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/mo-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/mo-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/mq-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/mq-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/mr-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/mr-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/ms-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/ms-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/mt-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/mt-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/mu-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/mu-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/mv-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/mv-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/mw-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/mw-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/mx-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/mx-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/my-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/my-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/mz-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/mz-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/na-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/na-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/nc-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/nc-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/ne-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/ne-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/nf-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/nf-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/ng-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/ng-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/ni-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/ni-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/nl-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/nl-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/no-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/no-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/np-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/np-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/nr-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/nr-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/nu-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/nu-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/nz-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/nz-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/om-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/om-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/pa-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/pa-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/pe-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/pe-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/pf-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/pf-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/pg-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/pg-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/ph-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/ph-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/pk-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/pk-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/pl-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/pl-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/pm-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/pm-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/pn-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/pn-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/pr-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/pr-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/pt-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/pt-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/pw-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/pw-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/py-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/py-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/qa-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/qa-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/re-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/re-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/ro-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/ro-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/rs-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/rs-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/ru-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/ru-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/rw-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/rw-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/sa-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/sa-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/sb-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/sb-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/sc-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/sc-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/sd-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/sd-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/se-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/se-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/sg-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/sg-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/sh-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/sh-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/si-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/si-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/sj-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/sj-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/sk-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/sk-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/sl-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/sl-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/sm-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/sm-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/sn-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/sn-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/so-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/so-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/sr-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/sr-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/ss-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/ss-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/st-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/st-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/sv-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/sv-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/sx-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/sx-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/sy-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/sy-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/sz-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/sz-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/tc-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/tc-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/td-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/td-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/tf-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/tf-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/tg-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/tg-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/th-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/th-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/tj-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/tj-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/tk-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/tk-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/tl-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/tl-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/tm-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/tm-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/tn-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/tn-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/to-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/to-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/tr-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/tr-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/tt-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/tt-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/tw-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/tw-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/tz-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/tz-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/ua-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/ua-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/ug-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/ug-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/us-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/us-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/uy-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/uy-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/uz-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/uz-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/va-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/va-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/vc-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/vc-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/ve-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/ve-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/vg-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/vg-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/vi-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/vi-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/vn-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/vn-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/vu-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/vu-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/wf-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/wf-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/ws-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/ws-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/ye-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/ye-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/yt-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/yt-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/za-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/za-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/zm-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/zm-light.png create mode 100644 desktop/src/onionshare/resources/images/countries/zw-dark.png create mode 100644 desktop/src/onionshare/resources/images/countries/zw-light.png diff --git a/desktop/scripts/countries-get-images.py b/desktop/scripts/countries-get-images.py new file mode 100755 index 00000000..80330e29 --- /dev/null +++ b/desktop/scripts/countries-get-images.py @@ -0,0 +1,74 @@ +#!/usr/bin/env python3 +import subprocess +import tempfile +import json +import os + + +def main(): + tmp_dir = tempfile.TemporaryDirectory() + mapsdir = os.path.join(tmp_dir.name, "mapsicon") + subprocess.run(["git", "clone", "https://github.com/djaiss/mapsicon.git", mapsdir]) + + with open( + os.path.join("src", "onionshare", "resources", "countries", "en.json") + ) as f: + countries = list(json.loads(f.read())) + + os.makedirs( + os.path.join( + "src", + "onionshare", + "resources", + "images", + "countries", + ), + exist_ok=True, + ) + + for country in countries: + country = country.lower() + if os.path.isdir(os.path.join(mapsdir, "all", f"{country}")): + src_filename = os.path.join(mapsdir, "all", f"{country}", "256.png") + dest_light_filename = os.path.join( + "src", + "onionshare", + "resources", + "images", + "countries", + f"{country}-light.png", + ) + dest_dark_filename = os.path.join( + "src", + "onionshare", + "resources", + "images", + "countries", + f"{country}-dark.png", + ) + subprocess.run( + [ + "convert", + src_filename, + "-fill", + "#5a2063", + "+opaque", + "none", + dest_light_filename, + ] + ) + subprocess.run( + [ + "convert", + src_filename, + "-fill", + "#d950ee", + "+opaque", + "none", + dest_dark_filename, + ] + ) + + +if __name__ == "__main__": + main() diff --git a/desktop/scripts/countries-update-list.py b/desktop/scripts/countries-update-list.py new file mode 100755 index 00000000..3451058f --- /dev/null +++ b/desktop/scripts/countries-update-list.py @@ -0,0 +1,46 @@ +#!/usr/bin/env python3 +import os +import tempfile +import subprocess +import json + +import onionshare_cli + + +def main(): + # Clone the country-list repo + tmp_dir = tempfile.TemporaryDirectory() + subprocess.run( + ["git", "clone", "https://github.com/umpirsky/country-list.git"], + cwd=tmp_dir.name, + ) + repo_dir = os.path.join(tmp_dir.name, "country-list") + + # Get the list of enabled languages + common = onionshare_cli.common.Common() + settings = onionshare_cli.settings.Settings(common) + available_locales = list(settings.available_locales) + + # Make a dictionary that makes a language's ISO 3166-1 to its name in all enabled languages + os.makedirs( + os.path.join("src", "onionshare", "resources", "countries"), exist_ok=True + ) + for locale in available_locales: + with open(os.path.join(repo_dir, "data", locale, "country.json")) as f: + countries = json.loads(f.read()) + + # Remove countries we don't have images for + for key in ["JE", "MH", "FM", "MP", "PS", "TV", "UM"]: + del countries[key] + + with open( + os.path.join( + "src", "onionshare", "resources", "countries", f"{locale}.json" + ), + "w", + ) as f: + f.write(json.dumps(countries)) + + +if __name__ == "__main__": + main() diff --git a/desktop/scripts/update-country-list.py b/desktop/scripts/update-country-list.py deleted file mode 100755 index 8fe829cb..00000000 --- a/desktop/scripts/update-country-list.py +++ /dev/null @@ -1,42 +0,0 @@ -#!/usr/bin/env python3 -import os -import tempfile -import subprocess -import json - -import onionshare_cli - - -def main(): - # Clone the country-list repo - tmp_dir = tempfile.TemporaryDirectory() - subprocess.run( - ["git", "clone", "https://github.com/umpirsky/country-list.git"], - cwd=tmp_dir.name, - ) - repo_dir = os.path.join(tmp_dir.name, "country-list") - - # Get the list of enabled languages - common = onionshare_cli.common.Common() - settings = onionshare_cli.settings.Settings(common) - available_locales = list(settings.available_locales) - - # Make a dictionary that makes a language's ISO 3166-1 to its name in all enabled languages - os.makedirs( - os.path.join("src", "onionshare", "resources", "countries"), exist_ok=True - ) - for locale in available_locales: - with open(os.path.join(repo_dir, "data", locale, "country.json")) as f: - countries = json.loads(f.read()) - - with open( - os.path.join( - "src", "onionshare", "resources", "countries", f"{locale}.json" - ), - "w", - ) as f: - f.write(json.dumps(countries)) - - -if __name__ == "__main__": - main() diff --git a/desktop/src/onionshare/connection_tab.py b/desktop/src/onionshare/connection_tab.py index 7c97c54a..43ca15f7 100644 --- a/desktop/src/onionshare/connection_tab.py +++ b/desktop/src/onionshare/connection_tab.py @@ -337,9 +337,22 @@ class AutoConnectUseBridgeWidget(QtWidgets.QWidget): for country_code in countries: self.country_combobox.addItem(countries[country_code], country_code) + self.country_combobox.currentIndexChanged.connect(self._country_changed) + + # Country shape + self.country_image_label = QtWidgets.QLabel() + self.country_image_label.setFixedSize(256, 256) + country_image_layout = QtWidgets.QHBoxLayout() + country_image_layout.addStretch() + country_image_layout.addWidget(self.country_image_label) + country_image_layout.addStretch() + self.country_image = QtWidgets.QWidget() + self.country_image.setLayout(country_image_layout) + # Task label self.task_label = QtWidgets.QLabel() - self.task_label.setStyleSheet(common.gui.css["enable_autoconnect"]) + self.task_label.setStyleSheet(common.gui.css["autoconnect_task_label"]) + self.task_label.setAlignment(QtCore.Qt.AlignCenter) self.task_label.hide() # Buttons @@ -376,10 +389,12 @@ class AutoConnectUseBridgeWidget(QtWidgets.QWidget): layout.addWidget(description_label) layout.addLayout(detect_layout) layout.addWidget(self.country_combobox) + layout.addWidget(self.country_image) layout.addWidget(self.task_label) layout.addWidget(cta_widget) self.setLayout(layout) + self._country_changed() self.detect_automatic_radio.setChecked(True) def hide_buttons(self): @@ -398,6 +413,7 @@ class AutoConnectUseBridgeWidget(QtWidgets.QWidget): self.country_combobox.setEnabled(False) self.country_combobox.show() + self.country_image.show() # If we're automatically detecting it, randomly switch up the country # dropdown until we detect the location @@ -413,6 +429,17 @@ class AutoConnectUseBridgeWidget(QtWidgets.QWidget): self.task_label.hide() self.autodetecting_timer.stop() + def _country_changed(self, index=None): + country_code = str(self.country_combobox.currentData()).lower() + path = GuiCommon.get_resource_path( + os.path.join( + "images", + "countries", + f"{country_code}-{self.common.gui.color_mode}.png", + ) + ) + self.country_image_label.setPixmap(QtGui.QPixmap.fromImage(QtGui.QImage(path))) + def _autodetecting_timer_callback(self): new_index = random.randrange(0, self.country_combobox.count()) self.country_combobox.setCurrentIndex(new_index) @@ -420,10 +447,12 @@ class AutoConnectUseBridgeWidget(QtWidgets.QWidget): def _detect_automatic_toggled(self): self.country_combobox.setEnabled(False) self.country_combobox.hide() + self.country_image.hide() def _detect_manual_toggled(self): self.country_combobox.setEnabled(True) self.country_combobox.show() + self.country_image.show() def _connect_clicked(self): self.connect_clicked.emit() diff --git a/desktop/src/onionshare/resources/countries/ar.json b/desktop/src/onionshare/resources/countries/ar.json index 23b95a22..d620cfc3 100644 --- a/desktop/src/onionshare/resources/countries/ar.json +++ b/desktop/src/onionshare/resources/countries/ar.json @@ -1 +1 @@ -{"IS": "\u0622\u064a\u0633\u0644\u0646\u062f\u0627", "ET": "\u0625\u062b\u064a\u0648\u0628\u064a\u0627", "AZ": "\u0623\u0630\u0631\u0628\u064a\u062c\u0627\u0646", "AM": "\u0623\u0631\u0645\u064a\u0646\u064a\u0627", "AW": "\u0623\u0631\u0648\u0628\u0627", "ER": "\u0625\u0631\u064a\u062a\u0631\u064a\u0627", "ES": "\u0625\u0633\u0628\u0627\u0646\u064a\u0627", "AU": "\u0623\u0633\u062a\u0631\u0627\u0644\u064a\u0627", "EE": "\u0625\u0633\u062a\u0648\u0646\u064a\u0627", "IL": "\u0625\u0633\u0631\u0627\u0626\u064a\u0644", "SZ": "\u0625\u0633\u0648\u0627\u062a\u064a\u0646\u064a", "AF": "\u0623\u0641\u063a\u0627\u0646\u0633\u062a\u0627\u0646", "PS": "\u0627\u0644\u0623\u0631\u0627\u0636\u064a \u0627\u0644\u0641\u0644\u0633\u0637\u064a\u0646\u064a\u0629", "AR": "\u0627\u0644\u0623\u0631\u062c\u0646\u062a\u064a\u0646", "JO": "\u0627\u0644\u0623\u0631\u062f\u0646", "TF": "\u0627\u0644\u0623\u0642\u0627\u0644\u064a\u0645 \u0627\u0644\u062c\u0646\u0648\u0628\u064a\u0629 \u0627\u0644\u0641\u0631\u0646\u0633\u064a\u0629", "IO": "\u0627\u0644\u0625\u0642\u0644\u064a\u0645 \u0627\u0644\u0628\u0631\u064a\u0637\u0627\u0646\u064a \u0641\u064a \u0627\u0644\u0645\u062d\u064a\u0637 \u0627\u0644\u0647\u0646\u062f\u064a", "EC": "\u0627\u0644\u0625\u0643\u0648\u0627\u062f\u0648\u0631", "AE": "\u0627\u0644\u0625\u0645\u0627\u0631\u0627\u062a \u0627\u0644\u0639\u0631\u0628\u064a\u0629 \u0627\u0644\u0645\u062a\u062d\u062f\u0629", "AL": "\u0623\u0644\u0628\u0627\u0646\u064a\u0627", "BH": "\u0627\u0644\u0628\u062d\u0631\u064a\u0646", "BR": "\u0627\u0644\u0628\u0631\u0627\u0632\u064a\u0644", "PT": "\u0627\u0644\u0628\u0631\u062a\u063a\u0627\u0644", "BA": "\u0627\u0644\u0628\u0648\u0633\u0646\u0629 \u0648\u0627\u0644\u0647\u0631\u0633\u0643", "CZ": "\u0627\u0644\u062a\u0634\u064a\u0643", "ME": "\u0627\u0644\u062c\u0628\u0644 \u0627\u0644\u0623\u0633\u0648\u062f", "DZ": "\u0627\u0644\u062c\u0632\u0627\u0626\u0631", "DK": "\u0627\u0644\u062f\u0627\u0646\u0645\u0631\u0643", "CV": "\u0627\u0644\u0631\u0623\u0633 \u0627\u0644\u0623\u062e\u0636\u0631", "SV": "\u0627\u0644\u0633\u0644\u0641\u0627\u062f\u0648\u0631", "SN": "\u0627\u0644\u0633\u0646\u063a\u0627\u0644", "SD": "\u0627\u0644\u0633\u0648\u062f\u0627\u0646", "SE": "\u0627\u0644\u0633\u0648\u064a\u062f", "EH": "\u0627\u0644\u0635\u062d\u0631\u0627\u0621 \u0627\u0644\u063a\u0631\u0628\u064a\u0629", "SO": "\u0627\u0644\u0635\u0648\u0645\u0627\u0644", "CN": "\u0627\u0644\u0635\u064a\u0646", "IQ": "\u0627\u0644\u0639\u0631\u0627\u0642", "GA": "\u0627\u0644\u063a\u0627\u0628\u0648\u0646", "VA": "\u0627\u0644\u0641\u0627\u062a\u064a\u0643\u0627\u0646", "PH": "\u0627\u0644\u0641\u0644\u0628\u064a\u0646", "CM": "\u0627\u0644\u0643\u0627\u0645\u064a\u0631\u0648\u0646", "CG": "\u0627\u0644\u0643\u0648\u0646\u063a\u0648 - \u0628\u0631\u0627\u0632\u0627\u0641\u064a\u0644", "CD": "\u0627\u0644\u0643\u0648\u0646\u063a\u0648 - \u0643\u064a\u0646\u0634\u0627\u0633\u0627", "KW": "\u0627\u0644\u0643\u0648\u064a\u062a", "DE": "\u0623\u0644\u0645\u0627\u0646\u064a\u0627", "MA": "\u0627\u0644\u0645\u063a\u0631\u0628", "MX": "\u0627\u0644\u0645\u0643\u0633\u064a\u0643", "SA": "\u0627\u0644\u0645\u0645\u0644\u0643\u0629 \u0627\u0644\u0639\u0631\u0628\u064a\u0629 \u0627\u0644\u0633\u0639\u0648\u062f\u064a\u0629", "GB": "\u0627\u0644\u0645\u0645\u0644\u0643\u0629 \u0627\u0644\u0645\u062a\u062d\u062f\u0629", "NO": "\u0627\u0644\u0646\u0631\u0648\u064a\u062c", "AT": "\u0627\u0644\u0646\u0645\u0633\u0627", "NE": "\u0627\u0644\u0646\u064a\u062c\u0631", "IN": "\u0627\u0644\u0647\u0646\u062f", "US": "\u0627\u0644\u0648\u0644\u0627\u064a\u0627\u062a \u0627\u0644\u0645\u062a\u062d\u062f\u0629", "JP": "\u0627\u0644\u064a\u0627\u0628\u0627\u0646", "YE": "\u0627\u0644\u064a\u0645\u0646", "GR": "\u0627\u0644\u064a\u0648\u0646\u0627\u0646", "AQ": "\u0623\u0646\u062a\u0627\u0631\u0643\u062a\u064a\u0643\u0627", "AG": "\u0623\u0646\u062a\u064a\u063a\u0648\u0627 \u0648\u0628\u0631\u0628\u0648\u062f\u0627", "AD": "\u0623\u0646\u062f\u0648\u0631\u0627", "ID": "\u0625\u0646\u062f\u0648\u0646\u064a\u0633\u064a\u0627", "AO": "\u0623\u0646\u063a\u0648\u0644\u0627", "AI": "\u0623\u0646\u063a\u0648\u064a\u0644\u0627", "UY": "\u0623\u0648\u0631\u063a\u0648\u0627\u064a", "UZ": "\u0623\u0648\u0632\u0628\u0643\u0633\u062a\u0627\u0646", "UG": "\u0623\u0648\u063a\u0646\u062f\u0627", "UA": "\u0623\u0648\u0643\u0631\u0627\u0646\u064a\u0627", "IR": "\u0625\u064a\u0631\u0627\u0646", "IE": "\u0623\u064a\u0631\u0644\u0646\u062f\u0627", "IT": "\u0625\u064a\u0637\u0627\u0644\u064a\u0627", "PG": "\u0628\u0627\u0628\u0648\u0627 \u063a\u064a\u0646\u064a\u0627 \u0627\u0644\u062c\u062f\u064a\u062f\u0629", "PY": "\u0628\u0627\u0631\u0627\u063a\u0648\u0627\u064a", "PK": "\u0628\u0627\u0643\u0633\u062a\u0627\u0646", "PW": "\u0628\u0627\u0644\u0627\u0648", "BB": "\u0628\u0631\u0628\u0627\u062f\u0648\u0633", "BM": "\u0628\u0631\u0645\u0648\u062f\u0627", "BN": "\u0628\u0631\u0648\u0646\u0627\u064a", "BE": "\u0628\u0644\u062c\u064a\u0643\u0627", "BG": "\u0628\u0644\u063a\u0627\u0631\u064a\u0627", "BZ": "\u0628\u0644\u064a\u0632", "BD": "\u0628\u0646\u063a\u0644\u0627\u062f\u064a\u0634", "PA": "\u0628\u0646\u0645\u0627", "BJ": "\u0628\u0646\u064a\u0646", "BT": "\u0628\u0648\u062a\u0627\u0646", "BW": "\u0628\u0648\u062a\u0633\u0648\u0627\u0646\u0627", "PR": "\u0628\u0648\u0631\u062a\u0648\u0631\u064a\u0643\u0648", "BF": "\u0628\u0648\u0631\u0643\u064a\u0646\u0627 \u0641\u0627\u0633\u0648", "BI": "\u0628\u0648\u0631\u0648\u0646\u062f\u064a", "PL": "\u0628\u0648\u0644\u0646\u062f\u0627", "BO": "\u0628\u0648\u0644\u064a\u0641\u064a\u0627", "PF": "\u0628\u0648\u0644\u064a\u0646\u064a\u0632\u064a\u0627 \u0627\u0644\u0641\u0631\u0646\u0633\u064a\u0629", "PE": "\u0628\u064a\u0631\u0648", "BY": "\u0628\u064a\u0644\u0627\u0631\u0648\u0633", "TH": "\u062a\u0627\u064a\u0644\u0627\u0646\u062f", "TW": "\u062a\u0627\u064a\u0648\u0627\u0646", "TM": "\u062a\u0631\u0643\u0645\u0627\u0646\u0633\u062a\u0627\u0646", "TR": "\u062a\u0631\u0643\u064a\u0627", "TT": "\u062a\u0631\u064a\u0646\u064a\u062f\u0627\u062f \u0648\u062a\u0648\u0628\u0627\u063a\u0648", "TD": "\u062a\u0634\u0627\u062f", "CL": "\u062a\u0634\u064a\u0644\u064a", "TZ": "\u062a\u0646\u0632\u0627\u0646\u064a\u0627", "TG": "\u062a\u0648\u063a\u0648", "TV": "\u062a\u0648\u0641\u0627\u0644\u0648", "TK": "\u062a\u0648\u0643\u064a\u0644\u0648", "TN": "\u062a\u0648\u0646\u0633", "TO": "\u062a\u0648\u0646\u063a\u0627", "TL": "\u062a\u064a\u0645\u0648\u0631 - \u0644\u064a\u0634\u062a\u064a", "JM": "\u062c\u0627\u0645\u0627\u064a\u0643\u0627", "GI": "\u062c\u0628\u0644 \u0637\u0627\u0631\u0642", "AX": "\u062c\u0632\u0631 \u0622\u0644\u0627\u0646\u062f", "BS": "\u062c\u0632\u0631 \u0627\u0644\u0628\u0647\u0627\u0645\u0627", "KM": "\u062c\u0632\u0631 \u0627\u0644\u0642\u0645\u0631", "MQ": "\u062c\u0632\u0631 \u0627\u0644\u0645\u0627\u0631\u062a\u064a\u0646\u064a\u0643", "MV": "\u062c\u0632\u0631 \u0627\u0644\u0645\u0627\u0644\u062f\u064a\u0641", "UM": "\u062c\u0632\u0631 \u0627\u0644\u0648\u0644\u0627\u064a\u0627\u062a \u0627\u0644\u0645\u062a\u062d\u062f\u0629 \u0627\u0644\u0646\u0627\u0626\u064a\u0629", "PN": "\u062c\u0632\u0631 \u0628\u064a\u062a\u0643\u064a\u0631\u0646", "TC": "\u062c\u0632\u0631 \u062a\u0648\u0631\u0643\u0633 \u0648\u0643\u0627\u064a\u0643\u0648\u0633", "SB": "\u062c\u0632\u0631 \u0633\u0644\u064a\u0645\u0627\u0646", "FO": "\u062c\u0632\u0631 \u0641\u0627\u0631\u0648", "FK": "\u062c\u0632\u0631 \u0641\u0648\u0643\u0644\u0627\u0646\u062f", "VG": "\u062c\u0632\u0631 \u0641\u064a\u0631\u062c\u0646 \u0627\u0644\u0628\u0631\u064a\u0637\u0627\u0646\u064a\u0629", "VI": "\u062c\u0632\u0631 \u0641\u064a\u0631\u062c\u0646 \u0627\u0644\u062a\u0627\u0628\u0639\u0629 \u0644\u0644\u0648\u0644\u0627\u064a\u0627\u062a \u0627\u0644\u0645\u062a\u062d\u062f\u0629", "KY": "\u062c\u0632\u0631 \u0643\u0627\u064a\u0645\u0627\u0646", "CK": "\u062c\u0632\u0631 \u0643\u0648\u0643", "CC": "\u062c\u0632\u0631 \u0643\u0648\u0643\u0648\u0633 (\u0643\u064a\u0644\u064a\u0646\u063a)", "MH": "\u062c\u0632\u0631 \u0645\u0627\u0631\u0634\u0627\u0644", "MP": "\u062c\u0632\u0631 \u0645\u0627\u0631\u064a\u0627\u0646\u0627 \u0627\u0644\u0634\u0645\u0627\u0644\u064a\u0629", "WF": "\u062c\u0632\u0631 \u0648\u0627\u0644\u0633 \u0648\u0641\u0648\u062a\u0648\u0646\u0627", "BV": "\u062c\u0632\u064a\u0631\u0629 \u0628\u0648\u0641\u064a\u0647", "CX": "\u062c\u0632\u064a\u0631\u0629 \u0643\u0631\u064a\u0633\u0645\u0627\u0633", "IM": "\u062c\u0632\u064a\u0631\u0629 \u0645\u0627\u0646", "NF": "\u062c\u0632\u064a\u0631\u0629 \u0646\u0648\u0631\u0641\u0648\u0644\u0643", "HM": "\u062c\u0632\u064a\u0631\u0629 \u0647\u064a\u0631\u062f \u0648\u062c\u0632\u0631 \u0645\u0627\u0643\u062f\u0648\u0646\u0627\u0644\u062f", "CF": "\u062c\u0645\u0647\u0648\u0631\u064a\u0629 \u0623\u0641\u0631\u064a\u0642\u064a\u0627 \u0627\u0644\u0648\u0633\u0637\u0649", "DO": "\u062c\u0645\u0647\u0648\u0631\u064a\u0629 \u0627\u0644\u062f\u0648\u0645\u064a\u0646\u064a\u0643\u0627\u0646", "ZA": "\u062c\u0646\u0648\u0628 \u0623\u0641\u0631\u064a\u0642\u064a\u0627", "SS": "\u062c\u0646\u0648\u0628 \u0627\u0644\u0633\u0648\u062f\u0627\u0646", "GE": "\u062c\u0648\u0631\u062c\u064a\u0627", "GS": "\u062c\u0648\u0631\u062c\u064a\u0627 \u0627\u0644\u062c\u0646\u0648\u0628\u064a\u0629 \u0648\u062c\u0632\u0631 \u0633\u0627\u0646\u062f\u0648\u064a\u062a\u0634 \u0627\u0644\u062c\u0646\u0648\u0628\u064a\u0629", "DJ": "\u062c\u064a\u0628\u0648\u062a\u064a", "JE": "\u062c\u064a\u0631\u0633\u064a", "DM": "\u062f\u0648\u0645\u064a\u0646\u064a\u0643\u0627", "RW": "\u0631\u0648\u0627\u0646\u062f\u0627", "RU": "\u0631\u0648\u0633\u064a\u0627", "RO": "\u0631\u0648\u0645\u0627\u0646\u064a\u0627", "RE": "\u0631\u0648\u064a\u0646\u064a\u0648\u0646", "ZM": "\u0632\u0627\u0645\u0628\u064a\u0627", "ZW": "\u0632\u064a\u0645\u0628\u0627\u0628\u0648\u064a", "CI": "\u0633\u0627\u062d\u0644 \u0627\u0644\u0639\u0627\u062c", "WS": "\u0633\u0627\u0645\u0648\u0627", "AS": "\u0633\u0627\u0645\u0648\u0627 \u0627\u0644\u0623\u0645\u0631\u064a\u0643\u064a\u0629", "BL": "\u0633\u0627\u0646 \u0628\u0627\u0631\u062a\u0644\u064a\u0645\u064a", "PM": "\u0633\u0627\u0646 \u0628\u064a\u064a\u0631 \u0648\u0645\u0643\u0648\u064a\u0644\u0648\u0646", "MF": "\u0633\u0627\u0646 \u0645\u0627\u0631\u062a\u0646", "SM": "\u0633\u0627\u0646 \u0645\u0627\u0631\u064a\u0646\u0648", "VC": "\u0633\u0627\u0646\u062a \u0641\u0646\u0633\u0646\u062a \u0648\u062c\u0632\u0631 \u063a\u0631\u064a\u0646\u0627\u062f\u064a\u0646", "KN": "\u0633\u0627\u0646\u062a \u0643\u064a\u062a\u0633 \u0648\u0646\u064a\u0641\u064a\u0633", "LC": "\u0633\u0627\u0646\u062a \u0644\u0648\u0633\u064a\u0627", "SX": "\u0633\u0627\u0646\u062a \u0645\u0627\u0631\u062a\u0646", "SH": "\u0633\u0627\u0646\u062a \u0647\u064a\u0644\u064a\u0646\u0627", "ST": "\u0633\u0627\u0648 \u062a\u0648\u0645\u064a \u0648\u0628\u0631\u064a\u0646\u0633\u064a\u0628\u064a", "LK": "\u0633\u0631\u064a\u0644\u0627\u0646\u0643\u0627", "SJ": "\u0633\u0641\u0627\u0644\u0628\u0627\u0631\u062f \u0648\u062c\u0627\u0646 \u0645\u0627\u064a\u0646", "SK": "\u0633\u0644\u0648\u0641\u0627\u0643\u064a\u0627", "SI": "\u0633\u0644\u0648\u0641\u064a\u0646\u064a\u0627", "SG": "\u0633\u0646\u063a\u0627\u0641\u0648\u0631\u0629", "SY": "\u0633\u0648\u0631\u064a\u0627", "SR": "\u0633\u0648\u0631\u064a\u0646\u0627\u0645", "CH": "\u0633\u0648\u064a\u0633\u0631\u0627", "SL": "\u0633\u064a\u0631\u0627\u0644\u064a\u0648\u0646", "SC": "\u0633\u064a\u0634\u0644", "RS": "\u0635\u0631\u0628\u064a\u0627", "TJ": "\u0637\u0627\u062c\u064a\u0643\u0633\u062a\u0627\u0646", "OM": "\u0639\u064f\u0645\u0627\u0646", "GM": "\u063a\u0627\u0645\u0628\u064a\u0627", "GH": "\u063a\u0627\u0646\u0627", "GD": "\u063a\u0631\u064a\u0646\u0627\u062f\u0627", "GL": "\u063a\u0631\u064a\u0646\u0644\u0627\u0646\u062f", "GT": "\u063a\u0648\u0627\u062a\u064a\u0645\u0627\u0644\u0627", "GP": "\u063a\u0648\u0627\u062f\u0644\u0648\u0628", "GU": "\u063a\u0648\u0627\u0645", "GF": "\u063a\u0648\u064a\u0627\u0646\u0627 \u0627\u0644\u0641\u0631\u0646\u0633\u064a\u0629", "GY": "\u063a\u064a\u0627\u0646\u0627", "GG": "\u063a\u064a\u0631\u0646\u0632\u064a", "GN": "\u063a\u064a\u0646\u064a\u0627", "GQ": "\u063a\u064a\u0646\u064a\u0627 \u0627\u0644\u0627\u0633\u062a\u0648\u0627\u0626\u064a\u0629", "GW": "\u063a\u064a\u0646\u064a\u0627 \u0628\u064a\u0633\u0627\u0648", "VU": "\u0641\u0627\u0646\u0648\u0627\u062a\u0648", "FR": "\u0641\u0631\u0646\u0633\u0627", "VE": "\u0641\u0646\u0632\u0648\u064a\u0644\u0627", "FI": "\u0641\u0646\u0644\u0646\u062f\u0627", "VN": "\u0641\u064a\u062a\u0646\u0627\u0645", "FJ": "\u0641\u064a\u062c\u064a", "CY": "\u0642\u0628\u0631\u0635", "QA": "\u0642\u0637\u0631", "KG": "\u0642\u064a\u0631\u063a\u064a\u0632\u0633\u062a\u0627\u0646", "KZ": "\u0643\u0627\u0632\u0627\u062e\u0633\u062a\u0627\u0646", "NC": "\u0643\u0627\u0644\u064a\u062f\u0648\u0646\u064a\u0627 \u0627\u0644\u062c\u062f\u064a\u062f\u0629", "HR": "\u0643\u0631\u0648\u0627\u062a\u064a\u0627", "KH": "\u0643\u0645\u0628\u0648\u062f\u064a\u0627", "CA": "\u0643\u0646\u062f\u0627", "CU": "\u0643\u0648\u0628\u0627", "CW": "\u0643\u0648\u0631\u0627\u0633\u0627\u0648", "KR": "\u0643\u0648\u0631\u064a\u0627 \u0627\u0644\u062c\u0646\u0648\u0628\u064a\u0629", "KP": "\u0643\u0648\u0631\u064a\u0627 \u0627\u0644\u0634\u0645\u0627\u0644\u064a\u0629", "CR": "\u0643\u0648\u0633\u062a\u0627\u0631\u064a\u0643\u0627", "CO": "\u0643\u0648\u0644\u0648\u0645\u0628\u064a\u0627", "KI": "\u0643\u064a\u0631\u064a\u0628\u0627\u062a\u064a", "KE": "\u0643\u064a\u0646\u064a\u0627", "LV": "\u0644\u0627\u062a\u0641\u064a\u0627", "LA": "\u0644\u0627\u0648\u0633", "LB": "\u0644\u0628\u0646\u0627\u0646", "LU": "\u0644\u0648\u0643\u0633\u0645\u0628\u0648\u0631\u063a", "LY": "\u0644\u064a\u0628\u064a\u0627", "LR": "\u0644\u064a\u0628\u064a\u0631\u064a\u0627", "LT": "\u0644\u064a\u062a\u0648\u0627\u0646\u064a\u0627", "LI": "\u0644\u064a\u062e\u062a\u0646\u0634\u062a\u0627\u064a\u0646", "LS": "\u0644\u064a\u0633\u0648\u062a\u0648", "MT": "\u0645\u0627\u0644\u0637\u0627", "ML": "\u0645\u0627\u0644\u064a", "MY": "\u0645\u0627\u0644\u064a\u0632\u064a\u0627", "YT": "\u0645\u0627\u064a\u0648\u062a", "MG": "\u0645\u062f\u063a\u0634\u0642\u0631", "EG": "\u0645\u0635\u0631", "MK": "\u0645\u0642\u062f\u0648\u0646\u064a\u0627 \u0627\u0644\u0634\u0645\u0627\u0644\u064a\u0629", "MW": "\u0645\u0644\u0627\u0648\u064a", "MO": "\u0645\u0646\u0637\u0642\u0629 \u0645\u0627\u0643\u0627\u0648 \u0627\u0644\u0625\u062f\u0627\u0631\u064a\u0629 \u0627\u0644\u062e\u0627\u0635\u0629", "MN": "\u0645\u0646\u063a\u0648\u0644\u064a\u0627", "MR": "\u0645\u0648\u0631\u064a\u062a\u0627\u0646\u064a\u0627", "MU": "\u0645\u0648\u0631\u064a\u0634\u064a\u0648\u0633", "MZ": "\u0645\u0648\u0632\u0645\u0628\u064a\u0642", "MD": "\u0645\u0648\u0644\u062f\u0648\u0641\u0627", "MC": "\u0645\u0648\u0646\u0627\u0643\u0648", "MS": "\u0645\u0648\u0646\u062a\u0633\u0631\u0627\u062a", "MM": "\u0645\u064a\u0627\u0646\u0645\u0627\u0631 (\u0628\u0648\u0631\u0645\u0627)", "FM": "\u0645\u064a\u0643\u0631\u0648\u0646\u064a\u0632\u064a\u0627", "NA": "\u0646\u0627\u0645\u064a\u0628\u064a\u0627", "NR": "\u0646\u0627\u0648\u0631\u0648", "NP": "\u0646\u064a\u0628\u0627\u0644", "NG": "\u0646\u064a\u062c\u064a\u0631\u064a\u0627", "NI": "\u0646\u064a\u0643\u0627\u0631\u0627\u063a\u0648\u0627", "NZ": "\u0646\u064a\u0648\u0632\u064a\u0644\u0646\u062f\u0627", "NU": "\u0646\u064a\u0648\u064a", "HT": "\u0647\u0627\u064a\u062a\u064a", "HN": "\u0647\u0646\u062f\u0648\u0631\u0627\u0633", "HU": "\u0647\u0646\u063a\u0627\u0631\u064a\u0627", "NL": "\u0647\u0648\u0644\u0646\u062f\u0627", "BQ": "\u0647\u0648\u0644\u0646\u062f\u0627 \u0627\u0644\u0643\u0627\u0631\u064a\u0628\u064a\u0629", "HK": "\u0647\u0648\u0646\u063a \u0643\u0648\u0646\u063a \u0627\u0644\u0635\u064a\u0646\u064a\u0629 (\u0645\u0646\u0637\u0642\u0629 \u0625\u062f\u0627\u0631\u064a\u0629 \u062e\u0627\u0635\u0629)"} \ No newline at end of file +{"IS": "\u0622\u064a\u0633\u0644\u0646\u062f\u0627", "ET": "\u0625\u062b\u064a\u0648\u0628\u064a\u0627", "AZ": "\u0623\u0630\u0631\u0628\u064a\u062c\u0627\u0646", "AM": "\u0623\u0631\u0645\u064a\u0646\u064a\u0627", "AW": "\u0623\u0631\u0648\u0628\u0627", "ER": "\u0625\u0631\u064a\u062a\u0631\u064a\u0627", "ES": "\u0625\u0633\u0628\u0627\u0646\u064a\u0627", "AU": "\u0623\u0633\u062a\u0631\u0627\u0644\u064a\u0627", "EE": "\u0625\u0633\u062a\u0648\u0646\u064a\u0627", "IL": "\u0625\u0633\u0631\u0627\u0626\u064a\u0644", "SZ": "\u0625\u0633\u0648\u0627\u062a\u064a\u0646\u064a", "AF": "\u0623\u0641\u063a\u0627\u0646\u0633\u062a\u0627\u0646", "AR": "\u0627\u0644\u0623\u0631\u062c\u0646\u062a\u064a\u0646", "JO": "\u0627\u0644\u0623\u0631\u062f\u0646", "TF": "\u0627\u0644\u0623\u0642\u0627\u0644\u064a\u0645 \u0627\u0644\u062c\u0646\u0648\u0628\u064a\u0629 \u0627\u0644\u0641\u0631\u0646\u0633\u064a\u0629", "IO": "\u0627\u0644\u0625\u0642\u0644\u064a\u0645 \u0627\u0644\u0628\u0631\u064a\u0637\u0627\u0646\u064a \u0641\u064a \u0627\u0644\u0645\u062d\u064a\u0637 \u0627\u0644\u0647\u0646\u062f\u064a", "EC": "\u0627\u0644\u0625\u0643\u0648\u0627\u062f\u0648\u0631", "AE": "\u0627\u0644\u0625\u0645\u0627\u0631\u0627\u062a \u0627\u0644\u0639\u0631\u0628\u064a\u0629 \u0627\u0644\u0645\u062a\u062d\u062f\u0629", "AL": "\u0623\u0644\u0628\u0627\u0646\u064a\u0627", "BH": "\u0627\u0644\u0628\u062d\u0631\u064a\u0646", "BR": "\u0627\u0644\u0628\u0631\u0627\u0632\u064a\u0644", "PT": "\u0627\u0644\u0628\u0631\u062a\u063a\u0627\u0644", "BA": "\u0627\u0644\u0628\u0648\u0633\u0646\u0629 \u0648\u0627\u0644\u0647\u0631\u0633\u0643", "CZ": "\u0627\u0644\u062a\u0634\u064a\u0643", "ME": "\u0627\u0644\u062c\u0628\u0644 \u0627\u0644\u0623\u0633\u0648\u062f", "DZ": "\u0627\u0644\u062c\u0632\u0627\u0626\u0631", "DK": "\u0627\u0644\u062f\u0627\u0646\u0645\u0631\u0643", "CV": "\u0627\u0644\u0631\u0623\u0633 \u0627\u0644\u0623\u062e\u0636\u0631", "SV": "\u0627\u0644\u0633\u0644\u0641\u0627\u062f\u0648\u0631", "SN": "\u0627\u0644\u0633\u0646\u063a\u0627\u0644", "SD": "\u0627\u0644\u0633\u0648\u062f\u0627\u0646", "SE": "\u0627\u0644\u0633\u0648\u064a\u062f", "EH": "\u0627\u0644\u0635\u062d\u0631\u0627\u0621 \u0627\u0644\u063a\u0631\u0628\u064a\u0629", "SO": "\u0627\u0644\u0635\u0648\u0645\u0627\u0644", "CN": "\u0627\u0644\u0635\u064a\u0646", "IQ": "\u0627\u0644\u0639\u0631\u0627\u0642", "GA": "\u0627\u0644\u063a\u0627\u0628\u0648\u0646", "VA": "\u0627\u0644\u0641\u0627\u062a\u064a\u0643\u0627\u0646", "PH": "\u0627\u0644\u0641\u0644\u0628\u064a\u0646", "CM": "\u0627\u0644\u0643\u0627\u0645\u064a\u0631\u0648\u0646", "CG": "\u0627\u0644\u0643\u0648\u0646\u063a\u0648 - \u0628\u0631\u0627\u0632\u0627\u0641\u064a\u0644", "CD": "\u0627\u0644\u0643\u0648\u0646\u063a\u0648 - \u0643\u064a\u0646\u0634\u0627\u0633\u0627", "KW": "\u0627\u0644\u0643\u0648\u064a\u062a", "DE": "\u0623\u0644\u0645\u0627\u0646\u064a\u0627", "MA": "\u0627\u0644\u0645\u063a\u0631\u0628", "MX": "\u0627\u0644\u0645\u0643\u0633\u064a\u0643", "SA": "\u0627\u0644\u0645\u0645\u0644\u0643\u0629 \u0627\u0644\u0639\u0631\u0628\u064a\u0629 \u0627\u0644\u0633\u0639\u0648\u062f\u064a\u0629", "GB": "\u0627\u0644\u0645\u0645\u0644\u0643\u0629 \u0627\u0644\u0645\u062a\u062d\u062f\u0629", "NO": "\u0627\u0644\u0646\u0631\u0648\u064a\u062c", "AT": "\u0627\u0644\u0646\u0645\u0633\u0627", "NE": "\u0627\u0644\u0646\u064a\u062c\u0631", "IN": "\u0627\u0644\u0647\u0646\u062f", "US": "\u0627\u0644\u0648\u0644\u0627\u064a\u0627\u062a \u0627\u0644\u0645\u062a\u062d\u062f\u0629", "JP": "\u0627\u0644\u064a\u0627\u0628\u0627\u0646", "YE": "\u0627\u0644\u064a\u0645\u0646", "GR": "\u0627\u0644\u064a\u0648\u0646\u0627\u0646", "AQ": "\u0623\u0646\u062a\u0627\u0631\u0643\u062a\u064a\u0643\u0627", "AG": "\u0623\u0646\u062a\u064a\u063a\u0648\u0627 \u0648\u0628\u0631\u0628\u0648\u062f\u0627", "AD": "\u0623\u0646\u062f\u0648\u0631\u0627", "ID": "\u0625\u0646\u062f\u0648\u0646\u064a\u0633\u064a\u0627", "AO": "\u0623\u0646\u063a\u0648\u0644\u0627", "AI": "\u0623\u0646\u063a\u0648\u064a\u0644\u0627", "UY": "\u0623\u0648\u0631\u063a\u0648\u0627\u064a", "UZ": "\u0623\u0648\u0632\u0628\u0643\u0633\u062a\u0627\u0646", "UG": "\u0623\u0648\u063a\u0646\u062f\u0627", "UA": "\u0623\u0648\u0643\u0631\u0627\u0646\u064a\u0627", "IR": "\u0625\u064a\u0631\u0627\u0646", "IE": "\u0623\u064a\u0631\u0644\u0646\u062f\u0627", "IT": "\u0625\u064a\u0637\u0627\u0644\u064a\u0627", "PG": "\u0628\u0627\u0628\u0648\u0627 \u063a\u064a\u0646\u064a\u0627 \u0627\u0644\u062c\u062f\u064a\u062f\u0629", "PY": "\u0628\u0627\u0631\u0627\u063a\u0648\u0627\u064a", "PK": "\u0628\u0627\u0643\u0633\u062a\u0627\u0646", "PW": "\u0628\u0627\u0644\u0627\u0648", "BB": "\u0628\u0631\u0628\u0627\u062f\u0648\u0633", "BM": "\u0628\u0631\u0645\u0648\u062f\u0627", "BN": "\u0628\u0631\u0648\u0646\u0627\u064a", "BE": "\u0628\u0644\u062c\u064a\u0643\u0627", "BG": "\u0628\u0644\u063a\u0627\u0631\u064a\u0627", "BZ": "\u0628\u0644\u064a\u0632", "BD": "\u0628\u0646\u063a\u0644\u0627\u062f\u064a\u0634", "PA": "\u0628\u0646\u0645\u0627", "BJ": "\u0628\u0646\u064a\u0646", "BT": "\u0628\u0648\u062a\u0627\u0646", "BW": "\u0628\u0648\u062a\u0633\u0648\u0627\u0646\u0627", "PR": "\u0628\u0648\u0631\u062a\u0648\u0631\u064a\u0643\u0648", "BF": "\u0628\u0648\u0631\u0643\u064a\u0646\u0627 \u0641\u0627\u0633\u0648", "BI": "\u0628\u0648\u0631\u0648\u0646\u062f\u064a", "PL": "\u0628\u0648\u0644\u0646\u062f\u0627", "BO": "\u0628\u0648\u0644\u064a\u0641\u064a\u0627", "PF": "\u0628\u0648\u0644\u064a\u0646\u064a\u0632\u064a\u0627 \u0627\u0644\u0641\u0631\u0646\u0633\u064a\u0629", "PE": "\u0628\u064a\u0631\u0648", "BY": "\u0628\u064a\u0644\u0627\u0631\u0648\u0633", "TH": "\u062a\u0627\u064a\u0644\u0627\u0646\u062f", "TW": "\u062a\u0627\u064a\u0648\u0627\u0646", "TM": "\u062a\u0631\u0643\u0645\u0627\u0646\u0633\u062a\u0627\u0646", "TR": "\u062a\u0631\u0643\u064a\u0627", "TT": "\u062a\u0631\u064a\u0646\u064a\u062f\u0627\u062f \u0648\u062a\u0648\u0628\u0627\u063a\u0648", "TD": "\u062a\u0634\u0627\u062f", "CL": "\u062a\u0634\u064a\u0644\u064a", "TZ": "\u062a\u0646\u0632\u0627\u0646\u064a\u0627", "TG": "\u062a\u0648\u063a\u0648", "TK": "\u062a\u0648\u0643\u064a\u0644\u0648", "TN": "\u062a\u0648\u0646\u0633", "TO": "\u062a\u0648\u0646\u063a\u0627", "TL": "\u062a\u064a\u0645\u0648\u0631 - \u0644\u064a\u0634\u062a\u064a", "JM": "\u062c\u0627\u0645\u0627\u064a\u0643\u0627", "GI": "\u062c\u0628\u0644 \u0637\u0627\u0631\u0642", "AX": "\u062c\u0632\u0631 \u0622\u0644\u0627\u0646\u062f", "BS": "\u062c\u0632\u0631 \u0627\u0644\u0628\u0647\u0627\u0645\u0627", "KM": "\u062c\u0632\u0631 \u0627\u0644\u0642\u0645\u0631", "MQ": "\u062c\u0632\u0631 \u0627\u0644\u0645\u0627\u0631\u062a\u064a\u0646\u064a\u0643", "MV": "\u062c\u0632\u0631 \u0627\u0644\u0645\u0627\u0644\u062f\u064a\u0641", "PN": "\u062c\u0632\u0631 \u0628\u064a\u062a\u0643\u064a\u0631\u0646", "TC": "\u062c\u0632\u0631 \u062a\u0648\u0631\u0643\u0633 \u0648\u0643\u0627\u064a\u0643\u0648\u0633", "SB": "\u062c\u0632\u0631 \u0633\u0644\u064a\u0645\u0627\u0646", "FO": "\u062c\u0632\u0631 \u0641\u0627\u0631\u0648", "FK": "\u062c\u0632\u0631 \u0641\u0648\u0643\u0644\u0627\u0646\u062f", "VG": "\u062c\u0632\u0631 \u0641\u064a\u0631\u062c\u0646 \u0627\u0644\u0628\u0631\u064a\u0637\u0627\u0646\u064a\u0629", "VI": "\u062c\u0632\u0631 \u0641\u064a\u0631\u062c\u0646 \u0627\u0644\u062a\u0627\u0628\u0639\u0629 \u0644\u0644\u0648\u0644\u0627\u064a\u0627\u062a \u0627\u0644\u0645\u062a\u062d\u062f\u0629", "KY": "\u062c\u0632\u0631 \u0643\u0627\u064a\u0645\u0627\u0646", "CK": "\u062c\u0632\u0631 \u0643\u0648\u0643", "CC": "\u062c\u0632\u0631 \u0643\u0648\u0643\u0648\u0633 (\u0643\u064a\u0644\u064a\u0646\u063a)", "WF": "\u062c\u0632\u0631 \u0648\u0627\u0644\u0633 \u0648\u0641\u0648\u062a\u0648\u0646\u0627", "BV": "\u062c\u0632\u064a\u0631\u0629 \u0628\u0648\u0641\u064a\u0647", "CX": "\u062c\u0632\u064a\u0631\u0629 \u0643\u0631\u064a\u0633\u0645\u0627\u0633", "IM": "\u062c\u0632\u064a\u0631\u0629 \u0645\u0627\u0646", "NF": "\u062c\u0632\u064a\u0631\u0629 \u0646\u0648\u0631\u0641\u0648\u0644\u0643", "HM": "\u062c\u0632\u064a\u0631\u0629 \u0647\u064a\u0631\u062f \u0648\u062c\u0632\u0631 \u0645\u0627\u0643\u062f\u0648\u0646\u0627\u0644\u062f", "CF": "\u062c\u0645\u0647\u0648\u0631\u064a\u0629 \u0623\u0641\u0631\u064a\u0642\u064a\u0627 \u0627\u0644\u0648\u0633\u0637\u0649", "DO": "\u062c\u0645\u0647\u0648\u0631\u064a\u0629 \u0627\u0644\u062f\u0648\u0645\u064a\u0646\u064a\u0643\u0627\u0646", "ZA": "\u062c\u0646\u0648\u0628 \u0623\u0641\u0631\u064a\u0642\u064a\u0627", "SS": "\u062c\u0646\u0648\u0628 \u0627\u0644\u0633\u0648\u062f\u0627\u0646", "GE": "\u062c\u0648\u0631\u062c\u064a\u0627", "GS": "\u062c\u0648\u0631\u062c\u064a\u0627 \u0627\u0644\u062c\u0646\u0648\u0628\u064a\u0629 \u0648\u062c\u0632\u0631 \u0633\u0627\u0646\u062f\u0648\u064a\u062a\u0634 \u0627\u0644\u062c\u0646\u0648\u0628\u064a\u0629", "DJ": "\u062c\u064a\u0628\u0648\u062a\u064a", "DM": "\u062f\u0648\u0645\u064a\u0646\u064a\u0643\u0627", "RW": "\u0631\u0648\u0627\u0646\u062f\u0627", "RU": "\u0631\u0648\u0633\u064a\u0627", "RO": "\u0631\u0648\u0645\u0627\u0646\u064a\u0627", "RE": "\u0631\u0648\u064a\u0646\u064a\u0648\u0646", "ZM": "\u0632\u0627\u0645\u0628\u064a\u0627", "ZW": "\u0632\u064a\u0645\u0628\u0627\u0628\u0648\u064a", "CI": "\u0633\u0627\u062d\u0644 \u0627\u0644\u0639\u0627\u062c", "WS": "\u0633\u0627\u0645\u0648\u0627", "AS": "\u0633\u0627\u0645\u0648\u0627 \u0627\u0644\u0623\u0645\u0631\u064a\u0643\u064a\u0629", "BL": "\u0633\u0627\u0646 \u0628\u0627\u0631\u062a\u0644\u064a\u0645\u064a", "PM": "\u0633\u0627\u0646 \u0628\u064a\u064a\u0631 \u0648\u0645\u0643\u0648\u064a\u0644\u0648\u0646", "MF": "\u0633\u0627\u0646 \u0645\u0627\u0631\u062a\u0646", "SM": "\u0633\u0627\u0646 \u0645\u0627\u0631\u064a\u0646\u0648", "VC": "\u0633\u0627\u0646\u062a \u0641\u0646\u0633\u0646\u062a \u0648\u062c\u0632\u0631 \u063a\u0631\u064a\u0646\u0627\u062f\u064a\u0646", "KN": "\u0633\u0627\u0646\u062a \u0643\u064a\u062a\u0633 \u0648\u0646\u064a\u0641\u064a\u0633", "LC": "\u0633\u0627\u0646\u062a \u0644\u0648\u0633\u064a\u0627", "SX": "\u0633\u0627\u0646\u062a \u0645\u0627\u0631\u062a\u0646", "SH": "\u0633\u0627\u0646\u062a \u0647\u064a\u0644\u064a\u0646\u0627", "ST": "\u0633\u0627\u0648 \u062a\u0648\u0645\u064a \u0648\u0628\u0631\u064a\u0646\u0633\u064a\u0628\u064a", "LK": "\u0633\u0631\u064a\u0644\u0627\u0646\u0643\u0627", "SJ": "\u0633\u0641\u0627\u0644\u0628\u0627\u0631\u062f \u0648\u062c\u0627\u0646 \u0645\u0627\u064a\u0646", "SK": "\u0633\u0644\u0648\u0641\u0627\u0643\u064a\u0627", "SI": "\u0633\u0644\u0648\u0641\u064a\u0646\u064a\u0627", "SG": "\u0633\u0646\u063a\u0627\u0641\u0648\u0631\u0629", "SY": "\u0633\u0648\u0631\u064a\u0627", "SR": "\u0633\u0648\u0631\u064a\u0646\u0627\u0645", "CH": "\u0633\u0648\u064a\u0633\u0631\u0627", "SL": "\u0633\u064a\u0631\u0627\u0644\u064a\u0648\u0646", "SC": "\u0633\u064a\u0634\u0644", "RS": "\u0635\u0631\u0628\u064a\u0627", "TJ": "\u0637\u0627\u062c\u064a\u0643\u0633\u062a\u0627\u0646", "OM": "\u0639\u064f\u0645\u0627\u0646", "GM": "\u063a\u0627\u0645\u0628\u064a\u0627", "GH": "\u063a\u0627\u0646\u0627", "GD": "\u063a\u0631\u064a\u0646\u0627\u062f\u0627", "GL": "\u063a\u0631\u064a\u0646\u0644\u0627\u0646\u062f", "GT": "\u063a\u0648\u0627\u062a\u064a\u0645\u0627\u0644\u0627", "GP": "\u063a\u0648\u0627\u062f\u0644\u0648\u0628", "GU": "\u063a\u0648\u0627\u0645", "GF": "\u063a\u0648\u064a\u0627\u0646\u0627 \u0627\u0644\u0641\u0631\u0646\u0633\u064a\u0629", "GY": "\u063a\u064a\u0627\u0646\u0627", "GG": "\u063a\u064a\u0631\u0646\u0632\u064a", "GN": "\u063a\u064a\u0646\u064a\u0627", "GQ": "\u063a\u064a\u0646\u064a\u0627 \u0627\u0644\u0627\u0633\u062a\u0648\u0627\u0626\u064a\u0629", "GW": "\u063a\u064a\u0646\u064a\u0627 \u0628\u064a\u0633\u0627\u0648", "VU": "\u0641\u0627\u0646\u0648\u0627\u062a\u0648", "FR": "\u0641\u0631\u0646\u0633\u0627", "VE": "\u0641\u0646\u0632\u0648\u064a\u0644\u0627", "FI": "\u0641\u0646\u0644\u0646\u062f\u0627", "VN": "\u0641\u064a\u062a\u0646\u0627\u0645", "FJ": "\u0641\u064a\u062c\u064a", "CY": "\u0642\u0628\u0631\u0635", "QA": "\u0642\u0637\u0631", "KG": "\u0642\u064a\u0631\u063a\u064a\u0632\u0633\u062a\u0627\u0646", "KZ": "\u0643\u0627\u0632\u0627\u062e\u0633\u062a\u0627\u0646", "NC": "\u0643\u0627\u0644\u064a\u062f\u0648\u0646\u064a\u0627 \u0627\u0644\u062c\u062f\u064a\u062f\u0629", "HR": "\u0643\u0631\u0648\u0627\u062a\u064a\u0627", "KH": "\u0643\u0645\u0628\u0648\u062f\u064a\u0627", "CA": "\u0643\u0646\u062f\u0627", "CU": "\u0643\u0648\u0628\u0627", "CW": "\u0643\u0648\u0631\u0627\u0633\u0627\u0648", "KR": "\u0643\u0648\u0631\u064a\u0627 \u0627\u0644\u062c\u0646\u0648\u0628\u064a\u0629", "KP": "\u0643\u0648\u0631\u064a\u0627 \u0627\u0644\u0634\u0645\u0627\u0644\u064a\u0629", "CR": "\u0643\u0648\u0633\u062a\u0627\u0631\u064a\u0643\u0627", "CO": "\u0643\u0648\u0644\u0648\u0645\u0628\u064a\u0627", "KI": "\u0643\u064a\u0631\u064a\u0628\u0627\u062a\u064a", "KE": "\u0643\u064a\u0646\u064a\u0627", "LV": "\u0644\u0627\u062a\u0641\u064a\u0627", "LA": "\u0644\u0627\u0648\u0633", "LB": "\u0644\u0628\u0646\u0627\u0646", "LU": "\u0644\u0648\u0643\u0633\u0645\u0628\u0648\u0631\u063a", "LY": "\u0644\u064a\u0628\u064a\u0627", "LR": "\u0644\u064a\u0628\u064a\u0631\u064a\u0627", "LT": "\u0644\u064a\u062a\u0648\u0627\u0646\u064a\u0627", "LI": "\u0644\u064a\u062e\u062a\u0646\u0634\u062a\u0627\u064a\u0646", "LS": "\u0644\u064a\u0633\u0648\u062a\u0648", "MT": "\u0645\u0627\u0644\u0637\u0627", "ML": "\u0645\u0627\u0644\u064a", "MY": "\u0645\u0627\u0644\u064a\u0632\u064a\u0627", "YT": "\u0645\u0627\u064a\u0648\u062a", "MG": "\u0645\u062f\u063a\u0634\u0642\u0631", "EG": "\u0645\u0635\u0631", "MK": "\u0645\u0642\u062f\u0648\u0646\u064a\u0627 \u0627\u0644\u0634\u0645\u0627\u0644\u064a\u0629", "MW": "\u0645\u0644\u0627\u0648\u064a", "MO": "\u0645\u0646\u0637\u0642\u0629 \u0645\u0627\u0643\u0627\u0648 \u0627\u0644\u0625\u062f\u0627\u0631\u064a\u0629 \u0627\u0644\u062e\u0627\u0635\u0629", "MN": "\u0645\u0646\u063a\u0648\u0644\u064a\u0627", "MR": "\u0645\u0648\u0631\u064a\u062a\u0627\u0646\u064a\u0627", "MU": "\u0645\u0648\u0631\u064a\u0634\u064a\u0648\u0633", "MZ": "\u0645\u0648\u0632\u0645\u0628\u064a\u0642", "MD": "\u0645\u0648\u0644\u062f\u0648\u0641\u0627", "MC": "\u0645\u0648\u0646\u0627\u0643\u0648", "MS": "\u0645\u0648\u0646\u062a\u0633\u0631\u0627\u062a", "MM": "\u0645\u064a\u0627\u0646\u0645\u0627\u0631 (\u0628\u0648\u0631\u0645\u0627)", "NA": "\u0646\u0627\u0645\u064a\u0628\u064a\u0627", "NR": "\u0646\u0627\u0648\u0631\u0648", "NP": "\u0646\u064a\u0628\u0627\u0644", "NG": "\u0646\u064a\u062c\u064a\u0631\u064a\u0627", "NI": "\u0646\u064a\u0643\u0627\u0631\u0627\u063a\u0648\u0627", "NZ": "\u0646\u064a\u0648\u0632\u064a\u0644\u0646\u062f\u0627", "NU": "\u0646\u064a\u0648\u064a", "HT": "\u0647\u0627\u064a\u062a\u064a", "HN": "\u0647\u0646\u062f\u0648\u0631\u0627\u0633", "HU": "\u0647\u0646\u063a\u0627\u0631\u064a\u0627", "NL": "\u0647\u0648\u0644\u0646\u062f\u0627", "BQ": "\u0647\u0648\u0644\u0646\u062f\u0627 \u0627\u0644\u0643\u0627\u0631\u064a\u0628\u064a\u0629", "HK": "\u0647\u0648\u0646\u063a \u0643\u0648\u0646\u063a \u0627\u0644\u0635\u064a\u0646\u064a\u0629 (\u0645\u0646\u0637\u0642\u0629 \u0625\u062f\u0627\u0631\u064a\u0629 \u062e\u0627\u0635\u0629)"} \ No newline at end of file diff --git a/desktop/src/onionshare/resources/countries/bn.json b/desktop/src/onionshare/resources/countries/bn.json index a68e0d05..c9aa81f0 100644 --- a/desktop/src/onionshare/resources/countries/bn.json +++ b/desktop/src/onionshare/resources/countries/bn.json @@ -1 +1 @@ -{"AT": "\u0985\u09b8\u09cd\u099f\u09cd\u09b0\u09bf\u09af\u09bc\u09be", "AU": "\u0985\u09b8\u09cd\u099f\u09cd\u09b0\u09c7\u09b2\u09bf\u09af\u09bc\u09be", "AO": "\u0985\u09cd\u09af\u09be\u0999\u09cd\u0997\u09cb\u09b2\u09be", "AQ": "\u0985\u09cd\u09af\u09be\u09a8\u09cd\u099f\u09be\u09b0\u09cd\u0995\u099f\u09bf\u0995\u09be", "AG": "\u0985\u09cd\u09af\u09be\u09a8\u09cd\u099f\u09bf\u0997\u09c1\u09af\u09bc\u09be \u0993 \u09ac\u09be\u09b0\u09ac\u09c1\u09a1\u09be", "IM": "\u0986\u0987\u09b2 \u0985\u09ab \u09ae\u09cd\u09af\u09be\u09a8", "IS": "\u0986\u0987\u09b8\u09b2\u09cd\u09af\u09be\u09a8\u09cd\u09a1", "AZ": "\u0986\u099c\u09be\u09b0\u09ac\u09be\u0987\u099c\u09be\u09a8", "AD": "\u0986\u09a8\u09cd\u09a1\u09cb\u09b0\u09be", "AF": "\u0986\u09ab\u0997\u09be\u09a8\u09bf\u09b8\u09cd\u09a4\u09be\u09a8", "AS": "\u0986\u09ae\u09c7\u09b0\u09bf\u0995\u09be\u09a8 \u09b8\u09be\u09ae\u09cb\u09af\u09bc\u09be", "IE": "\u0986\u09af\u09bc\u09be\u09b0\u09b2\u09cd\u09af\u09be\u09a8\u09cd\u09a1", "AW": "\u0986\u09b0\u09c1\u09ac\u09be", "AR": "\u0986\u09b0\u09cd\u099c\u09c7\u09a8\u09cd\u099f\u09bf\u09a8\u09be", "AM": "\u0986\u09b0\u09cd\u09ae\u09c7\u09a8\u09bf\u09af\u09bc\u09be", "DZ": "\u0986\u09b2\u099c\u09c7\u09b0\u09bf\u09af\u09bc\u09be", "AL": "\u0986\u09b2\u09ac\u09c7\u09a8\u09bf\u09af\u09bc\u09be", "AX": "\u0986\u09b2\u09be\u09a8\u09cd\u09a1 \u09a6\u09cd\u09ac\u09c0\u09aa\u09aa\u09c1\u099e\u09cd\u099c", "UA": "\u0987\u0989\u0995\u09cd\u09b0\u09c7\u09a8", "EC": "\u0987\u0995\u09c1\u09af\u09bc\u09c7\u09a1\u09b0", "IL": "\u0987\u099c\u09b0\u09be\u09af\u09bc\u09c7\u09b2", "IT": "\u0987\u09a4\u09be\u09b2\u09bf", "ET": "\u0987\u09a5\u09bf\u0993\u09aa\u09bf\u09af\u09bc\u09be", "ID": "\u0987\u09a8\u09cd\u09a6\u09cb\u09a8\u09c7\u09b6\u09bf\u09af\u09bc\u09be", "YE": "\u0987\u09af\u09bc\u09c7\u09ae\u09c7\u09a8", "IQ": "\u0987\u09b0\u09be\u0995", "IR": "\u0987\u09b0\u09be\u09a8", "ER": "\u0987\u09b0\u09bf\u09a4\u09cd\u09b0\u09bf\u09af\u09bc\u09be", "SZ": "\u0987\u09b8\u0993\u09af\u09bc\u09be\u09a4\u09bf\u09a8\u09bf", "UG": "\u0989\u0997\u09be\u09a8\u09cd\u09a1\u09be", "UZ": "\u0989\u099c\u09ac\u09c7\u0995\u09bf\u09b8\u09cd\u09a4\u09be\u09a8", "KP": "\u0989\u09a4\u09cd\u09a4\u09b0 \u0995\u09cb\u09b0\u09bf\u09af\u09bc\u09be", "MK": "\u0989\u09a4\u09cd\u09a4\u09b0 \u09ae\u09cd\u09af\u09be\u09b8\u09c7\u09a1\u09cb\u09a8\u09bf\u09af\u09bc\u09be", "MP": "\u0989\u09a4\u09cd\u09a4\u09b0\u09be\u099e\u09cd\u099a\u09b2\u09c0\u09af\u09bc \u09ae\u09be\u09b0\u09bf\u09af\u09bc\u09be\u09a8\u09be \u09a6\u09cd\u09ac\u09c0\u09aa\u09aa\u09c1\u099e\u09cd\u099c", "UY": "\u0989\u09b0\u09c1\u0997\u09c1\u09af\u09bc\u09c7", "SV": "\u098f\u09b2 \u09b8\u09be\u09b2\u09ad\u09c7\u09a6\u09b0", "EE": "\u098f\u09b8\u09cd\u09a4\u09cb\u09a8\u09bf\u09af\u09bc\u09be", "AI": "\u098f\u09cd\u09af\u09be\u0999\u09cd\u0997\u09c1\u0987\u09b2\u09be", "OM": "\u0993\u09ae\u09be\u09a8", "WF": "\u0993\u09af\u09bc\u09be\u09b2\u09bf\u09b8 \u0993 \u09ab\u09c1\u099f\u09c1\u09a8\u09be", "CG": "\u0995\u0999\u09cd\u0997\u09cb - \u09ac\u09cd\u09b0\u09be\u099c\u09be\u09ad\u09bf\u09b2", "CD": "\u0995\u0999\u09cd\u0997\u09cb-\u0995\u09bf\u09a8\u09b6\u09be\u09b8\u09be", "KM": "\u0995\u09ae\u09cb\u09b0\u09cb\u09b8", "KH": "\u0995\u09ae\u09cd\u09ac\u09cb\u09a1\u09bf\u09af\u09bc\u09be", "CO": "\u0995\u09b2\u09ae\u09cd\u09ac\u09bf\u09af\u09bc\u09be", "KZ": "\u0995\u09be\u099c\u09be\u0996\u09b8\u09cd\u09a4\u09be\u09a8", "QA": "\u0995\u09be\u09a4\u09be\u09b0", "CA": "\u0995\u09be\u09a8\u09be\u09a1\u09be", "CU": "\u0995\u09bf\u0989\u09ac\u09be", "KG": "\u0995\u09bf\u09b0\u0997\u09bf\u099c\u09bf\u09b8\u09cd\u09a4\u09be\u09a8", "KI": "\u0995\u09bf\u09b0\u09bf\u09ac\u09be\u09a4\u09bf", "CK": "\u0995\u09c1\u0995 \u09a6\u09cd\u09ac\u09c0\u09aa\u09aa\u09c1\u099e\u09cd\u099c", "KW": "\u0995\u09c1\u09af\u09bc\u09c7\u09a4", "CW": "\u0995\u09c1\u09b0\u09be\u09b8\u09be\u0993", "KE": "\u0995\u09c7\u09a8\u09bf\u09af\u09bc\u09be", "CV": "\u0995\u09c7\u09aa\u09ad\u09be\u09b0\u09cd\u09a6\u09c7", "KY": "\u0995\u09c7\u09ae\u09cd\u09af\u09be\u09a8 \u09a6\u09cd\u09ac\u09c0\u09aa\u09aa\u09c1\u099e\u09cd\u099c", "CC": "\u0995\u09cb\u0995\u09cb\u09b8 (\u0995\u09bf\u09b2\u09bf\u0982) \u09a6\u09cd\u09ac\u09c0\u09aa\u09aa\u09c1\u099e\u09cd\u099c", "CI": "\u0995\u09cb\u09a4 \u09a6\u09bf\u09ad\u09cb\u09af\u09bc\u09be\u09b0", "CR": "\u0995\u09cb\u09b8\u09cd\u099f\u09be\u09b0\u09bf\u0995\u09be", "CM": "\u0995\u09cd\u09af\u09be\u09ae\u09c7\u09b0\u09c1\u09a8", "BQ": "\u0995\u09cd\u09af\u09be\u09b0\u09bf\u09ac\u09bf\u09af\u09bc\u09be\u09a8 \u09a8\u09c7\u09a6\u09be\u09b0\u09b2\u09cd\u09af\u09be\u09a8\u09cd\u09a1\u09b8", "CX": "\u0995\u09cd\u09b0\u09bf\u09b8\u09ae\u09be\u09b8 \u09a6\u09cd\u09ac\u09c0\u09aa", "HR": "\u0995\u09cd\u09b0\u09cb\u09af\u09bc\u09c7\u09b6\u09bf\u09af\u09bc\u09be", "GM": "\u0997\u09be\u09ae\u09cd\u09ac\u09bf\u09af\u09bc\u09be", "GN": "\u0997\u09bf\u09a8\u09bf", "GW": "\u0997\u09bf\u09a8\u09bf-\u09ac\u09bf\u09b8\u09be\u0989", "GY": "\u0997\u09bf\u09af\u09bc\u09be\u09a8\u09be", "GT": "\u0997\u09c1\u09af\u09bc\u09be\u09a4\u09c7\u09ae\u09be\u09b2\u09be", "GP": "\u0997\u09c1\u09af\u09bc\u09be\u09a6\u09c7\u09b2\u09cc\u09aa", "GU": "\u0997\u09c1\u09af\u09bc\u09be\u09ae", "GG": "\u0997\u09c1\u09af\u09bc\u09be\u09b0\u09cd\u09a8\u09b8\u09bf", "GA": "\u0997\u09cd\u09af\u09be\u09ac\u09a8", "GL": "\u0997\u09cd\u09b0\u09c0\u09a8\u09b2\u09cd\u09af\u09be\u09a8\u09cd\u09a1", "GR": "\u0997\u09cd\u09b0\u09c0\u09b8", "GD": "\u0997\u09cd\u09b0\u09c7\u09a8\u09be\u09a1\u09be", "GH": "\u0998\u09be\u09a8\u09be", "TD": "\u099a\u09be\u09a6", "CL": "\u099a\u09bf\u09b2\u09bf", "CN": "\u099a\u09c0\u09a8", "CZ": "\u099a\u09c7\u099a\u09bf\u09af\u09bc\u09be", "GE": "\u099c\u09b0\u09cd\u099c\u09bf\u09af\u09bc\u09be", "JO": "\u099c\u09b0\u09cd\u09a1\u09a8", "JP": "\u099c\u09be\u09aa\u09be\u09a8", "JM": "\u099c\u09be\u09ae\u09be\u0987\u0995\u09be", "ZM": "\u099c\u09be\u09ae\u09cd\u09ac\u09bf\u09af\u09bc\u09be", "DE": "\u099c\u09be\u09b0\u09cd\u09ae\u09be\u09a8\u09bf", "JE": "\u099c\u09be\u09b0\u09cd\u09b8\u09bf", "DJ": "\u099c\u09bf\u09ac\u09c1\u09a4\u09bf", "GI": "\u099c\u09bf\u09ac\u09cd\u09b0\u09be\u09b2\u09cd\u099f\u09be\u09b0", "ZW": "\u099c\u09bf\u09ae\u09cd\u09ac\u09be\u09ac\u09cb\u09af\u09bc\u09c7", "TV": "\u099f\u09c1\u09ad\u09be\u09b2\u09c1", "TK": "\u099f\u09cb\u0995\u09c7\u09b2\u09be\u0989", "TG": "\u099f\u09cb\u0997\u09cb", "TO": "\u099f\u09cb\u0999\u09cd\u0997\u09be", "DK": "\u09a1\u09c7\u09a8\u09ae\u09be\u09b0\u09cd\u0995", "DM": "\u09a1\u09cb\u09ae\u09bf\u09a8\u09bf\u0995\u09be", "DO": "\u09a1\u09cb\u09ae\u09c7\u09a8\u09bf\u0995\u09be\u09a8 \u09aa\u09cd\u09b0\u099c\u09be\u09a4\u09a8\u09cd\u09a4\u09cd\u09b0", "TW": "\u09a4\u09be\u0987\u0993\u09af\u09bc\u09be\u09a8", "TJ": "\u09a4\u09be\u099c\u09bf\u0995\u09bf\u09b8\u09cd\u09a4\u09be\u09a8", "TZ": "\u09a4\u09be\u099e\u09cd\u099c\u09be\u09a8\u09bf\u09af\u09bc\u09be", "TN": "\u09a4\u09bf\u0989\u09a8\u09bf\u09b8\u09bf\u09af\u09bc\u09be", "TL": "\u09a4\u09bf\u09ae\u09c1\u09b0-\u09b2\u09c7\u09b8\u09cd\u09a4\u09c7", "TR": "\u09a4\u09c1\u09b0\u09b8\u09cd\u0995", "TM": "\u09a4\u09c1\u09b0\u09cd\u0995\u09ae\u09c7\u09a8\u09bf\u09b8\u09cd\u09a4\u09be\u09a8", "TC": "\u09a4\u09c1\u09b0\u09cd\u0995\u09b8 \u0993 \u0995\u09be\u0987\u0995\u09cb\u09b8 \u09a6\u09cd\u09ac\u09c0\u09aa\u09aa\u09c1\u099e\u09cd\u099c", "TT": "\u09a4\u09cd\u09b0\u09bf\u09a8\u09bf\u09a8\u09be\u09a6 \u0993 \u099f\u09cb\u09ac\u09cd\u09af\u09be\u0997\u09cb", "TH": "\u09a5\u09be\u0987\u09b2\u09cd\u09af\u09be\u09a8\u09cd\u09a1", "ZA": "\u09a6\u0995\u09cd\u09b7\u09bf\u09a3 \u0986\u09ab\u09cd\u09b0\u09bf\u0995\u09be", "KR": "\u09a6\u0995\u09cd\u09b7\u09bf\u09a3 \u0995\u09cb\u09b0\u09bf\u09af\u09bc\u09be", "GS": "\u09a6\u0995\u09cd\u09b7\u09bf\u09a3 \u099c\u09b0\u09cd\u099c\u09bf\u09af\u09bc\u09be \u0993 \u09a6\u0995\u09cd\u09b7\u09bf\u09a3 \u09b8\u09cd\u09af\u09be\u09a8\u09cd\u09a1\u0989\u0987\u099a \u09a6\u09cd\u09ac\u09c0\u09aa\u09aa\u09c1\u099e\u09cd\u099c", "SS": "\u09a6\u0995\u09cd\u09b7\u09bf\u09a3 \u09b8\u09c1\u09a6\u09be\u09a8", "NO": "\u09a8\u09b0\u0993\u09af\u09bc\u09c7", "NF": "\u09a8\u09b0\u09ab\u09cb\u0995 \u09a6\u09cd\u09ac\u09c0\u09aa", "NE": "\u09a8\u09be\u0987\u099c\u09be\u09b0", "NG": "\u09a8\u09be\u0987\u099c\u09c7\u09b0\u09bf\u09af\u09bc\u09be", "NR": "\u09a8\u09be\u0989\u09b0\u09c1", "NA": "\u09a8\u09be\u09ae\u09bf\u09ac\u09bf\u09af\u09bc\u09be", "NC": "\u09a8\u09bf\u0989 \u0995\u09cd\u09af\u09be\u09b2\u09c7\u09a1\u09cb\u09a8\u09bf\u09af\u09bc\u09be", "NZ": "\u09a8\u09bf\u0989\u099c\u09bf\u09b2\u09cd\u09af\u09be\u09a8\u09cd\u09a1", "NU": "\u09a8\u09bf\u0989\u09af\u09bc\u09c7", "NI": "\u09a8\u09bf\u0995\u09be\u09b0\u09be\u0997\u09c1\u09af\u09bc\u09be", "GQ": "\u09a8\u09bf\u09b0\u0995\u09cd\u09b7\u09c0\u09af\u09bc \u0997\u09bf\u09a8\u09bf", "NL": "\u09a8\u09c7\u09a6\u09be\u09b0\u09b2\u09cd\u09af\u09be\u09a8\u09cd\u09a1\u09b8", "NP": "\u09a8\u09c7\u09aa\u09be\u09b2", "PT": "\u09aa\u09b0\u09cd\u09a4\u09c1\u0997\u09be\u09b2", "EH": "\u09aa\u09b6\u09cd\u099a\u09bf\u09ae \u09b8\u09be\u09b9\u09be\u09b0\u09be", "PK": "\u09aa\u09be\u0995\u09bf\u09b8\u09cd\u09a4\u09be\u09a8", "PA": "\u09aa\u09be\u09a8\u09be\u09ae\u09be", "PG": "\u09aa\u09be\u09aa\u09c1\u09af\u09bc\u09be \u09a8\u09bf\u0989 \u0997\u09bf\u09a8\u09bf", "PW": "\u09aa\u09be\u09b2\u09be\u0989", "PN": "\u09aa\u09bf\u099f\u0995\u09c7\u09af\u09bc\u09be\u09b0\u09cd\u09a8 \u09a6\u09cd\u09ac\u09c0\u09aa\u09aa\u09c1\u099e\u09cd\u099c", "PR": "\u09aa\u09c1\u09af\u09bc\u09c7\u09b0\u09cd\u09a4\u09cb \u09b0\u09bf\u0995\u09cb", "PE": "\u09aa\u09c7\u09b0\u09c1", "PL": "\u09aa\u09cb\u09b2\u09cd\u09af\u09be\u09a8\u09cd\u09a1", "PY": "\u09aa\u09cd\u09af\u09be\u09b0\u09be\u0997\u09c1\u09af\u09bc\u09c7", "PS": "\u09aa\u09cd\u09af\u09be\u09b2\u09c7\u09b8\u09cd\u099f\u09be\u0987\u09a8\u09c7\u09b0 \u0985\u099e\u09cd\u099a\u09b2\u09b8\u09ae\u09c2\u09b9", "FK": "\u09ab\u0995\u09b2\u09cd\u09af\u09be\u09a8\u09cd\u09a1 \u09a6\u09cd\u09ac\u09c0\u09aa\u09aa\u09c1\u099e\u09cd\u099c", "GF": "\u09ab\u09b0\u09be\u09b8\u09c0 \u0997\u09be\u09af\u09bc\u09be\u09a8\u09be", "TF": "\u09ab\u09b0\u09be\u09b8\u09c0 \u09a6\u0995\u09cd\u09b7\u09bf\u09a3\u09be\u099e\u09cd\u099a\u09b2", "PF": "\u09ab\u09b0\u09be\u09b8\u09c0 \u09aa\u09b2\u09bf\u09a8\u09c7\u09b6\u09bf\u09af\u09bc\u09be", "FJ": "\u09ab\u09bf\u099c\u09bf", "FI": "\u09ab\u09bf\u09a8\u09b2\u09cd\u09af\u09be\u09a8\u09cd\u09a1", "PH": "\u09ab\u09bf\u09b2\u09bf\u09aa\u09be\u0987\u09a8", "FO": "\u09ab\u09cd\u09af\u09be\u09b0\u0993 \u09a6\u09cd\u09ac\u09c0\u09aa\u09aa\u09c1\u099e\u09cd\u099c", "FR": "\u09ab\u09cd\u09b0\u09be\u09a8\u09cd\u09b8", "BW": "\u09ac\u09a4\u09b8\u09cb\u09af\u09bc\u09be\u09a8\u09be", "BO": "\u09ac\u09b2\u09bf\u09ad\u09bf\u09af\u09bc\u09be", "BA": "\u09ac\u09b8\u09a8\u09bf\u09af\u09bc\u09be \u0993 \u09b9\u09be\u09b0\u09cd\u099c\u09c7\u0997\u09cb\u09ad\u09bf\u09a8\u09be", "BD": "\u09ac\u09be\u0982\u09b2\u09be\u09a6\u09c7\u09b6", "BB": "\u09ac\u09be\u09b0\u09ac\u09be\u09a6\u09cb\u09b8", "BM": "\u09ac\u09be\u09b0\u09ae\u09c1\u09a1\u09be", "BH": "\u09ac\u09be\u09b9\u09b0\u09be\u0987\u09a8", "BS": "\u09ac\u09be\u09b9\u09be\u09ae\u09be \u09a6\u09cd\u09ac\u09c0\u09aa\u09aa\u09c1\u099e\u09cd\u099c", "BF": "\u09ac\u09c1\u09b0\u0995\u09bf\u09a8\u09be \u09ab\u09be\u09b8\u09cb", "BI": "\u09ac\u09c1\u09b0\u09c1\u09a8\u09cd\u09a1\u09bf", "BG": "\u09ac\u09c1\u09b2\u0997\u09c7\u09b0\u09bf\u09af\u09bc\u09be", "BJ": "\u09ac\u09c7\u09a8\u09bf\u09a8", "BE": "\u09ac\u09c7\u09b2\u099c\u09bf\u09af\u09bc\u09be\u09ae", "BY": "\u09ac\u09c7\u09b2\u09be\u09b0\u09c1\u09b6", "BZ": "\u09ac\u09c7\u09b2\u09bf\u099c", "BV": "\u09ac\u09cb\u09ad\u09c7\u099f \u09a6\u09cd\u09ac\u09c0\u09aa", "BR": "\u09ac\u09cd\u09b0\u09be\u099c\u09bf\u09b2", "IO": "\u09ac\u09cd\u09b0\u09bf\u099f\u09bf\u09b6 \u09ad\u09be\u09b0\u09a4 \u09ae\u09b9\u09be\u09b8\u09be\u0997\u09b0\u09c0\u09af\u09bc \u0985\u099e\u09cd\u099a\u09b2", "VG": "\u09ac\u09cd\u09b0\u09bf\u099f\u09bf\u09b6 \u09ad\u09be\u09b0\u09cd\u099c\u09bf\u09a8 \u09a6\u09cd\u09ac\u09c0\u09aa\u09aa\u09c1\u099e\u09cd\u099c", "BN": "\u09ac\u09cd\u09b0\u09c1\u09a8\u09c7\u0987", "VU": "\u09ad\u09be\u09a8\u09c1\u09af\u09bc\u09be\u099f\u09c1", "IN": "\u09ad\u09be\u09b0\u09a4", "VN": "\u09ad\u09bf\u09af\u09bc\u09c7\u09a4\u09a8\u09be\u09ae", "BT": "\u09ad\u09c1\u099f\u09be\u09a8", "VE": "\u09ad\u09c7\u09a8\u09c7\u099c\u09c1\u09af\u09bc\u09c7\u09b2\u09be", "VA": "\u09ad\u09cd\u09af\u09be\u099f\u09bf\u0995\u09be\u09a8 \u09b8\u09bf\u099f\u09bf", "MN": "\u09ae\u0999\u09cd\u0997\u09cb\u09b2\u09bf\u09af\u09bc\u09be", "CF": "\u09ae\u09a7\u09cd\u09af \u0986\u09ab\u09cd\u09b0\u09bf\u0995\u09be\u09b0 \u09aa\u09cd\u09b0\u099c\u09be\u09a4\u09a8\u09cd\u09a4\u09cd\u09b0", "MS": "\u09ae\u09a8\u09cd\u099f\u09b8\u09c7\u09b0\u09be\u099f", "ME": "\u09ae\u09a8\u09cd\u099f\u09bf\u09a8\u09bf\u0997\u09cd\u09b0\u09cb", "MR": "\u09ae\u09b0\u09bf\u09a4\u09be\u09a8\u09bf\u09af\u09bc\u09be", "MU": "\u09ae\u09b0\u09bf\u09b6\u09be\u09b8", "MD": "\u09ae\u09b2\u09a1\u09cb\u09ad\u09be", "FM": "\u09ae\u09be\u0987\u0995\u09cd\u09b0\u09cb\u09a8\u09c7\u09b6\u09bf\u09af\u09bc\u09be", "MG": "\u09ae\u09be\u09a6\u09be\u0997\u09be\u09b8\u09cd\u0995\u09be\u09b0", "MM": "\u09ae\u09be\u09af\u09bc\u09be\u09a8\u09ae\u09be\u09b0 (\u09ac\u09be\u09b0\u09cd\u09ae\u09be)", "YT": "\u09ae\u09be\u09af\u09bc\u09cb\u09a4\u09cd\u09a4\u09c7", "US": "\u09ae\u09be\u09b0\u09cd\u0995\u09bf\u09a8 \u09af\u09c1\u0995\u09cd\u09a4\u09b0\u09be\u09b7\u09cd\u099f\u09cd\u09b0", "VI": "\u09ae\u09be\u09b0\u09cd\u0995\u09bf\u09a8 \u09af\u09c1\u0995\u09cd\u09a4\u09b0\u09be\u09b7\u09cd\u099f\u09cd\u09b0\u09c7\u09b0 \u09ad\u09be\u09b0\u09cd\u099c\u09bf\u09a8 \u09a6\u09cd\u09ac\u09c0\u09aa\u09aa\u09c1\u099e\u09cd\u099c", "MQ": "\u09ae\u09be\u09b0\u09cd\u099f\u09bf\u09a8\u09bf\u0995", "MH": "\u09ae\u09be\u09b0\u09cd\u09b6\u09be\u09b2 \u09a6\u09cd\u09ac\u09c0\u09aa\u09aa\u09c1\u099e\u09cd\u099c", "MV": "\u09ae\u09be\u09b2\u09a6\u09cd\u09ac\u09c0\u09aa", "MY": "\u09ae\u09be\u09b2\u09af\u09bc\u09c7\u09b6\u09bf\u09af\u09bc\u09be", "MW": "\u09ae\u09be\u09b2\u09be\u0989\u0987", "ML": "\u09ae\u09be\u09b2\u09bf", "MT": "\u09ae\u09be\u09b2\u09cd\u099f\u09be", "EG": "\u09ae\u09bf\u09b6\u09b0", "MX": "\u09ae\u09c7\u0995\u09cd\u09b8\u09bf\u0995\u09cb", "MZ": "\u09ae\u09cb\u099c\u09be\u09ae\u09cd\u09ac\u09bf\u0995", "MC": "\u09ae\u09cb\u09a8\u09be\u0995\u09cb", "MA": "\u09ae\u09cb\u09b0\u0995\u09cd\u0995\u09cb", "MO": "\u09ae\u09cd\u09af\u09be\u0995\u09be\u0993 \u098f\u09b8\u098f\u0986\u09b0 \u099a\u09c0\u09a8\u09be", "GB": "\u09af\u09c1\u0995\u09cd\u09a4\u09b0\u09be\u099c\u09cd\u09af", "UM": "\u09af\u09c1\u0995\u09cd\u09a4\u09b0\u09be\u09b7\u09cd\u099f\u09cd\u09b0\u09c7\u09b0 \u09aa\u09be\u09b0\u09cd\u09b6\u09cd\u09ac\u09ac\u09b0\u09cd\u09a4\u09c0 \u09a6\u09cd\u09ac\u09c0\u09aa\u09aa\u09c1\u099e\u09cd\u099c", "RU": "\u09b0\u09be\u09b6\u09bf\u09af\u09bc\u09be", "RE": "\u09b0\u09bf\u0987\u0989\u09a8\u09bf\u09af\u09bc\u09a8", "RW": "\u09b0\u09c1\u09af\u09bc\u09be\u09a8\u09cd\u09a1\u09be", "RO": "\u09b0\u09cb\u09ae\u09be\u09a8\u09bf\u09af\u09bc\u09be", "LR": "\u09b2\u09be\u0987\u09ac\u09c7\u09b0\u09bf\u09af\u09bc\u09be", "LA": "\u09b2\u09be\u0993\u09b8", "LU": "\u09b2\u09be\u0995\u09cd\u09b8\u09c7\u09ae\u09ac\u09be\u09b0\u09cd\u0997", "LV": "\u09b2\u09be\u09a4\u09cd\u09ad\u09bf\u09af\u09bc\u09be", "LI": "\u09b2\u09bf\u099a\u09c7\u09a8\u09b8\u09cd\u099f\u09c7\u0987\u09a8", "LT": "\u09b2\u09bf\u09a5\u09c1\u09af\u09bc\u09be\u09a8\u09bf\u09af\u09bc\u09be", "LY": "\u09b2\u09bf\u09ac\u09bf\u09af\u09bc\u09be", "LB": "\u09b2\u09c7\u09ac\u09be\u09a8\u09a8", "LS": "\u09b2\u09c7\u09b8\u09cb\u09a5\u09cb", "LK": "\u09b6\u09cd\u09b0\u09c0\u09b2\u0999\u09cd\u0995\u09be", "AE": "\u09b8\u0982\u09af\u09c1\u0995\u09cd\u09a4 \u0986\u09b0\u09ac \u0986\u09ae\u09bf\u09b0\u09be\u09a4", "SB": "\u09b8\u09b2\u09cb\u09ae\u09a8 \u09a6\u09cd\u09ac\u09c0\u09aa\u09aa\u09c1\u099e\u09cd\u099c", "CY": "\u09b8\u09be\u0987\u09aa\u09cd\u09b0\u09be\u09b8", "ST": "\u09b8\u09be\u0993\u099f\u09cb\u09ae\u09be \u0993 \u09aa\u09cd\u09b0\u09bf\u09a8\u09cd\u09b8\u09bf\u09aa\u09bf", "SM": "\u09b8\u09be\u09a8 \u09ae\u09be\u09b0\u09bf\u09a8\u09cb", "WS": "\u09b8\u09be\u09ae\u09cb\u09af\u09bc\u09be", "RS": "\u09b8\u09be\u09b0\u09cd\u09ac\u09bf\u09af\u09bc\u09be", "SG": "\u09b8\u09bf\u0999\u09cd\u0997\u09be\u09aa\u09c1\u09b0", "SX": "\u09b8\u09bf\u09a8\u09cd\u099f \u09ae\u09be\u09b0\u09cd\u099f\u09c7\u09a8", "SL": "\u09b8\u09bf\u09af\u09bc\u09c7\u09b0\u09be \u09b2\u09bf\u0993\u09a8", "SY": "\u09b8\u09bf\u09b0\u09bf\u09af\u09bc\u09be", "SC": "\u09b8\u09bf\u09b8\u09bf\u09b2\u09bf", "CH": "\u09b8\u09c1\u0987\u099c\u09be\u09b0\u09b2\u09cd\u09af\u09be\u09a8\u09cd\u09a1", "SE": "\u09b8\u09c1\u0987\u09a1\u09c7\u09a8", "SD": "\u09b8\u09c1\u09a6\u09be\u09a8", "SR": "\u09b8\u09c1\u09b0\u09bf\u09a8\u09be\u09ae", "SN": "\u09b8\u09c7\u09a8\u09c7\u0997\u09be\u09b2", "KN": "\u09b8\u09c7\u09a8\u09cd\u099f \u0995\u09bf\u099f\u09b8 \u0993 \u09a8\u09c7\u09ad\u09bf\u09b8", "PM": "\u09b8\u09c7\u09a8\u09cd\u099f \u09aa\u09bf\u09af\u09bc\u09c7\u09b0 \u0993 \u09ae\u09bf\u0995\u09c1\u09af\u09bc\u09c7\u09b2\u09a8", "BL": "\u09b8\u09c7\u09a8\u09cd\u099f \u09ac\u09be\u09b0\u09a5\u09c7\u09b2\u09bf\u09ae\u09bf", "VC": "\u09b8\u09c7\u09a8\u09cd\u099f \u09ad\u09bf\u09a8\u09b8\u09c7\u09a8\u09cd\u099f \u0993 \u0997\u09cd\u09b0\u09c7\u09a8\u09be\u09a1\u09bf\u09a8\u09b8", "MF": "\u09b8\u09c7\u09a8\u09cd\u099f \u09ae\u09be\u09b0\u09cd\u099f\u09bf\u09a8", "LC": "\u09b8\u09c7\u09a8\u09cd\u099f \u09b2\u09c1\u09b8\u09bf\u09af\u09bc\u09be", "SH": "\u09b8\u09c7\u09a8\u09cd\u099f \u09b9\u09c7\u09b2\u09c7\u09a8\u09be", "SO": "\u09b8\u09cb\u09ae\u09be\u09b2\u09bf\u09af\u09bc\u09be", "SA": "\u09b8\u09cc\u09a6\u09bf \u0986\u09b0\u09ac", "ES": "\u09b8\u09cd\u09aa\u09c7\u09a8", "SJ": "\u09b8\u09cd\u09ac\u09be\u09b2\u09ac\u09be\u09b0\u09cd\u09a1 \u0993 \u099c\u09be\u09a8 \u09ae\u09c7\u09af\u09bc\u09c7\u09a8", "SK": "\u09b8\u09cd\u09b2\u09cb\u09ad\u09be\u0995\u09bf\u09af\u09bc\u09be", "SI": "\u09b8\u09cd\u09b2\u09cb\u09ad\u09be\u09a8\u09bf\u09af\u09bc\u09be", "HK": "\u09b9\u0982\u0995\u0982 \u098f\u09b8\u098f\u0986\u09b0 \u099a\u09c0\u09a8\u09be", "HN": "\u09b9\u09a8\u09cd\u09a1\u09c1\u09b0\u09be\u09b8", "HT": "\u09b9\u09be\u0987\u09a4\u09bf", "HU": "\u09b9\u09be\u0999\u09cd\u0997\u09c7\u09b0\u09bf", "HM": "\u09b9\u09be\u09b0\u09cd\u09a1 \u098f\u09ac\u0982 \u09ae\u09cd\u09af\u09be\u0995\u09a1\u09cb\u09a8\u09be\u09b2\u09cd\u09a1 \u09a6\u09cd\u09ac\u09c0\u09aa\u09aa\u09c1\u099e\u09cd\u099c"} \ No newline at end of file +{"AT": "\u0985\u09b8\u09cd\u099f\u09cd\u09b0\u09bf\u09af\u09bc\u09be", "AU": "\u0985\u09b8\u09cd\u099f\u09cd\u09b0\u09c7\u09b2\u09bf\u09af\u09bc\u09be", "AO": "\u0985\u09cd\u09af\u09be\u0999\u09cd\u0997\u09cb\u09b2\u09be", "AQ": "\u0985\u09cd\u09af\u09be\u09a8\u09cd\u099f\u09be\u09b0\u09cd\u0995\u099f\u09bf\u0995\u09be", "AG": "\u0985\u09cd\u09af\u09be\u09a8\u09cd\u099f\u09bf\u0997\u09c1\u09af\u09bc\u09be \u0993 \u09ac\u09be\u09b0\u09ac\u09c1\u09a1\u09be", "IM": "\u0986\u0987\u09b2 \u0985\u09ab \u09ae\u09cd\u09af\u09be\u09a8", "IS": "\u0986\u0987\u09b8\u09b2\u09cd\u09af\u09be\u09a8\u09cd\u09a1", "AZ": "\u0986\u099c\u09be\u09b0\u09ac\u09be\u0987\u099c\u09be\u09a8", "AD": "\u0986\u09a8\u09cd\u09a1\u09cb\u09b0\u09be", "AF": "\u0986\u09ab\u0997\u09be\u09a8\u09bf\u09b8\u09cd\u09a4\u09be\u09a8", "AS": "\u0986\u09ae\u09c7\u09b0\u09bf\u0995\u09be\u09a8 \u09b8\u09be\u09ae\u09cb\u09af\u09bc\u09be", "IE": "\u0986\u09af\u09bc\u09be\u09b0\u09b2\u09cd\u09af\u09be\u09a8\u09cd\u09a1", "AW": "\u0986\u09b0\u09c1\u09ac\u09be", "AR": "\u0986\u09b0\u09cd\u099c\u09c7\u09a8\u09cd\u099f\u09bf\u09a8\u09be", "AM": "\u0986\u09b0\u09cd\u09ae\u09c7\u09a8\u09bf\u09af\u09bc\u09be", "DZ": "\u0986\u09b2\u099c\u09c7\u09b0\u09bf\u09af\u09bc\u09be", "AL": "\u0986\u09b2\u09ac\u09c7\u09a8\u09bf\u09af\u09bc\u09be", "AX": "\u0986\u09b2\u09be\u09a8\u09cd\u09a1 \u09a6\u09cd\u09ac\u09c0\u09aa\u09aa\u09c1\u099e\u09cd\u099c", "UA": "\u0987\u0989\u0995\u09cd\u09b0\u09c7\u09a8", "EC": "\u0987\u0995\u09c1\u09af\u09bc\u09c7\u09a1\u09b0", "IL": "\u0987\u099c\u09b0\u09be\u09af\u09bc\u09c7\u09b2", "IT": "\u0987\u09a4\u09be\u09b2\u09bf", "ET": "\u0987\u09a5\u09bf\u0993\u09aa\u09bf\u09af\u09bc\u09be", "ID": "\u0987\u09a8\u09cd\u09a6\u09cb\u09a8\u09c7\u09b6\u09bf\u09af\u09bc\u09be", "YE": "\u0987\u09af\u09bc\u09c7\u09ae\u09c7\u09a8", "IQ": "\u0987\u09b0\u09be\u0995", "IR": "\u0987\u09b0\u09be\u09a8", "ER": "\u0987\u09b0\u09bf\u09a4\u09cd\u09b0\u09bf\u09af\u09bc\u09be", "SZ": "\u0987\u09b8\u0993\u09af\u09bc\u09be\u09a4\u09bf\u09a8\u09bf", "UG": "\u0989\u0997\u09be\u09a8\u09cd\u09a1\u09be", "UZ": "\u0989\u099c\u09ac\u09c7\u0995\u09bf\u09b8\u09cd\u09a4\u09be\u09a8", "KP": "\u0989\u09a4\u09cd\u09a4\u09b0 \u0995\u09cb\u09b0\u09bf\u09af\u09bc\u09be", "MK": "\u0989\u09a4\u09cd\u09a4\u09b0 \u09ae\u09cd\u09af\u09be\u09b8\u09c7\u09a1\u09cb\u09a8\u09bf\u09af\u09bc\u09be", "UY": "\u0989\u09b0\u09c1\u0997\u09c1\u09af\u09bc\u09c7", "SV": "\u098f\u09b2 \u09b8\u09be\u09b2\u09ad\u09c7\u09a6\u09b0", "EE": "\u098f\u09b8\u09cd\u09a4\u09cb\u09a8\u09bf\u09af\u09bc\u09be", "AI": "\u098f\u09cd\u09af\u09be\u0999\u09cd\u0997\u09c1\u0987\u09b2\u09be", "OM": "\u0993\u09ae\u09be\u09a8", "WF": "\u0993\u09af\u09bc\u09be\u09b2\u09bf\u09b8 \u0993 \u09ab\u09c1\u099f\u09c1\u09a8\u09be", "CG": "\u0995\u0999\u09cd\u0997\u09cb - \u09ac\u09cd\u09b0\u09be\u099c\u09be\u09ad\u09bf\u09b2", "CD": "\u0995\u0999\u09cd\u0997\u09cb-\u0995\u09bf\u09a8\u09b6\u09be\u09b8\u09be", "KM": "\u0995\u09ae\u09cb\u09b0\u09cb\u09b8", "KH": "\u0995\u09ae\u09cd\u09ac\u09cb\u09a1\u09bf\u09af\u09bc\u09be", "CO": "\u0995\u09b2\u09ae\u09cd\u09ac\u09bf\u09af\u09bc\u09be", "KZ": "\u0995\u09be\u099c\u09be\u0996\u09b8\u09cd\u09a4\u09be\u09a8", "QA": "\u0995\u09be\u09a4\u09be\u09b0", "CA": "\u0995\u09be\u09a8\u09be\u09a1\u09be", "CU": "\u0995\u09bf\u0989\u09ac\u09be", "KG": "\u0995\u09bf\u09b0\u0997\u09bf\u099c\u09bf\u09b8\u09cd\u09a4\u09be\u09a8", "KI": "\u0995\u09bf\u09b0\u09bf\u09ac\u09be\u09a4\u09bf", "CK": "\u0995\u09c1\u0995 \u09a6\u09cd\u09ac\u09c0\u09aa\u09aa\u09c1\u099e\u09cd\u099c", "KW": "\u0995\u09c1\u09af\u09bc\u09c7\u09a4", "CW": "\u0995\u09c1\u09b0\u09be\u09b8\u09be\u0993", "KE": "\u0995\u09c7\u09a8\u09bf\u09af\u09bc\u09be", "CV": "\u0995\u09c7\u09aa\u09ad\u09be\u09b0\u09cd\u09a6\u09c7", "KY": "\u0995\u09c7\u09ae\u09cd\u09af\u09be\u09a8 \u09a6\u09cd\u09ac\u09c0\u09aa\u09aa\u09c1\u099e\u09cd\u099c", "CC": "\u0995\u09cb\u0995\u09cb\u09b8 (\u0995\u09bf\u09b2\u09bf\u0982) \u09a6\u09cd\u09ac\u09c0\u09aa\u09aa\u09c1\u099e\u09cd\u099c", "CI": "\u0995\u09cb\u09a4 \u09a6\u09bf\u09ad\u09cb\u09af\u09bc\u09be\u09b0", "CR": "\u0995\u09cb\u09b8\u09cd\u099f\u09be\u09b0\u09bf\u0995\u09be", "CM": "\u0995\u09cd\u09af\u09be\u09ae\u09c7\u09b0\u09c1\u09a8", "BQ": "\u0995\u09cd\u09af\u09be\u09b0\u09bf\u09ac\u09bf\u09af\u09bc\u09be\u09a8 \u09a8\u09c7\u09a6\u09be\u09b0\u09b2\u09cd\u09af\u09be\u09a8\u09cd\u09a1\u09b8", "CX": "\u0995\u09cd\u09b0\u09bf\u09b8\u09ae\u09be\u09b8 \u09a6\u09cd\u09ac\u09c0\u09aa", "HR": "\u0995\u09cd\u09b0\u09cb\u09af\u09bc\u09c7\u09b6\u09bf\u09af\u09bc\u09be", "GM": "\u0997\u09be\u09ae\u09cd\u09ac\u09bf\u09af\u09bc\u09be", "GN": "\u0997\u09bf\u09a8\u09bf", "GW": "\u0997\u09bf\u09a8\u09bf-\u09ac\u09bf\u09b8\u09be\u0989", "GY": "\u0997\u09bf\u09af\u09bc\u09be\u09a8\u09be", "GT": "\u0997\u09c1\u09af\u09bc\u09be\u09a4\u09c7\u09ae\u09be\u09b2\u09be", "GP": "\u0997\u09c1\u09af\u09bc\u09be\u09a6\u09c7\u09b2\u09cc\u09aa", "GU": "\u0997\u09c1\u09af\u09bc\u09be\u09ae", "GG": "\u0997\u09c1\u09af\u09bc\u09be\u09b0\u09cd\u09a8\u09b8\u09bf", "GA": "\u0997\u09cd\u09af\u09be\u09ac\u09a8", "GL": "\u0997\u09cd\u09b0\u09c0\u09a8\u09b2\u09cd\u09af\u09be\u09a8\u09cd\u09a1", "GR": "\u0997\u09cd\u09b0\u09c0\u09b8", "GD": "\u0997\u09cd\u09b0\u09c7\u09a8\u09be\u09a1\u09be", "GH": "\u0998\u09be\u09a8\u09be", "TD": "\u099a\u09be\u09a6", "CL": "\u099a\u09bf\u09b2\u09bf", "CN": "\u099a\u09c0\u09a8", "CZ": "\u099a\u09c7\u099a\u09bf\u09af\u09bc\u09be", "GE": "\u099c\u09b0\u09cd\u099c\u09bf\u09af\u09bc\u09be", "JO": "\u099c\u09b0\u09cd\u09a1\u09a8", "JP": "\u099c\u09be\u09aa\u09be\u09a8", "JM": "\u099c\u09be\u09ae\u09be\u0987\u0995\u09be", "ZM": "\u099c\u09be\u09ae\u09cd\u09ac\u09bf\u09af\u09bc\u09be", "DE": "\u099c\u09be\u09b0\u09cd\u09ae\u09be\u09a8\u09bf", "DJ": "\u099c\u09bf\u09ac\u09c1\u09a4\u09bf", "GI": "\u099c\u09bf\u09ac\u09cd\u09b0\u09be\u09b2\u09cd\u099f\u09be\u09b0", "ZW": "\u099c\u09bf\u09ae\u09cd\u09ac\u09be\u09ac\u09cb\u09af\u09bc\u09c7", "TK": "\u099f\u09cb\u0995\u09c7\u09b2\u09be\u0989", "TG": "\u099f\u09cb\u0997\u09cb", "TO": "\u099f\u09cb\u0999\u09cd\u0997\u09be", "DK": "\u09a1\u09c7\u09a8\u09ae\u09be\u09b0\u09cd\u0995", "DM": "\u09a1\u09cb\u09ae\u09bf\u09a8\u09bf\u0995\u09be", "DO": "\u09a1\u09cb\u09ae\u09c7\u09a8\u09bf\u0995\u09be\u09a8 \u09aa\u09cd\u09b0\u099c\u09be\u09a4\u09a8\u09cd\u09a4\u09cd\u09b0", "TW": "\u09a4\u09be\u0987\u0993\u09af\u09bc\u09be\u09a8", "TJ": "\u09a4\u09be\u099c\u09bf\u0995\u09bf\u09b8\u09cd\u09a4\u09be\u09a8", "TZ": "\u09a4\u09be\u099e\u09cd\u099c\u09be\u09a8\u09bf\u09af\u09bc\u09be", "TN": "\u09a4\u09bf\u0989\u09a8\u09bf\u09b8\u09bf\u09af\u09bc\u09be", "TL": "\u09a4\u09bf\u09ae\u09c1\u09b0-\u09b2\u09c7\u09b8\u09cd\u09a4\u09c7", "TR": "\u09a4\u09c1\u09b0\u09b8\u09cd\u0995", "TM": "\u09a4\u09c1\u09b0\u09cd\u0995\u09ae\u09c7\u09a8\u09bf\u09b8\u09cd\u09a4\u09be\u09a8", "TC": "\u09a4\u09c1\u09b0\u09cd\u0995\u09b8 \u0993 \u0995\u09be\u0987\u0995\u09cb\u09b8 \u09a6\u09cd\u09ac\u09c0\u09aa\u09aa\u09c1\u099e\u09cd\u099c", "TT": "\u09a4\u09cd\u09b0\u09bf\u09a8\u09bf\u09a8\u09be\u09a6 \u0993 \u099f\u09cb\u09ac\u09cd\u09af\u09be\u0997\u09cb", "TH": "\u09a5\u09be\u0987\u09b2\u09cd\u09af\u09be\u09a8\u09cd\u09a1", "ZA": "\u09a6\u0995\u09cd\u09b7\u09bf\u09a3 \u0986\u09ab\u09cd\u09b0\u09bf\u0995\u09be", "KR": "\u09a6\u0995\u09cd\u09b7\u09bf\u09a3 \u0995\u09cb\u09b0\u09bf\u09af\u09bc\u09be", "GS": "\u09a6\u0995\u09cd\u09b7\u09bf\u09a3 \u099c\u09b0\u09cd\u099c\u09bf\u09af\u09bc\u09be \u0993 \u09a6\u0995\u09cd\u09b7\u09bf\u09a3 \u09b8\u09cd\u09af\u09be\u09a8\u09cd\u09a1\u0989\u0987\u099a \u09a6\u09cd\u09ac\u09c0\u09aa\u09aa\u09c1\u099e\u09cd\u099c", "SS": "\u09a6\u0995\u09cd\u09b7\u09bf\u09a3 \u09b8\u09c1\u09a6\u09be\u09a8", "NO": "\u09a8\u09b0\u0993\u09af\u09bc\u09c7", "NF": "\u09a8\u09b0\u09ab\u09cb\u0995 \u09a6\u09cd\u09ac\u09c0\u09aa", "NE": "\u09a8\u09be\u0987\u099c\u09be\u09b0", "NG": "\u09a8\u09be\u0987\u099c\u09c7\u09b0\u09bf\u09af\u09bc\u09be", "NR": "\u09a8\u09be\u0989\u09b0\u09c1", "NA": "\u09a8\u09be\u09ae\u09bf\u09ac\u09bf\u09af\u09bc\u09be", "NC": "\u09a8\u09bf\u0989 \u0995\u09cd\u09af\u09be\u09b2\u09c7\u09a1\u09cb\u09a8\u09bf\u09af\u09bc\u09be", "NZ": "\u09a8\u09bf\u0989\u099c\u09bf\u09b2\u09cd\u09af\u09be\u09a8\u09cd\u09a1", "NU": "\u09a8\u09bf\u0989\u09af\u09bc\u09c7", "NI": "\u09a8\u09bf\u0995\u09be\u09b0\u09be\u0997\u09c1\u09af\u09bc\u09be", "GQ": "\u09a8\u09bf\u09b0\u0995\u09cd\u09b7\u09c0\u09af\u09bc \u0997\u09bf\u09a8\u09bf", "NL": "\u09a8\u09c7\u09a6\u09be\u09b0\u09b2\u09cd\u09af\u09be\u09a8\u09cd\u09a1\u09b8", "NP": "\u09a8\u09c7\u09aa\u09be\u09b2", "PT": "\u09aa\u09b0\u09cd\u09a4\u09c1\u0997\u09be\u09b2", "EH": "\u09aa\u09b6\u09cd\u099a\u09bf\u09ae \u09b8\u09be\u09b9\u09be\u09b0\u09be", "PK": "\u09aa\u09be\u0995\u09bf\u09b8\u09cd\u09a4\u09be\u09a8", "PA": "\u09aa\u09be\u09a8\u09be\u09ae\u09be", "PG": "\u09aa\u09be\u09aa\u09c1\u09af\u09bc\u09be \u09a8\u09bf\u0989 \u0997\u09bf\u09a8\u09bf", "PW": "\u09aa\u09be\u09b2\u09be\u0989", "PN": "\u09aa\u09bf\u099f\u0995\u09c7\u09af\u09bc\u09be\u09b0\u09cd\u09a8 \u09a6\u09cd\u09ac\u09c0\u09aa\u09aa\u09c1\u099e\u09cd\u099c", "PR": "\u09aa\u09c1\u09af\u09bc\u09c7\u09b0\u09cd\u09a4\u09cb \u09b0\u09bf\u0995\u09cb", "PE": "\u09aa\u09c7\u09b0\u09c1", "PL": "\u09aa\u09cb\u09b2\u09cd\u09af\u09be\u09a8\u09cd\u09a1", "PY": "\u09aa\u09cd\u09af\u09be\u09b0\u09be\u0997\u09c1\u09af\u09bc\u09c7", "FK": "\u09ab\u0995\u09b2\u09cd\u09af\u09be\u09a8\u09cd\u09a1 \u09a6\u09cd\u09ac\u09c0\u09aa\u09aa\u09c1\u099e\u09cd\u099c", "GF": "\u09ab\u09b0\u09be\u09b8\u09c0 \u0997\u09be\u09af\u09bc\u09be\u09a8\u09be", "TF": "\u09ab\u09b0\u09be\u09b8\u09c0 \u09a6\u0995\u09cd\u09b7\u09bf\u09a3\u09be\u099e\u09cd\u099a\u09b2", "PF": "\u09ab\u09b0\u09be\u09b8\u09c0 \u09aa\u09b2\u09bf\u09a8\u09c7\u09b6\u09bf\u09af\u09bc\u09be", "FJ": "\u09ab\u09bf\u099c\u09bf", "FI": "\u09ab\u09bf\u09a8\u09b2\u09cd\u09af\u09be\u09a8\u09cd\u09a1", "PH": "\u09ab\u09bf\u09b2\u09bf\u09aa\u09be\u0987\u09a8", "FO": "\u09ab\u09cd\u09af\u09be\u09b0\u0993 \u09a6\u09cd\u09ac\u09c0\u09aa\u09aa\u09c1\u099e\u09cd\u099c", "FR": "\u09ab\u09cd\u09b0\u09be\u09a8\u09cd\u09b8", "BW": "\u09ac\u09a4\u09b8\u09cb\u09af\u09bc\u09be\u09a8\u09be", "BO": "\u09ac\u09b2\u09bf\u09ad\u09bf\u09af\u09bc\u09be", "BA": "\u09ac\u09b8\u09a8\u09bf\u09af\u09bc\u09be \u0993 \u09b9\u09be\u09b0\u09cd\u099c\u09c7\u0997\u09cb\u09ad\u09bf\u09a8\u09be", "BD": "\u09ac\u09be\u0982\u09b2\u09be\u09a6\u09c7\u09b6", "BB": "\u09ac\u09be\u09b0\u09ac\u09be\u09a6\u09cb\u09b8", "BM": "\u09ac\u09be\u09b0\u09ae\u09c1\u09a1\u09be", "BH": "\u09ac\u09be\u09b9\u09b0\u09be\u0987\u09a8", "BS": "\u09ac\u09be\u09b9\u09be\u09ae\u09be \u09a6\u09cd\u09ac\u09c0\u09aa\u09aa\u09c1\u099e\u09cd\u099c", "BF": "\u09ac\u09c1\u09b0\u0995\u09bf\u09a8\u09be \u09ab\u09be\u09b8\u09cb", "BI": "\u09ac\u09c1\u09b0\u09c1\u09a8\u09cd\u09a1\u09bf", "BG": "\u09ac\u09c1\u09b2\u0997\u09c7\u09b0\u09bf\u09af\u09bc\u09be", "BJ": "\u09ac\u09c7\u09a8\u09bf\u09a8", "BE": "\u09ac\u09c7\u09b2\u099c\u09bf\u09af\u09bc\u09be\u09ae", "BY": "\u09ac\u09c7\u09b2\u09be\u09b0\u09c1\u09b6", "BZ": "\u09ac\u09c7\u09b2\u09bf\u099c", "BV": "\u09ac\u09cb\u09ad\u09c7\u099f \u09a6\u09cd\u09ac\u09c0\u09aa", "BR": "\u09ac\u09cd\u09b0\u09be\u099c\u09bf\u09b2", "IO": "\u09ac\u09cd\u09b0\u09bf\u099f\u09bf\u09b6 \u09ad\u09be\u09b0\u09a4 \u09ae\u09b9\u09be\u09b8\u09be\u0997\u09b0\u09c0\u09af\u09bc \u0985\u099e\u09cd\u099a\u09b2", "VG": "\u09ac\u09cd\u09b0\u09bf\u099f\u09bf\u09b6 \u09ad\u09be\u09b0\u09cd\u099c\u09bf\u09a8 \u09a6\u09cd\u09ac\u09c0\u09aa\u09aa\u09c1\u099e\u09cd\u099c", "BN": "\u09ac\u09cd\u09b0\u09c1\u09a8\u09c7\u0987", "VU": "\u09ad\u09be\u09a8\u09c1\u09af\u09bc\u09be\u099f\u09c1", "IN": "\u09ad\u09be\u09b0\u09a4", "VN": "\u09ad\u09bf\u09af\u09bc\u09c7\u09a4\u09a8\u09be\u09ae", "BT": "\u09ad\u09c1\u099f\u09be\u09a8", "VE": "\u09ad\u09c7\u09a8\u09c7\u099c\u09c1\u09af\u09bc\u09c7\u09b2\u09be", "VA": "\u09ad\u09cd\u09af\u09be\u099f\u09bf\u0995\u09be\u09a8 \u09b8\u09bf\u099f\u09bf", "MN": "\u09ae\u0999\u09cd\u0997\u09cb\u09b2\u09bf\u09af\u09bc\u09be", "CF": "\u09ae\u09a7\u09cd\u09af \u0986\u09ab\u09cd\u09b0\u09bf\u0995\u09be\u09b0 \u09aa\u09cd\u09b0\u099c\u09be\u09a4\u09a8\u09cd\u09a4\u09cd\u09b0", "MS": "\u09ae\u09a8\u09cd\u099f\u09b8\u09c7\u09b0\u09be\u099f", "ME": "\u09ae\u09a8\u09cd\u099f\u09bf\u09a8\u09bf\u0997\u09cd\u09b0\u09cb", "MR": "\u09ae\u09b0\u09bf\u09a4\u09be\u09a8\u09bf\u09af\u09bc\u09be", "MU": "\u09ae\u09b0\u09bf\u09b6\u09be\u09b8", "MD": "\u09ae\u09b2\u09a1\u09cb\u09ad\u09be", "MG": "\u09ae\u09be\u09a6\u09be\u0997\u09be\u09b8\u09cd\u0995\u09be\u09b0", "MM": "\u09ae\u09be\u09af\u09bc\u09be\u09a8\u09ae\u09be\u09b0 (\u09ac\u09be\u09b0\u09cd\u09ae\u09be)", "YT": "\u09ae\u09be\u09af\u09bc\u09cb\u09a4\u09cd\u09a4\u09c7", "US": "\u09ae\u09be\u09b0\u09cd\u0995\u09bf\u09a8 \u09af\u09c1\u0995\u09cd\u09a4\u09b0\u09be\u09b7\u09cd\u099f\u09cd\u09b0", "VI": "\u09ae\u09be\u09b0\u09cd\u0995\u09bf\u09a8 \u09af\u09c1\u0995\u09cd\u09a4\u09b0\u09be\u09b7\u09cd\u099f\u09cd\u09b0\u09c7\u09b0 \u09ad\u09be\u09b0\u09cd\u099c\u09bf\u09a8 \u09a6\u09cd\u09ac\u09c0\u09aa\u09aa\u09c1\u099e\u09cd\u099c", "MQ": "\u09ae\u09be\u09b0\u09cd\u099f\u09bf\u09a8\u09bf\u0995", "MV": "\u09ae\u09be\u09b2\u09a6\u09cd\u09ac\u09c0\u09aa", "MY": "\u09ae\u09be\u09b2\u09af\u09bc\u09c7\u09b6\u09bf\u09af\u09bc\u09be", "MW": "\u09ae\u09be\u09b2\u09be\u0989\u0987", "ML": "\u09ae\u09be\u09b2\u09bf", "MT": "\u09ae\u09be\u09b2\u09cd\u099f\u09be", "EG": "\u09ae\u09bf\u09b6\u09b0", "MX": "\u09ae\u09c7\u0995\u09cd\u09b8\u09bf\u0995\u09cb", "MZ": "\u09ae\u09cb\u099c\u09be\u09ae\u09cd\u09ac\u09bf\u0995", "MC": "\u09ae\u09cb\u09a8\u09be\u0995\u09cb", "MA": "\u09ae\u09cb\u09b0\u0995\u09cd\u0995\u09cb", "MO": "\u09ae\u09cd\u09af\u09be\u0995\u09be\u0993 \u098f\u09b8\u098f\u0986\u09b0 \u099a\u09c0\u09a8\u09be", "GB": "\u09af\u09c1\u0995\u09cd\u09a4\u09b0\u09be\u099c\u09cd\u09af", "RU": "\u09b0\u09be\u09b6\u09bf\u09af\u09bc\u09be", "RE": "\u09b0\u09bf\u0987\u0989\u09a8\u09bf\u09af\u09bc\u09a8", "RW": "\u09b0\u09c1\u09af\u09bc\u09be\u09a8\u09cd\u09a1\u09be", "RO": "\u09b0\u09cb\u09ae\u09be\u09a8\u09bf\u09af\u09bc\u09be", "LR": "\u09b2\u09be\u0987\u09ac\u09c7\u09b0\u09bf\u09af\u09bc\u09be", "LA": "\u09b2\u09be\u0993\u09b8", "LU": "\u09b2\u09be\u0995\u09cd\u09b8\u09c7\u09ae\u09ac\u09be\u09b0\u09cd\u0997", "LV": "\u09b2\u09be\u09a4\u09cd\u09ad\u09bf\u09af\u09bc\u09be", "LI": "\u09b2\u09bf\u099a\u09c7\u09a8\u09b8\u09cd\u099f\u09c7\u0987\u09a8", "LT": "\u09b2\u09bf\u09a5\u09c1\u09af\u09bc\u09be\u09a8\u09bf\u09af\u09bc\u09be", "LY": "\u09b2\u09bf\u09ac\u09bf\u09af\u09bc\u09be", "LB": "\u09b2\u09c7\u09ac\u09be\u09a8\u09a8", "LS": "\u09b2\u09c7\u09b8\u09cb\u09a5\u09cb", "LK": "\u09b6\u09cd\u09b0\u09c0\u09b2\u0999\u09cd\u0995\u09be", "AE": "\u09b8\u0982\u09af\u09c1\u0995\u09cd\u09a4 \u0986\u09b0\u09ac \u0986\u09ae\u09bf\u09b0\u09be\u09a4", "SB": "\u09b8\u09b2\u09cb\u09ae\u09a8 \u09a6\u09cd\u09ac\u09c0\u09aa\u09aa\u09c1\u099e\u09cd\u099c", "CY": "\u09b8\u09be\u0987\u09aa\u09cd\u09b0\u09be\u09b8", "ST": "\u09b8\u09be\u0993\u099f\u09cb\u09ae\u09be \u0993 \u09aa\u09cd\u09b0\u09bf\u09a8\u09cd\u09b8\u09bf\u09aa\u09bf", "SM": "\u09b8\u09be\u09a8 \u09ae\u09be\u09b0\u09bf\u09a8\u09cb", "WS": "\u09b8\u09be\u09ae\u09cb\u09af\u09bc\u09be", "RS": "\u09b8\u09be\u09b0\u09cd\u09ac\u09bf\u09af\u09bc\u09be", "SG": "\u09b8\u09bf\u0999\u09cd\u0997\u09be\u09aa\u09c1\u09b0", "SX": "\u09b8\u09bf\u09a8\u09cd\u099f \u09ae\u09be\u09b0\u09cd\u099f\u09c7\u09a8", "SL": "\u09b8\u09bf\u09af\u09bc\u09c7\u09b0\u09be \u09b2\u09bf\u0993\u09a8", "SY": "\u09b8\u09bf\u09b0\u09bf\u09af\u09bc\u09be", "SC": "\u09b8\u09bf\u09b8\u09bf\u09b2\u09bf", "CH": "\u09b8\u09c1\u0987\u099c\u09be\u09b0\u09b2\u09cd\u09af\u09be\u09a8\u09cd\u09a1", "SE": "\u09b8\u09c1\u0987\u09a1\u09c7\u09a8", "SD": "\u09b8\u09c1\u09a6\u09be\u09a8", "SR": "\u09b8\u09c1\u09b0\u09bf\u09a8\u09be\u09ae", "SN": "\u09b8\u09c7\u09a8\u09c7\u0997\u09be\u09b2", "KN": "\u09b8\u09c7\u09a8\u09cd\u099f \u0995\u09bf\u099f\u09b8 \u0993 \u09a8\u09c7\u09ad\u09bf\u09b8", "PM": "\u09b8\u09c7\u09a8\u09cd\u099f \u09aa\u09bf\u09af\u09bc\u09c7\u09b0 \u0993 \u09ae\u09bf\u0995\u09c1\u09af\u09bc\u09c7\u09b2\u09a8", "BL": "\u09b8\u09c7\u09a8\u09cd\u099f \u09ac\u09be\u09b0\u09a5\u09c7\u09b2\u09bf\u09ae\u09bf", "VC": "\u09b8\u09c7\u09a8\u09cd\u099f \u09ad\u09bf\u09a8\u09b8\u09c7\u09a8\u09cd\u099f \u0993 \u0997\u09cd\u09b0\u09c7\u09a8\u09be\u09a1\u09bf\u09a8\u09b8", "MF": "\u09b8\u09c7\u09a8\u09cd\u099f \u09ae\u09be\u09b0\u09cd\u099f\u09bf\u09a8", "LC": "\u09b8\u09c7\u09a8\u09cd\u099f \u09b2\u09c1\u09b8\u09bf\u09af\u09bc\u09be", "SH": "\u09b8\u09c7\u09a8\u09cd\u099f \u09b9\u09c7\u09b2\u09c7\u09a8\u09be", "SO": "\u09b8\u09cb\u09ae\u09be\u09b2\u09bf\u09af\u09bc\u09be", "SA": "\u09b8\u09cc\u09a6\u09bf \u0986\u09b0\u09ac", "ES": "\u09b8\u09cd\u09aa\u09c7\u09a8", "SJ": "\u09b8\u09cd\u09ac\u09be\u09b2\u09ac\u09be\u09b0\u09cd\u09a1 \u0993 \u099c\u09be\u09a8 \u09ae\u09c7\u09af\u09bc\u09c7\u09a8", "SK": "\u09b8\u09cd\u09b2\u09cb\u09ad\u09be\u0995\u09bf\u09af\u09bc\u09be", "SI": "\u09b8\u09cd\u09b2\u09cb\u09ad\u09be\u09a8\u09bf\u09af\u09bc\u09be", "HK": "\u09b9\u0982\u0995\u0982 \u098f\u09b8\u098f\u0986\u09b0 \u099a\u09c0\u09a8\u09be", "HN": "\u09b9\u09a8\u09cd\u09a1\u09c1\u09b0\u09be\u09b8", "HT": "\u09b9\u09be\u0987\u09a4\u09bf", "HU": "\u09b9\u09be\u0999\u09cd\u0997\u09c7\u09b0\u09bf", "HM": "\u09b9\u09be\u09b0\u09cd\u09a1 \u098f\u09ac\u0982 \u09ae\u09cd\u09af\u09be\u0995\u09a1\u09cb\u09a8\u09be\u09b2\u09cd\u09a1 \u09a6\u09cd\u09ac\u09c0\u09aa\u09aa\u09c1\u099e\u09cd\u099c"} \ No newline at end of file diff --git a/desktop/src/onionshare/resources/countries/de.json b/desktop/src/onionshare/resources/countries/de.json index a9233848..33f21aed 100644 --- a/desktop/src/onionshare/resources/countries/de.json +++ b/desktop/src/onionshare/resources/countries/de.json @@ -1 +1 @@ -{"AF": "Afghanistan", "EG": "\u00c4gypten", "AX": "\u00c5landinseln", "AL": "Albanien", "DZ": "Algerien", "AS": "Amerikanisch-Samoa", "VI": "Amerikanische Jungferninseln", "UM": "Amerikanische \u00dcberseeinseln", "AD": "Andorra", "AO": "Angola", "AI": "Anguilla", "AQ": "Antarktis", "AG": "Antigua und Barbuda", "GQ": "\u00c4quatorialguinea", "AR": "Argentinien", "AM": "Armenien", "AW": "Aruba", "AZ": "Aserbaidschan", "ET": "\u00c4thiopien", "AU": "Australien", "BS": "Bahamas", "BH": "Bahrain", "BD": "Bangladesch", "BB": "Barbados", "BY": "Belarus", "BE": "Belgien", "BZ": "Belize", "BJ": "Benin", "BM": "Bermuda", "BT": "Bhutan", "BO": "Bolivien", "BQ": "Bonaire, Sint Eustatius und Saba", "BA": "Bosnien und Herzegowina", "BW": "Botsuana", "BV": "Bouvetinsel", "BR": "Brasilien", "VG": "Britische Jungferninseln", "IO": "Britisches Territorium im Indischen Ozean", "BN": "Brunei Darussalam", "BG": "Bulgarien", "BF": "Burkina Faso", "BI": "Burundi", "CV": "Cabo Verde", "CL": "Chile", "CN": "China", "CK": "Cookinseln", "CR": "Costa Rica", "CI": "C\u00f4te d\u2019Ivoire", "CW": "Cura\u00e7ao", "DK": "D\u00e4nemark", "DE": "Deutschland", "DM": "Dominica", "DO": "Dominikanische Republik", "DJ": "Dschibuti", "EC": "Ecuador", "SV": "El Salvador", "ER": "Eritrea", "EE": "Estland", "SZ": "Eswatini", "FK": "Falklandinseln", "FO": "F\u00e4r\u00f6er", "FJ": "Fidschi", "FI": "Finnland", "FR": "Frankreich", "GF": "Franz\u00f6sisch-Guayana", "PF": "Franz\u00f6sisch-Polynesien", "TF": "Franz\u00f6sische S\u00fcd- und Antarktisgebiete", "GA": "Gabun", "GM": "Gambia", "GE": "Georgien", "GH": "Ghana", "GI": "Gibraltar", "GD": "Grenada", "GR": "Griechenland", "GL": "Gr\u00f6nland", "GP": "Guadeloupe", "GU": "Guam", "GT": "Guatemala", "GG": "Guernsey", "GN": "Guinea", "GW": "Guinea-Bissau", "GY": "Guyana", "HT": "Haiti", "HM": "Heard und McDonaldinseln", "HN": "Honduras", "IN": "Indien", "ID": "Indonesien", "IQ": "Irak", "IR": "Iran", "IE": "Irland", "IS": "Island", "IM": "Isle of Man", "IL": "Israel", "IT": "Italien", "JM": "Jamaika", "JP": "Japan", "YE": "Jemen", "JE": "Jersey", "JO": "Jordanien", "KY": "Kaimaninseln", "KH": "Kambodscha", "CM": "Kamerun", "CA": "Kanada", "KZ": "Kasachstan", "QA": "Katar", "KE": "Kenia", "KG": "Kirgisistan", "KI": "Kiribati", "CC": "Kokosinseln", "CO": "Kolumbien", "KM": "Komoren", "CG": "Kongo-Brazzaville", "CD": "Kongo-Kinshasa", "HR": "Kroatien", "CU": "Kuba", "KW": "Kuwait", "LA": "Laos", "LS": "Lesotho", "LV": "Lettland", "LB": "Libanon", "LR": "Liberia", "LY": "Libyen", "LI": "Liechtenstein", "LT": "Litauen", "LU": "Luxemburg", "MG": "Madagaskar", "MW": "Malawi", "MY": "Malaysia", "MV": "Malediven", "ML": "Mali", "MT": "Malta", "MA": "Marokko", "MH": "Marshallinseln", "MQ": "Martinique", "MR": "Mauretanien", "MU": "Mauritius", "YT": "Mayotte", "MX": "Mexiko", "FM": "Mikronesien", "MC": "Monaco", "MN": "Mongolei", "ME": "Montenegro", "MS": "Montserrat", "MZ": "Mosambik", "MM": "Myanmar", "NA": "Namibia", "NR": "Nauru", "NP": "Nepal", "NC": "Neukaledonien", "NZ": "Neuseeland", "NI": "Nicaragua", "NL": "Niederlande", "NE": "Niger", "NG": "Nigeria", "NU": "Niue", "KP": "Nordkorea", "MP": "N\u00f6rdliche Marianen", "MK": "Nordmazedonien", "NF": "Norfolkinsel", "NO": "Norwegen", "OM": "Oman", "AT": "\u00d6sterreich", "PK": "Pakistan", "PS": "Pal\u00e4stinensische Autonomiegebiete", "PW": "Palau", "PA": "Panama", "PG": "Papua-Neuguinea", "PY": "Paraguay", "PE": "Peru", "PH": "Philippinen", "PN": "Pitcairninseln", "PL": "Polen", "PT": "Portugal", "PR": "Puerto Rico", "MD": "Republik Moldau", "RE": "R\u00e9union", "RW": "Ruanda", "RO": "Rum\u00e4nien", "RU": "Russland", "SB": "Salomonen", "ZM": "Sambia", "WS": "Samoa", "SM": "San Marino", "ST": "S\u00e3o Tom\u00e9 und Pr\u00edncipe", "SA": "Saudi-Arabien", "SE": "Schweden", "CH": "Schweiz", "SN": "Senegal", "RS": "Serbien", "SC": "Seychellen", "SL": "Sierra Leone", "ZW": "Simbabwe", "SG": "Singapur", "SX": "Sint Maarten", "SK": "Slowakei", "SI": "Slowenien", "SO": "Somalia", "HK": "Sonderverwaltungsregion Hongkong", "MO": "Sonderverwaltungsregion Macau", "ES": "Spanien", "SJ": "Spitzbergen und Jan Mayen", "LK": "Sri Lanka", "BL": "St. Barth\u00e9lemy", "SH": "St. Helena", "KN": "St. Kitts und Nevis", "LC": "St. Lucia", "MF": "St. Martin", "PM": "St. Pierre und Miquelon", "VC": "St. Vincent und die Grenadinen", "ZA": "S\u00fcdafrika", "SD": "Sudan", "GS": "S\u00fcdgeorgien und die S\u00fcdlichen Sandwichinseln", "KR": "S\u00fcdkorea", "SS": "S\u00fcdsudan", "SR": "Suriname", "SY": "Syrien", "TJ": "Tadschikistan", "TW": "Taiwan", "TZ": "Tansania", "TH": "Thailand", "TL": "Timor-Leste", "TG": "Togo", "TK": "Tokelau", "TO": "Tonga", "TT": "Trinidad und Tobago", "TD": "Tschad", "CZ": "Tschechien", "TN": "Tunesien", "TR": "T\u00fcrkei", "TM": "Turkmenistan", "TC": "Turks- und Caicosinseln", "TV": "Tuvalu", "UG": "Uganda", "UA": "Ukraine", "HU": "Ungarn", "UY": "Uruguay", "UZ": "Usbekistan", "VU": "Vanuatu", "VA": "Vatikanstadt", "VE": "Venezuela", "AE": "Vereinigte Arabische Emirate", "US": "Vereinigte Staaten", "GB": "Vereinigtes K\u00f6nigreich", "VN": "Vietnam", "WF": "Wallis und Futuna", "CX": "Weihnachtsinsel", "EH": "Westsahara", "CF": "Zentralafrikanische Republik", "CY": "Zypern"} \ No newline at end of file +{"AF": "Afghanistan", "EG": "\u00c4gypten", "AX": "\u00c5landinseln", "AL": "Albanien", "DZ": "Algerien", "AS": "Amerikanisch-Samoa", "VI": "Amerikanische Jungferninseln", "AD": "Andorra", "AO": "Angola", "AI": "Anguilla", "AQ": "Antarktis", "AG": "Antigua und Barbuda", "GQ": "\u00c4quatorialguinea", "AR": "Argentinien", "AM": "Armenien", "AW": "Aruba", "AZ": "Aserbaidschan", "ET": "\u00c4thiopien", "AU": "Australien", "BS": "Bahamas", "BH": "Bahrain", "BD": "Bangladesch", "BB": "Barbados", "BY": "Belarus", "BE": "Belgien", "BZ": "Belize", "BJ": "Benin", "BM": "Bermuda", "BT": "Bhutan", "BO": "Bolivien", "BQ": "Bonaire, Sint Eustatius und Saba", "BA": "Bosnien und Herzegowina", "BW": "Botsuana", "BV": "Bouvetinsel", "BR": "Brasilien", "VG": "Britische Jungferninseln", "IO": "Britisches Territorium im Indischen Ozean", "BN": "Brunei Darussalam", "BG": "Bulgarien", "BF": "Burkina Faso", "BI": "Burundi", "CV": "Cabo Verde", "CL": "Chile", "CN": "China", "CK": "Cookinseln", "CR": "Costa Rica", "CI": "C\u00f4te d\u2019Ivoire", "CW": "Cura\u00e7ao", "DK": "D\u00e4nemark", "DE": "Deutschland", "DM": "Dominica", "DO": "Dominikanische Republik", "DJ": "Dschibuti", "EC": "Ecuador", "SV": "El Salvador", "ER": "Eritrea", "EE": "Estland", "SZ": "Eswatini", "FK": "Falklandinseln", "FO": "F\u00e4r\u00f6er", "FJ": "Fidschi", "FI": "Finnland", "FR": "Frankreich", "GF": "Franz\u00f6sisch-Guayana", "PF": "Franz\u00f6sisch-Polynesien", "TF": "Franz\u00f6sische S\u00fcd- und Antarktisgebiete", "GA": "Gabun", "GM": "Gambia", "GE": "Georgien", "GH": "Ghana", "GI": "Gibraltar", "GD": "Grenada", "GR": "Griechenland", "GL": "Gr\u00f6nland", "GP": "Guadeloupe", "GU": "Guam", "GT": "Guatemala", "GG": "Guernsey", "GN": "Guinea", "GW": "Guinea-Bissau", "GY": "Guyana", "HT": "Haiti", "HM": "Heard und McDonaldinseln", "HN": "Honduras", "IN": "Indien", "ID": "Indonesien", "IQ": "Irak", "IR": "Iran", "IE": "Irland", "IS": "Island", "IM": "Isle of Man", "IL": "Israel", "IT": "Italien", "JM": "Jamaika", "JP": "Japan", "YE": "Jemen", "JO": "Jordanien", "KY": "Kaimaninseln", "KH": "Kambodscha", "CM": "Kamerun", "CA": "Kanada", "KZ": "Kasachstan", "QA": "Katar", "KE": "Kenia", "KG": "Kirgisistan", "KI": "Kiribati", "CC": "Kokosinseln", "CO": "Kolumbien", "KM": "Komoren", "CG": "Kongo-Brazzaville", "CD": "Kongo-Kinshasa", "HR": "Kroatien", "CU": "Kuba", "KW": "Kuwait", "LA": "Laos", "LS": "Lesotho", "LV": "Lettland", "LB": "Libanon", "LR": "Liberia", "LY": "Libyen", "LI": "Liechtenstein", "LT": "Litauen", "LU": "Luxemburg", "MG": "Madagaskar", "MW": "Malawi", "MY": "Malaysia", "MV": "Malediven", "ML": "Mali", "MT": "Malta", "MA": "Marokko", "MQ": "Martinique", "MR": "Mauretanien", "MU": "Mauritius", "YT": "Mayotte", "MX": "Mexiko", "MC": "Monaco", "MN": "Mongolei", "ME": "Montenegro", "MS": "Montserrat", "MZ": "Mosambik", "MM": "Myanmar", "NA": "Namibia", "NR": "Nauru", "NP": "Nepal", "NC": "Neukaledonien", "NZ": "Neuseeland", "NI": "Nicaragua", "NL": "Niederlande", "NE": "Niger", "NG": "Nigeria", "NU": "Niue", "KP": "Nordkorea", "MK": "Nordmazedonien", "NF": "Norfolkinsel", "NO": "Norwegen", "OM": "Oman", "AT": "\u00d6sterreich", "PK": "Pakistan", "PW": "Palau", "PA": "Panama", "PG": "Papua-Neuguinea", "PY": "Paraguay", "PE": "Peru", "PH": "Philippinen", "PN": "Pitcairninseln", "PL": "Polen", "PT": "Portugal", "PR": "Puerto Rico", "MD": "Republik Moldau", "RE": "R\u00e9union", "RW": "Ruanda", "RO": "Rum\u00e4nien", "RU": "Russland", "SB": "Salomonen", "ZM": "Sambia", "WS": "Samoa", "SM": "San Marino", "ST": "S\u00e3o Tom\u00e9 und Pr\u00edncipe", "SA": "Saudi-Arabien", "SE": "Schweden", "CH": "Schweiz", "SN": "Senegal", "RS": "Serbien", "SC": "Seychellen", "SL": "Sierra Leone", "ZW": "Simbabwe", "SG": "Singapur", "SX": "Sint Maarten", "SK": "Slowakei", "SI": "Slowenien", "SO": "Somalia", "HK": "Sonderverwaltungsregion Hongkong", "MO": "Sonderverwaltungsregion Macau", "ES": "Spanien", "SJ": "Spitzbergen und Jan Mayen", "LK": "Sri Lanka", "BL": "St. Barth\u00e9lemy", "SH": "St. Helena", "KN": "St. Kitts und Nevis", "LC": "St. Lucia", "MF": "St. Martin", "PM": "St. Pierre und Miquelon", "VC": "St. Vincent und die Grenadinen", "ZA": "S\u00fcdafrika", "SD": "Sudan", "GS": "S\u00fcdgeorgien und die S\u00fcdlichen Sandwichinseln", "KR": "S\u00fcdkorea", "SS": "S\u00fcdsudan", "SR": "Suriname", "SY": "Syrien", "TJ": "Tadschikistan", "TW": "Taiwan", "TZ": "Tansania", "TH": "Thailand", "TL": "Timor-Leste", "TG": "Togo", "TK": "Tokelau", "TO": "Tonga", "TT": "Trinidad und Tobago", "TD": "Tschad", "CZ": "Tschechien", "TN": "Tunesien", "TR": "T\u00fcrkei", "TM": "Turkmenistan", "TC": "Turks- und Caicosinseln", "UG": "Uganda", "UA": "Ukraine", "HU": "Ungarn", "UY": "Uruguay", "UZ": "Usbekistan", "VU": "Vanuatu", "VA": "Vatikanstadt", "VE": "Venezuela", "AE": "Vereinigte Arabische Emirate", "US": "Vereinigte Staaten", "GB": "Vereinigtes K\u00f6nigreich", "VN": "Vietnam", "WF": "Wallis und Futuna", "CX": "Weihnachtsinsel", "EH": "Westsahara", "CF": "Zentralafrikanische Republik", "CY": "Zypern"} \ No newline at end of file diff --git a/desktop/src/onionshare/resources/countries/en.json b/desktop/src/onionshare/resources/countries/en.json index 04819d56..e2a664e8 100644 --- a/desktop/src/onionshare/resources/countries/en.json +++ b/desktop/src/onionshare/resources/countries/en.json @@ -1 +1 @@ -{"AF": "Afghanistan", "AX": "\u00c5land Islands", "AL": "Albania", "DZ": "Algeria", "AS": "American Samoa", "AD": "Andorra", "AO": "Angola", "AI": "Anguilla", "AQ": "Antarctica", "AG": "Antigua & Barbuda", "AR": "Argentina", "AM": "Armenia", "AW": "Aruba", "AU": "Australia", "AT": "Austria", "AZ": "Azerbaijan", "BS": "Bahamas", "BH": "Bahrain", "BD": "Bangladesh", "BB": "Barbados", "BY": "Belarus", "BE": "Belgium", "BZ": "Belize", "BJ": "Benin", "BM": "Bermuda", "BT": "Bhutan", "BO": "Bolivia", "BA": "Bosnia & Herzegovina", "BW": "Botswana", "BV": "Bouvet Island", "BR": "Brazil", "IO": "British Indian Ocean Territory", "VG": "British Virgin Islands", "BN": "Brunei", "BG": "Bulgaria", "BF": "Burkina Faso", "BI": "Burundi", "KH": "Cambodia", "CM": "Cameroon", "CA": "Canada", "CV": "Cape Verde", "BQ": "Caribbean Netherlands", "KY": "Cayman Islands", "CF": "Central African Republic", "TD": "Chad", "CL": "Chile", "CN": "China", "CX": "Christmas Island", "CC": "Cocos (Keeling) Islands", "CO": "Colombia", "KM": "Comoros", "CG": "Congo - Brazzaville", "CD": "Congo - Kinshasa", "CK": "Cook Islands", "CR": "Costa Rica", "CI": "C\u00f4te d\u2019Ivoire", "HR": "Croatia", "CU": "Cuba", "CW": "Cura\u00e7ao", "CY": "Cyprus", "CZ": "Czechia", "DK": "Denmark", "DJ": "Djibouti", "DM": "Dominica", "DO": "Dominican Republic", "EC": "Ecuador", "EG": "Egypt", "SV": "El Salvador", "GQ": "Equatorial Guinea", "ER": "Eritrea", "EE": "Estonia", "SZ": "Eswatini", "ET": "Ethiopia", "FK": "Falkland Islands", "FO": "Faroe Islands", "FJ": "Fiji", "FI": "Finland", "FR": "France", "GF": "French Guiana", "PF": "French Polynesia", "TF": "French Southern Territories", "GA": "Gabon", "GM": "Gambia", "GE": "Georgia", "DE": "Germany", "GH": "Ghana", "GI": "Gibraltar", "GR": "Greece", "GL": "Greenland", "GD": "Grenada", "GP": "Guadeloupe", "GU": "Guam", "GT": "Guatemala", "GG": "Guernsey", "GN": "Guinea", "GW": "Guinea-Bissau", "GY": "Guyana", "HT": "Haiti", "HM": "Heard & McDonald Islands", "HN": "Honduras", "HK": "Hong Kong SAR China", "HU": "Hungary", "IS": "Iceland", "IN": "India", "ID": "Indonesia", "IR": "Iran", "IQ": "Iraq", "IE": "Ireland", "IM": "Isle of Man", "IL": "Israel", "IT": "Italy", "JM": "Jamaica", "JP": "Japan", "JE": "Jersey", "JO": "Jordan", "KZ": "Kazakhstan", "KE": "Kenya", "KI": "Kiribati", "KW": "Kuwait", "KG": "Kyrgyzstan", "LA": "Laos", "LV": "Latvia", "LB": "Lebanon", "LS": "Lesotho", "LR": "Liberia", "LY": "Libya", "LI": "Liechtenstein", "LT": "Lithuania", "LU": "Luxembourg", "MO": "Macao SAR China", "MG": "Madagascar", "MW": "Malawi", "MY": "Malaysia", "MV": "Maldives", "ML": "Mali", "MT": "Malta", "MH": "Marshall Islands", "MQ": "Martinique", "MR": "Mauritania", "MU": "Mauritius", "YT": "Mayotte", "MX": "Mexico", "FM": "Micronesia", "MD": "Moldova", "MC": "Monaco", "MN": "Mongolia", "ME": "Montenegro", "MS": "Montserrat", "MA": "Morocco", "MZ": "Mozambique", "MM": "Myanmar (Burma)", "NA": "Namibia", "NR": "Nauru", "NP": "Nepal", "NL": "Netherlands", "NC": "New Caledonia", "NZ": "New Zealand", "NI": "Nicaragua", "NE": "Niger", "NG": "Nigeria", "NU": "Niue", "NF": "Norfolk Island", "KP": "North Korea", "MK": "North Macedonia", "MP": "Northern Mariana Islands", "NO": "Norway", "OM": "Oman", "PK": "Pakistan", "PW": "Palau", "PS": "Palestinian Territories", "PA": "Panama", "PG": "Papua New Guinea", "PY": "Paraguay", "PE": "Peru", "PH": "Philippines", "PN": "Pitcairn Islands", "PL": "Poland", "PT": "Portugal", "PR": "Puerto Rico", "QA": "Qatar", "RE": "R\u00e9union", "RO": "Romania", "RU": "Russia", "RW": "Rwanda", "WS": "Samoa", "SM": "San Marino", "ST": "S\u00e3o Tom\u00e9 & Pr\u00edncipe", "SA": "Saudi Arabia", "SN": "Senegal", "RS": "Serbia", "SC": "Seychelles", "SL": "Sierra Leone", "SG": "Singapore", "SX": "Sint Maarten", "SK": "Slovakia", "SI": "Slovenia", "SB": "Solomon Islands", "SO": "Somalia", "ZA": "South Africa", "GS": "South Georgia & South Sandwich Islands", "KR": "South Korea", "SS": "South Sudan", "ES": "Spain", "LK": "Sri Lanka", "BL": "St. Barth\u00e9lemy", "SH": "St. Helena", "KN": "St. Kitts & Nevis", "LC": "St. Lucia", "MF": "St. Martin", "PM": "St. Pierre & Miquelon", "VC": "St. Vincent & Grenadines", "SD": "Sudan", "SR": "Suriname", "SJ": "Svalbard & Jan Mayen", "SE": "Sweden", "CH": "Switzerland", "SY": "Syria", "TW": "Taiwan", "TJ": "Tajikistan", "TZ": "Tanzania", "TH": "Thailand", "TL": "Timor-Leste", "TG": "Togo", "TK": "Tokelau", "TO": "Tonga", "TT": "Trinidad & Tobago", "TN": "Tunisia", "TR": "Turkey", "TM": "Turkmenistan", "TC": "Turks & Caicos Islands", "TV": "Tuvalu", "UM": "U.S. Outlying Islands", "VI": "U.S. Virgin Islands", "UG": "Uganda", "UA": "Ukraine", "AE": "United Arab Emirates", "GB": "United Kingdom", "US": "United States", "UY": "Uruguay", "UZ": "Uzbekistan", "VU": "Vanuatu", "VA": "Vatican City", "VE": "Venezuela", "VN": "Vietnam", "WF": "Wallis & Futuna", "EH": "Western Sahara", "YE": "Yemen", "ZM": "Zambia", "ZW": "Zimbabwe"} \ No newline at end of file +{"AF": "Afghanistan", "AX": "\u00c5land Islands", "AL": "Albania", "DZ": "Algeria", "AS": "American Samoa", "AD": "Andorra", "AO": "Angola", "AI": "Anguilla", "AQ": "Antarctica", "AG": "Antigua & Barbuda", "AR": "Argentina", "AM": "Armenia", "AW": "Aruba", "AU": "Australia", "AT": "Austria", "AZ": "Azerbaijan", "BS": "Bahamas", "BH": "Bahrain", "BD": "Bangladesh", "BB": "Barbados", "BY": "Belarus", "BE": "Belgium", "BZ": "Belize", "BJ": "Benin", "BM": "Bermuda", "BT": "Bhutan", "BO": "Bolivia", "BA": "Bosnia & Herzegovina", "BW": "Botswana", "BV": "Bouvet Island", "BR": "Brazil", "IO": "British Indian Ocean Territory", "VG": "British Virgin Islands", "BN": "Brunei", "BG": "Bulgaria", "BF": "Burkina Faso", "BI": "Burundi", "KH": "Cambodia", "CM": "Cameroon", "CA": "Canada", "CV": "Cape Verde", "BQ": "Caribbean Netherlands", "KY": "Cayman Islands", "CF": "Central African Republic", "TD": "Chad", "CL": "Chile", "CN": "China", "CX": "Christmas Island", "CC": "Cocos (Keeling) Islands", "CO": "Colombia", "KM": "Comoros", "CG": "Congo - Brazzaville", "CD": "Congo - Kinshasa", "CK": "Cook Islands", "CR": "Costa Rica", "CI": "C\u00f4te d\u2019Ivoire", "HR": "Croatia", "CU": "Cuba", "CW": "Cura\u00e7ao", "CY": "Cyprus", "CZ": "Czechia", "DK": "Denmark", "DJ": "Djibouti", "DM": "Dominica", "DO": "Dominican Republic", "EC": "Ecuador", "EG": "Egypt", "SV": "El Salvador", "GQ": "Equatorial Guinea", "ER": "Eritrea", "EE": "Estonia", "SZ": "Eswatini", "ET": "Ethiopia", "FK": "Falkland Islands", "FO": "Faroe Islands", "FJ": "Fiji", "FI": "Finland", "FR": "France", "GF": "French Guiana", "PF": "French Polynesia", "TF": "French Southern Territories", "GA": "Gabon", "GM": "Gambia", "GE": "Georgia", "DE": "Germany", "GH": "Ghana", "GI": "Gibraltar", "GR": "Greece", "GL": "Greenland", "GD": "Grenada", "GP": "Guadeloupe", "GU": "Guam", "GT": "Guatemala", "GG": "Guernsey", "GN": "Guinea", "GW": "Guinea-Bissau", "GY": "Guyana", "HT": "Haiti", "HM": "Heard & McDonald Islands", "HN": "Honduras", "HK": "Hong Kong SAR China", "HU": "Hungary", "IS": "Iceland", "IN": "India", "ID": "Indonesia", "IR": "Iran", "IQ": "Iraq", "IE": "Ireland", "IM": "Isle of Man", "IL": "Israel", "IT": "Italy", "JM": "Jamaica", "JP": "Japan", "JO": "Jordan", "KZ": "Kazakhstan", "KE": "Kenya", "KI": "Kiribati", "KW": "Kuwait", "KG": "Kyrgyzstan", "LA": "Laos", "LV": "Latvia", "LB": "Lebanon", "LS": "Lesotho", "LR": "Liberia", "LY": "Libya", "LI": "Liechtenstein", "LT": "Lithuania", "LU": "Luxembourg", "MO": "Macao SAR China", "MG": "Madagascar", "MW": "Malawi", "MY": "Malaysia", "MV": "Maldives", "ML": "Mali", "MT": "Malta", "MQ": "Martinique", "MR": "Mauritania", "MU": "Mauritius", "YT": "Mayotte", "MX": "Mexico", "MD": "Moldova", "MC": "Monaco", "MN": "Mongolia", "ME": "Montenegro", "MS": "Montserrat", "MA": "Morocco", "MZ": "Mozambique", "MM": "Myanmar (Burma)", "NA": "Namibia", "NR": "Nauru", "NP": "Nepal", "NL": "Netherlands", "NC": "New Caledonia", "NZ": "New Zealand", "NI": "Nicaragua", "NE": "Niger", "NG": "Nigeria", "NU": "Niue", "NF": "Norfolk Island", "KP": "North Korea", "MK": "North Macedonia", "NO": "Norway", "OM": "Oman", "PK": "Pakistan", "PW": "Palau", "PA": "Panama", "PG": "Papua New Guinea", "PY": "Paraguay", "PE": "Peru", "PH": "Philippines", "PN": "Pitcairn Islands", "PL": "Poland", "PT": "Portugal", "PR": "Puerto Rico", "QA": "Qatar", "RE": "R\u00e9union", "RO": "Romania", "RU": "Russia", "RW": "Rwanda", "WS": "Samoa", "SM": "San Marino", "ST": "S\u00e3o Tom\u00e9 & Pr\u00edncipe", "SA": "Saudi Arabia", "SN": "Senegal", "RS": "Serbia", "SC": "Seychelles", "SL": "Sierra Leone", "SG": "Singapore", "SX": "Sint Maarten", "SK": "Slovakia", "SI": "Slovenia", "SB": "Solomon Islands", "SO": "Somalia", "ZA": "South Africa", "GS": "South Georgia & South Sandwich Islands", "KR": "South Korea", "SS": "South Sudan", "ES": "Spain", "LK": "Sri Lanka", "BL": "St. Barth\u00e9lemy", "SH": "St. Helena", "KN": "St. Kitts & Nevis", "LC": "St. Lucia", "MF": "St. Martin", "PM": "St. Pierre & Miquelon", "VC": "St. Vincent & Grenadines", "SD": "Sudan", "SR": "Suriname", "SJ": "Svalbard & Jan Mayen", "SE": "Sweden", "CH": "Switzerland", "SY": "Syria", "TW": "Taiwan", "TJ": "Tajikistan", "TZ": "Tanzania", "TH": "Thailand", "TL": "Timor-Leste", "TG": "Togo", "TK": "Tokelau", "TO": "Tonga", "TT": "Trinidad & Tobago", "TN": "Tunisia", "TR": "Turkey", "TM": "Turkmenistan", "TC": "Turks & Caicos Islands", "VI": "U.S. Virgin Islands", "UG": "Uganda", "UA": "Ukraine", "AE": "United Arab Emirates", "GB": "United Kingdom", "US": "United States", "UY": "Uruguay", "UZ": "Uzbekistan", "VU": "Vanuatu", "VA": "Vatican City", "VE": "Venezuela", "VN": "Vietnam", "WF": "Wallis & Futuna", "EH": "Western Sahara", "YE": "Yemen", "ZM": "Zambia", "ZW": "Zimbabwe"} \ No newline at end of file diff --git a/desktop/src/onionshare/resources/countries/es.json b/desktop/src/onionshare/resources/countries/es.json index c5e30bc9..87b466dd 100644 --- a/desktop/src/onionshare/resources/countries/es.json +++ b/desktop/src/onionshare/resources/countries/es.json @@ -1 +1 @@ -{"AF": "Afganist\u00e1n", "AL": "Albania", "DE": "Alemania", "AD": "Andorra", "AO": "Angola", "AI": "Anguila", "AQ": "Ant\u00e1rtida", "AG": "Antigua y Barbuda", "SA": "Arabia Saud\u00ed", "DZ": "Argelia", "AR": "Argentina", "AM": "Armenia", "AW": "Aruba", "AU": "Australia", "AT": "Austria", "AZ": "Azerbaiy\u00e1n", "BS": "Bahamas", "BD": "Banglad\u00e9s", "BB": "Barbados", "BH": "Bar\u00e9in", "BE": "B\u00e9lgica", "BZ": "Belice", "BJ": "Ben\u00edn", "BM": "Bermudas", "BY": "Bielorrusia", "BO": "Bolivia", "BA": "Bosnia y Herzegovina", "BW": "Botsuana", "BR": "Brasil", "BN": "Brun\u00e9i", "BG": "Bulgaria", "BF": "Burkina Faso", "BI": "Burundi", "BT": "But\u00e1n", "CV": "Cabo Verde", "KH": "Camboya", "CM": "Camer\u00fan", "CA": "Canad\u00e1", "BQ": "Caribe neerland\u00e9s", "QA": "Catar", "TD": "Chad", "CZ": "Chequia", "CL": "Chile", "CN": "China", "CY": "Chipre", "VA": "Ciudad del Vaticano", "CO": "Colombia", "KM": "Comoras", "CG": "Congo", "KP": "Corea del Norte", "KR": "Corea del Sur", "CR": "Costa Rica", "CI": "C\u00f4te d\u2019Ivoire", "HR": "Croacia", "CU": "Cuba", "CW": "Curazao", "DK": "Dinamarca", "DM": "Dominica", "EC": "Ecuador", "EG": "Egipto", "SV": "El Salvador", "AE": "Emiratos \u00c1rabes Unidos", "ER": "Eritrea", "SK": "Eslovaquia", "SI": "Eslovenia", "ES": "Espa\u00f1a", "US": "Estados Unidos", "EE": "Estonia", "SZ": "Esuatini", "ET": "Etiop\u00eda", "PH": "Filipinas", "FI": "Finlandia", "FJ": "Fiyi", "FR": "Francia", "GA": "Gab\u00f3n", "GM": "Gambia", "GE": "Georgia", "GH": "Ghana", "GI": "Gibraltar", "GD": "Granada", "GR": "Grecia", "GL": "Groenlandia", "GP": "Guadalupe", "GU": "Guam", "GT": "Guatemala", "GF": "Guayana Francesa", "GG": "Guernsey", "GN": "Guinea", "GQ": "Guinea Ecuatorial", "GW": "Guinea-Bis\u00e1u", "GY": "Guyana", "HT": "Hait\u00ed", "HN": "Honduras", "HU": "Hungr\u00eda", "IN": "India", "ID": "Indonesia", "IQ": "Irak", "IR": "Ir\u00e1n", "IE": "Irlanda", "BV": "Isla Bouvet", "IM": "Isla de Man", "CX": "Isla de Navidad", "NF": "Isla Norfolk", "IS": "Islandia", "AX": "Islas \u00c5land", "KY": "Islas Caim\u00e1n", "CC": "Islas Cocos", "CK": "Islas Cook", "FO": "Islas Feroe", "GS": "Islas Georgia del Sur y Sandwich del Sur", "HM": "Islas Heard y McDonald", "FK": "Islas Malvinas", "MP": "Islas Marianas del Norte", "MH": "Islas Marshall", "UM": "Islas menores alejadas de EE. UU.", "PN": "Islas Pitcairn", "SB": "Islas Salom\u00f3n", "TC": "Islas Turcas y Caicos", "VG": "Islas V\u00edrgenes Brit\u00e1nicas", "VI": "Islas V\u00edrgenes de EE. UU.", "IL": "Israel", "IT": "Italia", "JM": "Jamaica", "JP": "Jap\u00f3n", "JE": "Jersey", "JO": "Jordania", "KZ": "Kazajist\u00e1n", "KE": "Kenia", "KG": "Kirguist\u00e1n", "KI": "Kiribati", "KW": "Kuwait", "LA": "Laos", "LS": "Lesoto", "LV": "Letonia", "LB": "L\u00edbano", "LR": "Liberia", "LY": "Libia", "LI": "Liechtenstein", "LT": "Lituania", "LU": "Luxemburgo", "MK": "Macedonia del Norte", "MG": "Madagascar", "MY": "Malasia", "MW": "Malaui", "MV": "Maldivas", "ML": "Mali", "MT": "Malta", "MA": "Marruecos", "MQ": "Martinica", "MU": "Mauricio", "MR": "Mauritania", "YT": "Mayotte", "MX": "M\u00e9xico", "FM": "Micronesia", "MD": "Moldavia", "MC": "M\u00f3naco", "MN": "Mongolia", "ME": "Montenegro", "MS": "Montserrat", "MZ": "Mozambique", "MM": "Myanmar (Birmania)", "NA": "Namibia", "NR": "Nauru", "NP": "Nepal", "NI": "Nicaragua", "NE": "N\u00edger", "NG": "Nigeria", "NU": "Niue", "NO": "Noruega", "NC": "Nueva Caledonia", "NZ": "Nueva Zelanda", "OM": "Om\u00e1n", "NL": "Pa\u00edses Bajos", "PK": "Pakist\u00e1n", "PW": "Palaos", "PA": "Panam\u00e1", "PG": "Pap\u00faa Nueva Guinea", "PY": "Paraguay", "PE": "Per\u00fa", "PF": "Polinesia Francesa", "PL": "Polonia", "PT": "Portugal", "PR": "Puerto Rico", "HK": "RAE de Hong Kong (China)", "MO": "RAE de Macao (China)", "GB": "Reino Unido", "CF": "Rep\u00fablica Centroafricana", "CD": "Rep\u00fablica Democr\u00e1tica del Congo", "DO": "Rep\u00fablica Dominicana", "RE": "Reuni\u00f3n", "RW": "Ruanda", "RO": "Ruman\u00eda", "RU": "Rusia", "EH": "S\u00e1hara Occidental", "WS": "Samoa", "AS": "Samoa Americana", "BL": "San Bartolom\u00e9", "KN": "San Crist\u00f3bal y Nieves", "SM": "San Marino", "MF": "San Mart\u00edn", "PM": "San Pedro y Miquel\u00f3n", "VC": "San Vicente y las Granadinas", "SH": "Santa Elena", "LC": "Santa Luc\u00eda", "ST": "Santo Tom\u00e9 y Pr\u00edncipe", "SN": "Senegal", "RS": "Serbia", "SC": "Seychelles", "SL": "Sierra Leona", "SG": "Singapur", "SX": "Sint Maarten", "SY": "Siria", "SO": "Somalia", "LK": "Sri Lanka", "ZA": "Sud\u00e1frica", "SD": "Sud\u00e1n", "SS": "Sud\u00e1n del Sur", "SE": "Suecia", "CH": "Suiza", "SR": "Surinam", "SJ": "Svalbard y Jan Mayen", "TH": "Tailandia", "TW": "Taiw\u00e1n", "TZ": "Tanzania", "TJ": "Tayikist\u00e1n", "IO": "Territorio Brit\u00e1nico del Oc\u00e9ano \u00cdndico", "TF": "Territorios Australes Franceses", "PS": "Territorios Palestinos", "TL": "Timor-Leste", "TG": "Togo", "TK": "Tokelau", "TO": "Tonga", "TT": "Trinidad y Tobago", "TN": "T\u00fanez", "TM": "Turkmenist\u00e1n", "TR": "Turqu\u00eda", "TV": "Tuvalu", "UA": "Ucrania", "UG": "Uganda", "UY": "Uruguay", "UZ": "Uzbekist\u00e1n", "VU": "Vanuatu", "VE": "Venezuela", "VN": "Vietnam", "WF": "Wallis y Futuna", "YE": "Yemen", "DJ": "Yibuti", "ZM": "Zambia", "ZW": "Zimbabue"} \ No newline at end of file +{"AF": "Afganist\u00e1n", "AL": "Albania", "DE": "Alemania", "AD": "Andorra", "AO": "Angola", "AI": "Anguila", "AQ": "Ant\u00e1rtida", "AG": "Antigua y Barbuda", "SA": "Arabia Saud\u00ed", "DZ": "Argelia", "AR": "Argentina", "AM": "Armenia", "AW": "Aruba", "AU": "Australia", "AT": "Austria", "AZ": "Azerbaiy\u00e1n", "BS": "Bahamas", "BD": "Banglad\u00e9s", "BB": "Barbados", "BH": "Bar\u00e9in", "BE": "B\u00e9lgica", "BZ": "Belice", "BJ": "Ben\u00edn", "BM": "Bermudas", "BY": "Bielorrusia", "BO": "Bolivia", "BA": "Bosnia y Herzegovina", "BW": "Botsuana", "BR": "Brasil", "BN": "Brun\u00e9i", "BG": "Bulgaria", "BF": "Burkina Faso", "BI": "Burundi", "BT": "But\u00e1n", "CV": "Cabo Verde", "KH": "Camboya", "CM": "Camer\u00fan", "CA": "Canad\u00e1", "BQ": "Caribe neerland\u00e9s", "QA": "Catar", "TD": "Chad", "CZ": "Chequia", "CL": "Chile", "CN": "China", "CY": "Chipre", "VA": "Ciudad del Vaticano", "CO": "Colombia", "KM": "Comoras", "CG": "Congo", "KP": "Corea del Norte", "KR": "Corea del Sur", "CR": "Costa Rica", "CI": "C\u00f4te d\u2019Ivoire", "HR": "Croacia", "CU": "Cuba", "CW": "Curazao", "DK": "Dinamarca", "DM": "Dominica", "EC": "Ecuador", "EG": "Egipto", "SV": "El Salvador", "AE": "Emiratos \u00c1rabes Unidos", "ER": "Eritrea", "SK": "Eslovaquia", "SI": "Eslovenia", "ES": "Espa\u00f1a", "US": "Estados Unidos", "EE": "Estonia", "SZ": "Esuatini", "ET": "Etiop\u00eda", "PH": "Filipinas", "FI": "Finlandia", "FJ": "Fiyi", "FR": "Francia", "GA": "Gab\u00f3n", "GM": "Gambia", "GE": "Georgia", "GH": "Ghana", "GI": "Gibraltar", "GD": "Granada", "GR": "Grecia", "GL": "Groenlandia", "GP": "Guadalupe", "GU": "Guam", "GT": "Guatemala", "GF": "Guayana Francesa", "GG": "Guernsey", "GN": "Guinea", "GQ": "Guinea Ecuatorial", "GW": "Guinea-Bis\u00e1u", "GY": "Guyana", "HT": "Hait\u00ed", "HN": "Honduras", "HU": "Hungr\u00eda", "IN": "India", "ID": "Indonesia", "IQ": "Irak", "IR": "Ir\u00e1n", "IE": "Irlanda", "BV": "Isla Bouvet", "IM": "Isla de Man", "CX": "Isla de Navidad", "NF": "Isla Norfolk", "IS": "Islandia", "AX": "Islas \u00c5land", "KY": "Islas Caim\u00e1n", "CC": "Islas Cocos", "CK": "Islas Cook", "FO": "Islas Feroe", "GS": "Islas Georgia del Sur y Sandwich del Sur", "HM": "Islas Heard y McDonald", "FK": "Islas Malvinas", "PN": "Islas Pitcairn", "SB": "Islas Salom\u00f3n", "TC": "Islas Turcas y Caicos", "VG": "Islas V\u00edrgenes Brit\u00e1nicas", "VI": "Islas V\u00edrgenes de EE. UU.", "IL": "Israel", "IT": "Italia", "JM": "Jamaica", "JP": "Jap\u00f3n", "JO": "Jordania", "KZ": "Kazajist\u00e1n", "KE": "Kenia", "KG": "Kirguist\u00e1n", "KI": "Kiribati", "KW": "Kuwait", "LA": "Laos", "LS": "Lesoto", "LV": "Letonia", "LB": "L\u00edbano", "LR": "Liberia", "LY": "Libia", "LI": "Liechtenstein", "LT": "Lituania", "LU": "Luxemburgo", "MK": "Macedonia del Norte", "MG": "Madagascar", "MY": "Malasia", "MW": "Malaui", "MV": "Maldivas", "ML": "Mali", "MT": "Malta", "MA": "Marruecos", "MQ": "Martinica", "MU": "Mauricio", "MR": "Mauritania", "YT": "Mayotte", "MX": "M\u00e9xico", "MD": "Moldavia", "MC": "M\u00f3naco", "MN": "Mongolia", "ME": "Montenegro", "MS": "Montserrat", "MZ": "Mozambique", "MM": "Myanmar (Birmania)", "NA": "Namibia", "NR": "Nauru", "NP": "Nepal", "NI": "Nicaragua", "NE": "N\u00edger", "NG": "Nigeria", "NU": "Niue", "NO": "Noruega", "NC": "Nueva Caledonia", "NZ": "Nueva Zelanda", "OM": "Om\u00e1n", "NL": "Pa\u00edses Bajos", "PK": "Pakist\u00e1n", "PW": "Palaos", "PA": "Panam\u00e1", "PG": "Pap\u00faa Nueva Guinea", "PY": "Paraguay", "PE": "Per\u00fa", "PF": "Polinesia Francesa", "PL": "Polonia", "PT": "Portugal", "PR": "Puerto Rico", "HK": "RAE de Hong Kong (China)", "MO": "RAE de Macao (China)", "GB": "Reino Unido", "CF": "Rep\u00fablica Centroafricana", "CD": "Rep\u00fablica Democr\u00e1tica del Congo", "DO": "Rep\u00fablica Dominicana", "RE": "Reuni\u00f3n", "RW": "Ruanda", "RO": "Ruman\u00eda", "RU": "Rusia", "EH": "S\u00e1hara Occidental", "WS": "Samoa", "AS": "Samoa Americana", "BL": "San Bartolom\u00e9", "KN": "San Crist\u00f3bal y Nieves", "SM": "San Marino", "MF": "San Mart\u00edn", "PM": "San Pedro y Miquel\u00f3n", "VC": "San Vicente y las Granadinas", "SH": "Santa Elena", "LC": "Santa Luc\u00eda", "ST": "Santo Tom\u00e9 y Pr\u00edncipe", "SN": "Senegal", "RS": "Serbia", "SC": "Seychelles", "SL": "Sierra Leona", "SG": "Singapur", "SX": "Sint Maarten", "SY": "Siria", "SO": "Somalia", "LK": "Sri Lanka", "ZA": "Sud\u00e1frica", "SD": "Sud\u00e1n", "SS": "Sud\u00e1n del Sur", "SE": "Suecia", "CH": "Suiza", "SR": "Surinam", "SJ": "Svalbard y Jan Mayen", "TH": "Tailandia", "TW": "Taiw\u00e1n", "TZ": "Tanzania", "TJ": "Tayikist\u00e1n", "IO": "Territorio Brit\u00e1nico del Oc\u00e9ano \u00cdndico", "TF": "Territorios Australes Franceses", "TL": "Timor-Leste", "TG": "Togo", "TK": "Tokelau", "TO": "Tonga", "TT": "Trinidad y Tobago", "TN": "T\u00fanez", "TM": "Turkmenist\u00e1n", "TR": "Turqu\u00eda", "UA": "Ucrania", "UG": "Uganda", "UY": "Uruguay", "UZ": "Uzbekist\u00e1n", "VU": "Vanuatu", "VE": "Venezuela", "VN": "Vietnam", "WF": "Wallis y Futuna", "YE": "Yemen", "DJ": "Yibuti", "ZM": "Zambia", "ZW": "Zimbabue"} \ No newline at end of file diff --git a/desktop/src/onionshare/resources/countries/fi.json b/desktop/src/onionshare/resources/countries/fi.json index c2fce915..4f921984 100644 --- a/desktop/src/onionshare/resources/countries/fi.json +++ b/desktop/src/onionshare/resources/countries/fi.json @@ -1 +1 @@ -{"AF": "Afganistan", "AX": "Ahvenanmaa", "NL": "Alankomaat", "AL": "Albania", "DZ": "Algeria", "AS": "Amerikan Samoa", "AD": "Andorra", "AO": "Angola", "AI": "Anguilla", "AQ": "Antarktis", "AG": "Antigua ja Barbuda", "AE": "Arabiemiirikunnat", "AR": "Argentiina", "AM": "Armenia", "AW": "Aruba", "AU": "Australia", "AZ": "Azerbaid\u017ean", "BS": "Bahama", "BH": "Bahrain", "BD": "Bangladesh", "BB": "Barbados", "BE": "Belgia", "BZ": "Belize", "BJ": "Benin", "BM": "Bermuda", "BT": "Bhutan", "BO": "Bolivia", "BA": "Bosnia ja Hertsegovina", "BW": "Botswana", "BV": "Bouvet\u2019nsaari", "BR": "Brasilia", "IO": "Brittil\u00e4inen Intian valtameren alue", "VG": "Brittil\u00e4iset Neitsytsaaret", "BN": "Brunei", "BG": "Bulgaria", "BF": "Burkina Faso", "BI": "Burundi", "KY": "Caymansaaret", "CL": "Chile", "CK": "Cookinsaaret", "CR": "Costa Rica", "CW": "Cura\u00e7ao", "DJ": "Djibouti", "DM": "Dominica", "DO": "Dominikaaninen tasavalta", "EC": "Ecuador", "EG": "Egypti", "SV": "El Salvador", "ER": "Eritrea", "ES": "Espanja", "ZA": "Etel\u00e4-Afrikka", "GS": "Etel\u00e4-Georgia ja Etel\u00e4iset Sandwichsaaret", "KR": "Etel\u00e4-Korea", "SS": "Etel\u00e4-Sudan", "ET": "Etiopia", "FK": "Falklandinsaaret", "FJ": "Fid\u017ei", "PH": "Filippiinit", "FO": "F\u00e4rsaaret", "GA": "Gabon", "GM": "Gambia", "GE": "Georgia", "GH": "Ghana", "GI": "Gibraltar", "GD": "Grenada", "GL": "Gr\u00f6nlanti", "GP": "Guadeloupe", "GU": "Guam", "GT": "Guatemala", "GG": "Guernsey", "GN": "Guinea", "GW": "Guinea-Bissau", "GY": "Guyana", "HT": "Haiti", "HM": "Heard ja McDonaldinsaaret", "HN": "Honduras", "HK": "Hongkong \u2013 Kiinan e.h.a.", "SJ": "Huippuvuoret ja Jan Mayen", "ID": "Indonesia", "IN": "Intia", "IQ": "Irak", "IR": "Iran", "IE": "Irlanti", "IS": "Islanti", "GB": "Iso-Britannia", "IL": "Israel", "IT": "Italia", "TL": "It\u00e4-Timor", "AT": "It\u00e4valta", "JM": "Jamaika", "JP": "Japani", "YE": "Jemen", "JE": "Jersey", "JO": "Jordania", "CX": "Joulusaari", "KH": "Kambod\u017ea", "CM": "Kamerun", "CA": "Kanada", "CV": "Kap Verde", "BQ": "Karibian Alankomaat", "KZ": "Kazakstan", "KE": "Kenia", "CF": "Keski-Afrikan tasavalta", "CN": "Kiina", "KG": "Kirgisia", "KI": "Kiribati", "CO": "Kolumbia", "KM": "Komorit", "CD": "Kongon demokraattinen tasavalta", "CG": "Kongon tasavalta", "CC": "Kookossaaret (Keelingsaaret)", "GR": "Kreikka", "HR": "Kroatia", "CU": "Kuuba", "KW": "Kuwait", "CY": "Kypros", "LA": "Laos", "LV": "Latvia", "LS": "Lesotho", "LB": "Libanon", "LR": "Liberia", "LY": "Libya", "LI": "Liechtenstein", "LT": "Liettua", "LU": "Luxemburg", "EH": "L\u00e4nsi-Sahara", "MO": "Macao \u2013 Kiinan e.h.a.", "MG": "Madagaskar", "MW": "Malawi", "MV": "Malediivit", "MY": "Malesia", "ML": "Mali", "MT": "Malta", "IM": "Mansaari", "MA": "Marokko", "MH": "Marshallinsaaret", "MQ": "Martinique", "MR": "Mauritania", "MU": "Mauritius", "YT": "Mayotte", "MX": "Meksiko", "FM": "Mikronesian liittovaltio", "MD": "Moldova", "MC": "Monaco", "MN": "Mongolia", "ME": "Montenegro", "MS": "Montserrat", "MZ": "Mosambik", "MM": "Myanmar (Burma)", "NA": "Namibia", "NR": "Nauru", "NP": "Nepal", "NI": "Nicaragua", "NE": "Niger", "NG": "Nigeria", "NU": "Niue", "NF": "Norfolkinsaari", "NO": "Norja", "CI": "Norsunluurannikko", "OM": "Oman", "PK": "Pakistan", "PW": "Palau", "PS": "Palestiinalaisalueet", "PA": "Panama", "PG": "Papua-Uusi-Guinea", "PY": "Paraguay", "PE": "Peru", "PN": "Pitcairn", "KP": "Pohjois-Korea", "MK": "Pohjois-Makedonia", "MP": "Pohjois-Mariaanit", "PT": "Portugali", "PR": "Puerto Rico", "PL": "Puola", "GQ": "P\u00e4iv\u00e4ntasaajan Guinea", "QA": "Qatar", "FR": "Ranska", "TF": "Ranskan etel\u00e4iset alueet", "GF": "Ranskan Guayana", "PF": "Ranskan Polynesia", "RE": "R\u00e9union", "RO": "Romania", "RW": "Ruanda", "SE": "Ruotsi", "SH": "Saint Helena", "KN": "Saint Kitts ja Nevis", "LC": "Saint Lucia", "VC": "Saint Vincent ja Grenadiinit", "BL": "Saint-Barth\u00e9lemy", "MF": "Saint-Martin", "PM": "Saint-Pierre ja Miquelon", "DE": "Saksa", "SB": "Salomonsaaret", "ZM": "Sambia", "WS": "Samoa", "SM": "San Marino", "ST": "S\u00e3o Tom\u00e9 ja Pr\u00edncipe", "SA": "Saudi-Arabia", "SN": "Senegal", "RS": "Serbia", "SC": "Seychellit", "SL": "Sierra Leone", "SG": "Singapore", "SX": "Sint Maarten", "SK": "Slovakia", "SI": "Slovenia", "SO": "Somalia", "LK": "Sri Lanka", "SD": "Sudan", "FI": "Suomi", "SR": "Suriname", "CH": "Sveitsi", "SZ": "Swazimaa", "SY": "Syyria", "TJ": "Tad\u017eikistan", "TW": "Taiwan", "TZ": "Tansania", "DK": "Tanska", "TH": "Thaimaa", "TG": "Togo", "TK": "Tokelau", "TO": "Tonga", "TT": "Trinidad ja Tobago", "TD": "T\u0161ad", "CZ": "T\u0161ekki", "TN": "Tunisia", "TR": "Turkki", "TM": "Turkmenistan", "TC": "Turks- ja Caicossaaret", "TV": "Tuvalu", "UG": "Uganda", "UA": "Ukraina", "HU": "Unkari", "UY": "Uruguay", "NC": "Uusi-Kaledonia", "NZ": "Uusi-Seelanti", "UZ": "Uzbekistan", "BY": "Valko-Ven\u00e4j\u00e4", "VU": "Vanuatu", "VA": "Vatikaani", "VE": "Venezuela", "RU": "Ven\u00e4j\u00e4", "VN": "Vietnam", "EE": "Viro", "WF": "Wallis ja Futuna", "US": "Yhdysvallat", "UM": "Yhdysvaltain erillissaaret", "VI": "Yhdysvaltain Neitsytsaaret", "ZW": "Zimbabwe"} \ No newline at end of file +{"AF": "Afganistan", "AX": "Ahvenanmaa", "NL": "Alankomaat", "AL": "Albania", "DZ": "Algeria", "AS": "Amerikan Samoa", "AD": "Andorra", "AO": "Angola", "AI": "Anguilla", "AQ": "Antarktis", "AG": "Antigua ja Barbuda", "AE": "Arabiemiirikunnat", "AR": "Argentiina", "AM": "Armenia", "AW": "Aruba", "AU": "Australia", "AZ": "Azerbaid\u017ean", "BS": "Bahama", "BH": "Bahrain", "BD": "Bangladesh", "BB": "Barbados", "BE": "Belgia", "BZ": "Belize", "BJ": "Benin", "BM": "Bermuda", "BT": "Bhutan", "BO": "Bolivia", "BA": "Bosnia ja Hertsegovina", "BW": "Botswana", "BV": "Bouvet\u2019nsaari", "BR": "Brasilia", "IO": "Brittil\u00e4inen Intian valtameren alue", "VG": "Brittil\u00e4iset Neitsytsaaret", "BN": "Brunei", "BG": "Bulgaria", "BF": "Burkina Faso", "BI": "Burundi", "KY": "Caymansaaret", "CL": "Chile", "CK": "Cookinsaaret", "CR": "Costa Rica", "CW": "Cura\u00e7ao", "DJ": "Djibouti", "DM": "Dominica", "DO": "Dominikaaninen tasavalta", "EC": "Ecuador", "EG": "Egypti", "SV": "El Salvador", "ER": "Eritrea", "ES": "Espanja", "ZA": "Etel\u00e4-Afrikka", "GS": "Etel\u00e4-Georgia ja Etel\u00e4iset Sandwichsaaret", "KR": "Etel\u00e4-Korea", "SS": "Etel\u00e4-Sudan", "ET": "Etiopia", "FK": "Falklandinsaaret", "FJ": "Fid\u017ei", "PH": "Filippiinit", "FO": "F\u00e4rsaaret", "GA": "Gabon", "GM": "Gambia", "GE": "Georgia", "GH": "Ghana", "GI": "Gibraltar", "GD": "Grenada", "GL": "Gr\u00f6nlanti", "GP": "Guadeloupe", "GU": "Guam", "GT": "Guatemala", "GG": "Guernsey", "GN": "Guinea", "GW": "Guinea-Bissau", "GY": "Guyana", "HT": "Haiti", "HM": "Heard ja McDonaldinsaaret", "HN": "Honduras", "HK": "Hongkong \u2013 Kiinan e.h.a.", "SJ": "Huippuvuoret ja Jan Mayen", "ID": "Indonesia", "IN": "Intia", "IQ": "Irak", "IR": "Iran", "IE": "Irlanti", "IS": "Islanti", "GB": "Iso-Britannia", "IL": "Israel", "IT": "Italia", "TL": "It\u00e4-Timor", "AT": "It\u00e4valta", "JM": "Jamaika", "JP": "Japani", "YE": "Jemen", "JO": "Jordania", "CX": "Joulusaari", "KH": "Kambod\u017ea", "CM": "Kamerun", "CA": "Kanada", "CV": "Kap Verde", "BQ": "Karibian Alankomaat", "KZ": "Kazakstan", "KE": "Kenia", "CF": "Keski-Afrikan tasavalta", "CN": "Kiina", "KG": "Kirgisia", "KI": "Kiribati", "CO": "Kolumbia", "KM": "Komorit", "CD": "Kongon demokraattinen tasavalta", "CG": "Kongon tasavalta", "CC": "Kookossaaret (Keelingsaaret)", "GR": "Kreikka", "HR": "Kroatia", "CU": "Kuuba", "KW": "Kuwait", "CY": "Kypros", "LA": "Laos", "LV": "Latvia", "LS": "Lesotho", "LB": "Libanon", "LR": "Liberia", "LY": "Libya", "LI": "Liechtenstein", "LT": "Liettua", "LU": "Luxemburg", "EH": "L\u00e4nsi-Sahara", "MO": "Macao \u2013 Kiinan e.h.a.", "MG": "Madagaskar", "MW": "Malawi", "MV": "Malediivit", "MY": "Malesia", "ML": "Mali", "MT": "Malta", "IM": "Mansaari", "MA": "Marokko", "MQ": "Martinique", "MR": "Mauritania", "MU": "Mauritius", "YT": "Mayotte", "MX": "Meksiko", "MD": "Moldova", "MC": "Monaco", "MN": "Mongolia", "ME": "Montenegro", "MS": "Montserrat", "MZ": "Mosambik", "MM": "Myanmar (Burma)", "NA": "Namibia", "NR": "Nauru", "NP": "Nepal", "NI": "Nicaragua", "NE": "Niger", "NG": "Nigeria", "NU": "Niue", "NF": "Norfolkinsaari", "NO": "Norja", "CI": "Norsunluurannikko", "OM": "Oman", "PK": "Pakistan", "PW": "Palau", "PA": "Panama", "PG": "Papua-Uusi-Guinea", "PY": "Paraguay", "PE": "Peru", "PN": "Pitcairn", "KP": "Pohjois-Korea", "MK": "Pohjois-Makedonia", "PT": "Portugali", "PR": "Puerto Rico", "PL": "Puola", "GQ": "P\u00e4iv\u00e4ntasaajan Guinea", "QA": "Qatar", "FR": "Ranska", "TF": "Ranskan etel\u00e4iset alueet", "GF": "Ranskan Guayana", "PF": "Ranskan Polynesia", "RE": "R\u00e9union", "RO": "Romania", "RW": "Ruanda", "SE": "Ruotsi", "SH": "Saint Helena", "KN": "Saint Kitts ja Nevis", "LC": "Saint Lucia", "VC": "Saint Vincent ja Grenadiinit", "BL": "Saint-Barth\u00e9lemy", "MF": "Saint-Martin", "PM": "Saint-Pierre ja Miquelon", "DE": "Saksa", "SB": "Salomonsaaret", "ZM": "Sambia", "WS": "Samoa", "SM": "San Marino", "ST": "S\u00e3o Tom\u00e9 ja Pr\u00edncipe", "SA": "Saudi-Arabia", "SN": "Senegal", "RS": "Serbia", "SC": "Seychellit", "SL": "Sierra Leone", "SG": "Singapore", "SX": "Sint Maarten", "SK": "Slovakia", "SI": "Slovenia", "SO": "Somalia", "LK": "Sri Lanka", "SD": "Sudan", "FI": "Suomi", "SR": "Suriname", "CH": "Sveitsi", "SZ": "Swazimaa", "SY": "Syyria", "TJ": "Tad\u017eikistan", "TW": "Taiwan", "TZ": "Tansania", "DK": "Tanska", "TH": "Thaimaa", "TG": "Togo", "TK": "Tokelau", "TO": "Tonga", "TT": "Trinidad ja Tobago", "TD": "T\u0161ad", "CZ": "T\u0161ekki", "TN": "Tunisia", "TR": "Turkki", "TM": "Turkmenistan", "TC": "Turks- ja Caicossaaret", "UG": "Uganda", "UA": "Ukraina", "HU": "Unkari", "UY": "Uruguay", "NC": "Uusi-Kaledonia", "NZ": "Uusi-Seelanti", "UZ": "Uzbekistan", "BY": "Valko-Ven\u00e4j\u00e4", "VU": "Vanuatu", "VA": "Vatikaani", "VE": "Venezuela", "RU": "Ven\u00e4j\u00e4", "VN": "Vietnam", "EE": "Viro", "WF": "Wallis ja Futuna", "US": "Yhdysvallat", "VI": "Yhdysvaltain Neitsytsaaret", "ZW": "Zimbabwe"} \ No newline at end of file diff --git a/desktop/src/onionshare/resources/countries/gl.json b/desktop/src/onionshare/resources/countries/gl.json index 28cd6d9f..44652965 100644 --- a/desktop/src/onionshare/resources/countries/gl.json +++ b/desktop/src/onionshare/resources/countries/gl.json @@ -1 +1 @@ -{"AQ": "A Ant\u00e1rtida", "AR": "A Arxentina", "CN": "A China", "GW": "A Guinea Bissau", "IN": "A India", "PF": "A Polinesia Francesa", "AZ": "Acerbaix\u00e1n", "AF": "Afganist\u00e1n", "AL": "Albania", "DE": "Alema\u00f1a", "DZ": "Alxeria", "AD": "Andorra", "AO": "Angola", "AI": "Anguila", "AG": "Antigua e Barbuda", "SA": "Arabia Saudita", "AM": "Armenia", "AW": "Aruba", "AU": "Australia", "AT": "Austria", "BS": "Bahamas", "BH": "Bahrain", "BD": "Bangladesh", "BB": "Barbados", "BY": "Belar\u00fas", "BZ": "Belize", "BE": "B\u00e9lxica", "BJ": "Ben\u00edn", "BO": "Bolivia", "BA": "Bosnia e Hercegovina", "BW": "Botswana", "BN": "Brunei", "BG": "Bulgaria", "BF": "Burkina Faso", "BI": "Burundi", "BT": "But\u00e1n", "CV": "Cabo Verde", "KH": "Camboxa", "CM": "Camer\u00fan", "BQ": "Caribe Neerland\u00e9s", "TD": "Chad", "CZ": "Chequia", "CL": "Chile", "CY": "Chipre", "VA": "Cidade do Vaticano", "CO": "Colombia", "KM": "Comores", "KP": "Corea do Norte", "KR": "Corea do Sur", "CR": "Costa Rica", "CI": "C\u00f4te d\u2019Ivoire", "HR": "Croacia", "CU": "Cuba", "CW": "Cura\u00e7ao", "DK": "Dinamarca", "DJ": "Djibuti", "DM": "Dominica", "EC": "Ecuador", "ER": "Eritrea", "SK": "Eslovaquia", "SI": "Eslovenia", "ES": "Espa\u00f1a", "EE": "Estonia", "SZ": "Eswatini", "ET": "Etiop\u00eda", "EG": "Exipto", "PH": "Filipinas", "FI": "Finlandia", "FJ": "Fixi", "FR": "Francia", "GA": "Gab\u00f3n", "GM": "Gambia", "GH": "Ghana", "GD": "Granada", "GR": "Grecia", "GL": "Groenlandia", "GP": "Guadalupe", "GU": "Guam", "GT": "Guatemala", "GG": "Guernsey", "GY": "G\u00fciana", "GF": "G\u00fciana Francesa", "GN": "Guinea", "GQ": "Guinea Ecuatorial", "HT": "Hait\u00ed", "HN": "Honduras", "HK": "Hong Kong RAE da China", "HU": "Hungr\u00eda", "BV": "Illa Bouvet", "CX": "Illa Christmas", "IM": "Illa de Man", "HM": "Illa Heard e Illas McDonald", "NF": "Illa Norfolk", "AX": "Illas \u00c5land", "BM": "Illas Bermudas", "KY": "Illas Caim\u00e1n", "CC": "Illas Cocos (Keeling)", "CK": "Illas Cook", "FO": "Illas Feroe", "FK": "Illas Malvinas", "MP": "Illas Marianas do Norte", "MH": "Illas Marshall", "UM": "Illas Menores Distantes dos Estados Unidos", "PN": "Illas Pitcairn", "SB": "Illas Salom\u00f3n", "TC": "Illas Turks e Caicos", "VG": "Illas Virxes Brit\u00e1nicas", "VI": "Illas Virxes Estadounidenses", "GS": "Illas Xeorxia do Sur e Sandwich do Sur", "ID": "Indonesia", "IR": "Ir\u00e1n", "IQ": "Iraq", "IE": "Irlanda", "IS": "Islandia", "IL": "Israel", "IT": "Italia", "JE": "Jersey", "KZ": "Kazakist\u00e1n", "KE": "Kenya", "KG": "Kirguizist\u00e1n", "KI": "Kiribati", "KW": "Kuwait", "LA": "Laos", "LS": "Lesotho", "LV": "Letonia", "LR": "Liberia", "LY": "Libia", "LI": "Liechtenstein", "LT": "Lituania", "LU": "Luxemburgo", "MO": "Macau RAE da China", "MK": "Macedonia do Norte", "MG": "Madagascar", "MY": "Malaisia", "MW": "Malawi", "MV": "Maldivas", "ML": "Mal\u00ed", "MT": "Malta", "MA": "Marrocos", "MQ": "Martinica", "MU": "Mauricio", "MR": "Mauritania", "YT": "Mayotte", "MX": "M\u00e9xico", "FM": "Micronesia", "MD": "Moldavia", "MC": "M\u00f3naco", "MN": "Mongolia", "ME": "Montenegro", "MS": "Montserrat", "MZ": "Mozambique", "MM": "Myanmar (Birmania)", "NA": "Namibia", "NR": "Nauru", "NP": "Nepal", "NI": "Nicaragua", "NU": "Niue", "NE": "N\u00edxer", "NG": "Nixeria", "NO": "Noruega", "NC": "Nova Caledonia", "NZ": "Nova Zelandia", "BR": "O Brasil", "CA": "O Canad\u00e1", "YE": "O Iemen", "LB": "O L\u00edbano", "PY": "O Paraguai", "PE": "O Per\u00fa", "GB": "O Reino Unido", "EH": "O S\u00e1hara Occidental", "SV": "O Salvador", "SD": "O Sud\u00e1n", "SS": "O Sud\u00e1n do Sur", "UY": "O Uruguai", "JP": "O Xap\u00f3n", "OM": "Om\u00e1n", "AE": "Os Emiratos \u00c1rabes Unidos", "US": "Os Estados Unidos", "NL": "Pa\u00edses Baixos", "PW": "Palau", "PA": "Panam\u00e1", "PG": "Pap\u00faa-Nova Guinea", "PK": "Paquist\u00e1n", "PL": "Polonia", "PR": "Porto Rico", "PT": "Portugal", "QA": "Qatar", "CF": "Rep\u00fablica Centroafricana", "CD": "Rep\u00fablica Democr\u00e1tica do Congo", "CG": "Rep\u00fablica do Congo", "DO": "Rep\u00fablica Dominicana", "RE": "Reuni\u00f3n", "RO": "Roman\u00eda", "RW": "Ruanda", "RU": "Rusia", "BL": "Saint Barth\u00e9lemy", "KN": "Saint Kitts e Nevis", "MF": "Saint Martin", "PM": "Saint Pierre et Miquelon", "WS": "Samoa", "AS": "Samoa Americana", "SM": "San Marino", "ST": "San Tom\u00e9 e Pr\u00edncipe", "VC": "San Vicente e As Granadinas", "SH": "Santa Helena", "LC": "Santa Luc\u00eda", "SN": "Senegal", "RS": "Serbia", "SL": "Serra Leoa", "SC": "Seychelles", "SG": "Singapur", "SX": "Sint Maarten", "SY": "Siria", "SO": "Somalia", "LK": "Sri Lanka", "SE": "Suecia", "CH": "Su\u00edza", "ZA": "Sur\u00e1frica", "SR": "Suriname", "SJ": "Svalbard e Jan Mayen", "TH": "Tailandia", "TW": "Taiw\u00e1n", "TZ": "Tanzania", "TJ": "Taxiquist\u00e1n", "IO": "Territorio Brit\u00e1nico do Oc\u00e9ano \u00cdndico", "TF": "Territorios Austrais Franceses", "PS": "Territorios Palestinos", "TL": "Timor Leste", "TG": "Togo", "TK": "Tokelau", "TO": "Tonga", "TT": "Trinidad e Tobago", "TN": "Tunisia", "TM": "Turkmenist\u00e1n", "TR": "Turqu\u00eda", "TV": "Tuvalu", "UA": "Ucra\u00edna", "UG": "Uganda", "UZ": "Uzbekist\u00e1n", "VU": "Vanuatu", "VE": "Venezuela", "VN": "Vietnam", "WF": "Wallis e Futuna", "JM": "Xamaica", "GE": "Xeorxia", "GI": "Xibraltar", "JO": "Xordania", "ZM": "Zambia", "ZW": "Zimbabwe"} \ No newline at end of file +{"AQ": "A Ant\u00e1rtida", "AR": "A Arxentina", "CN": "A China", "GW": "A Guinea Bissau", "IN": "A India", "PF": "A Polinesia Francesa", "AZ": "Acerbaix\u00e1n", "AF": "Afganist\u00e1n", "AL": "Albania", "DE": "Alema\u00f1a", "DZ": "Alxeria", "AD": "Andorra", "AO": "Angola", "AI": "Anguila", "AG": "Antigua e Barbuda", "SA": "Arabia Saudita", "AM": "Armenia", "AW": "Aruba", "AU": "Australia", "AT": "Austria", "BS": "Bahamas", "BH": "Bahrain", "BD": "Bangladesh", "BB": "Barbados", "BY": "Belar\u00fas", "BZ": "Belize", "BE": "B\u00e9lxica", "BJ": "Ben\u00edn", "BO": "Bolivia", "BA": "Bosnia e Hercegovina", "BW": "Botswana", "BN": "Brunei", "BG": "Bulgaria", "BF": "Burkina Faso", "BI": "Burundi", "BT": "But\u00e1n", "CV": "Cabo Verde", "KH": "Camboxa", "CM": "Camer\u00fan", "BQ": "Caribe Neerland\u00e9s", "TD": "Chad", "CZ": "Chequia", "CL": "Chile", "CY": "Chipre", "VA": "Cidade do Vaticano", "CO": "Colombia", "KM": "Comores", "KP": "Corea do Norte", "KR": "Corea do Sur", "CR": "Costa Rica", "CI": "C\u00f4te d\u2019Ivoire", "HR": "Croacia", "CU": "Cuba", "CW": "Cura\u00e7ao", "DK": "Dinamarca", "DJ": "Djibuti", "DM": "Dominica", "EC": "Ecuador", "ER": "Eritrea", "SK": "Eslovaquia", "SI": "Eslovenia", "ES": "Espa\u00f1a", "EE": "Estonia", "SZ": "Eswatini", "ET": "Etiop\u00eda", "EG": "Exipto", "PH": "Filipinas", "FI": "Finlandia", "FJ": "Fixi", "FR": "Francia", "GA": "Gab\u00f3n", "GM": "Gambia", "GH": "Ghana", "GD": "Granada", "GR": "Grecia", "GL": "Groenlandia", "GP": "Guadalupe", "GU": "Guam", "GT": "Guatemala", "GG": "Guernsey", "GY": "G\u00fciana", "GF": "G\u00fciana Francesa", "GN": "Guinea", "GQ": "Guinea Ecuatorial", "HT": "Hait\u00ed", "HN": "Honduras", "HK": "Hong Kong RAE da China", "HU": "Hungr\u00eda", "BV": "Illa Bouvet", "CX": "Illa Christmas", "IM": "Illa de Man", "HM": "Illa Heard e Illas McDonald", "NF": "Illa Norfolk", "AX": "Illas \u00c5land", "BM": "Illas Bermudas", "KY": "Illas Caim\u00e1n", "CC": "Illas Cocos (Keeling)", "CK": "Illas Cook", "FO": "Illas Feroe", "FK": "Illas Malvinas", "PN": "Illas Pitcairn", "SB": "Illas Salom\u00f3n", "TC": "Illas Turks e Caicos", "VG": "Illas Virxes Brit\u00e1nicas", "VI": "Illas Virxes Estadounidenses", "GS": "Illas Xeorxia do Sur e Sandwich do Sur", "ID": "Indonesia", "IR": "Ir\u00e1n", "IQ": "Iraq", "IE": "Irlanda", "IS": "Islandia", "IL": "Israel", "IT": "Italia", "KZ": "Kazakist\u00e1n", "KE": "Kenya", "KG": "Kirguizist\u00e1n", "KI": "Kiribati", "KW": "Kuwait", "LA": "Laos", "LS": "Lesotho", "LV": "Letonia", "LR": "Liberia", "LY": "Libia", "LI": "Liechtenstein", "LT": "Lituania", "LU": "Luxemburgo", "MO": "Macau RAE da China", "MK": "Macedonia do Norte", "MG": "Madagascar", "MY": "Malaisia", "MW": "Malawi", "MV": "Maldivas", "ML": "Mal\u00ed", "MT": "Malta", "MA": "Marrocos", "MQ": "Martinica", "MU": "Mauricio", "MR": "Mauritania", "YT": "Mayotte", "MX": "M\u00e9xico", "MD": "Moldavia", "MC": "M\u00f3naco", "MN": "Mongolia", "ME": "Montenegro", "MS": "Montserrat", "MZ": "Mozambique", "MM": "Myanmar (Birmania)", "NA": "Namibia", "NR": "Nauru", "NP": "Nepal", "NI": "Nicaragua", "NU": "Niue", "NE": "N\u00edxer", "NG": "Nixeria", "NO": "Noruega", "NC": "Nova Caledonia", "NZ": "Nova Zelandia", "BR": "O Brasil", "CA": "O Canad\u00e1", "YE": "O Iemen", "LB": "O L\u00edbano", "PY": "O Paraguai", "PE": "O Per\u00fa", "GB": "O Reino Unido", "EH": "O S\u00e1hara Occidental", "SV": "O Salvador", "SD": "O Sud\u00e1n", "SS": "O Sud\u00e1n do Sur", "UY": "O Uruguai", "JP": "O Xap\u00f3n", "OM": "Om\u00e1n", "AE": "Os Emiratos \u00c1rabes Unidos", "US": "Os Estados Unidos", "NL": "Pa\u00edses Baixos", "PW": "Palau", "PA": "Panam\u00e1", "PG": "Pap\u00faa-Nova Guinea", "PK": "Paquist\u00e1n", "PL": "Polonia", "PR": "Porto Rico", "PT": "Portugal", "QA": "Qatar", "CF": "Rep\u00fablica Centroafricana", "CD": "Rep\u00fablica Democr\u00e1tica do Congo", "CG": "Rep\u00fablica do Congo", "DO": "Rep\u00fablica Dominicana", "RE": "Reuni\u00f3n", "RO": "Roman\u00eda", "RW": "Ruanda", "RU": "Rusia", "BL": "Saint Barth\u00e9lemy", "KN": "Saint Kitts e Nevis", "MF": "Saint Martin", "PM": "Saint Pierre et Miquelon", "WS": "Samoa", "AS": "Samoa Americana", "SM": "San Marino", "ST": "San Tom\u00e9 e Pr\u00edncipe", "VC": "San Vicente e As Granadinas", "SH": "Santa Helena", "LC": "Santa Luc\u00eda", "SN": "Senegal", "RS": "Serbia", "SL": "Serra Leoa", "SC": "Seychelles", "SG": "Singapur", "SX": "Sint Maarten", "SY": "Siria", "SO": "Somalia", "LK": "Sri Lanka", "SE": "Suecia", "CH": "Su\u00edza", "ZA": "Sur\u00e1frica", "SR": "Suriname", "SJ": "Svalbard e Jan Mayen", "TH": "Tailandia", "TW": "Taiw\u00e1n", "TZ": "Tanzania", "TJ": "Taxiquist\u00e1n", "IO": "Territorio Brit\u00e1nico do Oc\u00e9ano \u00cdndico", "TF": "Territorios Austrais Franceses", "TL": "Timor Leste", "TG": "Togo", "TK": "Tokelau", "TO": "Tonga", "TT": "Trinidad e Tobago", "TN": "Tunisia", "TM": "Turkmenist\u00e1n", "TR": "Turqu\u00eda", "UA": "Ucra\u00edna", "UG": "Uganda", "UZ": "Uzbekist\u00e1n", "VU": "Vanuatu", "VE": "Venezuela", "VN": "Vietnam", "WF": "Wallis e Futuna", "JM": "Xamaica", "GE": "Xeorxia", "GI": "Xibraltar", "JO": "Xordania", "ZM": "Zambia", "ZW": "Zimbabwe"} \ No newline at end of file diff --git a/desktop/src/onionshare/resources/countries/is.json b/desktop/src/onionshare/resources/countries/is.json index 608883fd..5ba082a7 100644 --- a/desktop/src/onionshare/resources/countries/is.json +++ b/desktop/src/onionshare/resources/countries/is.json @@ -1 +1 @@ -{"AF": "Afganistan", "AL": "Alban\u00eda", "DZ": "Als\u00edr", "AD": "Andorra", "AO": "Ang\u00f3la", "AI": "Angvilla", "AG": "Ant\u00edgva og Barb\u00fada", "AR": "Argent\u00edna", "AM": "Armen\u00eda", "AW": "Ar\u00faba", "AZ": "Aserba\u00eddsjan", "AT": "Austurr\u00edki", "AX": "\u00c1landseyjar", "AU": "\u00c1stral\u00eda", "BS": "Bahamaeyjar", "US": "Bandar\u00edkin", "AS": "Bandar\u00edska Sam\u00f3a", "VI": "Bandar\u00edsku J\u00f3mfr\u00faaeyjar", "BD": "Bangladess", "BB": "Barbados", "BH": "Barein", "BE": "Belg\u00eda", "BZ": "Bel\u00eds", "BJ": "Ben\u00edn", "BM": "Berm\u00fadaeyjar", "BA": "Bosn\u00eda og Herseg\u00f3v\u00edna", "BW": "Botsvana", "BV": "Bouveteyja", "BO": "B\u00f3liv\u00eda", "BR": "Brasil\u00eda", "IO": "Bresku Indlandshafseyjar", "VG": "Bresku J\u00f3mfr\u00faaeyjar", "GB": "Bretland", "BN": "Br\u00fanei", "BG": "B\u00falgar\u00eda", "BF": "B\u00fark\u00edna Fas\u00f3", "BI": "B\u00far\u00fand\u00ed", "BT": "B\u00fatan", "KY": "Caymaneyjar", "CK": "Cooks-eyjar", "CW": "Curacao", "DK": "Danm\u00f6rk", "DJ": "Dj\u00edb\u00fat\u00ed", "DM": "D\u00f3min\u00edka", "DO": "D\u00f3min\u00edska l\u00fd\u00f0veldi\u00f0", "EG": "Egyptaland", "EE": "Eistland", "EC": "Ekvador", "SV": "El Salvador", "ER": "Er\u00edtrea", "ET": "E\u00fe\u00ed\u00f3p\u00eda", "FK": "Falklandseyjar", "PH": "Filippseyjar", "FI": "Finnland", "FJ": "F\u00eddj\u00edeyjar", "CI": "F\u00edlabeinsstr\u00f6ndin", "FR": "Frakkland", "GF": "Franska Gv\u00e6jana", "PF": "Franska P\u00f3l\u00fdnes\u00eda", "TF": "Fr\u00f6nsku su\u00f0l\u00e6gu landsv\u00e6\u00f0in", "FO": "F\u00e6reyjar", "GA": "Gabon", "GM": "Gamb\u00eda", "GH": "Gana", "GE": "Georg\u00eda", "GI": "G\u00edbraltar", "GN": "G\u00ednea", "GW": "G\u00ednea-Biss\u00e1", "GD": "Grenada", "GR": "Grikkland", "CV": "Gr\u00e6nh\u00f6f\u00f0aeyjar", "GL": "Gr\u00e6nland", "GG": "Guernsey", "GP": "Gvadel\u00fapeyjar", "GU": "Gvam", "GT": "Gvatemala", "GY": "Gv\u00e6jana", "HT": "Ha\u00edt\u00ed", "HM": "Heard og McDonaldseyjar", "PS": "Heimastj\u00f3rnarsv\u00e6\u00f0i Palest\u00ednumanna", "NL": "Holland", "HN": "Hond\u00faras", "BY": "Hv\u00edta-R\u00fassland", "IN": "Indland", "ID": "Ind\u00f3nes\u00eda", "IQ": "\u00cdrak", "IR": "\u00cdran", "IE": "\u00cdrland", "IS": "\u00cdsland", "IL": "\u00cdsrael", "IT": "\u00cdtal\u00eda", "JM": "Jama\u00edka", "JP": "Japan", "YE": "Jemen", "JE": "Jersey", "CX": "J\u00f3laey", "JO": "J\u00f3rdan\u00eda", "KH": "Kamb\u00f3d\u00eda", "CM": "Kamer\u00fan", "CA": "Kanada", "BQ": "Kar\u00edbahafshluti Hollands", "KZ": "Kasakstan", "QA": "Katar", "KE": "Ken\u00eda", "KG": "Kirgistan", "CN": "K\u00edna", "KI": "K\u00edribat\u00ed", "CG": "Kong\u00f3-Brazzaville", "CD": "Kong\u00f3-Kinshasa", "CR": "Kostar\u00edka", "CC": "K\u00f3koseyjar (Keeling)", "CO": "K\u00f3lumb\u00eda", "KM": "K\u00f3moreyjar", "HR": "Kr\u00f3at\u00eda", "CU": "K\u00faba", "KW": "K\u00faveit", "CY": "K\u00fdpur", "LA": "Laos", "LS": "Les\u00f3t\u00f3", "LV": "Lettland", "LI": "Liechtenstein", "LT": "Lith\u00e1en", "LB": "L\u00edbanon", "LR": "L\u00edber\u00eda", "LY": "L\u00edb\u00eda", "LU": "L\u00faxemborg", "MG": "Madagaskar", "MY": "Malas\u00eda", "MW": "Malav\u00ed", "MV": "Mald\u00edveyjar", "ML": "Mal\u00ed", "MT": "Malta", "MA": "Marokk\u00f3", "MH": "Marshalleyjar", "MQ": "Martin\u00edk", "YT": "Mayotte", "MR": "M\u00e1ritan\u00eda", "MU": "M\u00e1rit\u00edus", "MX": "Mex\u00edk\u00f3", "CF": "Mi\u00f0-Afr\u00edkul\u00fd\u00f0veldi\u00f0", "GQ": "Mi\u00f0baugs-G\u00ednea", "FM": "M\u00edkr\u00f3nes\u00eda", "MM": "Mjanmar (B\u00farma)", "MD": "Mold\u00f3va", "MN": "Mong\u00f3l\u00eda", "MS": "Montserrat", "MC": "M\u00f3nak\u00f3", "MZ": "M\u00f3samb\u00edk", "IM": "M\u00f6n", "NA": "Namib\u00eda", "NR": "N\u00e1r\u00fa", "NP": "Nepal", "NU": "Niue", "NE": "N\u00edger", "NG": "N\u00edger\u00eda", "NI": "N\u00edkaragva", "KP": "Nor\u00f0ur-K\u00f3rea", "MK": "Nor\u00f0ur-Maked\u00f3n\u00eda", "MP": "Nor\u00f0ur-Mar\u00edanaeyjar", "NO": "Noregur", "NF": "Norfolkeyja", "NC": "N\u00fdja-Kaled\u00f3n\u00eda", "NZ": "N\u00fdja-Sj\u00e1land", "OM": "\u00d3man", "PK": "Pakistan", "PW": "Pal\u00e1", "PA": "Panama", "PG": "Pap\u00faa N\u00fdja-G\u00ednea", "PY": "Paragv\u00e6", "PE": "Per\u00fa", "PN": "Pitcairn-eyjar", "PT": "Port\u00fagal", "PL": "P\u00f3lland", "PR": "P\u00faert\u00f3 R\u00edk\u00f3", "RE": "R\u00e9union", "RW": "R\u00faanda", "RO": "R\u00famen\u00eda", "RU": "R\u00fassland", "MF": "Saint-Martin", "SB": "Sal\u00f3monseyjar", "ZM": "Samb\u00eda", "AE": "Sameinu\u00f0u arab\u00edsku furstad\u00e6min", "WS": "Sam\u00f3a", "SM": "San Mar\u00edn\u00f3", "BL": "Sankti Bart\u00f3l\u00f3meusareyjar", "SH": "Sankti Helena", "KN": "Sankti Kitts og Nevis", "LC": "Sankti L\u00fas\u00eda", "SX": "Sankti Martin", "PM": "Sankti Pierre og Miquelon", "VC": "Sankti Vinsent og Grenad\u00edneyjar", "ST": "Sa\u00f3 T\u00f3me og Prins\u00edpe", "SA": "S\u00e1di-Arab\u00eda", "SN": "Senegal", "RS": "Serb\u00eda", "SC": "Seychelles-eyjar", "HK": "s\u00e9rstj\u00f3rnarsv\u00e6\u00f0i\u00f0 Hong Kong", "MO": "s\u00e9rstj\u00f3rnarsv\u00e6\u00f0i\u00f0 Maka\u00f3", "ZW": "Simbabve", "SG": "Singap\u00far", "SL": "S\u00ederra Le\u00f3ne", "CL": "S\u00edle", "SK": "Sl\u00f3vak\u00eda", "SI": "Sl\u00f3ven\u00eda", "UM": "Sm\u00e1eyjar Bandar\u00edkjanna", "SO": "S\u00f3mal\u00eda", "ES": "Sp\u00e1nn", "LK": "Sr\u00ed Lanka", "ZA": "Su\u00f0ur-Afr\u00edka", "GS": "Su\u00f0ur-Georg\u00eda og Su\u00f0ur-Sandv\u00edkureyjar", "KR": "Su\u00f0ur-K\u00f3rea", "SS": "Su\u00f0ur-S\u00fadan", "AQ": "Su\u00f0urskautslandi\u00f0", "SD": "S\u00fadan", "SR": "S\u00far\u00ednam", "SJ": "Svalbar\u00f0i og Jan Mayen", "ME": "Svartfjallaland", "SZ": "Svas\u00edland", "CH": "Sviss", "SE": "Sv\u00ed\u00fej\u00f3\u00f0", "SY": "S\u00fdrland", "TJ": "Tadsjikistan", "TH": "Ta\u00edland", "TW": "Ta\u00edvan", "TZ": "Tansan\u00eda", "CZ": "T\u00e9kkland", "TL": "T\u00edmor-Leste", "TO": "Tonga", "TG": "T\u00f3g\u00f3", "TK": "T\u00f3kel\u00e1", "TT": "Tr\u00ednidad og T\u00f3bag\u00f3", "TD": "Tsjad", "TC": "Turks- og Caicoseyjar", "TN": "T\u00fanis", "TM": "T\u00farkmenistan", "TV": "T\u00faval\u00fa", "TR": "Tyrkland", "HU": "Ungverjaland", "UG": "\u00daganda", "UA": "\u00dakra\u00edna", "UY": "\u00dar\u00fagv\u00e6", "UZ": "\u00dasbekistan", "VU": "Van\u00faat\u00fa", "VA": "Vat\u00edkani\u00f0", "VE": "Venes\u00faela", "EH": "Vestur-Sahara", "VN": "V\u00edetnam", "WF": "Wallis- og F\u00fat\u00fanaeyjar", "DE": "\u00de\u00fdskaland"} \ No newline at end of file +{"AF": "Afganistan", "AL": "Alban\u00eda", "DZ": "Als\u00edr", "AD": "Andorra", "AO": "Ang\u00f3la", "AI": "Angvilla", "AG": "Ant\u00edgva og Barb\u00fada", "AR": "Argent\u00edna", "AM": "Armen\u00eda", "AW": "Ar\u00faba", "AZ": "Aserba\u00eddsjan", "AT": "Austurr\u00edki", "AX": "\u00c1landseyjar", "AU": "\u00c1stral\u00eda", "BS": "Bahamaeyjar", "US": "Bandar\u00edkin", "AS": "Bandar\u00edska Sam\u00f3a", "VI": "Bandar\u00edsku J\u00f3mfr\u00faaeyjar", "BD": "Bangladess", "BB": "Barbados", "BH": "Barein", "BE": "Belg\u00eda", "BZ": "Bel\u00eds", "BJ": "Ben\u00edn", "BM": "Berm\u00fadaeyjar", "BA": "Bosn\u00eda og Herseg\u00f3v\u00edna", "BW": "Botsvana", "BV": "Bouveteyja", "BO": "B\u00f3liv\u00eda", "BR": "Brasil\u00eda", "IO": "Bresku Indlandshafseyjar", "VG": "Bresku J\u00f3mfr\u00faaeyjar", "GB": "Bretland", "BN": "Br\u00fanei", "BG": "B\u00falgar\u00eda", "BF": "B\u00fark\u00edna Fas\u00f3", "BI": "B\u00far\u00fand\u00ed", "BT": "B\u00fatan", "KY": "Caymaneyjar", "CK": "Cooks-eyjar", "CW": "Curacao", "DK": "Danm\u00f6rk", "DJ": "Dj\u00edb\u00fat\u00ed", "DM": "D\u00f3min\u00edka", "DO": "D\u00f3min\u00edska l\u00fd\u00f0veldi\u00f0", "EG": "Egyptaland", "EE": "Eistland", "EC": "Ekvador", "SV": "El Salvador", "ER": "Er\u00edtrea", "ET": "E\u00fe\u00ed\u00f3p\u00eda", "FK": "Falklandseyjar", "PH": "Filippseyjar", "FI": "Finnland", "FJ": "F\u00eddj\u00edeyjar", "CI": "F\u00edlabeinsstr\u00f6ndin", "FR": "Frakkland", "GF": "Franska Gv\u00e6jana", "PF": "Franska P\u00f3l\u00fdnes\u00eda", "TF": "Fr\u00f6nsku su\u00f0l\u00e6gu landsv\u00e6\u00f0in", "FO": "F\u00e6reyjar", "GA": "Gabon", "GM": "Gamb\u00eda", "GH": "Gana", "GE": "Georg\u00eda", "GI": "G\u00edbraltar", "GN": "G\u00ednea", "GW": "G\u00ednea-Biss\u00e1", "GD": "Grenada", "GR": "Grikkland", "CV": "Gr\u00e6nh\u00f6f\u00f0aeyjar", "GL": "Gr\u00e6nland", "GG": "Guernsey", "GP": "Gvadel\u00fapeyjar", "GU": "Gvam", "GT": "Gvatemala", "GY": "Gv\u00e6jana", "HT": "Ha\u00edt\u00ed", "HM": "Heard og McDonaldseyjar", "NL": "Holland", "HN": "Hond\u00faras", "BY": "Hv\u00edta-R\u00fassland", "IN": "Indland", "ID": "Ind\u00f3nes\u00eda", "IQ": "\u00cdrak", "IR": "\u00cdran", "IE": "\u00cdrland", "IS": "\u00cdsland", "IL": "\u00cdsrael", "IT": "\u00cdtal\u00eda", "JM": "Jama\u00edka", "JP": "Japan", "YE": "Jemen", "CX": "J\u00f3laey", "JO": "J\u00f3rdan\u00eda", "KH": "Kamb\u00f3d\u00eda", "CM": "Kamer\u00fan", "CA": "Kanada", "BQ": "Kar\u00edbahafshluti Hollands", "KZ": "Kasakstan", "QA": "Katar", "KE": "Ken\u00eda", "KG": "Kirgistan", "CN": "K\u00edna", "KI": "K\u00edribat\u00ed", "CG": "Kong\u00f3-Brazzaville", "CD": "Kong\u00f3-Kinshasa", "CR": "Kostar\u00edka", "CC": "K\u00f3koseyjar (Keeling)", "CO": "K\u00f3lumb\u00eda", "KM": "K\u00f3moreyjar", "HR": "Kr\u00f3at\u00eda", "CU": "K\u00faba", "KW": "K\u00faveit", "CY": "K\u00fdpur", "LA": "Laos", "LS": "Les\u00f3t\u00f3", "LV": "Lettland", "LI": "Liechtenstein", "LT": "Lith\u00e1en", "LB": "L\u00edbanon", "LR": "L\u00edber\u00eda", "LY": "L\u00edb\u00eda", "LU": "L\u00faxemborg", "MG": "Madagaskar", "MY": "Malas\u00eda", "MW": "Malav\u00ed", "MV": "Mald\u00edveyjar", "ML": "Mal\u00ed", "MT": "Malta", "MA": "Marokk\u00f3", "MQ": "Martin\u00edk", "YT": "Mayotte", "MR": "M\u00e1ritan\u00eda", "MU": "M\u00e1rit\u00edus", "MX": "Mex\u00edk\u00f3", "CF": "Mi\u00f0-Afr\u00edkul\u00fd\u00f0veldi\u00f0", "GQ": "Mi\u00f0baugs-G\u00ednea", "MM": "Mjanmar (B\u00farma)", "MD": "Mold\u00f3va", "MN": "Mong\u00f3l\u00eda", "MS": "Montserrat", "MC": "M\u00f3nak\u00f3", "MZ": "M\u00f3samb\u00edk", "IM": "M\u00f6n", "NA": "Namib\u00eda", "NR": "N\u00e1r\u00fa", "NP": "Nepal", "NU": "Niue", "NE": "N\u00edger", "NG": "N\u00edger\u00eda", "NI": "N\u00edkaragva", "KP": "Nor\u00f0ur-K\u00f3rea", "MK": "Nor\u00f0ur-Maked\u00f3n\u00eda", "NO": "Noregur", "NF": "Norfolkeyja", "NC": "N\u00fdja-Kaled\u00f3n\u00eda", "NZ": "N\u00fdja-Sj\u00e1land", "OM": "\u00d3man", "PK": "Pakistan", "PW": "Pal\u00e1", "PA": "Panama", "PG": "Pap\u00faa N\u00fdja-G\u00ednea", "PY": "Paragv\u00e6", "PE": "Per\u00fa", "PN": "Pitcairn-eyjar", "PT": "Port\u00fagal", "PL": "P\u00f3lland", "PR": "P\u00faert\u00f3 R\u00edk\u00f3", "RE": "R\u00e9union", "RW": "R\u00faanda", "RO": "R\u00famen\u00eda", "RU": "R\u00fassland", "MF": "Saint-Martin", "SB": "Sal\u00f3monseyjar", "ZM": "Samb\u00eda", "AE": "Sameinu\u00f0u arab\u00edsku furstad\u00e6min", "WS": "Sam\u00f3a", "SM": "San Mar\u00edn\u00f3", "BL": "Sankti Bart\u00f3l\u00f3meusareyjar", "SH": "Sankti Helena", "KN": "Sankti Kitts og Nevis", "LC": "Sankti L\u00fas\u00eda", "SX": "Sankti Martin", "PM": "Sankti Pierre og Miquelon", "VC": "Sankti Vinsent og Grenad\u00edneyjar", "ST": "Sa\u00f3 T\u00f3me og Prins\u00edpe", "SA": "S\u00e1di-Arab\u00eda", "SN": "Senegal", "RS": "Serb\u00eda", "SC": "Seychelles-eyjar", "HK": "s\u00e9rstj\u00f3rnarsv\u00e6\u00f0i\u00f0 Hong Kong", "MO": "s\u00e9rstj\u00f3rnarsv\u00e6\u00f0i\u00f0 Maka\u00f3", "ZW": "Simbabve", "SG": "Singap\u00far", "SL": "S\u00ederra Le\u00f3ne", "CL": "S\u00edle", "SK": "Sl\u00f3vak\u00eda", "SI": "Sl\u00f3ven\u00eda", "SO": "S\u00f3mal\u00eda", "ES": "Sp\u00e1nn", "LK": "Sr\u00ed Lanka", "ZA": "Su\u00f0ur-Afr\u00edka", "GS": "Su\u00f0ur-Georg\u00eda og Su\u00f0ur-Sandv\u00edkureyjar", "KR": "Su\u00f0ur-K\u00f3rea", "SS": "Su\u00f0ur-S\u00fadan", "AQ": "Su\u00f0urskautslandi\u00f0", "SD": "S\u00fadan", "SR": "S\u00far\u00ednam", "SJ": "Svalbar\u00f0i og Jan Mayen", "ME": "Svartfjallaland", "SZ": "Svas\u00edland", "CH": "Sviss", "SE": "Sv\u00ed\u00fej\u00f3\u00f0", "SY": "S\u00fdrland", "TJ": "Tadsjikistan", "TH": "Ta\u00edland", "TW": "Ta\u00edvan", "TZ": "Tansan\u00eda", "CZ": "T\u00e9kkland", "TL": "T\u00edmor-Leste", "TO": "Tonga", "TG": "T\u00f3g\u00f3", "TK": "T\u00f3kel\u00e1", "TT": "Tr\u00ednidad og T\u00f3bag\u00f3", "TD": "Tsjad", "TC": "Turks- og Caicoseyjar", "TN": "T\u00fanis", "TM": "T\u00farkmenistan", "TR": "Tyrkland", "HU": "Ungverjaland", "UG": "\u00daganda", "UA": "\u00dakra\u00edna", "UY": "\u00dar\u00fagv\u00e6", "UZ": "\u00dasbekistan", "VU": "Van\u00faat\u00fa", "VA": "Vat\u00edkani\u00f0", "VE": "Venes\u00faela", "EH": "Vestur-Sahara", "VN": "V\u00edetnam", "WF": "Wallis- og F\u00fat\u00fanaeyjar", "DE": "\u00de\u00fdskaland"} \ No newline at end of file diff --git a/desktop/src/onionshare/resources/countries/lt.json b/desktop/src/onionshare/resources/countries/lt.json index 1b4af8cf..51afdefa 100644 --- a/desktop/src/onionshare/resources/countries/lt.json +++ b/desktop/src/onionshare/resources/countries/lt.json @@ -1 +1 @@ -{"AF": "Afganistanas", "IE": "Airija", "AX": "Aland\u0173 Salos", "AL": "Albanija", "DZ": "Al\u017eyras", "AS": "Amerikos Samoa", "AD": "Andora", "AI": "Angilija", "AO": "Angola", "AQ": "Antarktida", "AG": "Antigva ir Barbuda", "AR": "Argentina", "AM": "Arm\u0117nija", "AW": "Aruba", "AU": "Australija", "AT": "Austrija", "AZ": "Azerbaid\u017eanas", "BS": "Bahamos", "BH": "Bahreinas", "BY": "Baltarusija", "BD": "Banglade\u0161as", "BB": "Barbadosas", "BE": "Belgija", "BZ": "Belizas", "BJ": "Beninas", "BM": "Bermuda", "GW": "Bisau Gvin\u0117ja", "BO": "Bolivija", "BA": "Bosnija ir Hercegovina", "BW": "Botsvana", "BR": "Brazilija", "BN": "Brun\u0117jus", "BG": "Bulgarija", "BF": "Burkina Fasas", "BI": "Burundis", "BT": "Butanas", "BV": "Buv\u0117 Sala", "CF": "Centrin\u0117s Afrikos Respublika", "TD": "\u010cadas", "CZ": "\u010cekija", "CL": "\u010cil\u0117", "DK": "Danija", "VG": "Did\u017eiosios Britanijos Mergeli\u0173 Salos", "DM": "Dominika", "DO": "Dominikos Respublika", "CI": "Dramblio Kaulo Krantas", "JE": "D\u017eersis", "DJ": "D\u017eibutis", "EG": "Egiptas", "EC": "Ekvadoras", "ER": "Eritr\u0117ja", "EE": "Estija", "ET": "Etiopija", "FO": "Farer\u0173 Salos", "FJ": "Fid\u017eis", "PH": "Filipinai", "FK": "Folklando Salos", "GA": "Gabonas", "GY": "Gajana", "GM": "Gambija", "GH": "Gana", "GG": "Gernsis", "GI": "Gibraltaras", "GR": "Graikija", "GD": "Grenada", "GL": "Grenlandija", "GE": "Gruzija", "GU": "Guamas", "GP": "Gvadelupa", "GT": "Gvatemala", "GN": "Gvin\u0117ja", "HT": "Haitis", "HM": "Herdo ir Makdonaldo Salos", "HN": "Hond\u016bras", "IN": "Indija", "IO": "Indijos Vandenyno Brit\u0173 Sritis", "ID": "Indonezija", "HK": "Ypatingasis Administracinis Kinijos Regionas Honkongas", "MO": "Ypatingasis Administracinis Kinijos Regionas Makao", "IQ": "Irakas", "IR": "Iranas", "IS": "Islandija", "ES": "Ispanija", "IT": "Italija", "IL": "Izraelis", "JM": "Jamaika", "JP": "Japonija", "YE": "Jemenas", "JO": "Jordanija", "GB": "Jungtin\u0117 Karalyst\u0117", "US": "Jungtin\u0117s Valstijos", "AE": "Jungtiniai Arab\u0173 Emyratai", "UM": "Jungtini\u0173 Valstij\u0173 Ma\u017eosios Tolimosios Salos", "VI": "Jungtini\u0173 Valstij\u0173 Mergeli\u0173 Salos", "ME": "Juodkalnija", "KY": "Kaiman\u0173 Salos", "CX": "Kal\u0117d\u0173 Sala", "KH": "Kambod\u017ea", "CM": "Kamer\u016bnas", "CA": "Kanada", "BQ": "Karib\u0173 Nyderlandai", "QA": "Kataras", "KZ": "Kazachstanas", "KE": "Kenija", "CN": "Kinija", "CY": "Kipras", "KG": "Kirgizija", "KI": "Kiribatis", "CW": "Kiurasao", "CC": "Kokos\u0173 (Kilingo) Salos", "CO": "Kolumbija", "KM": "Komorai", "CG": "Kongas-Brazavilis", "CD": "Kongas-Kin\u0161asa", "CR": "Kosta Rika", "HR": "Kroatija", "CU": "Kuba", "CK": "Kuko Salos", "KW": "Kuveitas", "LA": "Laosas", "LV": "Latvija", "PL": "Lenkija", "LS": "Lesotas", "LB": "Libanas", "LR": "Liberija", "LY": "Libija", "LI": "Lichten\u0161teinas", "LT": "Lietuva", "LU": "Liuksemburgas", "MG": "Madagaskaras", "YT": "Majotas", "MY": "Malaizija", "MW": "Malavis", "MV": "Maldyvai", "ML": "Malis", "MT": "Malta", "MP": "Marianos \u0160iaurin\u0117s Salos", "MA": "Marokas", "MH": "Mar\u0161alo Salos", "MQ": "Martinika", "MU": "Mauricijus", "MR": "Mauritanija", "MX": "Meksika", "IM": "Meno Sala", "MM": "Mianmaras (Birma)", "FM": "Mikronezija", "MD": "Moldova", "MC": "Monakas", "MN": "Mongolija", "MS": "Montseratas", "MZ": "Mozambikas", "NA": "Namibija", "NC": "Naujoji Kaledonija", "NZ": "Naujoji Zelandija", "NR": "Nauru", "NP": "Nepalas", "NL": "Nyderlandai", "NG": "Nigerija", "NE": "Nigeris", "NI": "Nikaragva", "NU": "Niuj\u0117", "NF": "Norfolko sala", "NO": "Norvegija", "OM": "Omanas", "PK": "Pakistanas", "PW": "Palau", "PS": "Palestinos teritorija", "PA": "Panama", "PG": "Papua Naujoji Gvin\u0117ja", "PY": "Paragvajus", "PE": "Peru", "ZA": "Piet\u0173 Afrika", "GS": "Piet\u0173 D\u017eord\u017eija ir Piet\u0173 Sandvi\u010do salos", "KR": "Piet\u0173 Kor\u0117ja", "SS": "Piet\u0173 Sudanas", "PN": "Pitkerno salos", "PT": "Portugalija", "FR": "Pranc\u016bzija", "GF": "Pranc\u016bzijos Gviana", "TF": "Pranc\u016bzijos Piet\u0173 sritys", "PF": "Pranc\u016bzijos Polinezija", "PR": "Puerto Rikas", "GQ": "Pusiaujo Gvin\u0117ja", "RE": "Reunjonas", "TL": "Ryt\u0173 Timoras", "RW": "Ruanda", "RO": "Rumunija", "RU": "Rusija", "SB": "Saliamono Salos", "SV": "Salvadoras", "WS": "Samoa", "SM": "San Marinas", "ST": "San Tom\u0117 ir Prinsip\u0117", "SA": "Saudo Arabija", "SC": "Sei\u0161eliai", "BL": "Sen Bartelemi", "MF": "Sen Martenas", "PM": "Sen Pjeras ir Mikelonas", "SN": "Senegalas", "KN": "Sent Kitsas ir Nevis", "LC": "Sent Lusija", "RS": "Serbija", "SL": "Siera Leon\u0117", "SG": "Singap\u016bras", "SX": "Sint Martenas", "SY": "Sirija", "SK": "Slovakija", "SI": "Slov\u0117nija", "SO": "Somalis", "SD": "Sudanas", "FI": "Suomija", "SR": "Surinamas", "SJ": "Svalbardas ir Janas Majenas", "SZ": "Svazilandas", "KP": "\u0160iaur\u0117s Kor\u0117ja", "MK": "\u0160iaur\u0117s Makedonija", "LK": "\u0160ri Lanka", "SH": "\u0160v. Elenos Sala", "SE": "\u0160vedija", "CH": "\u0160veicarija", "VC": "\u0160ventasis Vincentas ir Grenadinai", "TJ": "Tad\u017eikija", "TH": "Tailandas", "TW": "Taivanas", "TZ": "Tanzanija", "TC": "Terkso ir Kaikoso Salos", "TG": "Togas", "TK": "Tokelau", "TO": "Tonga", "TT": "Trinidadas ir Tobagas", "TN": "Tunisas", "TR": "Turkija", "TM": "Turkm\u0117nistanas", "TV": "Tuvalu", "UG": "Uganda", "UA": "Ukraina", "UY": "Urugvajus", "UZ": "Uzbekistanas", "EH": "Vakar\u0173 Sachara", "VU": "Vanuatu", "VA": "Vatikano Miesto Valstyb\u0117", "VE": "Venesuela", "HU": "Vengrija", "VN": "Vietnamas", "DE": "Vokietija", "WF": "Volisas ir Fut\u016bna", "ZM": "Zambija", "ZW": "Zimbabv\u0117", "CV": "\u017daliasis Ky\u0161ulys"} \ No newline at end of file +{"AF": "Afganistanas", "IE": "Airija", "AX": "Aland\u0173 Salos", "AL": "Albanija", "DZ": "Al\u017eyras", "AS": "Amerikos Samoa", "AD": "Andora", "AI": "Angilija", "AO": "Angola", "AQ": "Antarktida", "AG": "Antigva ir Barbuda", "AR": "Argentina", "AM": "Arm\u0117nija", "AW": "Aruba", "AU": "Australija", "AT": "Austrija", "AZ": "Azerbaid\u017eanas", "BS": "Bahamos", "BH": "Bahreinas", "BY": "Baltarusija", "BD": "Banglade\u0161as", "BB": "Barbadosas", "BE": "Belgija", "BZ": "Belizas", "BJ": "Beninas", "BM": "Bermuda", "GW": "Bisau Gvin\u0117ja", "BO": "Bolivija", "BA": "Bosnija ir Hercegovina", "BW": "Botsvana", "BR": "Brazilija", "BN": "Brun\u0117jus", "BG": "Bulgarija", "BF": "Burkina Fasas", "BI": "Burundis", "BT": "Butanas", "BV": "Buv\u0117 Sala", "CF": "Centrin\u0117s Afrikos Respublika", "TD": "\u010cadas", "CZ": "\u010cekija", "CL": "\u010cil\u0117", "DK": "Danija", "VG": "Did\u017eiosios Britanijos Mergeli\u0173 Salos", "DM": "Dominika", "DO": "Dominikos Respublika", "CI": "Dramblio Kaulo Krantas", "DJ": "D\u017eibutis", "EG": "Egiptas", "EC": "Ekvadoras", "ER": "Eritr\u0117ja", "EE": "Estija", "ET": "Etiopija", "FO": "Farer\u0173 Salos", "FJ": "Fid\u017eis", "PH": "Filipinai", "FK": "Folklando Salos", "GA": "Gabonas", "GY": "Gajana", "GM": "Gambija", "GH": "Gana", "GG": "Gernsis", "GI": "Gibraltaras", "GR": "Graikija", "GD": "Grenada", "GL": "Grenlandija", "GE": "Gruzija", "GU": "Guamas", "GP": "Gvadelupa", "GT": "Gvatemala", "GN": "Gvin\u0117ja", "HT": "Haitis", "HM": "Herdo ir Makdonaldo Salos", "HN": "Hond\u016bras", "IN": "Indija", "IO": "Indijos Vandenyno Brit\u0173 Sritis", "ID": "Indonezija", "HK": "Ypatingasis Administracinis Kinijos Regionas Honkongas", "MO": "Ypatingasis Administracinis Kinijos Regionas Makao", "IQ": "Irakas", "IR": "Iranas", "IS": "Islandija", "ES": "Ispanija", "IT": "Italija", "IL": "Izraelis", "JM": "Jamaika", "JP": "Japonija", "YE": "Jemenas", "JO": "Jordanija", "GB": "Jungtin\u0117 Karalyst\u0117", "US": "Jungtin\u0117s Valstijos", "AE": "Jungtiniai Arab\u0173 Emyratai", "VI": "Jungtini\u0173 Valstij\u0173 Mergeli\u0173 Salos", "ME": "Juodkalnija", "KY": "Kaiman\u0173 Salos", "CX": "Kal\u0117d\u0173 Sala", "KH": "Kambod\u017ea", "CM": "Kamer\u016bnas", "CA": "Kanada", "BQ": "Karib\u0173 Nyderlandai", "QA": "Kataras", "KZ": "Kazachstanas", "KE": "Kenija", "CN": "Kinija", "CY": "Kipras", "KG": "Kirgizija", "KI": "Kiribatis", "CW": "Kiurasao", "CC": "Kokos\u0173 (Kilingo) Salos", "CO": "Kolumbija", "KM": "Komorai", "CG": "Kongas-Brazavilis", "CD": "Kongas-Kin\u0161asa", "CR": "Kosta Rika", "HR": "Kroatija", "CU": "Kuba", "CK": "Kuko Salos", "KW": "Kuveitas", "LA": "Laosas", "LV": "Latvija", "PL": "Lenkija", "LS": "Lesotas", "LB": "Libanas", "LR": "Liberija", "LY": "Libija", "LI": "Lichten\u0161teinas", "LT": "Lietuva", "LU": "Liuksemburgas", "MG": "Madagaskaras", "YT": "Majotas", "MY": "Malaizija", "MW": "Malavis", "MV": "Maldyvai", "ML": "Malis", "MT": "Malta", "MA": "Marokas", "MQ": "Martinika", "MU": "Mauricijus", "MR": "Mauritanija", "MX": "Meksika", "IM": "Meno Sala", "MM": "Mianmaras (Birma)", "MD": "Moldova", "MC": "Monakas", "MN": "Mongolija", "MS": "Montseratas", "MZ": "Mozambikas", "NA": "Namibija", "NC": "Naujoji Kaledonija", "NZ": "Naujoji Zelandija", "NR": "Nauru", "NP": "Nepalas", "NL": "Nyderlandai", "NG": "Nigerija", "NE": "Nigeris", "NI": "Nikaragva", "NU": "Niuj\u0117", "NF": "Norfolko sala", "NO": "Norvegija", "OM": "Omanas", "PK": "Pakistanas", "PW": "Palau", "PA": "Panama", "PG": "Papua Naujoji Gvin\u0117ja", "PY": "Paragvajus", "PE": "Peru", "ZA": "Piet\u0173 Afrika", "GS": "Piet\u0173 D\u017eord\u017eija ir Piet\u0173 Sandvi\u010do salos", "KR": "Piet\u0173 Kor\u0117ja", "SS": "Piet\u0173 Sudanas", "PN": "Pitkerno salos", "PT": "Portugalija", "FR": "Pranc\u016bzija", "GF": "Pranc\u016bzijos Gviana", "TF": "Pranc\u016bzijos Piet\u0173 sritys", "PF": "Pranc\u016bzijos Polinezija", "PR": "Puerto Rikas", "GQ": "Pusiaujo Gvin\u0117ja", "RE": "Reunjonas", "TL": "Ryt\u0173 Timoras", "RW": "Ruanda", "RO": "Rumunija", "RU": "Rusija", "SB": "Saliamono Salos", "SV": "Salvadoras", "WS": "Samoa", "SM": "San Marinas", "ST": "San Tom\u0117 ir Prinsip\u0117", "SA": "Saudo Arabija", "SC": "Sei\u0161eliai", "BL": "Sen Bartelemi", "MF": "Sen Martenas", "PM": "Sen Pjeras ir Mikelonas", "SN": "Senegalas", "KN": "Sent Kitsas ir Nevis", "LC": "Sent Lusija", "RS": "Serbija", "SL": "Siera Leon\u0117", "SG": "Singap\u016bras", "SX": "Sint Martenas", "SY": "Sirija", "SK": "Slovakija", "SI": "Slov\u0117nija", "SO": "Somalis", "SD": "Sudanas", "FI": "Suomija", "SR": "Surinamas", "SJ": "Svalbardas ir Janas Majenas", "SZ": "Svazilandas", "KP": "\u0160iaur\u0117s Kor\u0117ja", "MK": "\u0160iaur\u0117s Makedonija", "LK": "\u0160ri Lanka", "SH": "\u0160v. Elenos Sala", "SE": "\u0160vedija", "CH": "\u0160veicarija", "VC": "\u0160ventasis Vincentas ir Grenadinai", "TJ": "Tad\u017eikija", "TH": "Tailandas", "TW": "Taivanas", "TZ": "Tanzanija", "TC": "Terkso ir Kaikoso Salos", "TG": "Togas", "TK": "Tokelau", "TO": "Tonga", "TT": "Trinidadas ir Tobagas", "TN": "Tunisas", "TR": "Turkija", "TM": "Turkm\u0117nistanas", "UG": "Uganda", "UA": "Ukraina", "UY": "Urugvajus", "UZ": "Uzbekistanas", "EH": "Vakar\u0173 Sachara", "VU": "Vanuatu", "VA": "Vatikano Miesto Valstyb\u0117", "VE": "Venesuela", "HU": "Vengrija", "VN": "Vietnamas", "DE": "Vokietija", "WF": "Volisas ir Fut\u016bna", "ZM": "Zambija", "ZW": "Zimbabv\u0117", "CV": "\u017daliasis Ky\u0161ulys"} \ No newline at end of file diff --git a/desktop/src/onionshare/resources/countries/nb_NO.json b/desktop/src/onionshare/resources/countries/nb_NO.json index b0780387..2134d702 100644 --- a/desktop/src/onionshare/resources/countries/nb_NO.json +++ b/desktop/src/onionshare/resources/countries/nb_NO.json @@ -1 +1 @@ -{"AF": "Afghanistan", "AL": "Albania", "DZ": "Algerie", "AS": "Amerikansk Samoa", "AD": "Andorra", "AO": "Angola", "AI": "Anguilla", "AQ": "Antarktis", "AG": "Antigua og Barbuda", "AR": "Argentina", "AM": "Armenia", "AW": "Aruba", "AZ": "Aserbajdsjan", "AU": "Australia", "BS": "Bahamas", "BH": "Bahrain", "BD": "Bangladesh", "BB": "Barbados", "BE": "Belgia", "BZ": "Belize", "BJ": "Benin", "BM": "Bermuda", "BT": "Bhutan", "BO": "Bolivia", "BA": "Bosnia-Hercegovina", "BW": "Botswana", "BV": "Bouvet\u00f8ya", "BR": "Brasil", "BN": "Brunei", "BG": "Bulgaria", "BF": "Burkina Faso", "BI": "Burundi", "CA": "Canada", "KY": "Cayman\u00f8yene", "CL": "Chile", "CX": "Christmas\u00f8ya", "CO": "Colombia", "CK": "Cook\u00f8yene", "CR": "Costa Rica", "CU": "Cuba", "CW": "Cura\u00e7ao", "DK": "Danmark", "VI": "De amerikanske jomfru\u00f8yene", "VG": "De britiske jomfru\u00f8yene", "AE": "De forente arabiske emirater", "TF": "De franske s\u00f8rterritorier", "DO": "Den dominikanske republikk", "CF": "Den sentralafrikanske republikk", "IO": "Det britiske territoriet i Indiahavet", "PS": "Det palestinske omr\u00e5det", "DJ": "Djibouti", "DM": "Dominica", "EC": "Ecuador", "EG": "Egypt", "GQ": "Ekvatorial-Guinea", "SV": "El Salvador", "CI": "Elfenbenskysten", "ER": "Eritrea", "EE": "Estland", "SZ": "Eswatini", "ET": "Etiopia", "FK": "Falklands\u00f8yene", "FJ": "Fiji", "PH": "Filippinene", "FI": "Finland", "FR": "Frankrike", "GF": "Fransk Guyana", "PF": "Fransk Polynesia", "FO": "F\u00e6r\u00f8yene", "GA": "Gabon", "GM": "Gambia", "GE": "Georgia", "GH": "Ghana", "GI": "Gibraltar", "GD": "Grenada", "GL": "Gr\u00f8nland", "GP": "Guadeloupe", "GU": "Guam", "GT": "Guatemala", "GG": "Guernsey", "GN": "Guinea", "GW": "Guinea-Bissau", "GY": "Guyana", "HT": "Haiti", "HM": "Heard- og McDonald\u00f8yene", "GR": "Hellas", "HN": "Honduras", "HK": "Hongkong S.A.R. Kina", "BY": "Hviterussland", "IN": "India", "ID": "Indonesia", "IQ": "Irak", "IR": "Iran", "IE": "Irland", "IS": "Island", "IL": "Israel", "IT": "Italia", "JM": "Jamaica", "JP": "Japan", "YE": "Jemen", "JE": "Jersey", "JO": "Jordan", "KH": "Kambodsja", "CM": "Kamerun", "CV": "Kapp Verde", "BQ": "Karibisk Nederland", "KZ": "Kasakhstan", "KE": "Kenya", "CN": "Kina", "KG": "Kirgisistan", "KI": "Kiribati", "CC": "Kokos\u00f8yene", "KM": "Komorene", "CG": "Kongo-Brazzaville", "CD": "Kongo-Kinshasa", "HR": "Kroatia", "KW": "Kuwait", "CY": "Kypros", "LA": "Laos", "LV": "Latvia", "LS": "Lesotho", "LB": "Libanon", "LR": "Liberia", "LY": "Libya", "LI": "Liechtenstein", "LT": "Litauen", "LU": "Luxemburg", "MO": "Macao S.A.R. Kina", "MG": "Madagaskar", "MW": "Malawi", "MY": "Malaysia", "MV": "Maldivene", "ML": "Mali", "MT": "Malta", "IM": "Man", "MA": "Marokko", "MH": "Marshall\u00f8yene", "MQ": "Martinique", "MR": "Mauritania", "MU": "Mauritius", "YT": "Mayotte", "MX": "Mexico", "FM": "Mikronesiaf\u00f8derasjonen", "MD": "Moldova", "MC": "Monaco", "MN": "Mongolia", "ME": "Montenegro", "MS": "Montserrat", "MZ": "Mosambik", "MM": "Myanmar (Burma)", "NA": "Namibia", "NR": "Nauru", "NL": "Nederland", "NP": "Nepal", "NZ": "New Zealand", "NI": "Nicaragua", "NE": "Niger", "NG": "Nigeria", "NU": "Niue", "KP": "Nord-Korea", "MK": "Nord-Makedonia", "MP": "Nord-Marianene", "NF": "Norfolk\u00f8ya", "NO": "Norge", "NC": "Ny-Caledonia", "OM": "Oman", "PK": "Pakistan", "PW": "Palau", "PA": "Panama", "PG": "Papua Ny-Guinea", "PY": "Paraguay", "PE": "Peru", "PN": "Pitcairn\u00f8yene", "PL": "Polen", "PT": "Portugal", "PR": "Puerto Rico", "QA": "Qatar", "RE": "R\u00e9union", "RO": "Romania", "RU": "Russland", "RW": "Rwanda", "KN": "Saint Kitts og Nevis", "BL": "Saint-Barth\u00e9lemy", "MF": "Saint-Martin", "PM": "Saint-Pierre-et-Miquelon", "SB": "Salomon\u00f8yene", "WS": "Samoa", "SM": "San Marino", "ST": "S\u00e3o Tom\u00e9 og Pr\u00edncipe", "SA": "Saudi-Arabia", "SN": "Senegal", "RS": "Serbia", "SC": "Seychellene", "SL": "Sierra Leone", "SG": "Singapore", "SX": "Sint Maarten", "SK": "Slovakia", "SI": "Slovenia", "SO": "Somalia", "ES": "Spania", "LK": "Sri Lanka", "SH": "St. Helena", "LC": "St. Lucia", "VC": "St. Vincent og Grenadinene", "GB": "Storbritannia", "SD": "Sudan", "SR": "Surinam", "SJ": "Svalbard og Jan Mayen", "CH": "Sveits", "SE": "Sverige", "SY": "Syria", "ZA": "S\u00f8r-Afrika", "GS": "S\u00f8r-Georgia og S\u00f8r-Sandwich\u00f8yene", "KR": "S\u00f8r-Korea", "SS": "S\u00f8r-Sudan", "TJ": "Tadsjikistan", "TW": "Taiwan", "TZ": "Tanzania", "TH": "Thailand", "TG": "Togo", "TK": "Tokelau", "TO": "Tonga", "TT": "Trinidad og Tobago", "TD": "Tsjad", "CZ": "Tsjekkia", "TN": "Tunisia", "TM": "Turkmenistan", "TC": "Turks- og Caicos\u00f8yene", "TV": "Tuvalu", "TR": "Tyrkia", "DE": "Tyskland", "UG": "Uganda", "UA": "Ukraina", "HU": "Ungarn", "UY": "Uruguay", "US": "USA", "UM": "USAs ytre \u00f8yer", "UZ": "Usbekistan", "VU": "Vanuatu", "VA": "Vatikanstaten", "VE": "Venezuela", "EH": "Vest-Sahara", "VN": "Vietnam", "WF": "Wallis og Futuna", "ZM": "Zambia", "ZW": "Zimbabwe", "TL": "\u00d8st-Timor", "AT": "\u00d8sterrike", "AX": "\u00c5land"} \ No newline at end of file +{"AF": "Afghanistan", "AL": "Albania", "DZ": "Algerie", "AS": "Amerikansk Samoa", "AD": "Andorra", "AO": "Angola", "AI": "Anguilla", "AQ": "Antarktis", "AG": "Antigua og Barbuda", "AR": "Argentina", "AM": "Armenia", "AW": "Aruba", "AZ": "Aserbajdsjan", "AU": "Australia", "BS": "Bahamas", "BH": "Bahrain", "BD": "Bangladesh", "BB": "Barbados", "BE": "Belgia", "BZ": "Belize", "BJ": "Benin", "BM": "Bermuda", "BT": "Bhutan", "BO": "Bolivia", "BA": "Bosnia-Hercegovina", "BW": "Botswana", "BV": "Bouvet\u00f8ya", "BR": "Brasil", "BN": "Brunei", "BG": "Bulgaria", "BF": "Burkina Faso", "BI": "Burundi", "CA": "Canada", "KY": "Cayman\u00f8yene", "CL": "Chile", "CX": "Christmas\u00f8ya", "CO": "Colombia", "CK": "Cook\u00f8yene", "CR": "Costa Rica", "CU": "Cuba", "CW": "Cura\u00e7ao", "DK": "Danmark", "VI": "De amerikanske jomfru\u00f8yene", "VG": "De britiske jomfru\u00f8yene", "AE": "De forente arabiske emirater", "TF": "De franske s\u00f8rterritorier", "DO": "Den dominikanske republikk", "CF": "Den sentralafrikanske republikk", "IO": "Det britiske territoriet i Indiahavet", "DJ": "Djibouti", "DM": "Dominica", "EC": "Ecuador", "EG": "Egypt", "GQ": "Ekvatorial-Guinea", "SV": "El Salvador", "CI": "Elfenbenskysten", "ER": "Eritrea", "EE": "Estland", "SZ": "Eswatini", "ET": "Etiopia", "FK": "Falklands\u00f8yene", "FJ": "Fiji", "PH": "Filippinene", "FI": "Finland", "FR": "Frankrike", "GF": "Fransk Guyana", "PF": "Fransk Polynesia", "FO": "F\u00e6r\u00f8yene", "GA": "Gabon", "GM": "Gambia", "GE": "Georgia", "GH": "Ghana", "GI": "Gibraltar", "GD": "Grenada", "GL": "Gr\u00f8nland", "GP": "Guadeloupe", "GU": "Guam", "GT": "Guatemala", "GG": "Guernsey", "GN": "Guinea", "GW": "Guinea-Bissau", "GY": "Guyana", "HT": "Haiti", "HM": "Heard- og McDonald\u00f8yene", "GR": "Hellas", "HN": "Honduras", "HK": "Hongkong S.A.R. Kina", "BY": "Hviterussland", "IN": "India", "ID": "Indonesia", "IQ": "Irak", "IR": "Iran", "IE": "Irland", "IS": "Island", "IL": "Israel", "IT": "Italia", "JM": "Jamaica", "JP": "Japan", "YE": "Jemen", "JO": "Jordan", "KH": "Kambodsja", "CM": "Kamerun", "CV": "Kapp Verde", "BQ": "Karibisk Nederland", "KZ": "Kasakhstan", "KE": "Kenya", "CN": "Kina", "KG": "Kirgisistan", "KI": "Kiribati", "CC": "Kokos\u00f8yene", "KM": "Komorene", "CG": "Kongo-Brazzaville", "CD": "Kongo-Kinshasa", "HR": "Kroatia", "KW": "Kuwait", "CY": "Kypros", "LA": "Laos", "LV": "Latvia", "LS": "Lesotho", "LB": "Libanon", "LR": "Liberia", "LY": "Libya", "LI": "Liechtenstein", "LT": "Litauen", "LU": "Luxemburg", "MO": "Macao S.A.R. Kina", "MG": "Madagaskar", "MW": "Malawi", "MY": "Malaysia", "MV": "Maldivene", "ML": "Mali", "MT": "Malta", "IM": "Man", "MA": "Marokko", "MQ": "Martinique", "MR": "Mauritania", "MU": "Mauritius", "YT": "Mayotte", "MX": "Mexico", "MD": "Moldova", "MC": "Monaco", "MN": "Mongolia", "ME": "Montenegro", "MS": "Montserrat", "MZ": "Mosambik", "MM": "Myanmar (Burma)", "NA": "Namibia", "NR": "Nauru", "NL": "Nederland", "NP": "Nepal", "NZ": "New Zealand", "NI": "Nicaragua", "NE": "Niger", "NG": "Nigeria", "NU": "Niue", "KP": "Nord-Korea", "MK": "Nord-Makedonia", "NF": "Norfolk\u00f8ya", "NO": "Norge", "NC": "Ny-Caledonia", "OM": "Oman", "PK": "Pakistan", "PW": "Palau", "PA": "Panama", "PG": "Papua Ny-Guinea", "PY": "Paraguay", "PE": "Peru", "PN": "Pitcairn\u00f8yene", "PL": "Polen", "PT": "Portugal", "PR": "Puerto Rico", "QA": "Qatar", "RE": "R\u00e9union", "RO": "Romania", "RU": "Russland", "RW": "Rwanda", "KN": "Saint Kitts og Nevis", "BL": "Saint-Barth\u00e9lemy", "MF": "Saint-Martin", "PM": "Saint-Pierre-et-Miquelon", "SB": "Salomon\u00f8yene", "WS": "Samoa", "SM": "San Marino", "ST": "S\u00e3o Tom\u00e9 og Pr\u00edncipe", "SA": "Saudi-Arabia", "SN": "Senegal", "RS": "Serbia", "SC": "Seychellene", "SL": "Sierra Leone", "SG": "Singapore", "SX": "Sint Maarten", "SK": "Slovakia", "SI": "Slovenia", "SO": "Somalia", "ES": "Spania", "LK": "Sri Lanka", "SH": "St. Helena", "LC": "St. Lucia", "VC": "St. Vincent og Grenadinene", "GB": "Storbritannia", "SD": "Sudan", "SR": "Surinam", "SJ": "Svalbard og Jan Mayen", "CH": "Sveits", "SE": "Sverige", "SY": "Syria", "ZA": "S\u00f8r-Afrika", "GS": "S\u00f8r-Georgia og S\u00f8r-Sandwich\u00f8yene", "KR": "S\u00f8r-Korea", "SS": "S\u00f8r-Sudan", "TJ": "Tadsjikistan", "TW": "Taiwan", "TZ": "Tanzania", "TH": "Thailand", "TG": "Togo", "TK": "Tokelau", "TO": "Tonga", "TT": "Trinidad og Tobago", "TD": "Tsjad", "CZ": "Tsjekkia", "TN": "Tunisia", "TM": "Turkmenistan", "TC": "Turks- og Caicos\u00f8yene", "TR": "Tyrkia", "DE": "Tyskland", "UG": "Uganda", "UA": "Ukraina", "HU": "Ungarn", "UY": "Uruguay", "US": "USA", "UZ": "Usbekistan", "VU": "Vanuatu", "VA": "Vatikanstaten", "VE": "Venezuela", "EH": "Vest-Sahara", "VN": "Vietnam", "WF": "Wallis og Futuna", "ZM": "Zambia", "ZW": "Zimbabwe", "TL": "\u00d8st-Timor", "AT": "\u00d8sterrike", "AX": "\u00c5land"} \ No newline at end of file diff --git a/desktop/src/onionshare/resources/countries/pl.json b/desktop/src/onionshare/resources/countries/pl.json index bf6c6e3b..8d102e77 100644 --- a/desktop/src/onionshare/resources/countries/pl.json +++ b/desktop/src/onionshare/resources/countries/pl.json @@ -1 +1 @@ -{"AF": "Afganistan", "AL": "Albania", "DZ": "Algieria", "AD": "Andora", "AO": "Angola", "AI": "Anguilla", "AQ": "Antarktyda", "AG": "Antigua i Barbuda", "SA": "Arabia Saudyjska", "AR": "Argentyna", "AM": "Armenia", "AW": "Aruba", "AU": "Australia", "AT": "Austria", "AZ": "Azerbejd\u017can", "BS": "Bahamy", "BH": "Bahrajn", "BD": "Bangladesz", "BB": "Barbados", "BE": "Belgia", "BZ": "Belize", "BJ": "Benin", "BM": "Bermudy", "BT": "Bhutan", "BY": "Bia\u0142oru\u015b", "BO": "Boliwia", "BA": "Bo\u015bnia i Hercegowina", "BW": "Botswana", "BR": "Brazylia", "BN": "Brunei", "IO": "Brytyjskie Terytorium Oceanu Indyjskiego", "VG": "Brytyjskie Wyspy Dziewicze", "BG": "Bu\u0142garia", "BF": "Burkina Faso", "BI": "Burundi", "CL": "Chile", "CN": "Chiny", "HR": "Chorwacja", "CI": "C\u00f4te d\u2019Ivoire", "CW": "Cura\u00e7ao", "CY": "Cypr", "TD": "Czad", "ME": "Czarnog\u00f3ra", "CZ": "Czechy", "UM": "Dalekie Wyspy Mniejsze Stan\u00f3w Zjednoczonych", "DK": "Dania", "CD": "Demokratyczna Republika Konga", "DM": "Dominika", "DO": "Dominikana", "DJ": "D\u017cibuti", "EG": "Egipt", "EC": "Ekwador", "ER": "Erytrea", "EE": "Estonia", "SZ": "Eswatini", "ET": "Etiopia", "FK": "Falklandy", "FJ": "Fid\u017ci", "PH": "Filipiny", "FI": "Finlandia", "FR": "Francja", "TF": "Francuskie Terytoria Po\u0142udniowe i Antarktyczne", "GA": "Gabon", "GM": "Gambia", "GS": "Georgia Po\u0142udniowa i Sandwich Po\u0142udniowy", "GH": "Ghana", "GI": "Gibraltar", "GR": "Grecja", "GD": "Grenada", "GL": "Grenlandia", "GE": "Gruzja", "GU": "Guam", "GG": "Guernsey", "GY": "Gujana", "GF": "Gujana Francuska", "GP": "Gwadelupa", "GT": "Gwatemala", "GN": "Gwinea", "GW": "Gwinea Bissau", "GQ": "Gwinea R\u00f3wnikowa", "HT": "Haiti", "ES": "Hiszpania", "NL": "Holandia", "HN": "Honduras", "IN": "Indie", "ID": "Indonezja", "IQ": "Irak", "IR": "Iran", "IE": "Irlandia", "IS": "Islandia", "IL": "Izrael", "JM": "Jamajka", "JP": "Japonia", "YE": "Jemen", "JE": "Jersey", "JO": "Jordania", "KY": "Kajmany", "KH": "Kambod\u017ca", "CM": "Kamerun", "CA": "Kanada", "QA": "Katar", "KZ": "Kazachstan", "KE": "Kenia", "KG": "Kirgistan", "KI": "Kiribati", "CO": "Kolumbia", "KM": "Komory", "CG": "Kongo", "KR": "Korea Po\u0142udniowa", "KP": "Korea P\u00f3\u0142nocna", "CR": "Kostaryka", "CU": "Kuba", "KW": "Kuwejt", "LA": "Laos", "LS": "Lesotho", "LB": "Liban", "LR": "Liberia", "LY": "Libia", "LI": "Liechtenstein", "LT": "Litwa", "LU": "Luksemburg", "LV": "\u0141otwa", "MK": "Macedonia P\u00f3\u0142nocna", "MG": "Madagaskar", "YT": "Majotta", "MW": "Malawi", "MV": "Malediwy", "MY": "Malezja", "ML": "Mali", "MT": "Malta", "MP": "Mariany P\u00f3\u0142nocne", "MA": "Maroko", "MQ": "Martynika", "MR": "Mauretania", "MU": "Mauritius", "MX": "Meksyk", "FM": "Mikronezja", "MM": "Mjanma (Birma)", "MD": "Mo\u0142dawia", "MC": "Monako", "MN": "Mongolia", "MS": "Montserrat", "MZ": "Mozambik", "NA": "Namibia", "NR": "Nauru", "NP": "Nepal", "BQ": "Niderlandy Karaibskie", "DE": "Niemcy", "NE": "Niger", "NG": "Nigeria", "NI": "Nikaragua", "NU": "Niue", "NF": "Norfolk", "NO": "Norwegia", "NC": "Nowa Kaledonia", "NZ": "Nowa Zelandia", "OM": "Oman", "PK": "Pakistan", "PW": "Palau", "PA": "Panama", "PG": "Papua-Nowa Gwinea", "PY": "Paragwaj", "PE": "Peru", "PN": "Pitcairn", "PF": "Polinezja Francuska", "PL": "Polska", "PR": "Portoryko", "PT": "Portugalia", "ZA": "Republika Po\u0142udniowej Afryki", "CF": "Republika \u015arodkowoafryka\u0144ska", "CV": "Republika Zielonego Przyl\u0105dka", "RE": "Reunion", "RU": "Rosja", "RO": "Rumunia", "RW": "Rwanda", "EH": "Sahara Zachodnia", "KN": "Saint Kitts i Nevis", "LC": "Saint Lucia", "VC": "Saint Vincent i Grenadyny", "BL": "Saint-Barth\u00e9lemy", "MF": "Saint-Martin", "PM": "Saint-Pierre i Miquelon", "SV": "Salwador", "WS": "Samoa", "AS": "Samoa Ameryka\u0144skie", "SM": "San Marino", "SN": "Senegal", "RS": "Serbia", "SC": "Seszele", "SL": "Sierra Leone", "SG": "Singapur", "SX": "Sint Maarten", "SK": "S\u0142owacja", "SI": "S\u0142owenia", "SO": "Somalia", "HK": "SRA Hongkong (Chiny)", "MO": "SRA Makau (Chiny)", "LK": "Sri Lanka", "US": "Stany Zjednoczone", "SD": "Sudan", "SS": "Sudan Po\u0142udniowy", "SR": "Surinam", "SJ": "Svalbard i Jan Mayen", "SY": "Syria", "CH": "Szwajcaria", "SE": "Szwecja", "TJ": "Tad\u017cykistan", "TH": "Tajlandia", "TW": "Tajwan", "TZ": "Tanzania", "PS": "Terytoria Palesty\u0144skie", "TL": "Timor Wschodni", "TG": "Togo", "TK": "Tokelau", "TO": "Tonga", "TT": "Trynidad i Tobago", "TN": "Tunezja", "TR": "Turcja", "TM": "Turkmenistan", "TC": "Turks i Caicos", "TV": "Tuvalu", "UG": "Uganda", "UA": "Ukraina", "UY": "Urugwaj", "UZ": "Uzbekistan", "VU": "Vanuatu", "WF": "Wallis i Futuna", "VA": "Watykan", "VE": "Wenezuela", "HU": "W\u0119gry", "GB": "Wielka Brytania", "VN": "Wietnam", "IT": "W\u0142ochy", "BV": "Wyspa Bouveta", "CX": "Wyspa Bo\u017cego Narodzenia", "IM": "Wyspa Man", "SH": "Wyspa \u015awi\u0119tej Heleny", "AX": "Wyspy Alandzkie", "CK": "Wyspy Cooka", "VI": "Wyspy Dziewicze Stan\u00f3w Zjednoczonych", "HM": "Wyspy Heard i McDonalda", "CC": "Wyspy Kokosowe", "MH": "Wyspy Marshalla", "FO": "Wyspy Owcze", "SB": "Wyspy Salomona", "ST": "Wyspy \u015awi\u0119tego Tomasza i Ksi\u0105\u017c\u0119ca", "ZM": "Zambia", "ZW": "Zimbabwe", "AE": "Zjednoczone Emiraty Arabskie"} \ No newline at end of file +{"AF": "Afganistan", "AL": "Albania", "DZ": "Algieria", "AD": "Andora", "AO": "Angola", "AI": "Anguilla", "AQ": "Antarktyda", "AG": "Antigua i Barbuda", "SA": "Arabia Saudyjska", "AR": "Argentyna", "AM": "Armenia", "AW": "Aruba", "AU": "Australia", "AT": "Austria", "AZ": "Azerbejd\u017can", "BS": "Bahamy", "BH": "Bahrajn", "BD": "Bangladesz", "BB": "Barbados", "BE": "Belgia", "BZ": "Belize", "BJ": "Benin", "BM": "Bermudy", "BT": "Bhutan", "BY": "Bia\u0142oru\u015b", "BO": "Boliwia", "BA": "Bo\u015bnia i Hercegowina", "BW": "Botswana", "BR": "Brazylia", "BN": "Brunei", "IO": "Brytyjskie Terytorium Oceanu Indyjskiego", "VG": "Brytyjskie Wyspy Dziewicze", "BG": "Bu\u0142garia", "BF": "Burkina Faso", "BI": "Burundi", "CL": "Chile", "CN": "Chiny", "HR": "Chorwacja", "CI": "C\u00f4te d\u2019Ivoire", "CW": "Cura\u00e7ao", "CY": "Cypr", "TD": "Czad", "ME": "Czarnog\u00f3ra", "CZ": "Czechy", "DK": "Dania", "CD": "Demokratyczna Republika Konga", "DM": "Dominika", "DO": "Dominikana", "DJ": "D\u017cibuti", "EG": "Egipt", "EC": "Ekwador", "ER": "Erytrea", "EE": "Estonia", "SZ": "Eswatini", "ET": "Etiopia", "FK": "Falklandy", "FJ": "Fid\u017ci", "PH": "Filipiny", "FI": "Finlandia", "FR": "Francja", "TF": "Francuskie Terytoria Po\u0142udniowe i Antarktyczne", "GA": "Gabon", "GM": "Gambia", "GS": "Georgia Po\u0142udniowa i Sandwich Po\u0142udniowy", "GH": "Ghana", "GI": "Gibraltar", "GR": "Grecja", "GD": "Grenada", "GL": "Grenlandia", "GE": "Gruzja", "GU": "Guam", "GG": "Guernsey", "GY": "Gujana", "GF": "Gujana Francuska", "GP": "Gwadelupa", "GT": "Gwatemala", "GN": "Gwinea", "GW": "Gwinea Bissau", "GQ": "Gwinea R\u00f3wnikowa", "HT": "Haiti", "ES": "Hiszpania", "NL": "Holandia", "HN": "Honduras", "IN": "Indie", "ID": "Indonezja", "IQ": "Irak", "IR": "Iran", "IE": "Irlandia", "IS": "Islandia", "IL": "Izrael", "JM": "Jamajka", "JP": "Japonia", "YE": "Jemen", "JO": "Jordania", "KY": "Kajmany", "KH": "Kambod\u017ca", "CM": "Kamerun", "CA": "Kanada", "QA": "Katar", "KZ": "Kazachstan", "KE": "Kenia", "KG": "Kirgistan", "KI": "Kiribati", "CO": "Kolumbia", "KM": "Komory", "CG": "Kongo", "KR": "Korea Po\u0142udniowa", "KP": "Korea P\u00f3\u0142nocna", "CR": "Kostaryka", "CU": "Kuba", "KW": "Kuwejt", "LA": "Laos", "LS": "Lesotho", "LB": "Liban", "LR": "Liberia", "LY": "Libia", "LI": "Liechtenstein", "LT": "Litwa", "LU": "Luksemburg", "LV": "\u0141otwa", "MK": "Macedonia P\u00f3\u0142nocna", "MG": "Madagaskar", "YT": "Majotta", "MW": "Malawi", "MV": "Malediwy", "MY": "Malezja", "ML": "Mali", "MT": "Malta", "MA": "Maroko", "MQ": "Martynika", "MR": "Mauretania", "MU": "Mauritius", "MX": "Meksyk", "MM": "Mjanma (Birma)", "MD": "Mo\u0142dawia", "MC": "Monako", "MN": "Mongolia", "MS": "Montserrat", "MZ": "Mozambik", "NA": "Namibia", "NR": "Nauru", "NP": "Nepal", "BQ": "Niderlandy Karaibskie", "DE": "Niemcy", "NE": "Niger", "NG": "Nigeria", "NI": "Nikaragua", "NU": "Niue", "NF": "Norfolk", "NO": "Norwegia", "NC": "Nowa Kaledonia", "NZ": "Nowa Zelandia", "OM": "Oman", "PK": "Pakistan", "PW": "Palau", "PA": "Panama", "PG": "Papua-Nowa Gwinea", "PY": "Paragwaj", "PE": "Peru", "PN": "Pitcairn", "PF": "Polinezja Francuska", "PL": "Polska", "PR": "Portoryko", "PT": "Portugalia", "ZA": "Republika Po\u0142udniowej Afryki", "CF": "Republika \u015arodkowoafryka\u0144ska", "CV": "Republika Zielonego Przyl\u0105dka", "RE": "Reunion", "RU": "Rosja", "RO": "Rumunia", "RW": "Rwanda", "EH": "Sahara Zachodnia", "KN": "Saint Kitts i Nevis", "LC": "Saint Lucia", "VC": "Saint Vincent i Grenadyny", "BL": "Saint-Barth\u00e9lemy", "MF": "Saint-Martin", "PM": "Saint-Pierre i Miquelon", "SV": "Salwador", "WS": "Samoa", "AS": "Samoa Ameryka\u0144skie", "SM": "San Marino", "SN": "Senegal", "RS": "Serbia", "SC": "Seszele", "SL": "Sierra Leone", "SG": "Singapur", "SX": "Sint Maarten", "SK": "S\u0142owacja", "SI": "S\u0142owenia", "SO": "Somalia", "HK": "SRA Hongkong (Chiny)", "MO": "SRA Makau (Chiny)", "LK": "Sri Lanka", "US": "Stany Zjednoczone", "SD": "Sudan", "SS": "Sudan Po\u0142udniowy", "SR": "Surinam", "SJ": "Svalbard i Jan Mayen", "SY": "Syria", "CH": "Szwajcaria", "SE": "Szwecja", "TJ": "Tad\u017cykistan", "TH": "Tajlandia", "TW": "Tajwan", "TZ": "Tanzania", "TL": "Timor Wschodni", "TG": "Togo", "TK": "Tokelau", "TO": "Tonga", "TT": "Trynidad i Tobago", "TN": "Tunezja", "TR": "Turcja", "TM": "Turkmenistan", "TC": "Turks i Caicos", "UG": "Uganda", "UA": "Ukraina", "UY": "Urugwaj", "UZ": "Uzbekistan", "VU": "Vanuatu", "WF": "Wallis i Futuna", "VA": "Watykan", "VE": "Wenezuela", "HU": "W\u0119gry", "GB": "Wielka Brytania", "VN": "Wietnam", "IT": "W\u0142ochy", "BV": "Wyspa Bouveta", "CX": "Wyspa Bo\u017cego Narodzenia", "IM": "Wyspa Man", "SH": "Wyspa \u015awi\u0119tej Heleny", "AX": "Wyspy Alandzkie", "CK": "Wyspy Cooka", "VI": "Wyspy Dziewicze Stan\u00f3w Zjednoczonych", "HM": "Wyspy Heard i McDonalda", "CC": "Wyspy Kokosowe", "FO": "Wyspy Owcze", "SB": "Wyspy Salomona", "ST": "Wyspy \u015awi\u0119tego Tomasza i Ksi\u0105\u017c\u0119ca", "ZM": "Zambia", "ZW": "Zimbabwe", "AE": "Zjednoczone Emiraty Arabskie"} \ No newline at end of file diff --git a/desktop/src/onionshare/resources/countries/pt_BR.json b/desktop/src/onionshare/resources/countries/pt_BR.json index 74c02816..3745df4d 100644 --- a/desktop/src/onionshare/resources/countries/pt_BR.json +++ b/desktop/src/onionshare/resources/countries/pt_BR.json @@ -1 +1 @@ -{"AF": "Afeganist\u00e3o", "ZA": "\u00c1frica do Sul", "AL": "Alb\u00e2nia", "DE": "Alemanha", "AD": "Andorra", "AO": "Angola", "AI": "Anguila", "AQ": "Ant\u00e1rtida", "AG": "Ant\u00edgua e Barbuda", "SA": "Ar\u00e1bia Saudita", "DZ": "Arg\u00e9lia", "AR": "Argentina", "AM": "Arm\u00eania", "AW": "Aruba", "AU": "Austr\u00e1lia", "AT": "\u00c1ustria", "AZ": "Azerbaij\u00e3o", "BS": "Bahamas", "BH": "Bahrein", "BD": "Bangladesh", "BB": "Barbados", "BE": "B\u00e9lgica", "BZ": "Belize", "BJ": "Benin", "BM": "Bermudas", "BY": "Bielorr\u00fassia", "BO": "Bol\u00edvia", "BA": "B\u00f3snia e Herzegovina", "BW": "Botsuana", "BR": "Brasil", "BN": "Brunei", "BG": "Bulg\u00e1ria", "BF": "Burquina Faso", "BI": "Burundi", "BT": "But\u00e3o", "CV": "Cabo Verde", "CM": "Camar\u00f5es", "KH": "Camboja", "CA": "Canad\u00e1", "QA": "Catar", "KZ": "Cazaquist\u00e3o", "TD": "Chade", "CL": "Chile", "CN": "China", "CY": "Chipre", "VA": "Cidade do Vaticano", "CO": "Col\u00f4mbia", "KM": "Comores", "CD": "Congo - Kinshasa", "KP": "Coreia do Norte", "KR": "Coreia do Sul", "CI": "Costa do Marfim", "CR": "Costa Rica", "HR": "Cro\u00e1cia", "CU": "Cuba", "CW": "Cura\u00e7ao", "DK": "Dinamarca", "DJ": "Djibuti", "DM": "Dominica", "EG": "Egito", "SV": "El Salvador", "AE": "Emirados \u00c1rabes Unidos", "EC": "Equador", "ER": "Eritreia", "SK": "Eslov\u00e1quia", "SI": "Eslov\u00eania", "ES": "Espanha", "SZ": "Essuat\u00edni", "US": "Estados Unidos", "EE": "Est\u00f4nia", "ET": "Eti\u00f3pia", "FJ": "Fiji", "PH": "Filipinas", "FI": "Finl\u00e2ndia", "FR": "Fran\u00e7a", "GA": "Gab\u00e3o", "GM": "G\u00e2mbia", "GH": "Gana", "GE": "Ge\u00f3rgia", "GI": "Gibraltar", "GD": "Granada", "GR": "Gr\u00e9cia", "GL": "Groenl\u00e2ndia", "GP": "Guadalupe", "GU": "Guam", "GT": "Guatemala", "GG": "Guernsey", "GY": "Guiana", "GF": "Guiana Francesa", "GN": "Guin\u00e9", "GQ": "Guin\u00e9 Equatorial", "GW": "Guin\u00e9-Bissau", "HT": "Haiti", "HN": "Honduras", "HK": "Hong Kong, RAE da China", "HU": "Hungria", "YE": "I\u00eamen", "BV": "Ilha Bouvet", "CX": "Ilha Christmas", "IM": "Ilha de Man", "NF": "Ilha Norfolk", "AX": "Ilhas Aland", "KY": "Ilhas Cayman", "CC": "Ilhas Cocos (Keeling)", "CK": "Ilhas Cook", "FO": "Ilhas Faroe", "GS": "Ilhas Ge\u00f3rgia do Sul e Sandwich do Sul", "HM": "Ilhas Heard e McDonald", "FK": "Ilhas Malvinas", "MP": "Ilhas Marianas do Norte", "MH": "Ilhas Marshall", "UM": "Ilhas Menores Distantes dos EUA", "PN": "Ilhas Pitcairn", "SB": "Ilhas Salom\u00e3o", "TC": "Ilhas Turcas e Caicos", "VI": "Ilhas Virgens Americanas", "VG": "Ilhas Virgens Brit\u00e2nicas", "IN": "\u00cdndia", "ID": "Indon\u00e9sia", "IR": "Ir\u00e3", "IQ": "Iraque", "IE": "Irlanda", "IS": "Isl\u00e2ndia", "IL": "Israel", "IT": "It\u00e1lia", "JM": "Jamaica", "JP": "Jap\u00e3o", "JE": "Jersey", "JO": "Jord\u00e2nia", "KW": "Kuwait", "LA": "Laos", "LS": "Lesoto", "LV": "Let\u00f4nia", "LB": "L\u00edbano", "LR": "Lib\u00e9ria", "LY": "L\u00edbia", "LI": "Liechtenstein", "LT": "Litu\u00e2nia", "LU": "Luxemburgo", "MO": "Macau, RAE da China", "MK": "Maced\u00f4nia do Norte", "MG": "Madagascar", "MY": "Mal\u00e1sia", "MW": "Malaui", "MV": "Maldivas", "ML": "Mali", "MT": "Malta", "MA": "Marrocos", "MQ": "Martinica", "MU": "Maur\u00edcio", "MR": "Maurit\u00e2nia", "YT": "Mayotte", "MX": "M\u00e9xico", "MM": "Mianmar (Birm\u00e2nia)", "FM": "Micron\u00e9sia", "MZ": "Mo\u00e7ambique", "MD": "Moldova", "MC": "M\u00f4naco", "MN": "Mong\u00f3lia", "ME": "Montenegro", "MS": "Montserrat", "NA": "Nam\u00edbia", "NR": "Nauru", "NP": "Nepal", "NI": "Nicar\u00e1gua", "NE": "N\u00edger", "NG": "Nig\u00e9ria", "NU": "Niue", "NO": "Noruega", "NC": "Nova Caled\u00f4nia", "NZ": "Nova Zel\u00e2ndia", "OM": "Om\u00e3", "NL": "Pa\u00edses Baixos", "BQ": "Pa\u00edses Baixos Caribenhos", "PW": "Palau", "PA": "Panam\u00e1", "PG": "Papua-Nova Guin\u00e9", "PK": "Paquist\u00e3o", "PY": "Paraguai", "PE": "Peru", "PF": "Polin\u00e9sia Francesa", "PL": "Pol\u00f4nia", "PR": "Porto Rico", "PT": "Portugal", "KE": "Qu\u00eania", "KG": "Quirguist\u00e3o", "KI": "Quiribati", "GB": "Reino Unido", "CF": "Rep\u00fablica Centro-Africana", "CG": "Rep\u00fablica do Congo", "DO": "Rep\u00fablica Dominicana", "RE": "Reuni\u00e3o", "RO": "Rom\u00eania", "RW": "Ruanda", "RU": "R\u00fassia", "EH": "Saara Ocidental", "WS": "Samoa", "AS": "Samoa Americana", "SM": "San Marino", "SH": "Santa Helena", "LC": "Santa L\u00facia", "BL": "S\u00e3o Bartolomeu", "KN": "S\u00e3o Crist\u00f3v\u00e3o e N\u00e9vis", "MF": "S\u00e3o Martinho", "PM": "S\u00e3o Pedro e Miquel\u00e3o", "ST": "S\u00e3o Tom\u00e9 e Pr\u00edncipe", "VC": "S\u00e3o Vicente e Granadinas", "SC": "Seicheles", "SN": "Senegal", "SL": "Serra Leoa", "RS": "S\u00e9rvia", "SG": "Singapura", "SX": "Sint Maarten", "SY": "S\u00edria", "SO": "Som\u00e1lia", "LK": "Sri Lanka", "SD": "Sud\u00e3o", "SS": "Sud\u00e3o do Sul", "SE": "Su\u00e9cia", "CH": "Su\u00ed\u00e7a", "SR": "Suriname", "SJ": "Svalbard e Jan Mayen", "TJ": "Tadjiquist\u00e3o", "TH": "Tail\u00e2ndia", "TW": "Taiwan", "TZ": "Tanz\u00e2nia", "CZ": "Tch\u00e9quia", "IO": "Territ\u00f3rio Brit\u00e2nico do Oceano \u00cdndico", "TF": "Territ\u00f3rios Franceses do Sul", "PS": "Territ\u00f3rios palestinos", "TL": "Timor-Leste", "TG": "Togo", "TK": "Tokelau", "TO": "Tonga", "TT": "Trinidad e Tobago", "TN": "Tun\u00edsia", "TM": "Turcomenist\u00e3o", "TR": "Turquia", "TV": "Tuvalu", "UA": "Ucr\u00e2nia", "UG": "Uganda", "UY": "Uruguai", "UZ": "Uzbequist\u00e3o", "VU": "Vanuatu", "VE": "Venezuela", "VN": "Vietn\u00e3", "WF": "Wallis e Futuna", "ZM": "Z\u00e2mbia", "ZW": "Zimb\u00e1bue"} \ No newline at end of file +{"AF": "Afeganist\u00e3o", "ZA": "\u00c1frica do Sul", "AL": "Alb\u00e2nia", "DE": "Alemanha", "AD": "Andorra", "AO": "Angola", "AI": "Anguila", "AQ": "Ant\u00e1rtida", "AG": "Ant\u00edgua e Barbuda", "SA": "Ar\u00e1bia Saudita", "DZ": "Arg\u00e9lia", "AR": "Argentina", "AM": "Arm\u00eania", "AW": "Aruba", "AU": "Austr\u00e1lia", "AT": "\u00c1ustria", "AZ": "Azerbaij\u00e3o", "BS": "Bahamas", "BH": "Bahrein", "BD": "Bangladesh", "BB": "Barbados", "BE": "B\u00e9lgica", "BZ": "Belize", "BJ": "Benin", "BM": "Bermudas", "BY": "Bielorr\u00fassia", "BO": "Bol\u00edvia", "BA": "B\u00f3snia e Herzegovina", "BW": "Botsuana", "BR": "Brasil", "BN": "Brunei", "BG": "Bulg\u00e1ria", "BF": "Burquina Faso", "BI": "Burundi", "BT": "But\u00e3o", "CV": "Cabo Verde", "CM": "Camar\u00f5es", "KH": "Camboja", "CA": "Canad\u00e1", "QA": "Catar", "KZ": "Cazaquist\u00e3o", "TD": "Chade", "CL": "Chile", "CN": "China", "CY": "Chipre", "VA": "Cidade do Vaticano", "CO": "Col\u00f4mbia", "KM": "Comores", "CD": "Congo - Kinshasa", "KP": "Coreia do Norte", "KR": "Coreia do Sul", "CI": "Costa do Marfim", "CR": "Costa Rica", "HR": "Cro\u00e1cia", "CU": "Cuba", "CW": "Cura\u00e7ao", "DK": "Dinamarca", "DJ": "Djibuti", "DM": "Dominica", "EG": "Egito", "SV": "El Salvador", "AE": "Emirados \u00c1rabes Unidos", "EC": "Equador", "ER": "Eritreia", "SK": "Eslov\u00e1quia", "SI": "Eslov\u00eania", "ES": "Espanha", "SZ": "Essuat\u00edni", "US": "Estados Unidos", "EE": "Est\u00f4nia", "ET": "Eti\u00f3pia", "FJ": "Fiji", "PH": "Filipinas", "FI": "Finl\u00e2ndia", "FR": "Fran\u00e7a", "GA": "Gab\u00e3o", "GM": "G\u00e2mbia", "GH": "Gana", "GE": "Ge\u00f3rgia", "GI": "Gibraltar", "GD": "Granada", "GR": "Gr\u00e9cia", "GL": "Groenl\u00e2ndia", "GP": "Guadalupe", "GU": "Guam", "GT": "Guatemala", "GG": "Guernsey", "GY": "Guiana", "GF": "Guiana Francesa", "GN": "Guin\u00e9", "GQ": "Guin\u00e9 Equatorial", "GW": "Guin\u00e9-Bissau", "HT": "Haiti", "HN": "Honduras", "HK": "Hong Kong, RAE da China", "HU": "Hungria", "YE": "I\u00eamen", "BV": "Ilha Bouvet", "CX": "Ilha Christmas", "IM": "Ilha de Man", "NF": "Ilha Norfolk", "AX": "Ilhas Aland", "KY": "Ilhas Cayman", "CC": "Ilhas Cocos (Keeling)", "CK": "Ilhas Cook", "FO": "Ilhas Faroe", "GS": "Ilhas Ge\u00f3rgia do Sul e Sandwich do Sul", "HM": "Ilhas Heard e McDonald", "FK": "Ilhas Malvinas", "PN": "Ilhas Pitcairn", "SB": "Ilhas Salom\u00e3o", "TC": "Ilhas Turcas e Caicos", "VI": "Ilhas Virgens Americanas", "VG": "Ilhas Virgens Brit\u00e2nicas", "IN": "\u00cdndia", "ID": "Indon\u00e9sia", "IR": "Ir\u00e3", "IQ": "Iraque", "IE": "Irlanda", "IS": "Isl\u00e2ndia", "IL": "Israel", "IT": "It\u00e1lia", "JM": "Jamaica", "JP": "Jap\u00e3o", "JO": "Jord\u00e2nia", "KW": "Kuwait", "LA": "Laos", "LS": "Lesoto", "LV": "Let\u00f4nia", "LB": "L\u00edbano", "LR": "Lib\u00e9ria", "LY": "L\u00edbia", "LI": "Liechtenstein", "LT": "Litu\u00e2nia", "LU": "Luxemburgo", "MO": "Macau, RAE da China", "MK": "Maced\u00f4nia do Norte", "MG": "Madagascar", "MY": "Mal\u00e1sia", "MW": "Malaui", "MV": "Maldivas", "ML": "Mali", "MT": "Malta", "MA": "Marrocos", "MQ": "Martinica", "MU": "Maur\u00edcio", "MR": "Maurit\u00e2nia", "YT": "Mayotte", "MX": "M\u00e9xico", "MM": "Mianmar (Birm\u00e2nia)", "MZ": "Mo\u00e7ambique", "MD": "Moldova", "MC": "M\u00f4naco", "MN": "Mong\u00f3lia", "ME": "Montenegro", "MS": "Montserrat", "NA": "Nam\u00edbia", "NR": "Nauru", "NP": "Nepal", "NI": "Nicar\u00e1gua", "NE": "N\u00edger", "NG": "Nig\u00e9ria", "NU": "Niue", "NO": "Noruega", "NC": "Nova Caled\u00f4nia", "NZ": "Nova Zel\u00e2ndia", "OM": "Om\u00e3", "NL": "Pa\u00edses Baixos", "BQ": "Pa\u00edses Baixos Caribenhos", "PW": "Palau", "PA": "Panam\u00e1", "PG": "Papua-Nova Guin\u00e9", "PK": "Paquist\u00e3o", "PY": "Paraguai", "PE": "Peru", "PF": "Polin\u00e9sia Francesa", "PL": "Pol\u00f4nia", "PR": "Porto Rico", "PT": "Portugal", "KE": "Qu\u00eania", "KG": "Quirguist\u00e3o", "KI": "Quiribati", "GB": "Reino Unido", "CF": "Rep\u00fablica Centro-Africana", "CG": "Rep\u00fablica do Congo", "DO": "Rep\u00fablica Dominicana", "RE": "Reuni\u00e3o", "RO": "Rom\u00eania", "RW": "Ruanda", "RU": "R\u00fassia", "EH": "Saara Ocidental", "WS": "Samoa", "AS": "Samoa Americana", "SM": "San Marino", "SH": "Santa Helena", "LC": "Santa L\u00facia", "BL": "S\u00e3o Bartolomeu", "KN": "S\u00e3o Crist\u00f3v\u00e3o e N\u00e9vis", "MF": "S\u00e3o Martinho", "PM": "S\u00e3o Pedro e Miquel\u00e3o", "ST": "S\u00e3o Tom\u00e9 e Pr\u00edncipe", "VC": "S\u00e3o Vicente e Granadinas", "SC": "Seicheles", "SN": "Senegal", "SL": "Serra Leoa", "RS": "S\u00e9rvia", "SG": "Singapura", "SX": "Sint Maarten", "SY": "S\u00edria", "SO": "Som\u00e1lia", "LK": "Sri Lanka", "SD": "Sud\u00e3o", "SS": "Sud\u00e3o do Sul", "SE": "Su\u00e9cia", "CH": "Su\u00ed\u00e7a", "SR": "Suriname", "SJ": "Svalbard e Jan Mayen", "TJ": "Tadjiquist\u00e3o", "TH": "Tail\u00e2ndia", "TW": "Taiwan", "TZ": "Tanz\u00e2nia", "CZ": "Tch\u00e9quia", "IO": "Territ\u00f3rio Brit\u00e2nico do Oceano \u00cdndico", "TF": "Territ\u00f3rios Franceses do Sul", "TL": "Timor-Leste", "TG": "Togo", "TK": "Tokelau", "TO": "Tonga", "TT": "Trinidad e Tobago", "TN": "Tun\u00edsia", "TM": "Turcomenist\u00e3o", "TR": "Turquia", "UA": "Ucr\u00e2nia", "UG": "Uganda", "UY": "Uruguai", "UZ": "Uzbequist\u00e3o", "VU": "Vanuatu", "VE": "Venezuela", "VN": "Vietn\u00e3", "WF": "Wallis e Futuna", "ZM": "Z\u00e2mbia", "ZW": "Zimb\u00e1bue"} \ No newline at end of file diff --git a/desktop/src/onionshare/resources/countries/ru.json b/desktop/src/onionshare/resources/countries/ru.json index e7c9200c..ffbc3ef9 100644 --- a/desktop/src/onionshare/resources/countries/ru.json +++ b/desktop/src/onionshare/resources/countries/ru.json @@ -1 +1 @@ -{"AU": "\u0410\u0432\u0441\u0442\u0440\u0430\u043b\u0438\u044f", "AT": "\u0410\u0432\u0441\u0442\u0440\u0438\u044f", "AZ": "\u0410\u0437\u0435\u0440\u0431\u0430\u0439\u0434\u0436\u0430\u043d", "AX": "\u0410\u043b\u0430\u043d\u0434\u0441\u043a\u0438\u0435 \u043e-\u0432\u0430", "AL": "\u0410\u043b\u0431\u0430\u043d\u0438\u044f", "DZ": "\u0410\u043b\u0436\u0438\u0440", "AS": "\u0410\u043c\u0435\u0440\u0438\u043a\u0430\u043d\u0441\u043a\u043e\u0435 \u0421\u0430\u043c\u043e\u0430", "AI": "\u0410\u043d\u0433\u0438\u043b\u044c\u044f", "AO": "\u0410\u043d\u0433\u043e\u043b\u0430", "AD": "\u0410\u043d\u0434\u043e\u0440\u0440\u0430", "AQ": "\u0410\u043d\u0442\u0430\u0440\u043a\u0442\u0438\u0434\u0430", "AG": "\u0410\u043d\u0442\u0438\u0433\u0443\u0430 \u0438 \u0411\u0430\u0440\u0431\u0443\u0434\u0430", "AR": "\u0410\u0440\u0433\u0435\u043d\u0442\u0438\u043d\u0430", "AM": "\u0410\u0440\u043c\u0435\u043d\u0438\u044f", "AW": "\u0410\u0440\u0443\u0431\u0430", "AF": "\u0410\u0444\u0433\u0430\u043d\u0438\u0441\u0442\u0430\u043d", "BS": "\u0411\u0430\u0433\u0430\u043c\u044b", "BD": "\u0411\u0430\u043d\u0433\u043b\u0430\u0434\u0435\u0448", "BB": "\u0411\u0430\u0440\u0431\u0430\u0434\u043e\u0441", "BH": "\u0411\u0430\u0445\u0440\u0435\u0439\u043d", "BY": "\u0411\u0435\u043b\u0430\u0440\u0443\u0441\u044c", "BZ": "\u0411\u0435\u043b\u0438\u0437", "BE": "\u0411\u0435\u043b\u044c\u0433\u0438\u044f", "BJ": "\u0411\u0435\u043d\u0438\u043d", "BM": "\u0411\u0435\u0440\u043c\u0443\u0434\u0441\u043a\u0438\u0435 \u043e-\u0432\u0430", "BG": "\u0411\u043e\u043b\u0433\u0430\u0440\u0438\u044f", "BO": "\u0411\u043e\u043b\u0438\u0432\u0438\u044f", "BQ": "\u0411\u043e\u043d\u044d\u0439\u0440, \u0421\u0438\u043d\u0442-\u042d\u0441\u0442\u0430\u0442\u0438\u0443\u0441 \u0438 \u0421\u0430\u0431\u0430", "BA": "\u0411\u043e\u0441\u043d\u0438\u044f \u0438 \u0413\u0435\u0440\u0446\u0435\u0433\u043e\u0432\u0438\u043d\u0430", "BW": "\u0411\u043e\u0442\u0441\u0432\u0430\u043d\u0430", "BR": "\u0411\u0440\u0430\u0437\u0438\u043b\u0438\u044f", "IO": "\u0411\u0440\u0438\u0442\u0430\u043d\u0441\u043a\u0430\u044f \u0442\u0435\u0440\u0440\u0438\u0442\u043e\u0440\u0438\u044f \u0432 \u0418\u043d\u0434\u0438\u0439\u0441\u043a\u043e\u043c \u043e\u043a\u0435\u0430\u043d\u0435", "BN": "\u0411\u0440\u0443\u043d\u0435\u0439-\u0414\u0430\u0440\u0443\u0441\u0441\u0430\u043b\u0430\u043c", "BF": "\u0411\u0443\u0440\u043a\u0438\u043d\u0430-\u0424\u0430\u0441\u043e", "BI": "\u0411\u0443\u0440\u0443\u043d\u0434\u0438", "BT": "\u0411\u0443\u0442\u0430\u043d", "VU": "\u0412\u0430\u043d\u0443\u0430\u0442\u0443", "VA": "\u0412\u0430\u0442\u0438\u043a\u0430\u043d", "GB": "\u0412\u0435\u043b\u0438\u043a\u043e\u0431\u0440\u0438\u0442\u0430\u043d\u0438\u044f", "HU": "\u0412\u0435\u043d\u0433\u0440\u0438\u044f", "VE": "\u0412\u0435\u043d\u0435\u0441\u0443\u044d\u043b\u0430", "VG": "\u0412\u0438\u0440\u0433\u0438\u043d\u0441\u043a\u0438\u0435 \u043e-\u0432\u0430 (\u0412\u0435\u043b\u0438\u043a\u043e\u0431\u0440\u0438\u0442\u0430\u043d\u0438\u044f)", "VI": "\u0412\u0438\u0440\u0433\u0438\u043d\u0441\u043a\u0438\u0435 \u043e-\u0432\u0430 (\u0421\u0428\u0410)", "UM": "\u0412\u043d\u0435\u0448\u043d\u0438\u0435 \u043c\u0430\u043b\u044b\u0435 \u043e-\u0432\u0430 (\u0421\u0428\u0410)", "TL": "\u0412\u043e\u0441\u0442\u043e\u0447\u043d\u044b\u0439 \u0422\u0438\u043c\u043e\u0440", "VN": "\u0412\u044c\u0435\u0442\u043d\u0430\u043c", "GA": "\u0413\u0430\u0431\u043e\u043d", "HT": "\u0413\u0430\u0438\u0442\u0438", "GY": "\u0413\u0430\u0439\u0430\u043d\u0430", "GM": "\u0413\u0430\u043c\u0431\u0438\u044f", "GH": "\u0413\u0430\u043d\u0430", "GP": "\u0413\u0432\u0430\u0434\u0435\u043b\u0443\u043f\u0430", "GT": "\u0413\u0432\u0430\u0442\u0435\u043c\u0430\u043b\u0430", "GN": "\u0413\u0432\u0438\u043d\u0435\u044f", "GW": "\u0413\u0432\u0438\u043d\u0435\u044f-\u0411\u0438\u0441\u0430\u0443", "DE": "\u0413\u0435\u0440\u043c\u0430\u043d\u0438\u044f", "GG": "\u0413\u0435\u0440\u043d\u0441\u0438", "GI": "\u0413\u0438\u0431\u0440\u0430\u043b\u0442\u0430\u0440", "HN": "\u0413\u043e\u043d\u0434\u0443\u0440\u0430\u0441", "HK": "\u0413\u043e\u043d\u043a\u043e\u043d\u0433 (\u0421\u0410\u0420)", "GD": "\u0413\u0440\u0435\u043d\u0430\u0434\u0430", "GL": "\u0413\u0440\u0435\u043d\u043b\u0430\u043d\u0434\u0438\u044f", "GR": "\u0413\u0440\u0435\u0446\u0438\u044f", "GE": "\u0413\u0440\u0443\u0437\u0438\u044f", "GU": "\u0413\u0443\u0430\u043c", "DK": "\u0414\u0430\u043d\u0438\u044f", "JE": "\u0414\u0436\u0435\u0440\u0441\u0438", "DJ": "\u0414\u0436\u0438\u0431\u0443\u0442\u0438", "DM": "\u0414\u043e\u043c\u0438\u043d\u0438\u043a\u0430", "DO": "\u0414\u043e\u043c\u0438\u043d\u0438\u043a\u0430\u043d\u0441\u043a\u0430\u044f \u0420\u0435\u0441\u043f\u0443\u0431\u043b\u0438\u043a\u0430", "EG": "\u0415\u0433\u0438\u043f\u0435\u0442", "ZM": "\u0417\u0430\u043c\u0431\u0438\u044f", "EH": "\u0417\u0430\u043f\u0430\u0434\u043d\u0430\u044f \u0421\u0430\u0445\u0430\u0440\u0430", "ZW": "\u0417\u0438\u043c\u0431\u0430\u0431\u0432\u0435", "IL": "\u0418\u0437\u0440\u0430\u0438\u043b\u044c", "IN": "\u0418\u043d\u0434\u0438\u044f", "ID": "\u0418\u043d\u0434\u043e\u043d\u0435\u0437\u0438\u044f", "JO": "\u0418\u043e\u0440\u0434\u0430\u043d\u0438\u044f", "IQ": "\u0418\u0440\u0430\u043a", "IR": "\u0418\u0440\u0430\u043d", "IE": "\u0418\u0440\u043b\u0430\u043d\u0434\u0438\u044f", "IS": "\u0418\u0441\u043b\u0430\u043d\u0434\u0438\u044f", "ES": "\u0418\u0441\u043f\u0430\u043d\u0438\u044f", "IT": "\u0418\u0442\u0430\u043b\u0438\u044f", "YE": "\u0419\u0435\u043c\u0435\u043d", "CV": "\u041a\u0430\u0431\u043e-\u0412\u0435\u0440\u0434\u0435", "KZ": "\u041a\u0430\u0437\u0430\u0445\u0441\u0442\u0430\u043d", "KH": "\u041a\u0430\u043c\u0431\u043e\u0434\u0436\u0430", "CM": "\u041a\u0430\u043c\u0435\u0440\u0443\u043d", "CA": "\u041a\u0430\u043d\u0430\u0434\u0430", "QA": "\u041a\u0430\u0442\u0430\u0440", "KE": "\u041a\u0435\u043d\u0438\u044f", "CY": "\u041a\u0438\u043f\u0440", "KG": "\u041a\u0438\u0440\u0433\u0438\u0437\u0438\u044f", "KI": "\u041a\u0438\u0440\u0438\u0431\u0430\u0442\u0438", "CN": "\u041a\u0438\u0442\u0430\u0439", "KP": "\u041a\u041d\u0414\u0420", "CC": "\u041a\u043e\u043a\u043e\u0441\u043e\u0432\u044b\u0435 \u043e-\u0432\u0430", "CO": "\u041a\u043e\u043b\u0443\u043c\u0431\u0438\u044f", "KM": "\u041a\u043e\u043c\u043e\u0440\u044b", "CG": "\u041a\u043e\u043d\u0433\u043e - \u0411\u0440\u0430\u0437\u0437\u0430\u0432\u0438\u043b\u044c", "CD": "\u041a\u043e\u043d\u0433\u043e - \u041a\u0438\u043d\u0448\u0430\u0441\u0430", "CR": "\u041a\u043e\u0441\u0442\u0430-\u0420\u0438\u043a\u0430", "CI": "\u041a\u043e\u0442-\u0434\u2019\u0418\u0432\u0443\u0430\u0440", "CU": "\u041a\u0443\u0431\u0430", "KW": "\u041a\u0443\u0432\u0435\u0439\u0442", "CW": "\u041a\u044e\u0440\u0430\u0441\u0430\u043e", "LA": "\u041b\u0430\u043e\u0441", "LV": "\u041b\u0430\u0442\u0432\u0438\u044f", "LS": "\u041b\u0435\u0441\u043e\u0442\u043e", "LR": "\u041b\u0438\u0431\u0435\u0440\u0438\u044f", "LB": "\u041b\u0438\u0432\u0430\u043d", "LY": "\u041b\u0438\u0432\u0438\u044f", "LT": "\u041b\u0438\u0442\u0432\u0430", "LI": "\u041b\u0438\u0445\u0442\u0435\u043d\u0448\u0442\u0435\u0439\u043d", "LU": "\u041b\u044e\u043a\u0441\u0435\u043c\u0431\u0443\u0440\u0433", "MU": "\u041c\u0430\u0432\u0440\u0438\u043a\u0438\u0439", "MR": "\u041c\u0430\u0432\u0440\u0438\u0442\u0430\u043d\u0438\u044f", "MG": "\u041c\u0430\u0434\u0430\u0433\u0430\u0441\u043a\u0430\u0440", "YT": "\u041c\u0430\u0439\u043e\u0442\u0442\u0430", "MO": "\u041c\u0430\u043a\u0430\u043e (\u0421\u0410\u0420)", "MW": "\u041c\u0430\u043b\u0430\u0432\u0438", "MY": "\u041c\u0430\u043b\u0430\u0439\u0437\u0438\u044f", "ML": "\u041c\u0430\u043b\u0438", "MV": "\u041c\u0430\u043b\u044c\u0434\u0438\u0432\u044b", "MT": "\u041c\u0430\u043b\u044c\u0442\u0430", "MA": "\u041c\u0430\u0440\u043e\u043a\u043a\u043e", "MQ": "\u041c\u0430\u0440\u0442\u0438\u043d\u0438\u043a\u0430", "MH": "\u041c\u0430\u0440\u0448\u0430\u043b\u043b\u043e\u0432\u044b \u041e\u0441\u0442\u0440\u043e\u0432\u0430", "MX": "\u041c\u0435\u043a\u0441\u0438\u043a\u0430", "MZ": "\u041c\u043e\u0437\u0430\u043c\u0431\u0438\u043a", "MD": "\u041c\u043e\u043b\u0434\u043e\u0432\u0430", "MC": "\u041c\u043e\u043d\u0430\u043a\u043e", "MN": "\u041c\u043e\u043d\u0433\u043e\u043b\u0438\u044f", "MS": "\u041c\u043e\u043d\u0442\u0441\u0435\u0440\u0440\u0430\u0442", "MM": "\u041c\u044c\u044f\u043d\u043c\u0430 (\u0411\u0438\u0440\u043c\u0430)", "NA": "\u041d\u0430\u043c\u0438\u0431\u0438\u044f", "NR": "\u041d\u0430\u0443\u0440\u0443", "NP": "\u041d\u0435\u043f\u0430\u043b", "NE": "\u041d\u0438\u0433\u0435\u0440", "NG": "\u041d\u0438\u0433\u0435\u0440\u0438\u044f", "NL": "\u041d\u0438\u0434\u0435\u0440\u043b\u0430\u043d\u0434\u044b", "NI": "\u041d\u0438\u043a\u0430\u0440\u0430\u0433\u0443\u0430", "NU": "\u041d\u0438\u0443\u044d", "NZ": "\u041d\u043e\u0432\u0430\u044f \u0417\u0435\u043b\u0430\u043d\u0434\u0438\u044f", "NC": "\u041d\u043e\u0432\u0430\u044f \u041a\u0430\u043b\u0435\u0434\u043e\u043d\u0438\u044f", "NO": "\u041d\u043e\u0440\u0432\u0435\u0433\u0438\u044f", "BV": "\u043e-\u0432 \u0411\u0443\u0432\u0435", "IM": "\u043e-\u0432 \u041c\u044d\u043d", "NF": "\u043e-\u0432 \u041d\u043e\u0440\u0444\u043e\u043b\u043a", "CX": "\u043e-\u0432 \u0420\u043e\u0436\u0434\u0435\u0441\u0442\u0432\u0430", "SH": "\u043e-\u0432 \u0421\u0432. \u0415\u043b\u0435\u043d\u044b", "PN": "\u043e-\u0432\u0430 \u041f\u0438\u0442\u043a\u044d\u0440\u043d", "TC": "\u043e-\u0432\u0430 \u0422\u0451\u0440\u043a\u0441 \u0438 \u041a\u0430\u0439\u043a\u043e\u0441", "HM": "\u043e-\u0432\u0430 \u0425\u0435\u0440\u0434 \u0438 \u041c\u0430\u043a\u0434\u043e\u043d\u0430\u043b\u044c\u0434", "AE": "\u041e\u0410\u042d", "OM": "\u041e\u043c\u0430\u043d", "KY": "\u041e\u0441\u0442\u0440\u043e\u0432\u0430 \u041a\u0430\u0439\u043c\u0430\u043d", "CK": "\u041e\u0441\u0442\u0440\u043e\u0432\u0430 \u041a\u0443\u043a\u0430", "PK": "\u041f\u0430\u043a\u0438\u0441\u0442\u0430\u043d", "PW": "\u041f\u0430\u043b\u0430\u0443", "PS": "\u041f\u0430\u043b\u0435\u0441\u0442\u0438\u043d\u0441\u043a\u0438\u0435 \u0442\u0435\u0440\u0440\u0438\u0442\u043e\u0440\u0438\u0438", "PA": "\u041f\u0430\u043d\u0430\u043c\u0430", "PG": "\u041f\u0430\u043f\u0443\u0430 \u2014 \u041d\u043e\u0432\u0430\u044f \u0413\u0432\u0438\u043d\u0435\u044f", "PY": "\u041f\u0430\u0440\u0430\u0433\u0432\u0430\u0439", "PE": "\u041f\u0435\u0440\u0443", "PL": "\u041f\u043e\u043b\u044c\u0448\u0430", "PT": "\u041f\u043e\u0440\u0442\u0443\u0433\u0430\u043b\u0438\u044f", "PR": "\u041f\u0443\u044d\u0440\u0442\u043e-\u0420\u0438\u043a\u043e", "KR": "\u0420\u0435\u0441\u043f\u0443\u0431\u043b\u0438\u043a\u0430 \u041a\u043e\u0440\u0435\u044f", "RE": "\u0420\u0435\u044e\u043d\u044c\u043e\u043d", "RU": "\u0420\u043e\u0441\u0441\u0438\u044f", "RW": "\u0420\u0443\u0430\u043d\u0434\u0430", "RO": "\u0420\u0443\u043c\u044b\u043d\u0438\u044f", "SV": "\u0421\u0430\u043b\u044c\u0432\u0430\u0434\u043e\u0440", "WS": "\u0421\u0430\u043c\u043e\u0430", "SM": "\u0421\u0430\u043d-\u041c\u0430\u0440\u0438\u043d\u043e", "ST": "\u0421\u0430\u043d-\u0422\u043e\u043c\u0435 \u0438 \u041f\u0440\u0438\u043d\u0441\u0438\u043f\u0438", "SA": "\u0421\u0430\u0443\u0434\u043e\u0432\u0441\u043a\u0430\u044f \u0410\u0440\u0430\u0432\u0438\u044f", "MK": "\u0421\u0435\u0432\u0435\u0440\u043d\u0430\u044f \u041c\u0430\u043a\u0435\u0434\u043e\u043d\u0438\u044f", "MP": "\u0421\u0435\u0432\u0435\u0440\u043d\u044b\u0435 \u041c\u0430\u0440\u0438\u0430\u043d\u0441\u043a\u0438\u0435 \u043e-\u0432\u0430", "SC": "\u0421\u0435\u0439\u0448\u0435\u043b\u044c\u0441\u043a\u0438\u0435 \u041e\u0441\u0442\u0440\u043e\u0432\u0430", "BL": "\u0421\u0435\u043d-\u0411\u0430\u0440\u0442\u0435\u043b\u0435\u043c\u0438", "MF": "\u0421\u0435\u043d-\u041c\u0430\u0440\u0442\u0435\u043d", "PM": "\u0421\u0435\u043d-\u041f\u044c\u0435\u0440 \u0438 \u041c\u0438\u043a\u0435\u043b\u043e\u043d", "SN": "\u0421\u0435\u043d\u0435\u0433\u0430\u043b", "VC": "\u0421\u0435\u043d\u0442-\u0412\u0438\u043d\u0441\u0435\u043d\u0442 \u0438 \u0413\u0440\u0435\u043d\u0430\u0434\u0438\u043d\u044b", "KN": "\u0421\u0435\u043d\u0442-\u041a\u0438\u0442\u0441 \u0438 \u041d\u0435\u0432\u0438\u0441", "LC": "\u0421\u0435\u043d\u0442-\u041b\u044e\u0441\u0438\u044f", "RS": "\u0421\u0435\u0440\u0431\u0438\u044f", "SG": "\u0421\u0438\u043d\u0433\u0430\u043f\u0443\u0440", "SX": "\u0421\u0438\u043d\u0442-\u041c\u0430\u0440\u0442\u0435\u043d", "SY": "\u0421\u0438\u0440\u0438\u044f", "SK": "\u0421\u043b\u043e\u0432\u0430\u043a\u0438\u044f", "SI": "\u0421\u043b\u043e\u0432\u0435\u043d\u0438\u044f", "US": "\u0421\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u043d\u044b\u0435 \u0428\u0442\u0430\u0442\u044b", "SB": "\u0421\u043e\u043b\u043e\u043c\u043e\u043d\u043e\u0432\u044b \u041e\u0441\u0442\u0440\u043e\u0432\u0430", "SO": "\u0421\u043e\u043c\u0430\u043b\u0438", "SD": "\u0421\u0443\u0434\u0430\u043d", "SR": "\u0421\u0443\u0440\u0438\u043d\u0430\u043c", "SL": "\u0421\u044c\u0435\u0440\u0440\u0430-\u041b\u0435\u043e\u043d\u0435", "TJ": "\u0422\u0430\u0434\u0436\u0438\u043a\u0438\u0441\u0442\u0430\u043d", "TH": "\u0422\u0430\u0438\u043b\u0430\u043d\u0434", "TW": "\u0422\u0430\u0439\u0432\u0430\u043d\u044c", "TZ": "\u0422\u0430\u043d\u0437\u0430\u043d\u0438\u044f", "TG": "\u0422\u043e\u0433\u043e", "TK": "\u0422\u043e\u043a\u0435\u043b\u0430\u0443", "TO": "\u0422\u043e\u043d\u0433\u0430", "TT": "\u0422\u0440\u0438\u043d\u0438\u0434\u0430\u0434 \u0438 \u0422\u043e\u0431\u0430\u0433\u043e", "TV": "\u0422\u0443\u0432\u0430\u043b\u0443", "TN": "\u0422\u0443\u043d\u0438\u0441", "TM": "\u0422\u0443\u0440\u043a\u043c\u0435\u043d\u0438\u0441\u0442\u0430\u043d", "TR": "\u0422\u0443\u0440\u0446\u0438\u044f", "UG": "\u0423\u0433\u0430\u043d\u0434\u0430", "UZ": "\u0423\u0437\u0431\u0435\u043a\u0438\u0441\u0442\u0430\u043d", "UA": "\u0423\u043a\u0440\u0430\u0438\u043d\u0430", "WF": "\u0423\u043e\u043b\u043b\u0438\u0441 \u0438 \u0424\u0443\u0442\u0443\u043d\u0430", "UY": "\u0423\u0440\u0443\u0433\u0432\u0430\u0439", "FO": "\u0424\u0430\u0440\u0435\u0440\u0441\u043a\u0438\u0435 \u043e-\u0432\u0430", "FM": "\u0424\u0435\u0434\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u044b\u0435 \u0428\u0442\u0430\u0442\u044b \u041c\u0438\u043a\u0440\u043e\u043d\u0435\u0437\u0438\u0438", "FJ": "\u0424\u0438\u0434\u0436\u0438", "PH": "\u0424\u0438\u043b\u0438\u043f\u043f\u0438\u043d\u044b", "FI": "\u0424\u0438\u043d\u043b\u044f\u043d\u0434\u0438\u044f", "FK": "\u0424\u043e\u043b\u043a\u043b\u0435\u043d\u0434\u0441\u043a\u0438\u0435 \u043e-\u0432\u0430", "FR": "\u0424\u0440\u0430\u043d\u0446\u0438\u044f", "GF": "\u0424\u0440\u0430\u043d\u0446\u0443\u0437\u0441\u043a\u0430\u044f \u0413\u0432\u0438\u0430\u043d\u0430", "PF": "\u0424\u0440\u0430\u043d\u0446\u0443\u0437\u0441\u043a\u0430\u044f \u041f\u043e\u043b\u0438\u043d\u0435\u0437\u0438\u044f", "TF": "\u0424\u0440\u0430\u043d\u0446\u0443\u0437\u0441\u043a\u0438\u0435 \u042e\u0436\u043d\u044b\u0435 \u0442\u0435\u0440\u0440\u0438\u0442\u043e\u0440\u0438\u0438", "HR": "\u0425\u043e\u0440\u0432\u0430\u0442\u0438\u044f", "CF": "\u0426\u0435\u043d\u0442\u0440\u0430\u043b\u044c\u043d\u043e-\u0410\u0444\u0440\u0438\u043a\u0430\u043d\u0441\u043a\u0430\u044f \u0420\u0435\u0441\u043f\u0443\u0431\u043b\u0438\u043a\u0430", "TD": "\u0427\u0430\u0434", "ME": "\u0427\u0435\u0440\u043d\u043e\u0433\u043e\u0440\u0438\u044f", "CZ": "\u0427\u0435\u0445\u0438\u044f", "CL": "\u0427\u0438\u043b\u0438", "CH": "\u0428\u0432\u0435\u0439\u0446\u0430\u0440\u0438\u044f", "SE": "\u0428\u0432\u0435\u0446\u0438\u044f", "SJ": "\u0428\u043f\u0438\u0446\u0431\u0435\u0440\u0433\u0435\u043d \u0438 \u042f\u043d-\u041c\u0430\u0439\u0435\u043d", "LK": "\u0428\u0440\u0438-\u041b\u0430\u043d\u043a\u0430", "EC": "\u042d\u043a\u0432\u0430\u0434\u043e\u0440", "GQ": "\u042d\u043a\u0432\u0430\u0442\u043e\u0440\u0438\u0430\u043b\u044c\u043d\u0430\u044f \u0413\u0432\u0438\u043d\u0435\u044f", "ER": "\u042d\u0440\u0438\u0442\u0440\u0435\u044f", "SZ": "\u042d\u0441\u0432\u0430\u0442\u0438\u043d\u0438", "EE": "\u042d\u0441\u0442\u043e\u043d\u0438\u044f", "ET": "\u042d\u0444\u0438\u043e\u043f\u0438\u044f", "GS": "\u042e\u0436\u043d\u0430\u044f \u0413\u0435\u043e\u0440\u0433\u0438\u044f \u0438 \u042e\u0436\u043d\u044b\u0435 \u0421\u0430\u043d\u0434\u0432\u0438\u0447\u0435\u0432\u044b \u043e-\u0432\u0430", "ZA": "\u042e\u0436\u043d\u043e-\u0410\u0444\u0440\u0438\u043a\u0430\u043d\u0441\u043a\u0430\u044f \u0420\u0435\u0441\u043f\u0443\u0431\u043b\u0438\u043a\u0430", "SS": "\u042e\u0436\u043d\u044b\u0439 \u0421\u0443\u0434\u0430\u043d", "JM": "\u042f\u043c\u0430\u0439\u043a\u0430", "JP": "\u042f\u043f\u043e\u043d\u0438\u044f"} \ No newline at end of file +{"AU": "\u0410\u0432\u0441\u0442\u0440\u0430\u043b\u0438\u044f", "AT": "\u0410\u0432\u0441\u0442\u0440\u0438\u044f", "AZ": "\u0410\u0437\u0435\u0440\u0431\u0430\u0439\u0434\u0436\u0430\u043d", "AX": "\u0410\u043b\u0430\u043d\u0434\u0441\u043a\u0438\u0435 \u043e-\u0432\u0430", "AL": "\u0410\u043b\u0431\u0430\u043d\u0438\u044f", "DZ": "\u0410\u043b\u0436\u0438\u0440", "AS": "\u0410\u043c\u0435\u0440\u0438\u043a\u0430\u043d\u0441\u043a\u043e\u0435 \u0421\u0430\u043c\u043e\u0430", "AI": "\u0410\u043d\u0433\u0438\u043b\u044c\u044f", "AO": "\u0410\u043d\u0433\u043e\u043b\u0430", "AD": "\u0410\u043d\u0434\u043e\u0440\u0440\u0430", "AQ": "\u0410\u043d\u0442\u0430\u0440\u043a\u0442\u0438\u0434\u0430", "AG": "\u0410\u043d\u0442\u0438\u0433\u0443\u0430 \u0438 \u0411\u0430\u0440\u0431\u0443\u0434\u0430", "AR": "\u0410\u0440\u0433\u0435\u043d\u0442\u0438\u043d\u0430", "AM": "\u0410\u0440\u043c\u0435\u043d\u0438\u044f", "AW": "\u0410\u0440\u0443\u0431\u0430", "AF": "\u0410\u0444\u0433\u0430\u043d\u0438\u0441\u0442\u0430\u043d", "BS": "\u0411\u0430\u0433\u0430\u043c\u044b", "BD": "\u0411\u0430\u043d\u0433\u043b\u0430\u0434\u0435\u0448", "BB": "\u0411\u0430\u0440\u0431\u0430\u0434\u043e\u0441", "BH": "\u0411\u0430\u0445\u0440\u0435\u0439\u043d", "BY": "\u0411\u0435\u043b\u0430\u0440\u0443\u0441\u044c", "BZ": "\u0411\u0435\u043b\u0438\u0437", "BE": "\u0411\u0435\u043b\u044c\u0433\u0438\u044f", "BJ": "\u0411\u0435\u043d\u0438\u043d", "BM": "\u0411\u0435\u0440\u043c\u0443\u0434\u0441\u043a\u0438\u0435 \u043e-\u0432\u0430", "BG": "\u0411\u043e\u043b\u0433\u0430\u0440\u0438\u044f", "BO": "\u0411\u043e\u043b\u0438\u0432\u0438\u044f", "BQ": "\u0411\u043e\u043d\u044d\u0439\u0440, \u0421\u0438\u043d\u0442-\u042d\u0441\u0442\u0430\u0442\u0438\u0443\u0441 \u0438 \u0421\u0430\u0431\u0430", "BA": "\u0411\u043e\u0441\u043d\u0438\u044f \u0438 \u0413\u0435\u0440\u0446\u0435\u0433\u043e\u0432\u0438\u043d\u0430", "BW": "\u0411\u043e\u0442\u0441\u0432\u0430\u043d\u0430", "BR": "\u0411\u0440\u0430\u0437\u0438\u043b\u0438\u044f", "IO": "\u0411\u0440\u0438\u0442\u0430\u043d\u0441\u043a\u0430\u044f \u0442\u0435\u0440\u0440\u0438\u0442\u043e\u0440\u0438\u044f \u0432 \u0418\u043d\u0434\u0438\u0439\u0441\u043a\u043e\u043c \u043e\u043a\u0435\u0430\u043d\u0435", "BN": "\u0411\u0440\u0443\u043d\u0435\u0439-\u0414\u0430\u0440\u0443\u0441\u0441\u0430\u043b\u0430\u043c", "BF": "\u0411\u0443\u0440\u043a\u0438\u043d\u0430-\u0424\u0430\u0441\u043e", "BI": "\u0411\u0443\u0440\u0443\u043d\u0434\u0438", "BT": "\u0411\u0443\u0442\u0430\u043d", "VU": "\u0412\u0430\u043d\u0443\u0430\u0442\u0443", "VA": "\u0412\u0430\u0442\u0438\u043a\u0430\u043d", "GB": "\u0412\u0435\u043b\u0438\u043a\u043e\u0431\u0440\u0438\u0442\u0430\u043d\u0438\u044f", "HU": "\u0412\u0435\u043d\u0433\u0440\u0438\u044f", "VE": "\u0412\u0435\u043d\u0435\u0441\u0443\u044d\u043b\u0430", "VG": "\u0412\u0438\u0440\u0433\u0438\u043d\u0441\u043a\u0438\u0435 \u043e-\u0432\u0430 (\u0412\u0435\u043b\u0438\u043a\u043e\u0431\u0440\u0438\u0442\u0430\u043d\u0438\u044f)", "VI": "\u0412\u0438\u0440\u0433\u0438\u043d\u0441\u043a\u0438\u0435 \u043e-\u0432\u0430 (\u0421\u0428\u0410)", "TL": "\u0412\u043e\u0441\u0442\u043e\u0447\u043d\u044b\u0439 \u0422\u0438\u043c\u043e\u0440", "VN": "\u0412\u044c\u0435\u0442\u043d\u0430\u043c", "GA": "\u0413\u0430\u0431\u043e\u043d", "HT": "\u0413\u0430\u0438\u0442\u0438", "GY": "\u0413\u0430\u0439\u0430\u043d\u0430", "GM": "\u0413\u0430\u043c\u0431\u0438\u044f", "GH": "\u0413\u0430\u043d\u0430", "GP": "\u0413\u0432\u0430\u0434\u0435\u043b\u0443\u043f\u0430", "GT": "\u0413\u0432\u0430\u0442\u0435\u043c\u0430\u043b\u0430", "GN": "\u0413\u0432\u0438\u043d\u0435\u044f", "GW": "\u0413\u0432\u0438\u043d\u0435\u044f-\u0411\u0438\u0441\u0430\u0443", "DE": "\u0413\u0435\u0440\u043c\u0430\u043d\u0438\u044f", "GG": "\u0413\u0435\u0440\u043d\u0441\u0438", "GI": "\u0413\u0438\u0431\u0440\u0430\u043b\u0442\u0430\u0440", "HN": "\u0413\u043e\u043d\u0434\u0443\u0440\u0430\u0441", "HK": "\u0413\u043e\u043d\u043a\u043e\u043d\u0433 (\u0421\u0410\u0420)", "GD": "\u0413\u0440\u0435\u043d\u0430\u0434\u0430", "GL": "\u0413\u0440\u0435\u043d\u043b\u0430\u043d\u0434\u0438\u044f", "GR": "\u0413\u0440\u0435\u0446\u0438\u044f", "GE": "\u0413\u0440\u0443\u0437\u0438\u044f", "GU": "\u0413\u0443\u0430\u043c", "DK": "\u0414\u0430\u043d\u0438\u044f", "DJ": "\u0414\u0436\u0438\u0431\u0443\u0442\u0438", "DM": "\u0414\u043e\u043c\u0438\u043d\u0438\u043a\u0430", "DO": "\u0414\u043e\u043c\u0438\u043d\u0438\u043a\u0430\u043d\u0441\u043a\u0430\u044f \u0420\u0435\u0441\u043f\u0443\u0431\u043b\u0438\u043a\u0430", "EG": "\u0415\u0433\u0438\u043f\u0435\u0442", "ZM": "\u0417\u0430\u043c\u0431\u0438\u044f", "EH": "\u0417\u0430\u043f\u0430\u0434\u043d\u0430\u044f \u0421\u0430\u0445\u0430\u0440\u0430", "ZW": "\u0417\u0438\u043c\u0431\u0430\u0431\u0432\u0435", "IL": "\u0418\u0437\u0440\u0430\u0438\u043b\u044c", "IN": "\u0418\u043d\u0434\u0438\u044f", "ID": "\u0418\u043d\u0434\u043e\u043d\u0435\u0437\u0438\u044f", "JO": "\u0418\u043e\u0440\u0434\u0430\u043d\u0438\u044f", "IQ": "\u0418\u0440\u0430\u043a", "IR": "\u0418\u0440\u0430\u043d", "IE": "\u0418\u0440\u043b\u0430\u043d\u0434\u0438\u044f", "IS": "\u0418\u0441\u043b\u0430\u043d\u0434\u0438\u044f", "ES": "\u0418\u0441\u043f\u0430\u043d\u0438\u044f", "IT": "\u0418\u0442\u0430\u043b\u0438\u044f", "YE": "\u0419\u0435\u043c\u0435\u043d", "CV": "\u041a\u0430\u0431\u043e-\u0412\u0435\u0440\u0434\u0435", "KZ": "\u041a\u0430\u0437\u0430\u0445\u0441\u0442\u0430\u043d", "KH": "\u041a\u0430\u043c\u0431\u043e\u0434\u0436\u0430", "CM": "\u041a\u0430\u043c\u0435\u0440\u0443\u043d", "CA": "\u041a\u0430\u043d\u0430\u0434\u0430", "QA": "\u041a\u0430\u0442\u0430\u0440", "KE": "\u041a\u0435\u043d\u0438\u044f", "CY": "\u041a\u0438\u043f\u0440", "KG": "\u041a\u0438\u0440\u0433\u0438\u0437\u0438\u044f", "KI": "\u041a\u0438\u0440\u0438\u0431\u0430\u0442\u0438", "CN": "\u041a\u0438\u0442\u0430\u0439", "KP": "\u041a\u041d\u0414\u0420", "CC": "\u041a\u043e\u043a\u043e\u0441\u043e\u0432\u044b\u0435 \u043e-\u0432\u0430", "CO": "\u041a\u043e\u043b\u0443\u043c\u0431\u0438\u044f", "KM": "\u041a\u043e\u043c\u043e\u0440\u044b", "CG": "\u041a\u043e\u043d\u0433\u043e - \u0411\u0440\u0430\u0437\u0437\u0430\u0432\u0438\u043b\u044c", "CD": "\u041a\u043e\u043d\u0433\u043e - \u041a\u0438\u043d\u0448\u0430\u0441\u0430", "CR": "\u041a\u043e\u0441\u0442\u0430-\u0420\u0438\u043a\u0430", "CI": "\u041a\u043e\u0442-\u0434\u2019\u0418\u0432\u0443\u0430\u0440", "CU": "\u041a\u0443\u0431\u0430", "KW": "\u041a\u0443\u0432\u0435\u0439\u0442", "CW": "\u041a\u044e\u0440\u0430\u0441\u0430\u043e", "LA": "\u041b\u0430\u043e\u0441", "LV": "\u041b\u0430\u0442\u0432\u0438\u044f", "LS": "\u041b\u0435\u0441\u043e\u0442\u043e", "LR": "\u041b\u0438\u0431\u0435\u0440\u0438\u044f", "LB": "\u041b\u0438\u0432\u0430\u043d", "LY": "\u041b\u0438\u0432\u0438\u044f", "LT": "\u041b\u0438\u0442\u0432\u0430", "LI": "\u041b\u0438\u0445\u0442\u0435\u043d\u0448\u0442\u0435\u0439\u043d", "LU": "\u041b\u044e\u043a\u0441\u0435\u043c\u0431\u0443\u0440\u0433", "MU": "\u041c\u0430\u0432\u0440\u0438\u043a\u0438\u0439", "MR": "\u041c\u0430\u0432\u0440\u0438\u0442\u0430\u043d\u0438\u044f", "MG": "\u041c\u0430\u0434\u0430\u0433\u0430\u0441\u043a\u0430\u0440", "YT": "\u041c\u0430\u0439\u043e\u0442\u0442\u0430", "MO": "\u041c\u0430\u043a\u0430\u043e (\u0421\u0410\u0420)", "MW": "\u041c\u0430\u043b\u0430\u0432\u0438", "MY": "\u041c\u0430\u043b\u0430\u0439\u0437\u0438\u044f", "ML": "\u041c\u0430\u043b\u0438", "MV": "\u041c\u0430\u043b\u044c\u0434\u0438\u0432\u044b", "MT": "\u041c\u0430\u043b\u044c\u0442\u0430", "MA": "\u041c\u0430\u0440\u043e\u043a\u043a\u043e", "MQ": "\u041c\u0430\u0440\u0442\u0438\u043d\u0438\u043a\u0430", "MX": "\u041c\u0435\u043a\u0441\u0438\u043a\u0430", "MZ": "\u041c\u043e\u0437\u0430\u043c\u0431\u0438\u043a", "MD": "\u041c\u043e\u043b\u0434\u043e\u0432\u0430", "MC": "\u041c\u043e\u043d\u0430\u043a\u043e", "MN": "\u041c\u043e\u043d\u0433\u043e\u043b\u0438\u044f", "MS": "\u041c\u043e\u043d\u0442\u0441\u0435\u0440\u0440\u0430\u0442", "MM": "\u041c\u044c\u044f\u043d\u043c\u0430 (\u0411\u0438\u0440\u043c\u0430)", "NA": "\u041d\u0430\u043c\u0438\u0431\u0438\u044f", "NR": "\u041d\u0430\u0443\u0440\u0443", "NP": "\u041d\u0435\u043f\u0430\u043b", "NE": "\u041d\u0438\u0433\u0435\u0440", "NG": "\u041d\u0438\u0433\u0435\u0440\u0438\u044f", "NL": "\u041d\u0438\u0434\u0435\u0440\u043b\u0430\u043d\u0434\u044b", "NI": "\u041d\u0438\u043a\u0430\u0440\u0430\u0433\u0443\u0430", "NU": "\u041d\u0438\u0443\u044d", "NZ": "\u041d\u043e\u0432\u0430\u044f \u0417\u0435\u043b\u0430\u043d\u0434\u0438\u044f", "NC": "\u041d\u043e\u0432\u0430\u044f \u041a\u0430\u043b\u0435\u0434\u043e\u043d\u0438\u044f", "NO": "\u041d\u043e\u0440\u0432\u0435\u0433\u0438\u044f", "BV": "\u043e-\u0432 \u0411\u0443\u0432\u0435", "IM": "\u043e-\u0432 \u041c\u044d\u043d", "NF": "\u043e-\u0432 \u041d\u043e\u0440\u0444\u043e\u043b\u043a", "CX": "\u043e-\u0432 \u0420\u043e\u0436\u0434\u0435\u0441\u0442\u0432\u0430", "SH": "\u043e-\u0432 \u0421\u0432. \u0415\u043b\u0435\u043d\u044b", "PN": "\u043e-\u0432\u0430 \u041f\u0438\u0442\u043a\u044d\u0440\u043d", "TC": "\u043e-\u0432\u0430 \u0422\u0451\u0440\u043a\u0441 \u0438 \u041a\u0430\u0439\u043a\u043e\u0441", "HM": "\u043e-\u0432\u0430 \u0425\u0435\u0440\u0434 \u0438 \u041c\u0430\u043a\u0434\u043e\u043d\u0430\u043b\u044c\u0434", "AE": "\u041e\u0410\u042d", "OM": "\u041e\u043c\u0430\u043d", "KY": "\u041e\u0441\u0442\u0440\u043e\u0432\u0430 \u041a\u0430\u0439\u043c\u0430\u043d", "CK": "\u041e\u0441\u0442\u0440\u043e\u0432\u0430 \u041a\u0443\u043a\u0430", "PK": "\u041f\u0430\u043a\u0438\u0441\u0442\u0430\u043d", "PW": "\u041f\u0430\u043b\u0430\u0443", "PA": "\u041f\u0430\u043d\u0430\u043c\u0430", "PG": "\u041f\u0430\u043f\u0443\u0430 \u2014 \u041d\u043e\u0432\u0430\u044f \u0413\u0432\u0438\u043d\u0435\u044f", "PY": "\u041f\u0430\u0440\u0430\u0433\u0432\u0430\u0439", "PE": "\u041f\u0435\u0440\u0443", "PL": "\u041f\u043e\u043b\u044c\u0448\u0430", "PT": "\u041f\u043e\u0440\u0442\u0443\u0433\u0430\u043b\u0438\u044f", "PR": "\u041f\u0443\u044d\u0440\u0442\u043e-\u0420\u0438\u043a\u043e", "KR": "\u0420\u0435\u0441\u043f\u0443\u0431\u043b\u0438\u043a\u0430 \u041a\u043e\u0440\u0435\u044f", "RE": "\u0420\u0435\u044e\u043d\u044c\u043e\u043d", "RU": "\u0420\u043e\u0441\u0441\u0438\u044f", "RW": "\u0420\u0443\u0430\u043d\u0434\u0430", "RO": "\u0420\u0443\u043c\u044b\u043d\u0438\u044f", "SV": "\u0421\u0430\u043b\u044c\u0432\u0430\u0434\u043e\u0440", "WS": "\u0421\u0430\u043c\u043e\u0430", "SM": "\u0421\u0430\u043d-\u041c\u0430\u0440\u0438\u043d\u043e", "ST": "\u0421\u0430\u043d-\u0422\u043e\u043c\u0435 \u0438 \u041f\u0440\u0438\u043d\u0441\u0438\u043f\u0438", "SA": "\u0421\u0430\u0443\u0434\u043e\u0432\u0441\u043a\u0430\u044f \u0410\u0440\u0430\u0432\u0438\u044f", "MK": "\u0421\u0435\u0432\u0435\u0440\u043d\u0430\u044f \u041c\u0430\u043a\u0435\u0434\u043e\u043d\u0438\u044f", "SC": "\u0421\u0435\u0439\u0448\u0435\u043b\u044c\u0441\u043a\u0438\u0435 \u041e\u0441\u0442\u0440\u043e\u0432\u0430", "BL": "\u0421\u0435\u043d-\u0411\u0430\u0440\u0442\u0435\u043b\u0435\u043c\u0438", "MF": "\u0421\u0435\u043d-\u041c\u0430\u0440\u0442\u0435\u043d", "PM": "\u0421\u0435\u043d-\u041f\u044c\u0435\u0440 \u0438 \u041c\u0438\u043a\u0435\u043b\u043e\u043d", "SN": "\u0421\u0435\u043d\u0435\u0433\u0430\u043b", "VC": "\u0421\u0435\u043d\u0442-\u0412\u0438\u043d\u0441\u0435\u043d\u0442 \u0438 \u0413\u0440\u0435\u043d\u0430\u0434\u0438\u043d\u044b", "KN": "\u0421\u0435\u043d\u0442-\u041a\u0438\u0442\u0441 \u0438 \u041d\u0435\u0432\u0438\u0441", "LC": "\u0421\u0435\u043d\u0442-\u041b\u044e\u0441\u0438\u044f", "RS": "\u0421\u0435\u0440\u0431\u0438\u044f", "SG": "\u0421\u0438\u043d\u0433\u0430\u043f\u0443\u0440", "SX": "\u0421\u0438\u043d\u0442-\u041c\u0430\u0440\u0442\u0435\u043d", "SY": "\u0421\u0438\u0440\u0438\u044f", "SK": "\u0421\u043b\u043e\u0432\u0430\u043a\u0438\u044f", "SI": "\u0421\u043b\u043e\u0432\u0435\u043d\u0438\u044f", "US": "\u0421\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u043d\u044b\u0435 \u0428\u0442\u0430\u0442\u044b", "SB": "\u0421\u043e\u043b\u043e\u043c\u043e\u043d\u043e\u0432\u044b \u041e\u0441\u0442\u0440\u043e\u0432\u0430", "SO": "\u0421\u043e\u043c\u0430\u043b\u0438", "SD": "\u0421\u0443\u0434\u0430\u043d", "SR": "\u0421\u0443\u0440\u0438\u043d\u0430\u043c", "SL": "\u0421\u044c\u0435\u0440\u0440\u0430-\u041b\u0435\u043e\u043d\u0435", "TJ": "\u0422\u0430\u0434\u0436\u0438\u043a\u0438\u0441\u0442\u0430\u043d", "TH": "\u0422\u0430\u0438\u043b\u0430\u043d\u0434", "TW": "\u0422\u0430\u0439\u0432\u0430\u043d\u044c", "TZ": "\u0422\u0430\u043d\u0437\u0430\u043d\u0438\u044f", "TG": "\u0422\u043e\u0433\u043e", "TK": "\u0422\u043e\u043a\u0435\u043b\u0430\u0443", "TO": "\u0422\u043e\u043d\u0433\u0430", "TT": "\u0422\u0440\u0438\u043d\u0438\u0434\u0430\u0434 \u0438 \u0422\u043e\u0431\u0430\u0433\u043e", "TN": "\u0422\u0443\u043d\u0438\u0441", "TM": "\u0422\u0443\u0440\u043a\u043c\u0435\u043d\u0438\u0441\u0442\u0430\u043d", "TR": "\u0422\u0443\u0440\u0446\u0438\u044f", "UG": "\u0423\u0433\u0430\u043d\u0434\u0430", "UZ": "\u0423\u0437\u0431\u0435\u043a\u0438\u0441\u0442\u0430\u043d", "UA": "\u0423\u043a\u0440\u0430\u0438\u043d\u0430", "WF": "\u0423\u043e\u043b\u043b\u0438\u0441 \u0438 \u0424\u0443\u0442\u0443\u043d\u0430", "UY": "\u0423\u0440\u0443\u0433\u0432\u0430\u0439", "FO": "\u0424\u0430\u0440\u0435\u0440\u0441\u043a\u0438\u0435 \u043e-\u0432\u0430", "FJ": "\u0424\u0438\u0434\u0436\u0438", "PH": "\u0424\u0438\u043b\u0438\u043f\u043f\u0438\u043d\u044b", "FI": "\u0424\u0438\u043d\u043b\u044f\u043d\u0434\u0438\u044f", "FK": "\u0424\u043e\u043b\u043a\u043b\u0435\u043d\u0434\u0441\u043a\u0438\u0435 \u043e-\u0432\u0430", "FR": "\u0424\u0440\u0430\u043d\u0446\u0438\u044f", "GF": "\u0424\u0440\u0430\u043d\u0446\u0443\u0437\u0441\u043a\u0430\u044f \u0413\u0432\u0438\u0430\u043d\u0430", "PF": "\u0424\u0440\u0430\u043d\u0446\u0443\u0437\u0441\u043a\u0430\u044f \u041f\u043e\u043b\u0438\u043d\u0435\u0437\u0438\u044f", "TF": "\u0424\u0440\u0430\u043d\u0446\u0443\u0437\u0441\u043a\u0438\u0435 \u042e\u0436\u043d\u044b\u0435 \u0442\u0435\u0440\u0440\u0438\u0442\u043e\u0440\u0438\u0438", "HR": "\u0425\u043e\u0440\u0432\u0430\u0442\u0438\u044f", "CF": "\u0426\u0435\u043d\u0442\u0440\u0430\u043b\u044c\u043d\u043e-\u0410\u0444\u0440\u0438\u043a\u0430\u043d\u0441\u043a\u0430\u044f \u0420\u0435\u0441\u043f\u0443\u0431\u043b\u0438\u043a\u0430", "TD": "\u0427\u0430\u0434", "ME": "\u0427\u0435\u0440\u043d\u043e\u0433\u043e\u0440\u0438\u044f", "CZ": "\u0427\u0435\u0445\u0438\u044f", "CL": "\u0427\u0438\u043b\u0438", "CH": "\u0428\u0432\u0435\u0439\u0446\u0430\u0440\u0438\u044f", "SE": "\u0428\u0432\u0435\u0446\u0438\u044f", "SJ": "\u0428\u043f\u0438\u0446\u0431\u0435\u0440\u0433\u0435\u043d \u0438 \u042f\u043d-\u041c\u0430\u0439\u0435\u043d", "LK": "\u0428\u0440\u0438-\u041b\u0430\u043d\u043a\u0430", "EC": "\u042d\u043a\u0432\u0430\u0434\u043e\u0440", "GQ": "\u042d\u043a\u0432\u0430\u0442\u043e\u0440\u0438\u0430\u043b\u044c\u043d\u0430\u044f \u0413\u0432\u0438\u043d\u0435\u044f", "ER": "\u042d\u0440\u0438\u0442\u0440\u0435\u044f", "SZ": "\u042d\u0441\u0432\u0430\u0442\u0438\u043d\u0438", "EE": "\u042d\u0441\u0442\u043e\u043d\u0438\u044f", "ET": "\u042d\u0444\u0438\u043e\u043f\u0438\u044f", "GS": "\u042e\u0436\u043d\u0430\u044f \u0413\u0435\u043e\u0440\u0433\u0438\u044f \u0438 \u042e\u0436\u043d\u044b\u0435 \u0421\u0430\u043d\u0434\u0432\u0438\u0447\u0435\u0432\u044b \u043e-\u0432\u0430", "ZA": "\u042e\u0436\u043d\u043e-\u0410\u0444\u0440\u0438\u043a\u0430\u043d\u0441\u043a\u0430\u044f \u0420\u0435\u0441\u043f\u0443\u0431\u043b\u0438\u043a\u0430", "SS": "\u042e\u0436\u043d\u044b\u0439 \u0421\u0443\u0434\u0430\u043d", "JM": "\u042f\u043c\u0430\u0439\u043a\u0430", "JP": "\u042f\u043f\u043e\u043d\u0438\u044f"} \ No newline at end of file diff --git a/desktop/src/onionshare/resources/countries/sv.json b/desktop/src/onionshare/resources/countries/sv.json index 401b9156..77b65a55 100644 --- a/desktop/src/onionshare/resources/countries/sv.json +++ b/desktop/src/onionshare/resources/countries/sv.json @@ -1 +1 @@ -{"AF": "Afghanistan", "AL": "Albanien", "DZ": "Algeriet", "VI": "Amerikanska Jungfru\u00f6arna", "AS": "Amerikanska Samoa", "AD": "Andorra", "AO": "Angola", "AI": "Anguilla", "AQ": "Antarktis", "AG": "Antigua och Barbuda", "AR": "Argentina", "AM": "Armenien", "AW": "Aruba", "AU": "Australien", "AZ": "Azerbajdzjan", "BS": "Bahamas", "BH": "Bahrain", "BD": "Bangladesh", "BB": "Barbados", "BE": "Belgien", "BZ": "Belize", "BJ": "Benin", "BM": "Bermuda", "BT": "Bhutan", "BO": "Bolivia", "BA": "Bosnien och Hercegovina", "BW": "Botswana", "BV": "Bouvet\u00f6n", "BR": "Brasilien", "VG": "Brittiska Jungfru\u00f6arna", "IO": "Brittiska territoriet i Indiska oceanen", "BN": "Brunei", "BG": "Bulgarien", "BF": "Burkina Faso", "BI": "Burundi", "KY": "Cayman\u00f6arna", "CF": "Centralafrikanska republiken", "CL": "Chile", "CO": "Colombia", "CK": "Cook\u00f6arna", "CR": "Costa Rica", "CW": "Cura\u00e7ao", "CY": "Cypern", "CI": "C\u00f4te d\u2019Ivoire", "DK": "Danmark", "DJ": "Djibouti", "DM": "Dominica", "DO": "Dominikanska republiken", "EC": "Ecuador", "EG": "Egypten", "GQ": "Ekvatorialguinea", "SV": "El Salvador", "ER": "Eritrea", "EE": "Estland", "ET": "Etiopien", "FK": "Falklands\u00f6arna", "FJ": "Fiji", "PH": "Filippinerna", "FI": "Finland", "FR": "Frankrike", "GF": "Franska Guyana", "PF": "Franska Polynesien", "TF": "Franska sydterritorierna", "FO": "F\u00e4r\u00f6arna", "AE": "F\u00f6renade Arabemiraten", "GA": "Gabon", "GM": "Gambia", "GE": "Georgien", "GH": "Ghana", "GI": "Gibraltar", "GR": "Grekland", "GD": "Grenada", "GL": "Gr\u00f6nland", "GP": "Guadeloupe", "GU": "Guam", "GT": "Guatemala", "GG": "Guernsey", "GN": "Guinea", "GW": "Guinea-Bissau", "GY": "Guyana", "HT": "Haiti", "HM": "Heard\u00f6n och McDonald\u00f6arna", "HN": "Honduras", "HK": "Hongkong", "IN": "Indien", "ID": "Indonesien", "IQ": "Irak", "IR": "Iran", "IE": "Irland", "IS": "Island", "IM": "Isle of Man", "IL": "Israel", "IT": "Italien", "JM": "Jamaica", "JP": "Japan", "YE": "Jemen", "JE": "Jersey", "JO": "Jordanien", "CX": "Jul\u00f6n", "KH": "Kambodja", "CM": "Kamerun", "CA": "Kanada", "CV": "Kap Verde", "BQ": "Karibiska Nederl\u00e4nderna", "KZ": "Kazakstan", "KE": "Kenya", "CN": "Kina", "KG": "Kirgizistan", "KI": "Kiribati", "CC": "Kokos\u00f6arna", "KM": "Komorerna", "CG": "Kongo-Brazzaville", "CD": "Kongo-Kinshasa", "HR": "Kroatien", "CU": "Kuba", "KW": "Kuwait", "LA": "Laos", "LS": "Lesotho", "LV": "Lettland", "LB": "Libanon", "LR": "Liberia", "LY": "Libyen", "LI": "Liechtenstein", "LT": "Litauen", "LU": "Luxemburg", "MO": "Macao", "MG": "Madagaskar", "MW": "Malawi", "MY": "Malaysia", "MV": "Maldiverna", "ML": "Mali", "MT": "Malta", "MA": "Marocko", "MH": "Marshall\u00f6arna", "MQ": "Martinique", "MR": "Mauretanien", "MU": "Mauritius", "YT": "Mayotte", "MX": "Mexiko", "FM": "Mikronesien", "MZ": "Mo\u00e7ambique", "MD": "Moldavien", "MC": "Monaco", "MN": "Mongoliet", "ME": "Montenegro", "MS": "Montserrat", "MM": "Myanmar (Burma)", "NA": "Namibia", "NR": "Nauru", "NL": "Nederl\u00e4nderna", "NP": "Nepal", "NI": "Nicaragua", "NE": "Niger", "NG": "Nigeria", "NU": "Niue", "KP": "Nordkorea", "MK": "Nordmakedonien", "MP": "Nordmarianerna", "NF": "Norfolk\u00f6n", "NO": "Norge", "NC": "Nya Kaledonien", "NZ": "Nya Zeeland", "OM": "Oman", "PK": "Pakistan", "PW": "Palau", "PS": "Palestinska territorierna", "PA": "Panama", "PG": "Papua Nya Guinea", "PY": "Paraguay", "PE": "Peru", "PN": "Pitcairn\u00f6arna", "PL": "Polen", "PT": "Portugal", "PR": "Puerto Rico", "QA": "Qatar", "RE": "R\u00e9union", "RO": "Rum\u00e4nien", "RW": "Rwanda", "RU": "Ryssland", "BL": "S:t Barth\u00e9lemy", "SH": "S:t Helena", "KN": "S:t Kitts och Nevis", "LC": "S:t Lucia", "PM": "S:t Pierre och Miquelon", "VC": "S:t Vincent och Grenadinerna", "MF": "Saint-Martin", "SB": "Salomon\u00f6arna", "WS": "Samoa", "SM": "San Marino", "ST": "S\u00e3o Tom\u00e9 och Pr\u00edncipe", "SA": "Saudiarabien", "CH": "Schweiz", "SN": "Senegal", "RS": "Serbien", "SC": "Seychellerna", "SL": "Sierra Leone", "SG": "Singapore", "SX": "Sint Maarten", "SK": "Slovakien", "SI": "Slovenien", "SO": "Somalia", "ES": "Spanien", "LK": "Sri Lanka", "GB": "Storbritannien", "SD": "Sudan", "SR": "Surinam", "SJ": "Svalbard och Jan Mayen", "SE": "Sverige", "SZ": "Swaziland", "ZA": "Sydafrika", "GS": "Sydgeorgien och Sydsandwich\u00f6arna", "KR": "Sydkorea", "SS": "Sydsudan", "SY": "Syrien", "TJ": "Tadzjikistan", "TW": "Taiwan", "TZ": "Tanzania", "TD": "Tchad", "TH": "Thailand", "CZ": "Tjeckien", "TG": "Togo", "TK": "Tokelau", "TO": "Tonga", "TT": "Trinidad och Tobago", "TN": "Tunisien", "TR": "Turkiet", "TM": "Turkmenistan", "TC": "Turks- och Caicos\u00f6arna", "TV": "Tuvalu", "DE": "Tyskland", "UG": "Uganda", "UA": "Ukraina", "HU": "Ungern", "UY": "Uruguay", "US": "USA", "UM": "USA:s yttre \u00f6ar", "UZ": "Uzbekistan", "VU": "Vanuatu", "VA": "Vatikanstaten", "VE": "Venezuela", "VN": "Vietnam", "BY": "Vitryssland", "EH": "V\u00e4stsahara", "WF": "Wallis- och Futuna\u00f6arna", "ZM": "Zambia", "ZW": "Zimbabwe", "AX": "\u00c5land", "AT": "\u00d6sterrike", "TL": "\u00d6sttimor"} \ No newline at end of file +{"AF": "Afghanistan", "AL": "Albanien", "DZ": "Algeriet", "VI": "Amerikanska Jungfru\u00f6arna", "AS": "Amerikanska Samoa", "AD": "Andorra", "AO": "Angola", "AI": "Anguilla", "AQ": "Antarktis", "AG": "Antigua och Barbuda", "AR": "Argentina", "AM": "Armenien", "AW": "Aruba", "AU": "Australien", "AZ": "Azerbajdzjan", "BS": "Bahamas", "BH": "Bahrain", "BD": "Bangladesh", "BB": "Barbados", "BE": "Belgien", "BZ": "Belize", "BJ": "Benin", "BM": "Bermuda", "BT": "Bhutan", "BO": "Bolivia", "BA": "Bosnien och Hercegovina", "BW": "Botswana", "BV": "Bouvet\u00f6n", "BR": "Brasilien", "VG": "Brittiska Jungfru\u00f6arna", "IO": "Brittiska territoriet i Indiska oceanen", "BN": "Brunei", "BG": "Bulgarien", "BF": "Burkina Faso", "BI": "Burundi", "KY": "Cayman\u00f6arna", "CF": "Centralafrikanska republiken", "CL": "Chile", "CO": "Colombia", "CK": "Cook\u00f6arna", "CR": "Costa Rica", "CW": "Cura\u00e7ao", "CY": "Cypern", "CI": "C\u00f4te d\u2019Ivoire", "DK": "Danmark", "DJ": "Djibouti", "DM": "Dominica", "DO": "Dominikanska republiken", "EC": "Ecuador", "EG": "Egypten", "GQ": "Ekvatorialguinea", "SV": "El Salvador", "ER": "Eritrea", "EE": "Estland", "ET": "Etiopien", "FK": "Falklands\u00f6arna", "FJ": "Fiji", "PH": "Filippinerna", "FI": "Finland", "FR": "Frankrike", "GF": "Franska Guyana", "PF": "Franska Polynesien", "TF": "Franska sydterritorierna", "FO": "F\u00e4r\u00f6arna", "AE": "F\u00f6renade Arabemiraten", "GA": "Gabon", "GM": "Gambia", "GE": "Georgien", "GH": "Ghana", "GI": "Gibraltar", "GR": "Grekland", "GD": "Grenada", "GL": "Gr\u00f6nland", "GP": "Guadeloupe", "GU": "Guam", "GT": "Guatemala", "GG": "Guernsey", "GN": "Guinea", "GW": "Guinea-Bissau", "GY": "Guyana", "HT": "Haiti", "HM": "Heard\u00f6n och McDonald\u00f6arna", "HN": "Honduras", "HK": "Hongkong", "IN": "Indien", "ID": "Indonesien", "IQ": "Irak", "IR": "Iran", "IE": "Irland", "IS": "Island", "IM": "Isle of Man", "IL": "Israel", "IT": "Italien", "JM": "Jamaica", "JP": "Japan", "YE": "Jemen", "JO": "Jordanien", "CX": "Jul\u00f6n", "KH": "Kambodja", "CM": "Kamerun", "CA": "Kanada", "CV": "Kap Verde", "BQ": "Karibiska Nederl\u00e4nderna", "KZ": "Kazakstan", "KE": "Kenya", "CN": "Kina", "KG": "Kirgizistan", "KI": "Kiribati", "CC": "Kokos\u00f6arna", "KM": "Komorerna", "CG": "Kongo-Brazzaville", "CD": "Kongo-Kinshasa", "HR": "Kroatien", "CU": "Kuba", "KW": "Kuwait", "LA": "Laos", "LS": "Lesotho", "LV": "Lettland", "LB": "Libanon", "LR": "Liberia", "LY": "Libyen", "LI": "Liechtenstein", "LT": "Litauen", "LU": "Luxemburg", "MO": "Macao", "MG": "Madagaskar", "MW": "Malawi", "MY": "Malaysia", "MV": "Maldiverna", "ML": "Mali", "MT": "Malta", "MA": "Marocko", "MQ": "Martinique", "MR": "Mauretanien", "MU": "Mauritius", "YT": "Mayotte", "MX": "Mexiko", "MZ": "Mo\u00e7ambique", "MD": "Moldavien", "MC": "Monaco", "MN": "Mongoliet", "ME": "Montenegro", "MS": "Montserrat", "MM": "Myanmar (Burma)", "NA": "Namibia", "NR": "Nauru", "NL": "Nederl\u00e4nderna", "NP": "Nepal", "NI": "Nicaragua", "NE": "Niger", "NG": "Nigeria", "NU": "Niue", "KP": "Nordkorea", "MK": "Nordmakedonien", "NF": "Norfolk\u00f6n", "NO": "Norge", "NC": "Nya Kaledonien", "NZ": "Nya Zeeland", "OM": "Oman", "PK": "Pakistan", "PW": "Palau", "PA": "Panama", "PG": "Papua Nya Guinea", "PY": "Paraguay", "PE": "Peru", "PN": "Pitcairn\u00f6arna", "PL": "Polen", "PT": "Portugal", "PR": "Puerto Rico", "QA": "Qatar", "RE": "R\u00e9union", "RO": "Rum\u00e4nien", "RW": "Rwanda", "RU": "Ryssland", "BL": "S:t Barth\u00e9lemy", "SH": "S:t Helena", "KN": "S:t Kitts och Nevis", "LC": "S:t Lucia", "PM": "S:t Pierre och Miquelon", "VC": "S:t Vincent och Grenadinerna", "MF": "Saint-Martin", "SB": "Salomon\u00f6arna", "WS": "Samoa", "SM": "San Marino", "ST": "S\u00e3o Tom\u00e9 och Pr\u00edncipe", "SA": "Saudiarabien", "CH": "Schweiz", "SN": "Senegal", "RS": "Serbien", "SC": "Seychellerna", "SL": "Sierra Leone", "SG": "Singapore", "SX": "Sint Maarten", "SK": "Slovakien", "SI": "Slovenien", "SO": "Somalia", "ES": "Spanien", "LK": "Sri Lanka", "GB": "Storbritannien", "SD": "Sudan", "SR": "Surinam", "SJ": "Svalbard och Jan Mayen", "SE": "Sverige", "SZ": "Swaziland", "ZA": "Sydafrika", "GS": "Sydgeorgien och Sydsandwich\u00f6arna", "KR": "Sydkorea", "SS": "Sydsudan", "SY": "Syrien", "TJ": "Tadzjikistan", "TW": "Taiwan", "TZ": "Tanzania", "TD": "Tchad", "TH": "Thailand", "CZ": "Tjeckien", "TG": "Togo", "TK": "Tokelau", "TO": "Tonga", "TT": "Trinidad och Tobago", "TN": "Tunisien", "TR": "Turkiet", "TM": "Turkmenistan", "TC": "Turks- och Caicos\u00f6arna", "DE": "Tyskland", "UG": "Uganda", "UA": "Ukraina", "HU": "Ungern", "UY": "Uruguay", "US": "USA", "UZ": "Uzbekistan", "VU": "Vanuatu", "VA": "Vatikanstaten", "VE": "Venezuela", "VN": "Vietnam", "BY": "Vitryssland", "EH": "V\u00e4stsahara", "WF": "Wallis- och Futuna\u00f6arna", "ZM": "Zambia", "ZW": "Zimbabwe", "AX": "\u00c5land", "AT": "\u00d6sterrike", "TL": "\u00d6sttimor"} \ No newline at end of file diff --git a/desktop/src/onionshare/resources/countries/tr.json b/desktop/src/onionshare/resources/countries/tr.json index 246d6ab7..c6da9370 100644 --- a/desktop/src/onionshare/resources/countries/tr.json +++ b/desktop/src/onionshare/resources/countries/tr.json @@ -1 +1 @@ -{"UM": "ABD K\u00fc\u00e7\u00fck Harici Adalar\u0131", "VI": "ABD Virjin Adalar\u0131", "AF": "Afganistan", "AX": "\u00c5land Adalar\u0131", "DE": "Almanya", "US": "Amerika Birle\u015fik Devletleri", "AS": "Amerikan Samoas\u0131", "AD": "Andorra", "AO": "Angola", "AI": "Anguilla", "AQ": "Antarktika", "AG": "Antigua ve Barbuda", "AR": "Arjantin", "AL": "Arnavutluk", "AW": "Aruba", "AU": "Avustralya", "AT": "Avusturya", "AZ": "Azerbaycan", "BS": "Bahamalar", "BH": "Bahreyn", "BD": "Banglade\u015f", "BB": "Barbados", "EH": "Bat\u0131 Sahra", "BY": "Belarus", "BE": "Bel\u00e7ika", "BZ": "Belize", "BJ": "Benin", "BM": "Bermuda", "AE": "Birle\u015fik Arap Emirlikleri", "GB": "Birle\u015fik Krall\u0131k", "BO": "Bolivya", "BA": "Bosna-Hersek", "BW": "Botsvana", "BV": "Bouvet Adas\u0131", "BR": "Brezilya", "IO": "Britanya Hint Okyanusu Topraklar\u0131", "VG": "Britanya Virjin Adalar\u0131", "BN": "Brunei", "BG": "Bulgaristan", "BF": "Burkina Faso", "BI": "Burundi", "BT": "Butan", "CV": "Cape Verde", "KY": "Cayman Adalar\u0131", "GI": "Cebelitar\u0131k", "DZ": "Cezayir", "CX": "Christmas Adas\u0131", "DJ": "Cibuti", "CC": "Cocos (Keeling) Adalar\u0131", "CK": "Cook Adalar\u0131", "CI": "C\u00f4te d\u2019Ivoire", "CW": "Cura\u00e7ao", "TD": "\u00c7ad", "CZ": "\u00c7ekya", "CN": "\u00c7in", "HK": "\u00c7in Hong Kong \u00d6\u0130B", "MO": "\u00c7in Makao \u00d6\u0130B", "DK": "Danimarka", "DO": "Dominik Cumhuriyeti", "DM": "Dominika", "EC": "Ekvador", "GQ": "Ekvator Ginesi", "SV": "El Salvador", "ID": "Endonezya", "ER": "Eritre", "AM": "Ermenistan", "EE": "Estonya", "SZ": "Esvatini", "ET": "Etiyopya", "FK": "Falkland Adalar\u0131", "FO": "Faroe Adalar\u0131", "MA": "Fas", "FJ": "Fiji", "PH": "Filipinler", "PS": "Filistin B\u00f6lgeleri", "FI": "Finlandiya", "FR": "Fransa", "GF": "Frans\u0131z Guyanas\u0131", "TF": "Frans\u0131z G\u00fcney Topraklar\u0131", "PF": "Frans\u0131z Polinezyas\u0131", "GA": "Gabon", "GM": "Gambiya", "GH": "Gana", "GN": "Gine", "GW": "Gine-Bissau", "GD": "Grenada", "GL": "Gr\u00f6nland", "GP": "Guadeloupe", "GU": "Guam", "GT": "Guatemala", "GG": "Guernsey", "GY": "Guyana", "ZA": "G\u00fcney Afrika", "GS": "G\u00fcney Georgia ve G\u00fcney Sandwich Adalar\u0131", "KR": "G\u00fcney Kore", "SS": "G\u00fcney Sudan", "GE": "G\u00fcrcistan", "HT": "Haiti", "HM": "Heard Adas\u0131 ve McDonald Adalar\u0131", "HR": "H\u0131rvatistan", "IN": "Hindistan", "NL": "Hollanda", "HN": "Honduras", "IQ": "Irak", "IR": "\u0130ran", "IE": "\u0130rlanda", "ES": "\u0130spanya", "IL": "\u0130srail", "SE": "\u0130sve\u00e7", "CH": "\u0130svi\u00e7re", "IT": "\u0130talya", "IS": "\u0130zlanda", "JM": "Jamaika", "JP": "Japonya", "JE": "Jersey", "KH": "Kambo\u00e7ya", "CM": "Kamerun", "CA": "Kanada", "ME": "Karada\u011f", "BQ": "Karayip Hollandas\u0131", "QA": "Katar", "KZ": "Kazakistan", "KE": "Kenya", "CY": "K\u0131br\u0131s", "KG": "K\u0131rg\u0131zistan", "KI": "Kiribati", "CO": "Kolombiya", "KM": "Komorlar", "CG": "Kongo - Brazavil", "CD": "Kongo - Kin\u015fasa", "CR": "Kosta Rika", "KW": "Kuveyt", "KP": "Kuzey Kore", "MK": "Kuzey Makedonya", "MP": "Kuzey Mariana Adalar\u0131", "CU": "K\u00fcba", "LA": "Laos", "LS": "Lesotho", "LV": "Letonya", "LR": "Liberya", "LY": "Libya", "LI": "Liechtenstein", "LT": "Litvanya", "LB": "L\u00fcbnan", "LU": "L\u00fcksemburg", "HU": "Macaristan", "MG": "Madagaskar", "MW": "Malavi", "MV": "Maldivler", "MY": "Malezya", "ML": "Mali", "MT": "Malta", "IM": "Man Adas\u0131", "MH": "Marshall Adalar\u0131", "MQ": "Martinik", "MU": "Mauritius", "YT": "Mayotte", "MX": "Meksika", "EG": "M\u0131s\u0131r", "FM": "Mikronezya", "MN": "Mo\u011folistan", "MD": "Moldova", "MC": "Monako", "MS": "Montserrat", "MR": "Moritanya", "MZ": "Mozambik", "MM": "Myanmar (Burma)", "NA": "Namibya", "NR": "Nauru", "NP": "Nepal", "NE": "Nijer", "NG": "Nijerya", "NI": "Nikaragua", "NU": "Niue", "NF": "Norfolk Adas\u0131", "NO": "Norve\u00e7", "CF": "Orta Afrika Cumhuriyeti", "UZ": "\u00d6zbekistan", "PK": "Pakistan", "PW": "Palau", "PA": "Panama", "PG": "Papua Yeni Gine", "PY": "Paraguay", "PE": "Peru", "PN": "Pitcairn Adalar\u0131", "PL": "Polonya", "PT": "Portekiz", "PR": "Porto Riko", "RE": "Reunion", "RO": "Romanya", "RW": "Ruanda", "RU": "Rusya", "BL": "Saint Barthelemy", "SH": "Saint Helena", "KN": "Saint Kitts ve Nevis", "LC": "Saint Lucia", "MF": "Saint Martin", "PM": "Saint Pierre ve Miquelon", "VC": "Saint Vincent ve Grenadinler", "WS": "Samoa", "SM": "San Marino", "ST": "Sao Tome ve Principe", "SN": "Senegal", "SC": "Sey\u015feller", "RS": "S\u0131rbistan", "SL": "Sierra Leone", "SG": "Singapur", "SX": "Sint Maarten", "SK": "Slovakya", "SI": "Slovenya", "SB": "Solomon Adalar\u0131", "SO": "Somali", "LK": "Sri Lanka", "SD": "Sudan", "SR": "Surinam", "SY": "Suriye", "SA": "Suudi Arabistan", "SJ": "Svalbard ve Jan Mayen", "CL": "\u015eili", "TJ": "Tacikistan", "TZ": "Tanzanya", "TH": "Tayland", "TW": "Tayvan", "TL": "Timor-Leste", "TG": "Togo", "TK": "Tokelau", "TO": "Tonga", "TT": "Trinidad ve Tobago", "TN": "Tunus", "TC": "Turks ve Caicos Adalar\u0131", "TV": "Tuvalu", "TR": "T\u00fcrkiye", "TM": "T\u00fcrkmenistan", "UG": "Uganda", "UA": "Ukrayna", "OM": "Umman", "UY": "Uruguay", "JO": "\u00dcrd\u00fcn", "VU": "Vanuatu", "VA": "Vatikan", "VE": "Venezuela", "VN": "Vietnam", "WF": "Wallis ve Futuna", "YE": "Yemen", "NC": "Yeni Kaledonya", "NZ": "Yeni Zelanda", "GR": "Yunanistan", "ZM": "Zambiya", "ZW": "Zimbabve"} \ No newline at end of file +{"VI": "ABD Virjin Adalar\u0131", "AF": "Afganistan", "AX": "\u00c5land Adalar\u0131", "DE": "Almanya", "US": "Amerika Birle\u015fik Devletleri", "AS": "Amerikan Samoas\u0131", "AD": "Andorra", "AO": "Angola", "AI": "Anguilla", "AQ": "Antarktika", "AG": "Antigua ve Barbuda", "AR": "Arjantin", "AL": "Arnavutluk", "AW": "Aruba", "AU": "Avustralya", "AT": "Avusturya", "AZ": "Azerbaycan", "BS": "Bahamalar", "BH": "Bahreyn", "BD": "Banglade\u015f", "BB": "Barbados", "EH": "Bat\u0131 Sahra", "BY": "Belarus", "BE": "Bel\u00e7ika", "BZ": "Belize", "BJ": "Benin", "BM": "Bermuda", "AE": "Birle\u015fik Arap Emirlikleri", "GB": "Birle\u015fik Krall\u0131k", "BO": "Bolivya", "BA": "Bosna-Hersek", "BW": "Botsvana", "BV": "Bouvet Adas\u0131", "BR": "Brezilya", "IO": "Britanya Hint Okyanusu Topraklar\u0131", "VG": "Britanya Virjin Adalar\u0131", "BN": "Brunei", "BG": "Bulgaristan", "BF": "Burkina Faso", "BI": "Burundi", "BT": "Butan", "CV": "Cape Verde", "KY": "Cayman Adalar\u0131", "GI": "Cebelitar\u0131k", "DZ": "Cezayir", "CX": "Christmas Adas\u0131", "DJ": "Cibuti", "CC": "Cocos (Keeling) Adalar\u0131", "CK": "Cook Adalar\u0131", "CI": "C\u00f4te d\u2019Ivoire", "CW": "Cura\u00e7ao", "TD": "\u00c7ad", "CZ": "\u00c7ekya", "CN": "\u00c7in", "HK": "\u00c7in Hong Kong \u00d6\u0130B", "MO": "\u00c7in Makao \u00d6\u0130B", "DK": "Danimarka", "DO": "Dominik Cumhuriyeti", "DM": "Dominika", "EC": "Ekvador", "GQ": "Ekvator Ginesi", "SV": "El Salvador", "ID": "Endonezya", "ER": "Eritre", "AM": "Ermenistan", "EE": "Estonya", "SZ": "Esvatini", "ET": "Etiyopya", "FK": "Falkland Adalar\u0131", "FO": "Faroe Adalar\u0131", "MA": "Fas", "FJ": "Fiji", "PH": "Filipinler", "FI": "Finlandiya", "FR": "Fransa", "GF": "Frans\u0131z Guyanas\u0131", "TF": "Frans\u0131z G\u00fcney Topraklar\u0131", "PF": "Frans\u0131z Polinezyas\u0131", "GA": "Gabon", "GM": "Gambiya", "GH": "Gana", "GN": "Gine", "GW": "Gine-Bissau", "GD": "Grenada", "GL": "Gr\u00f6nland", "GP": "Guadeloupe", "GU": "Guam", "GT": "Guatemala", "GG": "Guernsey", "GY": "Guyana", "ZA": "G\u00fcney Afrika", "GS": "G\u00fcney Georgia ve G\u00fcney Sandwich Adalar\u0131", "KR": "G\u00fcney Kore", "SS": "G\u00fcney Sudan", "GE": "G\u00fcrcistan", "HT": "Haiti", "HM": "Heard Adas\u0131 ve McDonald Adalar\u0131", "HR": "H\u0131rvatistan", "IN": "Hindistan", "NL": "Hollanda", "HN": "Honduras", "IQ": "Irak", "IR": "\u0130ran", "IE": "\u0130rlanda", "ES": "\u0130spanya", "IL": "\u0130srail", "SE": "\u0130sve\u00e7", "CH": "\u0130svi\u00e7re", "IT": "\u0130talya", "IS": "\u0130zlanda", "JM": "Jamaika", "JP": "Japonya", "KH": "Kambo\u00e7ya", "CM": "Kamerun", "CA": "Kanada", "ME": "Karada\u011f", "BQ": "Karayip Hollandas\u0131", "QA": "Katar", "KZ": "Kazakistan", "KE": "Kenya", "CY": "K\u0131br\u0131s", "KG": "K\u0131rg\u0131zistan", "KI": "Kiribati", "CO": "Kolombiya", "KM": "Komorlar", "CG": "Kongo - Brazavil", "CD": "Kongo - Kin\u015fasa", "CR": "Kosta Rika", "KW": "Kuveyt", "KP": "Kuzey Kore", "MK": "Kuzey Makedonya", "CU": "K\u00fcba", "LA": "Laos", "LS": "Lesotho", "LV": "Letonya", "LR": "Liberya", "LY": "Libya", "LI": "Liechtenstein", "LT": "Litvanya", "LB": "L\u00fcbnan", "LU": "L\u00fcksemburg", "HU": "Macaristan", "MG": "Madagaskar", "MW": "Malavi", "MV": "Maldivler", "MY": "Malezya", "ML": "Mali", "MT": "Malta", "IM": "Man Adas\u0131", "MQ": "Martinik", "MU": "Mauritius", "YT": "Mayotte", "MX": "Meksika", "EG": "M\u0131s\u0131r", "MN": "Mo\u011folistan", "MD": "Moldova", "MC": "Monako", "MS": "Montserrat", "MR": "Moritanya", "MZ": "Mozambik", "MM": "Myanmar (Burma)", "NA": "Namibya", "NR": "Nauru", "NP": "Nepal", "NE": "Nijer", "NG": "Nijerya", "NI": "Nikaragua", "NU": "Niue", "NF": "Norfolk Adas\u0131", "NO": "Norve\u00e7", "CF": "Orta Afrika Cumhuriyeti", "UZ": "\u00d6zbekistan", "PK": "Pakistan", "PW": "Palau", "PA": "Panama", "PG": "Papua Yeni Gine", "PY": "Paraguay", "PE": "Peru", "PN": "Pitcairn Adalar\u0131", "PL": "Polonya", "PT": "Portekiz", "PR": "Porto Riko", "RE": "Reunion", "RO": "Romanya", "RW": "Ruanda", "RU": "Rusya", "BL": "Saint Barthelemy", "SH": "Saint Helena", "KN": "Saint Kitts ve Nevis", "LC": "Saint Lucia", "MF": "Saint Martin", "PM": "Saint Pierre ve Miquelon", "VC": "Saint Vincent ve Grenadinler", "WS": "Samoa", "SM": "San Marino", "ST": "Sao Tome ve Principe", "SN": "Senegal", "SC": "Sey\u015feller", "RS": "S\u0131rbistan", "SL": "Sierra Leone", "SG": "Singapur", "SX": "Sint Maarten", "SK": "Slovakya", "SI": "Slovenya", "SB": "Solomon Adalar\u0131", "SO": "Somali", "LK": "Sri Lanka", "SD": "Sudan", "SR": "Surinam", "SY": "Suriye", "SA": "Suudi Arabistan", "SJ": "Svalbard ve Jan Mayen", "CL": "\u015eili", "TJ": "Tacikistan", "TZ": "Tanzanya", "TH": "Tayland", "TW": "Tayvan", "TL": "Timor-Leste", "TG": "Togo", "TK": "Tokelau", "TO": "Tonga", "TT": "Trinidad ve Tobago", "TN": "Tunus", "TC": "Turks ve Caicos Adalar\u0131", "TR": "T\u00fcrkiye", "TM": "T\u00fcrkmenistan", "UG": "Uganda", "UA": "Ukrayna", "OM": "Umman", "UY": "Uruguay", "JO": "\u00dcrd\u00fcn", "VU": "Vanuatu", "VA": "Vatikan", "VE": "Venezuela", "VN": "Vietnam", "WF": "Wallis ve Futuna", "YE": "Yemen", "NC": "Yeni Kaledonya", "NZ": "Yeni Zelanda", "GR": "Yunanistan", "ZM": "Zambiya", "ZW": "Zimbabve"} \ No newline at end of file diff --git a/desktop/src/onionshare/resources/countries/uk.json b/desktop/src/onionshare/resources/countries/uk.json index 7875dac0..009893c4 100644 --- a/desktop/src/onionshare/resources/countries/uk.json +++ b/desktop/src/onionshare/resources/countries/uk.json @@ -1 +1 @@ -{"AU": "\u0410\u0432\u0441\u0442\u0440\u0430\u043b\u0456\u044f", "AT": "\u0410\u0432\u0441\u0442\u0440\u0456\u044f", "AZ": "\u0410\u0437\u0435\u0440\u0431\u0430\u0439\u0434\u0436\u0430\u043d", "AX": "\u0410\u043b\u0430\u043d\u0434\u0441\u044c\u043a\u0456 \u041e\u0441\u0442\u0440\u043e\u0432\u0438", "AL": "\u0410\u043b\u0431\u0430\u043d\u0456\u044f", "DZ": "\u0410\u043b\u0436\u0438\u0440", "AS": "\u0410\u043c\u0435\u0440\u0438\u043a\u0430\u043d\u0441\u044c\u043a\u0435 \u0421\u0430\u043c\u043e\u0430", "AO": "\u0410\u043d\u0433\u043e\u043b\u0430", "AI": "\u0410\u043d\u0491\u0456\u043b\u044c\u044f", "AD": "\u0410\u043d\u0434\u043e\u0440\u0440\u0430", "AQ": "\u0410\u043d\u0442\u0430\u0440\u043a\u0442\u0438\u043a\u0430", "AG": "\u0410\u043d\u0442\u0438\u0491\u0443\u0430 \u0456 \u0411\u0430\u0440\u0431\u0443\u0434\u0430", "AR": "\u0410\u0440\u0433\u0435\u043d\u0442\u0438\u043d\u0430", "AW": "\u0410\u0440\u0443\u0431\u0430", "AF": "\u0410\u0444\u0433\u0430\u043d\u0456\u0441\u0442\u0430\u043d", "BS": "\u0411\u0430\u0433\u0430\u043c\u0441\u044c\u043a\u0456 \u041e\u0441\u0442\u0440\u043e\u0432\u0438", "BD": "\u0411\u0430\u043d\u0433\u043b\u0430\u0434\u0435\u0448", "BB": "\u0411\u0430\u0440\u0431\u0430\u0434\u043e\u0441", "BH": "\u0411\u0430\u0445\u0440\u0435\u0439\u043d", "BZ": "\u0411\u0435\u043b\u0456\u0437", "BE": "\u0411\u0435\u043b\u044c\u0491\u0456\u044f", "BJ": "\u0411\u0435\u043d\u0456\u043d", "BM": "\u0411\u0435\u0440\u043c\u0443\u0434\u0441\u044c\u043a\u0456 \u041e\u0441\u0442\u0440\u043e\u0432\u0438", "BY": "\u0411\u0456\u043b\u043e\u0440\u0443\u0441\u044c", "BG": "\u0411\u043e\u043b\u0433\u0430\u0440\u0456\u044f", "BO": "\u0411\u043e\u043b\u0456\u0432\u0456\u044f", "BA": "\u0411\u043e\u0441\u043d\u0456\u044f \u0456 \u0413\u0435\u0440\u0446\u0435\u0491\u043e\u0432\u0438\u043d\u0430", "BW": "\u0411\u043e\u0442\u0441\u0432\u0430\u043d\u0430", "BR": "\u0411\u0440\u0430\u0437\u0456\u043b\u0456\u044f", "IO": "\u0411\u0440\u0438\u0442\u0430\u043d\u0441\u044c\u043a\u0430 \u0442\u0435\u0440\u0438\u0442\u043e\u0440\u0456\u044f \u0432 \u0406\u043d\u0434\u0456\u0439\u0441\u044c\u043a\u043e\u043c\u0443 \u041e\u043a\u0435\u0430\u043d\u0456", "VG": "\u0411\u0440\u0438\u0442\u0430\u043d\u0441\u044c\u043a\u0456 \u0412\u0456\u0440\u0433\u0456\u043d\u0441\u044c\u043a\u0456 \u043e\u0441\u0442\u0440\u043e\u0432\u0438", "BN": "\u0411\u0440\u0443\u043d\u0435\u0439", "BF": "\u0411\u0443\u0440\u043a\u0456\u043d\u0430-\u0424\u0430\u0441\u043e", "BI": "\u0411\u0443\u0440\u0443\u043d\u0434\u0456", "BT": "\u0411\u0443\u0442\u0430\u043d", "VU": "\u0412\u0430\u043d\u0443\u0430\u0442\u0443", "VA": "\u0412\u0430\u0442\u0438\u043a\u0430\u043d", "GB": "\u0412\u0435\u043b\u0438\u043a\u0430 \u0411\u0440\u0438\u0442\u0430\u043d\u0456\u044f", "VE": "\u0412\u0435\u043d\u0435\u0441\u0443\u0435\u043b\u0430", "UM": "\u0412\u0456\u0434\u0434\u0430\u043b\u0435\u043d\u0456 \u043e\u0441\u0442\u0440\u043e\u0432\u0438 \u0421\u0428\u0410", "VI": "\u0412\u0456\u0440\u0433\u0456\u043d\u0441\u044c\u043a\u0456 \u043e\u0441\u0442\u0440\u043e\u0432\u0438, \u0421\u0428\u0410", "AM": "\u0412\u0456\u0440\u043c\u0435\u043d\u0456\u044f", "VN": "\u0412\u02bc\u0454\u0442\u043d\u0430\u043c", "GA": "\u0413\u0430\u0431\u043e\u043d", "HT": "\u0413\u0430\u0457\u0442\u0456", "GM": "\u0413\u0430\u043c\u0431\u0456\u044f", "GH": "\u0413\u0430\u043d\u0430", "GN": "\u0413\u0432\u0456\u043d\u0435\u044f", "GW": "\u0413\u0432\u0456\u043d\u0435\u044f-\u0411\u0456\u0441\u0430\u0443", "HN": "\u0413\u043e\u043d\u0434\u0443\u0440\u0430\u0441", "HK": "\u0413\u043e\u043d\u043a\u043e\u043d\u0433, \u041e.\u0410.\u0420. \u041a\u0438\u0442\u0430\u044e", "GR": "\u0413\u0440\u0435\u0446\u0456\u044f", "GE": "\u0413\u0440\u0443\u0437\u0456\u044f", "GY": "\u0490\u0430\u0439\u0430\u043d\u0430", "GP": "\u0490\u0432\u0430\u0434\u0435\u043b\u0443\u043f\u0430", "GT": "\u0490\u0432\u0430\u0442\u0435\u043c\u0430\u043b\u0430", "GG": "\u0490\u0435\u0440\u043d\u0441\u0456", "GI": "\u0490\u0456\u0431\u0440\u0430\u043b\u0442\u0430\u0440", "GD": "\u0490\u0440\u0435\u043d\u0430\u0434\u0430", "GL": "\u0490\u0440\u0435\u043d\u043b\u0430\u043d\u0434\u0456\u044f", "GU": "\u0490\u0443\u0430\u043c", "DK": "\u0414\u0430\u043d\u0456\u044f", "JE": "\u0414\u0436\u0435\u0440\u0441\u0456", "DJ": "\u0414\u0436\u0438\u0431\u0443\u0442\u0456", "DM": "\u0414\u043e\u043c\u0456\u043d\u0456\u043a\u0430", "DO": "\u0414\u043e\u043c\u0456\u043d\u0456\u043a\u0430\u043d\u0441\u044c\u043a\u0430 \u0420\u0435\u0441\u043f\u0443\u0431\u043b\u0456\u043a\u0430", "EC": "\u0415\u043a\u0432\u0430\u0434\u043e\u0440", "GQ": "\u0415\u043a\u0432\u0430\u0442\u043e\u0440\u0456\u0430\u043b\u044c\u043d\u0430 \u0413\u0432\u0456\u043d\u0435\u044f", "ER": "\u0415\u0440\u0438\u0442\u0440\u0435\u044f", "SZ": "\u0415\u0441\u0432\u0430\u0442\u0456\u043d\u0456", "EE": "\u0415\u0441\u0442\u043e\u043d\u0456\u044f", "ET": "\u0415\u0444\u0456\u043e\u043f\u0456\u044f", "EG": "\u0404\u0433\u0438\u043f\u0435\u0442", "YE": "\u0404\u043c\u0435\u043d", "ZM": "\u0417\u0430\u043c\u0431\u0456\u044f", "EH": "\u0417\u0430\u0445\u0456\u0434\u043d\u0430 \u0421\u0430\u0445\u0430\u0440\u0430", "ZW": "\u0417\u0456\u043c\u0431\u0430\u0431\u0432\u0435", "IL": "\u0406\u0437\u0440\u0430\u0457\u043b\u044c", "IN": "\u0406\u043d\u0434\u0456\u044f", "ID": "\u0406\u043d\u0434\u043e\u043d\u0435\u0437\u0456\u044f", "IQ": "\u0406\u0440\u0430\u043a", "IR": "\u0406\u0440\u0430\u043d", "IE": "\u0406\u0440\u043b\u0430\u043d\u0434\u0456\u044f", "IS": "\u0406\u0441\u043b\u0430\u043d\u0434\u0456\u044f", "ES": "\u0406\u0441\u043f\u0430\u043d\u0456\u044f", "IT": "\u0406\u0442\u0430\u043b\u0456\u044f", "JO": "\u0419\u043e\u0440\u0434\u0430\u043d\u0456\u044f", "CV": "\u041a\u0430\u0431\u043e-\u0412\u0435\u0440\u0434\u0435", "KZ": "\u041a\u0430\u0437\u0430\u0445\u0441\u0442\u0430\u043d", "KY": "\u041a\u0430\u0439\u043c\u0430\u043d\u043e\u0432\u0456 \u041e\u0441\u0442\u0440\u043e\u0432\u0438", "KH": "\u041a\u0430\u043c\u0431\u043e\u0434\u0436\u0430", "CM": "\u041a\u0430\u043c\u0435\u0440\u0443\u043d", "CA": "\u041a\u0430\u043d\u0430\u0434\u0430", "QA": "\u041a\u0430\u0442\u0430\u0440", "KE": "\u041a\u0435\u043d\u0456\u044f", "KG": "\u041a\u0438\u0440\u0433\u0438\u0437\u0441\u0442\u0430\u043d", "CN": "\u041a\u0438\u0442\u0430\u0439", "CY": "\u041a\u0456\u043f\u0440", "KI": "\u041a\u0456\u0440\u0456\u0431\u0430\u0442\u0456", "CC": "\u041a\u043e\u043a\u043e\u0441\u043e\u0432\u0456 (\u041a\u0456\u043b\u0456\u043d\u0491) \u041e\u0441\u0442\u0440\u043e\u0432\u0438", "CO": "\u041a\u043e\u043b\u0443\u043c\u0431\u0456\u044f", "KM": "\u041a\u043e\u043c\u043e\u0440\u0438", "CG": "\u041a\u043e\u043d\u0433\u043e \u2013 \u0411\u0440\u0430\u0437\u0437\u0430\u0432\u0456\u043b\u044c", "CD": "\u041a\u043e\u043d\u0433\u043e \u2013 \u041a\u0456\u043d\u0448\u0430\u0441\u0430", "CR": "\u041a\u043e\u0441\u0442\u0430-\u0420\u0456\u043a\u0430", "CI": "\u041a\u043e\u0442-\u0434\u02bc\u0406\u0432\u0443\u0430\u0440", "CU": "\u041a\u0443\u0431\u0430", "KW": "\u041a\u0443\u0432\u0435\u0439\u0442", "CW": "\u041a\u044e\u0440\u0430\u0441\u0430\u043e", "LA": "\u041b\u0430\u043e\u0441", "LV": "\u041b\u0430\u0442\u0432\u0456\u044f", "LS": "\u041b\u0435\u0441\u043e\u0442\u043e", "LT": "\u041b\u0438\u0442\u0432\u0430", "LR": "\u041b\u0456\u0431\u0435\u0440\u0456\u044f", "LB": "\u041b\u0456\u0432\u0430\u043d", "LY": "\u041b\u0456\u0432\u0456\u044f", "LI": "\u041b\u0456\u0445\u0442\u0435\u043d\u0448\u0442\u0435\u0439\u043d", "LU": "\u041b\u044e\u043a\u0441\u0435\u043c\u0431\u0443\u0440\u0491", "MR": "\u041c\u0430\u0432\u0440\u0438\u0442\u0430\u043d\u0456\u044f", "MU": "\u041c\u0430\u0432\u0440\u0456\u043a\u0456\u0439", "MG": "\u041c\u0430\u0434\u0430\u0433\u0430\u0441\u043a\u0430\u0440", "YT": "\u041c\u0430\u0439\u043e\u0442\u0442\u0430", "MO": "\u041c\u0430\u043a\u0430\u043e, \u041e.\u0410.\u0420 \u041a\u0438\u0442\u0430\u044e", "MW": "\u041c\u0430\u043b\u0430\u0432\u0456", "MY": "\u041c\u0430\u043b\u0430\u0439\u0437\u0456\u044f", "ML": "\u041c\u0430\u043b\u0456", "MV": "\u041c\u0430\u043b\u044c\u0434\u0456\u0432\u0438", "MT": "\u041c\u0430\u043b\u044c\u0442\u0430", "MA": "\u041c\u0430\u0440\u043e\u043a\u043a\u043e", "MQ": "\u041c\u0430\u0440\u0442\u0456\u043d\u0456\u043a\u0430", "MH": "\u041c\u0430\u0440\u0448\u0430\u043b\u043b\u043e\u0432\u0456 \u041e\u0441\u0442\u0440\u043e\u0432\u0438", "MX": "\u041c\u0435\u043a\u0441\u0438\u043a\u0430", "FM": "\u041c\u0456\u043a\u0440\u043e\u043d\u0435\u0437\u0456\u044f", "MZ": "\u041c\u043e\u0437\u0430\u043c\u0431\u0456\u043a", "MD": "\u041c\u043e\u043b\u0434\u043e\u0432\u0430", "MC": "\u041c\u043e\u043d\u0430\u043a\u043e", "MN": "\u041c\u043e\u043d\u0433\u043e\u043b\u0456\u044f", "MS": "\u041c\u043e\u043d\u0442\u0441\u0435\u0440\u0440\u0430\u0442", "MM": "\u041c\u02bc\u044f\u043d\u043c\u0430 (\u0411\u0456\u0440\u043c\u0430)", "NA": "\u041d\u0430\u043c\u0456\u0431\u0456\u044f", "NR": "\u041d\u0430\u0443\u0440\u0443", "NP": "\u041d\u0435\u043f\u0430\u043b", "NE": "\u041d\u0456\u0433\u0435\u0440", "NG": "\u041d\u0456\u0433\u0435\u0440\u0456\u044f", "NL": "\u041d\u0456\u0434\u0435\u0440\u043b\u0430\u043d\u0434\u0438", "BQ": "\u041d\u0456\u0434\u0435\u0440\u043b\u0430\u043d\u0434\u0441\u044c\u043a\u0456 \u041a\u0430\u0440\u0438\u0431\u0441\u044c\u043a\u0456 \u043e\u0441\u0442\u0440\u043e\u0432\u0438", "NI": "\u041d\u0456\u043a\u0430\u0440\u0430\u0491\u0443\u0430", "DE": "\u041d\u0456\u043c\u0435\u0447\u0447\u0438\u043d\u0430", "NU": "\u041d\u0456\u0443\u0435", "NZ": "\u041d\u043e\u0432\u0430 \u0417\u0435\u043b\u0430\u043d\u0434\u0456\u044f", "NC": "\u041d\u043e\u0432\u0430 \u041a\u0430\u043b\u0435\u0434\u043e\u043d\u0456\u044f", "NO": "\u041d\u043e\u0440\u0432\u0435\u0491\u0456\u044f", "AE": "\u041e\u0431\u02bc\u0454\u0434\u043d\u0430\u043d\u0456 \u0410\u0440\u0430\u0431\u0441\u044c\u043a\u0456 \u0415\u043c\u0456\u0440\u0430\u0442\u0438", "OM": "\u041e\u043c\u0430\u043d", "BV": "\u041e\u0441\u0442\u0440\u0456\u0432 \u0411\u0443\u0432\u0435", "IM": "\u041e\u0441\u0442\u0440\u0456\u0432 \u041c\u0435\u043d", "NF": "\u041e\u0441\u0442\u0440\u0456\u0432 \u041d\u043e\u0440\u0444\u043e\u043b\u043a", "CX": "\u041e\u0441\u0442\u0440\u0456\u0432 \u0420\u0456\u0437\u0434\u0432\u0430", "SH": "\u041e\u0441\u0442\u0440\u0456\u0432 \u0421\u0432\u044f\u0442\u043e\u0457 \u0404\u043b\u0435\u043d\u0438", "HM": "\u041e\u0441\u0442\u0440\u043e\u0432\u0438 \u0413\u0435\u0440\u0434 \u0456 \u041c\u0430\u043a\u0434\u043e\u043d\u0430\u043b\u0434", "CK": "\u041e\u0441\u0442\u0440\u043e\u0432\u0438 \u041a\u0443\u043a\u0430", "PN": "\u041e\u0441\u0442\u0440\u043e\u0432\u0438 \u041f\u0456\u0442\u043a\u0435\u0440\u043d", "TC": "\u041e\u0441\u0442\u0440\u043e\u0432\u0438 \u0422\u0435\u0440\u043a\u0441 \u0456 \u041a\u0430\u0439\u043a\u043e\u0441", "PK": "\u041f\u0430\u043a\u0438\u0441\u0442\u0430\u043d", "PW": "\u041f\u0430\u043b\u0430\u0443", "PS": "\u041f\u0430\u043b\u0435\u0441\u0442\u0438\u043d\u0441\u044c\u043a\u0456 \u0442\u0435\u0440\u0438\u0442\u043e\u0440\u0456\u0457", "PA": "\u041f\u0430\u043d\u0430\u043c\u0430", "PG": "\u041f\u0430\u043f\u0443\u0430-\u041d\u043e\u0432\u0430 \u0490\u0432\u0456\u043d\u0435\u044f", "PY": "\u041f\u0430\u0440\u0430\u0491\u0432\u0430\u0439", "PE": "\u041f\u0435\u0440\u0443", "GS": "\u041f\u0456\u0432\u0434\u0435\u043d\u043d\u0430 \u0414\u0436\u043e\u0440\u0434\u0436\u0456\u044f \u0442\u0430 \u041f\u0456\u0432\u0434\u0435\u043d\u043d\u0456 \u0421\u0430\u043d\u0434\u0432\u0456\u0447\u0435\u0432\u0456 \u041e\u0441\u0442\u0440\u043e\u0432\u0438", "KR": "\u041f\u0456\u0432\u0434\u0435\u043d\u043d\u0430 \u041a\u043e\u0440\u0435\u044f", "SS": "\u041f\u0456\u0432\u0434\u0435\u043d\u043d\u0438\u0439 \u0421\u0443\u0434\u0430\u043d", "ZA": "\u041f\u0456\u0432\u0434\u0435\u043d\u043d\u043e-\u0410\u0444\u0440\u0438\u043a\u0430\u043d\u0441\u044c\u043a\u0430 \u0420\u0435\u0441\u043f\u0443\u0431\u043b\u0456\u043a\u0430", "KP": "\u041f\u0456\u0432\u043d\u0456\u0447\u043d\u0430 \u041a\u043e\u0440\u0435\u044f", "MK": "\u041f\u0456\u0432\u043d\u0456\u0447\u043d\u0430 \u041c\u0430\u043a\u0435\u0434\u043e\u043d\u0456\u044f", "MP": "\u041f\u0456\u0432\u043d\u0456\u0447\u043d\u0456 \u041c\u0430\u0440\u0456\u0430\u043d\u0441\u044c\u043a\u0456 \u041e\u0441\u0442\u0440\u043e\u0432\u0438", "PL": "\u041f\u043e\u043b\u044c\u0449\u0430", "PT": "\u041f\u043e\u0440\u0442\u0443\u0491\u0430\u043b\u0456\u044f", "PR": "\u041f\u0443\u0435\u0440\u0442\u043e-\u0420\u0456\u043a\u043e", "RE": "\u0420\u0435\u044e\u043d\u044c\u0439\u043e\u043d", "RU": "\u0420\u043e\u0441\u0456\u044f", "RW": "\u0420\u0443\u0430\u043d\u0434\u0430", "RO": "\u0420\u0443\u043c\u0443\u043d\u0456\u044f", "SV": "\u0421\u0430\u043b\u044c\u0432\u0430\u0434\u043e\u0440", "WS": "\u0421\u0430\u043c\u043e\u0430", "SM": "\u0421\u0430\u043d-\u041c\u0430\u0440\u0456\u043d\u043e", "ST": "\u0421\u0430\u043d-\u0422\u043e\u043c\u0435 \u0456 \u041f\u0440\u0456\u043d\u0441\u0456\u043f\u0456", "SA": "\u0421\u0430\u0443\u0434\u0456\u0432\u0441\u044c\u043a\u0430 \u0410\u0440\u0430\u0432\u0456\u044f", "SC": "\u0421\u0435\u0439\u0448\u0435\u043b\u044c\u0441\u044c\u043a\u0456 \u041e\u0441\u0442\u0440\u043e\u0432\u0438", "BL": "\u0421\u0435\u043d-\u0411\u0430\u0440\u0442\u0435\u043b\u044c\u043c\u0456", "MF": "\u0421\u0435\u043d-\u041c\u0430\u0440\u0442\u0435\u043d", "PM": "\u0421\u0435\u043d-\u041f\u02bc\u0454\u0440 \u0456 \u041c\u0456\u043a\u0435\u043b\u043e\u043d", "SN": "\u0421\u0435\u043d\u0435\u0433\u0430\u043b", "VC": "\u0421\u0435\u043d\u0442-\u0412\u0456\u043d\u0441\u0435\u043d\u0442 \u0456 \u0490\u0440\u0435\u043d\u0430\u0434\u0456\u043d\u0438", "KN": "\u0421\u0435\u043d\u0442-\u041a\u0456\u0442\u0441 \u0456 \u041d\u0435\u0432\u0456\u0441", "LC": "\u0421\u0435\u043d\u0442-\u041b\u044e\u0441\u0456\u044f", "RS": "\u0421\u0435\u0440\u0431\u0456\u044f", "SY": "\u0421\u0438\u0440\u0456\u044f", "SG": "\u0421\u0456\u043d\u0433\u0430\u043f\u0443\u0440", "SX": "\u0421\u0456\u043d\u0442-\u041c\u0430\u0440\u0442\u0435\u043d", "SK": "\u0421\u043b\u043e\u0432\u0430\u0447\u0447\u0438\u043d\u0430", "SI": "\u0421\u043b\u043e\u0432\u0435\u043d\u0456\u044f", "SB": "\u0421\u043e\u043b\u043e\u043c\u043e\u043d\u043e\u0432\u0456 \u041e\u0441\u0442\u0440\u043e\u0432\u0438", "SO": "\u0421\u043e\u043c\u0430\u043b\u0456", "US": "\u0421\u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0456 \u0428\u0442\u0430\u0442\u0438", "SD": "\u0421\u0443\u0434\u0430\u043d", "SR": "\u0421\u0443\u0440\u0456\u043d\u0430\u043c", "SL": "\u0421\u044c\u0454\u0440\u0440\u0430-\u041b\u0435\u043e\u043d\u0435", "TJ": "\u0422\u0430\u0434\u0436\u0438\u043a\u0438\u0441\u0442\u0430\u043d", "TH": "\u0422\u0430\u0457\u043b\u0430\u043d\u0434", "TW": "\u0422\u0430\u0439\u0432\u0430\u043d\u044c", "TZ": "\u0422\u0430\u043d\u0437\u0430\u043d\u0456\u044f", "TL": "\u0422\u0456\u043c\u043e\u0440-\u041b\u0435\u0448\u0442\u0456", "TG": "\u0422\u043e\u0433\u043e", "TK": "\u0422\u043e\u043a\u0435\u043b\u0430\u0443", "TO": "\u0422\u043e\u043d\u0491\u0430", "TT": "\u0422\u0440\u0456\u043d\u0456\u0434\u0430\u0434 \u0456 \u0422\u043e\u0431\u0430\u0491\u043e", "TV": "\u0422\u0443\u0432\u0430\u043b\u0443", "TN": "\u0422\u0443\u043d\u0456\u0441", "TR": "\u0422\u0443\u0440\u0435\u0447\u0447\u0438\u043d\u0430", "TM": "\u0422\u0443\u0440\u043a\u043c\u0435\u043d\u0456\u0441\u0442\u0430\u043d", "UG": "\u0423\u0433\u0430\u043d\u0434\u0430", "HU": "\u0423\u0433\u043e\u0440\u0449\u0438\u043d\u0430", "UZ": "\u0423\u0437\u0431\u0435\u043a\u0438\u0441\u0442\u0430\u043d", "UA": "\u0423\u043a\u0440\u0430\u0457\u043d\u0430", "WF": "\u0423\u043e\u043b\u043b\u0456\u0441 \u0456 \u0424\u0443\u0442\u0443\u043d\u0430", "UY": "\u0423\u0440\u0443\u0491\u0432\u0430\u0439", "FO": "\u0424\u0430\u0440\u0435\u0440\u0441\u044c\u043a\u0456 \u041e\u0441\u0442\u0440\u043e\u0432\u0438", "FJ": "\u0424\u0456\u0434\u0436\u0456", "PH": "\u0424\u0456\u043b\u0456\u043f\u043f\u0456\u043d\u0438", "FI": "\u0424\u0456\u043d\u043b\u044f\u043d\u0434\u0456\u044f", "FK": "\u0424\u043e\u043b\u043a\u043b\u0435\u043d\u0434\u0441\u044c\u043a\u0456 \u041e\u0441\u0442\u0440\u043e\u0432\u0438", "FR": "\u0424\u0440\u0430\u043d\u0446\u0456\u044f", "GF": "\u0424\u0440\u0430\u043d\u0446\u0443\u0437\u044c\u043a\u0430 \u0490\u0432\u0456\u0430\u043d\u0430", "PF": "\u0424\u0440\u0430\u043d\u0446\u0443\u0437\u044c\u043a\u0430 \u041f\u043e\u043b\u0456\u043d\u0435\u0437\u0456\u044f", "TF": "\u0424\u0440\u0430\u043d\u0446\u0443\u0437\u044c\u043a\u0456 \u041f\u0456\u0432\u0434\u0435\u043d\u043d\u0456 \u0422\u0435\u0440\u0438\u0442\u043e\u0440\u0456\u0457", "HR": "\u0425\u043e\u0440\u0432\u0430\u0442\u0456\u044f", "CF": "\u0426\u0435\u043d\u0442\u0440\u0430\u043b\u044c\u043d\u043e\u0430\u0444\u0440\u0438\u043a\u0430\u043d\u0441\u044c\u043a\u0430 \u0420\u0435\u0441\u043f\u0443\u0431\u043b\u0456\u043a\u0430", "TD": "\u0427\u0430\u0434", "CZ": "\u0427\u0435\u0445\u0456\u044f", "CL": "\u0427\u0456\u043b\u0456", "ME": "\u0427\u043e\u0440\u043d\u043e\u0433\u043e\u0440\u0456\u044f", "CH": "\u0428\u0432\u0435\u0439\u0446\u0430\u0440\u0456\u044f", "SE": "\u0428\u0432\u0435\u0446\u0456\u044f", "SJ": "\u0428\u043f\u0456\u0446\u0431\u0435\u0440\u0433\u0435\u043d \u0442\u0430 \u042f\u043d-\u041c\u0430\u0454\u043d", "LK": "\u0428\u0440\u0456-\u041b\u0430\u043d\u043a\u0430", "JM": "\u042f\u043c\u0430\u0439\u043a\u0430", "JP": "\u042f\u043f\u043e\u043d\u0456\u044f"} \ No newline at end of file +{"AU": "\u0410\u0432\u0441\u0442\u0440\u0430\u043b\u0456\u044f", "AT": "\u0410\u0432\u0441\u0442\u0440\u0456\u044f", "AZ": "\u0410\u0437\u0435\u0440\u0431\u0430\u0439\u0434\u0436\u0430\u043d", "AX": "\u0410\u043b\u0430\u043d\u0434\u0441\u044c\u043a\u0456 \u041e\u0441\u0442\u0440\u043e\u0432\u0438", "AL": "\u0410\u043b\u0431\u0430\u043d\u0456\u044f", "DZ": "\u0410\u043b\u0436\u0438\u0440", "AS": "\u0410\u043c\u0435\u0440\u0438\u043a\u0430\u043d\u0441\u044c\u043a\u0435 \u0421\u0430\u043c\u043e\u0430", "AO": "\u0410\u043d\u0433\u043e\u043b\u0430", "AI": "\u0410\u043d\u0491\u0456\u043b\u044c\u044f", "AD": "\u0410\u043d\u0434\u043e\u0440\u0440\u0430", "AQ": "\u0410\u043d\u0442\u0430\u0440\u043a\u0442\u0438\u043a\u0430", "AG": "\u0410\u043d\u0442\u0438\u0491\u0443\u0430 \u0456 \u0411\u0430\u0440\u0431\u0443\u0434\u0430", "AR": "\u0410\u0440\u0433\u0435\u043d\u0442\u0438\u043d\u0430", "AW": "\u0410\u0440\u0443\u0431\u0430", "AF": "\u0410\u0444\u0433\u0430\u043d\u0456\u0441\u0442\u0430\u043d", "BS": "\u0411\u0430\u0433\u0430\u043c\u0441\u044c\u043a\u0456 \u041e\u0441\u0442\u0440\u043e\u0432\u0438", "BD": "\u0411\u0430\u043d\u0433\u043b\u0430\u0434\u0435\u0448", "BB": "\u0411\u0430\u0440\u0431\u0430\u0434\u043e\u0441", "BH": "\u0411\u0430\u0445\u0440\u0435\u0439\u043d", "BZ": "\u0411\u0435\u043b\u0456\u0437", "BE": "\u0411\u0435\u043b\u044c\u0491\u0456\u044f", "BJ": "\u0411\u0435\u043d\u0456\u043d", "BM": "\u0411\u0435\u0440\u043c\u0443\u0434\u0441\u044c\u043a\u0456 \u041e\u0441\u0442\u0440\u043e\u0432\u0438", "BY": "\u0411\u0456\u043b\u043e\u0440\u0443\u0441\u044c", "BG": "\u0411\u043e\u043b\u0433\u0430\u0440\u0456\u044f", "BO": "\u0411\u043e\u043b\u0456\u0432\u0456\u044f", "BA": "\u0411\u043e\u0441\u043d\u0456\u044f \u0456 \u0413\u0435\u0440\u0446\u0435\u0491\u043e\u0432\u0438\u043d\u0430", "BW": "\u0411\u043e\u0442\u0441\u0432\u0430\u043d\u0430", "BR": "\u0411\u0440\u0430\u0437\u0456\u043b\u0456\u044f", "IO": "\u0411\u0440\u0438\u0442\u0430\u043d\u0441\u044c\u043a\u0430 \u0442\u0435\u0440\u0438\u0442\u043e\u0440\u0456\u044f \u0432 \u0406\u043d\u0434\u0456\u0439\u0441\u044c\u043a\u043e\u043c\u0443 \u041e\u043a\u0435\u0430\u043d\u0456", "VG": "\u0411\u0440\u0438\u0442\u0430\u043d\u0441\u044c\u043a\u0456 \u0412\u0456\u0440\u0433\u0456\u043d\u0441\u044c\u043a\u0456 \u043e\u0441\u0442\u0440\u043e\u0432\u0438", "BN": "\u0411\u0440\u0443\u043d\u0435\u0439", "BF": "\u0411\u0443\u0440\u043a\u0456\u043d\u0430-\u0424\u0430\u0441\u043e", "BI": "\u0411\u0443\u0440\u0443\u043d\u0434\u0456", "BT": "\u0411\u0443\u0442\u0430\u043d", "VU": "\u0412\u0430\u043d\u0443\u0430\u0442\u0443", "VA": "\u0412\u0430\u0442\u0438\u043a\u0430\u043d", "GB": "\u0412\u0435\u043b\u0438\u043a\u0430 \u0411\u0440\u0438\u0442\u0430\u043d\u0456\u044f", "VE": "\u0412\u0435\u043d\u0435\u0441\u0443\u0435\u043b\u0430", "VI": "\u0412\u0456\u0440\u0433\u0456\u043d\u0441\u044c\u043a\u0456 \u043e\u0441\u0442\u0440\u043e\u0432\u0438, \u0421\u0428\u0410", "AM": "\u0412\u0456\u0440\u043c\u0435\u043d\u0456\u044f", "VN": "\u0412\u02bc\u0454\u0442\u043d\u0430\u043c", "GA": "\u0413\u0430\u0431\u043e\u043d", "HT": "\u0413\u0430\u0457\u0442\u0456", "GM": "\u0413\u0430\u043c\u0431\u0456\u044f", "GH": "\u0413\u0430\u043d\u0430", "GN": "\u0413\u0432\u0456\u043d\u0435\u044f", "GW": "\u0413\u0432\u0456\u043d\u0435\u044f-\u0411\u0456\u0441\u0430\u0443", "HN": "\u0413\u043e\u043d\u0434\u0443\u0440\u0430\u0441", "HK": "\u0413\u043e\u043d\u043a\u043e\u043d\u0433, \u041e.\u0410.\u0420. \u041a\u0438\u0442\u0430\u044e", "GR": "\u0413\u0440\u0435\u0446\u0456\u044f", "GE": "\u0413\u0440\u0443\u0437\u0456\u044f", "GY": "\u0490\u0430\u0439\u0430\u043d\u0430", "GP": "\u0490\u0432\u0430\u0434\u0435\u043b\u0443\u043f\u0430", "GT": "\u0490\u0432\u0430\u0442\u0435\u043c\u0430\u043b\u0430", "GG": "\u0490\u0435\u0440\u043d\u0441\u0456", "GI": "\u0490\u0456\u0431\u0440\u0430\u043b\u0442\u0430\u0440", "GD": "\u0490\u0440\u0435\u043d\u0430\u0434\u0430", "GL": "\u0490\u0440\u0435\u043d\u043b\u0430\u043d\u0434\u0456\u044f", "GU": "\u0490\u0443\u0430\u043c", "DK": "\u0414\u0430\u043d\u0456\u044f", "DJ": "\u0414\u0436\u0438\u0431\u0443\u0442\u0456", "DM": "\u0414\u043e\u043c\u0456\u043d\u0456\u043a\u0430", "DO": "\u0414\u043e\u043c\u0456\u043d\u0456\u043a\u0430\u043d\u0441\u044c\u043a\u0430 \u0420\u0435\u0441\u043f\u0443\u0431\u043b\u0456\u043a\u0430", "EC": "\u0415\u043a\u0432\u0430\u0434\u043e\u0440", "GQ": "\u0415\u043a\u0432\u0430\u0442\u043e\u0440\u0456\u0430\u043b\u044c\u043d\u0430 \u0413\u0432\u0456\u043d\u0435\u044f", "ER": "\u0415\u0440\u0438\u0442\u0440\u0435\u044f", "SZ": "\u0415\u0441\u0432\u0430\u0442\u0456\u043d\u0456", "EE": "\u0415\u0441\u0442\u043e\u043d\u0456\u044f", "ET": "\u0415\u0444\u0456\u043e\u043f\u0456\u044f", "EG": "\u0404\u0433\u0438\u043f\u0435\u0442", "YE": "\u0404\u043c\u0435\u043d", "ZM": "\u0417\u0430\u043c\u0431\u0456\u044f", "EH": "\u0417\u0430\u0445\u0456\u0434\u043d\u0430 \u0421\u0430\u0445\u0430\u0440\u0430", "ZW": "\u0417\u0456\u043c\u0431\u0430\u0431\u0432\u0435", "IL": "\u0406\u0437\u0440\u0430\u0457\u043b\u044c", "IN": "\u0406\u043d\u0434\u0456\u044f", "ID": "\u0406\u043d\u0434\u043e\u043d\u0435\u0437\u0456\u044f", "IQ": "\u0406\u0440\u0430\u043a", "IR": "\u0406\u0440\u0430\u043d", "IE": "\u0406\u0440\u043b\u0430\u043d\u0434\u0456\u044f", "IS": "\u0406\u0441\u043b\u0430\u043d\u0434\u0456\u044f", "ES": "\u0406\u0441\u043f\u0430\u043d\u0456\u044f", "IT": "\u0406\u0442\u0430\u043b\u0456\u044f", "JO": "\u0419\u043e\u0440\u0434\u0430\u043d\u0456\u044f", "CV": "\u041a\u0430\u0431\u043e-\u0412\u0435\u0440\u0434\u0435", "KZ": "\u041a\u0430\u0437\u0430\u0445\u0441\u0442\u0430\u043d", "KY": "\u041a\u0430\u0439\u043c\u0430\u043d\u043e\u0432\u0456 \u041e\u0441\u0442\u0440\u043e\u0432\u0438", "KH": "\u041a\u0430\u043c\u0431\u043e\u0434\u0436\u0430", "CM": "\u041a\u0430\u043c\u0435\u0440\u0443\u043d", "CA": "\u041a\u0430\u043d\u0430\u0434\u0430", "QA": "\u041a\u0430\u0442\u0430\u0440", "KE": "\u041a\u0435\u043d\u0456\u044f", "KG": "\u041a\u0438\u0440\u0433\u0438\u0437\u0441\u0442\u0430\u043d", "CN": "\u041a\u0438\u0442\u0430\u0439", "CY": "\u041a\u0456\u043f\u0440", "KI": "\u041a\u0456\u0440\u0456\u0431\u0430\u0442\u0456", "CC": "\u041a\u043e\u043a\u043e\u0441\u043e\u0432\u0456 (\u041a\u0456\u043b\u0456\u043d\u0491) \u041e\u0441\u0442\u0440\u043e\u0432\u0438", "CO": "\u041a\u043e\u043b\u0443\u043c\u0431\u0456\u044f", "KM": "\u041a\u043e\u043c\u043e\u0440\u0438", "CG": "\u041a\u043e\u043d\u0433\u043e \u2013 \u0411\u0440\u0430\u0437\u0437\u0430\u0432\u0456\u043b\u044c", "CD": "\u041a\u043e\u043d\u0433\u043e \u2013 \u041a\u0456\u043d\u0448\u0430\u0441\u0430", "CR": "\u041a\u043e\u0441\u0442\u0430-\u0420\u0456\u043a\u0430", "CI": "\u041a\u043e\u0442-\u0434\u02bc\u0406\u0432\u0443\u0430\u0440", "CU": "\u041a\u0443\u0431\u0430", "KW": "\u041a\u0443\u0432\u0435\u0439\u0442", "CW": "\u041a\u044e\u0440\u0430\u0441\u0430\u043e", "LA": "\u041b\u0430\u043e\u0441", "LV": "\u041b\u0430\u0442\u0432\u0456\u044f", "LS": "\u041b\u0435\u0441\u043e\u0442\u043e", "LT": "\u041b\u0438\u0442\u0432\u0430", "LR": "\u041b\u0456\u0431\u0435\u0440\u0456\u044f", "LB": "\u041b\u0456\u0432\u0430\u043d", "LY": "\u041b\u0456\u0432\u0456\u044f", "LI": "\u041b\u0456\u0445\u0442\u0435\u043d\u0448\u0442\u0435\u0439\u043d", "LU": "\u041b\u044e\u043a\u0441\u0435\u043c\u0431\u0443\u0440\u0491", "MR": "\u041c\u0430\u0432\u0440\u0438\u0442\u0430\u043d\u0456\u044f", "MU": "\u041c\u0430\u0432\u0440\u0456\u043a\u0456\u0439", "MG": "\u041c\u0430\u0434\u0430\u0433\u0430\u0441\u043a\u0430\u0440", "YT": "\u041c\u0430\u0439\u043e\u0442\u0442\u0430", "MO": "\u041c\u0430\u043a\u0430\u043e, \u041e.\u0410.\u0420 \u041a\u0438\u0442\u0430\u044e", "MW": "\u041c\u0430\u043b\u0430\u0432\u0456", "MY": "\u041c\u0430\u043b\u0430\u0439\u0437\u0456\u044f", "ML": "\u041c\u0430\u043b\u0456", "MV": "\u041c\u0430\u043b\u044c\u0434\u0456\u0432\u0438", "MT": "\u041c\u0430\u043b\u044c\u0442\u0430", "MA": "\u041c\u0430\u0440\u043e\u043a\u043a\u043e", "MQ": "\u041c\u0430\u0440\u0442\u0456\u043d\u0456\u043a\u0430", "MX": "\u041c\u0435\u043a\u0441\u0438\u043a\u0430", "MZ": "\u041c\u043e\u0437\u0430\u043c\u0431\u0456\u043a", "MD": "\u041c\u043e\u043b\u0434\u043e\u0432\u0430", "MC": "\u041c\u043e\u043d\u0430\u043a\u043e", "MN": "\u041c\u043e\u043d\u0433\u043e\u043b\u0456\u044f", "MS": "\u041c\u043e\u043d\u0442\u0441\u0435\u0440\u0440\u0430\u0442", "MM": "\u041c\u02bc\u044f\u043d\u043c\u0430 (\u0411\u0456\u0440\u043c\u0430)", "NA": "\u041d\u0430\u043c\u0456\u0431\u0456\u044f", "NR": "\u041d\u0430\u0443\u0440\u0443", "NP": "\u041d\u0435\u043f\u0430\u043b", "NE": "\u041d\u0456\u0433\u0435\u0440", "NG": "\u041d\u0456\u0433\u0435\u0440\u0456\u044f", "NL": "\u041d\u0456\u0434\u0435\u0440\u043b\u0430\u043d\u0434\u0438", "BQ": "\u041d\u0456\u0434\u0435\u0440\u043b\u0430\u043d\u0434\u0441\u044c\u043a\u0456 \u041a\u0430\u0440\u0438\u0431\u0441\u044c\u043a\u0456 \u043e\u0441\u0442\u0440\u043e\u0432\u0438", "NI": "\u041d\u0456\u043a\u0430\u0440\u0430\u0491\u0443\u0430", "DE": "\u041d\u0456\u043c\u0435\u0447\u0447\u0438\u043d\u0430", "NU": "\u041d\u0456\u0443\u0435", "NZ": "\u041d\u043e\u0432\u0430 \u0417\u0435\u043b\u0430\u043d\u0434\u0456\u044f", "NC": "\u041d\u043e\u0432\u0430 \u041a\u0430\u043b\u0435\u0434\u043e\u043d\u0456\u044f", "NO": "\u041d\u043e\u0440\u0432\u0435\u0491\u0456\u044f", "AE": "\u041e\u0431\u02bc\u0454\u0434\u043d\u0430\u043d\u0456 \u0410\u0440\u0430\u0431\u0441\u044c\u043a\u0456 \u0415\u043c\u0456\u0440\u0430\u0442\u0438", "OM": "\u041e\u043c\u0430\u043d", "BV": "\u041e\u0441\u0442\u0440\u0456\u0432 \u0411\u0443\u0432\u0435", "IM": "\u041e\u0441\u0442\u0440\u0456\u0432 \u041c\u0435\u043d", "NF": "\u041e\u0441\u0442\u0440\u0456\u0432 \u041d\u043e\u0440\u0444\u043e\u043b\u043a", "CX": "\u041e\u0441\u0442\u0440\u0456\u0432 \u0420\u0456\u0437\u0434\u0432\u0430", "SH": "\u041e\u0441\u0442\u0440\u0456\u0432 \u0421\u0432\u044f\u0442\u043e\u0457 \u0404\u043b\u0435\u043d\u0438", "HM": "\u041e\u0441\u0442\u0440\u043e\u0432\u0438 \u0413\u0435\u0440\u0434 \u0456 \u041c\u0430\u043a\u0434\u043e\u043d\u0430\u043b\u0434", "CK": "\u041e\u0441\u0442\u0440\u043e\u0432\u0438 \u041a\u0443\u043a\u0430", "PN": "\u041e\u0441\u0442\u0440\u043e\u0432\u0438 \u041f\u0456\u0442\u043a\u0435\u0440\u043d", "TC": "\u041e\u0441\u0442\u0440\u043e\u0432\u0438 \u0422\u0435\u0440\u043a\u0441 \u0456 \u041a\u0430\u0439\u043a\u043e\u0441", "PK": "\u041f\u0430\u043a\u0438\u0441\u0442\u0430\u043d", "PW": "\u041f\u0430\u043b\u0430\u0443", "PA": "\u041f\u0430\u043d\u0430\u043c\u0430", "PG": "\u041f\u0430\u043f\u0443\u0430-\u041d\u043e\u0432\u0430 \u0490\u0432\u0456\u043d\u0435\u044f", "PY": "\u041f\u0430\u0440\u0430\u0491\u0432\u0430\u0439", "PE": "\u041f\u0435\u0440\u0443", "GS": "\u041f\u0456\u0432\u0434\u0435\u043d\u043d\u0430 \u0414\u0436\u043e\u0440\u0434\u0436\u0456\u044f \u0442\u0430 \u041f\u0456\u0432\u0434\u0435\u043d\u043d\u0456 \u0421\u0430\u043d\u0434\u0432\u0456\u0447\u0435\u0432\u0456 \u041e\u0441\u0442\u0440\u043e\u0432\u0438", "KR": "\u041f\u0456\u0432\u0434\u0435\u043d\u043d\u0430 \u041a\u043e\u0440\u0435\u044f", "SS": "\u041f\u0456\u0432\u0434\u0435\u043d\u043d\u0438\u0439 \u0421\u0443\u0434\u0430\u043d", "ZA": "\u041f\u0456\u0432\u0434\u0435\u043d\u043d\u043e-\u0410\u0444\u0440\u0438\u043a\u0430\u043d\u0441\u044c\u043a\u0430 \u0420\u0435\u0441\u043f\u0443\u0431\u043b\u0456\u043a\u0430", "KP": "\u041f\u0456\u0432\u043d\u0456\u0447\u043d\u0430 \u041a\u043e\u0440\u0435\u044f", "MK": "\u041f\u0456\u0432\u043d\u0456\u0447\u043d\u0430 \u041c\u0430\u043a\u0435\u0434\u043e\u043d\u0456\u044f", "PL": "\u041f\u043e\u043b\u044c\u0449\u0430", "PT": "\u041f\u043e\u0440\u0442\u0443\u0491\u0430\u043b\u0456\u044f", "PR": "\u041f\u0443\u0435\u0440\u0442\u043e-\u0420\u0456\u043a\u043e", "RE": "\u0420\u0435\u044e\u043d\u044c\u0439\u043e\u043d", "RU": "\u0420\u043e\u0441\u0456\u044f", "RW": "\u0420\u0443\u0430\u043d\u0434\u0430", "RO": "\u0420\u0443\u043c\u0443\u043d\u0456\u044f", "SV": "\u0421\u0430\u043b\u044c\u0432\u0430\u0434\u043e\u0440", "WS": "\u0421\u0430\u043c\u043e\u0430", "SM": "\u0421\u0430\u043d-\u041c\u0430\u0440\u0456\u043d\u043e", "ST": "\u0421\u0430\u043d-\u0422\u043e\u043c\u0435 \u0456 \u041f\u0440\u0456\u043d\u0441\u0456\u043f\u0456", "SA": "\u0421\u0430\u0443\u0434\u0456\u0432\u0441\u044c\u043a\u0430 \u0410\u0440\u0430\u0432\u0456\u044f", "SC": "\u0421\u0435\u0439\u0448\u0435\u043b\u044c\u0441\u044c\u043a\u0456 \u041e\u0441\u0442\u0440\u043e\u0432\u0438", "BL": "\u0421\u0435\u043d-\u0411\u0430\u0440\u0442\u0435\u043b\u044c\u043c\u0456", "MF": "\u0421\u0435\u043d-\u041c\u0430\u0440\u0442\u0435\u043d", "PM": "\u0421\u0435\u043d-\u041f\u02bc\u0454\u0440 \u0456 \u041c\u0456\u043a\u0435\u043b\u043e\u043d", "SN": "\u0421\u0435\u043d\u0435\u0433\u0430\u043b", "VC": "\u0421\u0435\u043d\u0442-\u0412\u0456\u043d\u0441\u0435\u043d\u0442 \u0456 \u0490\u0440\u0435\u043d\u0430\u0434\u0456\u043d\u0438", "KN": "\u0421\u0435\u043d\u0442-\u041a\u0456\u0442\u0441 \u0456 \u041d\u0435\u0432\u0456\u0441", "LC": "\u0421\u0435\u043d\u0442-\u041b\u044e\u0441\u0456\u044f", "RS": "\u0421\u0435\u0440\u0431\u0456\u044f", "SY": "\u0421\u0438\u0440\u0456\u044f", "SG": "\u0421\u0456\u043d\u0433\u0430\u043f\u0443\u0440", "SX": "\u0421\u0456\u043d\u0442-\u041c\u0430\u0440\u0442\u0435\u043d", "SK": "\u0421\u043b\u043e\u0432\u0430\u0447\u0447\u0438\u043d\u0430", "SI": "\u0421\u043b\u043e\u0432\u0435\u043d\u0456\u044f", "SB": "\u0421\u043e\u043b\u043e\u043c\u043e\u043d\u043e\u0432\u0456 \u041e\u0441\u0442\u0440\u043e\u0432\u0438", "SO": "\u0421\u043e\u043c\u0430\u043b\u0456", "US": "\u0421\u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0456 \u0428\u0442\u0430\u0442\u0438", "SD": "\u0421\u0443\u0434\u0430\u043d", "SR": "\u0421\u0443\u0440\u0456\u043d\u0430\u043c", "SL": "\u0421\u044c\u0454\u0440\u0440\u0430-\u041b\u0435\u043e\u043d\u0435", "TJ": "\u0422\u0430\u0434\u0436\u0438\u043a\u0438\u0441\u0442\u0430\u043d", "TH": "\u0422\u0430\u0457\u043b\u0430\u043d\u0434", "TW": "\u0422\u0430\u0439\u0432\u0430\u043d\u044c", "TZ": "\u0422\u0430\u043d\u0437\u0430\u043d\u0456\u044f", "TL": "\u0422\u0456\u043c\u043e\u0440-\u041b\u0435\u0448\u0442\u0456", "TG": "\u0422\u043e\u0433\u043e", "TK": "\u0422\u043e\u043a\u0435\u043b\u0430\u0443", "TO": "\u0422\u043e\u043d\u0491\u0430", "TT": "\u0422\u0440\u0456\u043d\u0456\u0434\u0430\u0434 \u0456 \u0422\u043e\u0431\u0430\u0491\u043e", "TN": "\u0422\u0443\u043d\u0456\u0441", "TR": "\u0422\u0443\u0440\u0435\u0447\u0447\u0438\u043d\u0430", "TM": "\u0422\u0443\u0440\u043a\u043c\u0435\u043d\u0456\u0441\u0442\u0430\u043d", "UG": "\u0423\u0433\u0430\u043d\u0434\u0430", "HU": "\u0423\u0433\u043e\u0440\u0449\u0438\u043d\u0430", "UZ": "\u0423\u0437\u0431\u0435\u043a\u0438\u0441\u0442\u0430\u043d", "UA": "\u0423\u043a\u0440\u0430\u0457\u043d\u0430", "WF": "\u0423\u043e\u043b\u043b\u0456\u0441 \u0456 \u0424\u0443\u0442\u0443\u043d\u0430", "UY": "\u0423\u0440\u0443\u0491\u0432\u0430\u0439", "FO": "\u0424\u0430\u0440\u0435\u0440\u0441\u044c\u043a\u0456 \u041e\u0441\u0442\u0440\u043e\u0432\u0438", "FJ": "\u0424\u0456\u0434\u0436\u0456", "PH": "\u0424\u0456\u043b\u0456\u043f\u043f\u0456\u043d\u0438", "FI": "\u0424\u0456\u043d\u043b\u044f\u043d\u0434\u0456\u044f", "FK": "\u0424\u043e\u043b\u043a\u043b\u0435\u043d\u0434\u0441\u044c\u043a\u0456 \u041e\u0441\u0442\u0440\u043e\u0432\u0438", "FR": "\u0424\u0440\u0430\u043d\u0446\u0456\u044f", "GF": "\u0424\u0440\u0430\u043d\u0446\u0443\u0437\u044c\u043a\u0430 \u0490\u0432\u0456\u0430\u043d\u0430", "PF": "\u0424\u0440\u0430\u043d\u0446\u0443\u0437\u044c\u043a\u0430 \u041f\u043e\u043b\u0456\u043d\u0435\u0437\u0456\u044f", "TF": "\u0424\u0440\u0430\u043d\u0446\u0443\u0437\u044c\u043a\u0456 \u041f\u0456\u0432\u0434\u0435\u043d\u043d\u0456 \u0422\u0435\u0440\u0438\u0442\u043e\u0440\u0456\u0457", "HR": "\u0425\u043e\u0440\u0432\u0430\u0442\u0456\u044f", "CF": "\u0426\u0435\u043d\u0442\u0440\u0430\u043b\u044c\u043d\u043e\u0430\u0444\u0440\u0438\u043a\u0430\u043d\u0441\u044c\u043a\u0430 \u0420\u0435\u0441\u043f\u0443\u0431\u043b\u0456\u043a\u0430", "TD": "\u0427\u0430\u0434", "CZ": "\u0427\u0435\u0445\u0456\u044f", "CL": "\u0427\u0456\u043b\u0456", "ME": "\u0427\u043e\u0440\u043d\u043e\u0433\u043e\u0440\u0456\u044f", "CH": "\u0428\u0432\u0435\u0439\u0446\u0430\u0440\u0456\u044f", "SE": "\u0428\u0432\u0435\u0446\u0456\u044f", "SJ": "\u0428\u043f\u0456\u0446\u0431\u0435\u0440\u0433\u0435\u043d \u0442\u0430 \u042f\u043d-\u041c\u0430\u0454\u043d", "LK": "\u0428\u0440\u0456-\u041b\u0430\u043d\u043a\u0430", "JM": "\u042f\u043c\u0430\u0439\u043a\u0430", "JP": "\u042f\u043f\u043e\u043d\u0456\u044f"} \ No newline at end of file diff --git a/desktop/src/onionshare/resources/countries/zh_Hans.json b/desktop/src/onionshare/resources/countries/zh_Hans.json index e6127167..88aa0997 100644 --- a/desktop/src/onionshare/resources/countries/zh_Hans.json +++ b/desktop/src/onionshare/resources/countries/zh_Hans.json @@ -1 +1 @@ -{"AL": "\u963f\u5c14\u5df4\u5c3c\u4e9a", "DZ": "\u963f\u5c14\u53ca\u5229\u4e9a", "AF": "\u963f\u5bcc\u6c57", "AR": "\u963f\u6839\u5ef7", "AE": "\u963f\u62c9\u4f2f\u8054\u5408\u914b\u957f\u56fd", "AW": "\u963f\u9c81\u5df4", "OM": "\u963f\u66fc", "AZ": "\u963f\u585e\u62dc\u7586", "EG": "\u57c3\u53ca", "ET": "\u57c3\u585e\u4fc4\u6bd4\u4e9a", "IE": "\u7231\u5c14\u5170", "EE": "\u7231\u6c99\u5c3c\u4e9a", "AD": "\u5b89\u9053\u5c14", "AO": "\u5b89\u54e5\u62c9", "AI": "\u5b89\u572d\u62c9", "AG": "\u5b89\u63d0\u74dc\u548c\u5df4\u5e03\u8fbe", "AT": "\u5965\u5730\u5229", "AX": "\u5965\u5170\u7fa4\u5c9b", "AU": "\u6fb3\u5927\u5229\u4e9a", "BB": "\u5df4\u5df4\u591a\u65af", "PG": "\u5df4\u5e03\u4e9a\u65b0\u51e0\u5185\u4e9a", "BS": "\u5df4\u54c8\u9a6c", "PK": "\u5df4\u57fa\u65af\u5766", "PY": "\u5df4\u62c9\u572d", "PS": "\u5df4\u52d2\u65af\u5766\u9886\u571f", "BH": "\u5df4\u6797", "PA": "\u5df4\u62ff\u9a6c", "BR": "\u5df4\u897f", "BY": "\u767d\u4fc4\u7f57\u65af", "BM": "\u767e\u6155\u5927", "BG": "\u4fdd\u52a0\u5229\u4e9a", "MP": "\u5317\u9a6c\u91cc\u4e9a\u7eb3\u7fa4\u5c9b", "MK": "\u5317\u9a6c\u5176\u987f", "BJ": "\u8d1d\u5b81", "BE": "\u6bd4\u5229\u65f6", "IS": "\u51b0\u5c9b", "PR": "\u6ce2\u591a\u9ece\u5404", "PL": "\u6ce2\u5170", "BA": "\u6ce2\u65af\u5c3c\u4e9a\u548c\u9ed1\u585e\u54e5\u7ef4\u90a3", "BO": "\u73bb\u5229\u7ef4\u4e9a", "BZ": "\u4f2f\u5229\u5179", "BW": "\u535a\u8328\u74e6\u7eb3", "BT": "\u4e0d\u4e39", "BF": "\u5e03\u57fa\u7eb3\u6cd5\u7d22", "BI": "\u5e03\u9686\u8fea", "BV": "\u5e03\u97e6\u5c9b", "KP": "\u671d\u9c9c", "GQ": "\u8d64\u9053\u51e0\u5185\u4e9a", "DK": "\u4e39\u9ea6", "DE": "\u5fb7\u56fd", "TL": "\u4e1c\u5e1d\u6c76", "TG": "\u591a\u54e5", "DO": "\u591a\u7c73\u5c3c\u52a0\u5171\u548c\u56fd", "DM": "\u591a\u7c73\u5c3c\u514b", "RU": "\u4fc4\u7f57\u65af", "EC": "\u5384\u74dc\u591a\u5c14", "ER": "\u5384\u7acb\u7279\u91cc\u4e9a", "FR": "\u6cd5\u56fd", "FO": "\u6cd5\u7f57\u7fa4\u5c9b", "PF": "\u6cd5\u5c5e\u6ce2\u5229\u5c3c\u897f\u4e9a", "GF": "\u6cd5\u5c5e\u572d\u4e9a\u90a3", "TF": "\u6cd5\u5c5e\u5357\u90e8\u9886\u5730", "MF": "\u6cd5\u5c5e\u5723\u9a6c\u4e01", "VA": "\u68b5\u8482\u5188", "PH": "\u83f2\u5f8b\u5bbe", "FJ": "\u6590\u6d4e", "FI": "\u82ac\u5170", "CV": "\u4f5b\u5f97\u89d2", "FK": "\u798f\u514b\u5170\u7fa4\u5c9b", "GM": "\u5188\u6bd4\u4e9a", "CG": "\u521a\u679c\uff08\u5e03\uff09", "CD": "\u521a\u679c\uff08\u91d1\uff09", "CO": "\u54e5\u4f26\u6bd4\u4e9a", "CR": "\u54e5\u65af\u8fbe\u9ece\u52a0", "GD": "\u683c\u6797\u7eb3\u8fbe", "GL": "\u683c\u9675\u5170", "GE": "\u683c\u9c81\u5409\u4e9a", "GG": "\u6839\u897f\u5c9b", "CU": "\u53e4\u5df4", "GP": "\u74dc\u5fb7\u7f57\u666e", "GU": "\u5173\u5c9b", "GY": "\u572d\u4e9a\u90a3", "KZ": "\u54c8\u8428\u514b\u65af\u5766", "HT": "\u6d77\u5730", "KR": "\u97e9\u56fd", "NL": "\u8377\u5170", "BQ": "\u8377\u5c5e\u52a0\u52d2\u6bd4\u533a", "SX": "\u8377\u5c5e\u5723\u9a6c\u4e01", "HM": "\u8d6b\u5fb7\u5c9b\u548c\u9ea6\u514b\u5510\u7eb3\u7fa4\u5c9b", "ME": "\u9ed1\u5c71", "HN": "\u6d2a\u90fd\u62c9\u65af", "KI": "\u57fa\u91cc\u5df4\u65af", "DJ": "\u5409\u5e03\u63d0", "KG": "\u5409\u5c14\u5409\u65af\u65af\u5766", "GN": "\u51e0\u5185\u4e9a", "GW": "\u51e0\u5185\u4e9a\u6bd4\u7ecd", "CA": "\u52a0\u62ff\u5927", "GH": "\u52a0\u7eb3", "GA": "\u52a0\u84ec", "KH": "\u67ec\u57d4\u5be8", "CZ": "\u6377\u514b", "ZW": "\u6d25\u5df4\u5e03\u97e6", "CM": "\u5580\u9ea6\u9686", "QA": "\u5361\u5854\u5c14", "KY": "\u5f00\u66fc\u7fa4\u5c9b", "CC": "\u79d1\u79d1\u65af\uff08\u57fa\u6797\uff09\u7fa4\u5c9b", "KM": "\u79d1\u6469\u7f57", "CI": "\u79d1\u7279\u8fea\u74e6", "KW": "\u79d1\u5a01\u7279", "HR": "\u514b\u7f57\u5730\u4e9a", "KE": "\u80af\u5c3c\u4e9a", "CK": "\u5e93\u514b\u7fa4\u5c9b", "CW": "\u5e93\u62c9\u7d22", "LV": "\u62c9\u8131\u7ef4\u4e9a", "LS": "\u83b1\u7d22\u6258", "LA": "\u8001\u631d", "LB": "\u9ece\u5df4\u5ae9", "LT": "\u7acb\u9676\u5b9b", "LR": "\u5229\u6bd4\u91cc\u4e9a", "LY": "\u5229\u6bd4\u4e9a", "LI": "\u5217\u652f\u6566\u58eb\u767b", "RE": "\u7559\u5c3c\u6c6a", "LU": "\u5362\u68ee\u5821", "RW": "\u5362\u65fa\u8fbe", "RO": "\u7f57\u9a6c\u5c3c\u4e9a", "MG": "\u9a6c\u8fbe\u52a0\u65af\u52a0", "IM": "\u9a6c\u6069\u5c9b", "MV": "\u9a6c\u5c14\u4ee3\u592b", "MT": "\u9a6c\u8033\u4ed6", "MW": "\u9a6c\u62c9\u7ef4", "MY": "\u9a6c\u6765\u897f\u4e9a", "ML": "\u9a6c\u91cc", "MH": "\u9a6c\u7ecd\u5c14\u7fa4\u5c9b", "MQ": "\u9a6c\u63d0\u5c3c\u514b", "YT": "\u9a6c\u7ea6\u7279", "MU": "\u6bdb\u91cc\u6c42\u65af", "MR": "\u6bdb\u91cc\u5854\u5c3c\u4e9a", "US": "\u7f8e\u56fd", "UM": "\u7f8e\u56fd\u672c\u571f\u5916\u5c0f\u5c9b\u5c7f", "AS": "\u7f8e\u5c5e\u8428\u6469\u4e9a", "VI": "\u7f8e\u5c5e\u7ef4\u5c14\u4eac\u7fa4\u5c9b", "MN": "\u8499\u53e4", "MS": "\u8499\u7279\u585e\u62c9\u7279", "BD": "\u5b5f\u52a0\u62c9\u56fd", "PE": "\u79d8\u9c81", "FM": "\u5bc6\u514b\u7f57\u5c3c\u897f\u4e9a", "MM": "\u7f05\u7538", "MD": "\u6469\u5c14\u591a\u74e6", "MA": "\u6469\u6d1b\u54e5", "MC": "\u6469\u7eb3\u54e5", "MZ": "\u83ab\u6851\u6bd4\u514b", "MX": "\u58a8\u897f\u54e5", "NA": "\u7eb3\u7c73\u6bd4\u4e9a", "ZA": "\u5357\u975e", "AQ": "\u5357\u6781\u6d32", "GS": "\u5357\u4e54\u6cbb\u4e9a\u548c\u5357\u6851\u5a01\u5947\u7fa4\u5c9b", "SS": "\u5357\u82cf\u4e39", "NR": "\u7459\u9c81", "NI": "\u5c3c\u52a0\u62c9\u74dc", "NP": "\u5c3c\u6cca\u5c14", "NE": "\u5c3c\u65e5\u5c14", "NG": "\u5c3c\u65e5\u5229\u4e9a", "NU": "\u7ebd\u57c3", "NO": "\u632a\u5a01", "NF": "\u8bfa\u798f\u514b\u5c9b", "PW": "\u5e15\u52b3", "PN": "\u76ae\u7279\u51ef\u6069\u7fa4\u5c9b", "PT": "\u8461\u8404\u7259", "JP": "\u65e5\u672c", "SE": "\u745e\u5178", "CH": "\u745e\u58eb", "SV": "\u8428\u5c14\u74e6\u591a", "WS": "\u8428\u6469\u4e9a", "RS": "\u585e\u5c14\u7ef4\u4e9a", "SL": "\u585e\u62c9\u5229\u6602", "SN": "\u585e\u5185\u52a0\u5c14", "CY": "\u585e\u6d66\u8def\u65af", "SC": "\u585e\u820c\u5c14", "SA": "\u6c99\u7279\u963f\u62c9\u4f2f", "BL": "\u5723\u5df4\u6cf0\u52d2\u7c73", "CX": "\u5723\u8bde\u5c9b", "ST": "\u5723\u591a\u7f8e\u548c\u666e\u6797\u897f\u6bd4", "SH": "\u5723\u8d6b\u52d2\u62ff", "KN": "\u5723\u57fa\u8328\u548c\u5c3c\u7ef4\u65af", "LC": "\u5723\u5362\u897f\u4e9a", "SM": "\u5723\u9a6c\u529b\u8bfa", "PM": "\u5723\u76ae\u57c3\u5c14\u548c\u5bc6\u514b\u9686\u7fa4\u5c9b", "VC": "\u5723\u6587\u68ee\u7279\u548c\u683c\u6797\u7eb3\u4e01\u65af", "LK": "\u65af\u91cc\u5170\u5361", "SK": "\u65af\u6d1b\u4f10\u514b", "SI": "\u65af\u6d1b\u6587\u5c3c\u4e9a", "SJ": "\u65af\u74e6\u5c14\u5df4\u548c\u626c\u9a6c\u5ef6", "SZ": "\u65af\u5a01\u58eb\u5170", "SD": "\u82cf\u4e39", "SR": "\u82cf\u91cc\u5357", "SB": "\u6240\u7f57\u95e8\u7fa4\u5c9b", "SO": "\u7d22\u9a6c\u91cc", "TJ": "\u5854\u5409\u514b\u65af\u5766", "TW": "\u53f0\u6e7e", "TH": "\u6cf0\u56fd", "TZ": "\u5766\u6851\u5c3c\u4e9a", "TO": "\u6c64\u52a0", "TC": "\u7279\u514b\u65af\u548c\u51ef\u79d1\u65af\u7fa4\u5c9b", "TT": "\u7279\u7acb\u5c3c\u8fbe\u548c\u591a\u5df4\u54e5", "TN": "\u7a81\u5c3c\u65af", "TV": "\u56fe\u74e6\u5362", "TR": "\u571f\u8033\u5176", "TM": "\u571f\u5e93\u66fc\u65af\u5766", "TK": "\u6258\u514b\u52b3", "WF": "\u74e6\u5229\u65af\u548c\u5bcc\u56fe\u7eb3", "VU": "\u74e6\u52aa\u963f\u56fe", "GT": "\u5371\u5730\u9a6c\u62c9", "VE": "\u59d4\u5185\u745e\u62c9", "BN": "\u6587\u83b1", "UG": "\u4e4c\u5e72\u8fbe", "UA": "\u4e4c\u514b\u5170", "UY": "\u4e4c\u62c9\u572d", "UZ": "\u4e4c\u5179\u522b\u514b\u65af\u5766", "ES": "\u897f\u73ed\u7259", "EH": "\u897f\u6492\u54c8\u62c9", "GR": "\u5e0c\u814a", "SG": "\u65b0\u52a0\u5761", "NC": "\u65b0\u5580\u91cc\u591a\u5c3c\u4e9a", "NZ": "\u65b0\u897f\u5170", "HU": "\u5308\u7259\u5229", "SY": "\u53d9\u5229\u4e9a", "JM": "\u7259\u4e70\u52a0", "AM": "\u4e9a\u7f8e\u5c3c\u4e9a", "YE": "\u4e5f\u95e8", "IQ": "\u4f0a\u62c9\u514b", "IR": "\u4f0a\u6717", "IL": "\u4ee5\u8272\u5217", "IT": "\u610f\u5927\u5229", "IN": "\u5370\u5ea6", "ID": "\u5370\u5ea6\u5c3c\u897f\u4e9a", "GB": "\u82f1\u56fd", "VG": "\u82f1\u5c5e\u7ef4\u5c14\u4eac\u7fa4\u5c9b", "IO": "\u82f1\u5c5e\u5370\u5ea6\u6d0b\u9886\u5730", "JO": "\u7ea6\u65e6", "VN": "\u8d8a\u5357", "ZM": "\u8d5e\u6bd4\u4e9a", "JE": "\u6cfd\u897f\u5c9b", "TD": "\u4e4d\u5f97", "GI": "\u76f4\u5e03\u7f57\u9640", "CL": "\u667a\u5229", "CF": "\u4e2d\u975e\u5171\u548c\u56fd", "CN": "\u4e2d\u56fd", "MO": "\u4e2d\u56fd\u6fb3\u95e8\u7279\u522b\u884c\u653f\u533a", "HK": "\u4e2d\u56fd\u9999\u6e2f\u7279\u522b\u884c\u653f\u533a"} \ No newline at end of file +{"AL": "\u963f\u5c14\u5df4\u5c3c\u4e9a", "DZ": "\u963f\u5c14\u53ca\u5229\u4e9a", "AF": "\u963f\u5bcc\u6c57", "AR": "\u963f\u6839\u5ef7", "AE": "\u963f\u62c9\u4f2f\u8054\u5408\u914b\u957f\u56fd", "AW": "\u963f\u9c81\u5df4", "OM": "\u963f\u66fc", "AZ": "\u963f\u585e\u62dc\u7586", "EG": "\u57c3\u53ca", "ET": "\u57c3\u585e\u4fc4\u6bd4\u4e9a", "IE": "\u7231\u5c14\u5170", "EE": "\u7231\u6c99\u5c3c\u4e9a", "AD": "\u5b89\u9053\u5c14", "AO": "\u5b89\u54e5\u62c9", "AI": "\u5b89\u572d\u62c9", "AG": "\u5b89\u63d0\u74dc\u548c\u5df4\u5e03\u8fbe", "AT": "\u5965\u5730\u5229", "AX": "\u5965\u5170\u7fa4\u5c9b", "AU": "\u6fb3\u5927\u5229\u4e9a", "BB": "\u5df4\u5df4\u591a\u65af", "PG": "\u5df4\u5e03\u4e9a\u65b0\u51e0\u5185\u4e9a", "BS": "\u5df4\u54c8\u9a6c", "PK": "\u5df4\u57fa\u65af\u5766", "PY": "\u5df4\u62c9\u572d", "BH": "\u5df4\u6797", "PA": "\u5df4\u62ff\u9a6c", "BR": "\u5df4\u897f", "BY": "\u767d\u4fc4\u7f57\u65af", "BM": "\u767e\u6155\u5927", "BG": "\u4fdd\u52a0\u5229\u4e9a", "MK": "\u5317\u9a6c\u5176\u987f", "BJ": "\u8d1d\u5b81", "BE": "\u6bd4\u5229\u65f6", "IS": "\u51b0\u5c9b", "PR": "\u6ce2\u591a\u9ece\u5404", "PL": "\u6ce2\u5170", "BA": "\u6ce2\u65af\u5c3c\u4e9a\u548c\u9ed1\u585e\u54e5\u7ef4\u90a3", "BO": "\u73bb\u5229\u7ef4\u4e9a", "BZ": "\u4f2f\u5229\u5179", "BW": "\u535a\u8328\u74e6\u7eb3", "BT": "\u4e0d\u4e39", "BF": "\u5e03\u57fa\u7eb3\u6cd5\u7d22", "BI": "\u5e03\u9686\u8fea", "BV": "\u5e03\u97e6\u5c9b", "KP": "\u671d\u9c9c", "GQ": "\u8d64\u9053\u51e0\u5185\u4e9a", "DK": "\u4e39\u9ea6", "DE": "\u5fb7\u56fd", "TL": "\u4e1c\u5e1d\u6c76", "TG": "\u591a\u54e5", "DO": "\u591a\u7c73\u5c3c\u52a0\u5171\u548c\u56fd", "DM": "\u591a\u7c73\u5c3c\u514b", "RU": "\u4fc4\u7f57\u65af", "EC": "\u5384\u74dc\u591a\u5c14", "ER": "\u5384\u7acb\u7279\u91cc\u4e9a", "FR": "\u6cd5\u56fd", "FO": "\u6cd5\u7f57\u7fa4\u5c9b", "PF": "\u6cd5\u5c5e\u6ce2\u5229\u5c3c\u897f\u4e9a", "GF": "\u6cd5\u5c5e\u572d\u4e9a\u90a3", "TF": "\u6cd5\u5c5e\u5357\u90e8\u9886\u5730", "MF": "\u6cd5\u5c5e\u5723\u9a6c\u4e01", "VA": "\u68b5\u8482\u5188", "PH": "\u83f2\u5f8b\u5bbe", "FJ": "\u6590\u6d4e", "FI": "\u82ac\u5170", "CV": "\u4f5b\u5f97\u89d2", "FK": "\u798f\u514b\u5170\u7fa4\u5c9b", "GM": "\u5188\u6bd4\u4e9a", "CG": "\u521a\u679c\uff08\u5e03\uff09", "CD": "\u521a\u679c\uff08\u91d1\uff09", "CO": "\u54e5\u4f26\u6bd4\u4e9a", "CR": "\u54e5\u65af\u8fbe\u9ece\u52a0", "GD": "\u683c\u6797\u7eb3\u8fbe", "GL": "\u683c\u9675\u5170", "GE": "\u683c\u9c81\u5409\u4e9a", "GG": "\u6839\u897f\u5c9b", "CU": "\u53e4\u5df4", "GP": "\u74dc\u5fb7\u7f57\u666e", "GU": "\u5173\u5c9b", "GY": "\u572d\u4e9a\u90a3", "KZ": "\u54c8\u8428\u514b\u65af\u5766", "HT": "\u6d77\u5730", "KR": "\u97e9\u56fd", "NL": "\u8377\u5170", "BQ": "\u8377\u5c5e\u52a0\u52d2\u6bd4\u533a", "SX": "\u8377\u5c5e\u5723\u9a6c\u4e01", "HM": "\u8d6b\u5fb7\u5c9b\u548c\u9ea6\u514b\u5510\u7eb3\u7fa4\u5c9b", "ME": "\u9ed1\u5c71", "HN": "\u6d2a\u90fd\u62c9\u65af", "KI": "\u57fa\u91cc\u5df4\u65af", "DJ": "\u5409\u5e03\u63d0", "KG": "\u5409\u5c14\u5409\u65af\u65af\u5766", "GN": "\u51e0\u5185\u4e9a", "GW": "\u51e0\u5185\u4e9a\u6bd4\u7ecd", "CA": "\u52a0\u62ff\u5927", "GH": "\u52a0\u7eb3", "GA": "\u52a0\u84ec", "KH": "\u67ec\u57d4\u5be8", "CZ": "\u6377\u514b", "ZW": "\u6d25\u5df4\u5e03\u97e6", "CM": "\u5580\u9ea6\u9686", "QA": "\u5361\u5854\u5c14", "KY": "\u5f00\u66fc\u7fa4\u5c9b", "CC": "\u79d1\u79d1\u65af\uff08\u57fa\u6797\uff09\u7fa4\u5c9b", "KM": "\u79d1\u6469\u7f57", "CI": "\u79d1\u7279\u8fea\u74e6", "KW": "\u79d1\u5a01\u7279", "HR": "\u514b\u7f57\u5730\u4e9a", "KE": "\u80af\u5c3c\u4e9a", "CK": "\u5e93\u514b\u7fa4\u5c9b", "CW": "\u5e93\u62c9\u7d22", "LV": "\u62c9\u8131\u7ef4\u4e9a", "LS": "\u83b1\u7d22\u6258", "LA": "\u8001\u631d", "LB": "\u9ece\u5df4\u5ae9", "LT": "\u7acb\u9676\u5b9b", "LR": "\u5229\u6bd4\u91cc\u4e9a", "LY": "\u5229\u6bd4\u4e9a", "LI": "\u5217\u652f\u6566\u58eb\u767b", "RE": "\u7559\u5c3c\u6c6a", "LU": "\u5362\u68ee\u5821", "RW": "\u5362\u65fa\u8fbe", "RO": "\u7f57\u9a6c\u5c3c\u4e9a", "MG": "\u9a6c\u8fbe\u52a0\u65af\u52a0", "IM": "\u9a6c\u6069\u5c9b", "MV": "\u9a6c\u5c14\u4ee3\u592b", "MT": "\u9a6c\u8033\u4ed6", "MW": "\u9a6c\u62c9\u7ef4", "MY": "\u9a6c\u6765\u897f\u4e9a", "ML": "\u9a6c\u91cc", "MQ": "\u9a6c\u63d0\u5c3c\u514b", "YT": "\u9a6c\u7ea6\u7279", "MU": "\u6bdb\u91cc\u6c42\u65af", "MR": "\u6bdb\u91cc\u5854\u5c3c\u4e9a", "US": "\u7f8e\u56fd", "AS": "\u7f8e\u5c5e\u8428\u6469\u4e9a", "VI": "\u7f8e\u5c5e\u7ef4\u5c14\u4eac\u7fa4\u5c9b", "MN": "\u8499\u53e4", "MS": "\u8499\u7279\u585e\u62c9\u7279", "BD": "\u5b5f\u52a0\u62c9\u56fd", "PE": "\u79d8\u9c81", "MM": "\u7f05\u7538", "MD": "\u6469\u5c14\u591a\u74e6", "MA": "\u6469\u6d1b\u54e5", "MC": "\u6469\u7eb3\u54e5", "MZ": "\u83ab\u6851\u6bd4\u514b", "MX": "\u58a8\u897f\u54e5", "NA": "\u7eb3\u7c73\u6bd4\u4e9a", "ZA": "\u5357\u975e", "AQ": "\u5357\u6781\u6d32", "GS": "\u5357\u4e54\u6cbb\u4e9a\u548c\u5357\u6851\u5a01\u5947\u7fa4\u5c9b", "SS": "\u5357\u82cf\u4e39", "NR": "\u7459\u9c81", "NI": "\u5c3c\u52a0\u62c9\u74dc", "NP": "\u5c3c\u6cca\u5c14", "NE": "\u5c3c\u65e5\u5c14", "NG": "\u5c3c\u65e5\u5229\u4e9a", "NU": "\u7ebd\u57c3", "NO": "\u632a\u5a01", "NF": "\u8bfa\u798f\u514b\u5c9b", "PW": "\u5e15\u52b3", "PN": "\u76ae\u7279\u51ef\u6069\u7fa4\u5c9b", "PT": "\u8461\u8404\u7259", "JP": "\u65e5\u672c", "SE": "\u745e\u5178", "CH": "\u745e\u58eb", "SV": "\u8428\u5c14\u74e6\u591a", "WS": "\u8428\u6469\u4e9a", "RS": "\u585e\u5c14\u7ef4\u4e9a", "SL": "\u585e\u62c9\u5229\u6602", "SN": "\u585e\u5185\u52a0\u5c14", "CY": "\u585e\u6d66\u8def\u65af", "SC": "\u585e\u820c\u5c14", "SA": "\u6c99\u7279\u963f\u62c9\u4f2f", "BL": "\u5723\u5df4\u6cf0\u52d2\u7c73", "CX": "\u5723\u8bde\u5c9b", "ST": "\u5723\u591a\u7f8e\u548c\u666e\u6797\u897f\u6bd4", "SH": "\u5723\u8d6b\u52d2\u62ff", "KN": "\u5723\u57fa\u8328\u548c\u5c3c\u7ef4\u65af", "LC": "\u5723\u5362\u897f\u4e9a", "SM": "\u5723\u9a6c\u529b\u8bfa", "PM": "\u5723\u76ae\u57c3\u5c14\u548c\u5bc6\u514b\u9686\u7fa4\u5c9b", "VC": "\u5723\u6587\u68ee\u7279\u548c\u683c\u6797\u7eb3\u4e01\u65af", "LK": "\u65af\u91cc\u5170\u5361", "SK": "\u65af\u6d1b\u4f10\u514b", "SI": "\u65af\u6d1b\u6587\u5c3c\u4e9a", "SJ": "\u65af\u74e6\u5c14\u5df4\u548c\u626c\u9a6c\u5ef6", "SZ": "\u65af\u5a01\u58eb\u5170", "SD": "\u82cf\u4e39", "SR": "\u82cf\u91cc\u5357", "SB": "\u6240\u7f57\u95e8\u7fa4\u5c9b", "SO": "\u7d22\u9a6c\u91cc", "TJ": "\u5854\u5409\u514b\u65af\u5766", "TW": "\u53f0\u6e7e", "TH": "\u6cf0\u56fd", "TZ": "\u5766\u6851\u5c3c\u4e9a", "TO": "\u6c64\u52a0", "TC": "\u7279\u514b\u65af\u548c\u51ef\u79d1\u65af\u7fa4\u5c9b", "TT": "\u7279\u7acb\u5c3c\u8fbe\u548c\u591a\u5df4\u54e5", "TN": "\u7a81\u5c3c\u65af", "TR": "\u571f\u8033\u5176", "TM": "\u571f\u5e93\u66fc\u65af\u5766", "TK": "\u6258\u514b\u52b3", "WF": "\u74e6\u5229\u65af\u548c\u5bcc\u56fe\u7eb3", "VU": "\u74e6\u52aa\u963f\u56fe", "GT": "\u5371\u5730\u9a6c\u62c9", "VE": "\u59d4\u5185\u745e\u62c9", "BN": "\u6587\u83b1", "UG": "\u4e4c\u5e72\u8fbe", "UA": "\u4e4c\u514b\u5170", "UY": "\u4e4c\u62c9\u572d", "UZ": "\u4e4c\u5179\u522b\u514b\u65af\u5766", "ES": "\u897f\u73ed\u7259", "EH": "\u897f\u6492\u54c8\u62c9", "GR": "\u5e0c\u814a", "SG": "\u65b0\u52a0\u5761", "NC": "\u65b0\u5580\u91cc\u591a\u5c3c\u4e9a", "NZ": "\u65b0\u897f\u5170", "HU": "\u5308\u7259\u5229", "SY": "\u53d9\u5229\u4e9a", "JM": "\u7259\u4e70\u52a0", "AM": "\u4e9a\u7f8e\u5c3c\u4e9a", "YE": "\u4e5f\u95e8", "IQ": "\u4f0a\u62c9\u514b", "IR": "\u4f0a\u6717", "IL": "\u4ee5\u8272\u5217", "IT": "\u610f\u5927\u5229", "IN": "\u5370\u5ea6", "ID": "\u5370\u5ea6\u5c3c\u897f\u4e9a", "GB": "\u82f1\u56fd", "VG": "\u82f1\u5c5e\u7ef4\u5c14\u4eac\u7fa4\u5c9b", "IO": "\u82f1\u5c5e\u5370\u5ea6\u6d0b\u9886\u5730", "JO": "\u7ea6\u65e6", "VN": "\u8d8a\u5357", "ZM": "\u8d5e\u6bd4\u4e9a", "TD": "\u4e4d\u5f97", "GI": "\u76f4\u5e03\u7f57\u9640", "CL": "\u667a\u5229", "CF": "\u4e2d\u975e\u5171\u548c\u56fd", "CN": "\u4e2d\u56fd", "MO": "\u4e2d\u56fd\u6fb3\u95e8\u7279\u522b\u884c\u653f\u533a", "HK": "\u4e2d\u56fd\u9999\u6e2f\u7279\u522b\u884c\u653f\u533a"} \ No newline at end of file diff --git a/desktop/src/onionshare/resources/images/countries/ad-dark.png b/desktop/src/onionshare/resources/images/countries/ad-dark.png new file mode 100644 index 00000000..b3cec523 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/ad-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/ad-light.png b/desktop/src/onionshare/resources/images/countries/ad-light.png new file mode 100644 index 00000000..16f033d9 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/ad-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/ae-dark.png b/desktop/src/onionshare/resources/images/countries/ae-dark.png new file mode 100644 index 00000000..5dac0a10 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/ae-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/ae-light.png b/desktop/src/onionshare/resources/images/countries/ae-light.png new file mode 100644 index 00000000..58b00d06 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/ae-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/af-dark.png b/desktop/src/onionshare/resources/images/countries/af-dark.png new file mode 100644 index 00000000..2898cae6 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/af-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/af-light.png b/desktop/src/onionshare/resources/images/countries/af-light.png new file mode 100644 index 00000000..2571e368 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/af-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/ag-dark.png b/desktop/src/onionshare/resources/images/countries/ag-dark.png new file mode 100644 index 00000000..d81a4564 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/ag-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/ag-light.png b/desktop/src/onionshare/resources/images/countries/ag-light.png new file mode 100644 index 00000000..0e97185d Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/ag-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/ai-dark.png b/desktop/src/onionshare/resources/images/countries/ai-dark.png new file mode 100644 index 00000000..c9c33660 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/ai-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/ai-light.png b/desktop/src/onionshare/resources/images/countries/ai-light.png new file mode 100644 index 00000000..0cdd6579 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/ai-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/al-dark.png b/desktop/src/onionshare/resources/images/countries/al-dark.png new file mode 100644 index 00000000..ed92e454 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/al-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/al-light.png b/desktop/src/onionshare/resources/images/countries/al-light.png new file mode 100644 index 00000000..83a0940b Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/al-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/am-dark.png b/desktop/src/onionshare/resources/images/countries/am-dark.png new file mode 100644 index 00000000..25a6eeb1 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/am-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/am-light.png b/desktop/src/onionshare/resources/images/countries/am-light.png new file mode 100644 index 00000000..7ff121ed Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/am-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/ao-dark.png b/desktop/src/onionshare/resources/images/countries/ao-dark.png new file mode 100644 index 00000000..db71ab18 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/ao-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/ao-light.png b/desktop/src/onionshare/resources/images/countries/ao-light.png new file mode 100644 index 00000000..5ba12401 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/ao-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/aq-dark.png b/desktop/src/onionshare/resources/images/countries/aq-dark.png new file mode 100644 index 00000000..96ad4500 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/aq-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/aq-light.png b/desktop/src/onionshare/resources/images/countries/aq-light.png new file mode 100644 index 00000000..69936a5c Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/aq-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/ar-dark.png b/desktop/src/onionshare/resources/images/countries/ar-dark.png new file mode 100644 index 00000000..9e1ac2a6 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/ar-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/ar-light.png b/desktop/src/onionshare/resources/images/countries/ar-light.png new file mode 100644 index 00000000..909fd6ba Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/ar-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/as-dark.png b/desktop/src/onionshare/resources/images/countries/as-dark.png new file mode 100644 index 00000000..02037fbd Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/as-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/as-light.png b/desktop/src/onionshare/resources/images/countries/as-light.png new file mode 100644 index 00000000..06db02dd Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/as-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/at-dark.png b/desktop/src/onionshare/resources/images/countries/at-dark.png new file mode 100644 index 00000000..e8e36a76 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/at-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/at-light.png b/desktop/src/onionshare/resources/images/countries/at-light.png new file mode 100644 index 00000000..a1f6e295 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/at-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/au-dark.png b/desktop/src/onionshare/resources/images/countries/au-dark.png new file mode 100644 index 00000000..9a15edcd Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/au-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/au-light.png b/desktop/src/onionshare/resources/images/countries/au-light.png new file mode 100644 index 00000000..f1a0a2ff Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/au-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/aw-dark.png b/desktop/src/onionshare/resources/images/countries/aw-dark.png new file mode 100644 index 00000000..bc9594ff Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/aw-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/aw-light.png b/desktop/src/onionshare/resources/images/countries/aw-light.png new file mode 100644 index 00000000..a576a27d Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/aw-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/ax-dark.png b/desktop/src/onionshare/resources/images/countries/ax-dark.png new file mode 100644 index 00000000..78eff630 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/ax-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/ax-light.png b/desktop/src/onionshare/resources/images/countries/ax-light.png new file mode 100644 index 00000000..fb017daf Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/ax-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/az-dark.png b/desktop/src/onionshare/resources/images/countries/az-dark.png new file mode 100644 index 00000000..9575d871 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/az-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/az-light.png b/desktop/src/onionshare/resources/images/countries/az-light.png new file mode 100644 index 00000000..4e20c60a Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/az-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/ba-dark.png b/desktop/src/onionshare/resources/images/countries/ba-dark.png new file mode 100644 index 00000000..9c1368fd Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/ba-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/ba-light.png b/desktop/src/onionshare/resources/images/countries/ba-light.png new file mode 100644 index 00000000..f3ddfc3e Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/ba-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/bb-dark.png b/desktop/src/onionshare/resources/images/countries/bb-dark.png new file mode 100644 index 00000000..4f89a82f Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/bb-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/bb-light.png b/desktop/src/onionshare/resources/images/countries/bb-light.png new file mode 100644 index 00000000..abbac6d7 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/bb-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/bd-dark.png b/desktop/src/onionshare/resources/images/countries/bd-dark.png new file mode 100644 index 00000000..63628d33 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/bd-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/bd-light.png b/desktop/src/onionshare/resources/images/countries/bd-light.png new file mode 100644 index 00000000..6dc3cba7 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/bd-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/be-dark.png b/desktop/src/onionshare/resources/images/countries/be-dark.png new file mode 100644 index 00000000..da450858 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/be-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/be-light.png b/desktop/src/onionshare/resources/images/countries/be-light.png new file mode 100644 index 00000000..abff465a Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/be-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/bf-dark.png b/desktop/src/onionshare/resources/images/countries/bf-dark.png new file mode 100644 index 00000000..11d1a4ae Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/bf-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/bf-light.png b/desktop/src/onionshare/resources/images/countries/bf-light.png new file mode 100644 index 00000000..e7cd70e6 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/bf-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/bg-dark.png b/desktop/src/onionshare/resources/images/countries/bg-dark.png new file mode 100644 index 00000000..c995bc28 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/bg-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/bg-light.png b/desktop/src/onionshare/resources/images/countries/bg-light.png new file mode 100644 index 00000000..6ea5d55d Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/bg-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/bh-dark.png b/desktop/src/onionshare/resources/images/countries/bh-dark.png new file mode 100644 index 00000000..6ac93698 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/bh-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/bh-light.png b/desktop/src/onionshare/resources/images/countries/bh-light.png new file mode 100644 index 00000000..440b71f6 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/bh-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/bi-dark.png b/desktop/src/onionshare/resources/images/countries/bi-dark.png new file mode 100644 index 00000000..7fcf0b11 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/bi-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/bi-light.png b/desktop/src/onionshare/resources/images/countries/bi-light.png new file mode 100644 index 00000000..da2926eb Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/bi-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/bj-dark.png b/desktop/src/onionshare/resources/images/countries/bj-dark.png new file mode 100644 index 00000000..1ca6a5e1 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/bj-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/bj-light.png b/desktop/src/onionshare/resources/images/countries/bj-light.png new file mode 100644 index 00000000..97163b28 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/bj-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/bl-dark.png b/desktop/src/onionshare/resources/images/countries/bl-dark.png new file mode 100644 index 00000000..7aa591bc Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/bl-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/bl-light.png b/desktop/src/onionshare/resources/images/countries/bl-light.png new file mode 100644 index 00000000..d5ab4522 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/bl-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/bm-dark.png b/desktop/src/onionshare/resources/images/countries/bm-dark.png new file mode 100644 index 00000000..2bc516e3 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/bm-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/bm-light.png b/desktop/src/onionshare/resources/images/countries/bm-light.png new file mode 100644 index 00000000..2d921656 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/bm-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/bn-dark.png b/desktop/src/onionshare/resources/images/countries/bn-dark.png new file mode 100644 index 00000000..c3b155b2 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/bn-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/bn-light.png b/desktop/src/onionshare/resources/images/countries/bn-light.png new file mode 100644 index 00000000..9cb54f02 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/bn-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/bo-dark.png b/desktop/src/onionshare/resources/images/countries/bo-dark.png new file mode 100644 index 00000000..fc6b9ad5 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/bo-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/bo-light.png b/desktop/src/onionshare/resources/images/countries/bo-light.png new file mode 100644 index 00000000..76c69cc9 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/bo-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/bq-dark.png b/desktop/src/onionshare/resources/images/countries/bq-dark.png new file mode 100644 index 00000000..8fbcc7d3 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/bq-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/bq-light.png b/desktop/src/onionshare/resources/images/countries/bq-light.png new file mode 100644 index 00000000..4abc2fa7 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/bq-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/br-dark.png b/desktop/src/onionshare/resources/images/countries/br-dark.png new file mode 100644 index 00000000..ce3131ed Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/br-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/br-light.png b/desktop/src/onionshare/resources/images/countries/br-light.png new file mode 100644 index 00000000..a7e7f176 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/br-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/bs-dark.png b/desktop/src/onionshare/resources/images/countries/bs-dark.png new file mode 100644 index 00000000..edb9bcaa Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/bs-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/bs-light.png b/desktop/src/onionshare/resources/images/countries/bs-light.png new file mode 100644 index 00000000..5a4acd03 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/bs-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/bt-dark.png b/desktop/src/onionshare/resources/images/countries/bt-dark.png new file mode 100644 index 00000000..c3ad28e2 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/bt-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/bt-light.png b/desktop/src/onionshare/resources/images/countries/bt-light.png new file mode 100644 index 00000000..466d423e Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/bt-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/bv-dark.png b/desktop/src/onionshare/resources/images/countries/bv-dark.png new file mode 100644 index 00000000..0a2ce551 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/bv-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/bv-light.png b/desktop/src/onionshare/resources/images/countries/bv-light.png new file mode 100644 index 00000000..9187693b Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/bv-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/bw-dark.png b/desktop/src/onionshare/resources/images/countries/bw-dark.png new file mode 100644 index 00000000..1e2b96d3 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/bw-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/bw-light.png b/desktop/src/onionshare/resources/images/countries/bw-light.png new file mode 100644 index 00000000..a60fca0b Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/bw-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/by-dark.png b/desktop/src/onionshare/resources/images/countries/by-dark.png new file mode 100644 index 00000000..bf256965 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/by-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/by-light.png b/desktop/src/onionshare/resources/images/countries/by-light.png new file mode 100644 index 00000000..f019b57d Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/by-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/bz-dark.png b/desktop/src/onionshare/resources/images/countries/bz-dark.png new file mode 100644 index 00000000..85bbd042 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/bz-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/bz-light.png b/desktop/src/onionshare/resources/images/countries/bz-light.png new file mode 100644 index 00000000..84f0f26b Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/bz-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/ca-dark.png b/desktop/src/onionshare/resources/images/countries/ca-dark.png new file mode 100644 index 00000000..3089e1de Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/ca-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/ca-light.png b/desktop/src/onionshare/resources/images/countries/ca-light.png new file mode 100644 index 00000000..c8bfbc64 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/ca-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/cc-dark.png b/desktop/src/onionshare/resources/images/countries/cc-dark.png new file mode 100644 index 00000000..5a5976e4 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/cc-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/cc-light.png b/desktop/src/onionshare/resources/images/countries/cc-light.png new file mode 100644 index 00000000..66f6d1ca Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/cc-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/cd-dark.png b/desktop/src/onionshare/resources/images/countries/cd-dark.png new file mode 100644 index 00000000..61553a72 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/cd-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/cd-light.png b/desktop/src/onionshare/resources/images/countries/cd-light.png new file mode 100644 index 00000000..6f2d2a7a Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/cd-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/cf-dark.png b/desktop/src/onionshare/resources/images/countries/cf-dark.png new file mode 100644 index 00000000..0e183dc0 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/cf-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/cf-light.png b/desktop/src/onionshare/resources/images/countries/cf-light.png new file mode 100644 index 00000000..33c22f4e Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/cf-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/cg-dark.png b/desktop/src/onionshare/resources/images/countries/cg-dark.png new file mode 100644 index 00000000..5de265f0 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/cg-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/cg-light.png b/desktop/src/onionshare/resources/images/countries/cg-light.png new file mode 100644 index 00000000..027955b5 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/cg-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/ch-dark.png b/desktop/src/onionshare/resources/images/countries/ch-dark.png new file mode 100644 index 00000000..6fb4656e Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/ch-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/ch-light.png b/desktop/src/onionshare/resources/images/countries/ch-light.png new file mode 100644 index 00000000..485f4285 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/ch-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/ci-dark.png b/desktop/src/onionshare/resources/images/countries/ci-dark.png new file mode 100644 index 00000000..f19cd35c Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/ci-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/ci-light.png b/desktop/src/onionshare/resources/images/countries/ci-light.png new file mode 100644 index 00000000..0c60f50d Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/ci-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/ck-dark.png b/desktop/src/onionshare/resources/images/countries/ck-dark.png new file mode 100644 index 00000000..b2ec6687 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/ck-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/ck-light.png b/desktop/src/onionshare/resources/images/countries/ck-light.png new file mode 100644 index 00000000..d6bed048 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/ck-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/cl-dark.png b/desktop/src/onionshare/resources/images/countries/cl-dark.png new file mode 100644 index 00000000..455955cb Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/cl-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/cl-light.png b/desktop/src/onionshare/resources/images/countries/cl-light.png new file mode 100644 index 00000000..36f0af59 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/cl-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/cm-dark.png b/desktop/src/onionshare/resources/images/countries/cm-dark.png new file mode 100644 index 00000000..97bc7087 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/cm-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/cm-light.png b/desktop/src/onionshare/resources/images/countries/cm-light.png new file mode 100644 index 00000000..c612b21e Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/cm-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/cn-dark.png b/desktop/src/onionshare/resources/images/countries/cn-dark.png new file mode 100644 index 00000000..9e541a42 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/cn-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/cn-light.png b/desktop/src/onionshare/resources/images/countries/cn-light.png new file mode 100644 index 00000000..bb04558e Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/cn-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/co-dark.png b/desktop/src/onionshare/resources/images/countries/co-dark.png new file mode 100644 index 00000000..aae3be9a Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/co-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/co-light.png b/desktop/src/onionshare/resources/images/countries/co-light.png new file mode 100644 index 00000000..4cc1cb72 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/co-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/cr-dark.png b/desktop/src/onionshare/resources/images/countries/cr-dark.png new file mode 100644 index 00000000..cf02f08e Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/cr-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/cr-light.png b/desktop/src/onionshare/resources/images/countries/cr-light.png new file mode 100644 index 00000000..4cc70fda Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/cr-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/cu-dark.png b/desktop/src/onionshare/resources/images/countries/cu-dark.png new file mode 100644 index 00000000..61a1249d Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/cu-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/cu-light.png b/desktop/src/onionshare/resources/images/countries/cu-light.png new file mode 100644 index 00000000..6de7047b Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/cu-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/cv-dark.png b/desktop/src/onionshare/resources/images/countries/cv-dark.png new file mode 100644 index 00000000..580f1087 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/cv-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/cv-light.png b/desktop/src/onionshare/resources/images/countries/cv-light.png new file mode 100644 index 00000000..6258ba6c Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/cv-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/cw-dark.png b/desktop/src/onionshare/resources/images/countries/cw-dark.png new file mode 100644 index 00000000..ea8bec14 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/cw-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/cw-light.png b/desktop/src/onionshare/resources/images/countries/cw-light.png new file mode 100644 index 00000000..06d6f504 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/cw-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/cx-dark.png b/desktop/src/onionshare/resources/images/countries/cx-dark.png new file mode 100644 index 00000000..35aa71ea Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/cx-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/cx-light.png b/desktop/src/onionshare/resources/images/countries/cx-light.png new file mode 100644 index 00000000..49748d4c Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/cx-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/cy-dark.png b/desktop/src/onionshare/resources/images/countries/cy-dark.png new file mode 100644 index 00000000..428cdbd6 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/cy-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/cy-light.png b/desktop/src/onionshare/resources/images/countries/cy-light.png new file mode 100644 index 00000000..1fc5e1a2 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/cy-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/cz-dark.png b/desktop/src/onionshare/resources/images/countries/cz-dark.png new file mode 100644 index 00000000..13af5725 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/cz-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/cz-light.png b/desktop/src/onionshare/resources/images/countries/cz-light.png new file mode 100644 index 00000000..20e83637 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/cz-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/de-dark.png b/desktop/src/onionshare/resources/images/countries/de-dark.png new file mode 100644 index 00000000..ff0806d9 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/de-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/de-light.png b/desktop/src/onionshare/resources/images/countries/de-light.png new file mode 100644 index 00000000..b221b877 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/de-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/dj-dark.png b/desktop/src/onionshare/resources/images/countries/dj-dark.png new file mode 100644 index 00000000..96d7ed42 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/dj-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/dj-light.png b/desktop/src/onionshare/resources/images/countries/dj-light.png new file mode 100644 index 00000000..094cf53f Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/dj-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/dk-dark.png b/desktop/src/onionshare/resources/images/countries/dk-dark.png new file mode 100644 index 00000000..3c329658 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/dk-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/dk-light.png b/desktop/src/onionshare/resources/images/countries/dk-light.png new file mode 100644 index 00000000..1868128f Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/dk-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/dm-dark.png b/desktop/src/onionshare/resources/images/countries/dm-dark.png new file mode 100644 index 00000000..1126c375 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/dm-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/dm-light.png b/desktop/src/onionshare/resources/images/countries/dm-light.png new file mode 100644 index 00000000..6146b808 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/dm-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/do-dark.png b/desktop/src/onionshare/resources/images/countries/do-dark.png new file mode 100644 index 00000000..16d18131 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/do-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/do-light.png b/desktop/src/onionshare/resources/images/countries/do-light.png new file mode 100644 index 00000000..6fd00e63 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/do-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/dz-dark.png b/desktop/src/onionshare/resources/images/countries/dz-dark.png new file mode 100644 index 00000000..4355ba7a Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/dz-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/dz-light.png b/desktop/src/onionshare/resources/images/countries/dz-light.png new file mode 100644 index 00000000..924d9ad9 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/dz-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/ec-dark.png b/desktop/src/onionshare/resources/images/countries/ec-dark.png new file mode 100644 index 00000000..8357905e Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/ec-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/ec-light.png b/desktop/src/onionshare/resources/images/countries/ec-light.png new file mode 100644 index 00000000..ebb18cb4 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/ec-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/ee-dark.png b/desktop/src/onionshare/resources/images/countries/ee-dark.png new file mode 100644 index 00000000..8a542ff7 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/ee-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/ee-light.png b/desktop/src/onionshare/resources/images/countries/ee-light.png new file mode 100644 index 00000000..68b4762c Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/ee-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/eg-dark.png b/desktop/src/onionshare/resources/images/countries/eg-dark.png new file mode 100644 index 00000000..8477f57f Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/eg-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/eg-light.png b/desktop/src/onionshare/resources/images/countries/eg-light.png new file mode 100644 index 00000000..eacd70fb Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/eg-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/eh-dark.png b/desktop/src/onionshare/resources/images/countries/eh-dark.png new file mode 100644 index 00000000..d4bc85b4 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/eh-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/eh-light.png b/desktop/src/onionshare/resources/images/countries/eh-light.png new file mode 100644 index 00000000..e350a48f Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/eh-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/er-dark.png b/desktop/src/onionshare/resources/images/countries/er-dark.png new file mode 100644 index 00000000..27d221c2 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/er-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/er-light.png b/desktop/src/onionshare/resources/images/countries/er-light.png new file mode 100644 index 00000000..9d67fa9c Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/er-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/es-dark.png b/desktop/src/onionshare/resources/images/countries/es-dark.png new file mode 100644 index 00000000..3c310c9b Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/es-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/es-light.png b/desktop/src/onionshare/resources/images/countries/es-light.png new file mode 100644 index 00000000..6ddb830b Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/es-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/et-dark.png b/desktop/src/onionshare/resources/images/countries/et-dark.png new file mode 100644 index 00000000..4ff51ed8 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/et-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/et-light.png b/desktop/src/onionshare/resources/images/countries/et-light.png new file mode 100644 index 00000000..678f7f91 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/et-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/fi-dark.png b/desktop/src/onionshare/resources/images/countries/fi-dark.png new file mode 100644 index 00000000..53fc0ee2 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/fi-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/fi-light.png b/desktop/src/onionshare/resources/images/countries/fi-light.png new file mode 100644 index 00000000..09902ae4 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/fi-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/fj-dark.png b/desktop/src/onionshare/resources/images/countries/fj-dark.png new file mode 100644 index 00000000..400107f1 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/fj-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/fj-light.png b/desktop/src/onionshare/resources/images/countries/fj-light.png new file mode 100644 index 00000000..677785ac Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/fj-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/fk-dark.png b/desktop/src/onionshare/resources/images/countries/fk-dark.png new file mode 100644 index 00000000..40728711 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/fk-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/fk-light.png b/desktop/src/onionshare/resources/images/countries/fk-light.png new file mode 100644 index 00000000..6bcc59d2 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/fk-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/fo-dark.png b/desktop/src/onionshare/resources/images/countries/fo-dark.png new file mode 100644 index 00000000..7e19baa2 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/fo-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/fo-light.png b/desktop/src/onionshare/resources/images/countries/fo-light.png new file mode 100644 index 00000000..8ccb7419 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/fo-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/fr-dark.png b/desktop/src/onionshare/resources/images/countries/fr-dark.png new file mode 100644 index 00000000..90260f3b Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/fr-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/fr-light.png b/desktop/src/onionshare/resources/images/countries/fr-light.png new file mode 100644 index 00000000..449ddadb Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/fr-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/ga-dark.png b/desktop/src/onionshare/resources/images/countries/ga-dark.png new file mode 100644 index 00000000..30e6e3c9 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/ga-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/ga-light.png b/desktop/src/onionshare/resources/images/countries/ga-light.png new file mode 100644 index 00000000..be9bd225 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/ga-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/gb-dark.png b/desktop/src/onionshare/resources/images/countries/gb-dark.png new file mode 100644 index 00000000..f4a23714 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/gb-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/gb-light.png b/desktop/src/onionshare/resources/images/countries/gb-light.png new file mode 100644 index 00000000..da1cbaab Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/gb-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/gd-dark.png b/desktop/src/onionshare/resources/images/countries/gd-dark.png new file mode 100644 index 00000000..0cf341cb Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/gd-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/gd-light.png b/desktop/src/onionshare/resources/images/countries/gd-light.png new file mode 100644 index 00000000..6490239a Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/gd-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/ge-dark.png b/desktop/src/onionshare/resources/images/countries/ge-dark.png new file mode 100644 index 00000000..a56cc972 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/ge-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/ge-light.png b/desktop/src/onionshare/resources/images/countries/ge-light.png new file mode 100644 index 00000000..eae30444 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/ge-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/gf-dark.png b/desktop/src/onionshare/resources/images/countries/gf-dark.png new file mode 100644 index 00000000..64978b06 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/gf-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/gf-light.png b/desktop/src/onionshare/resources/images/countries/gf-light.png new file mode 100644 index 00000000..11bab78e Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/gf-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/gg-dark.png b/desktop/src/onionshare/resources/images/countries/gg-dark.png new file mode 100644 index 00000000..3a9cea91 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/gg-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/gg-light.png b/desktop/src/onionshare/resources/images/countries/gg-light.png new file mode 100644 index 00000000..99d81f00 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/gg-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/gh-dark.png b/desktop/src/onionshare/resources/images/countries/gh-dark.png new file mode 100644 index 00000000..8af1d333 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/gh-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/gh-light.png b/desktop/src/onionshare/resources/images/countries/gh-light.png new file mode 100644 index 00000000..097a68a9 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/gh-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/gi-dark.png b/desktop/src/onionshare/resources/images/countries/gi-dark.png new file mode 100644 index 00000000..97ae42d0 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/gi-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/gi-light.png b/desktop/src/onionshare/resources/images/countries/gi-light.png new file mode 100644 index 00000000..7d38fe52 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/gi-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/gl-dark.png b/desktop/src/onionshare/resources/images/countries/gl-dark.png new file mode 100644 index 00000000..0fb8cee7 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/gl-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/gl-light.png b/desktop/src/onionshare/resources/images/countries/gl-light.png new file mode 100644 index 00000000..cae17882 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/gl-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/gm-dark.png b/desktop/src/onionshare/resources/images/countries/gm-dark.png new file mode 100644 index 00000000..d04ef441 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/gm-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/gm-light.png b/desktop/src/onionshare/resources/images/countries/gm-light.png new file mode 100644 index 00000000..dc6a0c71 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/gm-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/gn-dark.png b/desktop/src/onionshare/resources/images/countries/gn-dark.png new file mode 100644 index 00000000..36a53e07 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/gn-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/gn-light.png b/desktop/src/onionshare/resources/images/countries/gn-light.png new file mode 100644 index 00000000..3b6be3b1 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/gn-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/gp-dark.png b/desktop/src/onionshare/resources/images/countries/gp-dark.png new file mode 100644 index 00000000..ed93d115 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/gp-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/gp-light.png b/desktop/src/onionshare/resources/images/countries/gp-light.png new file mode 100644 index 00000000..0e29dbed Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/gp-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/gq-dark.png b/desktop/src/onionshare/resources/images/countries/gq-dark.png new file mode 100644 index 00000000..c8cd9b1b Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/gq-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/gq-light.png b/desktop/src/onionshare/resources/images/countries/gq-light.png new file mode 100644 index 00000000..255577b3 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/gq-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/gr-dark.png b/desktop/src/onionshare/resources/images/countries/gr-dark.png new file mode 100644 index 00000000..92067e34 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/gr-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/gr-light.png b/desktop/src/onionshare/resources/images/countries/gr-light.png new file mode 100644 index 00000000..2cb5f157 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/gr-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/gs-dark.png b/desktop/src/onionshare/resources/images/countries/gs-dark.png new file mode 100644 index 00000000..9c0f824b Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/gs-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/gs-light.png b/desktop/src/onionshare/resources/images/countries/gs-light.png new file mode 100644 index 00000000..0c14a9d8 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/gs-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/gt-dark.png b/desktop/src/onionshare/resources/images/countries/gt-dark.png new file mode 100644 index 00000000..a24ac3c2 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/gt-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/gt-light.png b/desktop/src/onionshare/resources/images/countries/gt-light.png new file mode 100644 index 00000000..b905ef77 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/gt-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/gu-dark.png b/desktop/src/onionshare/resources/images/countries/gu-dark.png new file mode 100644 index 00000000..066e1c55 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/gu-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/gu-light.png b/desktop/src/onionshare/resources/images/countries/gu-light.png new file mode 100644 index 00000000..f1d43774 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/gu-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/gw-dark.png b/desktop/src/onionshare/resources/images/countries/gw-dark.png new file mode 100644 index 00000000..5be26359 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/gw-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/gw-light.png b/desktop/src/onionshare/resources/images/countries/gw-light.png new file mode 100644 index 00000000..a14a0eed Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/gw-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/gy-dark.png b/desktop/src/onionshare/resources/images/countries/gy-dark.png new file mode 100644 index 00000000..dd5fa2d4 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/gy-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/gy-light.png b/desktop/src/onionshare/resources/images/countries/gy-light.png new file mode 100644 index 00000000..ecaa69e8 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/gy-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/hk-dark.png b/desktop/src/onionshare/resources/images/countries/hk-dark.png new file mode 100644 index 00000000..c3cd167a Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/hk-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/hk-light.png b/desktop/src/onionshare/resources/images/countries/hk-light.png new file mode 100644 index 00000000..49d9306a Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/hk-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/hm-dark.png b/desktop/src/onionshare/resources/images/countries/hm-dark.png new file mode 100644 index 00000000..bff66284 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/hm-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/hm-light.png b/desktop/src/onionshare/resources/images/countries/hm-light.png new file mode 100644 index 00000000..7bcae099 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/hm-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/hn-dark.png b/desktop/src/onionshare/resources/images/countries/hn-dark.png new file mode 100644 index 00000000..81d66fab Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/hn-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/hn-light.png b/desktop/src/onionshare/resources/images/countries/hn-light.png new file mode 100644 index 00000000..f13da74d Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/hn-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/hr-dark.png b/desktop/src/onionshare/resources/images/countries/hr-dark.png new file mode 100644 index 00000000..09f742be Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/hr-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/hr-light.png b/desktop/src/onionshare/resources/images/countries/hr-light.png new file mode 100644 index 00000000..4e0da927 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/hr-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/ht-dark.png b/desktop/src/onionshare/resources/images/countries/ht-dark.png new file mode 100644 index 00000000..62b15611 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/ht-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/ht-light.png b/desktop/src/onionshare/resources/images/countries/ht-light.png new file mode 100644 index 00000000..c5e39018 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/ht-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/hu-dark.png b/desktop/src/onionshare/resources/images/countries/hu-dark.png new file mode 100644 index 00000000..483ff639 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/hu-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/hu-light.png b/desktop/src/onionshare/resources/images/countries/hu-light.png new file mode 100644 index 00000000..7ea87389 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/hu-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/id-dark.png b/desktop/src/onionshare/resources/images/countries/id-dark.png new file mode 100644 index 00000000..6f4d927b Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/id-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/id-light.png b/desktop/src/onionshare/resources/images/countries/id-light.png new file mode 100644 index 00000000..19c6a539 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/id-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/ie-dark.png b/desktop/src/onionshare/resources/images/countries/ie-dark.png new file mode 100644 index 00000000..8323569d Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/ie-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/ie-light.png b/desktop/src/onionshare/resources/images/countries/ie-light.png new file mode 100644 index 00000000..02f0c6a6 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/ie-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/il-dark.png b/desktop/src/onionshare/resources/images/countries/il-dark.png new file mode 100644 index 00000000..859b1a88 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/il-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/il-light.png b/desktop/src/onionshare/resources/images/countries/il-light.png new file mode 100644 index 00000000..3ca27bf5 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/il-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/im-dark.png b/desktop/src/onionshare/resources/images/countries/im-dark.png new file mode 100644 index 00000000..0eae3143 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/im-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/im-light.png b/desktop/src/onionshare/resources/images/countries/im-light.png new file mode 100644 index 00000000..35d5b773 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/im-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/in-dark.png b/desktop/src/onionshare/resources/images/countries/in-dark.png new file mode 100644 index 00000000..41e96c86 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/in-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/in-light.png b/desktop/src/onionshare/resources/images/countries/in-light.png new file mode 100644 index 00000000..8fd2ebd7 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/in-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/io-dark.png b/desktop/src/onionshare/resources/images/countries/io-dark.png new file mode 100644 index 00000000..ebf9a094 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/io-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/io-light.png b/desktop/src/onionshare/resources/images/countries/io-light.png new file mode 100644 index 00000000..a9d49813 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/io-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/iq-dark.png b/desktop/src/onionshare/resources/images/countries/iq-dark.png new file mode 100644 index 00000000..c6e8e563 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/iq-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/iq-light.png b/desktop/src/onionshare/resources/images/countries/iq-light.png new file mode 100644 index 00000000..34348112 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/iq-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/ir-dark.png b/desktop/src/onionshare/resources/images/countries/ir-dark.png new file mode 100644 index 00000000..4f23e34a Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/ir-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/ir-light.png b/desktop/src/onionshare/resources/images/countries/ir-light.png new file mode 100644 index 00000000..238cdf33 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/ir-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/is-dark.png b/desktop/src/onionshare/resources/images/countries/is-dark.png new file mode 100644 index 00000000..33a82b82 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/is-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/is-light.png b/desktop/src/onionshare/resources/images/countries/is-light.png new file mode 100644 index 00000000..09f3d272 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/is-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/it-dark.png b/desktop/src/onionshare/resources/images/countries/it-dark.png new file mode 100644 index 00000000..5d5f318c Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/it-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/it-light.png b/desktop/src/onionshare/resources/images/countries/it-light.png new file mode 100644 index 00000000..ec146b52 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/it-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/jm-dark.png b/desktop/src/onionshare/resources/images/countries/jm-dark.png new file mode 100644 index 00000000..4ea7c7fa Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/jm-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/jm-light.png b/desktop/src/onionshare/resources/images/countries/jm-light.png new file mode 100644 index 00000000..30ecb409 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/jm-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/jo-dark.png b/desktop/src/onionshare/resources/images/countries/jo-dark.png new file mode 100644 index 00000000..ba2b8a21 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/jo-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/jo-light.png b/desktop/src/onionshare/resources/images/countries/jo-light.png new file mode 100644 index 00000000..d01fb7b2 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/jo-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/jp-dark.png b/desktop/src/onionshare/resources/images/countries/jp-dark.png new file mode 100644 index 00000000..3b18aec1 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/jp-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/jp-light.png b/desktop/src/onionshare/resources/images/countries/jp-light.png new file mode 100644 index 00000000..80627602 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/jp-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/ke-dark.png b/desktop/src/onionshare/resources/images/countries/ke-dark.png new file mode 100644 index 00000000..f2001a7a Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/ke-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/ke-light.png b/desktop/src/onionshare/resources/images/countries/ke-light.png new file mode 100644 index 00000000..18e391d2 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/ke-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/kg-dark.png b/desktop/src/onionshare/resources/images/countries/kg-dark.png new file mode 100644 index 00000000..581d4197 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/kg-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/kg-light.png b/desktop/src/onionshare/resources/images/countries/kg-light.png new file mode 100644 index 00000000..0a014f9f Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/kg-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/kh-dark.png b/desktop/src/onionshare/resources/images/countries/kh-dark.png new file mode 100644 index 00000000..036c4c7b Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/kh-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/kh-light.png b/desktop/src/onionshare/resources/images/countries/kh-light.png new file mode 100644 index 00000000..f8ed587d Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/kh-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/ki-dark.png b/desktop/src/onionshare/resources/images/countries/ki-dark.png new file mode 100644 index 00000000..14faa17a Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/ki-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/ki-light.png b/desktop/src/onionshare/resources/images/countries/ki-light.png new file mode 100644 index 00000000..c5a54a32 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/ki-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/km-dark.png b/desktop/src/onionshare/resources/images/countries/km-dark.png new file mode 100644 index 00000000..cde33562 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/km-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/km-light.png b/desktop/src/onionshare/resources/images/countries/km-light.png new file mode 100644 index 00000000..c99b9991 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/km-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/kn-dark.png b/desktop/src/onionshare/resources/images/countries/kn-dark.png new file mode 100644 index 00000000..5d46d85e Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/kn-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/kn-light.png b/desktop/src/onionshare/resources/images/countries/kn-light.png new file mode 100644 index 00000000..57da7e5c Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/kn-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/kp-dark.png b/desktop/src/onionshare/resources/images/countries/kp-dark.png new file mode 100644 index 00000000..0d3bd08d Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/kp-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/kp-light.png b/desktop/src/onionshare/resources/images/countries/kp-light.png new file mode 100644 index 00000000..ea61e18d Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/kp-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/kr-dark.png b/desktop/src/onionshare/resources/images/countries/kr-dark.png new file mode 100644 index 00000000..2334eb4f Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/kr-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/kr-light.png b/desktop/src/onionshare/resources/images/countries/kr-light.png new file mode 100644 index 00000000..7247201d Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/kr-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/kw-dark.png b/desktop/src/onionshare/resources/images/countries/kw-dark.png new file mode 100644 index 00000000..0d9c2fab Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/kw-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/kw-light.png b/desktop/src/onionshare/resources/images/countries/kw-light.png new file mode 100644 index 00000000..a58a3f54 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/kw-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/ky-dark.png b/desktop/src/onionshare/resources/images/countries/ky-dark.png new file mode 100644 index 00000000..375cafc2 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/ky-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/ky-light.png b/desktop/src/onionshare/resources/images/countries/ky-light.png new file mode 100644 index 00000000..8752a2fe Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/ky-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/kz-dark.png b/desktop/src/onionshare/resources/images/countries/kz-dark.png new file mode 100644 index 00000000..2c0c0af9 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/kz-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/kz-light.png b/desktop/src/onionshare/resources/images/countries/kz-light.png new file mode 100644 index 00000000..4e7da718 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/kz-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/la-dark.png b/desktop/src/onionshare/resources/images/countries/la-dark.png new file mode 100644 index 00000000..74ed419a Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/la-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/la-light.png b/desktop/src/onionshare/resources/images/countries/la-light.png new file mode 100644 index 00000000..d91ed5fb Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/la-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/lb-dark.png b/desktop/src/onionshare/resources/images/countries/lb-dark.png new file mode 100644 index 00000000..84888362 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/lb-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/lb-light.png b/desktop/src/onionshare/resources/images/countries/lb-light.png new file mode 100644 index 00000000..f052443f Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/lb-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/lc-dark.png b/desktop/src/onionshare/resources/images/countries/lc-dark.png new file mode 100644 index 00000000..6079d9b9 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/lc-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/lc-light.png b/desktop/src/onionshare/resources/images/countries/lc-light.png new file mode 100644 index 00000000..00650c9c Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/lc-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/li-dark.png b/desktop/src/onionshare/resources/images/countries/li-dark.png new file mode 100644 index 00000000..d63d9213 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/li-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/li-light.png b/desktop/src/onionshare/resources/images/countries/li-light.png new file mode 100644 index 00000000..0de27598 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/li-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/lk-dark.png b/desktop/src/onionshare/resources/images/countries/lk-dark.png new file mode 100644 index 00000000..9a785176 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/lk-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/lk-light.png b/desktop/src/onionshare/resources/images/countries/lk-light.png new file mode 100644 index 00000000..8fda48fa Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/lk-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/lr-dark.png b/desktop/src/onionshare/resources/images/countries/lr-dark.png new file mode 100644 index 00000000..69394239 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/lr-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/lr-light.png b/desktop/src/onionshare/resources/images/countries/lr-light.png new file mode 100644 index 00000000..cdc5c3df Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/lr-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/ls-dark.png b/desktop/src/onionshare/resources/images/countries/ls-dark.png new file mode 100644 index 00000000..0b9993b3 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/ls-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/ls-light.png b/desktop/src/onionshare/resources/images/countries/ls-light.png new file mode 100644 index 00000000..02f530a5 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/ls-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/lt-dark.png b/desktop/src/onionshare/resources/images/countries/lt-dark.png new file mode 100644 index 00000000..c72f3701 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/lt-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/lt-light.png b/desktop/src/onionshare/resources/images/countries/lt-light.png new file mode 100644 index 00000000..dd282e49 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/lt-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/lu-dark.png b/desktop/src/onionshare/resources/images/countries/lu-dark.png new file mode 100644 index 00000000..b4eeb4f1 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/lu-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/lu-light.png b/desktop/src/onionshare/resources/images/countries/lu-light.png new file mode 100644 index 00000000..c1af757f Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/lu-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/lv-dark.png b/desktop/src/onionshare/resources/images/countries/lv-dark.png new file mode 100644 index 00000000..db8b7477 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/lv-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/lv-light.png b/desktop/src/onionshare/resources/images/countries/lv-light.png new file mode 100644 index 00000000..aea5f83f Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/lv-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/ly-dark.png b/desktop/src/onionshare/resources/images/countries/ly-dark.png new file mode 100644 index 00000000..3ce0a0e7 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/ly-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/ly-light.png b/desktop/src/onionshare/resources/images/countries/ly-light.png new file mode 100644 index 00000000..cf9066ec Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/ly-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/ma-dark.png b/desktop/src/onionshare/resources/images/countries/ma-dark.png new file mode 100644 index 00000000..100235fe Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/ma-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/ma-light.png b/desktop/src/onionshare/resources/images/countries/ma-light.png new file mode 100644 index 00000000..23bd40ca Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/ma-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/mc-dark.png b/desktop/src/onionshare/resources/images/countries/mc-dark.png new file mode 100644 index 00000000..57b85aea Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/mc-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/mc-light.png b/desktop/src/onionshare/resources/images/countries/mc-light.png new file mode 100644 index 00000000..0adbc23a Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/mc-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/md-dark.png b/desktop/src/onionshare/resources/images/countries/md-dark.png new file mode 100644 index 00000000..9f5fe417 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/md-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/md-light.png b/desktop/src/onionshare/resources/images/countries/md-light.png new file mode 100644 index 00000000..4e6f0d1a Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/md-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/me-dark.png b/desktop/src/onionshare/resources/images/countries/me-dark.png new file mode 100644 index 00000000..e2dc2a51 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/me-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/me-light.png b/desktop/src/onionshare/resources/images/countries/me-light.png new file mode 100644 index 00000000..744dcc6e Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/me-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/mf-dark.png b/desktop/src/onionshare/resources/images/countries/mf-dark.png new file mode 100644 index 00000000..04107c0b Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/mf-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/mf-light.png b/desktop/src/onionshare/resources/images/countries/mf-light.png new file mode 100644 index 00000000..4f71161b Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/mf-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/mg-dark.png b/desktop/src/onionshare/resources/images/countries/mg-dark.png new file mode 100644 index 00000000..810f974c Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/mg-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/mg-light.png b/desktop/src/onionshare/resources/images/countries/mg-light.png new file mode 100644 index 00000000..6897118a Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/mg-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/mk-dark.png b/desktop/src/onionshare/resources/images/countries/mk-dark.png new file mode 100644 index 00000000..a67fa5aa Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/mk-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/mk-light.png b/desktop/src/onionshare/resources/images/countries/mk-light.png new file mode 100644 index 00000000..5a55446d Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/mk-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/ml-dark.png b/desktop/src/onionshare/resources/images/countries/ml-dark.png new file mode 100644 index 00000000..b7cc0063 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/ml-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/ml-light.png b/desktop/src/onionshare/resources/images/countries/ml-light.png new file mode 100644 index 00000000..4a008a55 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/ml-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/mm-dark.png b/desktop/src/onionshare/resources/images/countries/mm-dark.png new file mode 100644 index 00000000..2292b164 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/mm-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/mm-light.png b/desktop/src/onionshare/resources/images/countries/mm-light.png new file mode 100644 index 00000000..0d3a422b Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/mm-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/mn-dark.png b/desktop/src/onionshare/resources/images/countries/mn-dark.png new file mode 100644 index 00000000..a2fb0f0d Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/mn-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/mn-light.png b/desktop/src/onionshare/resources/images/countries/mn-light.png new file mode 100644 index 00000000..9ecd6a98 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/mn-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/mo-dark.png b/desktop/src/onionshare/resources/images/countries/mo-dark.png new file mode 100644 index 00000000..d4a22013 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/mo-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/mo-light.png b/desktop/src/onionshare/resources/images/countries/mo-light.png new file mode 100644 index 00000000..bdf93349 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/mo-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/mq-dark.png b/desktop/src/onionshare/resources/images/countries/mq-dark.png new file mode 100644 index 00000000..7d0e2770 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/mq-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/mq-light.png b/desktop/src/onionshare/resources/images/countries/mq-light.png new file mode 100644 index 00000000..f31dd911 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/mq-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/mr-dark.png b/desktop/src/onionshare/resources/images/countries/mr-dark.png new file mode 100644 index 00000000..a85a93a1 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/mr-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/mr-light.png b/desktop/src/onionshare/resources/images/countries/mr-light.png new file mode 100644 index 00000000..4eb61bdc Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/mr-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/ms-dark.png b/desktop/src/onionshare/resources/images/countries/ms-dark.png new file mode 100644 index 00000000..bdd35561 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/ms-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/ms-light.png b/desktop/src/onionshare/resources/images/countries/ms-light.png new file mode 100644 index 00000000..113b6314 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/ms-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/mt-dark.png b/desktop/src/onionshare/resources/images/countries/mt-dark.png new file mode 100644 index 00000000..5bea88e3 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/mt-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/mt-light.png b/desktop/src/onionshare/resources/images/countries/mt-light.png new file mode 100644 index 00000000..7095a046 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/mt-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/mu-dark.png b/desktop/src/onionshare/resources/images/countries/mu-dark.png new file mode 100644 index 00000000..2037d764 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/mu-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/mu-light.png b/desktop/src/onionshare/resources/images/countries/mu-light.png new file mode 100644 index 00000000..24a5b81f Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/mu-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/mv-dark.png b/desktop/src/onionshare/resources/images/countries/mv-dark.png new file mode 100644 index 00000000..cb991c41 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/mv-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/mv-light.png b/desktop/src/onionshare/resources/images/countries/mv-light.png new file mode 100644 index 00000000..7e7762f3 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/mv-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/mw-dark.png b/desktop/src/onionshare/resources/images/countries/mw-dark.png new file mode 100644 index 00000000..0b3c64c1 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/mw-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/mw-light.png b/desktop/src/onionshare/resources/images/countries/mw-light.png new file mode 100644 index 00000000..a674bc0c Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/mw-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/mx-dark.png b/desktop/src/onionshare/resources/images/countries/mx-dark.png new file mode 100644 index 00000000..ed1b54eb Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/mx-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/mx-light.png b/desktop/src/onionshare/resources/images/countries/mx-light.png new file mode 100644 index 00000000..8d02c7bd Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/mx-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/my-dark.png b/desktop/src/onionshare/resources/images/countries/my-dark.png new file mode 100644 index 00000000..c3411b7e Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/my-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/my-light.png b/desktop/src/onionshare/resources/images/countries/my-light.png new file mode 100644 index 00000000..f2853e01 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/my-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/mz-dark.png b/desktop/src/onionshare/resources/images/countries/mz-dark.png new file mode 100644 index 00000000..e17b813b Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/mz-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/mz-light.png b/desktop/src/onionshare/resources/images/countries/mz-light.png new file mode 100644 index 00000000..247498e3 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/mz-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/na-dark.png b/desktop/src/onionshare/resources/images/countries/na-dark.png new file mode 100644 index 00000000..3383eb2a Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/na-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/na-light.png b/desktop/src/onionshare/resources/images/countries/na-light.png new file mode 100644 index 00000000..e2bc72e5 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/na-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/nc-dark.png b/desktop/src/onionshare/resources/images/countries/nc-dark.png new file mode 100644 index 00000000..de774c04 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/nc-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/nc-light.png b/desktop/src/onionshare/resources/images/countries/nc-light.png new file mode 100644 index 00000000..7401c600 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/nc-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/ne-dark.png b/desktop/src/onionshare/resources/images/countries/ne-dark.png new file mode 100644 index 00000000..0dc47e4c Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/ne-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/ne-light.png b/desktop/src/onionshare/resources/images/countries/ne-light.png new file mode 100644 index 00000000..c1f7a3e2 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/ne-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/nf-dark.png b/desktop/src/onionshare/resources/images/countries/nf-dark.png new file mode 100644 index 00000000..5457a965 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/nf-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/nf-light.png b/desktop/src/onionshare/resources/images/countries/nf-light.png new file mode 100644 index 00000000..4002d083 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/nf-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/ng-dark.png b/desktop/src/onionshare/resources/images/countries/ng-dark.png new file mode 100644 index 00000000..2d4d41f7 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/ng-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/ng-light.png b/desktop/src/onionshare/resources/images/countries/ng-light.png new file mode 100644 index 00000000..c1449d02 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/ng-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/ni-dark.png b/desktop/src/onionshare/resources/images/countries/ni-dark.png new file mode 100644 index 00000000..e390f4e4 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/ni-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/ni-light.png b/desktop/src/onionshare/resources/images/countries/ni-light.png new file mode 100644 index 00000000..5b9dff7e Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/ni-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/nl-dark.png b/desktop/src/onionshare/resources/images/countries/nl-dark.png new file mode 100644 index 00000000..90b4a7c5 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/nl-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/nl-light.png b/desktop/src/onionshare/resources/images/countries/nl-light.png new file mode 100644 index 00000000..e2703d5d Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/nl-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/no-dark.png b/desktop/src/onionshare/resources/images/countries/no-dark.png new file mode 100644 index 00000000..b4eff187 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/no-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/no-light.png b/desktop/src/onionshare/resources/images/countries/no-light.png new file mode 100644 index 00000000..cae317b6 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/no-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/np-dark.png b/desktop/src/onionshare/resources/images/countries/np-dark.png new file mode 100644 index 00000000..edb4adea Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/np-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/np-light.png b/desktop/src/onionshare/resources/images/countries/np-light.png new file mode 100644 index 00000000..2800e224 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/np-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/nr-dark.png b/desktop/src/onionshare/resources/images/countries/nr-dark.png new file mode 100644 index 00000000..3f7ed8e7 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/nr-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/nr-light.png b/desktop/src/onionshare/resources/images/countries/nr-light.png new file mode 100644 index 00000000..988bfb2a Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/nr-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/nu-dark.png b/desktop/src/onionshare/resources/images/countries/nu-dark.png new file mode 100644 index 00000000..a0db8a56 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/nu-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/nu-light.png b/desktop/src/onionshare/resources/images/countries/nu-light.png new file mode 100644 index 00000000..877cdb38 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/nu-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/nz-dark.png b/desktop/src/onionshare/resources/images/countries/nz-dark.png new file mode 100644 index 00000000..4fb804b5 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/nz-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/nz-light.png b/desktop/src/onionshare/resources/images/countries/nz-light.png new file mode 100644 index 00000000..b795cf5f Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/nz-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/om-dark.png b/desktop/src/onionshare/resources/images/countries/om-dark.png new file mode 100644 index 00000000..cf8a36b4 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/om-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/om-light.png b/desktop/src/onionshare/resources/images/countries/om-light.png new file mode 100644 index 00000000..94618f9c Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/om-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/pa-dark.png b/desktop/src/onionshare/resources/images/countries/pa-dark.png new file mode 100644 index 00000000..2aa3064b Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/pa-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/pa-light.png b/desktop/src/onionshare/resources/images/countries/pa-light.png new file mode 100644 index 00000000..abb59323 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/pa-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/pe-dark.png b/desktop/src/onionshare/resources/images/countries/pe-dark.png new file mode 100644 index 00000000..62228343 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/pe-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/pe-light.png b/desktop/src/onionshare/resources/images/countries/pe-light.png new file mode 100644 index 00000000..bc9279d3 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/pe-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/pf-dark.png b/desktop/src/onionshare/resources/images/countries/pf-dark.png new file mode 100644 index 00000000..6686cf78 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/pf-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/pf-light.png b/desktop/src/onionshare/resources/images/countries/pf-light.png new file mode 100644 index 00000000..03c7b722 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/pf-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/pg-dark.png b/desktop/src/onionshare/resources/images/countries/pg-dark.png new file mode 100644 index 00000000..b699228d Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/pg-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/pg-light.png b/desktop/src/onionshare/resources/images/countries/pg-light.png new file mode 100644 index 00000000..5b2652a0 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/pg-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/ph-dark.png b/desktop/src/onionshare/resources/images/countries/ph-dark.png new file mode 100644 index 00000000..4fffd39c Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/ph-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/ph-light.png b/desktop/src/onionshare/resources/images/countries/ph-light.png new file mode 100644 index 00000000..eeb875a2 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/ph-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/pk-dark.png b/desktop/src/onionshare/resources/images/countries/pk-dark.png new file mode 100644 index 00000000..5a2fe1b8 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/pk-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/pk-light.png b/desktop/src/onionshare/resources/images/countries/pk-light.png new file mode 100644 index 00000000..1910be82 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/pk-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/pl-dark.png b/desktop/src/onionshare/resources/images/countries/pl-dark.png new file mode 100644 index 00000000..f8b9db1c Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/pl-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/pl-light.png b/desktop/src/onionshare/resources/images/countries/pl-light.png new file mode 100644 index 00000000..c024ac65 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/pl-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/pm-dark.png b/desktop/src/onionshare/resources/images/countries/pm-dark.png new file mode 100644 index 00000000..d56184fa Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/pm-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/pm-light.png b/desktop/src/onionshare/resources/images/countries/pm-light.png new file mode 100644 index 00000000..160af41e Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/pm-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/pn-dark.png b/desktop/src/onionshare/resources/images/countries/pn-dark.png new file mode 100644 index 00000000..1a6aa6b0 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/pn-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/pn-light.png b/desktop/src/onionshare/resources/images/countries/pn-light.png new file mode 100644 index 00000000..ed76d6cf Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/pn-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/pr-dark.png b/desktop/src/onionshare/resources/images/countries/pr-dark.png new file mode 100644 index 00000000..a6b9fa5e Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/pr-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/pr-light.png b/desktop/src/onionshare/resources/images/countries/pr-light.png new file mode 100644 index 00000000..6c8f6441 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/pr-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/pt-dark.png b/desktop/src/onionshare/resources/images/countries/pt-dark.png new file mode 100644 index 00000000..e70fda04 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/pt-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/pt-light.png b/desktop/src/onionshare/resources/images/countries/pt-light.png new file mode 100644 index 00000000..d538c414 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/pt-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/pw-dark.png b/desktop/src/onionshare/resources/images/countries/pw-dark.png new file mode 100644 index 00000000..232d1ad9 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/pw-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/pw-light.png b/desktop/src/onionshare/resources/images/countries/pw-light.png new file mode 100644 index 00000000..e08a7d8a Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/pw-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/py-dark.png b/desktop/src/onionshare/resources/images/countries/py-dark.png new file mode 100644 index 00000000..23116fe0 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/py-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/py-light.png b/desktop/src/onionshare/resources/images/countries/py-light.png new file mode 100644 index 00000000..9695bfc3 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/py-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/qa-dark.png b/desktop/src/onionshare/resources/images/countries/qa-dark.png new file mode 100644 index 00000000..06d4bda4 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/qa-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/qa-light.png b/desktop/src/onionshare/resources/images/countries/qa-light.png new file mode 100644 index 00000000..6884cd7c Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/qa-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/re-dark.png b/desktop/src/onionshare/resources/images/countries/re-dark.png new file mode 100644 index 00000000..a2334f7a Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/re-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/re-light.png b/desktop/src/onionshare/resources/images/countries/re-light.png new file mode 100644 index 00000000..f9e83b54 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/re-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/ro-dark.png b/desktop/src/onionshare/resources/images/countries/ro-dark.png new file mode 100644 index 00000000..bbbe6acc Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/ro-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/ro-light.png b/desktop/src/onionshare/resources/images/countries/ro-light.png new file mode 100644 index 00000000..4a691bd7 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/ro-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/rs-dark.png b/desktop/src/onionshare/resources/images/countries/rs-dark.png new file mode 100644 index 00000000..985e15a2 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/rs-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/rs-light.png b/desktop/src/onionshare/resources/images/countries/rs-light.png new file mode 100644 index 00000000..206e07db Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/rs-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/ru-dark.png b/desktop/src/onionshare/resources/images/countries/ru-dark.png new file mode 100644 index 00000000..69a8874d Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/ru-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/ru-light.png b/desktop/src/onionshare/resources/images/countries/ru-light.png new file mode 100644 index 00000000..325435a9 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/ru-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/rw-dark.png b/desktop/src/onionshare/resources/images/countries/rw-dark.png new file mode 100644 index 00000000..e44fd698 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/rw-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/rw-light.png b/desktop/src/onionshare/resources/images/countries/rw-light.png new file mode 100644 index 00000000..ea6b7c7a Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/rw-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/sa-dark.png b/desktop/src/onionshare/resources/images/countries/sa-dark.png new file mode 100644 index 00000000..e44fd698 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/sa-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/sa-light.png b/desktop/src/onionshare/resources/images/countries/sa-light.png new file mode 100644 index 00000000..ea6b7c7a Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/sa-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/sb-dark.png b/desktop/src/onionshare/resources/images/countries/sb-dark.png new file mode 100644 index 00000000..261a4095 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/sb-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/sb-light.png b/desktop/src/onionshare/resources/images/countries/sb-light.png new file mode 100644 index 00000000..0a73afdf Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/sb-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/sc-dark.png b/desktop/src/onionshare/resources/images/countries/sc-dark.png new file mode 100644 index 00000000..74c28631 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/sc-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/sc-light.png b/desktop/src/onionshare/resources/images/countries/sc-light.png new file mode 100644 index 00000000..18ed8659 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/sc-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/sd-dark.png b/desktop/src/onionshare/resources/images/countries/sd-dark.png new file mode 100644 index 00000000..52dbef8b Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/sd-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/sd-light.png b/desktop/src/onionshare/resources/images/countries/sd-light.png new file mode 100644 index 00000000..0bb7e29a Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/sd-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/se-dark.png b/desktop/src/onionshare/resources/images/countries/se-dark.png new file mode 100644 index 00000000..6032507b Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/se-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/se-light.png b/desktop/src/onionshare/resources/images/countries/se-light.png new file mode 100644 index 00000000..5862f831 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/se-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/sg-dark.png b/desktop/src/onionshare/resources/images/countries/sg-dark.png new file mode 100644 index 00000000..ff3c057c Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/sg-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/sg-light.png b/desktop/src/onionshare/resources/images/countries/sg-light.png new file mode 100644 index 00000000..c5916354 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/sg-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/sh-dark.png b/desktop/src/onionshare/resources/images/countries/sh-dark.png new file mode 100644 index 00000000..87f15ddc Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/sh-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/sh-light.png b/desktop/src/onionshare/resources/images/countries/sh-light.png new file mode 100644 index 00000000..7e3b7a25 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/sh-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/si-dark.png b/desktop/src/onionshare/resources/images/countries/si-dark.png new file mode 100644 index 00000000..eb3e6130 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/si-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/si-light.png b/desktop/src/onionshare/resources/images/countries/si-light.png new file mode 100644 index 00000000..a51a869b Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/si-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/sj-dark.png b/desktop/src/onionshare/resources/images/countries/sj-dark.png new file mode 100644 index 00000000..c88dc399 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/sj-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/sj-light.png b/desktop/src/onionshare/resources/images/countries/sj-light.png new file mode 100644 index 00000000..aebce38e Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/sj-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/sk-dark.png b/desktop/src/onionshare/resources/images/countries/sk-dark.png new file mode 100644 index 00000000..2ad12e8a Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/sk-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/sk-light.png b/desktop/src/onionshare/resources/images/countries/sk-light.png new file mode 100644 index 00000000..81ed0270 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/sk-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/sl-dark.png b/desktop/src/onionshare/resources/images/countries/sl-dark.png new file mode 100644 index 00000000..0c7db0e5 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/sl-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/sl-light.png b/desktop/src/onionshare/resources/images/countries/sl-light.png new file mode 100644 index 00000000..c01afd7d Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/sl-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/sm-dark.png b/desktop/src/onionshare/resources/images/countries/sm-dark.png new file mode 100644 index 00000000..c0804a31 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/sm-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/sm-light.png b/desktop/src/onionshare/resources/images/countries/sm-light.png new file mode 100644 index 00000000..c4cbbb63 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/sm-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/sn-dark.png b/desktop/src/onionshare/resources/images/countries/sn-dark.png new file mode 100644 index 00000000..e6d7e7e3 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/sn-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/sn-light.png b/desktop/src/onionshare/resources/images/countries/sn-light.png new file mode 100644 index 00000000..d411723d Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/sn-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/so-dark.png b/desktop/src/onionshare/resources/images/countries/so-dark.png new file mode 100644 index 00000000..09dbdd31 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/so-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/so-light.png b/desktop/src/onionshare/resources/images/countries/so-light.png new file mode 100644 index 00000000..319806a9 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/so-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/sr-dark.png b/desktop/src/onionshare/resources/images/countries/sr-dark.png new file mode 100644 index 00000000..6bbe8c18 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/sr-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/sr-light.png b/desktop/src/onionshare/resources/images/countries/sr-light.png new file mode 100644 index 00000000..5639e2e6 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/sr-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/ss-dark.png b/desktop/src/onionshare/resources/images/countries/ss-dark.png new file mode 100644 index 00000000..53c265ce Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/ss-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/ss-light.png b/desktop/src/onionshare/resources/images/countries/ss-light.png new file mode 100644 index 00000000..ac50f907 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/ss-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/st-dark.png b/desktop/src/onionshare/resources/images/countries/st-dark.png new file mode 100644 index 00000000..5c9c2212 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/st-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/st-light.png b/desktop/src/onionshare/resources/images/countries/st-light.png new file mode 100644 index 00000000..549cc82d Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/st-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/sv-dark.png b/desktop/src/onionshare/resources/images/countries/sv-dark.png new file mode 100644 index 00000000..3c026354 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/sv-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/sv-light.png b/desktop/src/onionshare/resources/images/countries/sv-light.png new file mode 100644 index 00000000..833c7c4c Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/sv-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/sx-dark.png b/desktop/src/onionshare/resources/images/countries/sx-dark.png new file mode 100644 index 00000000..dc92e845 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/sx-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/sx-light.png b/desktop/src/onionshare/resources/images/countries/sx-light.png new file mode 100644 index 00000000..ab87a09b Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/sx-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/sy-dark.png b/desktop/src/onionshare/resources/images/countries/sy-dark.png new file mode 100644 index 00000000..6854e048 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/sy-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/sy-light.png b/desktop/src/onionshare/resources/images/countries/sy-light.png new file mode 100644 index 00000000..e93145f3 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/sy-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/sz-dark.png b/desktop/src/onionshare/resources/images/countries/sz-dark.png new file mode 100644 index 00000000..3f5b7484 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/sz-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/sz-light.png b/desktop/src/onionshare/resources/images/countries/sz-light.png new file mode 100644 index 00000000..5e8bcf51 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/sz-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/tc-dark.png b/desktop/src/onionshare/resources/images/countries/tc-dark.png new file mode 100644 index 00000000..3e2b87ef Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/tc-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/tc-light.png b/desktop/src/onionshare/resources/images/countries/tc-light.png new file mode 100644 index 00000000..85f1a6bf Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/tc-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/td-dark.png b/desktop/src/onionshare/resources/images/countries/td-dark.png new file mode 100644 index 00000000..97094eeb Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/td-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/td-light.png b/desktop/src/onionshare/resources/images/countries/td-light.png new file mode 100644 index 00000000..3c6925e9 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/td-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/tf-dark.png b/desktop/src/onionshare/resources/images/countries/tf-dark.png new file mode 100644 index 00000000..046df0cc Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/tf-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/tf-light.png b/desktop/src/onionshare/resources/images/countries/tf-light.png new file mode 100644 index 00000000..51996920 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/tf-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/tg-dark.png b/desktop/src/onionshare/resources/images/countries/tg-dark.png new file mode 100644 index 00000000..2c55859c Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/tg-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/tg-light.png b/desktop/src/onionshare/resources/images/countries/tg-light.png new file mode 100644 index 00000000..214d676f Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/tg-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/th-dark.png b/desktop/src/onionshare/resources/images/countries/th-dark.png new file mode 100644 index 00000000..73eef9a1 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/th-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/th-light.png b/desktop/src/onionshare/resources/images/countries/th-light.png new file mode 100644 index 00000000..42695ac2 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/th-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/tj-dark.png b/desktop/src/onionshare/resources/images/countries/tj-dark.png new file mode 100644 index 00000000..bfa735f7 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/tj-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/tj-light.png b/desktop/src/onionshare/resources/images/countries/tj-light.png new file mode 100644 index 00000000..f83884ef Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/tj-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/tk-dark.png b/desktop/src/onionshare/resources/images/countries/tk-dark.png new file mode 100644 index 00000000..790bef42 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/tk-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/tk-light.png b/desktop/src/onionshare/resources/images/countries/tk-light.png new file mode 100644 index 00000000..6ff2838f Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/tk-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/tl-dark.png b/desktop/src/onionshare/resources/images/countries/tl-dark.png new file mode 100644 index 00000000..9d583570 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/tl-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/tl-light.png b/desktop/src/onionshare/resources/images/countries/tl-light.png new file mode 100644 index 00000000..ff13802b Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/tl-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/tm-dark.png b/desktop/src/onionshare/resources/images/countries/tm-dark.png new file mode 100644 index 00000000..01bc88bc Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/tm-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/tm-light.png b/desktop/src/onionshare/resources/images/countries/tm-light.png new file mode 100644 index 00000000..29b83a3e Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/tm-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/tn-dark.png b/desktop/src/onionshare/resources/images/countries/tn-dark.png new file mode 100644 index 00000000..eb4a311e Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/tn-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/tn-light.png b/desktop/src/onionshare/resources/images/countries/tn-light.png new file mode 100644 index 00000000..8ed9b5b1 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/tn-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/to-dark.png b/desktop/src/onionshare/resources/images/countries/to-dark.png new file mode 100644 index 00000000..636691ce Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/to-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/to-light.png b/desktop/src/onionshare/resources/images/countries/to-light.png new file mode 100644 index 00000000..48aeaaf7 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/to-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/tr-dark.png b/desktop/src/onionshare/resources/images/countries/tr-dark.png new file mode 100644 index 00000000..83b4a81f Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/tr-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/tr-light.png b/desktop/src/onionshare/resources/images/countries/tr-light.png new file mode 100644 index 00000000..8fc8356c Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/tr-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/tt-dark.png b/desktop/src/onionshare/resources/images/countries/tt-dark.png new file mode 100644 index 00000000..2f0a30b6 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/tt-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/tt-light.png b/desktop/src/onionshare/resources/images/countries/tt-light.png new file mode 100644 index 00000000..e9d6260b Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/tt-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/tw-dark.png b/desktop/src/onionshare/resources/images/countries/tw-dark.png new file mode 100644 index 00000000..7e715768 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/tw-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/tw-light.png b/desktop/src/onionshare/resources/images/countries/tw-light.png new file mode 100644 index 00000000..5225e367 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/tw-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/tz-dark.png b/desktop/src/onionshare/resources/images/countries/tz-dark.png new file mode 100644 index 00000000..aa1042e2 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/tz-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/tz-light.png b/desktop/src/onionshare/resources/images/countries/tz-light.png new file mode 100644 index 00000000..df89cc29 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/tz-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/ua-dark.png b/desktop/src/onionshare/resources/images/countries/ua-dark.png new file mode 100644 index 00000000..2be2c633 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/ua-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/ua-light.png b/desktop/src/onionshare/resources/images/countries/ua-light.png new file mode 100644 index 00000000..f5e788a9 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/ua-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/ug-dark.png b/desktop/src/onionshare/resources/images/countries/ug-dark.png new file mode 100644 index 00000000..6967c5fd Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/ug-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/ug-light.png b/desktop/src/onionshare/resources/images/countries/ug-light.png new file mode 100644 index 00000000..23f5a627 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/ug-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/us-dark.png b/desktop/src/onionshare/resources/images/countries/us-dark.png new file mode 100644 index 00000000..474ca430 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/us-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/us-light.png b/desktop/src/onionshare/resources/images/countries/us-light.png new file mode 100644 index 00000000..53fd8f60 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/us-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/uy-dark.png b/desktop/src/onionshare/resources/images/countries/uy-dark.png new file mode 100644 index 00000000..3f7eb005 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/uy-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/uy-light.png b/desktop/src/onionshare/resources/images/countries/uy-light.png new file mode 100644 index 00000000..94cba645 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/uy-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/uz-dark.png b/desktop/src/onionshare/resources/images/countries/uz-dark.png new file mode 100644 index 00000000..87931eaa Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/uz-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/uz-light.png b/desktop/src/onionshare/resources/images/countries/uz-light.png new file mode 100644 index 00000000..d2f1ce88 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/uz-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/va-dark.png b/desktop/src/onionshare/resources/images/countries/va-dark.png new file mode 100644 index 00000000..1b9aec76 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/va-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/va-light.png b/desktop/src/onionshare/resources/images/countries/va-light.png new file mode 100644 index 00000000..82e0a393 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/va-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/vc-dark.png b/desktop/src/onionshare/resources/images/countries/vc-dark.png new file mode 100644 index 00000000..e00c0afa Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/vc-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/vc-light.png b/desktop/src/onionshare/resources/images/countries/vc-light.png new file mode 100644 index 00000000..f9641988 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/vc-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/ve-dark.png b/desktop/src/onionshare/resources/images/countries/ve-dark.png new file mode 100644 index 00000000..59cd9be8 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/ve-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/ve-light.png b/desktop/src/onionshare/resources/images/countries/ve-light.png new file mode 100644 index 00000000..9e69dcf2 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/ve-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/vg-dark.png b/desktop/src/onionshare/resources/images/countries/vg-dark.png new file mode 100644 index 00000000..e319eed7 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/vg-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/vg-light.png b/desktop/src/onionshare/resources/images/countries/vg-light.png new file mode 100644 index 00000000..0dffbab7 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/vg-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/vi-dark.png b/desktop/src/onionshare/resources/images/countries/vi-dark.png new file mode 100644 index 00000000..0d18d536 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/vi-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/vi-light.png b/desktop/src/onionshare/resources/images/countries/vi-light.png new file mode 100644 index 00000000..148dfe99 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/vi-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/vn-dark.png b/desktop/src/onionshare/resources/images/countries/vn-dark.png new file mode 100644 index 00000000..ec90ca30 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/vn-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/vn-light.png b/desktop/src/onionshare/resources/images/countries/vn-light.png new file mode 100644 index 00000000..2262d671 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/vn-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/vu-dark.png b/desktop/src/onionshare/resources/images/countries/vu-dark.png new file mode 100644 index 00000000..fc988b47 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/vu-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/vu-light.png b/desktop/src/onionshare/resources/images/countries/vu-light.png new file mode 100644 index 00000000..6d219327 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/vu-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/wf-dark.png b/desktop/src/onionshare/resources/images/countries/wf-dark.png new file mode 100644 index 00000000..99fcd85d Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/wf-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/wf-light.png b/desktop/src/onionshare/resources/images/countries/wf-light.png new file mode 100644 index 00000000..8e01cf3c Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/wf-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/ws-dark.png b/desktop/src/onionshare/resources/images/countries/ws-dark.png new file mode 100644 index 00000000..d29815e2 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/ws-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/ws-light.png b/desktop/src/onionshare/resources/images/countries/ws-light.png new file mode 100644 index 00000000..ec294e63 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/ws-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/ye-dark.png b/desktop/src/onionshare/resources/images/countries/ye-dark.png new file mode 100644 index 00000000..90d17dbb Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/ye-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/ye-light.png b/desktop/src/onionshare/resources/images/countries/ye-light.png new file mode 100644 index 00000000..304ddd78 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/ye-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/yt-dark.png b/desktop/src/onionshare/resources/images/countries/yt-dark.png new file mode 100644 index 00000000..1b9a64e4 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/yt-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/yt-light.png b/desktop/src/onionshare/resources/images/countries/yt-light.png new file mode 100644 index 00000000..b732797a Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/yt-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/za-dark.png b/desktop/src/onionshare/resources/images/countries/za-dark.png new file mode 100644 index 00000000..58a78aa9 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/za-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/za-light.png b/desktop/src/onionshare/resources/images/countries/za-light.png new file mode 100644 index 00000000..424fc735 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/za-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/zm-dark.png b/desktop/src/onionshare/resources/images/countries/zm-dark.png new file mode 100644 index 00000000..9b3fffbc Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/zm-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/zm-light.png b/desktop/src/onionshare/resources/images/countries/zm-light.png new file mode 100644 index 00000000..0d86cc5a Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/zm-light.png differ diff --git a/desktop/src/onionshare/resources/images/countries/zw-dark.png b/desktop/src/onionshare/resources/images/countries/zw-dark.png new file mode 100644 index 00000000..301e74d4 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/zw-dark.png differ diff --git a/desktop/src/onionshare/resources/images/countries/zw-light.png b/desktop/src/onionshare/resources/images/countries/zw-light.png new file mode 100644 index 00000000..2db496d9 Binary files /dev/null and b/desktop/src/onionshare/resources/images/countries/zw-light.png differ -- cgit v1.2.3-54-g00ecf From 34cf68e0a121fd978101072f2f62a36c6bfbfec8 Mon Sep 17 00:00:00 2001 From: Micah Lee Date: Sun, 12 Dec 2021 10:17:09 -0800 Subject: Add some todo comments --- desktop/src/onionshare/connection_tab.py | 24 ++++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/desktop/src/onionshare/connection_tab.py b/desktop/src/onionshare/connection_tab.py index 43ca15f7..43f61683 100644 --- a/desktop/src/onionshare/connection_tab.py +++ b/desktop/src/onionshare/connection_tab.py @@ -161,7 +161,15 @@ class AutoConnectTab(QtWidgets.QWidget): "Trying to automatically obtain bridges", ) self.use_bridge_widget.hide_buttons() - self.use_bridge_widget.start_autodetecting_location() + + if self.use_bridge_widget.detect_automatic_radio.isChecked(): + # TODO: In a separate thread, detect the country. When complete, call + # self.use_bridge_widget.stop_autodetecting_location() to stop the animation + pass + + else: + # TODO: Connect using the selected country + pass # self.common.gui.meek.start() # self.censorship_circumvention = CensorshipCircumvention( @@ -408,13 +416,6 @@ class AutoConnectUseBridgeWidget(QtWidgets.QWidget): self.configure_button.show() def start_autodetecting_location(self): - self.detect_automatic_radio.setEnabled(False) - self.detect_manual_radio.setEnabled(False) - - self.country_combobox.setEnabled(False) - self.country_combobox.show() - self.country_image.show() - # If we're automatically detecting it, randomly switch up the country # dropdown until we detect the location if self.detect_automatic_radio.isChecked(): @@ -455,6 +456,13 @@ class AutoConnectUseBridgeWidget(QtWidgets.QWidget): self.country_image.show() def _connect_clicked(self): + self.detect_automatic_radio.setEnabled(False) + self.detect_manual_radio.setEnabled(False) + + self.country_combobox.setEnabled(False) + self.country_combobox.show() + self.country_image.show() + self.connect_clicked.emit() def _back_clicked(self): -- cgit v1.2.3-54-g00ecf From 49df28986922af42a985c11d5d26f513761b5d92 Mon Sep 17 00:00:00 2001 From: Micah Lee Date: Sun, 12 Dec 2021 10:17:34 -0800 Subject: Add release step to update country list after updating available languages --- RELEASE.md | 1 + 1 file changed, 1 insertion(+) diff --git a/RELEASE.md b/RELEASE.md index 7021b362..0332d8ea 100644 --- a/RELEASE.md +++ b/RELEASE.md @@ -31,6 +31,7 @@ Finalize localization: - [ ] Merge all the translations from weblate - [ ] In `docs` run `poetry run ./check-weblate.py [API_KEY]` to see which translations are >90% in the app and docs - [ ] Edit `cli/onionshare_cli/settings.py`, make sure `self.available_locales` lists only locales that are >90% translated +- [ ] From the `desktop` folder in the virtual env, run `./scripts/countries-update-list.py` to make sure the localized country list for censorship circumvention is available in all available languages - [ ] Edit `docs/source/conf.py`, make sure `languages` lists only languages that are >90% translated - [ ] Edit `docs/build.sh` and make sure `LOCALES=` lists the same languages as above, in `docs/source/conf.py` - [ ] Make sure the latest documentation is built and committed: -- cgit v1.2.3-54-g00ecf From 4d195692c10c1381857ac8f40c335e68c3b871fb Mon Sep 17 00:00:00 2001 From: Micah Lee Date: Sun, 12 Dec 2021 11:02:08 -0800 Subject: Start autodetect animation --- desktop/src/onionshare/connection_tab.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/desktop/src/onionshare/connection_tab.py b/desktop/src/onionshare/connection_tab.py index 24ae8928..b4e8bc25 100644 --- a/desktop/src/onionshare/connection_tab.py +++ b/desktop/src/onionshare/connection_tab.py @@ -158,6 +158,8 @@ class AutoConnectTab(QtWidgets.QWidget): self.use_bridge_widget.hide_buttons() if self.use_bridge_widget.detect_automatic_radio.isChecked(): + self.use_bridge_widget.start_autodetecting_location() + # TODO: In a separate thread, detect the country. When complete, call # self.use_bridge_widget.stop_autodetecting_location() to stop the animation pass -- cgit v1.2.3-54-g00ecf From 3f4cb6a02ea61157b5f3c6f2e99edaeb9ac15f90 Mon Sep 17 00:00:00 2001 From: Miguel Jacq Date: Tue, 14 Dec 2021 10:48:47 +1100 Subject: Use the CensorshipCircumvention methods to fetch bridges for the country/autodetection --- cli/onionshare_cli/censorship.py | 5 +++ desktop/src/onionshare/connection_tab.py | 71 +++++++++++++----------------- desktop/src/onionshare/threads.py | 32 ++++++++++++++ desktop/src/onionshare/tor_connection.py | 1 - desktop/src/onionshare/tor_settings_tab.py | 11 +++-- 5 files changed, 73 insertions(+), 47 deletions(-) diff --git a/cli/onionshare_cli/censorship.py b/cli/onionshare_cli/censorship.py index d9b02616..5d3e71e5 100644 --- a/cli/onionshare_cli/censorship.py +++ b/cli/onionshare_cli/censorship.py @@ -127,6 +127,11 @@ class CensorshipCircumvention(object): endpoint = "https://bridges.torproject.org/moat/circumvention/settings" data = {} if country: + self.common.log( + "CensorshipCircumvention", + "censorship_obtain_settings", + f"Trying to obtain bridges for country={country}", + ) data = {"country": country} if transports: data.append({"transports": transports}) diff --git a/desktop/src/onionshare/connection_tab.py b/desktop/src/onionshare/connection_tab.py index b4e8bc25..567b2713 100644 --- a/desktop/src/onionshare/connection_tab.py +++ b/desktop/src/onionshare/connection_tab.py @@ -21,11 +21,13 @@ along with this program. If not, see . import json import os import random +import time from PySide2 import QtCore, QtWidgets, QtGui from onionshare_cli.settings import Settings from . import strings +from .threads import CensorshipCircumventionThread from .gui_common import GuiCommon, ToggleCheckbox from .tor_connection import TorConnectionWidget @@ -146,6 +148,22 @@ class AutoConnectTab(QtWidgets.QWidget): self.tor_con.show() self.tor_con.start(self.curr_settings) + def _got_bridges(self): + # Try and connect again + self.common.log( + "AutoConnectTab", + "use_bridge_connect_clicked", + "Got bridges. Trying to reconnect to Tor", + ) + self.active = False + self.tor_con.show() + self.tor_con.start() + + def _got_no_bridges(self): + self.active = False + self.tor_con.fail.emit() + self.open_tor_settings() + def use_bridge_connect_clicked(self): """ Connect button in use bridge widget clicked. @@ -158,30 +176,18 @@ class AutoConnectTab(QtWidgets.QWidget): self.use_bridge_widget.hide_buttons() if self.use_bridge_widget.detect_automatic_radio.isChecked(): - self.use_bridge_widget.start_autodetecting_location() - - # TODO: In a separate thread, detect the country. When complete, call - # self.use_bridge_widget.stop_autodetecting_location() to stop the animation - pass - + country = False else: - # TODO: Connect using the selected country - pass - - # self.common.gui.meek.start() - # self.censorship_circumvention = CensorshipCircumvention( - # self.common, self.common.gui.meek - # ) - # bridge_settings = self.censorship_circumvention.request_settings(country="tm") - # self.common.gui.meek.cleanup() - - # if bridge_settings and self.censorship_circumvention.save_settings( - # self.settings, bridge_settings - # ): - # # Try and connect again - # self.start() - # else: - # self.fail.emit() + country = self.use_bridge_widget.country_code + + t = CensorshipCircumventionThread(self.common, self.curr_settings, country) + t.got_bridges.connect(self._got_bridges) + t.got_no_bridges.connect(self._got_no_bridges) + t.start() + self.active = True + while self.active: + time.sleep(0.1) + self.common.gui.qtapp.processEvents() def back_clicked(self): """ @@ -419,28 +425,13 @@ class AutoConnectUseBridgeWidget(QtWidgets.QWidget): self.back_button.show() self.configure_button.show() - def start_autodetecting_location(self): - # If we're automatically detecting it, randomly switch up the country - # dropdown until we detect the location - if self.detect_automatic_radio.isChecked(): - self.task_label.show() - self.task_label.setText(strings._("gui_autoconnect_task_detect_location")) - - self.autodetecting_timer = QtCore.QTimer() - self.autodetecting_timer.timeout.connect(self._autodetecting_timer_callback) - self.autodetecting_timer.start(200) - - def stop_autodetecting_location(self): - self.task_label.hide() - self.autodetecting_timer.stop() - def _country_changed(self, index=None): - country_code = str(self.country_combobox.currentData()).lower() + self.country_code = str(self.country_combobox.currentData()).lower() path = GuiCommon.get_resource_path( os.path.join( "images", "countries", - f"{country_code}-{self.common.gui.color_mode}.png", + f"{self.country_code}-{self.common.gui.color_mode}.png", ) ) self.country_image_label.setPixmap(QtGui.QPixmap.fromImage(QtGui.QImage(path))) diff --git a/desktop/src/onionshare/threads.py b/desktop/src/onionshare/threads.py index b02c6f21..fa296567 100644 --- a/desktop/src/onionshare/threads.py +++ b/desktop/src/onionshare/threads.py @@ -39,6 +39,8 @@ from onionshare_cli.onion import ( PortNotAvailable, ) +from onionshare_cli.censorship import CensorshipCircumvention + from . import strings @@ -268,3 +270,33 @@ class OnionCleanupThread(QtCore.QThread): def run(self): self.common.log("OnionCleanupThread", "run") self.common.gui.onion.cleanup() + + +class CensorshipCircumventionThread(QtCore.QThread): + got_bridges = QtCore.Signal() + got_no_bridges = QtCore.Signal() + + def __init__(self, common, settings, country): + super(CensorshipCircumventionThread, self).__init__() + self.common = common + self.common.log("CensorshipCircumventionThread", "__init__") + self.settings = settings + self.country = country + + def run(self): + self.common.log("CensorshipCircumventionThread", "run") + + self.common.gui.meek.start() + self.censorship_circumvention = CensorshipCircumvention( + self.common, self.common.gui.meek + ) + bridge_settings = self.censorship_circumvention.request_settings( + country=self.country + ) + + if bridge_settings and self.censorship_circumvention.save_settings( + self.settings, bridge_settings + ): + self.got_bridges.emit() + else: + self.got_no_bridges.emit() diff --git a/desktop/src/onionshare/tor_connection.py b/desktop/src/onionshare/tor_connection.py index fe3274a6..c69342ae 100644 --- a/desktop/src/onionshare/tor_connection.py +++ b/desktop/src/onionshare/tor_connection.py @@ -39,7 +39,6 @@ from onionshare_cli.onion import ( ) from . import strings -from onionshare_cli.censorship import CensorshipCircumvention class TorConnectionWidget(QtWidgets.QWidget): diff --git a/desktop/src/onionshare/tor_settings_tab.py b/desktop/src/onionshare/tor_settings_tab.py index 1241f09d..cf30d320 100644 --- a/desktop/src/onionshare/tor_settings_tab.py +++ b/desktop/src/onionshare/tor_settings_tab.py @@ -42,7 +42,9 @@ class TorSettingsTab(QtWidgets.QWidget): tor_is_connected = QtCore.Signal() tor_is_disconnected = QtCore.Signal() - def __init__(self, common, tab_id, are_tabs_active, status_bar, from_autoconnect=False): + def __init__( + self, common, tab_id, are_tabs_active, status_bar, from_autoconnect=False + ): super(TorSettingsTab, self).__init__() self.common = common @@ -314,9 +316,7 @@ class TorSettingsTab(QtWidgets.QWidget): self.autoconnect_checkbox = QtWidgets.QCheckBox( strings._("gui_enable_autoconnect_checkbox") ) - self.autoconnect_checkbox.toggled.connect( - self.autoconnect_toggled - ) + self.autoconnect_checkbox.toggled.connect(self.autoconnect_toggled) left_column_settings = QtWidgets.QVBoxLayout() connection_type_radio_group.setFixedHeight(300) left_column_settings.addWidget(connection_type_radio_group) @@ -327,7 +327,6 @@ class TorSettingsTab(QtWidgets.QWidget): left_column_setting_widget = QtWidgets.QWidget() left_column_setting_widget.setLayout(left_column_settings) - # The Bridges options are not exclusive (enabling Bridges offers obfs4 or custom bridges) connection_type_bridges_radio_group_layout = QtWidgets.QVBoxLayout() connection_type_bridges_radio_group_layout.addWidget(self.bridges) @@ -355,7 +354,7 @@ class TorSettingsTab(QtWidgets.QWidget): columns_wrapper.setLayout(columns_layout) # Tor connection widget - self.tor_con = TorConnectionWidget(self.common, self.status_bar, self.meek) + self.tor_con = TorConnectionWidget(self.common, self.status_bar) self.tor_con.success.connect(self.tor_con_success) self.tor_con.fail.connect(self.tor_con_fail) self.tor_con.hide() -- cgit v1.2.3-54-g00ecf From 89894fe9fe234499c713ae396527622105323116 Mon Sep 17 00:00:00 2001 From: Miguel Jacq Date: Tue, 14 Dec 2021 11:07:17 +1100 Subject: Wording changes to make it clear that the IP address will be used for automatic country location by Tor's API --- desktop/src/onionshare/resources/locale/en.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/desktop/src/onionshare/resources/locale/en.json b/desktop/src/onionshare/resources/locale/en.json index a4780230..e26188bf 100644 --- a/desktop/src/onionshare/resources/locale/en.json +++ b/desktop/src/onionshare/resources/locale/en.json @@ -45,8 +45,8 @@ "gui_autoconnect_description": "OnionShare relies on the Tor Network, run by thousands of volunteers around the world.", "gui_enable_autoconnect_checkbox": "Enable automatically connecting to Tor", "gui_autoconnect_bridge_description": "Failed connecting to Tor. This could be because your internet is being censored. You might be able to bypass this censorship by using a bridge.", - "gui_autoconnect_bridge_detect_automatic": "Automatically determine my country to bypass country-specific censorship", - "gui_autoconnect_bridge_detect_manual": "Manually select my country", + "gui_autoconnect_bridge_detect_automatic": "Automatically determine my country from my IP address, to bypass country-specific censorship", + "gui_autoconnect_bridge_detect_manual": "Manually select my country instead", "gui_autoconnect_start": "Connect to Tor", "gui_autoconnect_configure": "Network Settings", "gui_autoconnect_bridge_start": "Use a Bridge", @@ -244,4 +244,4 @@ "moat_captcha_error": "The solution is not correct. Please try again.", "moat_solution_empty_error": "You must enter the characters from the image", "mode_tor_not_connected_label": "OnionShare is not connected to the Tor network" -} \ No newline at end of file +} -- cgit v1.2.3-54-g00ecf From 28786f5a63e0997898475ae6acf219bff669dc3f Mon Sep 17 00:00:00 2001 From: Miguel Jacq Date: Tue, 14 Dec 2021 11:15:26 +1100 Subject: remove obsolete censorship circumvention settings option in the TorSettingsTab --- desktop/src/onionshare/resources/locale/en.json | 1 - desktop/src/onionshare/tor_settings_tab.py | 21 --------------------- 2 files changed, 22 deletions(-) diff --git a/desktop/src/onionshare/resources/locale/en.json b/desktop/src/onionshare/resources/locale/en.json index e26188bf..912c1d27 100644 --- a/desktop/src/onionshare/resources/locale/en.json +++ b/desktop/src/onionshare/resources/locale/en.json @@ -74,7 +74,6 @@ "gui_settings_tor_bridges": "Connect using a Tor bridge?", "gui_settings_tor_bridges_label": "Bridges help you access the Tor Network in places where Tor is blocked. Depending on where you are, one bridge may work better than another.", "gui_settings_bridge_use_checkbox": "Use a bridge", - "gui_settings_censorship_circumvention_checkbox": "Attempt to automatically find a bridge based on your country if Tor fails to connect", "gui_settings_bridge_radio_builtin": "Select a built-in bridge", "gui_settings_bridge_none_radio_option": "Don't use a bridge", "gui_settings_meek_lite_expensive_warning": "Warning: The meek-azure bridges are very costly for the Tor Project to run.

Only use them if unable to connect to Tor directly, via obfs4 transports, or other normal bridges.", diff --git a/desktop/src/onionshare/tor_settings_tab.py b/desktop/src/onionshare/tor_settings_tab.py index cf30d320..5ffea747 100644 --- a/desktop/src/onionshare/tor_settings_tab.py +++ b/desktop/src/onionshare/tor_settings_tab.py @@ -93,12 +93,6 @@ class TorSettingsTab(QtWidgets.QWidget): self.bridge_use_checkbox.stateChanged.connect( self.bridge_use_checkbox_state_changed ) - self.censorship_circumvention_checkbox = QtWidgets.QCheckBox( - strings._("gui_settings_censorship_circumvention_checkbox") - ) - self.censorship_circumvention_checkbox.stateChanged.connect( - self.censorship_circumvention_checkbox_state_changed - ) # Built-in bridge self.bridge_builtin_radio = QtWidgets.QRadioButton( @@ -172,7 +166,6 @@ class TorSettingsTab(QtWidgets.QWidget): bridges_layout = QtWidgets.QVBoxLayout() bridges_layout.addWidget(bridges_label) bridges_layout.addWidget(self.bridge_use_checkbox) - bridges_layout.addWidget(self.censorship_circumvention_checkbox) bridges_layout.addWidget(self.bridge_settings) self.bridges = QtWidgets.QWidget() @@ -458,7 +451,6 @@ class TorSettingsTab(QtWidgets.QWidget): if self.old_settings.get("bridges_enabled"): self.bridge_use_checkbox.setCheckState(QtCore.Qt.Checked) - self.censorship_circumvention_checkbox.setCheckState(QtCore.Qt.Checked) self.bridge_settings.show() bridges_type = self.old_settings.get("bridges_type") @@ -541,16 +533,6 @@ class TorSettingsTab(QtWidgets.QWidget): else: self.bridge_settings.hide() - def censorship_circumvention_checkbox_state_changed(self, state): - """ - 'Allow censorship circumvention (automatic bridges)' checkbox changed - """ - # Turning on censorship circumvention through the act of - # automatic bridge selection, implicitly means enabling - # bridges. - if state == QtCore.Qt.Checked: - self.bridge_use_checkbox.setCheckState(QtCore.Qt.Checked) - def bridge_builtin_radio_toggled(self, checked): """ 'Select a built-in bridge' radio button toggled @@ -860,9 +842,6 @@ class TorSettingsTab(QtWidgets.QWidget): if self.bridge_use_checkbox.checkState() == QtCore.Qt.Checked: settings.set("bridges_enabled", True) - if self.censorship_circumvention_checkbox.checkState() == QtCore.Qt.Checked: - settings.set("censorship_circumvention", True) - if self.bridge_builtin_radio.isChecked(): settings.set("bridges_type", "built-in") -- cgit v1.2.3-54-g00ecf From d699940615bd15c313ffa663462ae80721350619 Mon Sep 17 00:00:00 2001 From: Miguel Jacq Date: Tue, 14 Dec 2021 13:31:46 +1100 Subject: remove unused _autodetecting_timer_callback --- desktop/src/onionshare/connection_tab.py | 4 ---- 1 file changed, 4 deletions(-) diff --git a/desktop/src/onionshare/connection_tab.py b/desktop/src/onionshare/connection_tab.py index 567b2713..873bc60b 100644 --- a/desktop/src/onionshare/connection_tab.py +++ b/desktop/src/onionshare/connection_tab.py @@ -436,10 +436,6 @@ class AutoConnectUseBridgeWidget(QtWidgets.QWidget): ) self.country_image_label.setPixmap(QtGui.QPixmap.fromImage(QtGui.QImage(path))) - def _autodetecting_timer_callback(self): - new_index = random.randrange(0, self.country_combobox.count()) - self.country_combobox.setCurrentIndex(new_index) - def _detect_automatic_toggled(self): self.country_combobox.setEnabled(False) self.country_combobox.hide() -- cgit v1.2.3-54-g00ecf From b03823267e3b072b7f0a5663e18de432dd8465ce Mon Sep 17 00:00:00 2001 From: Miguel Jacq Date: Tue, 14 Dec 2021 14:20:45 +1100 Subject: Show progress bar for Censorship Circumvention process --- desktop/src/onionshare/connection_tab.py | 38 ++++++++++++++++++++++--- desktop/src/onionshare/resources/locale/en.json | 7 ++++- desktop/src/onionshare/threads.py | 19 +++++++++++++ 3 files changed, 59 insertions(+), 5 deletions(-) diff --git a/desktop/src/onionshare/connection_tab.py b/desktop/src/onionshare/connection_tab.py index 873bc60b..5beb91b3 100644 --- a/desktop/src/onionshare/connection_tab.py +++ b/desktop/src/onionshare/connection_tab.py @@ -149,10 +149,12 @@ class AutoConnectTab(QtWidgets.QWidget): self.tor_con.start(self.curr_settings) def _got_bridges(self): + self.use_bridge_widget.progress.hide() + self.use_bridge_widget.progress_label.hide() # Try and connect again self.common.log( "AutoConnectTab", - "use_bridge_connect_clicked", + "_got_bridges", "Got bridges. Trying to reconnect to Tor", ) self.active = False @@ -160,10 +162,23 @@ class AutoConnectTab(QtWidgets.QWidget): self.tor_con.start() def _got_no_bridges(self): + self.use_bridge_widget.progress.hide() + self.use_bridge_widget.progress_label.hide() + self.common.log( + "AutoConnectTab", + "_got_no_bridges", + "Could not get bridges for this country. Raising TorSettingsTab", + ) self.active = False self.tor_con.fail.emit() self.open_tor_settings() + def _censorship_progress_update(self, progress, summary): + self.use_bridge_widget.progress.setValue(int(progress)) + self.use_bridge_widget.progress_label.setText( + f"{strings._('gui_autoconnect_circumventing_censorship')}
{summary}" + ) + def use_bridge_connect_clicked(self): """ Connect button in use bridge widget clicked. @@ -181,9 +196,11 @@ class AutoConnectTab(QtWidgets.QWidget): country = self.use_bridge_widget.country_code t = CensorshipCircumventionThread(self.common, self.curr_settings, country) + t.progress_update.connect(self._censorship_progress_update) t.got_bridges.connect(self._got_bridges) t.got_no_bridges.connect(self._got_no_bridges) t.start() + self.use_bridge_widget.progress.setValue(0) self.active = True while self.active: time.sleep(0.1) @@ -394,6 +411,16 @@ class AutoConnectUseBridgeWidget(QtWidgets.QWidget): self.configure_button.setStyleSheet( common.gui.css["autoconnect_configure_button"] ) + + self.progress = QtWidgets.QProgressBar() + self.progress.setRange(0, 100) + self.progress_label = QtWidgets.QLabel( + strings._("gui_autoconnect_circumventing_censorship") + ) + self.progress_label.setAlignment(QtCore.Qt.AlignHCenter) + self.progress.hide() + self.progress_label.hide() + cta_layout = QtWidgets.QHBoxLayout() cta_layout.addWidget(self.connect_button) cta_layout.addWidget(self.back_button) @@ -410,6 +437,8 @@ class AutoConnectUseBridgeWidget(QtWidgets.QWidget): layout.addWidget(self.country_image) layout.addWidget(self.task_label) layout.addWidget(cta_widget) + layout.addWidget(self.progress) + layout.addWidget(self.progress_label) self.setLayout(layout) self._country_changed() @@ -419,11 +448,15 @@ class AutoConnectUseBridgeWidget(QtWidgets.QWidget): self.connect_button.hide() self.back_button.hide() self.configure_button.hide() + self.progress.show() + self.progress_label.show() def show_buttons(self): self.connect_button.show() self.back_button.show() self.configure_button.show() + self.progress.hide() + self.progress_label.hide() def _country_changed(self, index=None): self.country_code = str(self.country_combobox.currentData()).lower() @@ -451,9 +484,6 @@ class AutoConnectUseBridgeWidget(QtWidgets.QWidget): self.detect_manual_radio.setEnabled(False) self.country_combobox.setEnabled(False) - self.country_combobox.show() - self.country_image.show() - self.connect_clicked.emit() def _back_clicked(self): diff --git a/desktop/src/onionshare/resources/locale/en.json b/desktop/src/onionshare/resources/locale/en.json index 912c1d27..73254beb 100644 --- a/desktop/src/onionshare/resources/locale/en.json +++ b/desktop/src/onionshare/resources/locale/en.json @@ -51,7 +51,12 @@ "gui_autoconnect_configure": "Network Settings", "gui_autoconnect_bridge_start": "Use a Bridge", "gui_autoconnect_bridge_back": "Back", - "gui_autoconnect_task_detect_location": "Automatically determining your country...", + "gui_autoconnect_circumventing_censorship": "Trying to resolve connectivity issues", + "gui_autoconnect_circumventing_censorship_starting_circumvention": "Starting censorship circumvention process", + "gui_autoconnect_circumventing_censorship_starting_meek": "Starting Meek for domain-fronting", + "gui_autoconnect_circumventing_censorship_requesting_bridges": "Requesting bridges from the Tor Censorship Circumvention API", + "gui_autoconnect_circumventing_censorship_got_bridges": "Got bridges! Trying to reconnect to Tor", + "gui_autoconnect_circumventing_censorship_no_bridges": "Could not find bridges. Opening manual Tor network settings", "gui_settings_window_title": "Settings", "gui_settings_autoupdate_label": "Check for new version", "gui_settings_autoupdate_option": "Notify me when a new version is available", diff --git a/desktop/src/onionshare/threads.py b/desktop/src/onionshare/threads.py index fa296567..05c32f76 100644 --- a/desktop/src/onionshare/threads.py +++ b/desktop/src/onionshare/threads.py @@ -273,12 +273,19 @@ class OnionCleanupThread(QtCore.QThread): class CensorshipCircumventionThread(QtCore.QThread): + progress_update = QtCore.Signal(int, str) got_bridges = QtCore.Signal() got_no_bridges = QtCore.Signal() def __init__(self, common, settings, country): super(CensorshipCircumventionThread, self).__init__() self.common = common + self.progress_update.emit( + 25, + strings._( + "gui_autoconnect_circumventing_censorship_starting_circumvention" + ), + ) self.common.log("CensorshipCircumventionThread", "__init__") self.settings = settings self.country = country @@ -286,10 +293,16 @@ class CensorshipCircumventionThread(QtCore.QThread): def run(self): self.common.log("CensorshipCircumventionThread", "run") + self.progress_update.emit( + 50, strings._("gui_autoconnect_circumventing_censorship_starting_meek") + ) self.common.gui.meek.start() self.censorship_circumvention = CensorshipCircumvention( self.common, self.common.gui.meek ) + self.progress_update.emit( + 75, strings._("gui_autoconnect_circumventing_censorship_requesting_bridges") + ) bridge_settings = self.censorship_circumvention.request_settings( country=self.country ) @@ -297,6 +310,12 @@ class CensorshipCircumventionThread(QtCore.QThread): if bridge_settings and self.censorship_circumvention.save_settings( self.settings, bridge_settings ): + self.progress_update.emit( + 100, strings._("gui_autoconnect_circumventing_censorship_got_bridges") + ) self.got_bridges.emit() else: + self.progress_update.emit( + 100, strings._("gui_autoconnect_circumventing_censorship_no_bridges") + ) self.got_no_bridges.emit() -- cgit v1.2.3-54-g00ecf From 1aa67f840611c8e45d9ccd4e0f15ec7cc32a6992 Mon Sep 17 00:00:00 2001 From: Miguel Jacq Date: Tue, 14 Dec 2021 14:32:00 +1100 Subject: Fix the saving of bridges received from CensorshipCircumvention API - need to also save the bridges_enabled setting else TorSettingsTab doesn't show them --- cli/onionshare_cli/censorship.py | 5 +++-- desktop/src/onionshare/connection_tab.py | 1 + 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/cli/onionshare_cli/censorship.py b/cli/onionshare_cli/censorship.py index 5d3e71e5..e8bcbcc6 100644 --- a/cli/onionshare_cli/censorship.py +++ b/cli/onionshare_cli/censorship.py @@ -47,7 +47,7 @@ class CensorshipCircumvention(object): self.common.log( "CensorshipCircumvention", "__init__", - "Using Meek with CensorShipCircumvention API", + "Using Meek with CensorshipCircumvention API", ) self.api_proxies = self.meek.meek_proxies if onion: @@ -58,7 +58,7 @@ class CensorshipCircumvention(object): self.common.log( "CensorshipCircumvention", "__init__", - "Using Tor with CensorShipCircumvention API", + "Using Tor with CensorshipCircumvention API", ) (socks_address, socks_port) = self.onion.get_tor_socks_port() self.api_proxies = { @@ -256,6 +256,7 @@ class CensorshipCircumvention(object): "save_settings", "Saving settings with automatically-obtained bridges", ) + self.settings.set("bridges_enabled", True) self.settings.save() return True else: diff --git a/desktop/src/onionshare/connection_tab.py b/desktop/src/onionshare/connection_tab.py index 5beb91b3..37f3e7a8 100644 --- a/desktop/src/onionshare/connection_tab.py +++ b/desktop/src/onionshare/connection_tab.py @@ -172,6 +172,7 @@ class AutoConnectTab(QtWidgets.QWidget): self.active = False self.tor_con.fail.emit() self.open_tor_settings() + self.close_this_tab.emit() def _censorship_progress_update(self, progress, summary): self.use_bridge_widget.progress.setValue(int(progress)) -- cgit v1.2.3-54-g00ecf From 29bf8dc5cdeea44ac6686d24069552168a53f919 Mon Sep 17 00:00:00 2001 From: Miguel Jacq Date: Tue, 14 Dec 2021 14:38:30 +1100 Subject: Raise an Alert dialog when failing to connect to Tor even after trying to circumvent censorship, so the user knows they need to configure settings manually --- desktop/src/onionshare/connection_tab.py | 12 +++++++++--- desktop/src/onionshare/resources/locale/en.json | 2 +- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/desktop/src/onionshare/connection_tab.py b/desktop/src/onionshare/connection_tab.py index 37f3e7a8..16c46492 100644 --- a/desktop/src/onionshare/connection_tab.py +++ b/desktop/src/onionshare/connection_tab.py @@ -30,7 +30,7 @@ from . import strings from .threads import CensorshipCircumventionThread from .gui_common import GuiCommon, ToggleCheckbox from .tor_connection import TorConnectionWidget - +from .widgets import Alert class AutoConnectTab(QtWidgets.QWidget): """ @@ -164,13 +164,19 @@ class AutoConnectTab(QtWidgets.QWidget): def _got_no_bridges(self): self.use_bridge_widget.progress.hide() self.use_bridge_widget.progress_label.hide() + self.active = False + self.tor_con.fail.emit() + + Alert( + self.common, + strings._("gui_autoconnect_circumventing_censorship_no_bridges"), + QtWidgets.QMessageBox.Critical, + ) self.common.log( "AutoConnectTab", "_got_no_bridges", "Could not get bridges for this country. Raising TorSettingsTab", ) - self.active = False - self.tor_con.fail.emit() self.open_tor_settings() self.close_this_tab.emit() diff --git a/desktop/src/onionshare/resources/locale/en.json b/desktop/src/onionshare/resources/locale/en.json index 73254beb..65a9c56d 100644 --- a/desktop/src/onionshare/resources/locale/en.json +++ b/desktop/src/onionshare/resources/locale/en.json @@ -56,7 +56,7 @@ "gui_autoconnect_circumventing_censorship_starting_meek": "Starting Meek for domain-fronting", "gui_autoconnect_circumventing_censorship_requesting_bridges": "Requesting bridges from the Tor Censorship Circumvention API", "gui_autoconnect_circumventing_censorship_got_bridges": "Got bridges! Trying to reconnect to Tor", - "gui_autoconnect_circumventing_censorship_no_bridges": "Could not find bridges. Opening manual Tor network settings", + "gui_autoconnect_circumventing_censorship_no_bridges": "OnionShare still couldn't connect to Tor, even after trying to find bridges.

Please try configuring the Tor Network settings manually.", "gui_settings_window_title": "Settings", "gui_settings_autoupdate_label": "Check for new version", "gui_settings_autoupdate_option": "Notify me when a new version is available", -- cgit v1.2.3-54-g00ecf From 04efd3fc0ecc0844c17591cc088df3404f66670f Mon Sep 17 00:00:00 2001 From: Miguel Jacq Date: Tue, 14 Dec 2021 14:46:19 +1100 Subject: Cleanup Meek in the CensorshipCircumventionThread --- desktop/src/onionshare/threads.py | 1 + 1 file changed, 1 insertion(+) diff --git a/desktop/src/onionshare/threads.py b/desktop/src/onionshare/threads.py index 05c32f76..f5025c5c 100644 --- a/desktop/src/onionshare/threads.py +++ b/desktop/src/onionshare/threads.py @@ -306,6 +306,7 @@ class CensorshipCircumventionThread(QtCore.QThread): bridge_settings = self.censorship_circumvention.request_settings( country=self.country ) + self.common.gui.meek.cleanup() if bridge_settings and self.censorship_circumvention.save_settings( self.settings, bridge_settings -- cgit v1.2.3-54-g00ecf From 12b725e821bbfc31921933ee35f70ed62846236a Mon Sep 17 00:00:00 2001 From: Miguel Jacq Date: Tue, 14 Dec 2021 14:57:01 +1100 Subject: Need to reconnect to Tor with the curr_settings Settings object after obtaining new bridges --- cli/onionshare_cli/censorship.py | 10 ++++++++++ desktop/src/onionshare/connection_tab.py | 2 +- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/cli/onionshare_cli/censorship.py b/cli/onionshare_cli/censorship.py index e8bcbcc6..22444252 100644 --- a/cli/onionshare_cli/censorship.py +++ b/cli/onionshare_cli/censorship.py @@ -230,6 +230,11 @@ class CensorshipCircumvention(object): # selected the built-in bridges for a specific PT themselves. # if bridge_source == "builtin": + self.common.log( + "CensorshipCircumvention", + "save_settings", + "Will be using built-in bridges", + ) self.settings.set("bridges_type", "built-in") if bridge_type == "obfs4": self.settings.set("bridges_builtin_pt", "obfs4") @@ -239,6 +244,11 @@ class CensorshipCircumvention(object): self.settings.set("bridges_builtin_pt", "meek-azure") bridges_ok = True else: + self.common.log( + "CensorshipCircumvention", + "save_settings", + "Will be using custom bridges", + ) # Any other type of bridge we can treat as custom. self.settings.set("bridges_type", "custom") diff --git a/desktop/src/onionshare/connection_tab.py b/desktop/src/onionshare/connection_tab.py index 16c46492..c3cf0f6d 100644 --- a/desktop/src/onionshare/connection_tab.py +++ b/desktop/src/onionshare/connection_tab.py @@ -159,7 +159,7 @@ class AutoConnectTab(QtWidgets.QWidget): ) self.active = False self.tor_con.show() - self.tor_con.start() + self.tor_con.start(self.curr_settings) def _got_no_bridges(self): self.use_bridge_widget.progress.hide() -- cgit v1.2.3-54-g00ecf From 1fd43b316b7560b77676d7fbed52ec8f46fed518 Mon Sep 17 00:00:00 2001 From: Miguel Jacq Date: Wed, 15 Dec 2021 13:45:39 +1100 Subject: Check for updates to OnionShare after connecting to Tor via the AutoConnectTab --- desktop/src/onionshare/connection_tab.py | 24 +++++++++++++++++++++++- desktop/src/onionshare/main_window.py | 20 -------------------- 2 files changed, 23 insertions(+), 21 deletions(-) diff --git a/desktop/src/onionshare/connection_tab.py b/desktop/src/onionshare/connection_tab.py index c3cf0f6d..50dd943b 100644 --- a/desktop/src/onionshare/connection_tab.py +++ b/desktop/src/onionshare/connection_tab.py @@ -27,9 +27,10 @@ from PySide2 import QtCore, QtWidgets, QtGui from onionshare_cli.settings import Settings from . import strings -from .threads import CensorshipCircumventionThread from .gui_common import GuiCommon, ToggleCheckbox +from .threads import CensorshipCircumventionThread from .tor_connection import TorConnectionWidget +from .update_checker import UpdateThread from .widgets import Alert class AutoConnectTab(QtWidgets.QWidget): @@ -220,6 +221,25 @@ class AutoConnectTab(QtWidgets.QWidget): self.use_bridge_widget.hide() self.first_launch_widget.show() + def check_for_updates(self): + """ + Check for OnionShare updates in a new thread, if enabled. + """ + if self.common.platform == "Windows" or self.common.platform == "Darwin": + if self.common.settings.get("use_autoupdate"): + + def update_available(update_url, installed_version, latest_version): + Alert( + self.common, + strings._("update_available").format( + update_url, installed_version, latest_version + ), + ) + + self.update_thread = UpdateThread(self.common, self.common.gui.onion) + self.update_thread.update_available.connect(update_available) + self.update_thread.start() + def tor_con_success(self): """ Finished testing tor connection. @@ -231,6 +251,8 @@ class AutoConnectTab(QtWidgets.QWidget): if self.common.gui.onion.is_authenticated() and not self.tor_con.wasCanceled(): # Tell the tabs that Tor is connected self.tor_is_connected.emit() + # After connecting to Tor, check for updates + self.check_for_updates() # Close the tab self.close_this_tab.emit() diff --git a/desktop/src/onionshare/main_window.py b/desktop/src/onionshare/main_window.py index 1a71092e..8e6605ed 100644 --- a/desktop/src/onionshare/main_window.py +++ b/desktop/src/onionshare/main_window.py @@ -25,7 +25,6 @@ from PySide2 import QtCore, QtWidgets, QtGui from . import strings from .widgets import Alert from .connection_tab import AutoConnectTab -from .update_checker import UpdateThread from .tab_widget import TabWidget from .settings_tab import SettingsTab from .gui_common import GuiCommon @@ -267,25 +266,6 @@ class MainWindow(QtWidgets.QMainWindow): tab = self.tabs.widget(index) tab.settings_have_changed() - def check_for_updates(self): - """ - Check for updates in a new thread, if enabled. - """ - if self.common.platform == "Windows" or self.common.platform == "Darwin": - if self.common.settings.get("use_autoupdate"): - - def update_available(update_url, installed_version, latest_version): - Alert( - self.common, - strings._("update_available").format( - update_url, installed_version, latest_version - ), - ) - - self.update_thread = UpdateThread(self.common, self.common.gui.onion) - self.update_thread.update_available.connect(update_available) - self.update_thread.start() - def bring_to_front(self): self.common.log("MainWindow", "bring_to_front") self.raise_() -- cgit v1.2.3-54-g00ecf From 042fed2e55e0959f416c95cb72daf967768b2140 Mon Sep 17 00:00:00 2001 From: Miguel Jacq Date: Wed, 15 Dec 2021 14:52:49 +1100 Subject: Send settings object to the AutoConnectFirstLaunchWidget so we can set the checkbox properly when returning from TorSettingsTab --- desktop/src/onionshare/connection_tab.py | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/desktop/src/onionshare/connection_tab.py b/desktop/src/onionshare/connection_tab.py index 50dd943b..5705542b 100644 --- a/desktop/src/onionshare/connection_tab.py +++ b/desktop/src/onionshare/connection_tab.py @@ -77,7 +77,7 @@ class AutoConnectTab(QtWidgets.QWidget): self.image.setLayout(image_layout) # First launch widget - self.first_launch_widget = AutoConnectFirstLaunchWidget(self.common) + self.first_launch_widget = AutoConnectFirstLaunchWidget(self.common, self.curr_settings) self.first_launch_widget.toggle_auto_connect.connect(self.toggle_auto_connect) self.first_launch_widget.connect_clicked.connect( self.first_launch_widget_connect_clicked @@ -285,17 +285,22 @@ class AutoConnectFirstLaunchWidget(QtWidgets.QWidget): connect_clicked = QtCore.Signal() open_tor_settings = QtCore.Signal() - def __init__(self, common): + def __init__(self, common, settings): super(AutoConnectFirstLaunchWidget, self).__init__() self.common = common self.common.log("AutoConnectFirstLaunchWidget", "__init__") + self.settings = settings + # Description and checkbox description_label = QtWidgets.QLabel(strings._("gui_autoconnect_description")) description_label.setWordWrap(True) self.enable_autoconnect_checkbox = ToggleCheckbox( strings._("gui_enable_autoconnect_checkbox") ) + self.enable_autoconnect_checkbox.setChecked( + self.settings.get("auto_connect") + ) self.enable_autoconnect_checkbox.clicked.connect(self._toggle_auto_connect) self.enable_autoconnect_checkbox.setFixedWidth(400) self.enable_autoconnect_checkbox.setStyleSheet( -- cgit v1.2.3-54-g00ecf From 4f40a9b501edf91e1780e3b5dd3290e61d449068 Mon Sep 17 00:00:00 2001 From: Miguel Jacq Date: Wed, 15 Dec 2021 18:22:18 +1100 Subject: Tweaks to CensorshipCircumvention and also Meek cleanup fixes that were causing a crazy read loop on the stdout queue --- cli/onionshare_cli/meek.py | 52 +++++++++----------------------- desktop/src/onionshare/connection_tab.py | 51 +++++++++++++++++++++++-------- desktop/src/onionshare/threads.py | 52 -------------------------------- 3 files changed, 53 insertions(+), 102 deletions(-) diff --git a/cli/onionshare_cli/meek.py b/cli/onionshare_cli/meek.py index dffbad83..3ada19c7 100644 --- a/cli/onionshare_cli/meek.py +++ b/cli/onionshare_cli/meek.py @@ -20,8 +20,6 @@ along with this program. If not, see . import os import subprocess import time -from queue import Queue, Empty -from threading import Thread class Meek(object): @@ -67,14 +65,6 @@ class Meek(object): Start the Meek Client and populate the SOCKS proxies dict for use with requests to the Tor Moat API. """ - # Small method to read stdout from the subprocess. - # We use this to obtain the random port that Meek - # started on - def enqueue_output(out, queue): - for line in iter(out.readline, b""): - queue.put(line) - out.close() - # Abort early if we can't find the Meek client if self.meek_client_file_path is None or not os.path.exists( self.meek_client_file_path @@ -124,34 +114,22 @@ class Meek(object): universal_newlines=True, ) - # Queue up the stdout from the subprocess for polling later - q = Queue() - t = Thread(target=enqueue_output, args=(self.meek_proc.stdout, q)) - t.daemon = True # thread dies with the program - t.start() - - while True: - # read stdout without blocking - try: - line = q.get_nowait() - self.common.log("Meek", "start", line.strip()) - except Empty: - # no stdout yet? - pass - else: # we got stdout - if "CMETHOD meek socks5" in line: - self.meek_host = line.split(" ")[3].split(":")[0] - self.meek_port = line.split(" ")[3].split(":")[1] - self.common.log( - "Meek", - "start", - f"Meek running on {self.meek_host}:{self.meek_port}", - ) - break + # Obtain the host and port that meek is running on + for line in iter(self.meek_proc.stdout.readline, b""): + if "CMETHOD meek socks5" in line: + self.meek_host = line.split(" ")[3].split(":")[0] + self.meek_port = line.split(" ")[3].split(":")[1] + self.common.log( + "Meek", + "start", + f"Meek running on {self.meek_host}:{self.meek_port}", + ) + break - if "CMETHOD-ERROR" in line: - self.cleanup() - raise MeekNotRunning() + if "CMETHOD-ERROR" in line: + self.cleanup() + raise MeekNotRunning() + break if self.meek_port: self.meek_proxies = { diff --git a/desktop/src/onionshare/connection_tab.py b/desktop/src/onionshare/connection_tab.py index 5705542b..a8c8f8ec 100644 --- a/desktop/src/onionshare/connection_tab.py +++ b/desktop/src/onionshare/connection_tab.py @@ -24,11 +24,15 @@ import random import time from PySide2 import QtCore, QtWidgets, QtGui +from onionshare_cli.censorship import CensorshipCircumvention +from onionshare_cli.meek import ( + MeekNotRunning, + MeekNotFound, +) from onionshare_cli.settings import Settings from . import strings from .gui_common import GuiCommon, ToggleCheckbox -from .threads import CensorshipCircumventionThread from .tor_connection import TorConnectionWidget from .update_checker import UpdateThread from .widgets import Alert @@ -158,14 +162,12 @@ class AutoConnectTab(QtWidgets.QWidget): "_got_bridges", "Got bridges. Trying to reconnect to Tor", ) - self.active = False self.tor_con.show() self.tor_con.start(self.curr_settings) def _got_no_bridges(self): self.use_bridge_widget.progress.hide() self.use_bridge_widget.progress_label.hide() - self.active = False self.tor_con.fail.emit() Alert( @@ -203,16 +205,39 @@ class AutoConnectTab(QtWidgets.QWidget): else: country = self.use_bridge_widget.country_code - t = CensorshipCircumventionThread(self.common, self.curr_settings, country) - t.progress_update.connect(self._censorship_progress_update) - t.got_bridges.connect(self._got_bridges) - t.got_no_bridges.connect(self._got_no_bridges) - t.start() - self.use_bridge_widget.progress.setValue(0) - self.active = True - while self.active: - time.sleep(0.1) - self.common.gui.qtapp.processEvents() + self._censorship_progress_update( + 50, strings._("gui_autoconnect_circumventing_censorship_starting_meek") + ) + try: + self.common.gui.meek.start() + self.censorship_circumvention = CensorshipCircumvention( + self.common, self.common.gui.meek + ) + self._censorship_progress_update( + 75, strings._("gui_autoconnect_circumventing_censorship_requesting_bridges") + ) + bridge_settings = self.censorship_circumvention.request_settings( + country=country + ) + self.common.gui.meek.cleanup() + + if bridge_settings and self.censorship_circumvention.save_settings( + self.curr_settings, bridge_settings + ): + self._censorship_progress_update( + 100, strings._("gui_autoconnect_circumventing_censorship_got_bridges") + ) + self._got_bridges() + else: + self._censorship_progress_update( + 100, strings._("gui_autoconnect_circumventing_censorship_no_bridges") + ) + self._got_no_bridges() + except ( + MeekNotRunning, + MeekNotFound, + ) as e: + self._got_no_bridges() def back_clicked(self): """ diff --git a/desktop/src/onionshare/threads.py b/desktop/src/onionshare/threads.py index f5025c5c..b02c6f21 100644 --- a/desktop/src/onionshare/threads.py +++ b/desktop/src/onionshare/threads.py @@ -39,8 +39,6 @@ from onionshare_cli.onion import ( PortNotAvailable, ) -from onionshare_cli.censorship import CensorshipCircumvention - from . import strings @@ -270,53 +268,3 @@ class OnionCleanupThread(QtCore.QThread): def run(self): self.common.log("OnionCleanupThread", "run") self.common.gui.onion.cleanup() - - -class CensorshipCircumventionThread(QtCore.QThread): - progress_update = QtCore.Signal(int, str) - got_bridges = QtCore.Signal() - got_no_bridges = QtCore.Signal() - - def __init__(self, common, settings, country): - super(CensorshipCircumventionThread, self).__init__() - self.common = common - self.progress_update.emit( - 25, - strings._( - "gui_autoconnect_circumventing_censorship_starting_circumvention" - ), - ) - self.common.log("CensorshipCircumventionThread", "__init__") - self.settings = settings - self.country = country - - def run(self): - self.common.log("CensorshipCircumventionThread", "run") - - self.progress_update.emit( - 50, strings._("gui_autoconnect_circumventing_censorship_starting_meek") - ) - self.common.gui.meek.start() - self.censorship_circumvention = CensorshipCircumvention( - self.common, self.common.gui.meek - ) - self.progress_update.emit( - 75, strings._("gui_autoconnect_circumventing_censorship_requesting_bridges") - ) - bridge_settings = self.censorship_circumvention.request_settings( - country=self.country - ) - self.common.gui.meek.cleanup() - - if bridge_settings and self.censorship_circumvention.save_settings( - self.settings, bridge_settings - ): - self.progress_update.emit( - 100, strings._("gui_autoconnect_circumventing_censorship_got_bridges") - ) - self.got_bridges.emit() - else: - self.progress_update.emit( - 100, strings._("gui_autoconnect_circumventing_censorship_no_bridges") - ) - self.got_no_bridges.emit() -- cgit v1.2.3-54-g00ecf From 47d6f39c0696a1d0341d97b82b512926f97cffd4 Mon Sep 17 00:00:00 2001 From: Miguel Jacq Date: Fri, 17 Dec 2021 15:14:22 +1100 Subject: Various fixes for handling Tor connection errors, reconnecting scenarios, flow from fixing connection back to AutoConnect or main Mode tabs depending on autoconnect settings --- desktop/src/onionshare/connection_tab.py | 26 +++++++++++++------- desktop/src/onionshare/resources/locale/en.json | 2 +- desktop/src/onionshare/tab_widget.py | 32 +++++++++++++++++++++---- desktop/src/onionshare/tor_connection.py | 12 +++++----- desktop/src/onionshare/tor_settings_tab.py | 4 +++- 5 files changed, 55 insertions(+), 21 deletions(-) diff --git a/desktop/src/onionshare/connection_tab.py b/desktop/src/onionshare/connection_tab.py index a8c8f8ec..096c503f 100644 --- a/desktop/src/onionshare/connection_tab.py +++ b/desktop/src/onionshare/connection_tab.py @@ -37,6 +37,7 @@ from .tor_connection import TorConnectionWidget from .update_checker import UpdateThread from .widgets import Alert + class AutoConnectTab(QtWidgets.QWidget): """ Initial Tab that appears in the very beginning to ask user if @@ -81,7 +82,9 @@ class AutoConnectTab(QtWidgets.QWidget): self.image.setLayout(image_layout) # First launch widget - self.first_launch_widget = AutoConnectFirstLaunchWidget(self.common, self.curr_settings) + self.first_launch_widget = AutoConnectFirstLaunchWidget( + self.common, self.curr_settings + ) self.first_launch_widget.toggle_auto_connect.connect(self.toggle_auto_connect) self.first_launch_widget.connect_clicked.connect( self.first_launch_widget_connect_clicked @@ -168,7 +171,6 @@ class AutoConnectTab(QtWidgets.QWidget): def _got_no_bridges(self): self.use_bridge_widget.progress.hide() self.use_bridge_widget.progress_label.hide() - self.tor_con.fail.emit() Alert( self.common, @@ -214,7 +216,10 @@ class AutoConnectTab(QtWidgets.QWidget): self.common, self.common.gui.meek ) self._censorship_progress_update( - 75, strings._("gui_autoconnect_circumventing_censorship_requesting_bridges") + 75, + strings._( + "gui_autoconnect_circumventing_censorship_requesting_bridges" + ), ) bridge_settings = self.censorship_circumvention.request_settings( country=country @@ -225,12 +230,14 @@ class AutoConnectTab(QtWidgets.QWidget): self.curr_settings, bridge_settings ): self._censorship_progress_update( - 100, strings._("gui_autoconnect_circumventing_censorship_got_bridges") + 100, + strings._("gui_autoconnect_circumventing_censorship_got_bridges"), ) self._got_bridges() else: self._censorship_progress_update( - 100, strings._("gui_autoconnect_circumventing_censorship_no_bridges") + 100, + strings._("gui_autoconnect_circumventing_censorship_no_bridges"), ) self._got_no_bridges() except ( @@ -281,7 +288,7 @@ class AutoConnectTab(QtWidgets.QWidget): # Close the tab self.close_this_tab.emit() - def tor_con_fail(self): + def tor_con_fail(self, msg): """ Finished testing tor connection. """ @@ -299,6 +306,9 @@ class AutoConnectTab(QtWidgets.QWidget): self.first_launch_widget.enable_autoconnect_checkbox.setChecked( self.auto_connect_enabled ) + self.use_bridge_widget.hide() + self.first_launch_widget.show_buttons() + self.first_launch_widget.show() class AutoConnectFirstLaunchWidget(QtWidgets.QWidget): @@ -323,9 +333,7 @@ class AutoConnectFirstLaunchWidget(QtWidgets.QWidget): self.enable_autoconnect_checkbox = ToggleCheckbox( strings._("gui_enable_autoconnect_checkbox") ) - self.enable_autoconnect_checkbox.setChecked( - self.settings.get("auto_connect") - ) + self.enable_autoconnect_checkbox.setChecked(self.settings.get("auto_connect")) self.enable_autoconnect_checkbox.clicked.connect(self._toggle_auto_connect) self.enable_autoconnect_checkbox.setFixedWidth(400) self.enable_autoconnect_checkbox.setStyleSheet( diff --git a/desktop/src/onionshare/resources/locale/en.json b/desktop/src/onionshare/resources/locale/en.json index 65a9c56d..d9ca9578 100644 --- a/desktop/src/onionshare/resources/locale/en.json +++ b/desktop/src/onionshare/resources/locale/en.json @@ -44,7 +44,7 @@ "gui_tor_settings_window_title": "Tor Settings", "gui_autoconnect_description": "OnionShare relies on the Tor Network, run by thousands of volunteers around the world.", "gui_enable_autoconnect_checkbox": "Enable automatically connecting to Tor", - "gui_autoconnect_bridge_description": "Failed connecting to Tor. This could be because your internet is being censored. You might be able to bypass this censorship by using a bridge.", + "gui_autoconnect_bridge_description": "Failed connecting to Tor. This could be because your internet is being censored.
You might be able to bypass this censorship by using a bridge.

Or, you might just need to configure the Tor connection in Network Settings.", "gui_autoconnect_bridge_detect_automatic": "Automatically determine my country from my IP address, to bypass country-specific censorship", "gui_autoconnect_bridge_detect_manual": "Manually select my country instead", "gui_autoconnect_start": "Connect to Tor", diff --git a/desktop/src/onionshare/tab_widget.py b/desktop/src/onionshare/tab_widget.py index cacc658e..b810d607 100644 --- a/desktop/src/onionshare/tab_widget.py +++ b/desktop/src/onionshare/tab_widget.py @@ -255,7 +255,11 @@ class TabWidget(QtWidgets.QTabWidget): return self.tor_settings_tab = TorSettingsTab( - self.common, self.current_tab_id, self.are_tabs_active(), self.status_bar, from_autoconnect + self.common, + self.current_tab_id, + self.are_tabs_active(), + self.status_bar, + from_autoconnect, ) self.tor_settings_tab.close_this_tab.connect(self.close_tor_settings_tab) self.tor_settings_tab.tor_is_connected.connect(self.tor_is_connected) @@ -385,10 +389,30 @@ class TabWidget(QtWidgets.QTabWidget): def close_tor_settings_tab(self): self.common.log("TabWidget", "close_tor_settings_tab") - for tab_id in self.tabs: + for tab_id in list(self.tabs): if type(self.tabs[tab_id]) is AutoConnectTab: - self.tabs[tab_id].reload_settings() - for tab_id in self.tabs: + # If we are being returned to the AutoConnectTab, but + # the user has fixed their Tor settings in the TorSettings + # tab, *and* they have enabled autoconnect, then + # we should close the AutoConnect Tab. + if self.common.gui.onion.is_authenticated(): + self.common.log( + "TabWidget", + "close_tor_settings_tab", + "Tor is connected and we can auto-connect, so closing the tab", + ) + index = self.indexOf(self.tabs[tab_id]) + self.close_tab(index) + else: + self.tabs[tab_id].reload_settings() + self.common.log( + "TabWidget", + "close_tor_settings_tab", + "Reloading settings in case they changed in the TorSettingsTab. Not auto-connecting", + ) + break + # List of indices may have changed due to the above, so we loop over it again as another copy + for tab_id in list(self.tabs): if type(self.tabs[tab_id]) is TorSettingsTab: index = self.indexOf(self.tabs[tab_id]) self.close_tab(index) diff --git a/desktop/src/onionshare/tor_connection.py b/desktop/src/onionshare/tor_connection.py index c69342ae..1f07242d 100644 --- a/desktop/src/onionshare/tor_connection.py +++ b/desktop/src/onionshare/tor_connection.py @@ -48,7 +48,7 @@ class TorConnectionWidget(QtWidgets.QWidget): open_tor_settings = QtCore.Signal() success = QtCore.Signal() - fail = QtCore.Signal() + fail = QtCore.Signal(str) def __init__(self, common, status_bar): super(TorConnectionWidget, self).__init__(None) @@ -112,7 +112,7 @@ class TorConnectionWidget(QtWidgets.QWidget): def cancel_clicked(self): self.was_canceled = True - self.fail.emit() + self.fail.emit("") def wasCanceled(self): return self.was_canceled @@ -141,17 +141,17 @@ class TorConnectionWidget(QtWidgets.QWidget): # Cancel connecting to Tor QtCore.QTimer.singleShot(1, self.cancel_clicked) - def _error_connecting_to_tor(self): + def _error_connecting_to_tor(self, msg): self.common.log("TorConnectionWidget", "_error_connecting_to_tor") self.active = False - self.fail.emit() + self.fail.emit(msg) class TorConnectionThread(QtCore.QThread): tor_status_update = QtCore.Signal(str, str) connected_to_tor = QtCore.Signal() canceled_connecting_to_tor = QtCore.Signal() - error_connecting_to_tor = QtCore.Signal() + error_connecting_to_tor = QtCore.Signal(str) def __init__(self, common, settings, parent): super(TorConnectionThread, self).__init__() @@ -196,7 +196,7 @@ class TorConnectionThread(QtCore.QThread): self.common.log( "TorConnectionThread", "run", f"caught exception: {message}" ) - self.error_connecting_to_tor.emit() + self.error_connecting_to_tor.emit(message) def _tor_status_update(self, progress, summary): self.tor_status_update.emit(progress, summary) diff --git a/desktop/src/onionshare/tor_settings_tab.py b/desktop/src/onionshare/tor_settings_tab.py index 5ffea747..28cafc4c 100644 --- a/desktop/src/onionshare/tor_settings_tab.py +++ b/desktop/src/onionshare/tor_settings_tab.py @@ -691,7 +691,9 @@ class TorSettingsTab(QtWidgets.QWidget): # If Tor isn't connected, or if Tor settings have changed, Reinitialize # the Onion object reboot_onion = False - if not self.common.gui.local_only and not self.from_autoconnect: + if not self.common.gui.local_only and not ( + self.from_autoconnect and not settings.get("auto_connect") + ): if self.common.gui.onion.is_authenticated(): self.common.log( "TorSettingsTab", "save_clicked", "Connected to Tor" -- cgit v1.2.3-54-g00ecf From 094e469f0da58e182ba00aab0ae3ecdfca8279a6 Mon Sep 17 00:00:00 2001 From: Saptak S Date: Fri, 17 Dec 2021 18:54:31 +0530 Subject: Fixes alignment of the toggle button --- desktop/src/onionshare/gui_common.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/desktop/src/onionshare/gui_common.py b/desktop/src/onionshare/gui_common.py index 7c97d238..5bd10567 100644 --- a/desktop/src/onionshare/gui_common.py +++ b/desktop/src/onionshare/gui_common.py @@ -586,7 +586,7 @@ class ToggleCheckbox(QtWidgets.QCheckBox): x = ( rect.width() - rect.x() - self.w + 20 ) # 20 is the padding between text and toggle - y = self.height() / 2 - self.h / 2 + self.y() / 2 + y = self.height() / 2 - self.h / 2 + 16 # 16 is the padding top for the checkbox self.toggleRect = QtCore.QRect(x, y, self.w, self.h) painter.setBrush(QtGui.QColor(self.bg_color)) painter.drawRoundedRect(x, y, self.w, self.h, self.h / 2, self.h / 2) -- cgit v1.2.3-54-g00ecf From 440b9cd3cdd3e559891d4cae20a3fc0903654e89 Mon Sep 17 00:00:00 2001 From: Saptak S Date: Fri, 17 Dec 2021 19:49:21 +0530 Subject: Rescales the country images to fit the height --- desktop/src/onionshare/connection_tab.py | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/desktop/src/onionshare/connection_tab.py b/desktop/src/onionshare/connection_tab.py index 096c503f..b6dae138 100644 --- a/desktop/src/onionshare/connection_tab.py +++ b/desktop/src/onionshare/connection_tab.py @@ -443,11 +443,12 @@ class AutoConnectUseBridgeWidget(QtWidgets.QWidget): # Country shape self.country_image_label = QtWidgets.QLabel() - self.country_image_label.setFixedSize(256, 256) + self.country_image_label.setFixedSize(200, 200) country_image_layout = QtWidgets.QHBoxLayout() country_image_layout.addStretch() country_image_layout.addWidget(self.country_image_label) country_image_layout.addStretch() + country_image_layout.setContentsMargins(0, 0, 0, 0) self.country_image = QtWidgets.QWidget() self.country_image.setLayout(country_image_layout) @@ -534,7 +535,11 @@ class AutoConnectUseBridgeWidget(QtWidgets.QWidget): f"{self.country_code}-{self.common.gui.color_mode}.png", ) ) - self.country_image_label.setPixmap(QtGui.QPixmap.fromImage(QtGui.QImage(path))) + pixmap = QtGui.QPixmap.fromImage(QtGui.QImage(path)).scaled( + self.country_image_label.width() - 10, + self.country_image_label.height() - 10, + ) + self.country_image_label.setPixmap(pixmap) def _detect_automatic_toggled(self): self.country_combobox.setEnabled(False) -- cgit v1.2.3-54-g00ecf From 576bee555f941a5ca991aba9da4529079625eb1e Mon Sep 17 00:00:00 2001 From: Saptak S Date: Fri, 17 Dec 2021 23:37:09 +0530 Subject: Update the autoconnect checkbox language --- desktop/src/onionshare/resources/locale/en.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/desktop/src/onionshare/resources/locale/en.json b/desktop/src/onionshare/resources/locale/en.json index d9ca9578..b9fafa85 100644 --- a/desktop/src/onionshare/resources/locale/en.json +++ b/desktop/src/onionshare/resources/locale/en.json @@ -43,7 +43,7 @@ "zip_progress_bar_format": "Compressing: %p%", "gui_tor_settings_window_title": "Tor Settings", "gui_autoconnect_description": "OnionShare relies on the Tor Network, run by thousands of volunteers around the world.", - "gui_enable_autoconnect_checkbox": "Enable automatically connecting to Tor", + "gui_enable_autoconnect_checkbox": "Connect to Tor automatically", "gui_autoconnect_bridge_description": "Failed connecting to Tor. This could be because your internet is being censored.
You might be able to bypass this censorship by using a bridge.

Or, you might just need to configure the Tor connection in Network Settings.", "gui_autoconnect_bridge_detect_automatic": "Automatically determine my country from my IP address, to bypass country-specific censorship", "gui_autoconnect_bridge_detect_manual": "Manually select my country instead", -- cgit v1.2.3-54-g00ecf From a6765518217a00f7c2dc9c08b4b39a1ed72e68b0 Mon Sep 17 00:00:00 2001 From: Micah Lee Date: Sat, 18 Dec 2021 17:37:50 -0800 Subject: Remove back button, and make TorConnectionWidget reset its progress in case it gets re-used --- desktop/src/onionshare/connection_tab.py | 12 ------------ desktop/src/onionshare/tor_connection.py | 8 ++++++++ 2 files changed, 8 insertions(+), 12 deletions(-) diff --git a/desktop/src/onionshare/connection_tab.py b/desktop/src/onionshare/connection_tab.py index b6dae138..73c0ce36 100644 --- a/desktop/src/onionshare/connection_tab.py +++ b/desktop/src/onionshare/connection_tab.py @@ -465,12 +465,6 @@ class AutoConnectUseBridgeWidget(QtWidgets.QWidget): self.connect_button.clicked.connect(self._connect_clicked) self.connect_button.setFixedWidth(150) self.connect_button.setStyleSheet(common.gui.css["autoconnect_start_button"]) - self.back_button = QtWidgets.QPushButton( - strings._("gui_autoconnect_bridge_back") - ) - self.back_button.clicked.connect(self._back_clicked) - self.back_button.setFlat(True) - self.back_button.setStyleSheet(common.gui.css["autoconnect_configure_button"]) self.configure_button = QtWidgets.QPushButton( strings._("gui_autoconnect_configure") ) @@ -491,7 +485,6 @@ class AutoConnectUseBridgeWidget(QtWidgets.QWidget): cta_layout = QtWidgets.QHBoxLayout() cta_layout.addWidget(self.connect_button) - cta_layout.addWidget(self.back_button) cta_layout.addWidget(self.configure_button) cta_layout.addStretch() cta_widget = QtWidgets.QWidget() @@ -514,14 +507,12 @@ class AutoConnectUseBridgeWidget(QtWidgets.QWidget): def hide_buttons(self): self.connect_button.hide() - self.back_button.hide() self.configure_button.hide() self.progress.show() self.progress_label.show() def show_buttons(self): self.connect_button.show() - self.back_button.show() self.configure_button.show() self.progress.hide() self.progress_label.hide() @@ -558,8 +549,5 @@ class AutoConnectUseBridgeWidget(QtWidgets.QWidget): self.country_combobox.setEnabled(False) self.connect_clicked.emit() - def _back_clicked(self): - self.back_clicked.emit() - def _open_tor_settings(self): self.open_tor_settings.emit() diff --git a/desktop/src/onionshare/tor_connection.py b/desktop/src/onionshare/tor_connection.py index 1f07242d..83422b3a 100644 --- a/desktop/src/onionshare/tor_connection.py +++ b/desktop/src/onionshare/tor_connection.py @@ -113,6 +113,7 @@ class TorConnectionWidget(QtWidgets.QWidget): def cancel_clicked(self): self.was_canceled = True self.fail.emit("") + self._reset() def wasCanceled(self): return self.was_canceled @@ -132,6 +133,7 @@ class TorConnectionWidget(QtWidgets.QWidget): self.progress.setValue(self.progress.maximum()) self.success.emit() + self._reset() def _canceled_connecting_to_tor(self): self.common.log("TorConnectionWidget", "_canceled_connecting_to_tor") @@ -140,11 +142,17 @@ class TorConnectionWidget(QtWidgets.QWidget): # Cancel connecting to Tor QtCore.QTimer.singleShot(1, self.cancel_clicked) + self._reset() def _error_connecting_to_tor(self, msg): self.common.log("TorConnectionWidget", "_error_connecting_to_tor") self.active = False self.fail.emit(msg) + self._reset() + + def _reset(self): + self.label.setText("") + self.progress.setValue(0) class TorConnectionThread(QtCore.QThread): -- cgit v1.2.3-54-g00ecf From 4f3313fd200630550b809c20d42532c86cb7d127 Mon Sep 17 00:00:00 2001 From: Micah Lee Date: Sat, 18 Dec 2021 17:58:51 -0800 Subject: If no country-specific settings are found, try automatically using obfs4 bridge instead of prompting user to go to Tor Settings --- desktop/src/onionshare/connection_tab.py | 33 +++++-------------------- desktop/src/onionshare/resources/locale/en.json | 3 +-- 2 files changed, 7 insertions(+), 29 deletions(-) diff --git a/desktop/src/onionshare/connection_tab.py b/desktop/src/onionshare/connection_tab.py index 73c0ce36..cbb49f6b 100644 --- a/desktop/src/onionshare/connection_tab.py +++ b/desktop/src/onionshare/connection_tab.py @@ -95,7 +95,6 @@ class AutoConnectTab(QtWidgets.QWidget): # Use bridge widget self.use_bridge_widget = AutoConnectUseBridgeWidget(self.common) self.use_bridge_widget.connect_clicked.connect(self.use_bridge_connect_clicked) - self.use_bridge_widget.back_clicked.connect(self.back_clicked) self.use_bridge_widget.open_tor_settings.connect(self.open_tor_settings) self.use_bridge_widget.hide() @@ -169,21 +168,13 @@ class AutoConnectTab(QtWidgets.QWidget): self.tor_con.start(self.curr_settings) def _got_no_bridges(self): - self.use_bridge_widget.progress.hide() - self.use_bridge_widget.progress_label.hide() + # If we got no bridges, try connecting again using built-in obfs4 bridges + self.curr_settings.set("bridges_type", "built-in") + self.curr_settings.set("bridges_builtin_pt", "obfs4") + self.curr_settings.set("bridges_enabled", True) + self.curr_settings.save() - Alert( - self.common, - strings._("gui_autoconnect_circumventing_censorship_no_bridges"), - QtWidgets.QMessageBox.Critical, - ) - self.common.log( - "AutoConnectTab", - "_got_no_bridges", - "Could not get bridges for this country. Raising TorSettingsTab", - ) - self.open_tor_settings() - self.close_this_tab.emit() + self._got_bridges() def _censorship_progress_update(self, progress, summary): self.use_bridge_widget.progress.setValue(int(progress)) @@ -235,10 +226,6 @@ class AutoConnectTab(QtWidgets.QWidget): ) self._got_bridges() else: - self._censorship_progress_update( - 100, - strings._("gui_autoconnect_circumventing_censorship_no_bridges"), - ) self._got_no_bridges() except ( MeekNotRunning, @@ -246,13 +233,6 @@ class AutoConnectTab(QtWidgets.QWidget): ) as e: self._got_no_bridges() - def back_clicked(self): - """ - Switch from use bridge widget back to first launch widget - """ - self.use_bridge_widget.hide() - self.first_launch_widget.show() - def check_for_updates(self): """ Check for OnionShare updates in a new thread, if enabled. @@ -394,7 +374,6 @@ class AutoConnectUseBridgeWidget(QtWidgets.QWidget): """ connect_clicked = QtCore.Signal() - back_clicked = QtCore.Signal() open_tor_settings = QtCore.Signal() def __init__(self, common): diff --git a/desktop/src/onionshare/resources/locale/en.json b/desktop/src/onionshare/resources/locale/en.json index b9fafa85..656270fb 100644 --- a/desktop/src/onionshare/resources/locale/en.json +++ b/desktop/src/onionshare/resources/locale/en.json @@ -56,7 +56,6 @@ "gui_autoconnect_circumventing_censorship_starting_meek": "Starting Meek for domain-fronting", "gui_autoconnect_circumventing_censorship_requesting_bridges": "Requesting bridges from the Tor Censorship Circumvention API", "gui_autoconnect_circumventing_censorship_got_bridges": "Got bridges! Trying to reconnect to Tor", - "gui_autoconnect_circumventing_censorship_no_bridges": "OnionShare still couldn't connect to Tor, even after trying to find bridges.

Please try configuring the Tor Network settings manually.", "gui_settings_window_title": "Settings", "gui_settings_autoupdate_label": "Check for new version", "gui_settings_autoupdate_option": "Notify me when a new version is available", @@ -248,4 +247,4 @@ "moat_captcha_error": "The solution is not correct. Please try again.", "moat_solution_empty_error": "You must enter the characters from the image", "mode_tor_not_connected_label": "OnionShare is not connected to the Tor network" -} +} \ No newline at end of file -- cgit v1.2.3-54-g00ecf From 5d8300df100c3a61038c4fffeb33c6abfb0890cb Mon Sep 17 00:00:00 2001 From: Miguel Jacq Date: Mon, 20 Dec 2021 14:20:32 +1100 Subject: Add 'Try Again' button in AutoConnect bridge options. Update wording. Reset back to bridge/try again options if Tor Cancel clicked again --- desktop/src/onionshare/connection_tab.py | 38 ++++++++++++++++++++++--- desktop/src/onionshare/gui_common.py | 5 ++++ desktop/src/onionshare/resources/locale/en.json | 11 +++---- 3 files changed, 45 insertions(+), 9 deletions(-) diff --git a/desktop/src/onionshare/connection_tab.py b/desktop/src/onionshare/connection_tab.py index cbb49f6b..fee4d428 100644 --- a/desktop/src/onionshare/connection_tab.py +++ b/desktop/src/onionshare/connection_tab.py @@ -95,6 +95,7 @@ class AutoConnectTab(QtWidgets.QWidget): # Use bridge widget self.use_bridge_widget = AutoConnectUseBridgeWidget(self.common) self.use_bridge_widget.connect_clicked.connect(self.use_bridge_connect_clicked) + self.use_bridge_widget.try_again_clicked.connect(self.first_launch_widget_connect_clicked) self.use_bridge_widget.open_tor_settings.connect(self.open_tor_settings) self.use_bridge_widget.hide() @@ -192,6 +193,8 @@ class AutoConnectTab(QtWidgets.QWidget): "Trying to automatically obtain bridges", ) self.use_bridge_widget.hide_buttons() + self.use_bridge_widget.progress.show() + self.use_bridge_widget.progress_label.show() if self.use_bridge_widget.detect_automatic_radio.isChecked(): country = False @@ -259,6 +262,8 @@ class AutoConnectTab(QtWidgets.QWidget): self.tor_con.hide() self.first_launch_widget.show_buttons() self.use_bridge_widget.show_buttons() + self.use_bridge_widget.progress.hide() + self.use_bridge_widget.progress_label.hide() if self.common.gui.onion.is_authenticated() and not self.tor_con.wasCanceled(): # Tell the tabs that Tor is connected @@ -279,6 +284,8 @@ class AutoConnectTab(QtWidgets.QWidget): self.first_launch_widget.show_buttons() self.first_launch_widget.hide() self.use_bridge_widget.show() + else: + self.use_bridge_widget.show_buttons() def reload_settings(self): self.curr_settings.load() @@ -374,6 +381,7 @@ class AutoConnectUseBridgeWidget(QtWidgets.QWidget): """ connect_clicked = QtCore.Signal() + try_again_clicked = QtCore.Signal() open_tor_settings = QtCore.Signal() def __init__(self, common): @@ -381,6 +389,13 @@ class AutoConnectUseBridgeWidget(QtWidgets.QWidget): self.common = common self.common.log("AutoConnectUseBridgeWidget", "__init__") + # Heading label when we fail to connect to Tor. + failed_to_connect_label = QtWidgets.QLabel( + strings._("gui_autoconnect_failed_to_connect_to_tor") + ) + failed_to_connect_label.setTextFormat(QtCore.Qt.RichText) + failed_to_connect_label.setStyleSheet(common.gui.css["autoconnect_failed_to_connect_label"]) + # Description description_label = QtWidgets.QLabel( strings._("gui_autoconnect_bridge_description") @@ -444,6 +459,13 @@ class AutoConnectUseBridgeWidget(QtWidgets.QWidget): self.connect_button.clicked.connect(self._connect_clicked) self.connect_button.setFixedWidth(150) self.connect_button.setStyleSheet(common.gui.css["autoconnect_start_button"]) + + self.try_again_button = QtWidgets.QPushButton( + strings._("gui_autoconnect_try_again_without_a_bridge") + ) + self.try_again_button.clicked.connect(self._try_again_clicked) + self.try_again_button.setStyleSheet(common.gui.css["autoconnect_start_button"]) + self.configure_button = QtWidgets.QPushButton( strings._("gui_autoconnect_configure") ) @@ -464,6 +486,7 @@ class AutoConnectUseBridgeWidget(QtWidgets.QWidget): cta_layout = QtWidgets.QHBoxLayout() cta_layout.addWidget(self.connect_button) + cta_layout.addWidget(self.try_again_button) cta_layout.addWidget(self.configure_button) cta_layout.addStretch() cta_widget = QtWidgets.QWidget() @@ -471,6 +494,7 @@ class AutoConnectUseBridgeWidget(QtWidgets.QWidget): # Layout layout = QtWidgets.QVBoxLayout() + layout.addWidget(failed_to_connect_label) layout.addWidget(description_label) layout.addLayout(detect_layout) layout.addWidget(self.country_combobox) @@ -486,15 +510,13 @@ class AutoConnectUseBridgeWidget(QtWidgets.QWidget): def hide_buttons(self): self.connect_button.hide() + self.try_again_button.hide() self.configure_button.hide() - self.progress.show() - self.progress_label.show() def show_buttons(self): self.connect_button.show() + self.try_again_button.show() self.configure_button.show() - self.progress.hide() - self.progress_label.hide() def _country_changed(self, index=None): self.country_code = str(self.country_combobox.currentData()).lower() @@ -528,5 +550,13 @@ class AutoConnectUseBridgeWidget(QtWidgets.QWidget): self.country_combobox.setEnabled(False) self.connect_clicked.emit() + def _try_again_clicked(self): + self.detect_automatic_radio.setEnabled(False) + self.detect_manual_radio.setEnabled(False) + + self.country_combobox.setEnabled(False) + self.hide_buttons() + self.try_again_clicked.emit() + def _open_tor_settings(self): self.open_tor_settings.emit() diff --git a/desktop/src/onionshare/gui_common.py b/desktop/src/onionshare/gui_common.py index 5bd10567..2253c56f 100644 --- a/desktop/src/onionshare/gui_common.py +++ b/desktop/src/onionshare/gui_common.py @@ -194,6 +194,11 @@ class GuiCommon: font-weight: bold; } """, + "autoconnect_failed_to_connect_label": """ + QLabel { + font-size: 18px; + font-weight: bold; + }""", # Common styles between modes and their child widgets "mode_settings_toggle_advanced": """ QPushButton { diff --git a/desktop/src/onionshare/resources/locale/en.json b/desktop/src/onionshare/resources/locale/en.json index 656270fb..ea8e2df6 100644 --- a/desktop/src/onionshare/resources/locale/en.json +++ b/desktop/src/onionshare/resources/locale/en.json @@ -44,13 +44,14 @@ "gui_tor_settings_window_title": "Tor Settings", "gui_autoconnect_description": "OnionShare relies on the Tor Network, run by thousands of volunteers around the world.", "gui_enable_autoconnect_checkbox": "Connect to Tor automatically", - "gui_autoconnect_bridge_description": "Failed connecting to Tor. This could be because your internet is being censored.
You might be able to bypass this censorship by using a bridge.

Or, you might just need to configure the Tor connection in Network Settings.", - "gui_autoconnect_bridge_detect_automatic": "Automatically determine my country from my IP address, to bypass country-specific censorship", - "gui_autoconnect_bridge_detect_manual": "Manually select my country instead", + "gui_autoconnect_failed_to_connect_to_tor": "Failed to connect to Tor.", + "gui_autoconnect_bridge_description": "Are you connected to the internet?

It's also possible your internet is being censored.

You might be able to bypass this using a bridge.", + "gui_autoconnect_bridge_detect_automatic": "Automatically determine my country from my IP address", + "gui_autoconnect_bridge_detect_manual": "Manually select my country", "gui_autoconnect_start": "Connect to Tor", "gui_autoconnect_configure": "Network Settings", "gui_autoconnect_bridge_start": "Use a Bridge", - "gui_autoconnect_bridge_back": "Back", + "gui_autoconnect_try_again_without_a_bridge": "Try again without a Bridge", "gui_autoconnect_circumventing_censorship": "Trying to resolve connectivity issues", "gui_autoconnect_circumventing_censorship_starting_circumvention": "Starting censorship circumvention process", "gui_autoconnect_circumventing_censorship_starting_meek": "Starting Meek for domain-fronting", @@ -247,4 +248,4 @@ "moat_captcha_error": "The solution is not correct. Please try again.", "moat_solution_empty_error": "You must enter the characters from the image", "mode_tor_not_connected_label": "OnionShare is not connected to the Tor network" -} \ No newline at end of file +} -- cgit v1.2.3-54-g00ecf From a385e1ffed93a35bdae7d7e89cca238a82dbf429 Mon Sep 17 00:00:00 2001 From: Miguel Jacq Date: Mon, 20 Dec 2021 14:50:09 +1100 Subject: Add a CensorshipCircumventionError class that is raised if there's a requests exception connecting to the Tor API --- cli/onionshare_cli/censorship.py | 159 +++++++++++++++++++++------------------ 1 file changed, 87 insertions(+), 72 deletions(-) diff --git a/cli/onionshare_cli/censorship.py b/cli/onionshare_cli/censorship.py index 22444252..ee013cca 100644 --- a/cli/onionshare_cli/censorship.py +++ b/cli/onionshare_cli/censorship.py @@ -22,6 +22,12 @@ import requests from .meek import MeekNotRunning +class CensorshipCircumventionError(Exception): + """ + There was a problem connecting to the Tor CensorshipCircumvention API. + """ + + class CensorshipCircumvention(object): """ Connect to the Tor Moat APIs to retrieve censorship @@ -84,31 +90,34 @@ class CensorshipCircumvention(object): if country: data = {"country": country} - r = requests.post( - endpoint, - json=data, - headers={"Content-Type": "application/vnd.api+json"}, - proxies=self.api_proxies, - ) - if r.status_code != 200: - self.common.log( - "CensorshipCircumvention", - "censorship_obtain_map", - f"status_code={r.status_code}", + try: + r = requests.post( + endpoint, + json=data, + headers={"Content-Type": "application/vnd.api+json"}, + proxies=self.api_proxies, ) - return False + if r.status_code != 200: + self.common.log( + "CensorshipCircumvention", + "censorship_obtain_map", + f"status_code={r.status_code}", + ) + return False - result = r.json() + result = r.json() - if "errors" in result: - self.common.log( - "CensorshipCircumvention", - "censorship_obtain_map", - f"errors={result['errors']}", - ) - return False + if "errors" in result: + self.common.log( + "CensorshipCircumvention", + "censorship_obtain_map", + f"errors={result['errors']}", + ) + return False - return result + return result + except requests.exceptions.RequestException as e: + raise CensorshipCircumventionError(e) def request_settings(self, country=False, transports=False): """ @@ -135,42 +144,45 @@ class CensorshipCircumvention(object): data = {"country": country} if transports: data.append({"transports": transports}) - r = requests.post( - endpoint, - json=data, - headers={"Content-Type": "application/vnd.api+json"}, - proxies=self.api_proxies, - ) - if r.status_code != 200: - self.common.log( - "CensorshipCircumvention", - "censorship_obtain_settings", - f"status_code={r.status_code}", + try: + r = requests.post( + endpoint, + json=data, + headers={"Content-Type": "application/vnd.api+json"}, + proxies=self.api_proxies, ) - return False + if r.status_code != 200: + self.common.log( + "CensorshipCircumvention", + "censorship_obtain_settings", + f"status_code={r.status_code}", + ) + return False - result = r.json() + result = r.json() - if "errors" in result: - self.common.log( - "CensorshipCircumvention", - "censorship_obtain_settings", - f"errors={result['errors']}", - ) - return False + if "errors" in result: + self.common.log( + "CensorshipCircumvention", + "censorship_obtain_settings", + f"errors={result['errors']}", + ) + return False - # There are no settings - perhaps this country doesn't require censorship circumvention? - # This is not really an error, so we can just check if False and assume direct Tor - # connection will work. - if not "settings" in result: - self.common.log( - "CensorshipCircumvention", - "censorship_obtain_settings", - "No settings found for this country", - ) - return False + # There are no settings - perhaps this country doesn't require censorship circumvention? + # This is not really an error, so we can just check if False and assume direct Tor + # connection will work. + if not "settings" in result: + self.common.log( + "CensorshipCircumvention", + "censorship_obtain_settings", + "No settings found for this country", + ) + return False - return result + return result + except requests.exceptions.RequestException as e: + raise CensorshipCircumventionError(e) def request_builtin_bridges(self): """ @@ -179,30 +191,33 @@ class CensorshipCircumvention(object): if not self.api_proxies: return False endpoint = "https://bridges.torproject.org/moat/circumvention/builtin" - r = requests.post( - endpoint, - headers={"Content-Type": "application/vnd.api+json"}, - proxies=self.api_proxies, - ) - if r.status_code != 200: - self.common.log( - "CensorshipCircumvention", - "censorship_obtain_builtin_bridges", - f"status_code={r.status_code}", + try: + r = requests.post( + endpoint, + headers={"Content-Type": "application/vnd.api+json"}, + proxies=self.api_proxies, ) - return False + if r.status_code != 200: + self.common.log( + "CensorshipCircumvention", + "censorship_obtain_builtin_bridges", + f"status_code={r.status_code}", + ) + return False - result = r.json() + result = r.json() - if "errors" in result: - self.common.log( - "CensorshipCircumvention", - "censorship_obtain_builtin_bridges", - f"errors={result['errors']}", - ) - return False + if "errors" in result: + self.common.log( + "CensorshipCircumvention", + "censorship_obtain_builtin_bridges", + f"errors={result['errors']}", + ) + return False - return result + return result + except requests.exceptions.RequestException as e: + raise CensorshipCircumventionError(e) def save_settings(self, settings, bridge_settings): """ -- cgit v1.2.3-54-g00ecf From eb1f5c0d4aebc0dd40409ff6f46832df2c42145f Mon Sep 17 00:00:00 2001 From: Miguel Jacq Date: Mon, 20 Dec 2021 14:51:55 +1100 Subject: Show an error in the AutoConnect tab if the CensorshipCircumventionError class is raised --- desktop/src/onionshare/connection_tab.py | 42 +++++++++++++++++++++++++++++--- 1 file changed, 39 insertions(+), 3 deletions(-) diff --git a/desktop/src/onionshare/connection_tab.py b/desktop/src/onionshare/connection_tab.py index fee4d428..4aaf52c8 100644 --- a/desktop/src/onionshare/connection_tab.py +++ b/desktop/src/onionshare/connection_tab.py @@ -24,7 +24,10 @@ import random import time from PySide2 import QtCore, QtWidgets, QtGui -from onionshare_cli.censorship import CensorshipCircumvention +from onionshare_cli.censorship import ( + CensorshipCircumvention, + CensorshipCircumventionError, +) from onionshare_cli.meek import ( MeekNotRunning, MeekNotFound, @@ -95,7 +98,9 @@ class AutoConnectTab(QtWidgets.QWidget): # Use bridge widget self.use_bridge_widget = AutoConnectUseBridgeWidget(self.common) self.use_bridge_widget.connect_clicked.connect(self.use_bridge_connect_clicked) - self.use_bridge_widget.try_again_clicked.connect(self.first_launch_widget_connect_clicked) + self.use_bridge_widget.try_again_clicked.connect( + self.first_launch_widget_connect_clicked + ) self.use_bridge_widget.open_tor_settings.connect(self.open_tor_settings) self.use_bridge_widget.hide() @@ -183,6 +188,16 @@ class AutoConnectTab(QtWidgets.QWidget): f"{strings._('gui_autoconnect_circumventing_censorship')}
{summary}" ) + def network_connection_error(self): + """ + Display an error if there simply seems no network connection. + """ + self.use_bridge_widget.progress.hide() + self.use_bridge_widget.progress_label.hide() + self.use_bridge_widget.error_label.show() + self.use_bridge_widget.show_buttons() + self.use_bridge_widget.show() + def use_bridge_connect_clicked(self): """ Connect button in use bridge widget clicked. @@ -235,6 +250,13 @@ class AutoConnectTab(QtWidgets.QWidget): MeekNotFound, ) as e: self._got_no_bridges() + except CensorshipCircumventionError as e: + self.common.log( + "AutoConnectTab", + "use_bridge_connect_clicked", + "Request to the Tor Censorship Circumvention API failed. No network connection?", + ) + self.network_connection_error() def check_for_updates(self): """ @@ -288,6 +310,10 @@ class AutoConnectTab(QtWidgets.QWidget): self.use_bridge_widget.show_buttons() def reload_settings(self): + """ + Reload the latest Tor settings, and reset to show the + first-launch widget if it had been hidden. + """ self.curr_settings.load() self.auto_connect_enabled = self.curr_settings.get("auto_connect") self.first_launch_widget.enable_autoconnect_checkbox.setChecked( @@ -394,7 +420,9 @@ class AutoConnectUseBridgeWidget(QtWidgets.QWidget): strings._("gui_autoconnect_failed_to_connect_to_tor") ) failed_to_connect_label.setTextFormat(QtCore.Qt.RichText) - failed_to_connect_label.setStyleSheet(common.gui.css["autoconnect_failed_to_connect_label"]) + failed_to_connect_label.setStyleSheet( + common.gui.css["autoconnect_failed_to_connect_label"] + ) # Description description_label = QtWidgets.QLabel( @@ -475,6 +503,12 @@ class AutoConnectUseBridgeWidget(QtWidgets.QWidget): common.gui.css["autoconnect_configure_button"] ) + # Error label + self.error_label = QtWidgets.QLabel(strings._("gui_tor_connection_canceled")) + self.error_label.setStyleSheet(self.common.gui.css["tor_settings_error"]) + self.error_label.setWordWrap(True) + self.error_label.hide() + self.progress = QtWidgets.QProgressBar() self.progress.setRange(0, 100) self.progress_label = QtWidgets.QLabel( @@ -503,6 +537,7 @@ class AutoConnectUseBridgeWidget(QtWidgets.QWidget): layout.addWidget(cta_widget) layout.addWidget(self.progress) layout.addWidget(self.progress_label) + layout.addWidget(self.error_label) self.setLayout(layout) self._country_changed() @@ -512,6 +547,7 @@ class AutoConnectUseBridgeWidget(QtWidgets.QWidget): self.connect_button.hide() self.try_again_button.hide() self.configure_button.hide() + self.error_label.hide() def show_buttons(self): self.connect_button.show() -- cgit v1.2.3-54-g00ecf From 24fa10ea4f4c2c05e18e18350ef00395c9d6ac91 Mon Sep 17 00:00:00 2001 From: Miguel Jacq Date: Mon, 20 Dec 2021 15:17:40 +1100 Subject: Show/hide widgets more aggressively. Different error message on CensorshipCircumventionError. --- desktop/src/onionshare/connection_tab.py | 43 ++++++++++++++++--------- desktop/src/onionshare/resources/locale/en.json | 2 ++ 2 files changed, 30 insertions(+), 15 deletions(-) diff --git a/desktop/src/onionshare/connection_tab.py b/desktop/src/onionshare/connection_tab.py index 4aaf52c8..e67ca483 100644 --- a/desktop/src/onionshare/connection_tab.py +++ b/desktop/src/onionshare/connection_tab.py @@ -192,9 +192,13 @@ class AutoConnectTab(QtWidgets.QWidget): """ Display an error if there simply seems no network connection. """ + self.use_bridge_widget.connection_status_label.setText( + strings._("gui_autoconnect_failed_to_connect_to_tor") + ) self.use_bridge_widget.progress.hide() self.use_bridge_widget.progress_label.hide() self.use_bridge_widget.error_label.show() + self.use_bridge_widget.country_combobox.setEnabled(True) self.use_bridge_widget.show_buttons() self.use_bridge_widget.show() @@ -416,20 +420,20 @@ class AutoConnectUseBridgeWidget(QtWidgets.QWidget): self.common.log("AutoConnectUseBridgeWidget", "__init__") # Heading label when we fail to connect to Tor. - failed_to_connect_label = QtWidgets.QLabel( + self.connection_status_label = QtWidgets.QLabel( strings._("gui_autoconnect_failed_to_connect_to_tor") ) - failed_to_connect_label.setTextFormat(QtCore.Qt.RichText) - failed_to_connect_label.setStyleSheet( + self.connection_status_label.setTextFormat(QtCore.Qt.RichText) + self.connection_status_label.setStyleSheet( common.gui.css["autoconnect_failed_to_connect_label"] ) # Description - description_label = QtWidgets.QLabel( + self.description_label = QtWidgets.QLabel( strings._("gui_autoconnect_bridge_description") ) - description_label.setTextFormat(QtCore.Qt.RichText) - description_label.setWordWrap(True) + self.description_label.setTextFormat(QtCore.Qt.RichText) + self.description_label.setWordWrap(True) # Detection preference self.detect_automatic_radio = QtWidgets.QRadioButton( @@ -504,7 +508,9 @@ class AutoConnectUseBridgeWidget(QtWidgets.QWidget): ) # Error label - self.error_label = QtWidgets.QLabel(strings._("gui_tor_connection_canceled")) + self.error_label = QtWidgets.QLabel( + strings._("gui_autoconnect_could_not_connect_to_tor_api") + ) self.error_label.setStyleSheet(self.common.gui.css["tor_settings_error"]) self.error_label.setWordWrap(True) self.error_label.hide() @@ -528,8 +534,8 @@ class AutoConnectUseBridgeWidget(QtWidgets.QWidget): # Layout layout = QtWidgets.QVBoxLayout() - layout.addWidget(failed_to_connect_label) - layout.addWidget(description_label) + layout.addWidget(self.connection_status_label) + layout.addWidget(self.description_label) layout.addLayout(detect_layout) layout.addWidget(self.country_combobox) layout.addWidget(self.country_image) @@ -547,12 +553,18 @@ class AutoConnectUseBridgeWidget(QtWidgets.QWidget): self.connect_button.hide() self.try_again_button.hide() self.configure_button.hide() + self.description_label.hide() self.error_label.hide() + self.detect_automatic_radio.hide() + self.detect_manual_radio.hide() def show_buttons(self): self.connect_button.show() self.try_again_button.show() + self.description_label.show() self.configure_button.show() + self.detect_automatic_radio.show() + self.detect_manual_radio.show() def _country_changed(self, index=None): self.country_code = str(self.country_combobox.currentData()).lower() @@ -580,16 +592,17 @@ class AutoConnectUseBridgeWidget(QtWidgets.QWidget): self.country_image.show() def _connect_clicked(self): - self.detect_automatic_radio.setEnabled(False) - self.detect_manual_radio.setEnabled(False) - self.country_combobox.setEnabled(False) + self.hide_buttons() + self.connection_status_label.setText( + strings._("gui_autoconnect_trying_to_connect_to_tor") + ) self.connect_clicked.emit() def _try_again_clicked(self): - self.detect_automatic_radio.setEnabled(False) - self.detect_manual_radio.setEnabled(False) - + self.connection_status_label.setText( + strings._("gui_autoconnect_trying_to_connect_to_tor") + ) self.country_combobox.setEnabled(False) self.hide_buttons() self.try_again_clicked.emit() diff --git a/desktop/src/onionshare/resources/locale/en.json b/desktop/src/onionshare/resources/locale/en.json index ea8e2df6..8936b218 100644 --- a/desktop/src/onionshare/resources/locale/en.json +++ b/desktop/src/onionshare/resources/locale/en.json @@ -45,6 +45,7 @@ "gui_autoconnect_description": "OnionShare relies on the Tor Network, run by thousands of volunteers around the world.", "gui_enable_autoconnect_checkbox": "Connect to Tor automatically", "gui_autoconnect_failed_to_connect_to_tor": "Failed to connect to Tor.", + "gui_autoconnect_trying_to_connect_to_tor": "Trying to connect to Tor...", "gui_autoconnect_bridge_description": "Are you connected to the internet?

It's also possible your internet is being censored.

You might be able to bypass this using a bridge.", "gui_autoconnect_bridge_detect_automatic": "Automatically determine my country from my IP address", "gui_autoconnect_bridge_detect_manual": "Manually select my country", @@ -57,6 +58,7 @@ "gui_autoconnect_circumventing_censorship_starting_meek": "Starting Meek for domain-fronting", "gui_autoconnect_circumventing_censorship_requesting_bridges": "Requesting bridges from the Tor Censorship Circumvention API", "gui_autoconnect_circumventing_censorship_got_bridges": "Got bridges! Trying to reconnect to Tor", + "gui_autoconnect_could_not_connect_to_tor_api": "Could not connect to the Tor API. Make sure you are connected to the internet before trying again.", "gui_settings_window_title": "Settings", "gui_settings_autoupdate_label": "Check for new version", "gui_settings_autoupdate_option": "Notify me when a new version is available", -- cgit v1.2.3-54-g00ecf From 16d03ac377bf3bec0707bd635321a9cd49872890 Mon Sep 17 00:00:00 2001 From: Saptak S Date: Mon, 20 Dec 2021 16:57:08 +0530 Subject: Fixes dark mode for initial autoconnect tab --- desktop/src/onionshare/gui_common.py | 1 + .../onionshare/resources/images/dark_logo_text_bg.png | Bin 0 -> 9967 bytes 2 files changed, 1 insertion(+) create mode 100644 desktop/src/onionshare/resources/images/dark_logo_text_bg.png diff --git a/desktop/src/onionshare/gui_common.py b/desktop/src/onionshare/gui_common.py index 648a2260..09154da0 100644 --- a/desktop/src/onionshare/gui_common.py +++ b/desktop/src/onionshare/gui_common.py @@ -168,6 +168,7 @@ class GuiCommon: QCheckBox { margin-top: 30px; background: #FCFCFC; + color: #000000; border: 1px solid #DDDBDA; border-radius: 8px; padding: 24px 16px; diff --git a/desktop/src/onionshare/resources/images/dark_logo_text_bg.png b/desktop/src/onionshare/resources/images/dark_logo_text_bg.png new file mode 100644 index 00000000..065443b2 Binary files /dev/null and b/desktop/src/onionshare/resources/images/dark_logo_text_bg.png differ -- cgit v1.2.3-54-g00ecf From df27c22e12be2581c10efff90c2faeb87ec66f6f Mon Sep 17 00:00:00 2001 From: Micah Lee Date: Mon, 20 Dec 2021 11:47:58 -0800 Subject: Slightly tweak wording --- desktop/src/onionshare/resources/locale/en.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/desktop/src/onionshare/resources/locale/en.json b/desktop/src/onionshare/resources/locale/en.json index 8936b218..8b4a6301 100644 --- a/desktop/src/onionshare/resources/locale/en.json +++ b/desktop/src/onionshare/resources/locale/en.json @@ -44,9 +44,9 @@ "gui_tor_settings_window_title": "Tor Settings", "gui_autoconnect_description": "OnionShare relies on the Tor Network, run by thousands of volunteers around the world.", "gui_enable_autoconnect_checkbox": "Connect to Tor automatically", - "gui_autoconnect_failed_to_connect_to_tor": "Failed to connect to Tor.", - "gui_autoconnect_trying_to_connect_to_tor": "Trying to connect to Tor...", - "gui_autoconnect_bridge_description": "Are you connected to the internet?

It's also possible your internet is being censored.

You might be able to bypass this using a bridge.", + "gui_autoconnect_failed_to_connect_to_tor": "Failed to Connect to Tor", + "gui_autoconnect_trying_to_connect_to_tor": "Trying to Connect to Tor...", + "gui_autoconnect_bridge_description": "Are you connected to the internet?

It's also possible that your internet is being censored. You might be able to bypass this using a bridge.", "gui_autoconnect_bridge_detect_automatic": "Automatically determine my country from my IP address", "gui_autoconnect_bridge_detect_manual": "Manually select my country", "gui_autoconnect_start": "Connect to Tor", @@ -250,4 +250,4 @@ "moat_captcha_error": "The solution is not correct. Please try again.", "moat_solution_empty_error": "You must enter the characters from the image", "mode_tor_not_connected_label": "OnionShare is not connected to the Tor network" -} +} \ No newline at end of file -- cgit v1.2.3-54-g00ecf From 02503842807311320ec00fc65e98706c6d225352 Mon Sep 17 00:00:00 2001 From: Micah Lee Date: Sun, 13 Feb 2022 15:33:13 -0800 Subject: Add rocket ship animation --- desktop/onionshare/connection_tab.py | 110 ++++++++++++++++++++- desktop/onionshare/main_window.py | 8 +- .../resources/images/tor-connect-ship.png | Bin 0 -> 22600 bytes .../resources/images/tor-connect-smoke.png | Bin 0 -> 31638 bytes .../resources/images/tor-connect-stars.png | Bin 0 -> 14135 bytes desktop/onionshare/tab_widget.py | 5 +- desktop/onionshare/tor_connection.py | 4 + 7 files changed, 120 insertions(+), 7 deletions(-) create mode 100644 desktop/onionshare/resources/images/tor-connect-ship.png create mode 100644 desktop/onionshare/resources/images/tor-connect-smoke.png create mode 100644 desktop/onionshare/resources/images/tor-connect-stars.png diff --git a/desktop/onionshare/connection_tab.py b/desktop/onionshare/connection_tab.py index e67ca483..fc78ba15 100644 --- a/desktop/onionshare/connection_tab.py +++ b/desktop/onionshare/connection_tab.py @@ -20,8 +20,6 @@ along with this program. If not, see . import json import os -import random -import time from PySide2 import QtCore, QtWidgets, QtGui from onionshare_cli.censorship import ( @@ -51,13 +49,14 @@ class AutoConnectTab(QtWidgets.QWidget): tor_is_connected = QtCore.Signal() tor_is_disconnected = QtCore.Signal() - def __init__(self, common, tab_id, status_bar, parent=None): + def __init__(self, common, tab_id, status_bar, window, parent=None): super(AutoConnectTab, self).__init__() self.common = common self.common.log("AutoConnectTab", "__init__") self.status_bar = status_bar self.tab_id = tab_id + self.window = window self.parent = parent # Was auto connected? @@ -65,6 +64,11 @@ class AutoConnectTab(QtWidgets.QWidget): self.curr_settings.load() self.auto_connect_enabled = self.curr_settings.get("auto_connect") + # Rocket ship animation images + self.anim_stars = AnimStars(self, self.window) + self.anim_ship = AnimShip(self, self.window) + self.anim_smoke = AnimSmoke(self, self.window) + # Onionshare logo self.image_label = QtWidgets.QLabel() self.image_label.setPixmap( @@ -108,6 +112,9 @@ class AutoConnectTab(QtWidgets.QWidget): self.tor_con = TorConnectionWidget(self.common, self.status_bar) self.tor_con.success.connect(self.tor_con_success) self.tor_con.fail.connect(self.tor_con_fail) + self.tor_con.update_progress.connect(self.anim_stars.update) + self.tor_con.update_progress.connect(self.anim_ship.update) + self.tor_con.update_progress.connect(self.anim_smoke.update) self.tor_con.hide() # Layout @@ -328,6 +335,102 @@ class AutoConnectTab(QtWidgets.QWidget): self.first_launch_widget.show() +class Anim(QtWidgets.QLabel): + """ + Rocket ship animation base class + """ + + force_update = QtCore.Signal(int) + + def __init__(self, parent, window, w, h, filename): + super(Anim, self).__init__(parent=parent) + + self.window = window + self.window.window_resized.connect(self.update_same_percent) + + self.w = w + self.h = h + self.percent = 0 + self.used_percentages = [] + + self.setPixmap( + QtGui.QPixmap.fromImage( + QtGui.QImage( + GuiCommon.get_resource_path(os.path.join("images", filename)) + ) + ) + ) + self.setFixedSize(self.w, self.h) + self.update(0) + + self.force_update.connect(self.update) + + def update_same_percent(self): + self.update(self.percent) + + def update(self, percent): + self.percent = percent + self.move() + self.setGeometry(int(self.x), int(self.y), int(self.w), int(self.h)) + + def move(self): + # Implement in child + pass + + +class AnimStars(Anim): + """ + Rocket ship animation part: stars + """ + + def __init__(self, parent, window): + super(AnimStars, self).__init__( + parent, window, 780, 629, "tor-connect-stars.png" + ) + + def move(self): + self.x = self.window.width() - self.w + self.y = 0 + + # Stars don't move until 10%, then move down + if self.percent >= 10: + self.y += self.percent * 6.6 + + +class AnimShip(Anim): + """ + Rocket ship animation part: ship + """ + + def __init__(self, parent, window): + super(AnimShip, self).__init__(parent, window, 239, 545, "tor-connect-ship.png") + + def move(self): + self.x = self.window.width() - self.w - 150 + self.y = self.window.height() - self.h - 40 + # Ship moves up + self.y -= self.percent * 6.6 + + +class AnimSmoke(Anim): + """ + Rocket ship animation part: smoke + """ + + def __init__(self, parent, window): + super(AnimSmoke, self).__init__( + parent, window, 522, 158, "tor-connect-smoke.png" + ) + + def move(self): + self.x = self.window.width() - self.w + self.y = self.window.height() - self.h + 50 + # Smoke moves up until 50%, then moves down + self.y -= self.percent * 6.6 + if self.percent >= 50: + self.y += self.percent * 6.6 + + class AutoConnectFirstLaunchWidget(QtWidgets.QWidget): """ When you first launch OnionShare, this is the widget that is displayed @@ -346,7 +449,6 @@ class AutoConnectFirstLaunchWidget(QtWidgets.QWidget): # Description and checkbox description_label = QtWidgets.QLabel(strings._("gui_autoconnect_description")) - description_label.setWordWrap(True) self.enable_autoconnect_checkbox = ToggleCheckbox( strings._("gui_enable_autoconnect_checkbox") ) diff --git a/desktop/onionshare/main_window.py b/desktop/onionshare/main_window.py index 9c6f455f..a7dfe761 100644 --- a/desktop/onionshare/main_window.py +++ b/desktop/onionshare/main_window.py @@ -36,6 +36,8 @@ class MainWindow(QtWidgets.QMainWindow): MainWindow is the OnionShare main window, which contains the GUI elements, including all open tabs """ + window_resized = QtCore.Signal() + def __init__(self, common, filenames): super(MainWindow, self).__init__() @@ -140,7 +142,7 @@ class MainWindow(QtWidgets.QMainWindow): self.status_bar.addPermanentWidget(self.settings_button) # Tabs - self.tabs = TabWidget(self.common, self.system_tray, self.status_bar) + self.tabs = TabWidget(self.common, self.system_tray, self.status_bar, self) self.tabs.bring_to_front.connect(self.bring_to_front) # If we have saved persistent tabs, try opening those @@ -335,3 +337,7 @@ class MainWindow(QtWidgets.QMainWindow): # Wait 1 second for threads to close gracefully, so tests finally pass time.sleep(1) + + def resizeEvent(self, event): + self.window_resized.emit() + return super(MainWindow, self).resizeEvent(event) \ No newline at end of file diff --git a/desktop/onionshare/resources/images/tor-connect-ship.png b/desktop/onionshare/resources/images/tor-connect-ship.png new file mode 100644 index 00000000..5b8ede8b Binary files /dev/null and b/desktop/onionshare/resources/images/tor-connect-ship.png differ diff --git a/desktop/onionshare/resources/images/tor-connect-smoke.png b/desktop/onionshare/resources/images/tor-connect-smoke.png new file mode 100644 index 00000000..c0cab360 Binary files /dev/null and b/desktop/onionshare/resources/images/tor-connect-smoke.png differ diff --git a/desktop/onionshare/resources/images/tor-connect-stars.png b/desktop/onionshare/resources/images/tor-connect-stars.png new file mode 100644 index 00000000..9aa1ad4f Binary files /dev/null and b/desktop/onionshare/resources/images/tor-connect-stars.png differ diff --git a/desktop/onionshare/tab_widget.py b/desktop/onionshare/tab_widget.py index 29f443ac..4892b15f 100644 --- a/desktop/onionshare/tab_widget.py +++ b/desktop/onionshare/tab_widget.py @@ -38,13 +38,14 @@ class TabWidget(QtWidgets.QTabWidget): bring_to_front = QtCore.Signal() - def __init__(self, common, system_tray, status_bar): + def __init__(self, common, system_tray, status_bar, window): super(TabWidget, self).__init__() self.common = common self.common.log("TabWidget", "__init__") self.system_tray = system_tray self.status_bar = status_bar + self.window = window # Keep track of tabs in a dictionary that maps tab_id to tab. # Each tab has a unique, auto-incremented id (tab_id). This is different than the @@ -219,7 +220,7 @@ class TabWidget(QtWidgets.QTabWidget): return connection_tab = AutoConnectTab( - self.common, self.current_tab_id, self.status_bar, parent=self + self.common, self.current_tab_id, self.status_bar, self.window, parent=self ) connection_tab.close_this_tab.connect(self.close_connection_tab) connection_tab.tor_is_connected.connect(self.tor_is_connected) diff --git a/desktop/onionshare/tor_connection.py b/desktop/onionshare/tor_connection.py index f6b4bcb2..839757fd 100644 --- a/desktop/onionshare/tor_connection.py +++ b/desktop/onionshare/tor_connection.py @@ -49,6 +49,7 @@ class TorConnectionWidget(QtWidgets.QWidget): open_tor_settings = QtCore.Signal() success = QtCore.Signal() fail = QtCore.Signal(str) + update_progress = QtCore.Signal(int) def __init__(self, common, status_bar): super(TorConnectionWidget, self).__init__(None) @@ -120,6 +121,7 @@ class TorConnectionWidget(QtWidgets.QWidget): def _tor_status_update(self, progress, summary): self.progress.setValue(int(progress)) + self.update_progress.emit(int(progress)) self.label.setText( f"{strings._('connecting_to_tor')}
{summary}" ) @@ -131,6 +133,7 @@ class TorConnectionWidget(QtWidgets.QWidget): # Close the dialog after connecting self.progress.setValue(self.progress.maximum()) + self.update_progress.emit(int(self.progress.maximum())) self.success.emit() self._reset() @@ -153,6 +156,7 @@ class TorConnectionWidget(QtWidgets.QWidget): def _reset(self): self.label.setText("") self.progress.setValue(0) + self.update_progress.emit(0) class TorConnectionThread(QtCore.QThread): -- cgit v1.2.3-54-g00ecf From cf20d52e98d5c1d3e7a0dc21e3c4390ad0db1b08 Mon Sep 17 00:00:00 2001 From: Micah Lee Date: Sun, 13 Feb 2022 15:38:09 -0800 Subject: Tweak rocket ship --- desktop/onionshare/connection_tab.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/desktop/onionshare/connection_tab.py b/desktop/onionshare/connection_tab.py index fc78ba15..ccfc00df 100644 --- a/desktop/onionshare/connection_tab.py +++ b/desktop/onionshare/connection_tab.py @@ -391,7 +391,6 @@ class AnimStars(Anim): def move(self): self.x = self.window.width() - self.w self.y = 0 - # Stars don't move until 10%, then move down if self.percent >= 10: self.y += self.percent * 6.6 @@ -428,7 +427,7 @@ class AnimSmoke(Anim): # Smoke moves up until 50%, then moves down self.y -= self.percent * 6.6 if self.percent >= 50: - self.y += self.percent * 6.6 + self.y += self.percent * 6.7 class AutoConnectFirstLaunchWidget(QtWidgets.QWidget): -- cgit v1.2.3-54-g00ecf From 13f3a37e33803af841da367851800ca3b40f1cff Mon Sep 17 00:00:00 2001 From: Micah Lee Date: Sun, 13 Feb 2022 15:43:01 -0800 Subject: Delete country shapes --- desktop/onionshare/connection_tab.py | 33 +-------------------- .../resources/images/countries/ad-dark.png | Bin 2268 -> 0 bytes .../resources/images/countries/ad-light.png | Bin 2268 -> 0 bytes .../resources/images/countries/ae-dark.png | Bin 2306 -> 0 bytes .../resources/images/countries/ae-light.png | Bin 2306 -> 0 bytes .../resources/images/countries/af-dark.png | Bin 2307 -> 0 bytes .../resources/images/countries/af-light.png | Bin 2307 -> 0 bytes .../resources/images/countries/ag-dark.png | Bin 3253 -> 0 bytes .../resources/images/countries/ag-light.png | Bin 3253 -> 0 bytes .../resources/images/countries/ai-dark.png | Bin 2081 -> 0 bytes .../resources/images/countries/ai-light.png | Bin 2081 -> 0 bytes .../resources/images/countries/al-dark.png | Bin 2280 -> 0 bytes .../resources/images/countries/al-light.png | Bin 2280 -> 0 bytes .../resources/images/countries/am-dark.png | Bin 2695 -> 0 bytes .../resources/images/countries/am-light.png | Bin 2695 -> 0 bytes .../resources/images/countries/ao-dark.png | Bin 2191 -> 0 bytes .../resources/images/countries/ao-light.png | Bin 2191 -> 0 bytes .../resources/images/countries/aq-dark.png | Bin 3120 -> 0 bytes .../resources/images/countries/aq-light.png | Bin 3120 -> 0 bytes .../resources/images/countries/ar-dark.png | Bin 2492 -> 0 bytes .../resources/images/countries/ar-light.png | Bin 2492 -> 0 bytes .../resources/images/countries/as-dark.png | Bin 2291 -> 0 bytes .../resources/images/countries/as-light.png | Bin 2291 -> 0 bytes .../resources/images/countries/at-dark.png | Bin 3598 -> 0 bytes .../resources/images/countries/at-light.png | Bin 3598 -> 0 bytes .../resources/images/countries/au-dark.png | Bin 2973 -> 0 bytes .../resources/images/countries/au-light.png | Bin 2973 -> 0 bytes .../resources/images/countries/aw-dark.png | Bin 2685 -> 0 bytes .../resources/images/countries/aw-light.png | Bin 2685 -> 0 bytes .../resources/images/countries/ax-dark.png | Bin 2985 -> 0 bytes .../resources/images/countries/ax-light.png | Bin 2985 -> 0 bytes .../resources/images/countries/az-dark.png | Bin 3352 -> 0 bytes .../resources/images/countries/az-light.png | Bin 3352 -> 0 bytes .../resources/images/countries/ba-dark.png | Bin 2863 -> 0 bytes .../resources/images/countries/ba-light.png | Bin 2863 -> 0 bytes .../resources/images/countries/bb-dark.png | Bin 2511 -> 0 bytes .../resources/images/countries/bb-light.png | Bin 2511 -> 0 bytes .../resources/images/countries/bd-dark.png | Bin 3710 -> 0 bytes .../resources/images/countries/bd-light.png | Bin 3710 -> 0 bytes .../resources/images/countries/be-dark.png | Bin 2780 -> 0 bytes .../resources/images/countries/be-light.png | Bin 2780 -> 0 bytes .../resources/images/countries/bf-dark.png | Bin 2363 -> 0 bytes .../resources/images/countries/bf-light.png | Bin 2363 -> 0 bytes .../resources/images/countries/bg-dark.png | Bin 2319 -> 0 bytes .../resources/images/countries/bg-light.png | Bin 2319 -> 0 bytes .../resources/images/countries/bh-dark.png | Bin 2617 -> 0 bytes .../resources/images/countries/bh-light.png | Bin 2617 -> 0 bytes .../resources/images/countries/bi-dark.png | Bin 2785 -> 0 bytes .../resources/images/countries/bi-light.png | Bin 2785 -> 0 bytes .../resources/images/countries/bj-dark.png | Bin 2203 -> 0 bytes .../resources/images/countries/bj-light.png | Bin 2203 -> 0 bytes .../resources/images/countries/bl-dark.png | Bin 2704 -> 0 bytes .../resources/images/countries/bl-light.png | Bin 2704 -> 0 bytes .../resources/images/countries/bm-dark.png | Bin 3540 -> 0 bytes .../resources/images/countries/bm-light.png | Bin 3540 -> 0 bytes .../resources/images/countries/bn-dark.png | Bin 2932 -> 0 bytes .../resources/images/countries/bn-light.png | Bin 2932 -> 0 bytes .../resources/images/countries/bo-dark.png | Bin 2757 -> 0 bytes .../resources/images/countries/bo-light.png | Bin 2757 -> 0 bytes .../resources/images/countries/bq-dark.png | Bin 2658 -> 0 bytes .../resources/images/countries/bq-light.png | Bin 2658 -> 0 bytes .../resources/images/countries/br-dark.png | Bin 2683 -> 0 bytes .../resources/images/countries/br-light.png | Bin 2683 -> 0 bytes .../resources/images/countries/bs-dark.png | Bin 2680 -> 0 bytes .../resources/images/countries/bs-light.png | Bin 2680 -> 0 bytes .../resources/images/countries/bt-dark.png | Bin 2075 -> 0 bytes .../resources/images/countries/bt-light.png | Bin 2075 -> 0 bytes .../resources/images/countries/bv-dark.png | Bin 2143 -> 0 bytes .../resources/images/countries/bv-light.png | Bin 2143 -> 0 bytes .../resources/images/countries/bw-dark.png | Bin 2250 -> 0 bytes .../resources/images/countries/bw-light.png | Bin 2250 -> 0 bytes .../resources/images/countries/by-dark.png | Bin 2695 -> 0 bytes .../resources/images/countries/by-light.png | Bin 2695 -> 0 bytes .../resources/images/countries/bz-dark.png | Bin 2485 -> 0 bytes .../resources/images/countries/bz-light.png | Bin 2485 -> 0 bytes .../resources/images/countries/ca-dark.png | Bin 5288 -> 0 bytes .../resources/images/countries/ca-light.png | Bin 5288 -> 0 bytes .../resources/images/countries/cc-dark.png | Bin 3437 -> 0 bytes .../resources/images/countries/cc-light.png | Bin 3437 -> 0 bytes .../resources/images/countries/cd-dark.png | Bin 2474 -> 0 bytes .../resources/images/countries/cd-light.png | Bin 2474 -> 0 bytes .../resources/images/countries/cf-dark.png | Bin 2167 -> 0 bytes .../resources/images/countries/cf-light.png | Bin 2167 -> 0 bytes .../resources/images/countries/cg-dark.png | Bin 2962 -> 0 bytes .../resources/images/countries/cg-light.png | Bin 2962 -> 0 bytes .../resources/images/countries/ch-dark.png | Bin 2806 -> 0 bytes .../resources/images/countries/ch-light.png | Bin 2806 -> 0 bytes .../resources/images/countries/ci-dark.png | Bin 2828 -> 0 bytes .../resources/images/countries/ci-light.png | Bin 2828 -> 0 bytes .../resources/images/countries/ck-dark.png | Bin 2166 -> 0 bytes .../resources/images/countries/ck-light.png | Bin 2166 -> 0 bytes .../resources/images/countries/cl-dark.png | Bin 2208 -> 0 bytes .../resources/images/countries/cl-light.png | Bin 2208 -> 0 bytes .../resources/images/countries/cm-dark.png | Bin 2632 -> 0 bytes .../resources/images/countries/cm-light.png | Bin 2632 -> 0 bytes .../resources/images/countries/cn-dark.png | Bin 3009 -> 0 bytes .../resources/images/countries/cn-light.png | Bin 3009 -> 0 bytes .../resources/images/countries/co-dark.png | Bin 2727 -> 0 bytes .../resources/images/countries/co-light.png | Bin 2727 -> 0 bytes .../resources/images/countries/cr-dark.png | Bin 3183 -> 0 bytes .../resources/images/countries/cr-light.png | Bin 3183 -> 0 bytes .../resources/images/countries/cu-dark.png | Bin 1994 -> 0 bytes .../resources/images/countries/cu-light.png | Bin 1994 -> 0 bytes .../resources/images/countries/cv-dark.png | Bin 2297 -> 0 bytes .../resources/images/countries/cv-light.png | Bin 2297 -> 0 bytes .../resources/images/countries/cw-dark.png | Bin 2017 -> 0 bytes .../resources/images/countries/cw-light.png | Bin 2017 -> 0 bytes .../resources/images/countries/cx-dark.png | Bin 2577 -> 0 bytes .../resources/images/countries/cx-light.png | Bin 2577 -> 0 bytes .../resources/images/countries/cy-dark.png | Bin 2058 -> 0 bytes .../resources/images/countries/cy-light.png | Bin 2058 -> 0 bytes .../resources/images/countries/cz-dark.png | Bin 2360 -> 0 bytes .../resources/images/countries/cz-light.png | Bin 2360 -> 0 bytes .../resources/images/countries/de-dark.png | Bin 3419 -> 0 bytes .../resources/images/countries/de-light.png | Bin 3419 -> 0 bytes .../resources/images/countries/dj-dark.png | Bin 2940 -> 0 bytes .../resources/images/countries/dj-light.png | Bin 2940 -> 0 bytes .../resources/images/countries/dk-dark.png | Bin 4913 -> 0 bytes .../resources/images/countries/dk-light.png | Bin 4913 -> 0 bytes .../resources/images/countries/dm-dark.png | Bin 2265 -> 0 bytes .../resources/images/countries/dm-light.png | Bin 2265 -> 0 bytes .../resources/images/countries/do-dark.png | Bin 2542 -> 0 bytes .../resources/images/countries/do-light.png | Bin 2542 -> 0 bytes .../resources/images/countries/dz-dark.png | Bin 2316 -> 0 bytes .../resources/images/countries/dz-light.png | Bin 2316 -> 0 bytes .../resources/images/countries/ec-dark.png | Bin 3017 -> 0 bytes .../resources/images/countries/ec-light.png | Bin 3017 -> 0 bytes .../resources/images/countries/ee-dark.png | Bin 3069 -> 0 bytes .../resources/images/countries/ee-light.png | Bin 3069 -> 0 bytes .../resources/images/countries/eg-dark.png | Bin 2592 -> 0 bytes .../resources/images/countries/eg-light.png | Bin 2592 -> 0 bytes .../resources/images/countries/eh-dark.png | Bin 1840 -> 0 bytes .../resources/images/countries/eh-light.png | Bin 1840 -> 0 bytes .../resources/images/countries/er-dark.png | Bin 2957 -> 0 bytes .../resources/images/countries/er-light.png | Bin 2957 -> 0 bytes .../resources/images/countries/es-dark.png | Bin 2612 -> 0 bytes .../resources/images/countries/es-light.png | Bin 2612 -> 0 bytes .../resources/images/countries/et-dark.png | Bin 2396 -> 0 bytes .../resources/images/countries/et-light.png | Bin 2396 -> 0 bytes .../resources/images/countries/fi-dark.png | Bin 2747 -> 0 bytes .../resources/images/countries/fi-light.png | Bin 2747 -> 0 bytes .../resources/images/countries/fj-dark.png | Bin 3076 -> 0 bytes .../resources/images/countries/fj-light.png | Bin 3076 -> 0 bytes .../resources/images/countries/fk-dark.png | Bin 5712 -> 0 bytes .../resources/images/countries/fk-light.png | Bin 5712 -> 0 bytes .../resources/images/countries/fo-dark.png | Bin 3927 -> 0 bytes .../resources/images/countries/fo-light.png | Bin 3927 -> 0 bytes .../resources/images/countries/fr-dark.png | Bin 3194 -> 0 bytes .../resources/images/countries/fr-light.png | Bin 3194 -> 0 bytes .../resources/images/countries/ga-dark.png | Bin 2879 -> 0 bytes .../resources/images/countries/ga-light.png | Bin 2879 -> 0 bytes .../resources/images/countries/gb-dark.png | Bin 4178 -> 0 bytes .../resources/images/countries/gb-light.png | Bin 4178 -> 0 bytes .../resources/images/countries/gd-dark.png | Bin 3012 -> 0 bytes .../resources/images/countries/gd-light.png | Bin 3012 -> 0 bytes .../resources/images/countries/ge-dark.png | Bin 2110 -> 0 bytes .../resources/images/countries/ge-light.png | Bin 2110 -> 0 bytes .../resources/images/countries/gf-dark.png | Bin 2505 -> 0 bytes .../resources/images/countries/gf-light.png | Bin 2505 -> 0 bytes .../resources/images/countries/gg-dark.png | Bin 3145 -> 0 bytes .../resources/images/countries/gg-light.png | Bin 3145 -> 0 bytes .../resources/images/countries/gh-dark.png | Bin 2456 -> 0 bytes .../resources/images/countries/gh-light.png | Bin 2456 -> 0 bytes .../resources/images/countries/gi-dark.png | Bin 2883 -> 0 bytes .../resources/images/countries/gi-light.png | Bin 2883 -> 0 bytes .../resources/images/countries/gl-dark.png | Bin 3105 -> 0 bytes .../resources/images/countries/gl-light.png | Bin 3105 -> 0 bytes .../resources/images/countries/gm-dark.png | Bin 1681 -> 0 bytes .../resources/images/countries/gm-light.png | Bin 1681 -> 0 bytes .../resources/images/countries/gn-dark.png | Bin 2862 -> 0 bytes .../resources/images/countries/gn-light.png | Bin 2862 -> 0 bytes .../resources/images/countries/gp-dark.png | Bin 2950 -> 0 bytes .../resources/images/countries/gp-light.png | Bin 2950 -> 0 bytes .../resources/images/countries/gq-dark.png | Bin 1799 -> 0 bytes .../resources/images/countries/gq-light.png | Bin 1799 -> 0 bytes .../resources/images/countries/gr-dark.png | Bin 5540 -> 0 bytes .../resources/images/countries/gr-light.png | Bin 5540 -> 0 bytes .../resources/images/countries/gs-dark.png | Bin 3355 -> 0 bytes .../resources/images/countries/gs-light.png | Bin 3355 -> 0 bytes .../resources/images/countries/gt-dark.png | Bin 2276 -> 0 bytes .../resources/images/countries/gt-light.png | Bin 2276 -> 0 bytes .../resources/images/countries/gu-dark.png | Bin 2734 -> 0 bytes .../resources/images/countries/gu-light.png | Bin 2734 -> 0 bytes .../resources/images/countries/gw-dark.png | Bin 3457 -> 0 bytes .../resources/images/countries/gw-light.png | Bin 3457 -> 0 bytes .../resources/images/countries/gy-dark.png | Bin 2618 -> 0 bytes .../resources/images/countries/gy-light.png | Bin 2618 -> 0 bytes .../resources/images/countries/hk-dark.png | Bin 5635 -> 0 bytes .../resources/images/countries/hk-light.png | Bin 5635 -> 0 bytes .../resources/images/countries/hm-dark.png | Bin 2180 -> 0 bytes .../resources/images/countries/hm-light.png | Bin 2180 -> 0 bytes .../resources/images/countries/hn-dark.png | Bin 2340 -> 0 bytes .../resources/images/countries/hn-light.png | Bin 2340 -> 0 bytes .../resources/images/countries/hr-dark.png | Bin 4228 -> 0 bytes .../resources/images/countries/hr-light.png | Bin 4228 -> 0 bytes .../resources/images/countries/ht-dark.png | Bin 3333 -> 0 bytes .../resources/images/countries/ht-light.png | Bin 3333 -> 0 bytes .../resources/images/countries/hu-dark.png | Bin 2299 -> 0 bytes .../resources/images/countries/hu-light.png | Bin 2299 -> 0 bytes .../resources/images/countries/id-dark.png | Bin 3218 -> 0 bytes .../resources/images/countries/id-light.png | Bin 3218 -> 0 bytes .../resources/images/countries/ie-dark.png | Bin 3812 -> 0 bytes .../resources/images/countries/ie-light.png | Bin 3812 -> 0 bytes .../resources/images/countries/il-dark.png | Bin 2272 -> 0 bytes .../resources/images/countries/il-light.png | Bin 2272 -> 0 bytes .../resources/images/countries/im-dark.png | Bin 2601 -> 0 bytes .../resources/images/countries/im-light.png | Bin 2601 -> 0 bytes .../resources/images/countries/in-dark.png | Bin 3182 -> 0 bytes .../resources/images/countries/in-light.png | Bin 3182 -> 0 bytes .../resources/images/countries/io-dark.png | Bin 3312 -> 0 bytes .../resources/images/countries/io-light.png | Bin 3312 -> 0 bytes .../resources/images/countries/iq-dark.png | Bin 2282 -> 0 bytes .../resources/images/countries/iq-light.png | Bin 2282 -> 0 bytes .../resources/images/countries/ir-dark.png | Bin 2634 -> 0 bytes .../resources/images/countries/ir-light.png | Bin 2634 -> 0 bytes .../resources/images/countries/is-dark.png | Bin 4079 -> 0 bytes .../resources/images/countries/is-light.png | Bin 4079 -> 0 bytes .../resources/images/countries/it-dark.png | Bin 3435 -> 0 bytes .../resources/images/countries/it-light.png | Bin 3435 -> 0 bytes .../resources/images/countries/jm-dark.png | Bin 1802 -> 0 bytes .../resources/images/countries/jm-light.png | Bin 1802 -> 0 bytes .../resources/images/countries/jo-dark.png | Bin 2658 -> 0 bytes .../resources/images/countries/jo-light.png | Bin 2658 -> 0 bytes .../resources/images/countries/jp-dark.png | Bin 3613 -> 0 bytes .../resources/images/countries/jp-light.png | Bin 3613 -> 0 bytes .../resources/images/countries/ke-dark.png | Bin 2374 -> 0 bytes .../resources/images/countries/ke-light.png | Bin 2374 -> 0 bytes .../resources/images/countries/kg-dark.png | Bin 2024 -> 0 bytes .../resources/images/countries/kg-light.png | Bin 2024 -> 0 bytes .../resources/images/countries/kh-dark.png | Bin 2735 -> 0 bytes .../resources/images/countries/kh-light.png | Bin 2735 -> 0 bytes .../resources/images/countries/ki-dark.png | Bin 3144 -> 0 bytes .../resources/images/countries/ki-light.png | Bin 3144 -> 0 bytes .../resources/images/countries/km-dark.png | Bin 1966 -> 0 bytes .../resources/images/countries/km-light.png | Bin 1966 -> 0 bytes .../resources/images/countries/kn-dark.png | Bin 2508 -> 0 bytes .../resources/images/countries/kn-light.png | Bin 2508 -> 0 bytes .../resources/images/countries/kp-dark.png | Bin 3235 -> 0 bytes .../resources/images/countries/kp-light.png | Bin 3235 -> 0 bytes .../resources/images/countries/kr-dark.png | Bin 3366 -> 0 bytes .../resources/images/countries/kr-light.png | Bin 3366 -> 0 bytes .../resources/images/countries/kw-dark.png | Bin 3096 -> 0 bytes .../resources/images/countries/kw-light.png | Bin 3096 -> 0 bytes .../resources/images/countries/ky-dark.png | Bin 2207 -> 0 bytes .../resources/images/countries/ky-light.png | Bin 2207 -> 0 bytes .../resources/images/countries/kz-dark.png | Bin 2430 -> 0 bytes .../resources/images/countries/kz-light.png | Bin 2430 -> 0 bytes .../resources/images/countries/la-dark.png | Bin 2938 -> 0 bytes .../resources/images/countries/la-light.png | Bin 2938 -> 0 bytes .../resources/images/countries/lb-dark.png | Bin 2553 -> 0 bytes .../resources/images/countries/lb-light.png | Bin 2553 -> 0 bytes .../resources/images/countries/lc-dark.png | Bin 2600 -> 0 bytes .../resources/images/countries/lc-light.png | Bin 2600 -> 0 bytes .../resources/images/countries/li-dark.png | Bin 2642 -> 0 bytes .../resources/images/countries/li-light.png | Bin 2642 -> 0 bytes .../resources/images/countries/lk-dark.png | Bin 2761 -> 0 bytes .../resources/images/countries/lk-light.png | Bin 2761 -> 0 bytes .../resources/images/countries/lr-dark.png | Bin 2755 -> 0 bytes .../resources/images/countries/lr-light.png | Bin 2755 -> 0 bytes .../resources/images/countries/ls-dark.png | Bin 2381 -> 0 bytes .../resources/images/countries/ls-light.png | Bin 2381 -> 0 bytes .../resources/images/countries/lt-dark.png | Bin 2434 -> 0 bytes .../resources/images/countries/lt-light.png | Bin 2434 -> 0 bytes .../resources/images/countries/lu-dark.png | Bin 2607 -> 0 bytes .../resources/images/countries/lu-light.png | Bin 2607 -> 0 bytes .../resources/images/countries/lv-dark.png | Bin 2337 -> 0 bytes .../resources/images/countries/lv-light.png | Bin 2337 -> 0 bytes .../resources/images/countries/ly-dark.png | Bin 2261 -> 0 bytes .../resources/images/countries/ly-light.png | Bin 2261 -> 0 bytes .../resources/images/countries/ma-dark.png | Bin 2199 -> 0 bytes .../resources/images/countries/ma-light.png | Bin 2199 -> 0 bytes .../resources/images/countries/mc-dark.png | Bin 2930 -> 0 bytes .../resources/images/countries/mc-light.png | Bin 2930 -> 0 bytes .../resources/images/countries/md-dark.png | Bin 2719 -> 0 bytes .../resources/images/countries/md-light.png | Bin 2719 -> 0 bytes .../resources/images/countries/me-dark.png | Bin 3031 -> 0 bytes .../resources/images/countries/me-light.png | Bin 3031 -> 0 bytes .../resources/images/countries/mf-dark.png | Bin 2999 -> 0 bytes .../resources/images/countries/mf-light.png | Bin 2999 -> 0 bytes .../resources/images/countries/mg-dark.png | Bin 2493 -> 0 bytes .../resources/images/countries/mg-light.png | Bin 2493 -> 0 bytes .../resources/images/countries/mk-dark.png | Bin 2464 -> 0 bytes .../resources/images/countries/mk-light.png | Bin 2464 -> 0 bytes .../resources/images/countries/ml-dark.png | Bin 2483 -> 0 bytes .../resources/images/countries/ml-light.png | Bin 2483 -> 0 bytes .../resources/images/countries/mm-dark.png | Bin 2896 -> 0 bytes .../resources/images/countries/mm-light.png | Bin 2896 -> 0 bytes .../resources/images/countries/mn-dark.png | Bin 2043 -> 0 bytes .../resources/images/countries/mn-light.png | Bin 2043 -> 0 bytes .../resources/images/countries/mo-dark.png | Bin 3477 -> 0 bytes .../resources/images/countries/mo-light.png | Bin 3477 -> 0 bytes .../resources/images/countries/mq-dark.png | Bin 3467 -> 0 bytes .../resources/images/countries/mq-light.png | Bin 3467 -> 0 bytes .../resources/images/countries/mr-dark.png | Bin 2255 -> 0 bytes .../resources/images/countries/mr-light.png | Bin 2255 -> 0 bytes .../resources/images/countries/ms-dark.png | Bin 2305 -> 0 bytes .../resources/images/countries/ms-light.png | Bin 2305 -> 0 bytes .../resources/images/countries/mt-dark.png | Bin 3182 -> 0 bytes .../resources/images/countries/mt-light.png | Bin 3182 -> 0 bytes .../resources/images/countries/mu-dark.png | Bin 2777 -> 0 bytes .../resources/images/countries/mu-light.png | Bin 2777 -> 0 bytes .../resources/images/countries/mv-dark.png | Bin 2158 -> 0 bytes .../resources/images/countries/mv-light.png | Bin 2158 -> 0 bytes .../resources/images/countries/mw-dark.png | Bin 2672 -> 0 bytes .../resources/images/countries/mw-light.png | Bin 2672 -> 0 bytes .../resources/images/countries/mx-dark.png | Bin 2856 -> 0 bytes .../resources/images/countries/mx-light.png | Bin 2856 -> 0 bytes .../resources/images/countries/my-dark.png | Bin 2810 -> 0 bytes .../resources/images/countries/my-light.png | Bin 2810 -> 0 bytes .../resources/images/countries/mz-dark.png | Bin 2686 -> 0 bytes .../resources/images/countries/mz-light.png | Bin 2686 -> 0 bytes .../resources/images/countries/na-dark.png | Bin 2124 -> 0 bytes .../resources/images/countries/na-light.png | Bin 2124 -> 0 bytes .../resources/images/countries/nc-dark.png | Bin 2797 -> 0 bytes .../resources/images/countries/nc-light.png | Bin 2797 -> 0 bytes .../resources/images/countries/ne-dark.png | Bin 2146 -> 0 bytes .../resources/images/countries/ne-light.png | Bin 2146 -> 0 bytes .../resources/images/countries/nf-dark.png | Bin 2790 -> 0 bytes .../resources/images/countries/nf-light.png | Bin 2790 -> 0 bytes .../resources/images/countries/ng-dark.png | Bin 2421 -> 0 bytes .../resources/images/countries/ng-light.png | Bin 2421 -> 0 bytes .../resources/images/countries/ni-dark.png | Bin 2713 -> 0 bytes .../resources/images/countries/ni-light.png | Bin 2713 -> 0 bytes .../resources/images/countries/nl-dark.png | Bin 4318 -> 0 bytes .../resources/images/countries/nl-light.png | Bin 4318 -> 0 bytes .../resources/images/countries/no-dark.png | Bin 3558 -> 0 bytes .../resources/images/countries/no-light.png | Bin 3558 -> 0 bytes .../resources/images/countries/np-dark.png | Bin 2031 -> 0 bytes .../resources/images/countries/np-light.png | Bin 2031 -> 0 bytes .../resources/images/countries/nr-dark.png | Bin 2265 -> 0 bytes .../resources/images/countries/nr-light.png | Bin 2265 -> 0 bytes .../resources/images/countries/nu-dark.png | Bin 2321 -> 0 bytes .../resources/images/countries/nu-light.png | Bin 2321 -> 0 bytes .../resources/images/countries/nz-dark.png | Bin 3088 -> 0 bytes .../resources/images/countries/nz-light.png | Bin 3088 -> 0 bytes .../resources/images/countries/om-dark.png | Bin 2602 -> 0 bytes .../resources/images/countries/om-light.png | Bin 2602 -> 0 bytes .../resources/images/countries/pa-dark.png | Bin 2752 -> 0 bytes .../resources/images/countries/pa-light.png | Bin 2752 -> 0 bytes .../resources/images/countries/pe-dark.png | Bin 2716 -> 0 bytes .../resources/images/countries/pe-light.png | Bin 2716 -> 0 bytes .../resources/images/countries/pf-dark.png | Bin 2873 -> 0 bytes .../resources/images/countries/pf-light.png | Bin 2873 -> 0 bytes .../resources/images/countries/pg-dark.png | Bin 2673 -> 0 bytes .../resources/images/countries/pg-light.png | Bin 2673 -> 0 bytes .../resources/images/countries/ph-dark.png | Bin 4193 -> 0 bytes .../resources/images/countries/ph-light.png | Bin 4193 -> 0 bytes .../resources/images/countries/pk-dark.png | Bin 2862 -> 0 bytes .../resources/images/countries/pk-light.png | Bin 2862 -> 0 bytes .../resources/images/countries/pl-dark.png | Bin 2449 -> 0 bytes .../resources/images/countries/pl-light.png | Bin 2449 -> 0 bytes .../resources/images/countries/pm-dark.png | Bin 3047 -> 0 bytes .../resources/images/countries/pm-light.png | Bin 3047 -> 0 bytes .../resources/images/countries/pn-dark.png | Bin 1997 -> 0 bytes .../resources/images/countries/pn-light.png | Bin 1997 -> 0 bytes .../resources/images/countries/pr-dark.png | Bin 1777 -> 0 bytes .../resources/images/countries/pr-light.png | Bin 1777 -> 0 bytes .../resources/images/countries/pt-dark.png | Bin 2776 -> 0 bytes .../resources/images/countries/pt-light.png | Bin 2776 -> 0 bytes .../resources/images/countries/pw-dark.png | Bin 2566 -> 0 bytes .../resources/images/countries/pw-light.png | Bin 2566 -> 0 bytes .../resources/images/countries/py-dark.png | Bin 2571 -> 0 bytes .../resources/images/countries/py-light.png | Bin 2571 -> 0 bytes .../resources/images/countries/qa-dark.png | Bin 2720 -> 0 bytes .../resources/images/countries/qa-light.png | Bin 2720 -> 0 bytes .../resources/images/countries/re-dark.png | Bin 2323 -> 0 bytes .../resources/images/countries/re-light.png | Bin 2323 -> 0 bytes .../resources/images/countries/ro-dark.png | Bin 2291 -> 0 bytes .../resources/images/countries/ro-light.png | Bin 2291 -> 0 bytes .../resources/images/countries/rs-dark.png | Bin 2808 -> 0 bytes .../resources/images/countries/rs-light.png | Bin 2808 -> 0 bytes .../resources/images/countries/ru-dark.png | Bin 3412 -> 0 bytes .../resources/images/countries/ru-light.png | Bin 3412 -> 0 bytes .../resources/images/countries/rw-dark.png | Bin 2460 -> 0 bytes .../resources/images/countries/rw-light.png | Bin 2460 -> 0 bytes .../resources/images/countries/sa-dark.png | Bin 2460 -> 0 bytes .../resources/images/countries/sa-light.png | Bin 2460 -> 0 bytes .../resources/images/countries/sb-dark.png | Bin 2920 -> 0 bytes .../resources/images/countries/sb-light.png | Bin 2920 -> 0 bytes .../resources/images/countries/sc-dark.png | Bin 2245 -> 0 bytes .../resources/images/countries/sc-light.png | Bin 2245 -> 0 bytes .../resources/images/countries/sd-dark.png | Bin 2327 -> 0 bytes .../resources/images/countries/sd-light.png | Bin 2327 -> 0 bytes .../resources/images/countries/se-dark.png | Bin 2782 -> 0 bytes .../resources/images/countries/se-light.png | Bin 2782 -> 0 bytes .../resources/images/countries/sg-dark.png | Bin 3363 -> 0 bytes .../resources/images/countries/sg-light.png | Bin 3363 -> 0 bytes .../resources/images/countries/sh-dark.png | Bin 2436 -> 0 bytes .../resources/images/countries/sh-light.png | Bin 2436 -> 0 bytes .../resources/images/countries/si-dark.png | Bin 2558 -> 0 bytes .../resources/images/countries/si-light.png | Bin 2558 -> 0 bytes .../resources/images/countries/sj-dark.png | Bin 1847 -> 0 bytes .../resources/images/countries/sj-light.png | Bin 1847 -> 0 bytes .../resources/images/countries/sk-dark.png | Bin 2122 -> 0 bytes .../resources/images/countries/sk-light.png | Bin 2122 -> 0 bytes .../resources/images/countries/sl-dark.png | Bin 3089 -> 0 bytes .../resources/images/countries/sl-light.png | Bin 3089 -> 0 bytes .../resources/images/countries/sm-dark.png | Bin 2537 -> 0 bytes .../resources/images/countries/sm-light.png | Bin 2537 -> 0 bytes .../resources/images/countries/sn-dark.png | Bin 2946 -> 0 bytes .../resources/images/countries/sn-light.png | Bin 2946 -> 0 bytes .../resources/images/countries/so-dark.png | Bin 2424 -> 0 bytes .../resources/images/countries/so-light.png | Bin 2424 -> 0 bytes .../resources/images/countries/sr-dark.png | Bin 2739 -> 0 bytes .../resources/images/countries/sr-light.png | Bin 2739 -> 0 bytes .../resources/images/countries/ss-dark.png | Bin 2294 -> 0 bytes .../resources/images/countries/ss-light.png | Bin 2294 -> 0 bytes .../resources/images/countries/st-dark.png | Bin 2740 -> 0 bytes .../resources/images/countries/st-light.png | Bin 2740 -> 0 bytes .../resources/images/countries/sv-dark.png | Bin 2136 -> 0 bytes .../resources/images/countries/sv-light.png | Bin 2136 -> 0 bytes .../resources/images/countries/sx-dark.png | Bin 2984 -> 0 bytes .../resources/images/countries/sx-light.png | Bin 2984 -> 0 bytes .../resources/images/countries/sy-dark.png | Bin 2458 -> 0 bytes .../resources/images/countries/sy-light.png | Bin 2458 -> 0 bytes .../resources/images/countries/sz-dark.png | Bin 2233 -> 0 bytes .../resources/images/countries/sz-light.png | Bin 2233 -> 0 bytes .../resources/images/countries/tc-dark.png | Bin 3911 -> 0 bytes .../resources/images/countries/tc-light.png | Bin 3911 -> 0 bytes .../resources/images/countries/td-dark.png | Bin 2162 -> 0 bytes .../resources/images/countries/td-light.png | Bin 2162 -> 0 bytes .../resources/images/countries/tf-dark.png | Bin 6236 -> 0 bytes .../resources/images/countries/tf-light.png | Bin 6236 -> 0 bytes .../resources/images/countries/tg-dark.png | Bin 2146 -> 0 bytes .../resources/images/countries/tg-light.png | Bin 2146 -> 0 bytes .../resources/images/countries/th-dark.png | Bin 2976 -> 0 bytes .../resources/images/countries/th-light.png | Bin 2976 -> 0 bytes .../resources/images/countries/tj-dark.png | Bin 2801 -> 0 bytes .../resources/images/countries/tj-light.png | Bin 2801 -> 0 bytes .../resources/images/countries/tk-dark.png | Bin 897 -> 0 bytes .../resources/images/countries/tk-light.png | Bin 897 -> 0 bytes .../resources/images/countries/tl-dark.png | Bin 1794 -> 0 bytes .../resources/images/countries/tl-light.png | Bin 1794 -> 0 bytes .../resources/images/countries/tm-dark.png | Bin 2330 -> 0 bytes .../resources/images/countries/tm-light.png | Bin 2330 -> 0 bytes .../resources/images/countries/tn-dark.png | Bin 2530 -> 0 bytes .../resources/images/countries/tn-light.png | Bin 2530 -> 0 bytes .../resources/images/countries/to-dark.png | Bin 2288 -> 0 bytes .../resources/images/countries/to-light.png | Bin 2288 -> 0 bytes .../resources/images/countries/tr-dark.png | Bin 2226 -> 0 bytes .../resources/images/countries/tr-light.png | Bin 2226 -> 0 bytes .../resources/images/countries/tt-dark.png | Bin 2353 -> 0 bytes .../resources/images/countries/tt-light.png | Bin 2353 -> 0 bytes .../resources/images/countries/tw-dark.png | Bin 2482 -> 0 bytes .../resources/images/countries/tw-light.png | Bin 2482 -> 0 bytes .../resources/images/countries/tz-dark.png | Bin 3093 -> 0 bytes .../resources/images/countries/tz-light.png | Bin 3093 -> 0 bytes .../resources/images/countries/ua-dark.png | Bin 2788 -> 0 bytes .../resources/images/countries/ua-light.png | Bin 2788 -> 0 bytes .../resources/images/countries/ug-dark.png | Bin 3055 -> 0 bytes .../resources/images/countries/ug-light.png | Bin 3055 -> 0 bytes .../resources/images/countries/us-dark.png | Bin 2796 -> 0 bytes .../resources/images/countries/us-light.png | Bin 2796 -> 0 bytes .../resources/images/countries/uy-dark.png | Bin 2648 -> 0 bytes .../resources/images/countries/uy-light.png | Bin 2648 -> 0 bytes .../resources/images/countries/uz-dark.png | Bin 2552 -> 0 bytes .../resources/images/countries/uz-light.png | Bin 2552 -> 0 bytes .../resources/images/countries/va-dark.png | Bin 2058 -> 0 bytes .../resources/images/countries/va-light.png | Bin 2058 -> 0 bytes .../resources/images/countries/vc-dark.png | Bin 1893 -> 0 bytes .../resources/images/countries/vc-light.png | Bin 1893 -> 0 bytes .../resources/images/countries/ve-dark.png | Bin 2986 -> 0 bytes .../resources/images/countries/ve-light.png | Bin 2986 -> 0 bytes .../resources/images/countries/vg-dark.png | Bin 3121 -> 0 bytes .../resources/images/countries/vg-light.png | Bin 3121 -> 0 bytes .../resources/images/countries/vi-dark.png | Bin 2622 -> 0 bytes .../resources/images/countries/vi-light.png | Bin 2622 -> 0 bytes .../resources/images/countries/vn-dark.png | Bin 2985 -> 0 bytes .../resources/images/countries/vn-light.png | Bin 2985 -> 0 bytes .../resources/images/countries/vu-dark.png | Bin 2353 -> 0 bytes .../resources/images/countries/vu-light.png | Bin 2353 -> 0 bytes .../resources/images/countries/wf-dark.png | Bin 2451 -> 0 bytes .../resources/images/countries/wf-light.png | Bin 2451 -> 0 bytes .../resources/images/countries/ws-dark.png | Bin 1799 -> 0 bytes .../resources/images/countries/ws-light.png | Bin 1799 -> 0 bytes .../resources/images/countries/ye-dark.png | Bin 2294 -> 0 bytes .../resources/images/countries/ye-light.png | Bin 2294 -> 0 bytes .../resources/images/countries/yt-dark.png | Bin 3392 -> 0 bytes .../resources/images/countries/yt-light.png | Bin 3392 -> 0 bytes .../resources/images/countries/za-dark.png | Bin 2643 -> 0 bytes .../resources/images/countries/za-light.png | Bin 2643 -> 0 bytes .../resources/images/countries/zm-dark.png | Bin 2582 -> 0 bytes .../resources/images/countries/zm-light.png | Bin 2582 -> 0 bytes .../resources/images/countries/zw-dark.png | Bin 2396 -> 0 bytes .../resources/images/countries/zw-light.png | Bin 2396 -> 0 bytes 485 files changed, 1 insertion(+), 32 deletions(-) delete mode 100644 desktop/onionshare/resources/images/countries/ad-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/ad-light.png delete mode 100644 desktop/onionshare/resources/images/countries/ae-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/ae-light.png delete mode 100644 desktop/onionshare/resources/images/countries/af-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/af-light.png delete mode 100644 desktop/onionshare/resources/images/countries/ag-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/ag-light.png delete mode 100644 desktop/onionshare/resources/images/countries/ai-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/ai-light.png delete mode 100644 desktop/onionshare/resources/images/countries/al-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/al-light.png delete mode 100644 desktop/onionshare/resources/images/countries/am-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/am-light.png delete mode 100644 desktop/onionshare/resources/images/countries/ao-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/ao-light.png delete mode 100644 desktop/onionshare/resources/images/countries/aq-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/aq-light.png delete mode 100644 desktop/onionshare/resources/images/countries/ar-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/ar-light.png delete mode 100644 desktop/onionshare/resources/images/countries/as-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/as-light.png delete mode 100644 desktop/onionshare/resources/images/countries/at-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/at-light.png delete mode 100644 desktop/onionshare/resources/images/countries/au-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/au-light.png delete mode 100644 desktop/onionshare/resources/images/countries/aw-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/aw-light.png delete mode 100644 desktop/onionshare/resources/images/countries/ax-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/ax-light.png delete mode 100644 desktop/onionshare/resources/images/countries/az-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/az-light.png delete mode 100644 desktop/onionshare/resources/images/countries/ba-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/ba-light.png delete mode 100644 desktop/onionshare/resources/images/countries/bb-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/bb-light.png delete mode 100644 desktop/onionshare/resources/images/countries/bd-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/bd-light.png delete mode 100644 desktop/onionshare/resources/images/countries/be-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/be-light.png delete mode 100644 desktop/onionshare/resources/images/countries/bf-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/bf-light.png delete mode 100644 desktop/onionshare/resources/images/countries/bg-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/bg-light.png delete mode 100644 desktop/onionshare/resources/images/countries/bh-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/bh-light.png delete mode 100644 desktop/onionshare/resources/images/countries/bi-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/bi-light.png delete mode 100644 desktop/onionshare/resources/images/countries/bj-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/bj-light.png delete mode 100644 desktop/onionshare/resources/images/countries/bl-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/bl-light.png delete mode 100644 desktop/onionshare/resources/images/countries/bm-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/bm-light.png delete mode 100644 desktop/onionshare/resources/images/countries/bn-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/bn-light.png delete mode 100644 desktop/onionshare/resources/images/countries/bo-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/bo-light.png delete mode 100644 desktop/onionshare/resources/images/countries/bq-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/bq-light.png delete mode 100644 desktop/onionshare/resources/images/countries/br-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/br-light.png delete mode 100644 desktop/onionshare/resources/images/countries/bs-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/bs-light.png delete mode 100644 desktop/onionshare/resources/images/countries/bt-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/bt-light.png delete mode 100644 desktop/onionshare/resources/images/countries/bv-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/bv-light.png delete mode 100644 desktop/onionshare/resources/images/countries/bw-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/bw-light.png delete mode 100644 desktop/onionshare/resources/images/countries/by-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/by-light.png delete mode 100644 desktop/onionshare/resources/images/countries/bz-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/bz-light.png delete mode 100644 desktop/onionshare/resources/images/countries/ca-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/ca-light.png delete mode 100644 desktop/onionshare/resources/images/countries/cc-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/cc-light.png delete mode 100644 desktop/onionshare/resources/images/countries/cd-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/cd-light.png delete mode 100644 desktop/onionshare/resources/images/countries/cf-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/cf-light.png delete mode 100644 desktop/onionshare/resources/images/countries/cg-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/cg-light.png delete mode 100644 desktop/onionshare/resources/images/countries/ch-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/ch-light.png delete mode 100644 desktop/onionshare/resources/images/countries/ci-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/ci-light.png delete mode 100644 desktop/onionshare/resources/images/countries/ck-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/ck-light.png delete mode 100644 desktop/onionshare/resources/images/countries/cl-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/cl-light.png delete mode 100644 desktop/onionshare/resources/images/countries/cm-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/cm-light.png delete mode 100644 desktop/onionshare/resources/images/countries/cn-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/cn-light.png delete mode 100644 desktop/onionshare/resources/images/countries/co-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/co-light.png delete mode 100644 desktop/onionshare/resources/images/countries/cr-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/cr-light.png delete mode 100644 desktop/onionshare/resources/images/countries/cu-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/cu-light.png delete mode 100644 desktop/onionshare/resources/images/countries/cv-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/cv-light.png delete mode 100644 desktop/onionshare/resources/images/countries/cw-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/cw-light.png delete mode 100644 desktop/onionshare/resources/images/countries/cx-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/cx-light.png delete mode 100644 desktop/onionshare/resources/images/countries/cy-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/cy-light.png delete mode 100644 desktop/onionshare/resources/images/countries/cz-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/cz-light.png delete mode 100644 desktop/onionshare/resources/images/countries/de-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/de-light.png delete mode 100644 desktop/onionshare/resources/images/countries/dj-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/dj-light.png delete mode 100644 desktop/onionshare/resources/images/countries/dk-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/dk-light.png delete mode 100644 desktop/onionshare/resources/images/countries/dm-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/dm-light.png delete mode 100644 desktop/onionshare/resources/images/countries/do-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/do-light.png delete mode 100644 desktop/onionshare/resources/images/countries/dz-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/dz-light.png delete mode 100644 desktop/onionshare/resources/images/countries/ec-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/ec-light.png delete mode 100644 desktop/onionshare/resources/images/countries/ee-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/ee-light.png delete mode 100644 desktop/onionshare/resources/images/countries/eg-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/eg-light.png delete mode 100644 desktop/onionshare/resources/images/countries/eh-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/eh-light.png delete mode 100644 desktop/onionshare/resources/images/countries/er-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/er-light.png delete mode 100644 desktop/onionshare/resources/images/countries/es-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/es-light.png delete mode 100644 desktop/onionshare/resources/images/countries/et-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/et-light.png delete mode 100644 desktop/onionshare/resources/images/countries/fi-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/fi-light.png delete mode 100644 desktop/onionshare/resources/images/countries/fj-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/fj-light.png delete mode 100644 desktop/onionshare/resources/images/countries/fk-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/fk-light.png delete mode 100644 desktop/onionshare/resources/images/countries/fo-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/fo-light.png delete mode 100644 desktop/onionshare/resources/images/countries/fr-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/fr-light.png delete mode 100644 desktop/onionshare/resources/images/countries/ga-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/ga-light.png delete mode 100644 desktop/onionshare/resources/images/countries/gb-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/gb-light.png delete mode 100644 desktop/onionshare/resources/images/countries/gd-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/gd-light.png delete mode 100644 desktop/onionshare/resources/images/countries/ge-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/ge-light.png delete mode 100644 desktop/onionshare/resources/images/countries/gf-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/gf-light.png delete mode 100644 desktop/onionshare/resources/images/countries/gg-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/gg-light.png delete mode 100644 desktop/onionshare/resources/images/countries/gh-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/gh-light.png delete mode 100644 desktop/onionshare/resources/images/countries/gi-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/gi-light.png delete mode 100644 desktop/onionshare/resources/images/countries/gl-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/gl-light.png delete mode 100644 desktop/onionshare/resources/images/countries/gm-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/gm-light.png delete mode 100644 desktop/onionshare/resources/images/countries/gn-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/gn-light.png delete mode 100644 desktop/onionshare/resources/images/countries/gp-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/gp-light.png delete mode 100644 desktop/onionshare/resources/images/countries/gq-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/gq-light.png delete mode 100644 desktop/onionshare/resources/images/countries/gr-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/gr-light.png delete mode 100644 desktop/onionshare/resources/images/countries/gs-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/gs-light.png delete mode 100644 desktop/onionshare/resources/images/countries/gt-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/gt-light.png delete mode 100644 desktop/onionshare/resources/images/countries/gu-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/gu-light.png delete mode 100644 desktop/onionshare/resources/images/countries/gw-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/gw-light.png delete mode 100644 desktop/onionshare/resources/images/countries/gy-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/gy-light.png delete mode 100644 desktop/onionshare/resources/images/countries/hk-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/hk-light.png delete mode 100644 desktop/onionshare/resources/images/countries/hm-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/hm-light.png delete mode 100644 desktop/onionshare/resources/images/countries/hn-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/hn-light.png delete mode 100644 desktop/onionshare/resources/images/countries/hr-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/hr-light.png delete mode 100644 desktop/onionshare/resources/images/countries/ht-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/ht-light.png delete mode 100644 desktop/onionshare/resources/images/countries/hu-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/hu-light.png delete mode 100644 desktop/onionshare/resources/images/countries/id-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/id-light.png delete mode 100644 desktop/onionshare/resources/images/countries/ie-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/ie-light.png delete mode 100644 desktop/onionshare/resources/images/countries/il-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/il-light.png delete mode 100644 desktop/onionshare/resources/images/countries/im-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/im-light.png delete mode 100644 desktop/onionshare/resources/images/countries/in-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/in-light.png delete mode 100644 desktop/onionshare/resources/images/countries/io-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/io-light.png delete mode 100644 desktop/onionshare/resources/images/countries/iq-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/iq-light.png delete mode 100644 desktop/onionshare/resources/images/countries/ir-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/ir-light.png delete mode 100644 desktop/onionshare/resources/images/countries/is-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/is-light.png delete mode 100644 desktop/onionshare/resources/images/countries/it-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/it-light.png delete mode 100644 desktop/onionshare/resources/images/countries/jm-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/jm-light.png delete mode 100644 desktop/onionshare/resources/images/countries/jo-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/jo-light.png delete mode 100644 desktop/onionshare/resources/images/countries/jp-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/jp-light.png delete mode 100644 desktop/onionshare/resources/images/countries/ke-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/ke-light.png delete mode 100644 desktop/onionshare/resources/images/countries/kg-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/kg-light.png delete mode 100644 desktop/onionshare/resources/images/countries/kh-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/kh-light.png delete mode 100644 desktop/onionshare/resources/images/countries/ki-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/ki-light.png delete mode 100644 desktop/onionshare/resources/images/countries/km-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/km-light.png delete mode 100644 desktop/onionshare/resources/images/countries/kn-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/kn-light.png delete mode 100644 desktop/onionshare/resources/images/countries/kp-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/kp-light.png delete mode 100644 desktop/onionshare/resources/images/countries/kr-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/kr-light.png delete mode 100644 desktop/onionshare/resources/images/countries/kw-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/kw-light.png delete mode 100644 desktop/onionshare/resources/images/countries/ky-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/ky-light.png delete mode 100644 desktop/onionshare/resources/images/countries/kz-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/kz-light.png delete mode 100644 desktop/onionshare/resources/images/countries/la-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/la-light.png delete mode 100644 desktop/onionshare/resources/images/countries/lb-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/lb-light.png delete mode 100644 desktop/onionshare/resources/images/countries/lc-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/lc-light.png delete mode 100644 desktop/onionshare/resources/images/countries/li-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/li-light.png delete mode 100644 desktop/onionshare/resources/images/countries/lk-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/lk-light.png delete mode 100644 desktop/onionshare/resources/images/countries/lr-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/lr-light.png delete mode 100644 desktop/onionshare/resources/images/countries/ls-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/ls-light.png delete mode 100644 desktop/onionshare/resources/images/countries/lt-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/lt-light.png delete mode 100644 desktop/onionshare/resources/images/countries/lu-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/lu-light.png delete mode 100644 desktop/onionshare/resources/images/countries/lv-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/lv-light.png delete mode 100644 desktop/onionshare/resources/images/countries/ly-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/ly-light.png delete mode 100644 desktop/onionshare/resources/images/countries/ma-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/ma-light.png delete mode 100644 desktop/onionshare/resources/images/countries/mc-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/mc-light.png delete mode 100644 desktop/onionshare/resources/images/countries/md-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/md-light.png delete mode 100644 desktop/onionshare/resources/images/countries/me-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/me-light.png delete mode 100644 desktop/onionshare/resources/images/countries/mf-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/mf-light.png delete mode 100644 desktop/onionshare/resources/images/countries/mg-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/mg-light.png delete mode 100644 desktop/onionshare/resources/images/countries/mk-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/mk-light.png delete mode 100644 desktop/onionshare/resources/images/countries/ml-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/ml-light.png delete mode 100644 desktop/onionshare/resources/images/countries/mm-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/mm-light.png delete mode 100644 desktop/onionshare/resources/images/countries/mn-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/mn-light.png delete mode 100644 desktop/onionshare/resources/images/countries/mo-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/mo-light.png delete mode 100644 desktop/onionshare/resources/images/countries/mq-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/mq-light.png delete mode 100644 desktop/onionshare/resources/images/countries/mr-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/mr-light.png delete mode 100644 desktop/onionshare/resources/images/countries/ms-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/ms-light.png delete mode 100644 desktop/onionshare/resources/images/countries/mt-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/mt-light.png delete mode 100644 desktop/onionshare/resources/images/countries/mu-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/mu-light.png delete mode 100644 desktop/onionshare/resources/images/countries/mv-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/mv-light.png delete mode 100644 desktop/onionshare/resources/images/countries/mw-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/mw-light.png delete mode 100644 desktop/onionshare/resources/images/countries/mx-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/mx-light.png delete mode 100644 desktop/onionshare/resources/images/countries/my-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/my-light.png delete mode 100644 desktop/onionshare/resources/images/countries/mz-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/mz-light.png delete mode 100644 desktop/onionshare/resources/images/countries/na-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/na-light.png delete mode 100644 desktop/onionshare/resources/images/countries/nc-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/nc-light.png delete mode 100644 desktop/onionshare/resources/images/countries/ne-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/ne-light.png delete mode 100644 desktop/onionshare/resources/images/countries/nf-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/nf-light.png delete mode 100644 desktop/onionshare/resources/images/countries/ng-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/ng-light.png delete mode 100644 desktop/onionshare/resources/images/countries/ni-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/ni-light.png delete mode 100644 desktop/onionshare/resources/images/countries/nl-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/nl-light.png delete mode 100644 desktop/onionshare/resources/images/countries/no-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/no-light.png delete mode 100644 desktop/onionshare/resources/images/countries/np-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/np-light.png delete mode 100644 desktop/onionshare/resources/images/countries/nr-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/nr-light.png delete mode 100644 desktop/onionshare/resources/images/countries/nu-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/nu-light.png delete mode 100644 desktop/onionshare/resources/images/countries/nz-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/nz-light.png delete mode 100644 desktop/onionshare/resources/images/countries/om-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/om-light.png delete mode 100644 desktop/onionshare/resources/images/countries/pa-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/pa-light.png delete mode 100644 desktop/onionshare/resources/images/countries/pe-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/pe-light.png delete mode 100644 desktop/onionshare/resources/images/countries/pf-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/pf-light.png delete mode 100644 desktop/onionshare/resources/images/countries/pg-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/pg-light.png delete mode 100644 desktop/onionshare/resources/images/countries/ph-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/ph-light.png delete mode 100644 desktop/onionshare/resources/images/countries/pk-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/pk-light.png delete mode 100644 desktop/onionshare/resources/images/countries/pl-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/pl-light.png delete mode 100644 desktop/onionshare/resources/images/countries/pm-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/pm-light.png delete mode 100644 desktop/onionshare/resources/images/countries/pn-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/pn-light.png delete mode 100644 desktop/onionshare/resources/images/countries/pr-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/pr-light.png delete mode 100644 desktop/onionshare/resources/images/countries/pt-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/pt-light.png delete mode 100644 desktop/onionshare/resources/images/countries/pw-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/pw-light.png delete mode 100644 desktop/onionshare/resources/images/countries/py-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/py-light.png delete mode 100644 desktop/onionshare/resources/images/countries/qa-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/qa-light.png delete mode 100644 desktop/onionshare/resources/images/countries/re-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/re-light.png delete mode 100644 desktop/onionshare/resources/images/countries/ro-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/ro-light.png delete mode 100644 desktop/onionshare/resources/images/countries/rs-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/rs-light.png delete mode 100644 desktop/onionshare/resources/images/countries/ru-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/ru-light.png delete mode 100644 desktop/onionshare/resources/images/countries/rw-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/rw-light.png delete mode 100644 desktop/onionshare/resources/images/countries/sa-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/sa-light.png delete mode 100644 desktop/onionshare/resources/images/countries/sb-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/sb-light.png delete mode 100644 desktop/onionshare/resources/images/countries/sc-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/sc-light.png delete mode 100644 desktop/onionshare/resources/images/countries/sd-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/sd-light.png delete mode 100644 desktop/onionshare/resources/images/countries/se-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/se-light.png delete mode 100644 desktop/onionshare/resources/images/countries/sg-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/sg-light.png delete mode 100644 desktop/onionshare/resources/images/countries/sh-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/sh-light.png delete mode 100644 desktop/onionshare/resources/images/countries/si-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/si-light.png delete mode 100644 desktop/onionshare/resources/images/countries/sj-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/sj-light.png delete mode 100644 desktop/onionshare/resources/images/countries/sk-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/sk-light.png delete mode 100644 desktop/onionshare/resources/images/countries/sl-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/sl-light.png delete mode 100644 desktop/onionshare/resources/images/countries/sm-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/sm-light.png delete mode 100644 desktop/onionshare/resources/images/countries/sn-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/sn-light.png delete mode 100644 desktop/onionshare/resources/images/countries/so-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/so-light.png delete mode 100644 desktop/onionshare/resources/images/countries/sr-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/sr-light.png delete mode 100644 desktop/onionshare/resources/images/countries/ss-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/ss-light.png delete mode 100644 desktop/onionshare/resources/images/countries/st-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/st-light.png delete mode 100644 desktop/onionshare/resources/images/countries/sv-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/sv-light.png delete mode 100644 desktop/onionshare/resources/images/countries/sx-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/sx-light.png delete mode 100644 desktop/onionshare/resources/images/countries/sy-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/sy-light.png delete mode 100644 desktop/onionshare/resources/images/countries/sz-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/sz-light.png delete mode 100644 desktop/onionshare/resources/images/countries/tc-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/tc-light.png delete mode 100644 desktop/onionshare/resources/images/countries/td-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/td-light.png delete mode 100644 desktop/onionshare/resources/images/countries/tf-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/tf-light.png delete mode 100644 desktop/onionshare/resources/images/countries/tg-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/tg-light.png delete mode 100644 desktop/onionshare/resources/images/countries/th-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/th-light.png delete mode 100644 desktop/onionshare/resources/images/countries/tj-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/tj-light.png delete mode 100644 desktop/onionshare/resources/images/countries/tk-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/tk-light.png delete mode 100644 desktop/onionshare/resources/images/countries/tl-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/tl-light.png delete mode 100644 desktop/onionshare/resources/images/countries/tm-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/tm-light.png delete mode 100644 desktop/onionshare/resources/images/countries/tn-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/tn-light.png delete mode 100644 desktop/onionshare/resources/images/countries/to-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/to-light.png delete mode 100644 desktop/onionshare/resources/images/countries/tr-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/tr-light.png delete mode 100644 desktop/onionshare/resources/images/countries/tt-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/tt-light.png delete mode 100644 desktop/onionshare/resources/images/countries/tw-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/tw-light.png delete mode 100644 desktop/onionshare/resources/images/countries/tz-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/tz-light.png delete mode 100644 desktop/onionshare/resources/images/countries/ua-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/ua-light.png delete mode 100644 desktop/onionshare/resources/images/countries/ug-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/ug-light.png delete mode 100644 desktop/onionshare/resources/images/countries/us-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/us-light.png delete mode 100644 desktop/onionshare/resources/images/countries/uy-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/uy-light.png delete mode 100644 desktop/onionshare/resources/images/countries/uz-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/uz-light.png delete mode 100644 desktop/onionshare/resources/images/countries/va-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/va-light.png delete mode 100644 desktop/onionshare/resources/images/countries/vc-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/vc-light.png delete mode 100644 desktop/onionshare/resources/images/countries/ve-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/ve-light.png delete mode 100644 desktop/onionshare/resources/images/countries/vg-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/vg-light.png delete mode 100644 desktop/onionshare/resources/images/countries/vi-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/vi-light.png delete mode 100644 desktop/onionshare/resources/images/countries/vn-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/vn-light.png delete mode 100644 desktop/onionshare/resources/images/countries/vu-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/vu-light.png delete mode 100644 desktop/onionshare/resources/images/countries/wf-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/wf-light.png delete mode 100644 desktop/onionshare/resources/images/countries/ws-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/ws-light.png delete mode 100644 desktop/onionshare/resources/images/countries/ye-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/ye-light.png delete mode 100644 desktop/onionshare/resources/images/countries/yt-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/yt-light.png delete mode 100644 desktop/onionshare/resources/images/countries/za-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/za-light.png delete mode 100644 desktop/onionshare/resources/images/countries/zm-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/zm-light.png delete mode 100644 desktop/onionshare/resources/images/countries/zw-dark.png delete mode 100644 desktop/onionshare/resources/images/countries/zw-light.png diff --git a/desktop/onionshare/connection_tab.py b/desktop/onionshare/connection_tab.py index ccfc00df..c1398cbd 100644 --- a/desktop/onionshare/connection_tab.py +++ b/desktop/onionshare/connection_tab.py @@ -566,19 +566,6 @@ class AutoConnectUseBridgeWidget(QtWidgets.QWidget): for country_code in countries: self.country_combobox.addItem(countries[country_code], country_code) - self.country_combobox.currentIndexChanged.connect(self._country_changed) - - # Country shape - self.country_image_label = QtWidgets.QLabel() - self.country_image_label.setFixedSize(200, 200) - country_image_layout = QtWidgets.QHBoxLayout() - country_image_layout.addStretch() - country_image_layout.addWidget(self.country_image_label) - country_image_layout.addStretch() - country_image_layout.setContentsMargins(0, 0, 0, 0) - self.country_image = QtWidgets.QWidget() - self.country_image.setLayout(country_image_layout) - # Task label self.task_label = QtWidgets.QLabel() self.task_label.setStyleSheet(common.gui.css["autoconnect_task_label"]) @@ -639,7 +626,6 @@ class AutoConnectUseBridgeWidget(QtWidgets.QWidget): layout.addWidget(self.description_label) layout.addLayout(detect_layout) layout.addWidget(self.country_combobox) - layout.addWidget(self.country_image) layout.addWidget(self.task_label) layout.addWidget(cta_widget) layout.addWidget(self.progress) @@ -647,7 +633,6 @@ class AutoConnectUseBridgeWidget(QtWidgets.QWidget): layout.addWidget(self.error_label) self.setLayout(layout) - self._country_changed() self.detect_automatic_radio.setChecked(True) def hide_buttons(self): @@ -667,30 +652,13 @@ class AutoConnectUseBridgeWidget(QtWidgets.QWidget): self.detect_automatic_radio.show() self.detect_manual_radio.show() - def _country_changed(self, index=None): - self.country_code = str(self.country_combobox.currentData()).lower() - path = GuiCommon.get_resource_path( - os.path.join( - "images", - "countries", - f"{self.country_code}-{self.common.gui.color_mode}.png", - ) - ) - pixmap = QtGui.QPixmap.fromImage(QtGui.QImage(path)).scaled( - self.country_image_label.width() - 10, - self.country_image_label.height() - 10, - ) - self.country_image_label.setPixmap(pixmap) - def _detect_automatic_toggled(self): self.country_combobox.setEnabled(False) self.country_combobox.hide() - self.country_image.hide() def _detect_manual_toggled(self): self.country_combobox.setEnabled(True) self.country_combobox.show() - self.country_image.show() def _connect_clicked(self): self.country_combobox.setEnabled(False) @@ -705,6 +673,7 @@ class AutoConnectUseBridgeWidget(QtWidgets.QWidget): strings._("gui_autoconnect_trying_to_connect_to_tor") ) self.country_combobox.setEnabled(False) + self.country_combobox.hide() self.hide_buttons() self.try_again_clicked.emit() diff --git a/desktop/onionshare/resources/images/countries/ad-dark.png b/desktop/onionshare/resources/images/countries/ad-dark.png deleted file mode 100644 index b3cec523..00000000 Binary files a/desktop/onionshare/resources/images/countries/ad-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/ad-light.png b/desktop/onionshare/resources/images/countries/ad-light.png deleted file mode 100644 index 16f033d9..00000000 Binary files a/desktop/onionshare/resources/images/countries/ad-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/ae-dark.png b/desktop/onionshare/resources/images/countries/ae-dark.png deleted file mode 100644 index 5dac0a10..00000000 Binary files a/desktop/onionshare/resources/images/countries/ae-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/ae-light.png b/desktop/onionshare/resources/images/countries/ae-light.png deleted file mode 100644 index 58b00d06..00000000 Binary files a/desktop/onionshare/resources/images/countries/ae-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/af-dark.png b/desktop/onionshare/resources/images/countries/af-dark.png deleted file mode 100644 index 2898cae6..00000000 Binary files a/desktop/onionshare/resources/images/countries/af-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/af-light.png b/desktop/onionshare/resources/images/countries/af-light.png deleted file mode 100644 index 2571e368..00000000 Binary files a/desktop/onionshare/resources/images/countries/af-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/ag-dark.png b/desktop/onionshare/resources/images/countries/ag-dark.png deleted file mode 100644 index d81a4564..00000000 Binary files a/desktop/onionshare/resources/images/countries/ag-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/ag-light.png b/desktop/onionshare/resources/images/countries/ag-light.png deleted file mode 100644 index 0e97185d..00000000 Binary files a/desktop/onionshare/resources/images/countries/ag-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/ai-dark.png b/desktop/onionshare/resources/images/countries/ai-dark.png deleted file mode 100644 index c9c33660..00000000 Binary files a/desktop/onionshare/resources/images/countries/ai-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/ai-light.png b/desktop/onionshare/resources/images/countries/ai-light.png deleted file mode 100644 index 0cdd6579..00000000 Binary files a/desktop/onionshare/resources/images/countries/ai-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/al-dark.png b/desktop/onionshare/resources/images/countries/al-dark.png deleted file mode 100644 index ed92e454..00000000 Binary files a/desktop/onionshare/resources/images/countries/al-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/al-light.png b/desktop/onionshare/resources/images/countries/al-light.png deleted file mode 100644 index 83a0940b..00000000 Binary files a/desktop/onionshare/resources/images/countries/al-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/am-dark.png b/desktop/onionshare/resources/images/countries/am-dark.png deleted file mode 100644 index 25a6eeb1..00000000 Binary files a/desktop/onionshare/resources/images/countries/am-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/am-light.png b/desktop/onionshare/resources/images/countries/am-light.png deleted file mode 100644 index 7ff121ed..00000000 Binary files a/desktop/onionshare/resources/images/countries/am-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/ao-dark.png b/desktop/onionshare/resources/images/countries/ao-dark.png deleted file mode 100644 index db71ab18..00000000 Binary files a/desktop/onionshare/resources/images/countries/ao-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/ao-light.png b/desktop/onionshare/resources/images/countries/ao-light.png deleted file mode 100644 index 5ba12401..00000000 Binary files a/desktop/onionshare/resources/images/countries/ao-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/aq-dark.png b/desktop/onionshare/resources/images/countries/aq-dark.png deleted file mode 100644 index 96ad4500..00000000 Binary files a/desktop/onionshare/resources/images/countries/aq-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/aq-light.png b/desktop/onionshare/resources/images/countries/aq-light.png deleted file mode 100644 index 69936a5c..00000000 Binary files a/desktop/onionshare/resources/images/countries/aq-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/ar-dark.png b/desktop/onionshare/resources/images/countries/ar-dark.png deleted file mode 100644 index 9e1ac2a6..00000000 Binary files a/desktop/onionshare/resources/images/countries/ar-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/ar-light.png b/desktop/onionshare/resources/images/countries/ar-light.png deleted file mode 100644 index 909fd6ba..00000000 Binary files a/desktop/onionshare/resources/images/countries/ar-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/as-dark.png b/desktop/onionshare/resources/images/countries/as-dark.png deleted file mode 100644 index 02037fbd..00000000 Binary files a/desktop/onionshare/resources/images/countries/as-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/as-light.png b/desktop/onionshare/resources/images/countries/as-light.png deleted file mode 100644 index 06db02dd..00000000 Binary files a/desktop/onionshare/resources/images/countries/as-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/at-dark.png b/desktop/onionshare/resources/images/countries/at-dark.png deleted file mode 100644 index e8e36a76..00000000 Binary files a/desktop/onionshare/resources/images/countries/at-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/at-light.png b/desktop/onionshare/resources/images/countries/at-light.png deleted file mode 100644 index a1f6e295..00000000 Binary files a/desktop/onionshare/resources/images/countries/at-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/au-dark.png b/desktop/onionshare/resources/images/countries/au-dark.png deleted file mode 100644 index 9a15edcd..00000000 Binary files a/desktop/onionshare/resources/images/countries/au-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/au-light.png b/desktop/onionshare/resources/images/countries/au-light.png deleted file mode 100644 index f1a0a2ff..00000000 Binary files a/desktop/onionshare/resources/images/countries/au-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/aw-dark.png b/desktop/onionshare/resources/images/countries/aw-dark.png deleted file mode 100644 index bc9594ff..00000000 Binary files a/desktop/onionshare/resources/images/countries/aw-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/aw-light.png b/desktop/onionshare/resources/images/countries/aw-light.png deleted file mode 100644 index a576a27d..00000000 Binary files a/desktop/onionshare/resources/images/countries/aw-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/ax-dark.png b/desktop/onionshare/resources/images/countries/ax-dark.png deleted file mode 100644 index 78eff630..00000000 Binary files a/desktop/onionshare/resources/images/countries/ax-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/ax-light.png b/desktop/onionshare/resources/images/countries/ax-light.png deleted file mode 100644 index fb017daf..00000000 Binary files a/desktop/onionshare/resources/images/countries/ax-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/az-dark.png b/desktop/onionshare/resources/images/countries/az-dark.png deleted file mode 100644 index 9575d871..00000000 Binary files a/desktop/onionshare/resources/images/countries/az-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/az-light.png b/desktop/onionshare/resources/images/countries/az-light.png deleted file mode 100644 index 4e20c60a..00000000 Binary files a/desktop/onionshare/resources/images/countries/az-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/ba-dark.png b/desktop/onionshare/resources/images/countries/ba-dark.png deleted file mode 100644 index 9c1368fd..00000000 Binary files a/desktop/onionshare/resources/images/countries/ba-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/ba-light.png b/desktop/onionshare/resources/images/countries/ba-light.png deleted file mode 100644 index f3ddfc3e..00000000 Binary files a/desktop/onionshare/resources/images/countries/ba-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/bb-dark.png b/desktop/onionshare/resources/images/countries/bb-dark.png deleted file mode 100644 index 4f89a82f..00000000 Binary files a/desktop/onionshare/resources/images/countries/bb-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/bb-light.png b/desktop/onionshare/resources/images/countries/bb-light.png deleted file mode 100644 index abbac6d7..00000000 Binary files a/desktop/onionshare/resources/images/countries/bb-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/bd-dark.png b/desktop/onionshare/resources/images/countries/bd-dark.png deleted file mode 100644 index 63628d33..00000000 Binary files a/desktop/onionshare/resources/images/countries/bd-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/bd-light.png b/desktop/onionshare/resources/images/countries/bd-light.png deleted file mode 100644 index 6dc3cba7..00000000 Binary files a/desktop/onionshare/resources/images/countries/bd-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/be-dark.png b/desktop/onionshare/resources/images/countries/be-dark.png deleted file mode 100644 index da450858..00000000 Binary files a/desktop/onionshare/resources/images/countries/be-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/be-light.png b/desktop/onionshare/resources/images/countries/be-light.png deleted file mode 100644 index abff465a..00000000 Binary files a/desktop/onionshare/resources/images/countries/be-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/bf-dark.png b/desktop/onionshare/resources/images/countries/bf-dark.png deleted file mode 100644 index 11d1a4ae..00000000 Binary files a/desktop/onionshare/resources/images/countries/bf-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/bf-light.png b/desktop/onionshare/resources/images/countries/bf-light.png deleted file mode 100644 index e7cd70e6..00000000 Binary files a/desktop/onionshare/resources/images/countries/bf-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/bg-dark.png b/desktop/onionshare/resources/images/countries/bg-dark.png deleted file mode 100644 index c995bc28..00000000 Binary files a/desktop/onionshare/resources/images/countries/bg-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/bg-light.png b/desktop/onionshare/resources/images/countries/bg-light.png deleted file mode 100644 index 6ea5d55d..00000000 Binary files a/desktop/onionshare/resources/images/countries/bg-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/bh-dark.png b/desktop/onionshare/resources/images/countries/bh-dark.png deleted file mode 100644 index 6ac93698..00000000 Binary files a/desktop/onionshare/resources/images/countries/bh-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/bh-light.png b/desktop/onionshare/resources/images/countries/bh-light.png deleted file mode 100644 index 440b71f6..00000000 Binary files a/desktop/onionshare/resources/images/countries/bh-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/bi-dark.png b/desktop/onionshare/resources/images/countries/bi-dark.png deleted file mode 100644 index 7fcf0b11..00000000 Binary files a/desktop/onionshare/resources/images/countries/bi-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/bi-light.png b/desktop/onionshare/resources/images/countries/bi-light.png deleted file mode 100644 index da2926eb..00000000 Binary files a/desktop/onionshare/resources/images/countries/bi-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/bj-dark.png b/desktop/onionshare/resources/images/countries/bj-dark.png deleted file mode 100644 index 1ca6a5e1..00000000 Binary files a/desktop/onionshare/resources/images/countries/bj-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/bj-light.png b/desktop/onionshare/resources/images/countries/bj-light.png deleted file mode 100644 index 97163b28..00000000 Binary files a/desktop/onionshare/resources/images/countries/bj-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/bl-dark.png b/desktop/onionshare/resources/images/countries/bl-dark.png deleted file mode 100644 index 7aa591bc..00000000 Binary files a/desktop/onionshare/resources/images/countries/bl-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/bl-light.png b/desktop/onionshare/resources/images/countries/bl-light.png deleted file mode 100644 index d5ab4522..00000000 Binary files a/desktop/onionshare/resources/images/countries/bl-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/bm-dark.png b/desktop/onionshare/resources/images/countries/bm-dark.png deleted file mode 100644 index 2bc516e3..00000000 Binary files a/desktop/onionshare/resources/images/countries/bm-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/bm-light.png b/desktop/onionshare/resources/images/countries/bm-light.png deleted file mode 100644 index 2d921656..00000000 Binary files a/desktop/onionshare/resources/images/countries/bm-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/bn-dark.png b/desktop/onionshare/resources/images/countries/bn-dark.png deleted file mode 100644 index c3b155b2..00000000 Binary files a/desktop/onionshare/resources/images/countries/bn-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/bn-light.png b/desktop/onionshare/resources/images/countries/bn-light.png deleted file mode 100644 index 9cb54f02..00000000 Binary files a/desktop/onionshare/resources/images/countries/bn-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/bo-dark.png b/desktop/onionshare/resources/images/countries/bo-dark.png deleted file mode 100644 index fc6b9ad5..00000000 Binary files a/desktop/onionshare/resources/images/countries/bo-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/bo-light.png b/desktop/onionshare/resources/images/countries/bo-light.png deleted file mode 100644 index 76c69cc9..00000000 Binary files a/desktop/onionshare/resources/images/countries/bo-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/bq-dark.png b/desktop/onionshare/resources/images/countries/bq-dark.png deleted file mode 100644 index 8fbcc7d3..00000000 Binary files a/desktop/onionshare/resources/images/countries/bq-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/bq-light.png b/desktop/onionshare/resources/images/countries/bq-light.png deleted file mode 100644 index 4abc2fa7..00000000 Binary files a/desktop/onionshare/resources/images/countries/bq-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/br-dark.png b/desktop/onionshare/resources/images/countries/br-dark.png deleted file mode 100644 index ce3131ed..00000000 Binary files a/desktop/onionshare/resources/images/countries/br-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/br-light.png b/desktop/onionshare/resources/images/countries/br-light.png deleted file mode 100644 index a7e7f176..00000000 Binary files a/desktop/onionshare/resources/images/countries/br-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/bs-dark.png b/desktop/onionshare/resources/images/countries/bs-dark.png deleted file mode 100644 index edb9bcaa..00000000 Binary files a/desktop/onionshare/resources/images/countries/bs-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/bs-light.png b/desktop/onionshare/resources/images/countries/bs-light.png deleted file mode 100644 index 5a4acd03..00000000 Binary files a/desktop/onionshare/resources/images/countries/bs-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/bt-dark.png b/desktop/onionshare/resources/images/countries/bt-dark.png deleted file mode 100644 index c3ad28e2..00000000 Binary files a/desktop/onionshare/resources/images/countries/bt-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/bt-light.png b/desktop/onionshare/resources/images/countries/bt-light.png deleted file mode 100644 index 466d423e..00000000 Binary files a/desktop/onionshare/resources/images/countries/bt-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/bv-dark.png b/desktop/onionshare/resources/images/countries/bv-dark.png deleted file mode 100644 index 0a2ce551..00000000 Binary files a/desktop/onionshare/resources/images/countries/bv-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/bv-light.png b/desktop/onionshare/resources/images/countries/bv-light.png deleted file mode 100644 index 9187693b..00000000 Binary files a/desktop/onionshare/resources/images/countries/bv-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/bw-dark.png b/desktop/onionshare/resources/images/countries/bw-dark.png deleted file mode 100644 index 1e2b96d3..00000000 Binary files a/desktop/onionshare/resources/images/countries/bw-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/bw-light.png b/desktop/onionshare/resources/images/countries/bw-light.png deleted file mode 100644 index a60fca0b..00000000 Binary files a/desktop/onionshare/resources/images/countries/bw-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/by-dark.png b/desktop/onionshare/resources/images/countries/by-dark.png deleted file mode 100644 index bf256965..00000000 Binary files a/desktop/onionshare/resources/images/countries/by-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/by-light.png b/desktop/onionshare/resources/images/countries/by-light.png deleted file mode 100644 index f019b57d..00000000 Binary files a/desktop/onionshare/resources/images/countries/by-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/bz-dark.png b/desktop/onionshare/resources/images/countries/bz-dark.png deleted file mode 100644 index 85bbd042..00000000 Binary files a/desktop/onionshare/resources/images/countries/bz-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/bz-light.png b/desktop/onionshare/resources/images/countries/bz-light.png deleted file mode 100644 index 84f0f26b..00000000 Binary files a/desktop/onionshare/resources/images/countries/bz-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/ca-dark.png b/desktop/onionshare/resources/images/countries/ca-dark.png deleted file mode 100644 index 3089e1de..00000000 Binary files a/desktop/onionshare/resources/images/countries/ca-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/ca-light.png b/desktop/onionshare/resources/images/countries/ca-light.png deleted file mode 100644 index c8bfbc64..00000000 Binary files a/desktop/onionshare/resources/images/countries/ca-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/cc-dark.png b/desktop/onionshare/resources/images/countries/cc-dark.png deleted file mode 100644 index 5a5976e4..00000000 Binary files a/desktop/onionshare/resources/images/countries/cc-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/cc-light.png b/desktop/onionshare/resources/images/countries/cc-light.png deleted file mode 100644 index 66f6d1ca..00000000 Binary files a/desktop/onionshare/resources/images/countries/cc-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/cd-dark.png b/desktop/onionshare/resources/images/countries/cd-dark.png deleted file mode 100644 index 61553a72..00000000 Binary files a/desktop/onionshare/resources/images/countries/cd-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/cd-light.png b/desktop/onionshare/resources/images/countries/cd-light.png deleted file mode 100644 index 6f2d2a7a..00000000 Binary files a/desktop/onionshare/resources/images/countries/cd-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/cf-dark.png b/desktop/onionshare/resources/images/countries/cf-dark.png deleted file mode 100644 index 0e183dc0..00000000 Binary files a/desktop/onionshare/resources/images/countries/cf-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/cf-light.png b/desktop/onionshare/resources/images/countries/cf-light.png deleted file mode 100644 index 33c22f4e..00000000 Binary files a/desktop/onionshare/resources/images/countries/cf-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/cg-dark.png b/desktop/onionshare/resources/images/countries/cg-dark.png deleted file mode 100644 index 5de265f0..00000000 Binary files a/desktop/onionshare/resources/images/countries/cg-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/cg-light.png b/desktop/onionshare/resources/images/countries/cg-light.png deleted file mode 100644 index 027955b5..00000000 Binary files a/desktop/onionshare/resources/images/countries/cg-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/ch-dark.png b/desktop/onionshare/resources/images/countries/ch-dark.png deleted file mode 100644 index 6fb4656e..00000000 Binary files a/desktop/onionshare/resources/images/countries/ch-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/ch-light.png b/desktop/onionshare/resources/images/countries/ch-light.png deleted file mode 100644 index 485f4285..00000000 Binary files a/desktop/onionshare/resources/images/countries/ch-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/ci-dark.png b/desktop/onionshare/resources/images/countries/ci-dark.png deleted file mode 100644 index f19cd35c..00000000 Binary files a/desktop/onionshare/resources/images/countries/ci-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/ci-light.png b/desktop/onionshare/resources/images/countries/ci-light.png deleted file mode 100644 index 0c60f50d..00000000 Binary files a/desktop/onionshare/resources/images/countries/ci-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/ck-dark.png b/desktop/onionshare/resources/images/countries/ck-dark.png deleted file mode 100644 index b2ec6687..00000000 Binary files a/desktop/onionshare/resources/images/countries/ck-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/ck-light.png b/desktop/onionshare/resources/images/countries/ck-light.png deleted file mode 100644 index d6bed048..00000000 Binary files a/desktop/onionshare/resources/images/countries/ck-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/cl-dark.png b/desktop/onionshare/resources/images/countries/cl-dark.png deleted file mode 100644 index 455955cb..00000000 Binary files a/desktop/onionshare/resources/images/countries/cl-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/cl-light.png b/desktop/onionshare/resources/images/countries/cl-light.png deleted file mode 100644 index 36f0af59..00000000 Binary files a/desktop/onionshare/resources/images/countries/cl-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/cm-dark.png b/desktop/onionshare/resources/images/countries/cm-dark.png deleted file mode 100644 index 97bc7087..00000000 Binary files a/desktop/onionshare/resources/images/countries/cm-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/cm-light.png b/desktop/onionshare/resources/images/countries/cm-light.png deleted file mode 100644 index c612b21e..00000000 Binary files a/desktop/onionshare/resources/images/countries/cm-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/cn-dark.png b/desktop/onionshare/resources/images/countries/cn-dark.png deleted file mode 100644 index 9e541a42..00000000 Binary files a/desktop/onionshare/resources/images/countries/cn-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/cn-light.png b/desktop/onionshare/resources/images/countries/cn-light.png deleted file mode 100644 index bb04558e..00000000 Binary files a/desktop/onionshare/resources/images/countries/cn-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/co-dark.png b/desktop/onionshare/resources/images/countries/co-dark.png deleted file mode 100644 index aae3be9a..00000000 Binary files a/desktop/onionshare/resources/images/countries/co-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/co-light.png b/desktop/onionshare/resources/images/countries/co-light.png deleted file mode 100644 index 4cc1cb72..00000000 Binary files a/desktop/onionshare/resources/images/countries/co-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/cr-dark.png b/desktop/onionshare/resources/images/countries/cr-dark.png deleted file mode 100644 index cf02f08e..00000000 Binary files a/desktop/onionshare/resources/images/countries/cr-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/cr-light.png b/desktop/onionshare/resources/images/countries/cr-light.png deleted file mode 100644 index 4cc70fda..00000000 Binary files a/desktop/onionshare/resources/images/countries/cr-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/cu-dark.png b/desktop/onionshare/resources/images/countries/cu-dark.png deleted file mode 100644 index 61a1249d..00000000 Binary files a/desktop/onionshare/resources/images/countries/cu-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/cu-light.png b/desktop/onionshare/resources/images/countries/cu-light.png deleted file mode 100644 index 6de7047b..00000000 Binary files a/desktop/onionshare/resources/images/countries/cu-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/cv-dark.png b/desktop/onionshare/resources/images/countries/cv-dark.png deleted file mode 100644 index 580f1087..00000000 Binary files a/desktop/onionshare/resources/images/countries/cv-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/cv-light.png b/desktop/onionshare/resources/images/countries/cv-light.png deleted file mode 100644 index 6258ba6c..00000000 Binary files a/desktop/onionshare/resources/images/countries/cv-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/cw-dark.png b/desktop/onionshare/resources/images/countries/cw-dark.png deleted file mode 100644 index ea8bec14..00000000 Binary files a/desktop/onionshare/resources/images/countries/cw-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/cw-light.png b/desktop/onionshare/resources/images/countries/cw-light.png deleted file mode 100644 index 06d6f504..00000000 Binary files a/desktop/onionshare/resources/images/countries/cw-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/cx-dark.png b/desktop/onionshare/resources/images/countries/cx-dark.png deleted file mode 100644 index 35aa71ea..00000000 Binary files a/desktop/onionshare/resources/images/countries/cx-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/cx-light.png b/desktop/onionshare/resources/images/countries/cx-light.png deleted file mode 100644 index 49748d4c..00000000 Binary files a/desktop/onionshare/resources/images/countries/cx-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/cy-dark.png b/desktop/onionshare/resources/images/countries/cy-dark.png deleted file mode 100644 index 428cdbd6..00000000 Binary files a/desktop/onionshare/resources/images/countries/cy-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/cy-light.png b/desktop/onionshare/resources/images/countries/cy-light.png deleted file mode 100644 index 1fc5e1a2..00000000 Binary files a/desktop/onionshare/resources/images/countries/cy-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/cz-dark.png b/desktop/onionshare/resources/images/countries/cz-dark.png deleted file mode 100644 index 13af5725..00000000 Binary files a/desktop/onionshare/resources/images/countries/cz-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/cz-light.png b/desktop/onionshare/resources/images/countries/cz-light.png deleted file mode 100644 index 20e83637..00000000 Binary files a/desktop/onionshare/resources/images/countries/cz-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/de-dark.png b/desktop/onionshare/resources/images/countries/de-dark.png deleted file mode 100644 index ff0806d9..00000000 Binary files a/desktop/onionshare/resources/images/countries/de-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/de-light.png b/desktop/onionshare/resources/images/countries/de-light.png deleted file mode 100644 index b221b877..00000000 Binary files a/desktop/onionshare/resources/images/countries/de-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/dj-dark.png b/desktop/onionshare/resources/images/countries/dj-dark.png deleted file mode 100644 index 96d7ed42..00000000 Binary files a/desktop/onionshare/resources/images/countries/dj-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/dj-light.png b/desktop/onionshare/resources/images/countries/dj-light.png deleted file mode 100644 index 094cf53f..00000000 Binary files a/desktop/onionshare/resources/images/countries/dj-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/dk-dark.png b/desktop/onionshare/resources/images/countries/dk-dark.png deleted file mode 100644 index 3c329658..00000000 Binary files a/desktop/onionshare/resources/images/countries/dk-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/dk-light.png b/desktop/onionshare/resources/images/countries/dk-light.png deleted file mode 100644 index 1868128f..00000000 Binary files a/desktop/onionshare/resources/images/countries/dk-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/dm-dark.png b/desktop/onionshare/resources/images/countries/dm-dark.png deleted file mode 100644 index 1126c375..00000000 Binary files a/desktop/onionshare/resources/images/countries/dm-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/dm-light.png b/desktop/onionshare/resources/images/countries/dm-light.png deleted file mode 100644 index 6146b808..00000000 Binary files a/desktop/onionshare/resources/images/countries/dm-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/do-dark.png b/desktop/onionshare/resources/images/countries/do-dark.png deleted file mode 100644 index 16d18131..00000000 Binary files a/desktop/onionshare/resources/images/countries/do-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/do-light.png b/desktop/onionshare/resources/images/countries/do-light.png deleted file mode 100644 index 6fd00e63..00000000 Binary files a/desktop/onionshare/resources/images/countries/do-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/dz-dark.png b/desktop/onionshare/resources/images/countries/dz-dark.png deleted file mode 100644 index 4355ba7a..00000000 Binary files a/desktop/onionshare/resources/images/countries/dz-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/dz-light.png b/desktop/onionshare/resources/images/countries/dz-light.png deleted file mode 100644 index 924d9ad9..00000000 Binary files a/desktop/onionshare/resources/images/countries/dz-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/ec-dark.png b/desktop/onionshare/resources/images/countries/ec-dark.png deleted file mode 100644 index 8357905e..00000000 Binary files a/desktop/onionshare/resources/images/countries/ec-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/ec-light.png b/desktop/onionshare/resources/images/countries/ec-light.png deleted file mode 100644 index ebb18cb4..00000000 Binary files a/desktop/onionshare/resources/images/countries/ec-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/ee-dark.png b/desktop/onionshare/resources/images/countries/ee-dark.png deleted file mode 100644 index 8a542ff7..00000000 Binary files a/desktop/onionshare/resources/images/countries/ee-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/ee-light.png b/desktop/onionshare/resources/images/countries/ee-light.png deleted file mode 100644 index 68b4762c..00000000 Binary files a/desktop/onionshare/resources/images/countries/ee-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/eg-dark.png b/desktop/onionshare/resources/images/countries/eg-dark.png deleted file mode 100644 index 8477f57f..00000000 Binary files a/desktop/onionshare/resources/images/countries/eg-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/eg-light.png b/desktop/onionshare/resources/images/countries/eg-light.png deleted file mode 100644 index eacd70fb..00000000 Binary files a/desktop/onionshare/resources/images/countries/eg-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/eh-dark.png b/desktop/onionshare/resources/images/countries/eh-dark.png deleted file mode 100644 index d4bc85b4..00000000 Binary files a/desktop/onionshare/resources/images/countries/eh-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/eh-light.png b/desktop/onionshare/resources/images/countries/eh-light.png deleted file mode 100644 index e350a48f..00000000 Binary files a/desktop/onionshare/resources/images/countries/eh-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/er-dark.png b/desktop/onionshare/resources/images/countries/er-dark.png deleted file mode 100644 index 27d221c2..00000000 Binary files a/desktop/onionshare/resources/images/countries/er-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/er-light.png b/desktop/onionshare/resources/images/countries/er-light.png deleted file mode 100644 index 9d67fa9c..00000000 Binary files a/desktop/onionshare/resources/images/countries/er-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/es-dark.png b/desktop/onionshare/resources/images/countries/es-dark.png deleted file mode 100644 index 3c310c9b..00000000 Binary files a/desktop/onionshare/resources/images/countries/es-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/es-light.png b/desktop/onionshare/resources/images/countries/es-light.png deleted file mode 100644 index 6ddb830b..00000000 Binary files a/desktop/onionshare/resources/images/countries/es-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/et-dark.png b/desktop/onionshare/resources/images/countries/et-dark.png deleted file mode 100644 index 4ff51ed8..00000000 Binary files a/desktop/onionshare/resources/images/countries/et-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/et-light.png b/desktop/onionshare/resources/images/countries/et-light.png deleted file mode 100644 index 678f7f91..00000000 Binary files a/desktop/onionshare/resources/images/countries/et-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/fi-dark.png b/desktop/onionshare/resources/images/countries/fi-dark.png deleted file mode 100644 index 53fc0ee2..00000000 Binary files a/desktop/onionshare/resources/images/countries/fi-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/fi-light.png b/desktop/onionshare/resources/images/countries/fi-light.png deleted file mode 100644 index 09902ae4..00000000 Binary files a/desktop/onionshare/resources/images/countries/fi-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/fj-dark.png b/desktop/onionshare/resources/images/countries/fj-dark.png deleted file mode 100644 index 400107f1..00000000 Binary files a/desktop/onionshare/resources/images/countries/fj-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/fj-light.png b/desktop/onionshare/resources/images/countries/fj-light.png deleted file mode 100644 index 677785ac..00000000 Binary files a/desktop/onionshare/resources/images/countries/fj-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/fk-dark.png b/desktop/onionshare/resources/images/countries/fk-dark.png deleted file mode 100644 index 40728711..00000000 Binary files a/desktop/onionshare/resources/images/countries/fk-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/fk-light.png b/desktop/onionshare/resources/images/countries/fk-light.png deleted file mode 100644 index 6bcc59d2..00000000 Binary files a/desktop/onionshare/resources/images/countries/fk-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/fo-dark.png b/desktop/onionshare/resources/images/countries/fo-dark.png deleted file mode 100644 index 7e19baa2..00000000 Binary files a/desktop/onionshare/resources/images/countries/fo-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/fo-light.png b/desktop/onionshare/resources/images/countries/fo-light.png deleted file mode 100644 index 8ccb7419..00000000 Binary files a/desktop/onionshare/resources/images/countries/fo-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/fr-dark.png b/desktop/onionshare/resources/images/countries/fr-dark.png deleted file mode 100644 index 90260f3b..00000000 Binary files a/desktop/onionshare/resources/images/countries/fr-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/fr-light.png b/desktop/onionshare/resources/images/countries/fr-light.png deleted file mode 100644 index 449ddadb..00000000 Binary files a/desktop/onionshare/resources/images/countries/fr-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/ga-dark.png b/desktop/onionshare/resources/images/countries/ga-dark.png deleted file mode 100644 index 30e6e3c9..00000000 Binary files a/desktop/onionshare/resources/images/countries/ga-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/ga-light.png b/desktop/onionshare/resources/images/countries/ga-light.png deleted file mode 100644 index be9bd225..00000000 Binary files a/desktop/onionshare/resources/images/countries/ga-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/gb-dark.png b/desktop/onionshare/resources/images/countries/gb-dark.png deleted file mode 100644 index f4a23714..00000000 Binary files a/desktop/onionshare/resources/images/countries/gb-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/gb-light.png b/desktop/onionshare/resources/images/countries/gb-light.png deleted file mode 100644 index da1cbaab..00000000 Binary files a/desktop/onionshare/resources/images/countries/gb-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/gd-dark.png b/desktop/onionshare/resources/images/countries/gd-dark.png deleted file mode 100644 index 0cf341cb..00000000 Binary files a/desktop/onionshare/resources/images/countries/gd-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/gd-light.png b/desktop/onionshare/resources/images/countries/gd-light.png deleted file mode 100644 index 6490239a..00000000 Binary files a/desktop/onionshare/resources/images/countries/gd-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/ge-dark.png b/desktop/onionshare/resources/images/countries/ge-dark.png deleted file mode 100644 index a56cc972..00000000 Binary files a/desktop/onionshare/resources/images/countries/ge-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/ge-light.png b/desktop/onionshare/resources/images/countries/ge-light.png deleted file mode 100644 index eae30444..00000000 Binary files a/desktop/onionshare/resources/images/countries/ge-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/gf-dark.png b/desktop/onionshare/resources/images/countries/gf-dark.png deleted file mode 100644 index 64978b06..00000000 Binary files a/desktop/onionshare/resources/images/countries/gf-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/gf-light.png b/desktop/onionshare/resources/images/countries/gf-light.png deleted file mode 100644 index 11bab78e..00000000 Binary files a/desktop/onionshare/resources/images/countries/gf-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/gg-dark.png b/desktop/onionshare/resources/images/countries/gg-dark.png deleted file mode 100644 index 3a9cea91..00000000 Binary files a/desktop/onionshare/resources/images/countries/gg-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/gg-light.png b/desktop/onionshare/resources/images/countries/gg-light.png deleted file mode 100644 index 99d81f00..00000000 Binary files a/desktop/onionshare/resources/images/countries/gg-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/gh-dark.png b/desktop/onionshare/resources/images/countries/gh-dark.png deleted file mode 100644 index 8af1d333..00000000 Binary files a/desktop/onionshare/resources/images/countries/gh-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/gh-light.png b/desktop/onionshare/resources/images/countries/gh-light.png deleted file mode 100644 index 097a68a9..00000000 Binary files a/desktop/onionshare/resources/images/countries/gh-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/gi-dark.png b/desktop/onionshare/resources/images/countries/gi-dark.png deleted file mode 100644 index 97ae42d0..00000000 Binary files a/desktop/onionshare/resources/images/countries/gi-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/gi-light.png b/desktop/onionshare/resources/images/countries/gi-light.png deleted file mode 100644 index 7d38fe52..00000000 Binary files a/desktop/onionshare/resources/images/countries/gi-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/gl-dark.png b/desktop/onionshare/resources/images/countries/gl-dark.png deleted file mode 100644 index 0fb8cee7..00000000 Binary files a/desktop/onionshare/resources/images/countries/gl-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/gl-light.png b/desktop/onionshare/resources/images/countries/gl-light.png deleted file mode 100644 index cae17882..00000000 Binary files a/desktop/onionshare/resources/images/countries/gl-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/gm-dark.png b/desktop/onionshare/resources/images/countries/gm-dark.png deleted file mode 100644 index d04ef441..00000000 Binary files a/desktop/onionshare/resources/images/countries/gm-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/gm-light.png b/desktop/onionshare/resources/images/countries/gm-light.png deleted file mode 100644 index dc6a0c71..00000000 Binary files a/desktop/onionshare/resources/images/countries/gm-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/gn-dark.png b/desktop/onionshare/resources/images/countries/gn-dark.png deleted file mode 100644 index 36a53e07..00000000 Binary files a/desktop/onionshare/resources/images/countries/gn-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/gn-light.png b/desktop/onionshare/resources/images/countries/gn-light.png deleted file mode 100644 index 3b6be3b1..00000000 Binary files a/desktop/onionshare/resources/images/countries/gn-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/gp-dark.png b/desktop/onionshare/resources/images/countries/gp-dark.png deleted file mode 100644 index ed93d115..00000000 Binary files a/desktop/onionshare/resources/images/countries/gp-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/gp-light.png b/desktop/onionshare/resources/images/countries/gp-light.png deleted file mode 100644 index 0e29dbed..00000000 Binary files a/desktop/onionshare/resources/images/countries/gp-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/gq-dark.png b/desktop/onionshare/resources/images/countries/gq-dark.png deleted file mode 100644 index c8cd9b1b..00000000 Binary files a/desktop/onionshare/resources/images/countries/gq-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/gq-light.png b/desktop/onionshare/resources/images/countries/gq-light.png deleted file mode 100644 index 255577b3..00000000 Binary files a/desktop/onionshare/resources/images/countries/gq-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/gr-dark.png b/desktop/onionshare/resources/images/countries/gr-dark.png deleted file mode 100644 index 92067e34..00000000 Binary files a/desktop/onionshare/resources/images/countries/gr-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/gr-light.png b/desktop/onionshare/resources/images/countries/gr-light.png deleted file mode 100644 index 2cb5f157..00000000 Binary files a/desktop/onionshare/resources/images/countries/gr-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/gs-dark.png b/desktop/onionshare/resources/images/countries/gs-dark.png deleted file mode 100644 index 9c0f824b..00000000 Binary files a/desktop/onionshare/resources/images/countries/gs-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/gs-light.png b/desktop/onionshare/resources/images/countries/gs-light.png deleted file mode 100644 index 0c14a9d8..00000000 Binary files a/desktop/onionshare/resources/images/countries/gs-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/gt-dark.png b/desktop/onionshare/resources/images/countries/gt-dark.png deleted file mode 100644 index a24ac3c2..00000000 Binary files a/desktop/onionshare/resources/images/countries/gt-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/gt-light.png b/desktop/onionshare/resources/images/countries/gt-light.png deleted file mode 100644 index b905ef77..00000000 Binary files a/desktop/onionshare/resources/images/countries/gt-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/gu-dark.png b/desktop/onionshare/resources/images/countries/gu-dark.png deleted file mode 100644 index 066e1c55..00000000 Binary files a/desktop/onionshare/resources/images/countries/gu-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/gu-light.png b/desktop/onionshare/resources/images/countries/gu-light.png deleted file mode 100644 index f1d43774..00000000 Binary files a/desktop/onionshare/resources/images/countries/gu-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/gw-dark.png b/desktop/onionshare/resources/images/countries/gw-dark.png deleted file mode 100644 index 5be26359..00000000 Binary files a/desktop/onionshare/resources/images/countries/gw-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/gw-light.png b/desktop/onionshare/resources/images/countries/gw-light.png deleted file mode 100644 index a14a0eed..00000000 Binary files a/desktop/onionshare/resources/images/countries/gw-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/gy-dark.png b/desktop/onionshare/resources/images/countries/gy-dark.png deleted file mode 100644 index dd5fa2d4..00000000 Binary files a/desktop/onionshare/resources/images/countries/gy-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/gy-light.png b/desktop/onionshare/resources/images/countries/gy-light.png deleted file mode 100644 index ecaa69e8..00000000 Binary files a/desktop/onionshare/resources/images/countries/gy-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/hk-dark.png b/desktop/onionshare/resources/images/countries/hk-dark.png deleted file mode 100644 index c3cd167a..00000000 Binary files a/desktop/onionshare/resources/images/countries/hk-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/hk-light.png b/desktop/onionshare/resources/images/countries/hk-light.png deleted file mode 100644 index 49d9306a..00000000 Binary files a/desktop/onionshare/resources/images/countries/hk-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/hm-dark.png b/desktop/onionshare/resources/images/countries/hm-dark.png deleted file mode 100644 index bff66284..00000000 Binary files a/desktop/onionshare/resources/images/countries/hm-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/hm-light.png b/desktop/onionshare/resources/images/countries/hm-light.png deleted file mode 100644 index 7bcae099..00000000 Binary files a/desktop/onionshare/resources/images/countries/hm-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/hn-dark.png b/desktop/onionshare/resources/images/countries/hn-dark.png deleted file mode 100644 index 81d66fab..00000000 Binary files a/desktop/onionshare/resources/images/countries/hn-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/hn-light.png b/desktop/onionshare/resources/images/countries/hn-light.png deleted file mode 100644 index f13da74d..00000000 Binary files a/desktop/onionshare/resources/images/countries/hn-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/hr-dark.png b/desktop/onionshare/resources/images/countries/hr-dark.png deleted file mode 100644 index 09f742be..00000000 Binary files a/desktop/onionshare/resources/images/countries/hr-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/hr-light.png b/desktop/onionshare/resources/images/countries/hr-light.png deleted file mode 100644 index 4e0da927..00000000 Binary files a/desktop/onionshare/resources/images/countries/hr-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/ht-dark.png b/desktop/onionshare/resources/images/countries/ht-dark.png deleted file mode 100644 index 62b15611..00000000 Binary files a/desktop/onionshare/resources/images/countries/ht-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/ht-light.png b/desktop/onionshare/resources/images/countries/ht-light.png deleted file mode 100644 index c5e39018..00000000 Binary files a/desktop/onionshare/resources/images/countries/ht-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/hu-dark.png b/desktop/onionshare/resources/images/countries/hu-dark.png deleted file mode 100644 index 483ff639..00000000 Binary files a/desktop/onionshare/resources/images/countries/hu-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/hu-light.png b/desktop/onionshare/resources/images/countries/hu-light.png deleted file mode 100644 index 7ea87389..00000000 Binary files a/desktop/onionshare/resources/images/countries/hu-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/id-dark.png b/desktop/onionshare/resources/images/countries/id-dark.png deleted file mode 100644 index 6f4d927b..00000000 Binary files a/desktop/onionshare/resources/images/countries/id-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/id-light.png b/desktop/onionshare/resources/images/countries/id-light.png deleted file mode 100644 index 19c6a539..00000000 Binary files a/desktop/onionshare/resources/images/countries/id-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/ie-dark.png b/desktop/onionshare/resources/images/countries/ie-dark.png deleted file mode 100644 index 8323569d..00000000 Binary files a/desktop/onionshare/resources/images/countries/ie-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/ie-light.png b/desktop/onionshare/resources/images/countries/ie-light.png deleted file mode 100644 index 02f0c6a6..00000000 Binary files a/desktop/onionshare/resources/images/countries/ie-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/il-dark.png b/desktop/onionshare/resources/images/countries/il-dark.png deleted file mode 100644 index 859b1a88..00000000 Binary files a/desktop/onionshare/resources/images/countries/il-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/il-light.png b/desktop/onionshare/resources/images/countries/il-light.png deleted file mode 100644 index 3ca27bf5..00000000 Binary files a/desktop/onionshare/resources/images/countries/il-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/im-dark.png b/desktop/onionshare/resources/images/countries/im-dark.png deleted file mode 100644 index 0eae3143..00000000 Binary files a/desktop/onionshare/resources/images/countries/im-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/im-light.png b/desktop/onionshare/resources/images/countries/im-light.png deleted file mode 100644 index 35d5b773..00000000 Binary files a/desktop/onionshare/resources/images/countries/im-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/in-dark.png b/desktop/onionshare/resources/images/countries/in-dark.png deleted file mode 100644 index 41e96c86..00000000 Binary files a/desktop/onionshare/resources/images/countries/in-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/in-light.png b/desktop/onionshare/resources/images/countries/in-light.png deleted file mode 100644 index 8fd2ebd7..00000000 Binary files a/desktop/onionshare/resources/images/countries/in-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/io-dark.png b/desktop/onionshare/resources/images/countries/io-dark.png deleted file mode 100644 index ebf9a094..00000000 Binary files a/desktop/onionshare/resources/images/countries/io-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/io-light.png b/desktop/onionshare/resources/images/countries/io-light.png deleted file mode 100644 index a9d49813..00000000 Binary files a/desktop/onionshare/resources/images/countries/io-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/iq-dark.png b/desktop/onionshare/resources/images/countries/iq-dark.png deleted file mode 100644 index c6e8e563..00000000 Binary files a/desktop/onionshare/resources/images/countries/iq-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/iq-light.png b/desktop/onionshare/resources/images/countries/iq-light.png deleted file mode 100644 index 34348112..00000000 Binary files a/desktop/onionshare/resources/images/countries/iq-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/ir-dark.png b/desktop/onionshare/resources/images/countries/ir-dark.png deleted file mode 100644 index 4f23e34a..00000000 Binary files a/desktop/onionshare/resources/images/countries/ir-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/ir-light.png b/desktop/onionshare/resources/images/countries/ir-light.png deleted file mode 100644 index 238cdf33..00000000 Binary files a/desktop/onionshare/resources/images/countries/ir-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/is-dark.png b/desktop/onionshare/resources/images/countries/is-dark.png deleted file mode 100644 index 33a82b82..00000000 Binary files a/desktop/onionshare/resources/images/countries/is-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/is-light.png b/desktop/onionshare/resources/images/countries/is-light.png deleted file mode 100644 index 09f3d272..00000000 Binary files a/desktop/onionshare/resources/images/countries/is-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/it-dark.png b/desktop/onionshare/resources/images/countries/it-dark.png deleted file mode 100644 index 5d5f318c..00000000 Binary files a/desktop/onionshare/resources/images/countries/it-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/it-light.png b/desktop/onionshare/resources/images/countries/it-light.png deleted file mode 100644 index ec146b52..00000000 Binary files a/desktop/onionshare/resources/images/countries/it-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/jm-dark.png b/desktop/onionshare/resources/images/countries/jm-dark.png deleted file mode 100644 index 4ea7c7fa..00000000 Binary files a/desktop/onionshare/resources/images/countries/jm-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/jm-light.png b/desktop/onionshare/resources/images/countries/jm-light.png deleted file mode 100644 index 30ecb409..00000000 Binary files a/desktop/onionshare/resources/images/countries/jm-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/jo-dark.png b/desktop/onionshare/resources/images/countries/jo-dark.png deleted file mode 100644 index ba2b8a21..00000000 Binary files a/desktop/onionshare/resources/images/countries/jo-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/jo-light.png b/desktop/onionshare/resources/images/countries/jo-light.png deleted file mode 100644 index d01fb7b2..00000000 Binary files a/desktop/onionshare/resources/images/countries/jo-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/jp-dark.png b/desktop/onionshare/resources/images/countries/jp-dark.png deleted file mode 100644 index 3b18aec1..00000000 Binary files a/desktop/onionshare/resources/images/countries/jp-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/jp-light.png b/desktop/onionshare/resources/images/countries/jp-light.png deleted file mode 100644 index 80627602..00000000 Binary files a/desktop/onionshare/resources/images/countries/jp-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/ke-dark.png b/desktop/onionshare/resources/images/countries/ke-dark.png deleted file mode 100644 index f2001a7a..00000000 Binary files a/desktop/onionshare/resources/images/countries/ke-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/ke-light.png b/desktop/onionshare/resources/images/countries/ke-light.png deleted file mode 100644 index 18e391d2..00000000 Binary files a/desktop/onionshare/resources/images/countries/ke-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/kg-dark.png b/desktop/onionshare/resources/images/countries/kg-dark.png deleted file mode 100644 index 581d4197..00000000 Binary files a/desktop/onionshare/resources/images/countries/kg-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/kg-light.png b/desktop/onionshare/resources/images/countries/kg-light.png deleted file mode 100644 index 0a014f9f..00000000 Binary files a/desktop/onionshare/resources/images/countries/kg-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/kh-dark.png b/desktop/onionshare/resources/images/countries/kh-dark.png deleted file mode 100644 index 036c4c7b..00000000 Binary files a/desktop/onionshare/resources/images/countries/kh-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/kh-light.png b/desktop/onionshare/resources/images/countries/kh-light.png deleted file mode 100644 index f8ed587d..00000000 Binary files a/desktop/onionshare/resources/images/countries/kh-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/ki-dark.png b/desktop/onionshare/resources/images/countries/ki-dark.png deleted file mode 100644 index 14faa17a..00000000 Binary files a/desktop/onionshare/resources/images/countries/ki-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/ki-light.png b/desktop/onionshare/resources/images/countries/ki-light.png deleted file mode 100644 index c5a54a32..00000000 Binary files a/desktop/onionshare/resources/images/countries/ki-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/km-dark.png b/desktop/onionshare/resources/images/countries/km-dark.png deleted file mode 100644 index cde33562..00000000 Binary files a/desktop/onionshare/resources/images/countries/km-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/km-light.png b/desktop/onionshare/resources/images/countries/km-light.png deleted file mode 100644 index c99b9991..00000000 Binary files a/desktop/onionshare/resources/images/countries/km-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/kn-dark.png b/desktop/onionshare/resources/images/countries/kn-dark.png deleted file mode 100644 index 5d46d85e..00000000 Binary files a/desktop/onionshare/resources/images/countries/kn-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/kn-light.png b/desktop/onionshare/resources/images/countries/kn-light.png deleted file mode 100644 index 57da7e5c..00000000 Binary files a/desktop/onionshare/resources/images/countries/kn-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/kp-dark.png b/desktop/onionshare/resources/images/countries/kp-dark.png deleted file mode 100644 index 0d3bd08d..00000000 Binary files a/desktop/onionshare/resources/images/countries/kp-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/kp-light.png b/desktop/onionshare/resources/images/countries/kp-light.png deleted file mode 100644 index ea61e18d..00000000 Binary files a/desktop/onionshare/resources/images/countries/kp-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/kr-dark.png b/desktop/onionshare/resources/images/countries/kr-dark.png deleted file mode 100644 index 2334eb4f..00000000 Binary files a/desktop/onionshare/resources/images/countries/kr-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/kr-light.png b/desktop/onionshare/resources/images/countries/kr-light.png deleted file mode 100644 index 7247201d..00000000 Binary files a/desktop/onionshare/resources/images/countries/kr-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/kw-dark.png b/desktop/onionshare/resources/images/countries/kw-dark.png deleted file mode 100644 index 0d9c2fab..00000000 Binary files a/desktop/onionshare/resources/images/countries/kw-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/kw-light.png b/desktop/onionshare/resources/images/countries/kw-light.png deleted file mode 100644 index a58a3f54..00000000 Binary files a/desktop/onionshare/resources/images/countries/kw-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/ky-dark.png b/desktop/onionshare/resources/images/countries/ky-dark.png deleted file mode 100644 index 375cafc2..00000000 Binary files a/desktop/onionshare/resources/images/countries/ky-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/ky-light.png b/desktop/onionshare/resources/images/countries/ky-light.png deleted file mode 100644 index 8752a2fe..00000000 Binary files a/desktop/onionshare/resources/images/countries/ky-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/kz-dark.png b/desktop/onionshare/resources/images/countries/kz-dark.png deleted file mode 100644 index 2c0c0af9..00000000 Binary files a/desktop/onionshare/resources/images/countries/kz-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/kz-light.png b/desktop/onionshare/resources/images/countries/kz-light.png deleted file mode 100644 index 4e7da718..00000000 Binary files a/desktop/onionshare/resources/images/countries/kz-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/la-dark.png b/desktop/onionshare/resources/images/countries/la-dark.png deleted file mode 100644 index 74ed419a..00000000 Binary files a/desktop/onionshare/resources/images/countries/la-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/la-light.png b/desktop/onionshare/resources/images/countries/la-light.png deleted file mode 100644 index d91ed5fb..00000000 Binary files a/desktop/onionshare/resources/images/countries/la-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/lb-dark.png b/desktop/onionshare/resources/images/countries/lb-dark.png deleted file mode 100644 index 84888362..00000000 Binary files a/desktop/onionshare/resources/images/countries/lb-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/lb-light.png b/desktop/onionshare/resources/images/countries/lb-light.png deleted file mode 100644 index f052443f..00000000 Binary files a/desktop/onionshare/resources/images/countries/lb-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/lc-dark.png b/desktop/onionshare/resources/images/countries/lc-dark.png deleted file mode 100644 index 6079d9b9..00000000 Binary files a/desktop/onionshare/resources/images/countries/lc-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/lc-light.png b/desktop/onionshare/resources/images/countries/lc-light.png deleted file mode 100644 index 00650c9c..00000000 Binary files a/desktop/onionshare/resources/images/countries/lc-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/li-dark.png b/desktop/onionshare/resources/images/countries/li-dark.png deleted file mode 100644 index d63d9213..00000000 Binary files a/desktop/onionshare/resources/images/countries/li-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/li-light.png b/desktop/onionshare/resources/images/countries/li-light.png deleted file mode 100644 index 0de27598..00000000 Binary files a/desktop/onionshare/resources/images/countries/li-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/lk-dark.png b/desktop/onionshare/resources/images/countries/lk-dark.png deleted file mode 100644 index 9a785176..00000000 Binary files a/desktop/onionshare/resources/images/countries/lk-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/lk-light.png b/desktop/onionshare/resources/images/countries/lk-light.png deleted file mode 100644 index 8fda48fa..00000000 Binary files a/desktop/onionshare/resources/images/countries/lk-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/lr-dark.png b/desktop/onionshare/resources/images/countries/lr-dark.png deleted file mode 100644 index 69394239..00000000 Binary files a/desktop/onionshare/resources/images/countries/lr-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/lr-light.png b/desktop/onionshare/resources/images/countries/lr-light.png deleted file mode 100644 index cdc5c3df..00000000 Binary files a/desktop/onionshare/resources/images/countries/lr-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/ls-dark.png b/desktop/onionshare/resources/images/countries/ls-dark.png deleted file mode 100644 index 0b9993b3..00000000 Binary files a/desktop/onionshare/resources/images/countries/ls-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/ls-light.png b/desktop/onionshare/resources/images/countries/ls-light.png deleted file mode 100644 index 02f530a5..00000000 Binary files a/desktop/onionshare/resources/images/countries/ls-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/lt-dark.png b/desktop/onionshare/resources/images/countries/lt-dark.png deleted file mode 100644 index c72f3701..00000000 Binary files a/desktop/onionshare/resources/images/countries/lt-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/lt-light.png b/desktop/onionshare/resources/images/countries/lt-light.png deleted file mode 100644 index dd282e49..00000000 Binary files a/desktop/onionshare/resources/images/countries/lt-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/lu-dark.png b/desktop/onionshare/resources/images/countries/lu-dark.png deleted file mode 100644 index b4eeb4f1..00000000 Binary files a/desktop/onionshare/resources/images/countries/lu-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/lu-light.png b/desktop/onionshare/resources/images/countries/lu-light.png deleted file mode 100644 index c1af757f..00000000 Binary files a/desktop/onionshare/resources/images/countries/lu-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/lv-dark.png b/desktop/onionshare/resources/images/countries/lv-dark.png deleted file mode 100644 index db8b7477..00000000 Binary files a/desktop/onionshare/resources/images/countries/lv-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/lv-light.png b/desktop/onionshare/resources/images/countries/lv-light.png deleted file mode 100644 index aea5f83f..00000000 Binary files a/desktop/onionshare/resources/images/countries/lv-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/ly-dark.png b/desktop/onionshare/resources/images/countries/ly-dark.png deleted file mode 100644 index 3ce0a0e7..00000000 Binary files a/desktop/onionshare/resources/images/countries/ly-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/ly-light.png b/desktop/onionshare/resources/images/countries/ly-light.png deleted file mode 100644 index cf9066ec..00000000 Binary files a/desktop/onionshare/resources/images/countries/ly-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/ma-dark.png b/desktop/onionshare/resources/images/countries/ma-dark.png deleted file mode 100644 index 100235fe..00000000 Binary files a/desktop/onionshare/resources/images/countries/ma-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/ma-light.png b/desktop/onionshare/resources/images/countries/ma-light.png deleted file mode 100644 index 23bd40ca..00000000 Binary files a/desktop/onionshare/resources/images/countries/ma-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/mc-dark.png b/desktop/onionshare/resources/images/countries/mc-dark.png deleted file mode 100644 index 57b85aea..00000000 Binary files a/desktop/onionshare/resources/images/countries/mc-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/mc-light.png b/desktop/onionshare/resources/images/countries/mc-light.png deleted file mode 100644 index 0adbc23a..00000000 Binary files a/desktop/onionshare/resources/images/countries/mc-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/md-dark.png b/desktop/onionshare/resources/images/countries/md-dark.png deleted file mode 100644 index 9f5fe417..00000000 Binary files a/desktop/onionshare/resources/images/countries/md-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/md-light.png b/desktop/onionshare/resources/images/countries/md-light.png deleted file mode 100644 index 4e6f0d1a..00000000 Binary files a/desktop/onionshare/resources/images/countries/md-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/me-dark.png b/desktop/onionshare/resources/images/countries/me-dark.png deleted file mode 100644 index e2dc2a51..00000000 Binary files a/desktop/onionshare/resources/images/countries/me-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/me-light.png b/desktop/onionshare/resources/images/countries/me-light.png deleted file mode 100644 index 744dcc6e..00000000 Binary files a/desktop/onionshare/resources/images/countries/me-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/mf-dark.png b/desktop/onionshare/resources/images/countries/mf-dark.png deleted file mode 100644 index 04107c0b..00000000 Binary files a/desktop/onionshare/resources/images/countries/mf-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/mf-light.png b/desktop/onionshare/resources/images/countries/mf-light.png deleted file mode 100644 index 4f71161b..00000000 Binary files a/desktop/onionshare/resources/images/countries/mf-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/mg-dark.png b/desktop/onionshare/resources/images/countries/mg-dark.png deleted file mode 100644 index 810f974c..00000000 Binary files a/desktop/onionshare/resources/images/countries/mg-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/mg-light.png b/desktop/onionshare/resources/images/countries/mg-light.png deleted file mode 100644 index 6897118a..00000000 Binary files a/desktop/onionshare/resources/images/countries/mg-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/mk-dark.png b/desktop/onionshare/resources/images/countries/mk-dark.png deleted file mode 100644 index a67fa5aa..00000000 Binary files a/desktop/onionshare/resources/images/countries/mk-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/mk-light.png b/desktop/onionshare/resources/images/countries/mk-light.png deleted file mode 100644 index 5a55446d..00000000 Binary files a/desktop/onionshare/resources/images/countries/mk-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/ml-dark.png b/desktop/onionshare/resources/images/countries/ml-dark.png deleted file mode 100644 index b7cc0063..00000000 Binary files a/desktop/onionshare/resources/images/countries/ml-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/ml-light.png b/desktop/onionshare/resources/images/countries/ml-light.png deleted file mode 100644 index 4a008a55..00000000 Binary files a/desktop/onionshare/resources/images/countries/ml-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/mm-dark.png b/desktop/onionshare/resources/images/countries/mm-dark.png deleted file mode 100644 index 2292b164..00000000 Binary files a/desktop/onionshare/resources/images/countries/mm-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/mm-light.png b/desktop/onionshare/resources/images/countries/mm-light.png deleted file mode 100644 index 0d3a422b..00000000 Binary files a/desktop/onionshare/resources/images/countries/mm-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/mn-dark.png b/desktop/onionshare/resources/images/countries/mn-dark.png deleted file mode 100644 index a2fb0f0d..00000000 Binary files a/desktop/onionshare/resources/images/countries/mn-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/mn-light.png b/desktop/onionshare/resources/images/countries/mn-light.png deleted file mode 100644 index 9ecd6a98..00000000 Binary files a/desktop/onionshare/resources/images/countries/mn-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/mo-dark.png b/desktop/onionshare/resources/images/countries/mo-dark.png deleted file mode 100644 index d4a22013..00000000 Binary files a/desktop/onionshare/resources/images/countries/mo-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/mo-light.png b/desktop/onionshare/resources/images/countries/mo-light.png deleted file mode 100644 index bdf93349..00000000 Binary files a/desktop/onionshare/resources/images/countries/mo-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/mq-dark.png b/desktop/onionshare/resources/images/countries/mq-dark.png deleted file mode 100644 index 7d0e2770..00000000 Binary files a/desktop/onionshare/resources/images/countries/mq-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/mq-light.png b/desktop/onionshare/resources/images/countries/mq-light.png deleted file mode 100644 index f31dd911..00000000 Binary files a/desktop/onionshare/resources/images/countries/mq-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/mr-dark.png b/desktop/onionshare/resources/images/countries/mr-dark.png deleted file mode 100644 index a85a93a1..00000000 Binary files a/desktop/onionshare/resources/images/countries/mr-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/mr-light.png b/desktop/onionshare/resources/images/countries/mr-light.png deleted file mode 100644 index 4eb61bdc..00000000 Binary files a/desktop/onionshare/resources/images/countries/mr-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/ms-dark.png b/desktop/onionshare/resources/images/countries/ms-dark.png deleted file mode 100644 index bdd35561..00000000 Binary files a/desktop/onionshare/resources/images/countries/ms-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/ms-light.png b/desktop/onionshare/resources/images/countries/ms-light.png deleted file mode 100644 index 113b6314..00000000 Binary files a/desktop/onionshare/resources/images/countries/ms-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/mt-dark.png b/desktop/onionshare/resources/images/countries/mt-dark.png deleted file mode 100644 index 5bea88e3..00000000 Binary files a/desktop/onionshare/resources/images/countries/mt-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/mt-light.png b/desktop/onionshare/resources/images/countries/mt-light.png deleted file mode 100644 index 7095a046..00000000 Binary files a/desktop/onionshare/resources/images/countries/mt-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/mu-dark.png b/desktop/onionshare/resources/images/countries/mu-dark.png deleted file mode 100644 index 2037d764..00000000 Binary files a/desktop/onionshare/resources/images/countries/mu-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/mu-light.png b/desktop/onionshare/resources/images/countries/mu-light.png deleted file mode 100644 index 24a5b81f..00000000 Binary files a/desktop/onionshare/resources/images/countries/mu-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/mv-dark.png b/desktop/onionshare/resources/images/countries/mv-dark.png deleted file mode 100644 index cb991c41..00000000 Binary files a/desktop/onionshare/resources/images/countries/mv-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/mv-light.png b/desktop/onionshare/resources/images/countries/mv-light.png deleted file mode 100644 index 7e7762f3..00000000 Binary files a/desktop/onionshare/resources/images/countries/mv-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/mw-dark.png b/desktop/onionshare/resources/images/countries/mw-dark.png deleted file mode 100644 index 0b3c64c1..00000000 Binary files a/desktop/onionshare/resources/images/countries/mw-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/mw-light.png b/desktop/onionshare/resources/images/countries/mw-light.png deleted file mode 100644 index a674bc0c..00000000 Binary files a/desktop/onionshare/resources/images/countries/mw-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/mx-dark.png b/desktop/onionshare/resources/images/countries/mx-dark.png deleted file mode 100644 index ed1b54eb..00000000 Binary files a/desktop/onionshare/resources/images/countries/mx-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/mx-light.png b/desktop/onionshare/resources/images/countries/mx-light.png deleted file mode 100644 index 8d02c7bd..00000000 Binary files a/desktop/onionshare/resources/images/countries/mx-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/my-dark.png b/desktop/onionshare/resources/images/countries/my-dark.png deleted file mode 100644 index c3411b7e..00000000 Binary files a/desktop/onionshare/resources/images/countries/my-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/my-light.png b/desktop/onionshare/resources/images/countries/my-light.png deleted file mode 100644 index f2853e01..00000000 Binary files a/desktop/onionshare/resources/images/countries/my-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/mz-dark.png b/desktop/onionshare/resources/images/countries/mz-dark.png deleted file mode 100644 index e17b813b..00000000 Binary files a/desktop/onionshare/resources/images/countries/mz-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/mz-light.png b/desktop/onionshare/resources/images/countries/mz-light.png deleted file mode 100644 index 247498e3..00000000 Binary files a/desktop/onionshare/resources/images/countries/mz-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/na-dark.png b/desktop/onionshare/resources/images/countries/na-dark.png deleted file mode 100644 index 3383eb2a..00000000 Binary files a/desktop/onionshare/resources/images/countries/na-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/na-light.png b/desktop/onionshare/resources/images/countries/na-light.png deleted file mode 100644 index e2bc72e5..00000000 Binary files a/desktop/onionshare/resources/images/countries/na-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/nc-dark.png b/desktop/onionshare/resources/images/countries/nc-dark.png deleted file mode 100644 index de774c04..00000000 Binary files a/desktop/onionshare/resources/images/countries/nc-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/nc-light.png b/desktop/onionshare/resources/images/countries/nc-light.png deleted file mode 100644 index 7401c600..00000000 Binary files a/desktop/onionshare/resources/images/countries/nc-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/ne-dark.png b/desktop/onionshare/resources/images/countries/ne-dark.png deleted file mode 100644 index 0dc47e4c..00000000 Binary files a/desktop/onionshare/resources/images/countries/ne-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/ne-light.png b/desktop/onionshare/resources/images/countries/ne-light.png deleted file mode 100644 index c1f7a3e2..00000000 Binary files a/desktop/onionshare/resources/images/countries/ne-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/nf-dark.png b/desktop/onionshare/resources/images/countries/nf-dark.png deleted file mode 100644 index 5457a965..00000000 Binary files a/desktop/onionshare/resources/images/countries/nf-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/nf-light.png b/desktop/onionshare/resources/images/countries/nf-light.png deleted file mode 100644 index 4002d083..00000000 Binary files a/desktop/onionshare/resources/images/countries/nf-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/ng-dark.png b/desktop/onionshare/resources/images/countries/ng-dark.png deleted file mode 100644 index 2d4d41f7..00000000 Binary files a/desktop/onionshare/resources/images/countries/ng-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/ng-light.png b/desktop/onionshare/resources/images/countries/ng-light.png deleted file mode 100644 index c1449d02..00000000 Binary files a/desktop/onionshare/resources/images/countries/ng-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/ni-dark.png b/desktop/onionshare/resources/images/countries/ni-dark.png deleted file mode 100644 index e390f4e4..00000000 Binary files a/desktop/onionshare/resources/images/countries/ni-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/ni-light.png b/desktop/onionshare/resources/images/countries/ni-light.png deleted file mode 100644 index 5b9dff7e..00000000 Binary files a/desktop/onionshare/resources/images/countries/ni-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/nl-dark.png b/desktop/onionshare/resources/images/countries/nl-dark.png deleted file mode 100644 index 90b4a7c5..00000000 Binary files a/desktop/onionshare/resources/images/countries/nl-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/nl-light.png b/desktop/onionshare/resources/images/countries/nl-light.png deleted file mode 100644 index e2703d5d..00000000 Binary files a/desktop/onionshare/resources/images/countries/nl-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/no-dark.png b/desktop/onionshare/resources/images/countries/no-dark.png deleted file mode 100644 index b4eff187..00000000 Binary files a/desktop/onionshare/resources/images/countries/no-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/no-light.png b/desktop/onionshare/resources/images/countries/no-light.png deleted file mode 100644 index cae317b6..00000000 Binary files a/desktop/onionshare/resources/images/countries/no-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/np-dark.png b/desktop/onionshare/resources/images/countries/np-dark.png deleted file mode 100644 index edb4adea..00000000 Binary files a/desktop/onionshare/resources/images/countries/np-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/np-light.png b/desktop/onionshare/resources/images/countries/np-light.png deleted file mode 100644 index 2800e224..00000000 Binary files a/desktop/onionshare/resources/images/countries/np-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/nr-dark.png b/desktop/onionshare/resources/images/countries/nr-dark.png deleted file mode 100644 index 3f7ed8e7..00000000 Binary files a/desktop/onionshare/resources/images/countries/nr-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/nr-light.png b/desktop/onionshare/resources/images/countries/nr-light.png deleted file mode 100644 index 988bfb2a..00000000 Binary files a/desktop/onionshare/resources/images/countries/nr-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/nu-dark.png b/desktop/onionshare/resources/images/countries/nu-dark.png deleted file mode 100644 index a0db8a56..00000000 Binary files a/desktop/onionshare/resources/images/countries/nu-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/nu-light.png b/desktop/onionshare/resources/images/countries/nu-light.png deleted file mode 100644 index 877cdb38..00000000 Binary files a/desktop/onionshare/resources/images/countries/nu-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/nz-dark.png b/desktop/onionshare/resources/images/countries/nz-dark.png deleted file mode 100644 index 4fb804b5..00000000 Binary files a/desktop/onionshare/resources/images/countries/nz-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/nz-light.png b/desktop/onionshare/resources/images/countries/nz-light.png deleted file mode 100644 index b795cf5f..00000000 Binary files a/desktop/onionshare/resources/images/countries/nz-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/om-dark.png b/desktop/onionshare/resources/images/countries/om-dark.png deleted file mode 100644 index cf8a36b4..00000000 Binary files a/desktop/onionshare/resources/images/countries/om-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/om-light.png b/desktop/onionshare/resources/images/countries/om-light.png deleted file mode 100644 index 94618f9c..00000000 Binary files a/desktop/onionshare/resources/images/countries/om-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/pa-dark.png b/desktop/onionshare/resources/images/countries/pa-dark.png deleted file mode 100644 index 2aa3064b..00000000 Binary files a/desktop/onionshare/resources/images/countries/pa-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/pa-light.png b/desktop/onionshare/resources/images/countries/pa-light.png deleted file mode 100644 index abb59323..00000000 Binary files a/desktop/onionshare/resources/images/countries/pa-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/pe-dark.png b/desktop/onionshare/resources/images/countries/pe-dark.png deleted file mode 100644 index 62228343..00000000 Binary files a/desktop/onionshare/resources/images/countries/pe-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/pe-light.png b/desktop/onionshare/resources/images/countries/pe-light.png deleted file mode 100644 index bc9279d3..00000000 Binary files a/desktop/onionshare/resources/images/countries/pe-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/pf-dark.png b/desktop/onionshare/resources/images/countries/pf-dark.png deleted file mode 100644 index 6686cf78..00000000 Binary files a/desktop/onionshare/resources/images/countries/pf-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/pf-light.png b/desktop/onionshare/resources/images/countries/pf-light.png deleted file mode 100644 index 03c7b722..00000000 Binary files a/desktop/onionshare/resources/images/countries/pf-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/pg-dark.png b/desktop/onionshare/resources/images/countries/pg-dark.png deleted file mode 100644 index b699228d..00000000 Binary files a/desktop/onionshare/resources/images/countries/pg-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/pg-light.png b/desktop/onionshare/resources/images/countries/pg-light.png deleted file mode 100644 index 5b2652a0..00000000 Binary files a/desktop/onionshare/resources/images/countries/pg-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/ph-dark.png b/desktop/onionshare/resources/images/countries/ph-dark.png deleted file mode 100644 index 4fffd39c..00000000 Binary files a/desktop/onionshare/resources/images/countries/ph-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/ph-light.png b/desktop/onionshare/resources/images/countries/ph-light.png deleted file mode 100644 index eeb875a2..00000000 Binary files a/desktop/onionshare/resources/images/countries/ph-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/pk-dark.png b/desktop/onionshare/resources/images/countries/pk-dark.png deleted file mode 100644 index 5a2fe1b8..00000000 Binary files a/desktop/onionshare/resources/images/countries/pk-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/pk-light.png b/desktop/onionshare/resources/images/countries/pk-light.png deleted file mode 100644 index 1910be82..00000000 Binary files a/desktop/onionshare/resources/images/countries/pk-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/pl-dark.png b/desktop/onionshare/resources/images/countries/pl-dark.png deleted file mode 100644 index f8b9db1c..00000000 Binary files a/desktop/onionshare/resources/images/countries/pl-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/pl-light.png b/desktop/onionshare/resources/images/countries/pl-light.png deleted file mode 100644 index c024ac65..00000000 Binary files a/desktop/onionshare/resources/images/countries/pl-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/pm-dark.png b/desktop/onionshare/resources/images/countries/pm-dark.png deleted file mode 100644 index d56184fa..00000000 Binary files a/desktop/onionshare/resources/images/countries/pm-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/pm-light.png b/desktop/onionshare/resources/images/countries/pm-light.png deleted file mode 100644 index 160af41e..00000000 Binary files a/desktop/onionshare/resources/images/countries/pm-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/pn-dark.png b/desktop/onionshare/resources/images/countries/pn-dark.png deleted file mode 100644 index 1a6aa6b0..00000000 Binary files a/desktop/onionshare/resources/images/countries/pn-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/pn-light.png b/desktop/onionshare/resources/images/countries/pn-light.png deleted file mode 100644 index ed76d6cf..00000000 Binary files a/desktop/onionshare/resources/images/countries/pn-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/pr-dark.png b/desktop/onionshare/resources/images/countries/pr-dark.png deleted file mode 100644 index a6b9fa5e..00000000 Binary files a/desktop/onionshare/resources/images/countries/pr-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/pr-light.png b/desktop/onionshare/resources/images/countries/pr-light.png deleted file mode 100644 index 6c8f6441..00000000 Binary files a/desktop/onionshare/resources/images/countries/pr-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/pt-dark.png b/desktop/onionshare/resources/images/countries/pt-dark.png deleted file mode 100644 index e70fda04..00000000 Binary files a/desktop/onionshare/resources/images/countries/pt-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/pt-light.png b/desktop/onionshare/resources/images/countries/pt-light.png deleted file mode 100644 index d538c414..00000000 Binary files a/desktop/onionshare/resources/images/countries/pt-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/pw-dark.png b/desktop/onionshare/resources/images/countries/pw-dark.png deleted file mode 100644 index 232d1ad9..00000000 Binary files a/desktop/onionshare/resources/images/countries/pw-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/pw-light.png b/desktop/onionshare/resources/images/countries/pw-light.png deleted file mode 100644 index e08a7d8a..00000000 Binary files a/desktop/onionshare/resources/images/countries/pw-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/py-dark.png b/desktop/onionshare/resources/images/countries/py-dark.png deleted file mode 100644 index 23116fe0..00000000 Binary files a/desktop/onionshare/resources/images/countries/py-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/py-light.png b/desktop/onionshare/resources/images/countries/py-light.png deleted file mode 100644 index 9695bfc3..00000000 Binary files a/desktop/onionshare/resources/images/countries/py-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/qa-dark.png b/desktop/onionshare/resources/images/countries/qa-dark.png deleted file mode 100644 index 06d4bda4..00000000 Binary files a/desktop/onionshare/resources/images/countries/qa-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/qa-light.png b/desktop/onionshare/resources/images/countries/qa-light.png deleted file mode 100644 index 6884cd7c..00000000 Binary files a/desktop/onionshare/resources/images/countries/qa-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/re-dark.png b/desktop/onionshare/resources/images/countries/re-dark.png deleted file mode 100644 index a2334f7a..00000000 Binary files a/desktop/onionshare/resources/images/countries/re-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/re-light.png b/desktop/onionshare/resources/images/countries/re-light.png deleted file mode 100644 index f9e83b54..00000000 Binary files a/desktop/onionshare/resources/images/countries/re-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/ro-dark.png b/desktop/onionshare/resources/images/countries/ro-dark.png deleted file mode 100644 index bbbe6acc..00000000 Binary files a/desktop/onionshare/resources/images/countries/ro-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/ro-light.png b/desktop/onionshare/resources/images/countries/ro-light.png deleted file mode 100644 index 4a691bd7..00000000 Binary files a/desktop/onionshare/resources/images/countries/ro-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/rs-dark.png b/desktop/onionshare/resources/images/countries/rs-dark.png deleted file mode 100644 index 985e15a2..00000000 Binary files a/desktop/onionshare/resources/images/countries/rs-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/rs-light.png b/desktop/onionshare/resources/images/countries/rs-light.png deleted file mode 100644 index 206e07db..00000000 Binary files a/desktop/onionshare/resources/images/countries/rs-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/ru-dark.png b/desktop/onionshare/resources/images/countries/ru-dark.png deleted file mode 100644 index 69a8874d..00000000 Binary files a/desktop/onionshare/resources/images/countries/ru-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/ru-light.png b/desktop/onionshare/resources/images/countries/ru-light.png deleted file mode 100644 index 325435a9..00000000 Binary files a/desktop/onionshare/resources/images/countries/ru-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/rw-dark.png b/desktop/onionshare/resources/images/countries/rw-dark.png deleted file mode 100644 index e44fd698..00000000 Binary files a/desktop/onionshare/resources/images/countries/rw-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/rw-light.png b/desktop/onionshare/resources/images/countries/rw-light.png deleted file mode 100644 index ea6b7c7a..00000000 Binary files a/desktop/onionshare/resources/images/countries/rw-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/sa-dark.png b/desktop/onionshare/resources/images/countries/sa-dark.png deleted file mode 100644 index e44fd698..00000000 Binary files a/desktop/onionshare/resources/images/countries/sa-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/sa-light.png b/desktop/onionshare/resources/images/countries/sa-light.png deleted file mode 100644 index ea6b7c7a..00000000 Binary files a/desktop/onionshare/resources/images/countries/sa-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/sb-dark.png b/desktop/onionshare/resources/images/countries/sb-dark.png deleted file mode 100644 index 261a4095..00000000 Binary files a/desktop/onionshare/resources/images/countries/sb-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/sb-light.png b/desktop/onionshare/resources/images/countries/sb-light.png deleted file mode 100644 index 0a73afdf..00000000 Binary files a/desktop/onionshare/resources/images/countries/sb-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/sc-dark.png b/desktop/onionshare/resources/images/countries/sc-dark.png deleted file mode 100644 index 74c28631..00000000 Binary files a/desktop/onionshare/resources/images/countries/sc-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/sc-light.png b/desktop/onionshare/resources/images/countries/sc-light.png deleted file mode 100644 index 18ed8659..00000000 Binary files a/desktop/onionshare/resources/images/countries/sc-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/sd-dark.png b/desktop/onionshare/resources/images/countries/sd-dark.png deleted file mode 100644 index 52dbef8b..00000000 Binary files a/desktop/onionshare/resources/images/countries/sd-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/sd-light.png b/desktop/onionshare/resources/images/countries/sd-light.png deleted file mode 100644 index 0bb7e29a..00000000 Binary files a/desktop/onionshare/resources/images/countries/sd-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/se-dark.png b/desktop/onionshare/resources/images/countries/se-dark.png deleted file mode 100644 index 6032507b..00000000 Binary files a/desktop/onionshare/resources/images/countries/se-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/se-light.png b/desktop/onionshare/resources/images/countries/se-light.png deleted file mode 100644 index 5862f831..00000000 Binary files a/desktop/onionshare/resources/images/countries/se-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/sg-dark.png b/desktop/onionshare/resources/images/countries/sg-dark.png deleted file mode 100644 index ff3c057c..00000000 Binary files a/desktop/onionshare/resources/images/countries/sg-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/sg-light.png b/desktop/onionshare/resources/images/countries/sg-light.png deleted file mode 100644 index c5916354..00000000 Binary files a/desktop/onionshare/resources/images/countries/sg-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/sh-dark.png b/desktop/onionshare/resources/images/countries/sh-dark.png deleted file mode 100644 index 87f15ddc..00000000 Binary files a/desktop/onionshare/resources/images/countries/sh-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/sh-light.png b/desktop/onionshare/resources/images/countries/sh-light.png deleted file mode 100644 index 7e3b7a25..00000000 Binary files a/desktop/onionshare/resources/images/countries/sh-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/si-dark.png b/desktop/onionshare/resources/images/countries/si-dark.png deleted file mode 100644 index eb3e6130..00000000 Binary files a/desktop/onionshare/resources/images/countries/si-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/si-light.png b/desktop/onionshare/resources/images/countries/si-light.png deleted file mode 100644 index a51a869b..00000000 Binary files a/desktop/onionshare/resources/images/countries/si-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/sj-dark.png b/desktop/onionshare/resources/images/countries/sj-dark.png deleted file mode 100644 index c88dc399..00000000 Binary files a/desktop/onionshare/resources/images/countries/sj-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/sj-light.png b/desktop/onionshare/resources/images/countries/sj-light.png deleted file mode 100644 index aebce38e..00000000 Binary files a/desktop/onionshare/resources/images/countries/sj-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/sk-dark.png b/desktop/onionshare/resources/images/countries/sk-dark.png deleted file mode 100644 index 2ad12e8a..00000000 Binary files a/desktop/onionshare/resources/images/countries/sk-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/sk-light.png b/desktop/onionshare/resources/images/countries/sk-light.png deleted file mode 100644 index 81ed0270..00000000 Binary files a/desktop/onionshare/resources/images/countries/sk-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/sl-dark.png b/desktop/onionshare/resources/images/countries/sl-dark.png deleted file mode 100644 index 0c7db0e5..00000000 Binary files a/desktop/onionshare/resources/images/countries/sl-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/sl-light.png b/desktop/onionshare/resources/images/countries/sl-light.png deleted file mode 100644 index c01afd7d..00000000 Binary files a/desktop/onionshare/resources/images/countries/sl-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/sm-dark.png b/desktop/onionshare/resources/images/countries/sm-dark.png deleted file mode 100644 index c0804a31..00000000 Binary files a/desktop/onionshare/resources/images/countries/sm-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/sm-light.png b/desktop/onionshare/resources/images/countries/sm-light.png deleted file mode 100644 index c4cbbb63..00000000 Binary files a/desktop/onionshare/resources/images/countries/sm-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/sn-dark.png b/desktop/onionshare/resources/images/countries/sn-dark.png deleted file mode 100644 index e6d7e7e3..00000000 Binary files a/desktop/onionshare/resources/images/countries/sn-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/sn-light.png b/desktop/onionshare/resources/images/countries/sn-light.png deleted file mode 100644 index d411723d..00000000 Binary files a/desktop/onionshare/resources/images/countries/sn-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/so-dark.png b/desktop/onionshare/resources/images/countries/so-dark.png deleted file mode 100644 index 09dbdd31..00000000 Binary files a/desktop/onionshare/resources/images/countries/so-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/so-light.png b/desktop/onionshare/resources/images/countries/so-light.png deleted file mode 100644 index 319806a9..00000000 Binary files a/desktop/onionshare/resources/images/countries/so-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/sr-dark.png b/desktop/onionshare/resources/images/countries/sr-dark.png deleted file mode 100644 index 6bbe8c18..00000000 Binary files a/desktop/onionshare/resources/images/countries/sr-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/sr-light.png b/desktop/onionshare/resources/images/countries/sr-light.png deleted file mode 100644 index 5639e2e6..00000000 Binary files a/desktop/onionshare/resources/images/countries/sr-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/ss-dark.png b/desktop/onionshare/resources/images/countries/ss-dark.png deleted file mode 100644 index 53c265ce..00000000 Binary files a/desktop/onionshare/resources/images/countries/ss-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/ss-light.png b/desktop/onionshare/resources/images/countries/ss-light.png deleted file mode 100644 index ac50f907..00000000 Binary files a/desktop/onionshare/resources/images/countries/ss-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/st-dark.png b/desktop/onionshare/resources/images/countries/st-dark.png deleted file mode 100644 index 5c9c2212..00000000 Binary files a/desktop/onionshare/resources/images/countries/st-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/st-light.png b/desktop/onionshare/resources/images/countries/st-light.png deleted file mode 100644 index 549cc82d..00000000 Binary files a/desktop/onionshare/resources/images/countries/st-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/sv-dark.png b/desktop/onionshare/resources/images/countries/sv-dark.png deleted file mode 100644 index 3c026354..00000000 Binary files a/desktop/onionshare/resources/images/countries/sv-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/sv-light.png b/desktop/onionshare/resources/images/countries/sv-light.png deleted file mode 100644 index 833c7c4c..00000000 Binary files a/desktop/onionshare/resources/images/countries/sv-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/sx-dark.png b/desktop/onionshare/resources/images/countries/sx-dark.png deleted file mode 100644 index dc92e845..00000000 Binary files a/desktop/onionshare/resources/images/countries/sx-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/sx-light.png b/desktop/onionshare/resources/images/countries/sx-light.png deleted file mode 100644 index ab87a09b..00000000 Binary files a/desktop/onionshare/resources/images/countries/sx-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/sy-dark.png b/desktop/onionshare/resources/images/countries/sy-dark.png deleted file mode 100644 index 6854e048..00000000 Binary files a/desktop/onionshare/resources/images/countries/sy-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/sy-light.png b/desktop/onionshare/resources/images/countries/sy-light.png deleted file mode 100644 index e93145f3..00000000 Binary files a/desktop/onionshare/resources/images/countries/sy-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/sz-dark.png b/desktop/onionshare/resources/images/countries/sz-dark.png deleted file mode 100644 index 3f5b7484..00000000 Binary files a/desktop/onionshare/resources/images/countries/sz-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/sz-light.png b/desktop/onionshare/resources/images/countries/sz-light.png deleted file mode 100644 index 5e8bcf51..00000000 Binary files a/desktop/onionshare/resources/images/countries/sz-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/tc-dark.png b/desktop/onionshare/resources/images/countries/tc-dark.png deleted file mode 100644 index 3e2b87ef..00000000 Binary files a/desktop/onionshare/resources/images/countries/tc-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/tc-light.png b/desktop/onionshare/resources/images/countries/tc-light.png deleted file mode 100644 index 85f1a6bf..00000000 Binary files a/desktop/onionshare/resources/images/countries/tc-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/td-dark.png b/desktop/onionshare/resources/images/countries/td-dark.png deleted file mode 100644 index 97094eeb..00000000 Binary files a/desktop/onionshare/resources/images/countries/td-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/td-light.png b/desktop/onionshare/resources/images/countries/td-light.png deleted file mode 100644 index 3c6925e9..00000000 Binary files a/desktop/onionshare/resources/images/countries/td-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/tf-dark.png b/desktop/onionshare/resources/images/countries/tf-dark.png deleted file mode 100644 index 046df0cc..00000000 Binary files a/desktop/onionshare/resources/images/countries/tf-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/tf-light.png b/desktop/onionshare/resources/images/countries/tf-light.png deleted file mode 100644 index 51996920..00000000 Binary files a/desktop/onionshare/resources/images/countries/tf-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/tg-dark.png b/desktop/onionshare/resources/images/countries/tg-dark.png deleted file mode 100644 index 2c55859c..00000000 Binary files a/desktop/onionshare/resources/images/countries/tg-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/tg-light.png b/desktop/onionshare/resources/images/countries/tg-light.png deleted file mode 100644 index 214d676f..00000000 Binary files a/desktop/onionshare/resources/images/countries/tg-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/th-dark.png b/desktop/onionshare/resources/images/countries/th-dark.png deleted file mode 100644 index 73eef9a1..00000000 Binary files a/desktop/onionshare/resources/images/countries/th-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/th-light.png b/desktop/onionshare/resources/images/countries/th-light.png deleted file mode 100644 index 42695ac2..00000000 Binary files a/desktop/onionshare/resources/images/countries/th-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/tj-dark.png b/desktop/onionshare/resources/images/countries/tj-dark.png deleted file mode 100644 index bfa735f7..00000000 Binary files a/desktop/onionshare/resources/images/countries/tj-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/tj-light.png b/desktop/onionshare/resources/images/countries/tj-light.png deleted file mode 100644 index f83884ef..00000000 Binary files a/desktop/onionshare/resources/images/countries/tj-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/tk-dark.png b/desktop/onionshare/resources/images/countries/tk-dark.png deleted file mode 100644 index 790bef42..00000000 Binary files a/desktop/onionshare/resources/images/countries/tk-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/tk-light.png b/desktop/onionshare/resources/images/countries/tk-light.png deleted file mode 100644 index 6ff2838f..00000000 Binary files a/desktop/onionshare/resources/images/countries/tk-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/tl-dark.png b/desktop/onionshare/resources/images/countries/tl-dark.png deleted file mode 100644 index 9d583570..00000000 Binary files a/desktop/onionshare/resources/images/countries/tl-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/tl-light.png b/desktop/onionshare/resources/images/countries/tl-light.png deleted file mode 100644 index ff13802b..00000000 Binary files a/desktop/onionshare/resources/images/countries/tl-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/tm-dark.png b/desktop/onionshare/resources/images/countries/tm-dark.png deleted file mode 100644 index 01bc88bc..00000000 Binary files a/desktop/onionshare/resources/images/countries/tm-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/tm-light.png b/desktop/onionshare/resources/images/countries/tm-light.png deleted file mode 100644 index 29b83a3e..00000000 Binary files a/desktop/onionshare/resources/images/countries/tm-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/tn-dark.png b/desktop/onionshare/resources/images/countries/tn-dark.png deleted file mode 100644 index eb4a311e..00000000 Binary files a/desktop/onionshare/resources/images/countries/tn-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/tn-light.png b/desktop/onionshare/resources/images/countries/tn-light.png deleted file mode 100644 index 8ed9b5b1..00000000 Binary files a/desktop/onionshare/resources/images/countries/tn-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/to-dark.png b/desktop/onionshare/resources/images/countries/to-dark.png deleted file mode 100644 index 636691ce..00000000 Binary files a/desktop/onionshare/resources/images/countries/to-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/to-light.png b/desktop/onionshare/resources/images/countries/to-light.png deleted file mode 100644 index 48aeaaf7..00000000 Binary files a/desktop/onionshare/resources/images/countries/to-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/tr-dark.png b/desktop/onionshare/resources/images/countries/tr-dark.png deleted file mode 100644 index 83b4a81f..00000000 Binary files a/desktop/onionshare/resources/images/countries/tr-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/tr-light.png b/desktop/onionshare/resources/images/countries/tr-light.png deleted file mode 100644 index 8fc8356c..00000000 Binary files a/desktop/onionshare/resources/images/countries/tr-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/tt-dark.png b/desktop/onionshare/resources/images/countries/tt-dark.png deleted file mode 100644 index 2f0a30b6..00000000 Binary files a/desktop/onionshare/resources/images/countries/tt-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/tt-light.png b/desktop/onionshare/resources/images/countries/tt-light.png deleted file mode 100644 index e9d6260b..00000000 Binary files a/desktop/onionshare/resources/images/countries/tt-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/tw-dark.png b/desktop/onionshare/resources/images/countries/tw-dark.png deleted file mode 100644 index 7e715768..00000000 Binary files a/desktop/onionshare/resources/images/countries/tw-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/tw-light.png b/desktop/onionshare/resources/images/countries/tw-light.png deleted file mode 100644 index 5225e367..00000000 Binary files a/desktop/onionshare/resources/images/countries/tw-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/tz-dark.png b/desktop/onionshare/resources/images/countries/tz-dark.png deleted file mode 100644 index aa1042e2..00000000 Binary files a/desktop/onionshare/resources/images/countries/tz-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/tz-light.png b/desktop/onionshare/resources/images/countries/tz-light.png deleted file mode 100644 index df89cc29..00000000 Binary files a/desktop/onionshare/resources/images/countries/tz-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/ua-dark.png b/desktop/onionshare/resources/images/countries/ua-dark.png deleted file mode 100644 index 2be2c633..00000000 Binary files a/desktop/onionshare/resources/images/countries/ua-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/ua-light.png b/desktop/onionshare/resources/images/countries/ua-light.png deleted file mode 100644 index f5e788a9..00000000 Binary files a/desktop/onionshare/resources/images/countries/ua-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/ug-dark.png b/desktop/onionshare/resources/images/countries/ug-dark.png deleted file mode 100644 index 6967c5fd..00000000 Binary files a/desktop/onionshare/resources/images/countries/ug-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/ug-light.png b/desktop/onionshare/resources/images/countries/ug-light.png deleted file mode 100644 index 23f5a627..00000000 Binary files a/desktop/onionshare/resources/images/countries/ug-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/us-dark.png b/desktop/onionshare/resources/images/countries/us-dark.png deleted file mode 100644 index 474ca430..00000000 Binary files a/desktop/onionshare/resources/images/countries/us-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/us-light.png b/desktop/onionshare/resources/images/countries/us-light.png deleted file mode 100644 index 53fd8f60..00000000 Binary files a/desktop/onionshare/resources/images/countries/us-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/uy-dark.png b/desktop/onionshare/resources/images/countries/uy-dark.png deleted file mode 100644 index 3f7eb005..00000000 Binary files a/desktop/onionshare/resources/images/countries/uy-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/uy-light.png b/desktop/onionshare/resources/images/countries/uy-light.png deleted file mode 100644 index 94cba645..00000000 Binary files a/desktop/onionshare/resources/images/countries/uy-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/uz-dark.png b/desktop/onionshare/resources/images/countries/uz-dark.png deleted file mode 100644 index 87931eaa..00000000 Binary files a/desktop/onionshare/resources/images/countries/uz-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/uz-light.png b/desktop/onionshare/resources/images/countries/uz-light.png deleted file mode 100644 index d2f1ce88..00000000 Binary files a/desktop/onionshare/resources/images/countries/uz-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/va-dark.png b/desktop/onionshare/resources/images/countries/va-dark.png deleted file mode 100644 index 1b9aec76..00000000 Binary files a/desktop/onionshare/resources/images/countries/va-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/va-light.png b/desktop/onionshare/resources/images/countries/va-light.png deleted file mode 100644 index 82e0a393..00000000 Binary files a/desktop/onionshare/resources/images/countries/va-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/vc-dark.png b/desktop/onionshare/resources/images/countries/vc-dark.png deleted file mode 100644 index e00c0afa..00000000 Binary files a/desktop/onionshare/resources/images/countries/vc-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/vc-light.png b/desktop/onionshare/resources/images/countries/vc-light.png deleted file mode 100644 index f9641988..00000000 Binary files a/desktop/onionshare/resources/images/countries/vc-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/ve-dark.png b/desktop/onionshare/resources/images/countries/ve-dark.png deleted file mode 100644 index 59cd9be8..00000000 Binary files a/desktop/onionshare/resources/images/countries/ve-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/ve-light.png b/desktop/onionshare/resources/images/countries/ve-light.png deleted file mode 100644 index 9e69dcf2..00000000 Binary files a/desktop/onionshare/resources/images/countries/ve-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/vg-dark.png b/desktop/onionshare/resources/images/countries/vg-dark.png deleted file mode 100644 index e319eed7..00000000 Binary files a/desktop/onionshare/resources/images/countries/vg-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/vg-light.png b/desktop/onionshare/resources/images/countries/vg-light.png deleted file mode 100644 index 0dffbab7..00000000 Binary files a/desktop/onionshare/resources/images/countries/vg-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/vi-dark.png b/desktop/onionshare/resources/images/countries/vi-dark.png deleted file mode 100644 index 0d18d536..00000000 Binary files a/desktop/onionshare/resources/images/countries/vi-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/vi-light.png b/desktop/onionshare/resources/images/countries/vi-light.png deleted file mode 100644 index 148dfe99..00000000 Binary files a/desktop/onionshare/resources/images/countries/vi-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/vn-dark.png b/desktop/onionshare/resources/images/countries/vn-dark.png deleted file mode 100644 index ec90ca30..00000000 Binary files a/desktop/onionshare/resources/images/countries/vn-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/vn-light.png b/desktop/onionshare/resources/images/countries/vn-light.png deleted file mode 100644 index 2262d671..00000000 Binary files a/desktop/onionshare/resources/images/countries/vn-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/vu-dark.png b/desktop/onionshare/resources/images/countries/vu-dark.png deleted file mode 100644 index fc988b47..00000000 Binary files a/desktop/onionshare/resources/images/countries/vu-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/vu-light.png b/desktop/onionshare/resources/images/countries/vu-light.png deleted file mode 100644 index 6d219327..00000000 Binary files a/desktop/onionshare/resources/images/countries/vu-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/wf-dark.png b/desktop/onionshare/resources/images/countries/wf-dark.png deleted file mode 100644 index 99fcd85d..00000000 Binary files a/desktop/onionshare/resources/images/countries/wf-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/wf-light.png b/desktop/onionshare/resources/images/countries/wf-light.png deleted file mode 100644 index 8e01cf3c..00000000 Binary files a/desktop/onionshare/resources/images/countries/wf-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/ws-dark.png b/desktop/onionshare/resources/images/countries/ws-dark.png deleted file mode 100644 index d29815e2..00000000 Binary files a/desktop/onionshare/resources/images/countries/ws-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/ws-light.png b/desktop/onionshare/resources/images/countries/ws-light.png deleted file mode 100644 index ec294e63..00000000 Binary files a/desktop/onionshare/resources/images/countries/ws-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/ye-dark.png b/desktop/onionshare/resources/images/countries/ye-dark.png deleted file mode 100644 index 90d17dbb..00000000 Binary files a/desktop/onionshare/resources/images/countries/ye-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/ye-light.png b/desktop/onionshare/resources/images/countries/ye-light.png deleted file mode 100644 index 304ddd78..00000000 Binary files a/desktop/onionshare/resources/images/countries/ye-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/yt-dark.png b/desktop/onionshare/resources/images/countries/yt-dark.png deleted file mode 100644 index 1b9a64e4..00000000 Binary files a/desktop/onionshare/resources/images/countries/yt-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/yt-light.png b/desktop/onionshare/resources/images/countries/yt-light.png deleted file mode 100644 index b732797a..00000000 Binary files a/desktop/onionshare/resources/images/countries/yt-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/za-dark.png b/desktop/onionshare/resources/images/countries/za-dark.png deleted file mode 100644 index 58a78aa9..00000000 Binary files a/desktop/onionshare/resources/images/countries/za-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/za-light.png b/desktop/onionshare/resources/images/countries/za-light.png deleted file mode 100644 index 424fc735..00000000 Binary files a/desktop/onionshare/resources/images/countries/za-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/zm-dark.png b/desktop/onionshare/resources/images/countries/zm-dark.png deleted file mode 100644 index 9b3fffbc..00000000 Binary files a/desktop/onionshare/resources/images/countries/zm-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/zm-light.png b/desktop/onionshare/resources/images/countries/zm-light.png deleted file mode 100644 index 0d86cc5a..00000000 Binary files a/desktop/onionshare/resources/images/countries/zm-light.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/zw-dark.png b/desktop/onionshare/resources/images/countries/zw-dark.png deleted file mode 100644 index 301e74d4..00000000 Binary files a/desktop/onionshare/resources/images/countries/zw-dark.png and /dev/null differ diff --git a/desktop/onionshare/resources/images/countries/zw-light.png b/desktop/onionshare/resources/images/countries/zw-light.png deleted file mode 100644 index 2db496d9..00000000 Binary files a/desktop/onionshare/resources/images/countries/zw-light.png and /dev/null differ -- cgit v1.2.3-54-g00ecf From 314356b62445bc8fca7bbafe27aea48293a9c7a4 Mon Sep 17 00:00:00 2001 From: Micah Lee Date: Sun, 13 Feb 2022 15:44:00 -0800 Subject: Delete country shape helper script --- desktop/scripts/countries-get-images.py | 74 --------------------------------- 1 file changed, 74 deletions(-) delete mode 100755 desktop/scripts/countries-get-images.py diff --git a/desktop/scripts/countries-get-images.py b/desktop/scripts/countries-get-images.py deleted file mode 100755 index 80330e29..00000000 --- a/desktop/scripts/countries-get-images.py +++ /dev/null @@ -1,74 +0,0 @@ -#!/usr/bin/env python3 -import subprocess -import tempfile -import json -import os - - -def main(): - tmp_dir = tempfile.TemporaryDirectory() - mapsdir = os.path.join(tmp_dir.name, "mapsicon") - subprocess.run(["git", "clone", "https://github.com/djaiss/mapsicon.git", mapsdir]) - - with open( - os.path.join("src", "onionshare", "resources", "countries", "en.json") - ) as f: - countries = list(json.loads(f.read())) - - os.makedirs( - os.path.join( - "src", - "onionshare", - "resources", - "images", - "countries", - ), - exist_ok=True, - ) - - for country in countries: - country = country.lower() - if os.path.isdir(os.path.join(mapsdir, "all", f"{country}")): - src_filename = os.path.join(mapsdir, "all", f"{country}", "256.png") - dest_light_filename = os.path.join( - "src", - "onionshare", - "resources", - "images", - "countries", - f"{country}-light.png", - ) - dest_dark_filename = os.path.join( - "src", - "onionshare", - "resources", - "images", - "countries", - f"{country}-dark.png", - ) - subprocess.run( - [ - "convert", - src_filename, - "-fill", - "#5a2063", - "+opaque", - "none", - dest_light_filename, - ] - ) - subprocess.run( - [ - "convert", - src_filename, - "-fill", - "#d950ee", - "+opaque", - "none", - dest_dark_filename, - ] - ) - - -if __name__ == "__main__": - main() -- cgit v1.2.3-54-g00ecf From 2d7e980adece27cd54536f87e9ee7b03df9b701b Mon Sep 17 00:00:00 2001 From: Saptak S Date: Thu, 24 Feb 2022 18:04:26 +0530 Subject: Moving tor settings and app settings as subtabs under a parent settings tab --- desktop/onionshare/main_window.py | 7 ++- desktop/onionshare/settings_parent_tab.py | 72 +++++++++++++++++++++++++++++++ desktop/onionshare/tab_widget.py | 8 +++- 3 files changed, 85 insertions(+), 2 deletions(-) create mode 100644 desktop/onionshare/settings_parent_tab.py diff --git a/desktop/onionshare/main_window.py b/desktop/onionshare/main_window.py index 9c6f455f..61119683 100644 --- a/desktop/onionshare/main_window.py +++ b/desktop/onionshare/main_window.py @@ -253,7 +253,12 @@ class MainWindow(QtWidgets.QMainWindow): Open the SettingsTab """ self.common.log("MainWindow", "open_settings") - self.tabs.open_settings_tab() + from_autoconnect = False + for tab_id in self.tabs.tabs: + if type(self.tabs.tabs[tab_id]) is AutoConnectTab: + from_autoconnect = True + break + self.tabs.open_settings_tab(from_autoconnect) def settings_have_changed(self): self.common.log("OnionShareGui", "settings_have_changed") diff --git a/desktop/onionshare/settings_parent_tab.py b/desktop/onionshare/settings_parent_tab.py new file mode 100644 index 00000000..2e372983 --- /dev/null +++ b/desktop/onionshare/settings_parent_tab.py @@ -0,0 +1,72 @@ +from PySide2 import QtCore, QtWidgets, QtGui + +from onionshare_cli.mode_settings import ModeSettings + +from . import strings +from .tab import Tab +from .threads import EventHandlerThread +from .gui_common import GuiCommon +from .tor_settings_tab import TorSettingsTab +from .settings_tab import SettingsTab +from .connection_tab import AutoConnectTab + + +class SettingsParentTab(QtWidgets.QTabWidget): + """ + The settings tab widget containing the tor settings + and app settings subtabs + """ + + bring_to_front = QtCore.Signal() + close_this_tab = QtCore.Signal() + + def __init__(self, common, tab_id, parent=None, active_tab='tor', from_autoconnect=False): + super(SettingsParentTab, self).__init__() + self.parent = parent + self.common = common + self.common.log("SettingsParentTab", "__init__") + + # Keep track of tabs in a dictionary that maps tab_id to tab. + # Each tab has a unique, auto-incremented id (tab_id). This is different than the + # tab's index, which changes as tabs are re-arranged. + # self.tabs = {} + self.tab_id = tab_id + # self.current_tab_id = 0 # Each tab has a unique id + # self.tor_settings_tab = None + + # Use a custom tab bar + tab_bar = TabBar() + self.setTabBar(tab_bar) + settings_tab = SettingsTab(self.common, 0) + tor_settings_tab = TorSettingsTab( + self.common, + 1, + self.parent.are_tabs_active(), + self.parent.status_bar, + from_autoconnect, + ) + self.addTab( + tor_settings_tab, strings._("gui_tor_settings_window_title") + ) + self.addTab(settings_tab, strings._("gui_settings_window_title")) + + # Set up the tab widget + self.setMovable(False) + self.setTabsClosable(False) + self.setUsesScrollButtons(False) + # self.setDocumentMode(True) + # self.setStyleSheet(self.common.gui.css["tab_widget"]) + + # self.tabCloseRequested.connect(self.close_tab) + + # self.move_new_tab_button() + +class TabBar(QtWidgets.QTabBar): + """ + A custom tab bar + """ + + move_new_tab_button = QtCore.Signal() + + def __init__(self): + super(TabBar, self).__init__() diff --git a/desktop/onionshare/tab_widget.py b/desktop/onionshare/tab_widget.py index 29f443ac..05285a61 100644 --- a/desktop/onionshare/tab_widget.py +++ b/desktop/onionshare/tab_widget.py @@ -28,6 +28,7 @@ from .threads import EventHandlerThread from .gui_common import GuiCommon from .tor_settings_tab import TorSettingsTab from .settings_tab import SettingsTab +from .settings_parent_tab import SettingsParentTab from .connection_tab import AutoConnectTab @@ -98,6 +99,7 @@ class TabWidget(QtWidgets.QTabWidget): for tab_id in self.tabs: if not ( type(self.tabs[tab_id]) is SettingsTab + or type(self.tabs[tab_id]) is SettingsParentTab or type(self.tabs[tab_id]) is TorSettingsTab or type(self.tabs[tab_id]) is AutoConnectTab ): @@ -139,6 +141,7 @@ class TabWidget(QtWidgets.QTabWidget): # If it's Settings or Tor Settings, ignore if ( type(self.tabs[tab_id]) is SettingsTab + or type(self.tabs[tab_id]) is SettingsParentTab or type(self.tabs[tab_id]) is TorSettingsTab or type(self.tabs[tab_id]) is AutoConnectTab ): @@ -238,7 +241,7 @@ class TabWidget(QtWidgets.QTabWidget): self.setCurrentIndex(self.indexOf(self.tabs[tab_id])) return - settings_tab = SettingsTab(self.common, self.current_tab_id) + settings_tab = SettingsParentTab(self.common, self.current_tab_id, parent=self) settings_tab.close_this_tab.connect(self.close_settings_tab) self.tabs[self.current_tab_id] = settings_tab self.current_tab_id += 1 @@ -315,6 +318,7 @@ class TabWidget(QtWidgets.QTabWidget): for tab_id in self.tabs: if not ( type(self.tabs[tab_id]) is SettingsTab + or type(self.tabs[tab_id]) is SettingsParentTab or type(self.tabs[tab_id]) is TorSettingsTab or type(self.tabs[tab_id]) is AutoConnectTab ): @@ -333,6 +337,7 @@ class TabWidget(QtWidgets.QTabWidget): if ( type(self.tabs[tab_id]) is SettingsTab + or type(self.tabs[tab_id]) is SettingsParentTab or type(self.tabs[tab_id]) is TorSettingsTab or type(self.tabs[tab_id]) is AutoConnectTab ): @@ -425,6 +430,7 @@ class TabWidget(QtWidgets.QTabWidget): for tab_id in self.tabs: if not ( type(self.tabs[tab_id]) is SettingsTab + or type(self.tabs[tab_id]) is SettingsParentTab or type(self.tabs[tab_id]) is TorSettingsTab or type(self.tabs[tab_id]) is AutoConnectTab ): -- cgit v1.2.3-54-g00ecf From fdc7ba9228a08d35e6bed042522b4e4c462025e4 Mon Sep 17 00:00:00 2001 From: Saptak S Date: Thu, 24 Feb 2022 18:14:06 +0530 Subject: Fix the settings tab calls --- desktop/onionshare/connection_tab.py | 2 +- desktop/onionshare/main_window.py | 2 +- desktop/onionshare/settings_parent_tab.py | 4 +- desktop/onionshare/tab_widget.py | 74 ++++++++++++++++--------------- 4 files changed, 42 insertions(+), 40 deletions(-) diff --git a/desktop/onionshare/connection_tab.py b/desktop/onionshare/connection_tab.py index e67ca483..a3355db4 100644 --- a/desktop/onionshare/connection_tab.py +++ b/desktop/onionshare/connection_tab.py @@ -149,7 +149,7 @@ class AutoConnectTab(QtWidgets.QWidget): self.curr_settings.save() def open_tor_settings(self): - self.parent.open_tor_settings_tab(from_autoconnect=True) + self.parent.open_settings_tab(from_autoconnect=True) def first_launch_widget_connect_clicked(self): """ diff --git a/desktop/onionshare/main_window.py b/desktop/onionshare/main_window.py index 61119683..0de47fe4 100644 --- a/desktop/onionshare/main_window.py +++ b/desktop/onionshare/main_window.py @@ -246,7 +246,7 @@ class MainWindow(QtWidgets.QMainWindow): if type(self.tabs.tabs[tab_id]) is AutoConnectTab: from_autoconnect = True break - self.tabs.open_tor_settings_tab(from_autoconnect) + self.tabs.open_settings_tab(from_autoconnect) def open_settings(self): """ diff --git a/desktop/onionshare/settings_parent_tab.py b/desktop/onionshare/settings_parent_tab.py index 2e372983..0c2f548f 100644 --- a/desktop/onionshare/settings_parent_tab.py +++ b/desktop/onionshare/settings_parent_tab.py @@ -38,7 +38,7 @@ class SettingsParentTab(QtWidgets.QTabWidget): tab_bar = TabBar() self.setTabBar(tab_bar) settings_tab = SettingsTab(self.common, 0) - tor_settings_tab = TorSettingsTab( + self.tor_settings_tab = TorSettingsTab( self.common, 1, self.parent.are_tabs_active(), @@ -46,7 +46,7 @@ class SettingsParentTab(QtWidgets.QTabWidget): from_autoconnect, ) self.addTab( - tor_settings_tab, strings._("gui_tor_settings_window_title") + self.tor_settings_tab, strings._("gui_tor_settings_window_title") ) self.addTab(settings_tab, strings._("gui_settings_window_title")) diff --git a/desktop/onionshare/tab_widget.py b/desktop/onionshare/tab_widget.py index 05285a61..27bbfdb2 100644 --- a/desktop/onionshare/tab_widget.py +++ b/desktop/onionshare/tab_widget.py @@ -232,47 +232,49 @@ class TabWidget(QtWidgets.QTabWidget): index = self.addTab(connection_tab, strings._("gui_autoconnect_start")) self.setCurrentIndex(index) - def open_settings_tab(self): + def open_settings_tab(self, from_autoconnect=False, active_tab='tor'): self.common.log("TabWidget", "open_settings_tab") # See if a settings tab is already open, and if so switch to it for tab_id in self.tabs: - if type(self.tabs[tab_id]) is SettingsTab: + if type(self.tabs[tab_id]) is SettingsParentTab: self.setCurrentIndex(self.indexOf(self.tabs[tab_id])) return - settings_tab = SettingsParentTab(self.common, self.current_tab_id, parent=self) + settings_tab = SettingsParentTab(self.common, self.current_tab_id,active_tab=active_tab, parent=self, from_autoconnect=from_autoconnect) settings_tab.close_this_tab.connect(self.close_settings_tab) + settings_tab.tor_settings_tab.tor_is_connected.connect(self.tor_is_connected) + settings_tab.tor_settings_tab.tor_is_disconnected.connect(self.tor_is_disconnected) self.tabs[self.current_tab_id] = settings_tab self.current_tab_id += 1 index = self.addTab(settings_tab, strings._("gui_settings_window_title")) self.setCurrentIndex(index) - def open_tor_settings_tab(self, from_autoconnect=False): - self.common.log("TabWidget", "open_tor_settings_tab") - - # See if a settings tab is already open, and if so switch to it - for tab_id in self.tabs: - if type(self.tabs[tab_id]) is TorSettingsTab: - self.setCurrentIndex(self.indexOf(self.tabs[tab_id])) - return - - self.tor_settings_tab = TorSettingsTab( - self.common, - self.current_tab_id, - self.are_tabs_active(), - self.status_bar, - from_autoconnect, - ) - self.tor_settings_tab.close_this_tab.connect(self.close_tor_settings_tab) - self.tor_settings_tab.tor_is_connected.connect(self.tor_is_connected) - self.tor_settings_tab.tor_is_disconnected.connect(self.tor_is_disconnected) - self.tabs[self.current_tab_id] = self.tor_settings_tab - self.current_tab_id += 1 - index = self.addTab( - self.tor_settings_tab, strings._("gui_tor_settings_window_title") - ) - self.setCurrentIndex(index) + # def open_tor_settings_tab(self, from_autoconnect=False): + # self.common.log("TabWidget", "open_tor_settings_tab") + + # # See if a settings tab is already open, and if so switch to it + # for tab_id in self.tabs: + # if type(self.tabs[tab_id]) is TorSettingsTab: + # self.setCurrentIndex(self.indexOf(self.tabs[tab_id])) + # return + + # self.tor_settings_tab = TorSettingsTab( + # self.common, + # self.current_tab_id, + # self.are_tabs_active(), + # self.status_bar, + # from_autoconnect, + # ) + # self.tor_settings_tab.close_this_tab.connect(self.close_tor_settings_tab) + # self.tor_settings_tab.tor_is_connected.connect(self.tor_is_connected) + # self.tor_settings_tab.tor_is_disconnected.connect(self.tor_is_disconnected) + # self.tabs[self.current_tab_id] = self.tor_settings_tab + # self.current_tab_id += 1 + # index = self.addTab( + # self.tor_settings_tab, strings._("gui_tor_settings_window_title") + # ) + # self.setCurrentIndex(index) def change_title(self, tab_id, title): shortened_title = title @@ -384,15 +386,15 @@ class TabWidget(QtWidgets.QTabWidget): self.close_tab(index) return - def close_settings_tab(self): - self.common.log("TabWidget", "close_settings_tab") - for tab_id in self.tabs: - if type(self.tabs[tab_id]) is SettingsTab: - index = self.indexOf(self.tabs[tab_id]) - self.close_tab(index) - return + # def close_settings_tab(self): + # self.common.log("TabWidget", "close_settings_tab") + # for tab_id in self.tabs: + # if type(self.tabs[tab_id]) is SettingsTab: + # index = self.indexOf(self.tabs[tab_id]) + # self.close_tab(index) + # return - def close_tor_settings_tab(self): + def close_settings_tab(self): self.common.log("TabWidget", "close_tor_settings_tab") for tab_id in list(self.tabs): if type(self.tabs[tab_id]) is AutoConnectTab: -- cgit v1.2.3-54-g00ecf From 74f0c9d86be2dc3c9b942eb8dcf0d29802a3d294 Mon Sep 17 00:00:00 2001 From: Saptak S Date: Thu, 24 Feb 2022 18:37:59 +0530 Subject: Cleanup code --- desktop/onionshare/settings_parent_tab.py | 5 +- desktop/onionshare/settings_tab.py | 7 +- desktop/onionshare/tab_widget.py | 103 ++++++++---------------------- desktop/onionshare/tor_settings_tab.py | 9 +-- 4 files changed, 38 insertions(+), 86 deletions(-) diff --git a/desktop/onionshare/settings_parent_tab.py b/desktop/onionshare/settings_parent_tab.py index 0c2f548f..722c518f 100644 --- a/desktop/onionshare/settings_parent_tab.py +++ b/desktop/onionshare/settings_parent_tab.py @@ -37,13 +37,14 @@ class SettingsParentTab(QtWidgets.QTabWidget): # Use a custom tab bar tab_bar = TabBar() self.setTabBar(tab_bar) - settings_tab = SettingsTab(self.common, 0) + settings_tab = SettingsTab(self.common, 0, parent=self) self.tor_settings_tab = TorSettingsTab( self.common, 1, self.parent.are_tabs_active(), self.parent.status_bar, - from_autoconnect, + parent=self, + from_autoconnect=from_autoconnect, ) self.addTab( self.tor_settings_tab, strings._("gui_tor_settings_window_title") diff --git a/desktop/onionshare/settings_tab.py b/desktop/onionshare/settings_tab.py index 58843a0d..cf2261b6 100644 --- a/desktop/onionshare/settings_tab.py +++ b/desktop/onionshare/settings_tab.py @@ -33,9 +33,7 @@ class SettingsTab(QtWidgets.QWidget): Settings dialog. """ - close_this_tab = QtCore.Signal() - - def __init__(self, common, tab_id): + def __init__(self, common, tab_id, parent=None): super(SettingsTab, self).__init__() self.common = common @@ -43,6 +41,7 @@ class SettingsTab(QtWidgets.QWidget): self.system = platform.system() self.tab_id = tab_id + self.parent = parent # Automatic updates options @@ -283,7 +282,7 @@ class SettingsTab(QtWidgets.QWidget): # Save the new settings settings.save() - self.close_this_tab.emit() + self.parent.close_this_tab.emit() def help_clicked(self): """ diff --git a/desktop/onionshare/tab_widget.py b/desktop/onionshare/tab_widget.py index 27bbfdb2..c1f63c3a 100644 --- a/desktop/onionshare/tab_widget.py +++ b/desktop/onionshare/tab_widget.py @@ -98,9 +98,7 @@ class TabWidget(QtWidgets.QTabWidget): # Clean up each tab for tab_id in self.tabs: if not ( - type(self.tabs[tab_id]) is SettingsTab - or type(self.tabs[tab_id]) is SettingsParentTab - or type(self.tabs[tab_id]) is TorSettingsTab + type(self.tabs[tab_id]) is SettingsParentTab or type(self.tabs[tab_id]) is AutoConnectTab ): self.tabs[tab_id].cleanup() @@ -140,9 +138,7 @@ class TabWidget(QtWidgets.QTabWidget): # If it's Settings or Tor Settings, ignore if ( - type(self.tabs[tab_id]) is SettingsTab - or type(self.tabs[tab_id]) is SettingsParentTab - or type(self.tabs[tab_id]) is TorSettingsTab + type(self.tabs[tab_id]) is SettingsParentTab or type(self.tabs[tab_id]) is AutoConnectTab ): # Blank the server status indicator @@ -243,39 +239,14 @@ class TabWidget(QtWidgets.QTabWidget): settings_tab = SettingsParentTab(self.common, self.current_tab_id,active_tab=active_tab, parent=self, from_autoconnect=from_autoconnect) settings_tab.close_this_tab.connect(self.close_settings_tab) - settings_tab.tor_settings_tab.tor_is_connected.connect(self.tor_is_connected) - settings_tab.tor_settings_tab.tor_is_disconnected.connect(self.tor_is_disconnected) + self.tor_settings_tab = settings_tab.tor_settings_tab + self.tor_settings_tab.tor_is_connected.connect(self.tor_is_connected) + self.tor_settings_tab.tor_is_disconnected.connect(self.tor_is_disconnected) self.tabs[self.current_tab_id] = settings_tab self.current_tab_id += 1 index = self.addTab(settings_tab, strings._("gui_settings_window_title")) self.setCurrentIndex(index) - # def open_tor_settings_tab(self, from_autoconnect=False): - # self.common.log("TabWidget", "open_tor_settings_tab") - - # # See if a settings tab is already open, and if so switch to it - # for tab_id in self.tabs: - # if type(self.tabs[tab_id]) is TorSettingsTab: - # self.setCurrentIndex(self.indexOf(self.tabs[tab_id])) - # return - - # self.tor_settings_tab = TorSettingsTab( - # self.common, - # self.current_tab_id, - # self.are_tabs_active(), - # self.status_bar, - # from_autoconnect, - # ) - # self.tor_settings_tab.close_this_tab.connect(self.close_tor_settings_tab) - # self.tor_settings_tab.tor_is_connected.connect(self.tor_is_connected) - # self.tor_settings_tab.tor_is_disconnected.connect(self.tor_is_disconnected) - # self.tabs[self.current_tab_id] = self.tor_settings_tab - # self.current_tab_id += 1 - # index = self.addTab( - # self.tor_settings_tab, strings._("gui_tor_settings_window_title") - # ) - # self.setCurrentIndex(index) - def change_title(self, tab_id, title): shortened_title = title if len(shortened_title) > 11: @@ -319,9 +290,7 @@ class TabWidget(QtWidgets.QTabWidget): persistent_tabs = [] for tab_id in self.tabs: if not ( - type(self.tabs[tab_id]) is SettingsTab - or type(self.tabs[tab_id]) is SettingsParentTab - or type(self.tabs[tab_id]) is TorSettingsTab + type(self.tabs[tab_id]) is SettingsParentTab or type(self.tabs[tab_id]) is AutoConnectTab ): tab = self.widget(self.indexOf(self.tabs[tab_id])) @@ -338,14 +307,12 @@ class TabWidget(QtWidgets.QTabWidget): tab_id = tab.tab_id if ( - type(self.tabs[tab_id]) is SettingsTab - or type(self.tabs[tab_id]) is SettingsParentTab - or type(self.tabs[tab_id]) is TorSettingsTab + type(self.tabs[tab_id]) is SettingsParentTab or type(self.tabs[tab_id]) is AutoConnectTab ): self.common.log("TabWidget", "closing a settings tab") - if type(self.tabs[tab_id]) is TorSettingsTab: + if type(self.tabs[tab_id]) is SettingsParentTab: self.tor_settings_tab = None # Remove the tab @@ -386,16 +353,8 @@ class TabWidget(QtWidgets.QTabWidget): self.close_tab(index) return - # def close_settings_tab(self): - # self.common.log("TabWidget", "close_settings_tab") - # for tab_id in self.tabs: - # if type(self.tabs[tab_id]) is SettingsTab: - # index = self.indexOf(self.tabs[tab_id]) - # self.close_tab(index) - # return - def close_settings_tab(self): - self.common.log("TabWidget", "close_tor_settings_tab") + self.common.log("TabWidget", "close_settings_tab") for tab_id in list(self.tabs): if type(self.tabs[tab_id]) is AutoConnectTab: # If we are being returned to the AutoConnectTab, but @@ -405,7 +364,7 @@ class TabWidget(QtWidgets.QTabWidget): if self.common.gui.onion.is_authenticated(): self.common.log( "TabWidget", - "close_tor_settings_tab", + "close_settings_tab", "Tor is connected and we can auto-connect, so closing the tab", ) index = self.indexOf(self.tabs[tab_id]) @@ -414,13 +373,13 @@ class TabWidget(QtWidgets.QTabWidget): self.tabs[tab_id].reload_settings() self.common.log( "TabWidget", - "close_tor_settings_tab", + "close_settings_tab", "Reloading settings in case they changed in the TorSettingsTab. Not auto-connecting", ) break # List of indices may have changed due to the above, so we loop over it again as another copy for tab_id in list(self.tabs): - if type(self.tabs[tab_id]) is TorSettingsTab: + if type(self.tabs[tab_id]) is SettingsParentTab: index = self.indexOf(self.tabs[tab_id]) self.close_tab(index) return @@ -431,9 +390,7 @@ class TabWidget(QtWidgets.QTabWidget): """ for tab_id in self.tabs: if not ( - type(self.tabs[tab_id]) is SettingsTab - or type(self.tabs[tab_id]) is SettingsParentTab - or type(self.tabs[tab_id]) is TorSettingsTab + type(self.tabs[tab_id]) is SettingsParentTab or type(self.tabs[tab_id]) is AutoConnectTab ): mode = self.tabs[tab_id].get_mode() @@ -456,29 +413,23 @@ class TabWidget(QtWidgets.QTabWidget): def tor_is_connected(self): for tab_id in self.tabs: - if type(self.tabs[tab_id]) is SettingsTab: - self.tabs[tab_id].tor_is_connected() - else: - if not ( - type(self.tabs[tab_id]) is TorSettingsTab - or type(self.tabs[tab_id]) is AutoConnectTab - ): - mode = self.tabs[tab_id].get_mode() - if mode: - mode.tor_connection_started() + if not ( + type(self.tabs[tab_id]) is SettingsParentTab + or type(self.tabs[tab_id]) is AutoConnectTab + ): + mode = self.tabs[tab_id].get_mode() + if mode: + mode.tor_connection_started() def tor_is_disconnected(self): for tab_id in self.tabs: - if type(self.tabs[tab_id]) is SettingsTab: - self.tabs[tab_id].tor_is_disconnected() - else: - if not ( - type(self.tabs[tab_id]) is TorSettingsTab - or type(self.tabs[tab_id]) is AutoConnectTab - ): - mode = self.tabs[tab_id].get_mode() - if mode: - mode.tor_connection_stopped() + if not ( + type(self.tabs[tab_id]) is SettingsParentTab + or type(self.tabs[tab_id]) is AutoConnectTab + ): + mode = self.tabs[tab_id].get_mode() + if mode: + mode.tor_connection_stopped() class TabBar(QtWidgets.QTabBar): diff --git a/desktop/onionshare/tor_settings_tab.py b/desktop/onionshare/tor_settings_tab.py index 9c9ea593..347dbcbf 100644 --- a/desktop/onionshare/tor_settings_tab.py +++ b/desktop/onionshare/tor_settings_tab.py @@ -43,7 +43,7 @@ class TorSettingsTab(QtWidgets.QWidget): tor_is_disconnected = QtCore.Signal() def __init__( - self, common, tab_id, are_tabs_active, status_bar, from_autoconnect=False + self, common, tab_id, are_tabs_active, status_bar, from_autoconnect=False, parent=None ): super(TorSettingsTab, self).__init__() @@ -55,6 +55,7 @@ class TorSettingsTab(QtWidgets.QWidget): self.system = platform.system() self.tab_id = tab_id + self.parent = parent self.from_autoconnect = from_autoconnect # Connection type: either automatic, control port, or socket file @@ -746,9 +747,9 @@ class TorSettingsTab(QtWidgets.QWidget): self.tor_con.show() self.tor_con.start(settings) else: - self.close_this_tab.emit() + self.parent.close_this_tab.emit() else: - self.close_this_tab.emit() + self.parent.close_this_tab.emit() def tor_con_success(self): """ @@ -779,7 +780,7 @@ class TorSettingsTab(QtWidgets.QWidget): # Tell the tabs that Tor is connected self.tor_is_connected.emit() # Close the tab - self.close_this_tab.emit() + self.parent.close_this_tab.emit() self.tor_con_type = None -- cgit v1.2.3-54-g00ecf From 3b7655824d07ab9bad0f2f9b5764d418071fdc59 Mon Sep 17 00:00:00 2001 From: Saptak S Date: Thu, 24 Feb 2022 20:13:34 +0530 Subject: Chose the active tab in settings based on what is clicked --- desktop/onionshare/connection_tab.py | 2 +- desktop/onionshare/main_window.py | 35 ++++++----------------------- desktop/onionshare/resources/locale/en.json | 1 + desktop/onionshare/settings_parent_tab.py | 23 +++++++++---------- desktop/onionshare/tab_widget.py | 12 ++++++---- 5 files changed, 27 insertions(+), 46 deletions(-) diff --git a/desktop/onionshare/connection_tab.py b/desktop/onionshare/connection_tab.py index a3355db4..0b60a8b4 100644 --- a/desktop/onionshare/connection_tab.py +++ b/desktop/onionshare/connection_tab.py @@ -149,7 +149,7 @@ class AutoConnectTab(QtWidgets.QWidget): self.curr_settings.save() def open_tor_settings(self): - self.parent.open_settings_tab(from_autoconnect=True) + self.parent.open_settings_tab(from_autoconnect=True, active_tab='tor') def first_launch_widget_connect_clicked(self): """ diff --git a/desktop/onionshare/main_window.py b/desktop/onionshare/main_window.py index 0de47fe4..eef12028 100644 --- a/desktop/onionshare/main_window.py +++ b/desktop/onionshare/main_window.py @@ -106,24 +106,6 @@ class MainWindow(QtWidgets.QMainWindow): ) self.status_bar.addPermanentWidget(self.status_bar.server_status_indicator) - # Tor settings button - self.tor_settings_button = QtWidgets.QPushButton() - self.tor_settings_button.setDefault(False) - self.tor_settings_button.setFixedSize(40, 50) - self.tor_settings_button.setIcon( - QtGui.QIcon( - GuiCommon.get_resource_path( - "images/{}_tor_settings.png".format(self.common.gui.color_mode) - ) - ) - ) - self.tor_settings_button.clicked.connect(self.open_tor_settings) - self.tor_settings_button.setStyleSheet(self.common.gui.css["settings_button"]) - self.status_bar.addPermanentWidget(self.tor_settings_button) - - if os.environ.get("ONIONSHARE_HIDE_TOR_SETTINGS") == "1": - self.tor_settings_button.hide() - # Settings button self.settings_button = QtWidgets.QPushButton() self.settings_button.setDefault(False) @@ -240,25 +222,22 @@ class MainWindow(QtWidgets.QMainWindow): """ Open the TorSettingsTab """ - self.common.log("MainWindow", "open_tor_settings") - from_autoconnect = False - for tab_id in self.tabs.tabs: - if type(self.tabs.tabs[tab_id]) is AutoConnectTab: - from_autoconnect = True - break - self.tabs.open_settings_tab(from_autoconnect) + self._open_settings(active_tab='tor') def open_settings(self): """ - Open the SettingsTab + Open the general SettingsTab """ - self.common.log("MainWindow", "open_settings") + self._open_settings(active_tab='general') + + def _open_settings(self, active_tab): + self.common.log("MainWindow", f"open settings with active tab: {active_tab}") from_autoconnect = False for tab_id in self.tabs.tabs: if type(self.tabs.tabs[tab_id]) is AutoConnectTab: from_autoconnect = True break - self.tabs.open_settings_tab(from_autoconnect) + self.tabs.open_settings_tab(from_autoconnect, active_tab=active_tab) def settings_have_changed(self): self.common.log("OnionShareGui", "settings_have_changed") diff --git a/desktop/onionshare/resources/locale/en.json b/desktop/onionshare/resources/locale/en.json index 8b4a6301..bce88b2b 100644 --- a/desktop/onionshare/resources/locale/en.json +++ b/desktop/onionshare/resources/locale/en.json @@ -60,6 +60,7 @@ "gui_autoconnect_circumventing_censorship_got_bridges": "Got bridges! Trying to reconnect to Tor", "gui_autoconnect_could_not_connect_to_tor_api": "Could not connect to the Tor API. Make sure you are connected to the internet before trying again.", "gui_settings_window_title": "Settings", + "gui_general_settings_window_title": "Settings", "gui_settings_autoupdate_label": "Check for new version", "gui_settings_autoupdate_option": "Notify me when a new version is available", "gui_settings_autoupdate_timestamp": "Last checked: {}", diff --git a/desktop/onionshare/settings_parent_tab.py b/desktop/onionshare/settings_parent_tab.py index 722c518f..883ba922 100644 --- a/desktop/onionshare/settings_parent_tab.py +++ b/desktop/onionshare/settings_parent_tab.py @@ -20,7 +20,7 @@ class SettingsParentTab(QtWidgets.QTabWidget): bring_to_front = QtCore.Signal() close_this_tab = QtCore.Signal() - def __init__(self, common, tab_id, parent=None, active_tab='tor', from_autoconnect=False): + def __init__(self, common, tab_id, parent=None, active_tab='general', from_autoconnect=False): super(SettingsParentTab, self).__init__() self.parent = parent self.common = common @@ -29,38 +29,35 @@ class SettingsParentTab(QtWidgets.QTabWidget): # Keep track of tabs in a dictionary that maps tab_id to tab. # Each tab has a unique, auto-incremented id (tab_id). This is different than the # tab's index, which changes as tabs are re-arranged. - # self.tabs = {} + self.tabs = { + 'general': 0, + 'tor': 1, + } self.tab_id = tab_id - # self.current_tab_id = 0 # Each tab has a unique id - # self.tor_settings_tab = None + self.current_tab_id = self.tabs[active_tab] # Use a custom tab bar tab_bar = TabBar() self.setTabBar(tab_bar) - settings_tab = SettingsTab(self.common, 0, parent=self) + settings_tab = SettingsTab(self.common, self.tabs['general'], parent=self) self.tor_settings_tab = TorSettingsTab( self.common, - 1, + self.tabs['tor'], self.parent.are_tabs_active(), self.parent.status_bar, parent=self, from_autoconnect=from_autoconnect, ) + self.addTab(settings_tab, strings._("gui_general_settings_window_title")) self.addTab( self.tor_settings_tab, strings._("gui_tor_settings_window_title") ) - self.addTab(settings_tab, strings._("gui_settings_window_title")) # Set up the tab widget self.setMovable(False) self.setTabsClosable(False) self.setUsesScrollButtons(False) - # self.setDocumentMode(True) - # self.setStyleSheet(self.common.gui.css["tab_widget"]) - - # self.tabCloseRequested.connect(self.close_tab) - - # self.move_new_tab_button() + self.setCurrentIndex(self.current_tab_id) class TabBar(QtWidgets.QTabBar): """ diff --git a/desktop/onionshare/tab_widget.py b/desktop/onionshare/tab_widget.py index c1f63c3a..a9b34030 100644 --- a/desktop/onionshare/tab_widget.py +++ b/desktop/onionshare/tab_widget.py @@ -26,8 +26,6 @@ from . import strings from .tab import Tab from .threads import EventHandlerThread from .gui_common import GuiCommon -from .tor_settings_tab import TorSettingsTab -from .settings_tab import SettingsTab from .settings_parent_tab import SettingsParentTab from .connection_tab import AutoConnectTab @@ -228,7 +226,7 @@ class TabWidget(QtWidgets.QTabWidget): index = self.addTab(connection_tab, strings._("gui_autoconnect_start")) self.setCurrentIndex(index) - def open_settings_tab(self, from_autoconnect=False, active_tab='tor'): + def open_settings_tab(self, from_autoconnect=False, active_tab='general'): self.common.log("TabWidget", "open_settings_tab") # See if a settings tab is already open, and if so switch to it @@ -237,7 +235,13 @@ class TabWidget(QtWidgets.QTabWidget): self.setCurrentIndex(self.indexOf(self.tabs[tab_id])) return - settings_tab = SettingsParentTab(self.common, self.current_tab_id,active_tab=active_tab, parent=self, from_autoconnect=from_autoconnect) + settings_tab = SettingsParentTab( + self.common, + self.current_tab_id, + active_tab=active_tab, + parent=self, + from_autoconnect=from_autoconnect + ) settings_tab.close_this_tab.connect(self.close_settings_tab) self.tor_settings_tab = settings_tab.tor_settings_tab self.tor_settings_tab.tor_is_connected.connect(self.tor_is_connected) -- cgit v1.2.3-54-g00ecf From 625144afe6e0f791dd49d345ccee4adbaf3b81da Mon Sep 17 00:00:00 2001 From: Saptak S Date: Thu, 24 Feb 2022 21:02:08 +0530 Subject: Adds styles for the tab bar --- desktop/onionshare/gui_common.py | 9 +++++++++ desktop/onionshare/resources/locale/en.json | 2 +- desktop/onionshare/settings_parent_tab.py | 6 ++++-- 3 files changed, 14 insertions(+), 3 deletions(-) diff --git a/desktop/onionshare/gui_common.py b/desktop/onionshare/gui_common.py index 4cf0f010..c717fd22 100644 --- a/desktop/onionshare/gui_common.py +++ b/desktop/onionshare/gui_common.py @@ -121,6 +121,15 @@ class GuiCommon: font-weight: bold; font-size: 20px; }""", + "settings_subtab_bar": """ + QTabBar::tab { + background: transparent; + } + QTabBar::tab:selected { + border-bottom: 3px solid; + border-color: #4E064F; + padding: 3px + }""", "mode_new_tab_button": """ QPushButton { font-weight: bold; diff --git a/desktop/onionshare/resources/locale/en.json b/desktop/onionshare/resources/locale/en.json index bce88b2b..9627b4d9 100644 --- a/desktop/onionshare/resources/locale/en.json +++ b/desktop/onionshare/resources/locale/en.json @@ -60,7 +60,7 @@ "gui_autoconnect_circumventing_censorship_got_bridges": "Got bridges! Trying to reconnect to Tor", "gui_autoconnect_could_not_connect_to_tor_api": "Could not connect to the Tor API. Make sure you are connected to the internet before trying again.", "gui_settings_window_title": "Settings", - "gui_general_settings_window_title": "Settings", + "gui_general_settings_window_title": "General", "gui_settings_autoupdate_label": "Check for new version", "gui_settings_autoupdate_option": "Notify me when a new version is available", "gui_settings_autoupdate_timestamp": "Last checked: {}", diff --git a/desktop/onionshare/settings_parent_tab.py b/desktop/onionshare/settings_parent_tab.py index 883ba922..030cacc0 100644 --- a/desktop/onionshare/settings_parent_tab.py +++ b/desktop/onionshare/settings_parent_tab.py @@ -37,7 +37,7 @@ class SettingsParentTab(QtWidgets.QTabWidget): self.current_tab_id = self.tabs[active_tab] # Use a custom tab bar - tab_bar = TabBar() + tab_bar = TabBar(self.common) self.setTabBar(tab_bar) settings_tab = SettingsTab(self.common, self.tabs['general'], parent=self) self.tor_settings_tab = TorSettingsTab( @@ -66,5 +66,7 @@ class TabBar(QtWidgets.QTabBar): move_new_tab_button = QtCore.Signal() - def __init__(self): + def __init__(self, common): super(TabBar, self).__init__() + self.setStyleSheet(common.gui.css['settings_subtab_bar']) + -- cgit v1.2.3-54-g00ecf From a582a06a4d022375dfc0201c26e9af211e651c0f Mon Sep 17 00:00:00 2001 From: Miguel Jacq Date: Fri, 25 Feb 2022 15:07:19 +1100 Subject: Update countries-update-list.py to correct path, and run it to generate new country json files for other locales --- desktop/onionshare/resources/countries/el.json | 1 + desktop/onionshare/resources/countries/fr.json | 1 + desktop/onionshare/resources/countries/ja.json | 1 + desktop/onionshare/resources/countries/pt_PT.json | 1 + desktop/scripts/countries-update-list.py | 8 ++------ 5 files changed, 6 insertions(+), 6 deletions(-) create mode 100644 desktop/onionshare/resources/countries/el.json create mode 100644 desktop/onionshare/resources/countries/fr.json create mode 100644 desktop/onionshare/resources/countries/ja.json create mode 100644 desktop/onionshare/resources/countries/pt_PT.json diff --git a/desktop/onionshare/resources/countries/el.json b/desktop/onionshare/resources/countries/el.json new file mode 100644 index 00000000..2be69778 --- /dev/null +++ b/desktop/onionshare/resources/countries/el.json @@ -0,0 +1 @@ +{"SH": "\u0391\u03b3\u03af\u03b1 \u0395\u03bb\u03ad\u03bd\u03b7", "LC": "\u0391\u03b3\u03af\u03b1 \u039b\u03bf\u03c5\u03ba\u03af\u03b1", "BL": "\u0386\u03b3\u03b9\u03bf\u03c2 \u0392\u03b1\u03c1\u03b8\u03bf\u03bb\u03bf\u03bc\u03b1\u03af\u03bf\u03c2", "VC": "\u0386\u03b3\u03b9\u03bf\u03c2 \u0392\u03b9\u03ba\u03ad\u03bd\u03c4\u03b9\u03bf\u03c2 \u03ba\u03b1\u03b9 \u0393\u03c1\u03b5\u03bd\u03b1\u03b4\u03af\u03bd\u03b5\u03c2", "SM": "\u0386\u03b3\u03b9\u03bf\u03c2 \u039c\u03b1\u03c1\u03af\u03bd\u03bf\u03c2", "MF": "\u0386\u03b3\u03b9\u03bf\u03c2 \u039c\u03b1\u03c1\u03c4\u03af\u03bd\u03bf\u03c2 (\u0393\u03b1\u03bb\u03bb\u03b9\u03ba\u03cc \u03c4\u03bc\u03ae\u03bc\u03b1)", "SX": "\u0386\u03b3\u03b9\u03bf\u03c2 \u039c\u03b1\u03c1\u03c4\u03af\u03bd\u03bf\u03c2 (\u039f\u03bb\u03bb\u03b1\u03bd\u03b4\u03b9\u03ba\u03cc \u03c4\u03bc\u03ae\u03bc\u03b1)", "AO": "\u0391\u03b3\u03ba\u03cc\u03bb\u03b1", "AZ": "\u0391\u03b6\u03b5\u03c1\u03bc\u03c0\u03b1\u03ca\u03c4\u03b6\u03ac\u03bd", "EG": "\u0391\u03af\u03b3\u03c5\u03c0\u03c4\u03bf\u03c2", "ET": "\u0391\u03b9\u03b8\u03b9\u03bf\u03c0\u03af\u03b1", "HT": "\u0391\u03ca\u03c4\u03ae", "CI": "\u0391\u03ba\u03c4\u03ae \u0395\u03bb\u03b5\u03c6\u03b1\u03bd\u03c4\u03bf\u03c3\u03c4\u03bf\u03cd", "AL": "\u0391\u03bb\u03b2\u03b1\u03bd\u03af\u03b1", "DZ": "\u0391\u03bb\u03b3\u03b5\u03c1\u03af\u03b1", "VI": "\u0391\u03bc\u03b5\u03c1\u03b9\u03ba\u03b1\u03bd\u03b9\u03ba\u03ad\u03c2 \u03a0\u03b1\u03c1\u03b8\u03ad\u03bd\u03b5\u03c2 \u039d\u03ae\u03c3\u03bf\u03b9", "AS": "\u0391\u03bc\u03b5\u03c1\u03b9\u03ba\u03b1\u03bd\u03b9\u03ba\u03ae \u03a3\u03b1\u03bc\u03cc\u03b1", "AI": "\u0391\u03bd\u03b3\u03ba\u03bf\u03c5\u03af\u03bb\u03b1", "AD": "\u0391\u03bd\u03b4\u03cc\u03c1\u03b1", "AQ": "\u0391\u03bd\u03c4\u03b1\u03c1\u03ba\u03c4\u03b9\u03ba\u03ae", "AG": "\u0391\u03bd\u03c4\u03af\u03b3\u03ba\u03bf\u03c5\u03b1 \u03ba\u03b1\u03b9 \u039c\u03c0\u03b1\u03c1\u03bc\u03c0\u03bf\u03cd\u03bd\u03c4\u03b1", "AR": "\u0391\u03c1\u03b3\u03b5\u03bd\u03c4\u03b9\u03bd\u03ae", "AM": "\u0391\u03c1\u03bc\u03b5\u03bd\u03af\u03b1", "AW": "\u0391\u03c1\u03bf\u03cd\u03bc\u03c0\u03b1", "AU": "\u0391\u03c5\u03c3\u03c4\u03c1\u03b1\u03bb\u03af\u03b1", "AT": "\u0391\u03c5\u03c3\u03c4\u03c1\u03af\u03b1", "AF": "\u0391\u03c6\u03b3\u03b1\u03bd\u03b9\u03c3\u03c4\u03ac\u03bd", "VU": "\u0392\u03b1\u03bd\u03bf\u03c5\u03ac\u03c4\u03bf\u03c5", "VA": "\u0392\u03b1\u03c4\u03b9\u03ba\u03b1\u03bd\u03cc", "BE": "\u0392\u03ad\u03bb\u03b3\u03b9\u03bf", "VE": "\u0392\u03b5\u03bd\u03b5\u03b6\u03bf\u03c5\u03ad\u03bb\u03b1", "BM": "\u0392\u03b5\u03c1\u03bc\u03bf\u03cd\u03b4\u03b5\u03c2", "VN": "\u0392\u03b9\u03b5\u03c4\u03bd\u03ac\u03bc", "BO": "\u0392\u03bf\u03bb\u03b9\u03b2\u03af\u03b1", "KP": "\u0392\u03cc\u03c1\u03b5\u03b9\u03b1 \u039a\u03bf\u03c1\u03ad\u03b1", "MK": "\u0392\u03cc\u03c1\u03b5\u03b9\u03b1 \u039c\u03b1\u03ba\u03b5\u03b4\u03bf\u03bd\u03af\u03b1", "BA": "\u0392\u03bf\u03c3\u03bd\u03af\u03b1 - \u0395\u03c1\u03b6\u03b5\u03b3\u03bf\u03b2\u03af\u03bd\u03b7", "BG": "\u0392\u03bf\u03c5\u03bb\u03b3\u03b1\u03c1\u03af\u03b1", "BR": "\u0392\u03c1\u03b1\u03b6\u03b9\u03bb\u03af\u03b1", "IO": "\u0392\u03c1\u03b5\u03c4\u03b1\u03bd\u03b9\u03ba\u03ac \u0395\u03b4\u03ac\u03c6\u03b7 \u0399\u03bd\u03b4\u03b9\u03ba\u03bf\u03cd \u03a9\u03ba\u03b5\u03b1\u03bd\u03bf\u03cd", "VG": "\u0392\u03c1\u03b5\u03c4\u03b1\u03bd\u03b9\u03ba\u03ad\u03c2 \u03a0\u03b1\u03c1\u03b8\u03ad\u03bd\u03b5\u03c2 \u039d\u03ae\u03c3\u03bf\u03b9", "FR": "\u0393\u03b1\u03bb\u03bb\u03af\u03b1", "TF": "\u0393\u03b1\u03bb\u03bb\u03b9\u03ba\u03ac \u039d\u03cc\u03c4\u03b9\u03b1 \u0395\u03b4\u03ac\u03c6\u03b7", "GF": "\u0393\u03b1\u03bb\u03bb\u03b9\u03ba\u03ae \u0393\u03bf\u03c5\u03b9\u03ac\u03bd\u03b1", "PF": "\u0393\u03b1\u03bb\u03bb\u03b9\u03ba\u03ae \u03a0\u03bf\u03bb\u03c5\u03bd\u03b7\u03c3\u03af\u03b1", "DE": "\u0393\u03b5\u03c1\u03bc\u03b1\u03bd\u03af\u03b1", "GE": "\u0393\u03b5\u03c9\u03c1\u03b3\u03af\u03b1", "GI": "\u0393\u03b9\u03b2\u03c1\u03b1\u03bb\u03c4\u03ac\u03c1", "GM": "\u0393\u03ba\u03ac\u03bc\u03c0\u03b9\u03b1", "GA": "\u0393\u03ba\u03b1\u03bc\u03c0\u03cc\u03bd", "GH": "\u0393\u03ba\u03ac\u03bd\u03b1", "GG": "\u0393\u03ba\u03ad\u03c1\u03bd\u03b6\u03b9", "GU": "\u0393\u03ba\u03bf\u03c5\u03ac\u03bc", "GP": "\u0393\u03bf\u03c5\u03b1\u03b4\u03b5\u03bb\u03bf\u03cd\u03c0\u03b7", "WF": "\u0393\u03bf\u03c5\u03ac\u03bb\u03b9\u03c2 \u03ba\u03b1\u03b9 \u03a6\u03bf\u03c5\u03c4\u03bf\u03cd\u03bd\u03b1", "GT": "\u0393\u03bf\u03c5\u03b1\u03c4\u03b5\u03bc\u03ac\u03bb\u03b1", "GY": "\u0393\u03bf\u03c5\u03b9\u03ac\u03bd\u03b1", "GN": "\u0393\u03bf\u03c5\u03b9\u03bd\u03ad\u03b1", "GW": "\u0393\u03bf\u03c5\u03b9\u03bd\u03ad\u03b1 \u039c\u03c0\u03b9\u03c3\u03ac\u03bf\u03c5", "GD": "\u0393\u03c1\u03b5\u03bd\u03ac\u03b4\u03b1", "GL": "\u0393\u03c1\u03bf\u03b9\u03bb\u03b1\u03bd\u03b4\u03af\u03b1", "DK": "\u0394\u03b1\u03bd\u03af\u03b1", "DO": "\u0394\u03bf\u03bc\u03b9\u03bd\u03b9\u03ba\u03b1\u03bd\u03ae \u0394\u03b7\u03bc\u03bf\u03ba\u03c1\u03b1\u03c4\u03af\u03b1", "EH": "\u0394\u03c5\u03c4\u03b9\u03ba\u03ae \u03a3\u03b1\u03c7\u03ac\u03c1\u03b1", "SV": "\u0395\u03bb \u03a3\u03b1\u03bb\u03b2\u03b1\u03b4\u03cc\u03c1", "CH": "\u0395\u03bb\u03b2\u03b5\u03c4\u03af\u03b1", "GR": "\u0395\u03bb\u03bb\u03ac\u03b4\u03b1", "ER": "\u0395\u03c1\u03c5\u03b8\u03c1\u03b1\u03af\u03b1", "EE": "\u0395\u03c3\u03b8\u03bf\u03bd\u03af\u03b1", "ZM": "\u0396\u03ac\u03bc\u03c0\u03b9\u03b1", "ZW": "\u0396\u03b9\u03bc\u03c0\u03ac\u03bc\u03c0\u03bf\u03c5\u03b5", "AE": "\u0397\u03bd\u03c9\u03bc\u03ad\u03bd\u03b1 \u0391\u03c1\u03b1\u03b2\u03b9\u03ba\u03ac \u0395\u03bc\u03b9\u03c1\u03ac\u03c4\u03b1", "US": "\u0397\u03bd\u03c9\u03bc\u03ad\u03bd\u03b5\u03c2 \u03a0\u03bf\u03bb\u03b9\u03c4\u03b5\u03af\u03b5\u03c2", "GB": "\u0397\u03bd\u03c9\u03bc\u03ad\u03bd\u03bf \u0392\u03b1\u03c3\u03af\u03bb\u03b5\u03b9\u03bf", "JP": "\u0399\u03b1\u03c0\u03c9\u03bd\u03af\u03b1", "IN": "\u0399\u03bd\u03b4\u03af\u03b1", "ID": "\u0399\u03bd\u03b4\u03bf\u03bd\u03b7\u03c3\u03af\u03b1", "JO": "\u0399\u03bf\u03c1\u03b4\u03b1\u03bd\u03af\u03b1", "IQ": "\u0399\u03c1\u03ac\u03ba", "IR": "\u0399\u03c1\u03ac\u03bd", "IE": "\u0399\u03c1\u03bb\u03b1\u03bd\u03b4\u03af\u03b1", "GQ": "\u0399\u03c3\u03b7\u03bc\u03b5\u03c1\u03b9\u03bd\u03ae \u0393\u03bf\u03c5\u03b9\u03bd\u03ad\u03b1", "EC": "\u0399\u03c3\u03b7\u03bc\u03b5\u03c1\u03b9\u03bd\u03cc\u03c2", "IS": "\u0399\u03c3\u03bb\u03b1\u03bd\u03b4\u03af\u03b1", "ES": "\u0399\u03c3\u03c0\u03b1\u03bd\u03af\u03b1", "IL": "\u0399\u03c3\u03c1\u03b1\u03ae\u03bb", "IT": "\u0399\u03c4\u03b1\u03bb\u03af\u03b1", "KZ": "\u039a\u03b1\u03b6\u03b1\u03ba\u03c3\u03c4\u03ac\u03bd", "CM": "\u039a\u03b1\u03bc\u03b5\u03c1\u03bf\u03cd\u03bd", "KH": "\u039a\u03b1\u03bc\u03c0\u03cc\u03c4\u03b6\u03b7", "CA": "\u039a\u03b1\u03bd\u03b1\u03b4\u03ac\u03c2", "QA": "\u039a\u03b1\u03c4\u03ac\u03c1", "CF": "\u039a\u03b5\u03bd\u03c4\u03c1\u03bf\u03b1\u03c6\u03c1\u03b9\u03ba\u03b1\u03bd\u03b9\u03ba\u03ae \u0394\u03b7\u03bc\u03bf\u03ba\u03c1\u03b1\u03c4\u03af\u03b1", "KE": "\u039a\u03ad\u03bd\u03c5\u03b1", "CN": "\u039a\u03af\u03bd\u03b1", "KG": "\u039a\u03b9\u03c1\u03b3\u03b9\u03c3\u03c4\u03ac\u03bd", "KI": "\u039a\u03b9\u03c1\u03b9\u03bc\u03c0\u03ac\u03c4\u03b9", "CO": "\u039a\u03bf\u03bb\u03bf\u03bc\u03b2\u03af\u03b1", "KM": "\u039a\u03bf\u03bc\u03cc\u03c1\u03b5\u03c2", "CD": "\u039a\u03bf\u03bd\u03b3\u03ba\u03cc - \u039a\u03b9\u03bd\u03c3\u03ac\u03c3\u03b1", "CG": "\u039a\u03bf\u03bd\u03b3\u03ba\u03cc - \u039c\u03c0\u03c1\u03b1\u03b6\u03b1\u03b2\u03af\u03bb", "CR": "\u039a\u03cc\u03c3\u03c4\u03b1 \u03a1\u03af\u03ba\u03b1", "CU": "\u039a\u03bf\u03cd\u03b2\u03b1", "KW": "\u039a\u03bf\u03c5\u03b2\u03ad\u03b9\u03c4", "CW": "\u039a\u03bf\u03c5\u03c1\u03b1\u03c3\u03ac\u03bf", "HR": "\u039a\u03c1\u03bf\u03b1\u03c4\u03af\u03b1", "CY": "\u039a\u03cd\u03c0\u03c1\u03bf\u03c2", "LA": "\u039b\u03ac\u03bf\u03c2", "LS": "\u039b\u03b5\u03c3\u03cc\u03c4\u03bf", "LV": "\u039b\u03b5\u03c4\u03bf\u03bd\u03af\u03b1", "BY": "\u039b\u03b5\u03c5\u03ba\u03bf\u03c1\u03c9\u03c3\u03af\u03b1", "LB": "\u039b\u03af\u03b2\u03b1\u03bd\u03bf\u03c2", "LR": "\u039b\u03b9\u03b2\u03b5\u03c1\u03af\u03b1", "LY": "\u039b\u03b9\u03b2\u03cd\u03b7", "LT": "\u039b\u03b9\u03b8\u03bf\u03c5\u03b1\u03bd\u03af\u03b1", "LI": "\u039b\u03b9\u03c7\u03c4\u03b5\u03bd\u03c3\u03c4\u03ac\u03b9\u03bd", "LU": "\u039b\u03bf\u03c5\u03be\u03b5\u03bc\u03b2\u03bf\u03cd\u03c1\u03b3\u03bf", "YT": "\u039c\u03b1\u03b3\u03b9\u03cc\u03c4", "MG": "\u039c\u03b1\u03b4\u03b1\u03b3\u03b1\u03c3\u03ba\u03ac\u03c1\u03b7", "MO": "\u039c\u03b1\u03ba\u03ac\u03bf \u0395\u0394\u03a0 \u039a\u03af\u03bd\u03b1\u03c2", "MY": "\u039c\u03b1\u03bb\u03b1\u03b9\u03c3\u03af\u03b1", "MW": "\u039c\u03b1\u03bb\u03ac\u03bf\u03c5\u03b9", "MV": "\u039c\u03b1\u03bb\u03b4\u03af\u03b2\u03b5\u03c2", "ML": "\u039c\u03ac\u03bb\u03b9", "MT": "\u039c\u03ac\u03bb\u03c4\u03b1", "MA": "\u039c\u03b1\u03c1\u03cc\u03ba\u03bf", "MQ": "\u039c\u03b1\u03c1\u03c4\u03b9\u03bd\u03af\u03ba\u03b1", "MU": "\u039c\u03b1\u03c5\u03c1\u03af\u03ba\u03b9\u03bf\u03c2", "MR": "\u039c\u03b1\u03c5\u03c1\u03b9\u03c4\u03b1\u03bd\u03af\u03b1", "ME": "\u039c\u03b1\u03c5\u03c1\u03bf\u03b2\u03bf\u03cd\u03bd\u03b9\u03bf", "MX": "\u039c\u03b5\u03be\u03b9\u03ba\u03cc", "MM": "\u039c\u03b9\u03b1\u03bd\u03bc\u03ac\u03c1 (\u0392\u03b9\u03c1\u03bc\u03b1\u03bd\u03af\u03b1)", "MN": "\u039c\u03bf\u03b3\u03b3\u03bf\u03bb\u03af\u03b1", "MZ": "\u039c\u03bf\u03b6\u03b1\u03bc\u03b2\u03af\u03ba\u03b7", "MD": "\u039c\u03bf\u03bb\u03b4\u03b1\u03b2\u03af\u03b1", "MC": "\u039c\u03bf\u03bd\u03b1\u03ba\u03cc", "MS": "\u039c\u03bf\u03bd\u03c3\u03b5\u03c1\u03ac\u03c4", "BD": "\u039c\u03c0\u03b1\u03bd\u03b3\u03ba\u03bb\u03b1\u03bd\u03c4\u03ad\u03c2", "BB": "\u039c\u03c0\u03b1\u03c1\u03bc\u03c0\u03ad\u03b9\u03bd\u03c4\u03bf\u03c2", "BS": "\u039c\u03c0\u03b1\u03c7\u03ac\u03bc\u03b5\u03c2", "BH": "\u039c\u03c0\u03b1\u03c7\u03c1\u03ad\u03b9\u03bd", "BZ": "\u039c\u03c0\u03b5\u03bb\u03af\u03b6", "BJ": "\u039c\u03c0\u03b5\u03bd\u03af\u03bd", "BW": "\u039c\u03c0\u03bf\u03c4\u03c3\u03bf\u03c5\u03ac\u03bd\u03b1", "BF": "\u039c\u03c0\u03bf\u03c5\u03c1\u03ba\u03af\u03bd\u03b1 \u03a6\u03ac\u03c3\u03bf", "BI": "\u039c\u03c0\u03bf\u03c5\u03c1\u03bf\u03cd\u03bd\u03c4\u03b9", "BT": "\u039c\u03c0\u03bf\u03c5\u03c4\u03ac\u03bd", "BN": "\u039c\u03c0\u03c1\u03bf\u03c5\u03bd\u03ad\u03b9", "NA": "\u039d\u03b1\u03bc\u03af\u03bc\u03c0\u03b9\u03b1", "NR": "\u039d\u03b1\u03bf\u03c5\u03c1\u03bf\u03cd", "NZ": "\u039d\u03ad\u03b1 \u0396\u03b7\u03bb\u03b1\u03bd\u03b4\u03af\u03b1", "NC": "\u039d\u03ad\u03b1 \u039a\u03b1\u03bb\u03b7\u03b4\u03bf\u03bd\u03af\u03b1", "NP": "\u039d\u03b5\u03c0\u03ac\u03bb", "KY": "\u039d\u03ae\u03c3\u03bf\u03b9 \u039a\u03ad\u03b9\u03bc\u03b1\u03bd", "CC": "\u039d\u03ae\u03c3\u03bf\u03b9 \u039a\u03cc\u03ba\u03bf\u03c2 (\u039a\u03af\u03bb\u03b9\u03bd\u03b3\u03ba)", "CK": "\u039d\u03ae\u03c3\u03bf\u03b9 \u039a\u03bf\u03c5\u03ba", "GS": "\u039d\u03ae\u03c3\u03bf\u03b9 \u039d\u03cc\u03c4\u03b9\u03b1 \u0393\u03b5\u03c9\u03c1\u03b3\u03af\u03b1 \u03ba\u03b1\u03b9 \u039d\u03cc\u03c4\u03b9\u03b5\u03c2 \u03a3\u03ac\u03bd\u03c4\u03bf\u03c5\u03b9\u03c4\u03c2", "AX": "\u039d\u03ae\u03c3\u03bf\u03b9 \u038c\u03bb\u03b1\u03bd\u03c4", "PN": "\u039d\u03ae\u03c3\u03bf\u03b9 \u03a0\u03af\u03c4\u03ba\u03b5\u03c1\u03bd", "SB": "\u039d\u03ae\u03c3\u03bf\u03b9 \u03a3\u03bf\u03bb\u03bf\u03bc\u03ce\u03bd\u03c4\u03bf\u03c2", "TC": "\u039d\u03ae\u03c3\u03bf\u03b9 \u03a4\u03b5\u03c1\u03ba\u03c2 \u03ba\u03b1\u03b9 \u039a\u03ac\u03b9\u03ba\u03bf\u03c2", "FO": "\u039d\u03ae\u03c3\u03bf\u03b9 \u03a6\u03b5\u03c1\u03cc\u03b5\u03c2", "FK": "\u039d\u03ae\u03c3\u03bf\u03b9 \u03a6\u03cc\u03ba\u03bb\u03b1\u03bd\u03c4", "HM": "\u039d\u03ae\u03c3\u03bf\u03b9 \u03a7\u03b5\u03c1\u03bd\u03c4 \u03ba\u03b1\u03b9 \u039c\u03b1\u03ba\u03bd\u03c4\u03cc\u03bd\u03b1\u03bb\u03bd\u03c4", "BV": "\u039d\u03ae\u03c3\u03bf\u03c2 \u039c\u03c0\u03bf\u03c5\u03b2\u03ad", "NF": "\u039d\u03ae\u03c3\u03bf\u03c2 \u039d\u03cc\u03c1\u03c6\u03bf\u03bb\u03ba", "IM": "\u039d\u03ae\u03c3\u03bf\u03c2 \u03c4\u03bf\u03c5 \u039c\u03b1\u03bd", "CX": "\u039d\u03ae\u03c3\u03bf\u03c2 \u03c4\u03c9\u03bd \u03a7\u03c1\u03b9\u03c3\u03c4\u03bf\u03c5\u03b3\u03ad\u03bd\u03bd\u03c9\u03bd", "NE": "\u039d\u03af\u03b3\u03b7\u03c1\u03b1\u03c2", "NG": "\u039d\u03b9\u03b3\u03b7\u03c1\u03af\u03b1", "NI": "\u039d\u03b9\u03ba\u03b1\u03c1\u03ac\u03b3\u03bf\u03c5\u03b1", "NU": "\u039d\u03b9\u03bf\u03cd\u03b5", "NO": "\u039d\u03bf\u03c1\u03b2\u03b7\u03b3\u03af\u03b1", "ZA": "\u039d\u03cc\u03c4\u03b9\u03b1 \u0391\u03c6\u03c1\u03b9\u03ba\u03ae", "KR": "\u039d\u03cc\u03c4\u03b9\u03b1 \u039a\u03bf\u03c1\u03ad\u03b1", "SS": "\u039d\u03cc\u03c4\u03b9\u03bf \u03a3\u03bf\u03c5\u03b4\u03ac\u03bd", "DM": "\u039d\u03c4\u03bf\u03bc\u03af\u03bd\u03b9\u03ba\u03b1", "NL": "\u039f\u03bb\u03bb\u03b1\u03bd\u03b4\u03af\u03b1", "BQ": "\u039f\u03bb\u03bb\u03b1\u03bd\u03b4\u03af\u03b1 \u039a\u03b1\u03c1\u03b1\u03ca\u03b2\u03b9\u03ba\u03ae\u03c2", "OM": "\u039f\u03bc\u03ac\u03bd", "HN": "\u039f\u03bd\u03b4\u03bf\u03cd\u03c1\u03b1", "HU": "\u039f\u03c5\u03b3\u03b3\u03b1\u03c1\u03af\u03b1", "UG": "\u039f\u03c5\u03b3\u03ba\u03ac\u03bd\u03c4\u03b1", "UZ": "\u039f\u03c5\u03b6\u03bc\u03c0\u03b5\u03ba\u03b9\u03c3\u03c4\u03ac\u03bd", "UA": "\u039f\u03c5\u03ba\u03c1\u03b1\u03bd\u03af\u03b1", "UY": "\u039f\u03c5\u03c1\u03bf\u03c5\u03b3\u03bf\u03c5\u03ac\u03b7", "PK": "\u03a0\u03b1\u03ba\u03b9\u03c3\u03c4\u03ac\u03bd", "PW": "\u03a0\u03b1\u03bb\u03ac\u03bf\u03c5", "PA": "\u03a0\u03b1\u03bd\u03b1\u03bc\u03ac\u03c2", "PG": "\u03a0\u03b1\u03c0\u03bf\u03cd\u03b1 \u039d\u03ad\u03b1 \u0393\u03bf\u03c5\u03b9\u03bd\u03ad\u03b1", "PY": "\u03a0\u03b1\u03c1\u03b1\u03b3\u03bf\u03c5\u03ac\u03b7", "PE": "\u03a0\u03b5\u03c1\u03bf\u03cd", "PL": "\u03a0\u03bf\u03bb\u03c9\u03bd\u03af\u03b1", "PT": "\u03a0\u03bf\u03c1\u03c4\u03bf\u03b3\u03b1\u03bb\u03af\u03b1", "PR": "\u03a0\u03bf\u03c5\u03ad\u03c1\u03c4\u03bf \u03a1\u03af\u03ba\u03bf", "CV": "\u03a0\u03c1\u03ac\u03c3\u03b9\u03bd\u03bf \u0391\u03ba\u03c1\u03c9\u03c4\u03ae\u03c1\u03b9\u03bf", "RE": "\u03a1\u03b5\u03ca\u03bd\u03b9\u03cc\u03bd", "RW": "\u03a1\u03bf\u03c5\u03ac\u03bd\u03c4\u03b1", "RO": "\u03a1\u03bf\u03c5\u03bc\u03b1\u03bd\u03af\u03b1", "RU": "\u03a1\u03c9\u03c3\u03af\u03b1", "WS": "\u03a3\u03b1\u03bc\u03cc\u03b1", "ST": "\u03a3\u03ac\u03bf \u03a4\u03bf\u03bc\u03ad \u03ba\u03b1\u03b9 \u03a0\u03c1\u03af\u03bd\u03c3\u03b9\u03c0\u03b5", "SA": "\u03a3\u03b1\u03bf\u03c5\u03b4\u03b9\u03ba\u03ae \u0391\u03c1\u03b1\u03b2\u03af\u03b1", "SJ": "\u03a3\u03b2\u03ac\u03bb\u03bc\u03c0\u03b1\u03c1\u03bd\u03c4 \u03ba\u03b1\u03b9 \u0393\u03b9\u03b1\u03bd \u039c\u03b1\u03b3\u03b9\u03ad\u03bd", "KN": "\u03a3\u03b5\u03bd \u039a\u03b9\u03c4\u03c2 \u03ba\u03b1\u03b9 \u039d\u03ad\u03b2\u03b9\u03c2", "PM": "\u03a3\u03b5\u03bd \u03a0\u03b9\u03b5\u03c1 \u03ba\u03b1\u03b9 \u039c\u03b9\u03ba\u03b5\u03bb\u03cc\u03bd", "SN": "\u03a3\u03b5\u03bd\u03b5\u03b3\u03ac\u03bb\u03b7", "RS": "\u03a3\u03b5\u03c1\u03b2\u03af\u03b1", "SC": "\u03a3\u03b5\u03cb\u03c7\u03ad\u03bb\u03bb\u03b5\u03c2", "SG": "\u03a3\u03b9\u03b3\u03ba\u03b1\u03c0\u03bf\u03cd\u03c1\u03b7", "SL": "\u03a3\u03b9\u03ad\u03c1\u03b1 \u039b\u03b5\u03cc\u03bd\u03b5", "SK": "\u03a3\u03bb\u03bf\u03b2\u03b1\u03ba\u03af\u03b1", "SI": "\u03a3\u03bb\u03bf\u03b2\u03b5\u03bd\u03af\u03b1", "SO": "\u03a3\u03bf\u03bc\u03b1\u03bb\u03af\u03b1", "SZ": "\u03a3\u03bf\u03c5\u03b1\u03b6\u03b9\u03bb\u03ac\u03bd\u03b4\u03b7", "SD": "\u03a3\u03bf\u03c5\u03b4\u03ac\u03bd", "SE": "\u03a3\u03bf\u03c5\u03b7\u03b4\u03af\u03b1", "SR": "\u03a3\u03bf\u03c5\u03c1\u03b9\u03bd\u03ac\u03bc", "LK": "\u03a3\u03c1\u03b9 \u039b\u03ac\u03bd\u03ba\u03b1", "SY": "\u03a3\u03c5\u03c1\u03af\u03b1", "TW": "\u03a4\u03b1\u03ca\u03b2\u03ac\u03bd", "TH": "\u03a4\u03b1\u03ca\u03bb\u03ac\u03bd\u03b4\u03b7", "TZ": "\u03a4\u03b1\u03bd\u03b6\u03b1\u03bd\u03af\u03b1", "TJ": "\u03a4\u03b1\u03c4\u03b6\u03b9\u03ba\u03b9\u03c3\u03c4\u03ac\u03bd", "JM": "\u03a4\u03b6\u03b1\u03bc\u03ac\u03b9\u03ba\u03b1", "DJ": "\u03a4\u03b6\u03b9\u03bc\u03c0\u03bf\u03c5\u03c4\u03af", "TL": "\u03a4\u03b9\u03bc\u03cc\u03c1-\u039b\u03ad\u03c3\u03c4\u03b5", "TG": "\u03a4\u03cc\u03b3\u03ba\u03bf", "TK": "\u03a4\u03bf\u03ba\u03b5\u03bb\u03ac\u03bf\u03c5", "TO": "\u03a4\u03cc\u03bd\u03b3\u03ba\u03b1", "TR": "\u03a4\u03bf\u03c5\u03c1\u03ba\u03af\u03b1", "TM": "\u03a4\u03bf\u03c5\u03c1\u03ba\u03bc\u03b5\u03bd\u03b9\u03c3\u03c4\u03ac\u03bd", "TT": "\u03a4\u03c1\u03b9\u03bd\u03b9\u03bd\u03c4\u03ac\u03bd\u03c4 \u03ba\u03b1\u03b9 \u03a4\u03bf\u03bc\u03c0\u03ac\u03b3\u03ba\u03bf", "TD": "\u03a4\u03c3\u03b1\u03bd\u03c4", "CZ": "\u03a4\u03c3\u03b5\u03c7\u03af\u03b1", "TN": "\u03a4\u03c5\u03bd\u03b7\u03c3\u03af\u03b1", "YE": "\u03a5\u03b5\u03bc\u03ad\u03bd\u03b7", "PH": "\u03a6\u03b9\u03bb\u03b9\u03c0\u03c0\u03af\u03bd\u03b5\u03c2", "FI": "\u03a6\u03b9\u03bd\u03bb\u03b1\u03bd\u03b4\u03af\u03b1", "FJ": "\u03a6\u03af\u03c4\u03b6\u03b9", "CL": "\u03a7\u03b9\u03bb\u03ae", "HK": "\u03a7\u03bf\u03bd\u03b3\u03ba \u039a\u03bf\u03bd\u03b3\u03ba \u0395\u0394\u03a0 \u039a\u03af\u03bd\u03b1\u03c2"} \ No newline at end of file diff --git a/desktop/onionshare/resources/countries/fr.json b/desktop/onionshare/resources/countries/fr.json new file mode 100644 index 00000000..5bb9a530 --- /dev/null +++ b/desktop/onionshare/resources/countries/fr.json @@ -0,0 +1 @@ +{"AF": "Afghanistan", "ZA": "Afrique du Sud", "AL": "Albanie", "DZ": "Alg\u00e9rie", "DE": "Allemagne", "AD": "Andorre", "AO": "Angola", "AI": "Anguilla", "AQ": "Antarctique", "AG": "Antigua-et-Barbuda", "SA": "Arabie saoudite", "AR": "Argentine", "AM": "Arm\u00e9nie", "AW": "Aruba", "AU": "Australie", "AT": "Autriche", "AZ": "Azerba\u00efdjan", "BS": "Bahamas", "BH": "Bahre\u00efn", "BD": "Bangladesh", "BB": "Barbade", "BE": "Belgique", "BZ": "Belize", "BJ": "B\u00e9nin", "BM": "Bermudes", "BT": "Bhoutan", "BY": "Bi\u00e9lorussie", "BO": "Bolivie", "BA": "Bosnie-Herz\u00e9govine", "BW": "Botswana", "BR": "Br\u00e9sil", "BN": "Brun\u00e9i Darussalam", "BG": "Bulgarie", "BF": "Burkina Faso", "BI": "Burundi", "KH": "Cambodge", "CM": "Cameroun", "CA": "Canada", "CV": "Cap-Vert", "CL": "Chili", "CN": "Chine", "CY": "Chypre", "CO": "Colombie", "KM": "Comores", "CG": "Congo-Brazzaville", "CD": "Congo-Kinshasa", "KP": "Cor\u00e9e du Nord", "KR": "Cor\u00e9e du Sud", "CR": "Costa Rica", "CI": "C\u00f4te d\u2019Ivoire", "HR": "Croatie", "CU": "Cuba", "CW": "Cura\u00e7ao", "DK": "Danemark", "DJ": "Djibouti", "DM": "Dominique", "EG": "\u00c9gypte", "AE": "\u00c9mirats arabes unis", "EC": "\u00c9quateur", "ER": "\u00c9rythr\u00e9e", "ES": "Espagne", "EE": "Estonie", "SZ": "Eswatini", "VA": "\u00c9tat de la Cit\u00e9 du Vatican", "US": "\u00c9tats-Unis", "ET": "\u00c9thiopie", "FJ": "Fidji", "FI": "Finlande", "FR": "France", "GA": "Gabon", "GM": "Gambie", "GE": "G\u00e9orgie", "GS": "G\u00e9orgie du Sud et \u00eeles Sandwich du Sud", "GH": "Ghana", "GI": "Gibraltar", "GR": "Gr\u00e8ce", "GD": "Grenade", "GL": "Groenland", "GP": "Guadeloupe", "GU": "Guam", "GT": "Guatemala", "GG": "Guernesey", "GN": "Guin\u00e9e", "GQ": "Guin\u00e9e \u00e9quatoriale", "GW": "Guin\u00e9e-Bissau", "GY": "Guyana", "GF": "Guyane fran\u00e7aise", "HT": "Ha\u00efti", "HN": "Honduras", "HU": "Hongrie", "BV": "\u00cele Bouvet", "CX": "\u00cele Christmas", "IM": "\u00cele de Man", "NF": "\u00cele Norfolk", "AX": "\u00celes \u00c5land", "KY": "\u00celes Ca\u00efmans", "CC": "\u00celes Cocos", "CK": "\u00celes Cook", "FO": "\u00celes F\u00e9ro\u00e9", "HM": "\u00celes Heard et McDonald", "FK": "\u00celes Malouines", "PN": "\u00celes Pitcairn", "SB": "\u00celes Salomon", "TC": "\u00celes Turques-et-Ca\u00efques", "VG": "\u00celes Vierges britanniques", "VI": "\u00celes Vierges des \u00c9tats-Unis", "IN": "Inde", "ID": "Indon\u00e9sie", "IQ": "Irak", "IR": "Iran", "IE": "Irlande", "IS": "Islande", "IL": "Isra\u00ebl", "IT": "Italie", "JM": "Jama\u00efque", "JP": "Japon", "JO": "Jordanie", "KZ": "Kazakhstan", "KE": "Kenya", "KG": "Kirghizistan", "KI": "Kiribati", "KW": "Kowe\u00eft", "RE": "La R\u00e9union", "LA": "Laos", "LS": "Lesotho", "LV": "Lettonie", "LB": "Liban", "LR": "Lib\u00e9ria", "LY": "Libye", "LI": "Liechtenstein", "LT": "Lituanie", "LU": "Luxembourg", "MK": "Mac\u00e9doine du Nord", "MG": "Madagascar", "MY": "Malaisie", "MW": "Malawi", "MV": "Maldives", "ML": "Mali", "MT": "Malte", "MA": "Maroc", "MQ": "Martinique", "MU": "Maurice", "MR": "Mauritanie", "YT": "Mayotte", "MX": "Mexique", "MD": "Moldavie", "MC": "Monaco", "MN": "Mongolie", "ME": "Mont\u00e9n\u00e9gro", "MS": "Montserrat", "MZ": "Mozambique", "MM": "Myanmar (Birmanie)", "NA": "Namibie", "NR": "Nauru", "NP": "N\u00e9pal", "NI": "Nicaragua", "NE": "Niger", "NG": "Nig\u00e9ria", "NU": "Niue", "NO": "Norv\u00e8ge", "NC": "Nouvelle-Cal\u00e9donie", "NZ": "Nouvelle-Z\u00e9lande", "OM": "Oman", "UG": "Ouganda", "UZ": "Ouzb\u00e9kistan", "PK": "Pakistan", "PW": "Palaos", "PA": "Panama", "PG": "Papouasie-Nouvelle-Guin\u00e9e", "PY": "Paraguay", "NL": "Pays-Bas", "BQ": "Pays-Bas carib\u00e9ens", "PE": "P\u00e9rou", "PH": "Philippines", "PL": "Pologne", "PF": "Polyn\u00e9sie fran\u00e7aise", "PR": "Porto Rico", "PT": "Portugal", "QA": "Qatar", "HK": "R.A.S. chinoise de Hong Kong", "MO": "R.A.S. chinoise de Macao", "CF": "R\u00e9publique centrafricaine", "DO": "R\u00e9publique dominicaine", "RO": "Roumanie", "GB": "Royaume-Uni", "RU": "Russie", "RW": "Rwanda", "EH": "Sahara occidental", "BL": "Saint-Barth\u00e9lemy", "KN": "Saint-Christophe-et-Ni\u00e9v\u00e8s", "SM": "Saint-Marin", "MF": "Saint-Martin", "SX": "Saint-Martin (partie n\u00e9erlandaise)", "PM": "Saint-Pierre-et-Miquelon", "VC": "Saint-Vincent-et-les-Grenadines", "SH": "Sainte-H\u00e9l\u00e8ne", "LC": "Sainte-Lucie", "SV": "Salvador", "WS": "Samoa", "AS": "Samoa am\u00e9ricaines", "ST": "Sao Tom\u00e9-et-Principe", "SN": "S\u00e9n\u00e9gal", "RS": "Serbie", "SC": "Seychelles", "SL": "Sierra Leone", "SG": "Singapour", "SK": "Slovaquie", "SI": "Slov\u00e9nie", "SO": "Somalie", "SD": "Soudan", "SS": "Soudan du Sud", "LK": "Sri Lanka", "SE": "Su\u00e8de", "CH": "Suisse", "SR": "Suriname", "SJ": "Svalbard et Jan Mayen", "SY": "Syrie", "TJ": "Tadjikistan", "TW": "Ta\u00efwan", "TZ": "Tanzanie", "TD": "Tchad", "CZ": "Tch\u00e9quie", "TF": "Terres australes fran\u00e7aises", "IO": "Territoire britannique de l\u2019oc\u00e9an Indien", "TH": "Tha\u00eflande", "TL": "Timor oriental", "TG": "Togo", "TK": "Tokelau", "TO": "Tonga", "TT": "Trinit\u00e9-et-Tobago", "TN": "Tunisie", "TM": "Turkm\u00e9nistan", "TR": "Turquie", "UA": "Ukraine", "UY": "Uruguay", "VU": "Vanuatu", "VE": "Venezuela", "VN": "Vietnam", "WF": "Wallis-et-Futuna", "YE": "Y\u00e9men", "ZM": "Zambie", "ZW": "Zimbabwe"} \ No newline at end of file diff --git a/desktop/onionshare/resources/countries/ja.json b/desktop/onionshare/resources/countries/ja.json new file mode 100644 index 00000000..22e4054a --- /dev/null +++ b/desktop/onionshare/resources/countries/ja.json @@ -0,0 +1 @@ +{"IS": "\u30a2\u30a4\u30b9\u30e9\u30f3\u30c9", "IE": "\u30a2\u30a4\u30eb\u30e9\u30f3\u30c9", "AZ": "\u30a2\u30bc\u30eb\u30d0\u30a4\u30b8\u30e3\u30f3", "AF": "\u30a2\u30d5\u30ac\u30cb\u30b9\u30bf\u30f3", "US": "\u30a2\u30e1\u30ea\u30ab\u5408\u8846\u56fd", "AE": "\u30a2\u30e9\u30d6\u9996\u9577\u56fd\u9023\u90a6", "DZ": "\u30a2\u30eb\u30b8\u30a7\u30ea\u30a2", "AR": "\u30a2\u30eb\u30bc\u30f3\u30c1\u30f3", "AW": "\u30a2\u30eb\u30d0", "AL": "\u30a2\u30eb\u30d0\u30cb\u30a2", "AM": "\u30a2\u30eb\u30e1\u30cb\u30a2", "AI": "\u30a2\u30f3\u30ae\u30e9", "AO": "\u30a2\u30f3\u30b4\u30e9", "AG": "\u30a2\u30f3\u30c6\u30a3\u30b0\u30a2\u30fb\u30d0\u30fc\u30d6\u30fc\u30c0", "AD": "\u30a2\u30f3\u30c9\u30e9", "YE": "\u30a4\u30a8\u30e1\u30f3", "GB": "\u30a4\u30ae\u30ea\u30b9", "IL": "\u30a4\u30b9\u30e9\u30a8\u30eb", "IT": "\u30a4\u30bf\u30ea\u30a2", "IQ": "\u30a4\u30e9\u30af", "IR": "\u30a4\u30e9\u30f3", "IN": "\u30a4\u30f3\u30c9", "ID": "\u30a4\u30f3\u30c9\u30cd\u30b7\u30a2", "WF": "\u30a6\u30a9\u30ea\u30b9\u30fb\u30d5\u30c4\u30ca", "UG": "\u30a6\u30ac\u30f3\u30c0", "UA": "\u30a6\u30af\u30e9\u30a4\u30ca", "UZ": "\u30a6\u30ba\u30d9\u30ad\u30b9\u30bf\u30f3", "UY": "\u30a6\u30eb\u30b0\u30a2\u30a4", "EC": "\u30a8\u30af\u30a2\u30c9\u30eb", "EG": "\u30a8\u30b8\u30d7\u30c8", "EE": "\u30a8\u30b9\u30c8\u30cb\u30a2", "SZ": "\u30a8\u30b9\u30ef\u30c6\u30a3\u30cb", "ET": "\u30a8\u30c1\u30aa\u30d4\u30a2", "ER": "\u30a8\u30ea\u30c8\u30ea\u30a2", "SV": "\u30a8\u30eb\u30b5\u30eb\u30d0\u30c9\u30eb", "AU": "\u30aa\u30fc\u30b9\u30c8\u30e9\u30ea\u30a2", "AT": "\u30aa\u30fc\u30b9\u30c8\u30ea\u30a2", "AX": "\u30aa\u30fc\u30e9\u30f3\u30c9\u8af8\u5cf6", "OM": "\u30aa\u30de\u30fc\u30f3", "NL": "\u30aa\u30e9\u30f3\u30c0", "BQ": "\u30aa\u30e9\u30f3\u30c0\u9818\u30ab\u30ea\u30d6", "GH": "\u30ac\u30fc\u30ca", "CV": "\u30ab\u30fc\u30dc\u30d9\u30eb\u30c7", "GG": "\u30ac\u30fc\u30f3\u30b8\u30fc", "GY": "\u30ac\u30a4\u30a2\u30ca", "KZ": "\u30ab\u30b6\u30d5\u30b9\u30bf\u30f3", "QA": "\u30ab\u30bf\u30fc\u30eb", "CA": "\u30ab\u30ca\u30c0", "GA": "\u30ac\u30dc\u30f3", "CM": "\u30ab\u30e1\u30eb\u30fc\u30f3", "GM": "\u30ac\u30f3\u30d3\u30a2", "KH": "\u30ab\u30f3\u30dc\u30b8\u30a2", "GN": "\u30ae\u30cb\u30a2", "GW": "\u30ae\u30cb\u30a2\u30d3\u30b5\u30a6", "CY": "\u30ad\u30d7\u30ed\u30b9", "CU": "\u30ad\u30e5\u30fc\u30d0", "CW": "\u30ad\u30e5\u30e9\u30bd\u30fc", "GR": "\u30ae\u30ea\u30b7\u30e3", "KI": "\u30ad\u30ea\u30d0\u30b9", "KG": "\u30ad\u30eb\u30ae\u30b9", "GT": "\u30b0\u30a2\u30c6\u30de\u30e9", "GP": "\u30b0\u30a2\u30c9\u30eb\u30fc\u30d7", "GU": "\u30b0\u30a2\u30e0", "KW": "\u30af\u30a6\u30a7\u30fc\u30c8", "CK": "\u30af\u30c3\u30af\u8af8\u5cf6", "GL": "\u30b0\u30ea\u30fc\u30f3\u30e9\u30f3\u30c9", "CX": "\u30af\u30ea\u30b9\u30de\u30b9\u5cf6", "GD": "\u30b0\u30ec\u30ca\u30c0", "HR": "\u30af\u30ed\u30a2\u30c1\u30a2", "KY": "\u30b1\u30a4\u30de\u30f3\u8af8\u5cf6", "KE": "\u30b1\u30cb\u30a2", "CI": "\u30b3\u30fc\u30c8\u30b8\u30dc\u30ef\u30fc\u30eb", "CC": "\u30b3\u30b3\u30b9(\u30ad\u30fc\u30ea\u30f3\u30b0)\u8af8\u5cf6", "CR": "\u30b3\u30b9\u30bf\u30ea\u30ab", "KM": "\u30b3\u30e2\u30ed", "CO": "\u30b3\u30ed\u30f3\u30d3\u30a2", "CG": "\u30b3\u30f3\u30b4\u5171\u548c\u56fd(\u30d6\u30e9\u30b6\u30d3\u30eb)", "CD": "\u30b3\u30f3\u30b4\u6c11\u4e3b\u5171\u548c\u56fd(\u30ad\u30f3\u30b7\u30e3\u30b5)", "SA": "\u30b5\u30a6\u30b8\u30a2\u30e9\u30d3\u30a2", "GS": "\u30b5\u30a6\u30b9\u30b8\u30e7\u30fc\u30b8\u30a2\u30fb\u30b5\u30a6\u30b9\u30b5\u30f3\u30c9\u30a6\u30a3\u30c3\u30c1\u8af8\u5cf6", "WS": "\u30b5\u30e2\u30a2", "BL": "\u30b5\u30f3\u30fb\u30d0\u30eb\u30c6\u30eb\u30df\u30fc", "MF": "\u30b5\u30f3\u30fb\u30de\u30eb\u30bf\u30f3", "ST": "\u30b5\u30f3\u30c8\u30e1\u30fb\u30d7\u30ea\u30f3\u30b7\u30da", "ZM": "\u30b6\u30f3\u30d3\u30a2", "PM": "\u30b5\u30f3\u30d4\u30a8\u30fc\u30eb\u5cf6\u30fb\u30df\u30af\u30ed\u30f3\u5cf6", "SM": "\u30b5\u30f3\u30de\u30ea\u30ce", "SL": "\u30b7\u30a8\u30e9\u30ec\u30aa\u30cd", "DJ": "\u30b8\u30d6\u30c1", "GI": "\u30b8\u30d6\u30e9\u30eb\u30bf\u30eb", "JM": "\u30b8\u30e3\u30de\u30a4\u30ab", "GE": "\u30b8\u30e7\u30fc\u30b8\u30a2", "SY": "\u30b7\u30ea\u30a2", "SG": "\u30b7\u30f3\u30ac\u30dd\u30fc\u30eb", "SX": "\u30b7\u30f3\u30c8\u30fb\u30de\u30fc\u30eb\u30c6\u30f3", "ZW": "\u30b8\u30f3\u30d0\u30d6\u30a8", "CH": "\u30b9\u30a4\u30b9", "SE": "\u30b9\u30a6\u30a7\u30fc\u30c7\u30f3", "SD": "\u30b9\u30fc\u30c0\u30f3", "SJ": "\u30b9\u30d0\u30fc\u30eb\u30d0\u30eb\u8af8\u5cf6\u30fb\u30e4\u30f3\u30de\u30a4\u30a8\u30f3\u5cf6", "ES": "\u30b9\u30da\u30a4\u30f3", "SR": "\u30b9\u30ea\u30ca\u30e0", "LK": "\u30b9\u30ea\u30e9\u30f3\u30ab", "SK": "\u30b9\u30ed\u30d0\u30ad\u30a2", "SI": "\u30b9\u30ed\u30d9\u30cb\u30a2", "SC": "\u30bb\u30fc\u30b7\u30a7\u30eb", "SN": "\u30bb\u30cd\u30ac\u30eb", "RS": "\u30bb\u30eb\u30d3\u30a2", "KN": "\u30bb\u30f3\u30c8\u30af\u30ea\u30b9\u30c8\u30d5\u30a1\u30fc\u30fb\u30cd\u30fc\u30f4\u30a3\u30b9", "VC": "\u30bb\u30f3\u30c8\u30d3\u30f3\u30bb\u30f3\u30c8\u53ca\u3073\u30b0\u30ec\u30ca\u30c7\u30a3\u30fc\u30f3\u8af8\u5cf6", "SH": "\u30bb\u30f3\u30c8\u30d8\u30ec\u30ca", "LC": "\u30bb\u30f3\u30c8\u30eb\u30b7\u30a2", "SO": "\u30bd\u30de\u30ea\u30a2", "SB": "\u30bd\u30ed\u30e2\u30f3\u8af8\u5cf6", "TC": "\u30bf\u30fc\u30af\u30b9\u30fb\u30ab\u30a4\u30b3\u30b9\u8af8\u5cf6", "TH": "\u30bf\u30a4", "TJ": "\u30bf\u30b8\u30ad\u30b9\u30bf\u30f3", "TZ": "\u30bf\u30f3\u30b6\u30cb\u30a2", "CZ": "\u30c1\u30a7\u30b3", "TD": "\u30c1\u30e3\u30c9", "TN": "\u30c1\u30e5\u30cb\u30b8\u30a2", "CL": "\u30c1\u30ea", "DK": "\u30c7\u30f3\u30de\u30fc\u30af", "DE": "\u30c9\u30a4\u30c4", "TG": "\u30c8\u30fc\u30b4", "TK": "\u30c8\u30b1\u30e9\u30a6", "DO": "\u30c9\u30df\u30cb\u30ab\u5171\u548c\u56fd", "DM": "\u30c9\u30df\u30cb\u30ab\u56fd", "TT": "\u30c8\u30ea\u30cb\u30c0\u30fc\u30c9\u30fb\u30c8\u30d0\u30b4", "TM": "\u30c8\u30eb\u30af\u30e1\u30cb\u30b9\u30bf\u30f3", "TR": "\u30c8\u30eb\u30b3", "TO": "\u30c8\u30f3\u30ac", "NG": "\u30ca\u30a4\u30b8\u30a7\u30ea\u30a2", "NR": "\u30ca\u30a6\u30eb", "NA": "\u30ca\u30df\u30d3\u30a2", "NU": "\u30cb\u30a6\u30a8", "NI": "\u30cb\u30ab\u30e9\u30b0\u30a2", "NE": "\u30cb\u30b8\u30a7\u30fc\u30eb", "NC": "\u30cb\u30e5\u30fc\u30ab\u30ec\u30c9\u30cb\u30a2", "NZ": "\u30cb\u30e5\u30fc\u30b8\u30fc\u30e9\u30f3\u30c9", "NP": "\u30cd\u30d1\u30fc\u30eb", "NF": "\u30ce\u30fc\u30d5\u30a9\u30fc\u30af\u5cf6", "NO": "\u30ce\u30eb\u30a6\u30a7\u30fc", "HM": "\u30cf\u30fc\u30c9\u5cf6\u30fb\u30de\u30af\u30c9\u30ca\u30eb\u30c9\u8af8\u5cf6", "BH": "\u30d0\u30fc\u30ec\u30fc\u30f3", "HT": "\u30cf\u30a4\u30c1", "PK": "\u30d1\u30ad\u30b9\u30bf\u30f3", "VA": "\u30d0\u30c1\u30ab\u30f3\u5e02\u56fd", "PA": "\u30d1\u30ca\u30de", "VU": "\u30d0\u30cc\u30a2\u30c4", "BS": "\u30d0\u30cf\u30de", "PG": "\u30d1\u30d7\u30a2\u30cb\u30e5\u30fc\u30ae\u30cb\u30a2", "BM": "\u30d0\u30df\u30e5\u30fc\u30c0", "PW": "\u30d1\u30e9\u30aa", "PY": "\u30d1\u30e9\u30b0\u30a2\u30a4", "BB": "\u30d0\u30eb\u30d0\u30c9\u30b9", "HU": "\u30cf\u30f3\u30ac\u30ea\u30fc", "BD": "\u30d0\u30f3\u30b0\u30e9\u30c7\u30b7\u30e5", "PN": "\u30d4\u30c8\u30b1\u30a2\u30f3\u8af8\u5cf6", "FJ": "\u30d5\u30a3\u30b8\u30fc", "PH": "\u30d5\u30a3\u30ea\u30d4\u30f3", "FI": "\u30d5\u30a3\u30f3\u30e9\u30f3\u30c9", "BT": "\u30d6\u30fc\u30bf\u30f3", "BV": "\u30d6\u30fc\u30d9\u5cf6", "PR": "\u30d7\u30a8\u30eb\u30c8\u30ea\u30b3", "FO": "\u30d5\u30a7\u30ed\u30fc\u8af8\u5cf6", "FK": "\u30d5\u30a9\u30fc\u30af\u30e9\u30f3\u30c9\u8af8\u5cf6", "BR": "\u30d6\u30e9\u30b8\u30eb", "FR": "\u30d5\u30e9\u30f3\u30b9", "BG": "\u30d6\u30eb\u30ac\u30ea\u30a2", "BF": "\u30d6\u30eb\u30ad\u30ca\u30d5\u30a1\u30bd", "BN": "\u30d6\u30eb\u30cd\u30a4", "BI": "\u30d6\u30eb\u30f3\u30b8", "VN": "\u30d9\u30c8\u30ca\u30e0", "BJ": "\u30d9\u30ca\u30f3", "VE": "\u30d9\u30cd\u30ba\u30a8\u30e9", "BY": "\u30d9\u30e9\u30eb\u30fc\u30b7", "BZ": "\u30d9\u30ea\u30fc\u30ba", "PE": "\u30da\u30eb\u30fc", "BE": "\u30d9\u30eb\u30ae\u30fc", "PL": "\u30dd\u30fc\u30e9\u30f3\u30c9", "BA": "\u30dc\u30b9\u30cb\u30a2\u30fb\u30d8\u30eb\u30c4\u30a7\u30b4\u30d3\u30ca", "BW": "\u30dc\u30c4\u30ef\u30ca", "BO": "\u30dc\u30ea\u30d3\u30a2", "PT": "\u30dd\u30eb\u30c8\u30ac\u30eb", "HN": "\u30db\u30f3\u30b8\u30e5\u30e9\u30b9", "MG": "\u30de\u30c0\u30ac\u30b9\u30ab\u30eb", "YT": "\u30de\u30e8\u30c3\u30c8", "MW": "\u30de\u30e9\u30a6\u30a4", "ML": "\u30de\u30ea", "MT": "\u30de\u30eb\u30bf", "MQ": "\u30de\u30eb\u30c6\u30a3\u30cb\u30fc\u30af", "MY": "\u30de\u30ec\u30fc\u30b7\u30a2", "IM": "\u30de\u30f3\u5cf6", "MM": "\u30df\u30e3\u30f3\u30de\u30fc (\u30d3\u30eb\u30de)", "MX": "\u30e1\u30ad\u30b7\u30b3", "MU": "\u30e2\u30fc\u30ea\u30b7\u30e3\u30b9", "MR": "\u30e2\u30fc\u30ea\u30bf\u30cb\u30a2", "MZ": "\u30e2\u30b6\u30f3\u30d3\u30fc\u30af", "MC": "\u30e2\u30ca\u30b3", "MV": "\u30e2\u30eb\u30c7\u30a3\u30d6", "MD": "\u30e2\u30eb\u30c9\u30d0", "MA": "\u30e2\u30ed\u30c3\u30b3", "MN": "\u30e2\u30f3\u30b4\u30eb", "ME": "\u30e2\u30f3\u30c6\u30cd\u30b0\u30ed", "MS": "\u30e2\u30f3\u30c8\u30bb\u30e9\u30c8", "JO": "\u30e8\u30eb\u30c0\u30f3", "LA": "\u30e9\u30aa\u30b9", "LV": "\u30e9\u30c8\u30d3\u30a2", "LT": "\u30ea\u30c8\u30a2\u30cb\u30a2", "LY": "\u30ea\u30d3\u30a2", "LI": "\u30ea\u30d2\u30c6\u30f3\u30b7\u30e5\u30bf\u30a4\u30f3", "LR": "\u30ea\u30d9\u30ea\u30a2", "RO": "\u30eb\u30fc\u30de\u30cb\u30a2", "LU": "\u30eb\u30af\u30bb\u30f3\u30d6\u30eb\u30af", "RW": "\u30eb\u30ef\u30f3\u30c0", "LS": "\u30ec\u30bd\u30c8", "LB": "\u30ec\u30d0\u30ce\u30f3", "RE": "\u30ec\u30e6\u30cb\u30aa\u30f3", "RU": "\u30ed\u30b7\u30a2", "IO": "\u82f1\u9818\u30a4\u30f3\u30c9\u6d0b\u5730\u57df", "VG": "\u82f1\u9818\u30f4\u30a1\u30fc\u30b8\u30f3\u8af8\u5cf6", "KR": "\u97d3\u56fd", "EH": "\u897f\u30b5\u30cf\u30e9", "GQ": "\u8d64\u9053\u30ae\u30cb\u30a2", "TW": "\u53f0\u6e7e", "CF": "\u4e2d\u592e\u30a2\u30d5\u30ea\u30ab\u5171\u548c\u56fd", "MO": "\u4e2d\u83ef\u4eba\u6c11\u5171\u548c\u56fd\u30de\u30ab\u30aa\u7279\u5225\u884c\u653f\u533a", "HK": "\u4e2d\u83ef\u4eba\u6c11\u5171\u548c\u56fd\u9999\u6e2f\u7279\u5225\u884c\u653f\u533a", "CN": "\u4e2d\u56fd", "TL": "\u6771\u30c6\u30a3\u30e2\u30fc\u30eb", "ZA": "\u5357\u30a2\u30d5\u30ea\u30ab", "SS": "\u5357\u30b9\u30fc\u30c0\u30f3", "AQ": "\u5357\u6975", "JP": "\u65e5\u672c", "GF": "\u4ecf\u9818\u30ae\u30a2\u30ca", "PF": "\u4ecf\u9818\u30dd\u30ea\u30cd\u30b7\u30a2", "TF": "\u4ecf\u9818\u6975\u5357\u8af8\u5cf6", "VI": "\u7c73\u9818\u30f4\u30a1\u30fc\u30b8\u30f3\u8af8\u5cf6", "AS": "\u7c73\u9818\u30b5\u30e2\u30a2", "MK": "\u5317\u30de\u30b1\u30c9\u30cb\u30a2", "KP": "\u5317\u671d\u9bae"} \ No newline at end of file diff --git a/desktop/onionshare/resources/countries/pt_PT.json b/desktop/onionshare/resources/countries/pt_PT.json new file mode 100644 index 00000000..580bc314 --- /dev/null +++ b/desktop/onionshare/resources/countries/pt_PT.json @@ -0,0 +1 @@ +{"AF": "Afeganist\u00e3o", "ZA": "\u00c1frica do Sul", "AX": "Alanda", "AL": "Alb\u00e2nia", "DE": "Alemanha", "AD": "Andorra", "AO": "Angola", "AI": "Anguila", "AQ": "Ant\u00e1rtida", "AG": "Ant\u00edgua e Barbuda", "SA": "Ar\u00e1bia Saudita", "DZ": "Arg\u00e9lia", "AR": "Argentina", "AM": "Arm\u00e9nia", "AW": "Aruba", "AU": "Austr\u00e1lia", "AT": "\u00c1ustria", "AZ": "Azerbaij\u00e3o", "BS": "Baamas", "BD": "Bangladeche", "BB": "Barbados", "BH": "Bar\u00e9m", "BE": "B\u00e9lgica", "BZ": "Belize", "BJ": "Benim", "BM": "Bermudas", "BY": "Bielorr\u00fassia", "BO": "Bol\u00edvia", "BA": "B\u00f3snia e Herzegovina", "BW": "Botsuana", "BR": "Brasil", "BN": "Brunei", "BG": "Bulg\u00e1ria", "BF": "Burquina Faso", "BI": "Burundi", "BT": "But\u00e3o", "CV": "Cabo Verde", "CM": "Camar\u00f5es", "KH": "Camboja", "CA": "Canad\u00e1", "QA": "Catar", "KZ": "Cazaquist\u00e3o", "TD": "Chade", "CZ": "Ch\u00e9quia", "CL": "Chile", "CN": "China", "CY": "Chipre", "VA": "Cidade do Vaticano", "CO": "Col\u00f4mbia", "KM": "Comores", "CG": "Congo-Brazzaville", "CD": "Congo-Kinshasa", "KP": "Coreia do Norte", "KR": "Coreia do Sul", "CR": "Costa Rica", "CI": "C\u00f4te d\u2019Ivoire (Costa do Marfim)", "HR": "Cro\u00e1cia", "CU": "Cuba", "CW": "Cura\u00e7au", "DK": "Dinamarca", "DM": "Dom\u00ednica", "EG": "Egito", "AE": "Emirados \u00c1rabes Unidos", "EC": "Equador", "ER": "Eritreia", "SK": "Eslov\u00e1quia", "SI": "Eslov\u00e9nia", "ES": "Espanha", "SZ": "Essuat\u00edni", "US": "Estados Unidos", "EE": "Est\u00f3nia", "ET": "Eti\u00f3pia", "FJ": "Fiji", "PH": "Filipinas", "FI": "Finl\u00e2ndia", "FR": "Fran\u00e7a", "GA": "Gab\u00e3o", "GM": "G\u00e2mbia", "GH": "Gana", "GE": "Ge\u00f3rgia", "GI": "Gibraltar", "GD": "Granada", "GR": "Gr\u00e9cia", "GL": "Gronel\u00e2ndia", "GP": "Guadalupe", "GU": "Guame", "GT": "Guatemala", "GG": "Guernesey", "GY": "Guiana", "GF": "Guiana Francesa", "GN": "Guin\u00e9", "GQ": "Guin\u00e9 Equatorial", "GW": "Guin\u00e9-Bissau", "HT": "Haiti", "HN": "Honduras", "HK": "Hong Kong, RAE da China", "HU": "Hungria", "YE": "I\u00e9men", "BV": "Ilha Bouvet", "IM": "Ilha de Man", "CX": "Ilha do Natal", "NF": "Ilha Norfolk", "KY": "Ilhas Caim\u00e3o", "CK": "Ilhas Cook", "CC": "Ilhas dos Cocos (Keeling)", "FO": "Ilhas Faro\u00e9", "GS": "Ilhas Ge\u00f3rgia do Sul e Sandwich do Sul", "HM": "Ilhas Heard e McDonald", "FK": "Ilhas Malvinas (Falkland)", "PN": "Ilhas Pitcairn", "SB": "Ilhas Salom\u00e3o", "TC": "Ilhas Turcas e Caicos", "VG": "Ilhas Virgens Brit\u00e2nicas", "VI": "Ilhas Virgens dos EUA", "IN": "\u00cdndia", "ID": "Indon\u00e9sia", "IR": "Ir\u00e3o", "IQ": "Iraque", "IE": "Irlanda", "IS": "Isl\u00e2ndia", "IL": "Israel", "IT": "It\u00e1lia", "JM": "Jamaica", "JP": "Jap\u00e3o", "DJ": "Jibuti", "JO": "Jord\u00e2nia", "KW": "Koweit", "LA": "Laos", "LS": "Lesoto", "LV": "Let\u00f3nia", "LB": "L\u00edbano", "LR": "Lib\u00e9ria", "LY": "L\u00edbia", "LI": "Listenstaine", "LT": "Litu\u00e2nia", "LU": "Luxemburgo", "MO": "Macau, RAE da China", "MK": "Maced\u00f3nia do Norte", "MG": "Madag\u00e1scar", "YT": "Maiote", "MY": "Mal\u00e1sia", "MW": "Mal\u00e1ui", "MV": "Maldivas", "ML": "Mali", "MT": "Malta", "MA": "Marrocos", "MQ": "Martinica", "MU": "Maur\u00edcia", "MR": "Maurit\u00e2nia", "MX": "M\u00e9xico", "MM": "Mianmar (Birm\u00e2nia)", "MZ": "Mo\u00e7ambique", "MD": "Mold\u00e1via", "MC": "M\u00f3naco", "MN": "Mong\u00f3lia", "MS": "Monserrate", "ME": "Montenegro", "NA": "Nam\u00edbia", "NR": "Nauru", "NP": "Nepal", "NI": "Nicar\u00e1gua", "NE": "N\u00edger", "NG": "Nig\u00e9ria", "NU": "Niu\u00ea", "NO": "Noruega", "NC": "Nova Caled\u00f3nia", "NZ": "Nova Zel\u00e2ndia", "OM": "Om\u00e3", "NL": "Pa\u00edses Baixos", "BQ": "Pa\u00edses Baixos Caribenhos", "PW": "Palau", "PA": "Panam\u00e1", "PG": "Papua-Nova Guin\u00e9", "PK": "Paquist\u00e3o", "PY": "Paraguai", "PE": "Peru", "PF": "Polin\u00e9sia Francesa", "PL": "Pol\u00f3nia", "PR": "Porto Rico", "PT": "Portugal", "KE": "Qu\u00e9nia", "KG": "Quirguist\u00e3o", "KI": "Quirib\u00e1ti", "GB": "Reino Unido", "CF": "Rep\u00fablica Centro-Africana", "DO": "Rep\u00fablica Dominicana", "RE": "Reuni\u00e3o", "RO": "Rom\u00e9nia", "RW": "Ruanda", "RU": "R\u00fassia", "SV": "Salvador", "WS": "Samoa", "AS": "Samoa Americana", "SH": "Santa Helena", "LC": "Santa L\u00facia", "BL": "S\u00e3o Bartolomeu", "KN": "S\u00e3o Crist\u00f3v\u00e3o e Neves", "SM": "S\u00e3o Marinho", "MF": "S\u00e3o Martinho", "SX": "S\u00e3o Martinho (Sint Maarten)", "PM": "S\u00e3o Pedro e Miquel\u00e3o", "ST": "S\u00e3o Tom\u00e9 e Pr\u00edncipe", "VC": "S\u00e3o Vicente e Granadinas", "EH": "Sara Ocidental", "SC": "Seicheles", "SN": "Senegal", "SL": "Serra Leoa", "RS": "S\u00e9rvia", "SG": "Singapura", "SY": "S\u00edria", "SO": "Som\u00e1lia", "LK": "Sri Lanca", "SD": "Sud\u00e3o", "SS": "Sud\u00e3o do Sul", "SE": "Su\u00e9cia", "CH": "Su\u00ed\u00e7a", "SR": "Suriname", "SJ": "Svalbard e Jan Mayen", "TH": "Tail\u00e2ndia", "TW": "Taiwan", "TJ": "Tajiquist\u00e3o", "TZ": "Tanz\u00e2nia", "IO": "Territ\u00f3rio Brit\u00e2nico do Oceano \u00cdndico", "TF": "Territ\u00f3rios Austrais Franceses", "TL": "Timor-Leste", "TG": "Togo", "TO": "Tonga", "TK": "Toquelau", "TT": "Trindade e Tobago", "TN": "Tun\u00edsia", "TM": "Turquemenist\u00e3o", "TR": "Turquia", "UA": "Ucr\u00e2nia", "UG": "Uganda", "UY": "Uruguai", "UZ": "Usbequist\u00e3o", "VU": "Vanuatu", "VE": "Venezuela", "VN": "Vietname", "WF": "Wallis e Futuna", "ZM": "Z\u00e2mbia", "ZW": "Zimbabu\u00e9"} \ No newline at end of file diff --git a/desktop/scripts/countries-update-list.py b/desktop/scripts/countries-update-list.py index 3451058f..248e0f30 100755 --- a/desktop/scripts/countries-update-list.py +++ b/desktop/scripts/countries-update-list.py @@ -22,9 +22,7 @@ def main(): available_locales = list(settings.available_locales) # Make a dictionary that makes a language's ISO 3166-1 to its name in all enabled languages - os.makedirs( - os.path.join("src", "onionshare", "resources", "countries"), exist_ok=True - ) + os.makedirs(os.path.join("onionshare", "resources", "countries"), exist_ok=True) for locale in available_locales: with open(os.path.join(repo_dir, "data", locale, "country.json")) as f: countries = json.loads(f.read()) @@ -34,9 +32,7 @@ def main(): del countries[key] with open( - os.path.join( - "src", "onionshare", "resources", "countries", f"{locale}.json" - ), + os.path.join("onionshare", "resources", "countries", f"{locale}.json"), "w", ) as f: f.write(json.dumps(countries)) -- cgit v1.2.3-54-g00ecf From 8d6e375c4476f2da311cbfb12362464041fab3cf Mon Sep 17 00:00:00 2001 From: Saptak S Date: Mon, 28 Feb 2022 12:34:01 +0530 Subject: Replace double quotes with single quotes --- desktop/onionshare/connection_tab.py | 2 +- desktop/onionshare/main_window.py | 4 ++-- desktop/onionshare/settings_parent_tab.py | 20 ++++++++++---------- desktop/onionshare/tab_widget.py | 4 ++-- desktop/onionshare/tor_settings_tab.py | 8 +++++++- 5 files changed, 22 insertions(+), 16 deletions(-) diff --git a/desktop/onionshare/connection_tab.py b/desktop/onionshare/connection_tab.py index 0b60a8b4..2bb2a79c 100644 --- a/desktop/onionshare/connection_tab.py +++ b/desktop/onionshare/connection_tab.py @@ -149,7 +149,7 @@ class AutoConnectTab(QtWidgets.QWidget): self.curr_settings.save() def open_tor_settings(self): - self.parent.open_settings_tab(from_autoconnect=True, active_tab='tor') + self.parent.open_settings_tab(from_autoconnect=True, active_tab="tor") def first_launch_widget_connect_clicked(self): """ diff --git a/desktop/onionshare/main_window.py b/desktop/onionshare/main_window.py index eef12028..b2bd01e9 100644 --- a/desktop/onionshare/main_window.py +++ b/desktop/onionshare/main_window.py @@ -222,13 +222,13 @@ class MainWindow(QtWidgets.QMainWindow): """ Open the TorSettingsTab """ - self._open_settings(active_tab='tor') + self._open_settings(active_tab="tor") def open_settings(self): """ Open the general SettingsTab """ - self._open_settings(active_tab='general') + self._open_settings(active_tab="general") def _open_settings(self, active_tab): self.common.log("MainWindow", f"open settings with active tab: {active_tab}") diff --git a/desktop/onionshare/settings_parent_tab.py b/desktop/onionshare/settings_parent_tab.py index 030cacc0..2ade0e05 100644 --- a/desktop/onionshare/settings_parent_tab.py +++ b/desktop/onionshare/settings_parent_tab.py @@ -20,7 +20,9 @@ class SettingsParentTab(QtWidgets.QTabWidget): bring_to_front = QtCore.Signal() close_this_tab = QtCore.Signal() - def __init__(self, common, tab_id, parent=None, active_tab='general', from_autoconnect=False): + def __init__( + self, common, tab_id, parent=None, active_tab="general", from_autoconnect=False + ): super(SettingsParentTab, self).__init__() self.parent = parent self.common = common @@ -30,8 +32,8 @@ class SettingsParentTab(QtWidgets.QTabWidget): # Each tab has a unique, auto-incremented id (tab_id). This is different than the # tab's index, which changes as tabs are re-arranged. self.tabs = { - 'general': 0, - 'tor': 1, + "general": 0, + "tor": 1, } self.tab_id = tab_id self.current_tab_id = self.tabs[active_tab] @@ -39,19 +41,17 @@ class SettingsParentTab(QtWidgets.QTabWidget): # Use a custom tab bar tab_bar = TabBar(self.common) self.setTabBar(tab_bar) - settings_tab = SettingsTab(self.common, self.tabs['general'], parent=self) + settings_tab = SettingsTab(self.common, self.tabs["general"], parent=self) self.tor_settings_tab = TorSettingsTab( self.common, - self.tabs['tor'], + self.tabs["tor"], self.parent.are_tabs_active(), self.parent.status_bar, parent=self, from_autoconnect=from_autoconnect, ) self.addTab(settings_tab, strings._("gui_general_settings_window_title")) - self.addTab( - self.tor_settings_tab, strings._("gui_tor_settings_window_title") - ) + self.addTab(self.tor_settings_tab, strings._("gui_tor_settings_window_title")) # Set up the tab widget self.setMovable(False) @@ -59,6 +59,7 @@ class SettingsParentTab(QtWidgets.QTabWidget): self.setUsesScrollButtons(False) self.setCurrentIndex(self.current_tab_id) + class TabBar(QtWidgets.QTabBar): """ A custom tab bar @@ -68,5 +69,4 @@ class TabBar(QtWidgets.QTabBar): def __init__(self, common): super(TabBar, self).__init__() - self.setStyleSheet(common.gui.css['settings_subtab_bar']) - + self.setStyleSheet(common.gui.css["settings_subtab_bar"]) diff --git a/desktop/onionshare/tab_widget.py b/desktop/onionshare/tab_widget.py index a9b34030..0a59c20d 100644 --- a/desktop/onionshare/tab_widget.py +++ b/desktop/onionshare/tab_widget.py @@ -226,7 +226,7 @@ class TabWidget(QtWidgets.QTabWidget): index = self.addTab(connection_tab, strings._("gui_autoconnect_start")) self.setCurrentIndex(index) - def open_settings_tab(self, from_autoconnect=False, active_tab='general'): + def open_settings_tab(self, from_autoconnect=False, active_tab="general"): self.common.log("TabWidget", "open_settings_tab") # See if a settings tab is already open, and if so switch to it @@ -240,7 +240,7 @@ class TabWidget(QtWidgets.QTabWidget): self.current_tab_id, active_tab=active_tab, parent=self, - from_autoconnect=from_autoconnect + from_autoconnect=from_autoconnect, ) settings_tab.close_this_tab.connect(self.close_settings_tab) self.tor_settings_tab = settings_tab.tor_settings_tab diff --git a/desktop/onionshare/tor_settings_tab.py b/desktop/onionshare/tor_settings_tab.py index 347dbcbf..0e72c3b8 100644 --- a/desktop/onionshare/tor_settings_tab.py +++ b/desktop/onionshare/tor_settings_tab.py @@ -43,7 +43,13 @@ class TorSettingsTab(QtWidgets.QWidget): tor_is_disconnected = QtCore.Signal() def __init__( - self, common, tab_id, are_tabs_active, status_bar, from_autoconnect=False, parent=None + self, + common, + tab_id, + are_tabs_active, + status_bar, + from_autoconnect=False, + parent=None, ): super(TorSettingsTab, self).__init__() -- cgit v1.2.3-54-g00ecf From bf0b962634fcf92676dd94b76a876de1f4da44a4 Mon Sep 17 00:00:00 2001 From: Micah Lee Date: Sun, 6 Mar 2022 11:52:05 -0800 Subject: Fix bug getting country code --- desktop/onionshare/connection_tab.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/desktop/onionshare/connection_tab.py b/desktop/onionshare/connection_tab.py index c1398cbd..2eb177ee 100644 --- a/desktop/onionshare/connection_tab.py +++ b/desktop/onionshare/connection_tab.py @@ -225,7 +225,7 @@ class AutoConnectTab(QtWidgets.QWidget): if self.use_bridge_widget.detect_automatic_radio.isChecked(): country = False else: - country = self.use_bridge_widget.country_code + country = self.use_bridge_widget.country_combobox.currentData().lower() self._censorship_progress_update( 50, strings._("gui_autoconnect_circumventing_censorship_starting_meek") -- cgit v1.2.3-54-g00ecf From dc812bd4d095905657a57108e97e181488d6c664 Mon Sep 17 00:00:00 2001 From: Micah Lee Date: Sun, 6 Mar 2022 11:54:38 -0800 Subject: Fix rocket ship graphic to have more fire --- .../resources/images/tor-connect-ship.png | Bin 22600 -> 23640 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/desktop/onionshare/resources/images/tor-connect-ship.png b/desktop/onionshare/resources/images/tor-connect-ship.png index 5b8ede8b..9dfeddb1 100644 Binary files a/desktop/onionshare/resources/images/tor-connect-ship.png and b/desktop/onionshare/resources/images/tor-connect-ship.png differ -- cgit v1.2.3-54-g00ecf From 102bbf8601c41a73a9bb6a97c13720a768f1ee1a Mon Sep 17 00:00:00 2001 From: Micah Lee Date: Sun, 6 Mar 2022 11:58:16 -0800 Subject: Move stars and planet right 40 pixels --- desktop/onionshare/connection_tab.py | 2 +- .../resources/images/tor-connect-stars.png | Bin 14135 -> 16064 bytes 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/desktop/onionshare/connection_tab.py b/desktop/onionshare/connection_tab.py index 2eb177ee..0f268a68 100644 --- a/desktop/onionshare/connection_tab.py +++ b/desktop/onionshare/connection_tab.py @@ -385,7 +385,7 @@ class AnimStars(Anim): def __init__(self, parent, window): super(AnimStars, self).__init__( - parent, window, 780, 629, "tor-connect-stars.png" + parent, window, 740, 629, "tor-connect-stars.png" ) def move(self): diff --git a/desktop/onionshare/resources/images/tor-connect-stars.png b/desktop/onionshare/resources/images/tor-connect-stars.png index 9aa1ad4f..c5c82cb7 100644 Binary files a/desktop/onionshare/resources/images/tor-connect-stars.png and b/desktop/onionshare/resources/images/tor-connect-stars.png differ -- cgit v1.2.3-54-g00ecf