From 1b41069068d93155db87ff053b99f91c8d1d8b32 Mon Sep 17 00:00:00 2001 From: Saturneric Date: Sat, 25 Feb 2023 19:15:32 +0800 Subject: [PATCH 01/35] feat: improve ci build config 1. upgrade to actions/cache@v3 2. codeql is now using qt6 --- .github/workflows/codeql-analysis.yml | 35 +++++++++------------------ .github/workflows/debug.yml | 2 +- .github/workflows/release.yml | 4 +-- 3 files changed, 14 insertions(+), 27 deletions(-) diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml index f196e58c..39a4f7bd 100644 --- a/.github/workflows/codeql-analysis.yml +++ b/.github/workflows/codeql-analysis.yml @@ -91,36 +91,23 @@ jobs: cd ${{github.workspace}} - name: Cache Qt - id: cache-qt - uses: actions/cache@v1 + id: cache-qt-6 + uses: actions/cache@v3 with: path: ../Qt - key: ${{ runner.os }}-QtCache + key: ${{ runner.os }}-qt-cache-6 - name: Install Qt - uses: jurplel/install-qt-action@v2 + uses: jurplel/install-qt-action@v3 with: + version: '6.4.2' + modules: 'qt5compat' cached: ${{ steps.cache-qt.outputs.cache-hit }} - - name: Configure CMake - # Configure CMake in a 'build' subdirectory. `CMAKE_BUILD_TYPE` is only required if you are using a single-configuration generator such as make. - # See https://cmake.org/cmake/help/latest/variable/CMAKE_BUILD_TYPE.html?highlight=cmake_build_type - run: cmake -G Ninja -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DGPGFRONTEND_BUILD_TYPE_TEST_UI=ON - - - name: Build GpgFrontend - # Build your program with the given configuration - run: cmake --build ${{github.workspace}}/build --config {{$env.BUILD_TYPE}} -- -v - - # ℹī¸ Command-line programs to run using the OS shell. - # 📚 https://git.io/JvXDl - - # ✏ī¸ If the Autobuild fails above, remove it and uncomment the following three lines - # and modify them (or add more) to build your code if your project - # uses a compiled language - - #- run: | - # make bootstrap - # make release + - name: Configure CMake && Build GpgFrontend + run: | + cmake -G Ninja -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DGPGFRONTEND_BUILD_TYPE_TEST_UI=ON + cmake --build ${{github.workspace}}/build --config {{$env.BUILD_TYPE}} -- -v - name: Perform CodeQL Analysis - uses: github/codeql-action/analyze@v1 + uses: github/codeql-action/analyze@v2 diff --git a/.github/workflows/debug.yml b/.github/workflows/debug.yml index 055347f0..8c140121 100644 --- a/.github/workflows/debug.yml +++ b/.github/workflows/debug.yml @@ -88,7 +88,7 @@ jobs: - name: Cache Qt id: cache-qt - uses: actions/cache@v1 + uses: actions/cache@v3 with: path: ../Qt key: ${{ runner.os }}-qt-cache-6 diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index d10dde2a..95d0f32a 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -96,7 +96,7 @@ jobs: - name: Cache Qt (macOS) id: cache-qt-6 - uses: actions/cache@v1 + uses: actions/cache@v3 with: path: ../Qt key: ${{ runner.os }}-qt-cache-6 @@ -147,7 +147,7 @@ jobs: - name: Cache Qt id: cache-qt - uses: actions/cache@v1 + uses: actions/cache@v3 with: path: ../Qt key: ${{ runner.os }}-QtCache From d455958c8dec692973b53c9815dd5fafbaed1914 Mon Sep 17 00:00:00 2001 From: Saturneric Date: Fri, 31 Mar 2023 00:05:23 +0800 Subject: [PATCH 02/35] fix: disable text cache in release mode --- src/ui/widgets/TextEdit.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/ui/widgets/TextEdit.cpp b/src/ui/widgets/TextEdit.cpp index 4947e179..d22c091a 100644 --- a/src/ui/widgets/TextEdit.cpp +++ b/src/ui/widgets/TextEdit.cpp @@ -603,6 +603,7 @@ void TextEdit::slot_save_status_to_cache_for_revovery() { text_page_data_modified_count_); if (this->text_page_data_modified_count_++ % 3 != 0) return; +#ifdef DEBUG int tab_count = tab_widget_->count(); SPDLOG_DEBUG("current tabs count {}", tab_count); @@ -635,6 +636,7 @@ void TextEdit::slot_save_status_to_cache_for_revovery() { tab_title, raw_text.size()); unsaved_pages.push_back({i, tab_title, raw_text}); } +#endif } } // namespace GpgFrontend::UI From 90fd5c69a4ae0ca0e8e05a27ef72fb122169421f Mon Sep 17 00:00:00 2001 From: Saturneric Date: Fri, 31 Mar 2023 00:05:51 +0800 Subject: [PATCH 03/35] feat: improve key generation ui operations --- src/ui/main_window/KeyMgmt.cpp | 45 ++++++++++++++-------------------- 1 file changed, 19 insertions(+), 26 deletions(-) diff --git a/src/ui/main_window/KeyMgmt.cpp b/src/ui/main_window/KeyMgmt.cpp index 9183d9d7..b5d80bee 100644 --- a/src/ui/main_window/KeyMgmt.cpp +++ b/src/ui/main_window/KeyMgmt.cpp @@ -241,35 +241,28 @@ void KeyMgmt::create_menus() { } void KeyMgmt::create_tool_bars() { - QToolBar* keyToolBar = addToolBar(_("Key")); - keyToolBar->setObjectName("keytoolbar"); + QToolBar* key_tool_bar = addToolBar(_("Key")); + key_tool_bar->setObjectName("keytoolbar"); - // add button with popup menu for import - auto* generateToolButton = new QToolButton(this); - generateToolButton->setMenu(generate_key_menu_); - generateToolButton->setPopupMode(QToolButton::InstantPopup); - generateToolButton->setIcon(QIcon(":key_generate.png")); - generateToolButton->setText(_("Generate")); - generateToolButton->setToolTip(_("Generate A New Keypair or Subkey")); - generateToolButton->setToolButtonStyle(icon_style_); - keyToolBar->addWidget(generateToolButton); + // genrate key pair + key_tool_bar->addAction(generate_key_pair_act_); // add button with popup menu for import - auto* toolButton = new QToolButton(this); - toolButton->setMenu(import_key_menu_); - toolButton->setPopupMode(QToolButton::InstantPopup); - toolButton->setIcon(QIcon(":key_import.png")); - toolButton->setToolTip(_("Import key")); - toolButton->setText(_("Import Key")); - toolButton->setToolButtonStyle(icon_style_); - keyToolBar->addWidget(toolButton); - - keyToolBar->addSeparator(); - keyToolBar->addAction(delete_checked_keys_act_); - keyToolBar->addSeparator(); - keyToolBar->addAction(export_key_to_file_act_); - keyToolBar->addAction(export_key_to_clipboard_act_); - keyToolBar->addAction(export_key_as_open_ssh_format_); + auto* tool_button = new QToolButton(this); + tool_button->setMenu(import_key_menu_); + tool_button->setPopupMode(QToolButton::InstantPopup); + tool_button->setIcon(QIcon(":key_import.png")); + tool_button->setToolTip(_("Import key")); + tool_button->setText(_("Import Key")); + tool_button->setToolButtonStyle(icon_style_); + key_tool_bar->addWidget(tool_button); + + key_tool_bar->addSeparator(); + key_tool_bar->addAction(delete_checked_keys_act_); + key_tool_bar->addSeparator(); + key_tool_bar->addAction(export_key_to_file_act_); + key_tool_bar->addAction(export_key_to_clipboard_act_); + key_tool_bar->addAction(export_key_as_open_ssh_format_); } void KeyMgmt::SlotDeleteSelectedKeys() { From b741fc6d1c68241ac178a881e7daeb60c27a451e Mon Sep 17 00:00:00 2001 From: Saturneric Date: Fri, 31 Mar 2023 00:06:26 +0800 Subject: [PATCH 04/35] feat: add an option to use pinentry --- src/core/GpgContext.cpp | 25 +++++++++++++++++-- src/ui/dialog/key_generate/KeygenDialog.cpp | 25 ++++++++++++++----- src/ui/dialog/key_generate/KeygenDialog.h | 1 + .../key_generate/SubkeyGenerateDialog.cpp | 25 +++++++++++++++---- .../key_generate/SubkeyGenerateDialog.h | 1 + src/ui/dialog/settings/SettingsGeneral.cpp | 21 ++++++++++++++++ 6 files changed, 85 insertions(+), 13 deletions(-) diff --git a/src/core/GpgContext.cpp b/src/core/GpgContext.cpp index a5213134..68aedf4a 100644 --- a/src/core/GpgContext.cpp +++ b/src/core/GpgContext.cpp @@ -40,6 +40,7 @@ #include "core/GpgModel.h" #include "core/common/CoreCommonUtil.h" #include "core/function/CoreSignalStation.h" +#include "core/function/GlobalSettingStation.h" #include "core/function/gpg/GpgCommandExecutor.h" #include "core/thread/TaskRunnerGetter.h" #include "thread/Task.h" @@ -219,8 +220,22 @@ void GpgContext::post_init_ctx() { // preload info auto &info = GetInfo(); - // listen passphrase input event - SetPassphraseCb(custom_passphrase_cb); + auto &settings = GlobalSettingStation::GetInstance().GetUISettings(); + + bool use_pinentry_as_password_input_dialog = false; + try { + use_pinentry_as_password_input_dialog = + settings.lookup("general.use_pinentry_as_password_input_dialog"); + } catch (...) { + SPDLOG_ERROR( + "setting operation error: use_pinentry_as_password_input_dialog"); + } + + // use custom qt dialog to replace pinentry + if (!use_pinentry_as_password_input_dialog) { + SetPassphraseCb(custom_passphrase_cb); + } + connect(this, &GpgContext::SignalNeedUserInputPassphrase, CoreSignalStation::GetInstance(), &CoreSignalStation::SignalNeedUserInputPassphrase); @@ -372,6 +387,12 @@ const GpgInfo &GpgContext::GetInfo(bool refresh) { auto component_name = info_split_list[0]; auto component_desc = info_split_list[1]; auto component_path = info_split_list[2]; + +#ifdef WINDOWS + // replace some special substrings on windows platform + boost::replace_all(component_path, "%3a", ":"); +#endif + auto binary_checksum = check_binary_chacksum(component_path); SPDLOG_DEBUG( diff --git a/src/ui/dialog/key_generate/KeygenDialog.cpp b/src/ui/dialog/key_generate/KeygenDialog.cpp index d6f61215..f103f0b1 100644 --- a/src/ui/dialog/key_generate/KeygenDialog.cpp +++ b/src/ui/dialog/key_generate/KeygenDialog.cpp @@ -53,6 +53,16 @@ KeyGenDialog::KeyGenDialog(QWidget* parent) SPDLOG_ERROR("setting operation error: longer_expiration_date"); } + bool use_pinentry_as_password_input_dialog = false; + try { + use_pinentry_as_password_input_dialog = + settings.lookup("general.use_pinentry_as_password_input_dialog"); + } catch (...) { + SPDLOG_ERROR( + "setting operation error: use_pinentry_as_password_input_dialog"); + } + use_pinentry_ = use_pinentry_as_password_input_dialog; + max_date_time_ = longer_expiration_date ? QDateTime::currentDateTime().toLocalTime().addYears(30) : QDateTime::currentDateTime().toLocalTime().addYears(2); @@ -111,7 +121,8 @@ void KeyGenDialog::slot_key_gen_accept() { error_stream << " " << _("Expiration time too long.") << std::endl; } - if (passphrase_edit_->isEnabled() && passphrase_edit_->text().size() == 0) { + if (!use_pinentry_ && passphrase_edit_->isEnabled() && + passphrase_edit_->text().size() == 0) { error_stream << " " << _("Password is empty.") << std::endl; } @@ -139,7 +150,7 @@ void KeyGenDialog::slot_key_gen_accept() { #endif } - if (!gen_key_info_->IsNoPassPhrase()) { + if (!use_pinentry_ && !gen_key_info_->IsNoPassPhrase()) { CoreCommonUtil::GetInstance()->SetTempCacheValue( "__key_passphrase", this->passphrase_edit_->text().toStdString()); } @@ -160,7 +171,7 @@ void KeyGenDialog::slot_key_gen_accept() { dialog->close(); - if (!gen_key_info_->IsNoPassPhrase()) { + if (!use_pinentry_ && !gen_key_info_->IsNoPassPhrase()) { CoreCommonUtil::GetInstance()->ResetTempCacheValue("__key_passphrase"); } @@ -391,6 +402,7 @@ QGroupBox* KeyGenDialog::create_basic_info_group_box() { expire_check_box_->setCheckState(Qt::Unchecked); passphrase_edit_->setEchoMode(QLineEdit::Password); + passphrase_edit_->setHidden(use_pinentry_); no_pass_phrase_check_box_ = new QCheckBox(this); no_pass_phrase_check_box_->setCheckState(Qt::Unchecked); @@ -404,8 +416,9 @@ QGroupBox* KeyGenDialog::create_basic_info_group_box() { vbox1->addWidget(new QLabel(QString(_("Never Expire")) + ": "), 3, 3); vbox1->addWidget(new QLabel(QString(_("KeySize (in Bit)")) + ": "), 4, 0); vbox1->addWidget(new QLabel(QString(_("Key Type")) + ": "), 5, 0); - vbox1->addWidget(new QLabel(QString(_("Password")) + ": "), 6, 0); - vbox1->addWidget(new QLabel(QString(_("Non Pass Phrase")) + ": "), 6, 3); + if (!use_pinentry_) + vbox1->addWidget(new QLabel(QString(_("Password")) + ": "), 6, 0); + vbox1->addWidget(new QLabel(QString(_("Non Pass Phrase"))), 6, 3); vbox1->addWidget(name_edit_, 0, 1, 1, 3); vbox1->addWidget(email_edit_, 1, 1, 1, 3); @@ -414,7 +427,7 @@ QGroupBox* KeyGenDialog::create_basic_info_group_box() { vbox1->addWidget(expire_check_box_, 3, 2); vbox1->addWidget(key_size_spin_box_, 4, 1); vbox1->addWidget(key_type_combo_box_, 5, 1); - vbox1->addWidget(passphrase_edit_, 6, 1); + if (!use_pinentry_) vbox1->addWidget(passphrase_edit_, 6, 1); vbox1->addWidget(no_pass_phrase_check_box_, 6, 2); auto basicInfoGroupBox = new QGroupBox(); diff --git a/src/ui/dialog/key_generate/KeygenDialog.h b/src/ui/dialog/key_generate/KeygenDialog.h index a1d7f39a..31b5f9c7 100644 --- a/src/ui/dialog/key_generate/KeygenDialog.h +++ b/src/ui/dialog/key_generate/KeygenDialog.h @@ -103,6 +103,7 @@ class KeyGenDialog : public GeneralDialog { ///< of the Key QDateTime max_date_time_; ///< std::vector key_usage_check_boxes_; ///< ENCR, SIGN, CERT, AUTH + bool use_pinentry_ = false; /** * @brief diff --git a/src/ui/dialog/key_generate/SubkeyGenerateDialog.cpp b/src/ui/dialog/key_generate/SubkeyGenerateDialog.cpp index 50f38413..1569fc5d 100644 --- a/src/ui/dialog/key_generate/SubkeyGenerateDialog.cpp +++ b/src/ui/dialog/key_generate/SubkeyGenerateDialog.cpp @@ -52,6 +52,16 @@ SubkeyGenerateDialog::SubkeyGenerateDialog(const KeyId& key_id, QWidget* parent) SPDLOG_ERROR("setting operation error: longer_expiration_date"); } + bool use_pinentry_as_password_input_dialog = false; + try { + use_pinentry_as_password_input_dialog = + settings.lookup("general.use_pinentry_as_password_input_dialog"); + } catch (...) { + SPDLOG_ERROR( + "setting operation error: use_pinentry_as_password_input_dialog"); + } + use_pinentry_ = use_pinentry_as_password_input_dialog; + max_date_time_ = longer_expiration_date ? QDateTime::currentDateTime().toLocalTime().addYears(30) : QDateTime::currentDateTime().toLocalTime().addYears(2); @@ -148,20 +158,24 @@ QGroupBox* SubkeyGenerateDialog::create_basic_info_group_box() { expire_check_box_ = new QCheckBox(this); expire_check_box_->setCheckState(Qt::Unchecked); + passphrase_edit_->setEchoMode(QLineEdit::Password); + passphrase_edit_->setHidden(use_pinentry_); + auto* vbox1 = new QGridLayout; vbox1->addWidget(new QLabel(QString(_("Key Type")) + ": "), 0, 0); vbox1->addWidget(new QLabel(QString(_("KeySize (in Bit)")) + ": "), 1, 0); vbox1->addWidget(new QLabel(QString(_("Expiration Date")) + ": "), 2, 0); vbox1->addWidget(new QLabel(QString(_("Never Expire"))), 2, 3); - vbox1->addWidget(new QLabel(QString(_("Password")) + ": "), 3, 0); + if (!use_pinentry_) + vbox1->addWidget(new QLabel(QString(_("Password")) + ": "), 3, 0); vbox1->addWidget(new QLabel(QString(_("Non Pass Phrase"))), 3, 3); vbox1->addWidget(key_type_combo_box_, 0, 1); vbox1->addWidget(key_size_spin_box_, 1, 1); vbox1->addWidget(date_edit_, 2, 1); vbox1->addWidget(expire_check_box_, 2, 2); - vbox1->addWidget(passphrase_edit_, 3, 1); + if (!use_pinentry_) vbox1->addWidget(passphrase_edit_, 3, 1); vbox1->addWidget(no_pass_phrase_check_box_, 3, 2); auto basicInfoGroupBox = new QGroupBox(); @@ -265,7 +279,8 @@ void SubkeyGenerateDialog::slot_key_gen_accept() { err_stream << " " << _("Expiration time no more than 2 years.") << " "; } - if (passphrase_edit_->isEnabled() && passphrase_edit_->text().size() == 0) { + if (!use_pinentry_ && passphrase_edit_->isEnabled() && + passphrase_edit_->text().size() == 0) { err_stream << " " << _("Password is empty.") << std::endl; } @@ -286,7 +301,7 @@ void SubkeyGenerateDialog::slot_key_gen_accept() { #endif } - if (!gen_key_info_->IsNoPassPhrase()) { + if (!use_pinentry_ && !gen_key_info_->IsNoPassPhrase()) { CoreCommonUtil::GetInstance()->SetTempCacheValue( "__key_passphrase", this->passphrase_edit_->text().toStdString()); } @@ -307,7 +322,7 @@ void SubkeyGenerateDialog::slot_key_gen_accept() { } waiting_dialog->close(); - if (!gen_key_info_->IsNoPassPhrase()) { + if (!use_pinentry_ && !gen_key_info_->IsNoPassPhrase()) { CoreCommonUtil::GetInstance()->ResetTempCacheValue("__key_passphrase"); } diff --git a/src/ui/dialog/key_generate/SubkeyGenerateDialog.h b/src/ui/dialog/key_generate/SubkeyGenerateDialog.h index 731bb951..2b88bd61 100644 --- a/src/ui/dialog/key_generate/SubkeyGenerateDialog.h +++ b/src/ui/dialog/key_generate/SubkeyGenerateDialog.h @@ -74,6 +74,7 @@ class SubkeyGenerateDialog : public GeneralDialog { std::vector key_usage_check_boxes_; ///< ENCR, SIGN, CERT, AUTH QDateTime max_date_time_; ///< + bool use_pinentry_ = false; /** * @brief Create a key usage group box object diff --git a/src/ui/dialog/settings/SettingsGeneral.cpp b/src/ui/dialog/settings/SettingsGeneral.cpp index 7e48b4e1..623dae79 100644 --- a/src/ui/dialog/settings/SettingsGeneral.cpp +++ b/src/ui/dialog/settings/SettingsGeneral.cpp @@ -57,6 +57,8 @@ GeneralTab::GeneralTab(QWidget* parent) ui_->gnupgDatabaseBox->setTitle(_("GnuPG")); ui_->asciiModeCheckBox->setText(_("No ASCII Mode")); + ui_->usePinentryAsPasswordInputDialogCheckBox->setText( + _("Use Pinentry as Password Input Dialog")); ui_->useCustomGnuPGInstallPathCheckBox->setText(_("Use Custom GnuPG")); ui_->useCustomGnuPGInstallPathButton->setText(_("Select GnuPG Path")); ui_->keyDatabseUseCustomCheckBox->setText( @@ -260,6 +262,16 @@ void GeneralTab::SetSettings() { SPDLOG_ERROR("setting operation error: use_custom_gnupg_install_path"); } + try { + bool use_pinentry_as_password_input_dialog = + settings.lookup("general.use_pinentry_as_password_input_dialog"); + if (use_pinentry_as_password_input_dialog) + ui_->usePinentryAsPasswordInputDialogCheckBox->setCheckState(Qt::Checked); + } catch (...) { + SPDLOG_ERROR( + "setting operation error: use_pinentry_as_password_input_dialog"); + } + this->slot_update_custom_gnupg_install_path_label( ui_->useCustomGnuPGInstallPathCheckBox->checkState()); } @@ -343,6 +355,15 @@ void GeneralTab::ApplySettings() { general["use_custom_gnupg_install_path"] = ui_->useCustomGnuPGInstallPathCheckBox->isChecked(); } + + if (!general.exists("use_pinentry_as_password_input_dialog")) + general.add("use_pinentry_as_password_input_dialog", + libconfig::Setting::TypeBoolean) = + ui_->usePinentryAsPasswordInputDialogCheckBox->isChecked(); + else { + general["use_pinentry_as_password_input_dialog"] = + ui_->usePinentryAsPasswordInputDialogCheckBox->isChecked(); + } } #ifdef MULTI_LANG_SUPPORT From 19dafd545e14ff16cc19a8f2df5b7611c1224ba2 Mon Sep 17 00:00:00 2001 From: Saturneric Date: Fri, 31 Mar 2023 00:06:48 +0800 Subject: [PATCH 05/35] feat: update ui of general settings --- ui/GeneralSettings.ui | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/ui/GeneralSettings.ui b/ui/GeneralSettings.ui index 75aef6b2..668d3396 100644 --- a/ui/GeneralSettings.ui +++ b/ui/GeneralSettings.ui @@ -85,6 +85,13 @@ + + + + Use Pinentry as Password Input Dialog + + + From d2ff4d0ad8144702ef7b5945f531aff0c4e51101 Mon Sep 17 00:00:00 2001 From: Saturneric Date: Fri, 31 Mar 2023 01:13:52 +0800 Subject: [PATCH 06/35] fix: solve issues in proxy configure --- src/ui/GpgFrontendUIInit.cpp | 57 ++++++++++++++ src/ui/dialog/settings/SettingsNetwork.cpp | 45 +++++------ src/ui/thread/ProxyConnectionTestTask.cpp | 74 +++++++++++++++++++ ...TestThread.h => ProxyConnectionTestTask.h} | 16 ++-- src/ui/thread/ProxyConnectionTestThread.cpp | 58 --------------- 5 files changed, 163 insertions(+), 87 deletions(-) create mode 100644 src/ui/thread/ProxyConnectionTestTask.cpp rename src/ui/thread/{ProxyConnectionTestThread.h => ProxyConnectionTestTask.h} (81%) delete mode 100644 src/ui/thread/ProxyConnectionTestThread.cpp diff --git a/src/ui/GpgFrontendUIInit.cpp b/src/ui/GpgFrontendUIInit.cpp index 6e41f81f..d363f886 100644 --- a/src/ui/GpgFrontendUIInit.cpp +++ b/src/ui/GpgFrontendUIInit.cpp @@ -71,6 +71,63 @@ void InitGpgFrontendUI(QApplication* app) { // init common utils CommonUtils::GetInstance(); + // application proxy configure + + auto& settings = GlobalSettingStation::GetInstance().GetUISettings(); + bool proxy_enable = false; + try { + proxy_enable = settings.lookup("proxy.enable"); + } catch (...) { + SPDLOG_ERROR("setting operation error: proxy_enable"); + } + SPDLOG_DEBUG("loading proxy configure, proxy_enable: {}", proxy_enable); + + // if enable proxy for application + if (proxy_enable) { + try { + std::string proxy_type = settings.lookup("proxy.proxy_type"); + std::string proxy_host = settings.lookup("proxy.proxy_host"); + int proxy_port = settings.lookup("proxy.port"); + std::string proxy_username = settings.lookup("proxy.username"); + std::string proxy_password = settings.lookup("proxy.password"); + + SPDLOG_DEBUG("proxy settings: type {}, host {}, port: {}", proxy_type, + proxy_host, proxy_port); + + QNetworkProxy::ProxyType proxy_type_qt = QNetworkProxy::NoProxy; + if (proxy_type == "HTTP") { + proxy_type_qt = QNetworkProxy::HttpProxy; + } else if (proxy_type == "Socks5") { + proxy_type_qt = QNetworkProxy::Socks5Proxy; + } else { + proxy_type_qt = QNetworkProxy::DefaultProxy; + } + + // create proxy object and apply settings + QNetworkProxy proxy; + if (proxy_type_qt != QNetworkProxy::DefaultProxy) { + proxy.setType(proxy_type_qt); + proxy.setHostName(QString::fromStdString(proxy_host)); + proxy.setPort(proxy_port); + if (!proxy_username.empty()) + proxy.setUser(QString::fromStdString(proxy_username)); + if (!proxy_password.empty()) + proxy.setPassword(QString::fromStdString(proxy_password)); + } else { + proxy.setType(proxy_type_qt); + } + QNetworkProxy::setApplicationProxy(proxy); + + } catch (...) { + SPDLOG_ERROR("setting operation error: proxy setings"); + // no proxy by default + QNetworkProxy::setApplicationProxy(QNetworkProxy::NoProxy); + } + } else { + // no proxy by default + QNetworkProxy::setApplicationProxy(QNetworkProxy::NoProxy); + } + // create the thread to load the gpg context auto* init_ctx_task = new Thread::CtxCheckTask(); diff --git a/src/ui/dialog/settings/SettingsNetwork.cpp b/src/ui/dialog/settings/SettingsNetwork.cpp index fe3d450e..855cafbf 100644 --- a/src/ui/dialog/settings/SettingsNetwork.cpp +++ b/src/ui/dialog/settings/SettingsNetwork.cpp @@ -29,7 +29,7 @@ #include "SettingsNetwork.h" #include "core/function/GlobalSettingStation.h" -#include "ui/thread/ProxyConnectionTestThread.h" +#include "ui/thread/ProxyConnectionTestTask.h" #include "ui_NetworkSettings.h" GpgFrontend::UI::NetworkTab::NetworkTab(QWidget *parent) @@ -148,6 +148,8 @@ void GpgFrontend::UI::NetworkTab::SetSettings() { } catch (...) { SPDLOG_ERROR("setting operation error: prohibit_update_checking"); } + + switch_ui_proxy_type(ui_->proxyTypeComboBox->currentText()); } void GpgFrontend::UI::NetworkTab::ApplySettings() { @@ -232,9 +234,9 @@ void GpgFrontend::UI::NetworkTab::slot_test_proxy_connection_result() { tr("Server Url"), QLineEdit::Normal, "https://", &ok); if (ok && !url.isEmpty()) { - auto thread = new ProxyConnectionTestThread(url, 800, this); - connect(thread, - &GpgFrontend::UI::ProxyConnectionTestThread:: + auto task = new ProxyConnectionTestTask(url, 800); + connect(task, + &GpgFrontend::UI::ProxyConnectionTestTask:: SignalProxyConnectionTestResult, this, [=](const QString &result) { if (result == "Reachable") { @@ -248,7 +250,6 @@ void GpgFrontend::UI::NetworkTab::slot_test_proxy_connection_result() { "proxy server. Proxy settings may be invalid.")); } }); - connect(thread, &QThread::finished, thread, &QThread::deleteLater); // Waiting Dialog auto *waiting_dialog = new QProgressDialog(this); @@ -261,43 +262,43 @@ void GpgFrontend::UI::NetworkTab::slot_test_proxy_connection_result() { waiting_dialog_label->setWordWrap(true); waiting_dialog->setLabel(waiting_dialog_label); waiting_dialog->resize(420, 120); - connect(thread, &QThread::finished, [=]() { - waiting_dialog->finished(0); + connect(task, &Thread::Task::SignalTaskEnd, [=]() { + waiting_dialog->close(); waiting_dialog->deleteLater(); }); - connect(waiting_dialog, &QProgressDialog::canceled, [=]() { - SPDLOG_DEBUG("cancel clicked"); - if (thread->isRunning()) thread->terminate(); - }); // Show Waiting Dialog waiting_dialog->show(); waiting_dialog->setFocus(); - thread->start(); + Thread::TaskRunnerGetter::GetInstance() + .GetTaskRunner(Thread::TaskRunnerGetter::kTaskRunnerType_Network) + ->PostTask(task); + QEventLoop loop; - connect(thread, &QThread::finished, &loop, &QEventLoop::quit); + connect(task, &Thread::Task::SignalTaskEnd, &loop, &QEventLoop::quit); + connect(waiting_dialog, &QProgressDialog::canceled, &loop, + &QEventLoop::quit); loop.exec(); } } void GpgFrontend::UI::NetworkTab::apply_proxy_settings() { // apply settings - QNetworkProxy _proxy; + QNetworkProxy proxy; if (ui_->enableProxyCheckBox->isChecked() && proxy_type_ != QNetworkProxy::DefaultProxy) { - _proxy.setType(proxy_type_); - _proxy.setHostName(ui_->proxyServerAddressEdit->text()); - _proxy.setPort(ui_->portSpin->value()); + proxy.setType(proxy_type_); + proxy.setHostName(ui_->proxyServerAddressEdit->text()); + proxy.setPort(ui_->portSpin->value()); if (!ui_->usernameEdit->text().isEmpty()) { - _proxy.setUser(ui_->usernameEdit->text()); - _proxy.setPassword(ui_->passwordEdit->text()); + proxy.setUser(ui_->usernameEdit->text()); + proxy.setPassword(ui_->passwordEdit->text()); } } else { - _proxy.setType(proxy_type_); + proxy.setType(proxy_type_); } - - QNetworkProxy::setApplicationProxy(_proxy); + QNetworkProxy::setApplicationProxy(proxy); } void GpgFrontend::UI::NetworkTab::switch_ui_enabled(bool enabled) { diff --git a/src/ui/thread/ProxyConnectionTestTask.cpp b/src/ui/thread/ProxyConnectionTestTask.cpp new file mode 100644 index 00000000..c7d623d7 --- /dev/null +++ b/src/ui/thread/ProxyConnectionTestTask.cpp @@ -0,0 +1,74 @@ +/** + * Copyright (C) 2021 Saturneric + * + * This file is part of GpgFrontend. + * + * GpgFrontend 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. + * + * GpgFrontend 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 GpgFrontend. If not, see . + * + * The initial version of the source code is inherited from + * the gpg4usb project, which is under GPL-3.0-or-later. + * + * The source code version of this software was modified and released + * by Saturneric starting on May 12, 2021. + * + */ + +#include "ProxyConnectionTestTask.h" + +GpgFrontend::UI::ProxyConnectionTestTask::ProxyConnectionTestTask(QString url, + int timeout) + : Task("proxy_connection_test_task"), + url_(std::move(url)), + timeout_(timeout), + network_manager_(new QNetworkAccessManager(this)) {} + +void GpgFrontend::UI::ProxyConnectionTestTask::run() { + SetFinishAfterRun(false); + + auto* network_reply = network_manager_->get(QNetworkRequest{url_}); + auto* timer = new QTimer(this); + + connect(network_reply, &QNetworkReply::finished, this, + [this, network_reply]() { + SPDLOG_DEBUG("key server domain reply: {} received", + url_.toStdString()); + this->slot_process_network_reply(network_reply); + }); + + connect(timer, &QTimer::timeout, this, [this, network_reply]() { + SPDLOG_DEBUG("timeout for key server: {}", url_.toStdString()); + if (network_reply->isRunning()) { + network_reply->abort(); + this->slot_process_network_reply(network_reply); + } + }); + + timer->start(timeout_); +} + +void GpgFrontend::UI::ProxyConnectionTestTask::slot_process_network_reply( + QNetworkReply* reply) { + auto buffer = reply->readAll(); + SPDLOG_DEBUG("key server domain reply: {}, buffer size: {}", + url_.toStdString(), buffer.size()); + + if (reply->error() == QNetworkReply::NoError && !buffer.isEmpty()) { + result_ = "Reachable"; + } else { + result_ = "Not Reachable"; + } + + emit SignalProxyConnectionTestResult(result_); + emit SignalTaskRunnableEnd(0); +} diff --git a/src/ui/thread/ProxyConnectionTestThread.h b/src/ui/thread/ProxyConnectionTestTask.h similarity index 81% rename from src/ui/thread/ProxyConnectionTestThread.h rename to src/ui/thread/ProxyConnectionTestTask.h index 70757e03..38e78ae4 100644 --- a/src/ui/thread/ProxyConnectionTestThread.h +++ b/src/ui/thread/ProxyConnectionTestTask.h @@ -39,7 +39,7 @@ namespace GpgFrontend::UI { * @brief * */ -class ProxyConnectionTestThread : public QThread { +class ProxyConnectionTestTask : public Thread::Task { Q_OBJECT public: /** @@ -49,9 +49,7 @@ class ProxyConnectionTestThread : public QThread { * @param timeout * @param parent */ - explicit ProxyConnectionTestThread(QString url, int timeout, - QWidget* parent = nullptr) - : QThread(parent), url_(std::move(url)), timeout_(timeout) {} + explicit ProxyConnectionTestTask(QString url, int timeout); signals: /** @@ -68,10 +66,14 @@ class ProxyConnectionTestThread : public QThread { */ void run() override; + private slots: + void slot_process_network_reply(QNetworkReply* reply); + private: - QString url_; ///< - QString result_; ///< - int timeout_ = 500; ///< + QString url_; ///< + QString result_; ///< + int timeout_ = 500; ///< + QNetworkAccessManager* network_manager_; ///< }; } // namespace GpgFrontend::UI diff --git a/src/ui/thread/ProxyConnectionTestThread.cpp b/src/ui/thread/ProxyConnectionTestThread.cpp deleted file mode 100644 index 8b113453..00000000 --- a/src/ui/thread/ProxyConnectionTestThread.cpp +++ /dev/null @@ -1,58 +0,0 @@ -/** - * Copyright (C) 2021 Saturneric - * - * This file is part of GpgFrontend. - * - * GpgFrontend 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. - * - * GpgFrontend 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 GpgFrontend. If not, see . - * - * The initial version of the source code is inherited from - * the gpg4usb project, which is under GPL-3.0-or-later. - * - * The source code version of this software was modified and released - * by Saturneric starting on May 12, 2021. - * - */ - -#include "ProxyConnectionTestThread.h" - -void GpgFrontend::UI::ProxyConnectionTestThread::run() { - QNetworkProxyQuery npq({QUrl(url_)}); - auto proxies_list = QNetworkProxyFactory::systemProxyForQuery(npq); - - if (proxies_list.isEmpty()) { - SPDLOG_DEBUG("no proxy applied"); - } else { - SPDLOG_DEBUG("proxies list hostname: {}", - proxies_list.front().hostName().toStdString()); - } - - SPDLOG_DEBUG("proxies list size: {}", proxies_list.size()); - - auto manager = std::make_unique(nullptr); - QNetworkRequest url_request; - url_request.setUrl(QUrl(url_)); - auto _reply = manager->get(url_request); - - while (_reply->isRunning()) QApplication::processEvents(); - auto _buffer = _reply->readAll(); - if (_reply->error() == QNetworkReply::NoError && !_buffer.isEmpty()) { - result_ = "Reachable"; - } else { - result_ = "Not Reachable"; - } - - _reply->deleteLater(); - - emit SignalProxyConnectionTestResult(result_); -} From beca689a1b8eb1ee9fdce82a6e020db37cd81d80 Mon Sep 17 00:00:00 2001 From: Saturneric Date: Fri, 31 Mar 2023 01:14:22 +0800 Subject: [PATCH 07/35] fix: improve ui of about menu --- src/ui/main_window/MainWindowUI.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ui/main_window/MainWindowUI.cpp b/src/ui/main_window/MainWindowUI.cpp index b9a01c15..d598f3ab 100644 --- a/src/ui/main_window/MainWindowUI.cpp +++ b/src/ui/main_window/MainWindowUI.cpp @@ -464,8 +464,8 @@ void MainWindow::create_menus() { help_menu_->addAction(start_wizard_act_); help_menu_->addSeparator(); help_menu_->addAction(check_update_act_); - help_menu_->addAction(translate_act_); help_menu_->addAction(gnupg_act_); + help_menu_->addAction(translate_act_); help_menu_->addAction(about_act_); } From 19c787b426e9a8c22f481223a93af163f6ef15ac Mon Sep 17 00:00:00 2001 From: Saturneric Date: Fri, 31 Mar 2023 01:17:07 +0800 Subject: [PATCH 08/35] fix: correct ui representation --- src/ui/dialog/help/AboutDialog.cpp | 6 +++--- src/ui/dialog/settings/SettingsGeneral.cpp | 8 +++++++- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/src/ui/dialog/help/AboutDialog.cpp b/src/ui/dialog/help/AboutDialog.cpp index 3cf6c2a2..6bd0fa49 100644 --- a/src/ui/dialog/help/AboutDialog.cpp +++ b/src/ui/dialog/help/AboutDialog.cpp @@ -83,9 +83,9 @@ InfoTab::InfoTab(QWidget* parent) : QWidget(parent) { "
" + qApp->applicationVersion() + "
" + "
" + GIT_VERSION + "
" + "
" + _("GpgFrontend is an easy-to-use, compact, cross-platform, " - "and installation-free gpg front-end tool." - "It visualizes most of the common operations of gpg commands." - "It's licensed under the GPL v3") + + "and installation-free GnuPG Frontend." + "It visualizes most of the common operations of GnuPG." + "GpgFrontend is licensed under the GPLv3") + "

" "" + _("Developer:") + "
" + "Saturneric" + "

" + diff --git a/src/ui/dialog/settings/SettingsGeneral.cpp b/src/ui/dialog/settings/SettingsGeneral.cpp index 623dae79..17d9251c 100644 --- a/src/ui/dialog/settings/SettingsGeneral.cpp +++ b/src/ui/dialog/settings/SettingsGeneral.cpp @@ -47,7 +47,7 @@ GeneralTab::GeneralTab(QWidget* parent) ui_->saveCheckedKeysCheckBox->setText( _("Save checked private keys on exit and restore them on next start.")); ui_->clearGpgPasswordCacheCheckBox->setText( - "Clear gpg password cache when closing GpgFrontend."); + _("Clear gpg password cache when closing GpgFrontend.")); ui_->importConfirmationBox->setTitle(_("Operation")); ui_->longerKeyExpirationDateCheckBox->setText( @@ -169,6 +169,12 @@ GeneralTab::GeneralTab(QWidget* parent) } }); + connect(ui_->usePinentryAsPasswordInputDialogCheckBox, + &QCheckBox::stateChanged, this, [=](int state) { + // announce the restart + this->slot_gnupg_stettings_changed(); + }); + SetSettings(); } From 4d3076ebc1cb2c10fb94721ce55c83238a205d8b Mon Sep 17 00:00:00 2001 From: Saturneric Date: Fri, 31 Mar 2023 01:22:42 +0800 Subject: [PATCH 09/35] fix: solve export key filename issues on windows --- .../dialog/keypair_details/KeyPairOperaTab.cpp | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/src/ui/dialog/keypair_details/KeyPairOperaTab.cpp b/src/ui/dialog/keypair_details/KeyPairOperaTab.cpp index a1452033..59f3f7cf 100644 --- a/src/ui/dialog/keypair_details/KeyPairOperaTab.cpp +++ b/src/ui/dialog/keypair_details/KeyPairOperaTab.cpp @@ -147,8 +147,13 @@ void KeyPairOperaTab::slot_export_public_key() { } // generate a file name +#ifndef WINDOWS auto file_string = m_key_.GetName() + "<" + m_key_.GetEmail() + ">(" + m_key_.GetId() + ")_pub.asc"; +#else + auto file_string = m_key_.GetName() + "[" + m_key_.GetEmail() + "](" + + m_key_.GetId() + ")_pub.asc"; +#endif std::replace(file_string.begin(), file_string.end(), ' ', '_'); auto file_name = @@ -193,8 +198,14 @@ void KeyPairOperaTab::slot_export_short_private_key() { return; } + // generate a file name +#ifndef WINDOWS auto file_string = m_key_.GetName() + "<" + m_key_.GetEmail() + ">(" + m_key_.GetId() + ")_short_secret.asc"; +#else + auto file_string = m_key_.GetName() + "[" + m_key_.GetEmail() + "](" + + m_key_.GetId() + ")_short_secret.asc"; +#endif std::replace(file_string.begin(), file_string.end(), ' ', '_'); auto file_name = @@ -235,8 +246,15 @@ void KeyPairOperaTab::slot_export_private_key() { _("An error occurred during the export operation.")); return; } + + // generate a file name +#ifndef WINDOWS auto file_string = m_key_.GetName() + "<" + m_key_.GetEmail() + ">(" + m_key_.GetId() + ")_full_secret.asc"; +#else + auto file_string = m_key_.GetName() + "[" + m_key_.GetEmail() + "](" + + m_key_.GetId() + ")_full_secret.asc"; +#endif std::replace(file_string.begin(), file_string.end(), ' ', '_'); auto file_name = From 2294175e8235dc9ea2984e92aed701da176a3016 Mon Sep 17 00:00:00 2001 From: Saturneric Date: Fri, 31 Mar 2023 01:31:40 +0800 Subject: [PATCH 10/35] feat: add openssl build version at about tab --- src/ui/dialog/help/AboutDialog.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/ui/dialog/help/AboutDialog.cpp b/src/ui/dialog/help/AboutDialog.cpp index 6bd0fa49..548ba47a 100644 --- a/src/ui/dialog/help/AboutDialog.cpp +++ b/src/ui/dialog/help/AboutDialog.cpp @@ -28,6 +28,8 @@ #include "AboutDialog.h" +#include + #include "GpgFrontendBuildInfo.h" #include "core/function/GlobalSettingStation.h" #include "core/thread/TaskRunnerGetter.h" @@ -94,7 +96,8 @@ InfoTab::InfoTab(QWidget* parent) : QWidget(parent) { " GitHub " + _("or send a mail to my mailing list at") + " eric@bktus.com." + "

" + - _("Built with Qt") + " " + qVersion() + " " + _("and GPGME") + " " + + _("Built with Qt") + " " + qVersion() + ", " + OPENSSL_VERSION_TEXT + + " " + _("and") + "GPGME" + " " + GpgFrontend::GpgContext::GetInstance() .GetInfo(false) .GpgMEVersion.c_str() + From 49085efe836970079ecfeca64f5cb4d39d3ccecc Mon Sep 17 00:00:00 2001 From: Saturneric Date: Fri, 31 Mar 2023 01:31:53 +0800 Subject: [PATCH 11/35] feat: add log for debug --- src/ui/GpgFrontendApplication.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/ui/GpgFrontendApplication.cpp b/src/ui/GpgFrontendApplication.cpp index 1b2bb9ad..3697adde 100644 --- a/src/ui/GpgFrontendApplication.cpp +++ b/src/ui/GpgFrontendApplication.cpp @@ -59,9 +59,11 @@ GpgFrontendApplication *GpgFrontendApplication::GetInstance(int argc, if (new_instance || !instance) { if (instance != nullptr) { + SPDLOG_DEBUG("old application exists, quitting..."); instance->quit(); delete instance; } + SPDLOG_DEBUG("creating new application instance, argc: {}", argc); instance = new GpgFrontendApplication(static_argc, static_argv); } return instance; From 4c6a7e7e1782ec14c57ba1c794003053a00df4bb Mon Sep 17 00:00:00 2001 From: Saturneric Date: Fri, 31 Mar 2023 04:01:14 +0800 Subject: [PATCH 12/35] fix: solve checksum issues on windows --- src/core/GpgContext.cpp | 79 ++++++++++++++++++++++++++++++++++------- 1 file changed, 66 insertions(+), 13 deletions(-) diff --git a/src/core/GpgContext.cpp b/src/core/GpgContext.cpp index 68aedf4a..5d3b53e5 100644 --- a/src/core/GpgContext.cpp +++ b/src/core/GpgContext.cpp @@ -388,6 +388,10 @@ const GpgInfo &GpgContext::GetInfo(bool refresh) { auto component_desc = info_split_list[1]; auto component_path = info_split_list[2]; + boost::algorithm::trim(component_name); + boost::algorithm::trim(component_desc); + boost::algorithm::trim(component_path); + #ifdef WINDOWS // replace some special substrings on windows platform boost::replace_all(component_path, "%3a", ":"); @@ -407,13 +411,13 @@ const GpgInfo &GpgContext::GetInfo(bool refresh) { version = info_.GnupgVersion; } if (component_name == "gpg-agent") { - info_.GpgAgentPath = info_split_list[2]; + info_.GpgAgentPath = component_path; } if (component_name == "dirmngr") { - info_.DirmngrPath = info_split_list[2]; + info_.DirmngrPath = component_path; } if (component_name == "keyboxd") { - info_.KeyboxdPath = info_split_list[2]; + info_.KeyboxdPath = component_path; } { @@ -457,16 +461,25 @@ const GpgInfo &GpgContext::GetInfo(bool refresh) { if (info_split_list.size() != 2) continue; + auto configuration_name = info_split_list[0]; + auto configuration_value = info_split_list[1]; + boost::algorithm::trim(configuration_name); + boost::algorithm::trim(configuration_value); + +#ifdef WINDOWS + // replace some special substrings on windows platform + boost::replace_all(configuration_value, "%3a", ":"); +#endif + // record gnupg home path - if (info_split_list[0] == "homedir") { + if (configuration_name == "homedir") { info_.GnuPGHomePath = info_split_list[1]; } - auto configuration_name = info_split_list[0]; { // try lock std::unique_lock lock(info_.Lock); - configurations_info[configuration_name] = {info_split_list[1]}; + configurations_info[configuration_name] = {configuration_value}; } } }); @@ -510,12 +523,19 @@ const GpgInfo &GpgContext::GetInfo(bool refresh) { if (info_split_list.size() != 6) continue; auto configuration_name = info_split_list[0]; + boost::algorithm::trim(configuration_name); { // try lock std::unique_lock lock(info_.Lock); options_info[configuration_name] = { info_split_list[1], info_split_list[2], info_split_list[3], info_split_list[4], info_split_list[5]}; + + boost::algorithm::trim(options_info[configuration_name][0]); + boost::algorithm::trim(options_info[configuration_name][1]); + boost::algorithm::trim(options_info[configuration_name][2]); + boost::algorithm::trim(options_info[configuration_name][3]); + boost::algorithm::trim(options_info[configuration_name][4]); } } }); @@ -561,6 +581,7 @@ const GpgInfo &GpgContext::GetInfo(bool refresh) { if (info_split_list.size() != 10) continue; auto configuration_name = info_split_list[0]; + boost::algorithm::trim(configuration_name); { // try lock std::unique_lock lock(info_.Lock); @@ -568,6 +589,25 @@ const GpgInfo &GpgContext::GetInfo(bool refresh) { info_split_list[1], info_split_list[2], info_split_list[3], info_split_list[4], info_split_list[5], info_split_list[6], info_split_list[7], info_split_list[8], info_split_list[9]}; + + boost::algorithm::trim( + available_options_info[configuration_name][0]); + boost::algorithm::trim( + available_options_info[configuration_name][1]); + boost::algorithm::trim( + available_options_info[configuration_name][2]); + boost::algorithm::trim( + available_options_info[configuration_name][3]); + boost::algorithm::trim( + available_options_info[configuration_name][4]); + boost::algorithm::trim( + available_options_info[configuration_name][5]); + boost::algorithm::trim( + available_options_info[configuration_name][6]); + boost::algorithm::trim( + available_options_info[configuration_name][7]); + boost::algorithm::trim( + available_options_info[configuration_name][8]); } } }); @@ -582,20 +622,33 @@ const GpgInfo &GpgContext::GetInfo(bool refresh) { std::optional GpgContext::check_binary_chacksum( std::filesystem::path path) { - QFile f(QString::fromStdString(path.u8string())); - if (!f.open(QFile::ReadOnly)) return {}; + // check file info and access rights + QFileInfo info(QString::fromStdString(path.u8string())); + if (!info.exists() || !info.isFile() || !info.isReadable()) { + SPDLOG_ERROR("get info for file {} error, exists: {}", + info.filePath().toStdString(), info.exists()); + return {}; + } + + // open and read file + QFile f(info.filePath()); + if (!f.open(QIODevice::ReadOnly)) { + SPDLOG_ERROR("open {} to calculate check sum error: {}", path.u8string(), + f.errorString().toStdString()); + return {}; + } // read all data from file auto buffer = f.readAll(); f.close(); - auto hash_md5 = QCryptographicHash(QCryptographicHash::Md5); + auto hash_sha = QCryptographicHash(QCryptographicHash::Sha256); // md5 - hash_md5.addData(buffer); - auto md5 = hash_md5.result().toHex().toStdString(); - SPDLOG_DEBUG("md5 {}", md5); + hash_sha.addData(buffer); + auto sha = hash_sha.result().toHex().toStdString(); + SPDLOG_DEBUG("checksum for file {} is {}", path.u8string(), sha); - return md5.substr(0, 6); + return sha.substr(0, 6); } void GpgContext::_ctx_ref_deleter::operator()(gpgme_ctx_t _ctx) { From f56cd1b41251a5c07ebedc90e8cf5858ea47a84b Mon Sep 17 00:00:00 2001 From: Saturneric Date: Fri, 31 Mar 2023 04:12:35 +0800 Subject: [PATCH 13/35] fix: set application recover limit --- src/main.cpp | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/src/main.cpp b/src/main.cpp index 98c02a0e..6b0eb727 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -126,6 +126,7 @@ int main(int argc, char* argv[]) { * with changed translation when settings change. */ int return_from_event_loop_code; + int restart_count = 0; do { do { @@ -154,16 +155,20 @@ int main(int argc, char* argv[]) { return_from_event_loop_code = CRASH_CODE; } - SPDLOG_DEBUG("restart loop refresh, event loop code: {}", - return_from_event_loop_code); - } while (return_from_event_loop_code == RESTART_CODE); + restart_count++; + + SPDLOG_DEBUG( + "restart loop refresh, event loop code: {}, restart count: {}", + return_from_event_loop_code, restart_count); + } while (return_from_event_loop_code == RESTART_CODE && restart_count < 2); if (return_from_event_loop_code == DEEP_RESTART_CODE || return_from_event_loop_code == CRASH_CODE) { // reset core GpgFrontend::ResetGpgFrontendCore(); // log for debug - SPDLOG_DEBUG("deep restart or cash loop refresh"); + SPDLOG_DEBUG("deep restart or cash loop refresh, restart count: {}", + restart_count); } else { // log for debug SPDLOG_DEBUG("need to close application, event loop code: {}", @@ -171,9 +176,9 @@ int main(int argc, char* argv[]) { } // deep restart mode - } while (return_from_event_loop_code == DEEP_RESTART_CODE || - return_from_event_loop_code == CRASH_CODE); - + } while ((return_from_event_loop_code == DEEP_RESTART_CODE || + return_from_event_loop_code == CRASH_CODE) && + restart_count < 3); // shutdown the logging system for ui GpgFrontend::UI::ShutdownUILoggingSystem(); @@ -181,8 +186,6 @@ int main(int argc, char* argv[]) { // shutdown the logging system for core GpgFrontend::ShutdownCoreLoggingSystem(); - - // log for debug SPDLOG_INFO("GpgFrontend about to exit."); From 0e4ef6e675dca771394b33752d3df8d712cd1a4a Mon Sep 17 00:00:00 2001 From: Saturneric Date: Fri, 31 Mar 2023 16:24:22 +0800 Subject: [PATCH 14/35] feat: add offline and auto import support in context --- src/core/GpgContext.cpp | 30 +++++++++++++++++------------- src/core/GpgContext.h | 2 ++ 2 files changed, 19 insertions(+), 13 deletions(-) diff --git a/src/core/GpgContext.cpp b/src/core/GpgContext.cpp index 5d3b53e5..f8dbebc6 100644 --- a/src/core/GpgContext.cpp +++ b/src/core/GpgContext.cpp @@ -43,6 +43,7 @@ #include "core/function/GlobalSettingStation.h" #include "core/function/gpg/GpgCommandExecutor.h" #include "core/thread/TaskRunnerGetter.h" +#include "spdlog/spdlog.h" #include "thread/Task.h" #ifdef _WIN32 @@ -59,20 +60,12 @@ GpgContext::GpgContext(int channel) * Set up gpgme-context, set paths to app-run path */ GpgContext::GpgContext(const GpgContextInitArgs &args) : args_(args) { - static bool _first = true; - - if (_first) { - /* Initialize the locale environment. */ - SPDLOG_DEBUG("locale: {}", setlocale(LC_CTYPE, nullptr)); - info_.GpgMEVersion = gpgme_check_version(nullptr); - gpgme_set_locale(nullptr, LC_CTYPE, setlocale(LC_CTYPE, nullptr)); -#ifdef LC_MESSAGES - gpgme_set_locale(nullptr, LC_MESSAGES, setlocale(LC_MESSAGES, nullptr)); -#endif - _first = false; - } - gpgme_ctx_t _p_ctx; + + // get gpgme library version + info_.GpgMEVersion = gpgme_check_version(nullptr); + + // create a new context check_gpg_error(gpgme_new(&_p_ctx)); _ctx_ref = CtxRefHandler(_p_ctx); @@ -84,6 +77,17 @@ GpgContext::GpgContext(const GpgContextInitArgs &args) : args_(args) { assert(check_gpg_error_2_err_code(err) == GPG_ERR_NO_ERROR); } + // set context offline mode + SPDLOG_DEBUG("gpg context offline mode: {}", args_.offline_mode); + gpgme_set_offline(_ctx_ref.get(), args_.offline_mode ? 1 : 0); + + // set option auto import missing key + // invalid at offline mode + SPDLOG_DEBUG("gpg context auto import missing key: {}", args_.offline_mode); + if (!args.offline_mode && args.auto_import_missing_key) + check_gpg_error(gpgme_set_ctx_flag(_ctx_ref.get(), "auto-key-import", "1")); + + // get engine info auto engine_info = gpgme_ctx_get_engine_info(*this); // Check ENV before running bool check_passed = false, find_openpgp = false, find_gpgconf = false, diff --git a/src/core/GpgContext.h b/src/core/GpgContext.h index 384271a6..2ff87e6b 100644 --- a/src/core/GpgContext.h +++ b/src/core/GpgContext.h @@ -51,6 +51,8 @@ struct GpgContextInitArgs { std::string gpg_path = {}; bool test_mode = false; bool ascii = true; + bool offline_mode = false; + bool auto_import_missing_key = false; GpgContextInitArgs() = default; }; From 09bd72beba0234e1b576379f6c654b54bd693e8e Mon Sep 17 00:00:00 2001 From: Saturneric Date: Fri, 31 Mar 2023 16:24:48 +0800 Subject: [PATCH 15/35] feat: read offline and auto import config when init --- src/core/GpgCoreInit.cpp | 40 +++++++++++++++++++++++++++++++++++----- 1 file changed, 35 insertions(+), 5 deletions(-) diff --git a/src/core/GpgCoreInit.cpp b/src/core/GpgCoreInit.cpp index 840b2b87..34780d98 100644 --- a/src/core/GpgCoreInit.cpp +++ b/src/core/GpgCoreInit.cpp @@ -93,12 +93,38 @@ void ShutdownCoreLoggingSystem() { void ResetGpgFrontendCore() { reset_gpgfrontend_core(); } void init_gpgfrontend_core() { - // read from settings file + /* Initialize the locale environment. */ + SPDLOG_DEBUG("locale: {}", setlocale(LC_CTYPE, nullptr)); + // init gpgme subsystem + gpgme_check_version(nullptr); + gpgme_set_locale(nullptr, LC_CTYPE, setlocale(LC_CTYPE, nullptr)); +#ifdef LC_MESSAGES + gpgme_set_locale(nullptr, LC_MESSAGES, setlocale(LC_MESSAGES, nullptr)); +#endif + + // get settings + auto& settings = GlobalSettingStation::GetInstance().GetUISettings(); + + // read settings + bool forbid_all_gnupg_connection = false; + try { + forbid_all_gnupg_connection = + settings.lookup("network.forbid_all_gnupg_connection"); + } catch (...) { + SPDLOG_ERROR("setting operation error: forbid_all_gnupg_connection"); + } + bool auto_import_missing_key = false; + try { + auto_import_missing_key = + settings.lookup("network.auto_import_missing_key"); + } catch (...) { + SPDLOG_ERROR("setting operation error: auto_import_missing_key"); + } + + // read from settings file bool use_custom_key_database_path = false; try { - auto& settings = - GpgFrontend::GlobalSettingStation::GetInstance().GetUISettings(); use_custom_key_database_path = settings.lookup("general.use_custom_key_database_path"); } catch (...) { @@ -110,8 +136,6 @@ void init_gpgfrontend_core() { std::string custom_key_database_path; try { - auto& settings = - GpgFrontend::GlobalSettingStation::GetInstance().GetUISettings(); custom_key_database_path = static_cast( settings.lookup("general.custom_key_database_path")); @@ -132,6 +156,9 @@ void init_gpgfrontend_core() { args.db_path = custom_key_database_path; } + args.offline_mode = forbid_all_gnupg_connection; + args.auto_import_missing_key = auto_import_missing_key; + return std::unique_ptr(new GpgContext(args)); }); @@ -146,6 +173,9 @@ void init_gpgfrontend_core() { args.db_path = custom_key_database_path; } + args.offline_mode = forbid_all_gnupg_connection; + args.auto_import_missing_key = auto_import_missing_key; + return std::unique_ptr(new GpgContext(args)); }); From e87d2167f8149afc1d65bafde0d5046f7d2c6137 Mon Sep 17 00:00:00 2001 From: Saturneric Date: Fri, 31 Mar 2023 16:25:28 +0800 Subject: [PATCH 16/35] fix: improve general dialog position representation --- src/ui/dialog/GeneralDialog.cpp | 104 ++++++++++++++++++-------------- 1 file changed, 59 insertions(+), 45 deletions(-) diff --git a/src/ui/dialog/GeneralDialog.cpp b/src/ui/dialog/GeneralDialog.cpp index 9367aa44..90c56b8a 100644 --- a/src/ui/dialog/GeneralDialog.cpp +++ b/src/ui/dialog/GeneralDialog.cpp @@ -57,53 +57,17 @@ void GpgFrontend::UI::GeneralDialog::slot_restore_settings() noexcept { size_ = {width, height}; - if (this->parent() != nullptr) { - QPoint parent_pos = {0, 0}; - QSize parent_size = {0, 0}; - - auto *parent_widget = qobject_cast(this->parent()); - if (parent_widget != nullptr) { - parent_pos = parent_widget->pos(); - parent_size = parent_widget->size(); - } - - auto *parent_dialog = qobject_cast(this->parent()); - if (parent_dialog != nullptr) { - parent_pos = parent_dialog->pos(); - parent_size = parent_dialog->size(); - } - - auto *parent_window = qobject_cast(this->parent()); - if (parent_window != nullptr) { - parent_pos = parent_window->pos(); - parent_size = parent_window->size(); - } - - SPDLOG_DEBUG("parent pos x: {} y: {}", parent_pos.x(), parent_pos.y()); - - SPDLOG_DEBUG("parent size width: {} height: {}", parent_size.width(), - parent_size.height()); - - SPDLOG_DEBUG("this dialog size width: {} height: {}", size_.width(), - size_.height()); - - if (parent_pos != QPoint{0, 0}) { - QPoint parent_center{parent_pos.x() + parent_size.width() / 2, - parent_pos.y() + parent_size.height() / 2}; - - pos_ = {parent_center.x() - size_.width() / 2, - parent_center.y() - size_.height() / 2}; - - // record parent_pos_ - this->parent_pos_ = parent_pos; - this->parent_size_ = parent_size; - } + // check for valid + if (!pos_.isNull() && pos_.x() > 50 && pos_.y() > 50 && size_.isValid()) { + this->move(pos_); + this->resize(size_); + return; } - - this->move(pos_); - this->resize(size_); } + // default action + movePosition2CenterOfParent(); + } catch (...) { SPDLOG_ERROR(name_, "error"); } @@ -148,8 +112,56 @@ void GpgFrontend::UI::GeneralDialog::setPosCenterOfScreen() { * */ void GpgFrontend::UI::GeneralDialog::movePosition2CenterOfParent() { - SPDLOG_DEBUG("parent pos x: {} y: {}", parent_pos_.x(), parent_pos_.y()); + // read pos and size from parent + if (this->parent() != nullptr) { + QPoint parent_pos = {0, 0}; + QSize parent_size = {0, 0}; + + auto *parent_widget = qobject_cast(this->parent()); + if (parent_widget != nullptr) { + parent_pos = parent_widget->pos(); + parent_size = parent_widget->size(); + } + + auto *parent_dialog = qobject_cast(this->parent()); + if (parent_dialog != nullptr) { + parent_pos = parent_dialog->pos(); + parent_size = parent_dialog->size(); + } + + auto *parent_window = qobject_cast(this->parent()); + if (parent_window != nullptr) { + parent_pos = parent_window->pos(); + parent_size = parent_window->size(); + } + + SPDLOG_DEBUG("parent pos x: {} y: {}", parent_pos.x(), parent_pos.y()); + SPDLOG_DEBUG("parent size width: {} height: {}", parent_size.width(), + parent_size.height()); + + SPDLOG_DEBUG("this dialog size width: {} height: {}", size_.width(), + size_.height()); + + if (parent_pos != QPoint{0, 0}) { + QPoint parent_center{parent_pos.x() + parent_size.width() / 2, + parent_pos.y() + parent_size.height() / 2}; + + pos_ = {parent_center.x() - size_.width() / 2, + parent_center.y() - size_.height() / 2}; + + // record parent_pos_ + this->parent_pos_ = parent_pos; + this->parent_size_ = parent_size; + } + } else { + // reset parent's pos and size + this->parent_pos_ = QPoint{0, 0}; + this->parent_size_ = QSize{0, 0}; + } + + // log for debug + SPDLOG_DEBUG("parent pos x: {} y: {}", parent_pos_.x(), parent_pos_.y()); SPDLOG_DEBUG("parent size width: {}", parent_size_.width(), "height:", parent_size_.height()); @@ -164,5 +176,7 @@ void GpgFrontend::UI::GeneralDialog::movePosition2CenterOfParent() { pos_ = {parent_center.x() - size_.width() / 2, parent_center.y() - size_.height() / 2}; this->move(pos_); + } else { + setPosCenterOfScreen(); } } \ No newline at end of file From 2b63789d1030d1ecd7effcb8836b298827a60a77 Mon Sep 17 00:00:00 2001 From: Saturneric Date: Fri, 31 Mar 2023 16:26:24 +0800 Subject: [PATCH 17/35] feat: improve ui logic and menu operas in main window --- src/ui/main_window/MainWindow.cpp | 6 + src/ui/main_window/MainWindow.h | 37 ++++++ src/ui/main_window/MainWindowSlotFunction.cpp | 108 +++++++++++++++++- src/ui/main_window/MainWindowUI.cpp | 58 ++++++++-- 4 files changed, 201 insertions(+), 8 deletions(-) diff --git a/src/ui/main_window/MainWindow.cpp b/src/ui/main_window/MainWindow.cpp index fff3ab63..b38646cf 100644 --- a/src/ui/main_window/MainWindow.cpp +++ b/src/ui/main_window/MainWindow.cpp @@ -84,7 +84,13 @@ void MainWindow::Init() noexcept { }); m_key_list_->AddMenuAction(append_selected_keys_act_); + m_key_list_->AddMenuAction(append_key_create_date_to_editor_act_); + m_key_list_->AddMenuAction(append_key_expire_date_to_editor_act_); + m_key_list_->AddMenuAction(append_key_fingerprint_to_editor_act_); + m_key_list_->AddSeparator(); m_key_list_->AddMenuAction(copy_mail_address_to_clipboard_act_); + m_key_list_->AddMenuAction(copy_key_default_uid_to_clipboard_act_); + m_key_list_->AddMenuAction(copy_key_id_to_clipboard_act_); m_key_list_->AddSeparator(); m_key_list_->AddMenuAction(show_key_details_act_); diff --git a/src/ui/main_window/MainWindow.h b/src/ui/main_window/MainWindow.h index e32a02ff..04a82759 100644 --- a/src/ui/main_window/MainWindow.h +++ b/src/ui/main_window/MainWindow.h @@ -224,12 +224,42 @@ class MainWindow : public GeneralMainWindow { */ void slot_append_selected_keys(); + /** + * @brief + * + */ + void slot_append_keys_create_datetime(); + + /** + * @brief + * + */ + void slot_append_keys_expire_datetime(); + + /** + * @brief + * + */ + void slot_append_keys_fingerprint(); + /** * @details Copy the mailaddress of selected key to clipboard. * Method for keylists contextmenu. */ void slot_copy_mail_address_to_clipboard(); + /** + * @details Copy the mailaddress of selected key to clipboard. + * Method for keylists contextmenu. + */ + void slot_copy_default_uid_to_clipboard(); + + /** + * @details Copy the mailaddress of selected key to clipboard. + * Method for keylists contextmenu. + */ + void slot_copy_key_id_to_clipboard(); + /** * @details Open key management dialog. */ @@ -376,8 +406,15 @@ class MainWindow : public GeneralMainWindow { QAction* append_selected_keys_act_{}; ///< Action to append selected keys to edit + QAction* append_key_fingerprint_to_editor_act_{}; ///< + QAction* append_key_create_date_to_editor_act_{}; ///< + QAction* append_key_expire_date_to_editor_act_{}; ///< + QAction* copy_mail_address_to_clipboard_act_{}; ///< Action to copy mail to ///< clipboard + QAction* copy_key_id_to_clipboard_act_{}; ///< + QAction* copy_key_default_uid_to_clipboard_act_{}; ///< + QAction* open_key_management_act_{}; ///< Action to open key management QAction* copy_act_{}; ///< Action to copy text QAction* quote_act_{}; ///< Action to quote text diff --git a/src/ui/main_window/MainWindowSlotFunction.cpp b/src/ui/main_window/MainWindowSlotFunction.cpp index 6f702e34..841c8680 100644 --- a/src/ui/main_window/MainWindowSlotFunction.cpp +++ b/src/ui/main_window/MainWindowSlotFunction.cpp @@ -26,12 +26,15 @@ * */ +#include +#include #include #include #include #include "MainWindow.h" #include "core/GpgConstants.h" +#include "core/GpgContext.h" #include "core/GpgModel.h" #include "core/function/gpg/GpgBasicOperator.h" #include "core/function/gpg/GpgKeyGetter.h" @@ -611,11 +614,88 @@ void MainWindow::slot_append_selected_keys() { auto exported = std::make_unique(); auto key_ids = m_key_list_->GetSelected(); - GpgKeyImportExporter::GetInstance().ExportKeys(key_ids, exported); + if (key_ids->empty()) { + SPDLOG_ERROR("no key is selected"); + return; + } + + if (!GpgKeyImportExporter::GetInstance().ExportKeys(key_ids, exported)) { + QMessageBox::critical(this, _("Error"), _("Key Export Operation Failed.")); + return; + } edit_->CurTextPage()->GetTextPage()->appendPlainText( QString::fromStdString(*exported)); } +void MainWindow::slot_append_keys_create_datetime() { + if (edit_->TabCount() == 0 || edit_->SlotCurPageTextEdit() == nullptr) { + return; + } + + auto key_ids = m_key_list_->GetSelected(); + + if (key_ids->empty()) { + SPDLOG_ERROR("no key is selected"); + return; + } + + auto key = GpgKeyGetter::GetInstance().GetKey(key_ids->front()); + if (!key.IsGood()) { + QMessageBox::critical(this, _("Error"), _("Key Not Found.")); + return; + } + + auto create_datetime_format_str = + boost::posix_time::to_iso_extended_string(key.GetCreateTime()) + + " (UTC) " + "\n"; + + edit_->CurTextPage()->GetTextPage()->appendPlainText( + QString::fromStdString(create_datetime_format_str)); +} + +void MainWindow::slot_append_keys_expire_datetime() { + if (edit_->TabCount() == 0 || edit_->SlotCurPageTextEdit() == nullptr) { + return; + } + + auto key_ids = m_key_list_->GetSelected(); + + if (key_ids->empty()) { + SPDLOG_ERROR("no key is selected"); + return; + } + + auto key = GpgKeyGetter::GetInstance().GetKey(key_ids->front()); + if (!key.IsGood()) { + QMessageBox::critical(this, _("Error"), _("Key Not Found.")); + return; + } + + auto create_datetime_format_str = + boost::posix_time::to_iso_extended_string(key.GetCreateTime()) + + " (UTC) " + "\n"; + + edit_->CurTextPage()->GetTextPage()->appendPlainText( + QString::fromStdString(create_datetime_format_str)); +} + +void MainWindow::slot_append_keys_fingerprint() { + auto key_ids = m_key_list_->GetSelected(); + if (key_ids->empty()) return; + + auto key = GpgKeyGetter::GetInstance().GetKey(key_ids->front()); + if (!key.IsGood()) { + QMessageBox::critical(this, _("Error"), _("Key Not Found.")); + return; + } + + auto fingerprint_format_str = + beautify_fingerprint(key.GetFingerprint()) + "\n"; + + edit_->CurTextPage()->GetTextPage()->appendPlainText( + QString::fromStdString(fingerprint_format_str)); +} + void MainWindow::slot_copy_mail_address_to_clipboard() { auto key_ids = m_key_list_->GetSelected(); if (key_ids->empty()) return; @@ -629,6 +709,32 @@ void MainWindow::slot_copy_mail_address_to_clipboard() { cb->setText(QString::fromStdString(key.GetEmail())); } +void MainWindow::slot_copy_default_uid_to_clipboard() { + auto key_ids = m_key_list_->GetSelected(); + if (key_ids->empty()) return; + + auto key = GpgKeyGetter::GetInstance().GetKey(key_ids->front()); + if (!key.IsGood()) { + QMessageBox::critical(this, _("Error"), _("Key Not Found.")); + return; + } + QClipboard* cb = QApplication::clipboard(); + cb->setText(QString::fromStdString(key.GetUIDs()->front().GetUID())); +} + +void MainWindow::slot_copy_key_id_to_clipboard() { + auto key_ids = m_key_list_->GetSelected(); + if (key_ids->empty()) return; + + auto key = GpgKeyGetter::GetInstance().GetKey(key_ids->front()); + if (!key.IsGood()) { + QMessageBox::critical(this, _("Error"), _("Key Not Found.")); + return; + } + QClipboard* cb = QApplication::clipboard(); + cb->setText(QString::fromStdString(key.GetId())); +} + void MainWindow::slot_show_key_details() { auto key_ids = m_key_list_->GetSelected(); if (key_ids->empty()) return; diff --git a/src/ui/main_window/MainWindowUI.cpp b/src/ui/main_window/MainWindowUI.cpp index d598f3ab..1034df52 100644 --- a/src/ui/main_window/MainWindowUI.cpp +++ b/src/ui/main_window/MainWindowUI.cpp @@ -27,6 +27,7 @@ */ #include "MainWindow.h" +#include "core/function/GlobalSettingStation.h" #include "core/function/gpg/GpgAdvancedOperator.h" #include "ui/UserInterfaceUtils.h" @@ -251,11 +252,23 @@ void MainWindow::create_actions() { CommonUtils::GetInstance()->SlotImportKeyFromClipboard(this); }); + // get settings + auto& settings = GlobalSettingStation::GetInstance().GetUISettings(); + // read settings + bool forbid_all_gnupg_connection = false; + try { + forbid_all_gnupg_connection = + settings.lookup("network.forbid_all_gnupg_connection"); + } catch (...) { + SPDLOG_ERROR("setting operation error: forbid_all_gnupg_connection"); + } + import_key_from_key_server_act_ = new QAction(_("Keyserver"), this); import_key_from_key_server_act_->setIcon( QIcon(":import_key_from_server.png")); import_key_from_key_server_act_->setToolTip( _("Import New Key From Keyserver")); + import_key_from_key_server_act_->setDisabled(forbid_all_gnupg_connection); connect(import_key_from_key_server_act_, &QAction::triggered, this, [&]() { CommonUtils::GetInstance()->SlotImportKeyFromKeyServer(this); }); @@ -353,22 +366,53 @@ void MainWindow::create_actions() { connect(start_wizard_act_, &QAction::triggered, this, &MainWindow::slot_start_wizard); - /* Popup-Menu-Action for KeyList - */ - append_selected_keys_act_ = new QAction(_("Append To Text Editor"), this); + append_selected_keys_act_ = + new QAction(_("Append Public Key to Editor"), this); append_selected_keys_act_->setToolTip( - _("Append The Selected Public Key To Text in Editor")); + _("Append selected Keypair's Public Key to Editor")); connect(append_selected_keys_act_, &QAction::triggered, this, &MainWindow::slot_append_selected_keys); + append_key_create_date_to_editor_act_ = + new QAction(_("Append Create DateTime to Editor"), this); + append_key_create_date_to_editor_act_->setToolTip( + _("Append selected Key's creation date and time to Editor")); + connect(append_key_create_date_to_editor_act_, &QAction::triggered, this, + &MainWindow::slot_append_keys_create_datetime); + + append_key_expire_date_to_editor_act_ = + new QAction(_("Append Expire DateTime to Editor"), this); + append_key_expire_date_to_editor_act_->setToolTip( + _("Append selected Key's expiration date and time to Editor")); + connect(append_key_expire_date_to_editor_act_, &QAction::triggered, this, + &MainWindow::slot_append_keys_expire_datetime); + + append_key_fingerprint_to_editor_act_ = + new QAction(_("Append Fingerprint to Editor"), this); + append_key_expire_date_to_editor_act_->setToolTip( + _("Append selected Key's Fingerprint to Editor")); + connect(append_key_fingerprint_to_editor_act_, &QAction::triggered, this, + &MainWindow::slot_append_keys_fingerprint); + copy_mail_address_to_clipboard_act_ = new QAction(_("Copy Email"), this); copy_mail_address_to_clipboard_act_->setToolTip( - _("Copy selected Email to clipboard")); + _("Copy selected Keypair's to clipboard")); connect(copy_mail_address_to_clipboard_act_, &QAction::triggered, this, &MainWindow::slot_copy_mail_address_to_clipboard); - // TODO: find central place for shared actions, to avoid code-duplication with - // keymgmt.cpp + copy_key_default_uid_to_clipboard_act_ = + new QAction(_("Copy Default UID"), this); + copy_key_default_uid_to_clipboard_act_->setToolTip( + _("Copy selected Keypair's default UID to clipboard")); + connect(copy_key_default_uid_to_clipboard_act_, &QAction::triggered, this, + &MainWindow::slot_copy_default_uid_to_clipboard); + + copy_key_id_to_clipboard_act_ = new QAction(_("Copy Key ID"), this); + copy_key_id_to_clipboard_act_->setToolTip( + _("Copy selected Keypair's ID to clipboard")); + connect(copy_key_id_to_clipboard_act_, &QAction::triggered, this, + &MainWindow::slot_copy_key_id_to_clipboard); + show_key_details_act_ = new QAction(_("Show Key Details"), this); show_key_details_act_->setToolTip(_("Show Details for this Key")); connect(show_key_details_act_, &QAction::triggered, this, From 81ea5575f0aca6ff38ccfc9f9fa32c6b2353b46f Mon Sep 17 00:00:00 2001 From: Saturneric Date: Fri, 31 Mar 2023 16:27:05 +0800 Subject: [PATCH 18/35] feat: improve network settings ui --- src/ui/dialog/settings/SettingsNetwork.cpp | 82 +++++++++++++++++----- 1 file changed, 66 insertions(+), 16 deletions(-) diff --git a/src/ui/dialog/settings/SettingsNetwork.cpp b/src/ui/dialog/settings/SettingsNetwork.cpp index 855cafbf..63ecaf2f 100644 --- a/src/ui/dialog/settings/SettingsNetwork.cpp +++ b/src/ui/dialog/settings/SettingsNetwork.cpp @@ -37,7 +37,28 @@ GpgFrontend::UI::NetworkTab::NetworkTab(QWidget *parent) ui_->setupUi(this); connect(ui_->enableProxyCheckBox, &QCheckBox::stateChanged, this, - [=](int state) { switch_ui_enabled(state == Qt::Checked); }); + [=](int state) { + switch_ui_enabled(state == Qt::Checked); + // when selecting no proxy option, apply it immediately + if (state != Qt::Checked) apply_proxy_settings(); + }); + + connect( + ui_->autoImportMissingKeyCheckBox, &QCheckBox::stateChanged, this, + [=](int state) { + ui_->forbidALLGnuPGNetworkConnectionCheckBox->setCheckState( + state == Qt::Checked + ? Qt::Unchecked + : ui_->forbidALLGnuPGNetworkConnectionCheckBox->checkState()); + }); + + connect(ui_->forbidALLGnuPGNetworkConnectionCheckBox, + &QCheckBox::stateChanged, this, [=](int state) { + ui_->autoImportMissingKeyCheckBox->setCheckState( + state == Qt::Checked + ? Qt::Unchecked + : ui_->autoImportMissingKeyCheckBox->checkState()); + }); connect( ui_->proxyTypeComboBox, &QComboBox::currentTextChanged, this, @@ -47,7 +68,7 @@ GpgFrontend::UI::NetworkTab::NetworkTab(QWidget *parent) &NetworkTab::slot_test_proxy_connection_result); ui_->proxyGroupBox->setTitle(_("Proxy")); - ui_->capabilityGroupBox->setTitle(_("Network Capability")); + ui_->capabilityGroupBox->setTitle(_("Network Ability")); ui_->operationsGroupBox->setTitle(_("Operations")); ui_->enableProxyCheckBox->setText(_("Enable Proxy")); @@ -59,12 +80,18 @@ GpgFrontend::UI::NetworkTab::NetworkTab(QWidget *parent) ui_->usernameLabel->setText(_("Username")); ui_->passwordLabel->setText(_("Password")); - ui_->forbidALLCheckBox->setText(_("Forbid all network connection.")); - ui_->forbidALLCheckBox->setDisabled(true); + ui_->checkProxyConnectionButton->setText( + _("Apply Proxy Settings and Check Proxy Connection")); + ui_->forbidALLGnuPGNetworkConnectionCheckBox->setText( + _("Forbid all GnuPG network connection.")); ui_->prohibitUpdateCheck->setText( _("Prohibit checking for version updates when the program starts.")); - ui_->checkProxyConnectionButton->setText(_("Check Proxy Connection")); + ui_->autoImportMissingKeyCheckBox->setText( + _("Automatically import a missing key for signature verification.")); + ui_->networkAbilityTipsLabel->setText( + _("Tips: These Option Changes take effect only after the " + "application restart.")); SetSettings(); } @@ -125,16 +152,17 @@ void GpgFrontend::UI::NetworkTab::SetSettings() { switch_ui_enabled(state == Qt::Checked); } - ui_->forbidALLCheckBox->setCheckState(Qt::Unchecked); + ui_->forbidALLGnuPGNetworkConnectionCheckBox->setCheckState(Qt::Unchecked); try { - bool forbid_all_connection = - settings.lookup("network.forbid_all_connection"); - if (forbid_all_connection) - ui_->forbidALLCheckBox->setCheckState(Qt::Checked); + bool forbid_all_gnupg_connection = + settings.lookup("network.forbid_all_gnupg_connection"); + if (forbid_all_gnupg_connection) + ui_->forbidALLGnuPGNetworkConnectionCheckBox->setCheckState(Qt::Checked); else - ui_->forbidALLCheckBox->setCheckState(Qt::Unchecked); + ui_->forbidALLGnuPGNetworkConnectionCheckBox->setCheckState( + Qt::Unchecked); } catch (...) { - SPDLOG_ERROR("setting operation error: forbid_all_connection"); + SPDLOG_ERROR("setting operation error: forbid_all_gnupg_connection"); } ui_->prohibitUpdateCheck->setCheckState(Qt::Unchecked); @@ -149,6 +177,18 @@ void GpgFrontend::UI::NetworkTab::SetSettings() { SPDLOG_ERROR("setting operation error: prohibit_update_checking"); } + ui_->autoImportMissingKeyCheckBox->setCheckState(Qt::Unchecked); + try { + bool auto_import_missing_key = + settings.lookup("network.auto_import_missing_key"); + if (auto_import_missing_key) + ui_->autoImportMissingKeyCheckBox->setCheckState(Qt::Checked); + else + ui_->autoImportMissingKeyCheckBox->setCheckState(Qt::Unchecked); + } catch (...) { + SPDLOG_ERROR("setting operation error: auto_import_missing_key"); + } + switch_ui_proxy_type(ui_->proxyTypeComboBox->currentText()); } @@ -209,11 +249,13 @@ void GpgFrontend::UI::NetworkTab::ApplySettings() { auto &network = settings["network"]; - if (!network.exists("forbid_all_connection")) - network.add("forbid_all_connection", libconfig::Setting::TypeBoolean) = - ui_->forbidALLCheckBox->isChecked(); + if (!network.exists("forbid_all_gnupg_connection")) + network.add("forbid_all_gnupg_connection", + libconfig::Setting::TypeBoolean) = + ui_->forbidALLGnuPGNetworkConnectionCheckBox->isChecked(); else { - network["forbid_all_connection"] = ui_->forbidALLCheckBox->isChecked(); + network["forbid_all_gnupg_connection"] = + ui_->forbidALLGnuPGNetworkConnectionCheckBox->isChecked(); } if (!network.exists("prohibit_update_checking")) @@ -223,6 +265,14 @@ void GpgFrontend::UI::NetworkTab::ApplySettings() { network["prohibit_update_checking"] = ui_->prohibitUpdateCheck->isChecked(); } + if (!network.exists("auto_import_missing_key")) + network.add("auto_import_missing_key", libconfig::Setting::TypeBoolean) = + ui_->autoImportMissingKeyCheckBox->isChecked(); + else { + network["auto_import_missing_key"] = + ui_->autoImportMissingKeyCheckBox->isChecked(); + } + apply_proxy_settings(); } From 7f3a46ac38efb6da298668897c7464c3749a1526 Mon Sep 17 00:00:00 2001 From: Saturneric Date: Fri, 31 Mar 2023 16:27:31 +0800 Subject: [PATCH 19/35] fix: solve some ui and logic issues in keymgt --- src/ui/main_window/KeyMgmt.cpp | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/src/ui/main_window/KeyMgmt.cpp b/src/ui/main_window/KeyMgmt.cpp index b5d80bee..949ef071 100644 --- a/src/ui/main_window/KeyMgmt.cpp +++ b/src/ui/main_window/KeyMgmt.cpp @@ -91,7 +91,7 @@ KeyMgmt::KeyMgmt(QWidget* parent) setCentralWidget(key_list_); key_list_->SetDoubleClickedAction([this](const GpgKey& key, QWidget* parent) { - new KeyDetailsDialog(key, parent); + new KeyDetailsDialog(key, this); }); key_list_->SlotRefresh(); @@ -109,8 +109,10 @@ KeyMgmt::KeyMgmt(QWidget* parent) this->statusBar()->show(); setWindowTitle(_("KeyPair Management")); + key_list_->AddMenuAction(generate_subkey_act_); key_list_->AddMenuAction(delete_selected_keys_act_); + key_list_->AddSeparator(); key_list_->AddMenuAction(show_key_details_act_); connect(this, &KeyMgmt::SignalKeyStatusUpdated, SignalStation::GetInstance(), @@ -163,11 +165,23 @@ void KeyMgmt::create_actions() { CommonUtils::GetInstance()->SlotImportKeyFromClipboard(this); }); + // get settings + auto& settings = GlobalSettingStation::GetInstance().GetUISettings(); + // read settings + bool forbid_all_gnupg_connection = false; + try { + forbid_all_gnupg_connection = + settings.lookup("network.forbid_all_gnupg_connection"); + } catch (...) { + SPDLOG_ERROR("setting operation error: forbid_all_gnupg_connection"); + } + import_key_from_key_server_act_ = new QAction(_("Keyserver"), this); import_key_from_key_server_act_->setIcon( QIcon(":import_key_from_server.png")); import_key_from_key_server_act_->setToolTip( _("Import New Key From Keyserver")); + import_key_from_key_server_act_->setDisabled(forbid_all_gnupg_connection); connect(import_key_from_key_server_act_, &QAction::triggered, this, [&]() { CommonUtils::GetInstance()->SlotImportKeyFromKeyServer(this); }); @@ -316,7 +330,7 @@ void KeyMgmt::SlotShowKeyDetails() { return; } - new KeyDetailsDialog(key); + new KeyDetailsDialog(key, this); } void KeyMgmt::SlotExportKeyToKeyPackage() { From a9a809931209125034567c18245ccec936d2e991 Mon Sep 17 00:00:00 2001 From: Saturneric Date: Fri, 31 Mar 2023 16:28:09 +0800 Subject: [PATCH 20/35] feat: improve ui when gnupg is offline --- .../import_export/KeyServerImportDialog.cpp | 21 +++++++++++++++++++ .../keypair_details/KeyPairOperaTab.cpp | 14 +++++++++++++ .../keypair_details/KeyPairSubkeyTab.cpp | 2 +- src/ui/widgets/VerifyKeyDetailBox.cpp | 20 +++++++++++++++--- 4 files changed, 53 insertions(+), 4 deletions(-) diff --git a/src/ui/dialog/import_export/KeyServerImportDialog.cpp b/src/ui/dialog/import_export/KeyServerImportDialog.cpp index 713c5a58..5692f607 100644 --- a/src/ui/dialog/import_export/KeyServerImportDialog.cpp +++ b/src/ui/dialog/import_export/KeyServerImportDialog.cpp @@ -47,6 +47,23 @@ KeyServerImportDialog::KeyServerImportDialog(bool automatic, QWidget* parent) // Layout for messagebox auto* message_layout = new QHBoxLayout(); + // get settings + auto& settings = GlobalSettingStation::GetInstance().GetUISettings(); + // read settings + bool forbid_all_gnupg_connection = false; + try { + forbid_all_gnupg_connection = + settings.lookup("network.forbid_all_gnupg_connection"); + } catch (...) { + SPDLOG_ERROR("setting operation error: forbid_all_gnupg_connection"); + } + + if (forbid_all_gnupg_connection) { + QMessageBox::critical(this, "Forbidden", "GnuPG is in offline mode now."); + this->close(); + this->deleteLater(); + } + if (automatic) { setWindowFlags(Qt::Window | Qt::WindowTitleHint | Qt::CustomizeWindowHint); } else { @@ -249,6 +266,10 @@ void KeyServerImportDialog::slot_search() { Thread::TaskRunnerGetter::GetInstance() .GetTaskRunner(Thread::TaskRunnerGetter::kTaskRunnerType_Network) ->PostTask(task); + + QEventLoop loop; + connect(task, &Thread::Task::SignalTaskEnd, &loop, &QEventLoop::quit); + loop.exec(); } void KeyServerImportDialog::slot_search_finished( diff --git a/src/ui/dialog/keypair_details/KeyPairOperaTab.cpp b/src/ui/dialog/keypair_details/KeyPairOperaTab.cpp index 59f3f7cf..9be77923 100644 --- a/src/ui/dialog/keypair_details/KeyPairOperaTab.cpp +++ b/src/ui/dialog/keypair_details/KeyPairOperaTab.cpp @@ -27,6 +27,7 @@ #include "KeyPairOperaTab.h" #include "KeySetExpireDateDialog.h" +#include "core/function/GlobalSettingStation.h" #include "core/function/gpg/GpgKeyImportExporter.h" #include "core/function/gpg/GpgKeyOpera.h" #include "ui/SignalStation.h" @@ -73,10 +74,23 @@ KeyPairOperaTab::KeyPairOperaTab(const std::string& key_id, QWidget* parent) } auto advance_h_box_layout = new QHBoxLayout(); + + // get settings + auto& settings = GlobalSettingStation::GetInstance().GetUISettings(); + // read settings + bool forbid_all_gnupg_connection = false; + try { + forbid_all_gnupg_connection = + settings.lookup("network.forbid_all_gnupg_connection"); + } catch (...) { + SPDLOG_ERROR("setting operation error: forbid_all_gnupg_connection"); + } + auto* key_server_opera_button = new QPushButton(_("Key Server Operation (Pubkey)")); key_server_opera_button->setStyleSheet("text-align:center;"); key_server_opera_button->setMenu(key_server_opera_menu_); + key_server_opera_button->setDisabled(forbid_all_gnupg_connection); advance_h_box_layout->addWidget(key_server_opera_button); if (m_key_.IsPrivateKey() && m_key_.IsHasMasterKey()) { diff --git a/src/ui/dialog/keypair_details/KeyPairSubkeyTab.cpp b/src/ui/dialog/keypair_details/KeyPairSubkeyTab.cpp index d1367541..9c243a39 100644 --- a/src/ui/dialog/keypair_details/KeyPairSubkeyTab.cpp +++ b/src/ui/dialog/keypair_details/KeyPairSubkeyTab.cpp @@ -312,7 +312,7 @@ void KeyPairSubkeyTab::slot_refresh_subkey_detail() { } fingerprint_var_label_->setText( - QString::fromStdString(subkey.GetFingerprint())); + QString::fromStdString(beautify_fingerprint(subkey.GetFingerprint()))); } void KeyPairSubkeyTab::create_subkey_opera_menu() { diff --git a/src/ui/widgets/VerifyKeyDetailBox.cpp b/src/ui/widgets/VerifyKeyDetailBox.cpp index c6c4982c..555414b4 100644 --- a/src/ui/widgets/VerifyKeyDetailBox.cpp +++ b/src/ui/widgets/VerifyKeyDetailBox.cpp @@ -28,6 +28,7 @@ #include "ui/widgets/VerifyKeyDetailBox.h" +#include "core/function/GlobalSettingStation.h" #include "core/function/gpg/GpgKeyGetter.h" namespace GpgFrontend::UI { @@ -40,8 +41,21 @@ VerifyKeyDetailBox::VerifyKeyDetailBox(const GpgSignature& signature, switch (gpg_err_code(signature.GetStatus())) { case GPG_ERR_NO_PUBKEY: { this->setTitle("A Error Signature"); - auto* importButton = new QPushButton(_("Import from keyserver")); - connect(importButton, &QPushButton::clicked, this, + + // get settings + auto& settings = GlobalSettingStation::GetInstance().GetUISettings(); + // read settings + bool forbid_all_gnupg_connection = false; + try { + forbid_all_gnupg_connection = + settings.lookup("network.forbid_all_gnupg_connection"); + } catch (...) { + SPDLOG_ERROR("setting operation error: forbid_all_gnupg_connection"); + } + + auto* import_button = new QPushButton(_("Import from keyserver")); + import_button->setDisabled(forbid_all_gnupg_connection); + connect(import_button, &QPushButton::clicked, this, &VerifyKeyDetailBox::slot_import_form_key_server); this->setTitle(QString(_("Key not present with id 0x")) + fpr_.c_str()); @@ -52,7 +66,7 @@ VerifyKeyDetailBox::VerifyKeyDetailBox(const GpgSignature& signature, // grid->addWidget(new QLabel(_("Fingerprint:")), 1, 0); grid->addWidget(new QLabel(_("Key not present in key list")), 0, 1); // grid->addWidget(new QLabel(signature->fpr), 1, 1); - grid->addWidget(importButton, 2, 0, 2, 1); + grid->addWidget(import_button, 2, 0, 2, 1); vbox->addLayout(grid); break; From 676220f4846a3f2161daaa38a67933453c9f56b6 Mon Sep 17 00:00:00 2001 From: Saturneric Date: Fri, 31 Mar 2023 16:28:29 +0800 Subject: [PATCH 21/35] fix: solve known ui issues --- src/ui/dialog/help/AboutDialog.cpp | 2 +- src/ui/dialog/settings/SettingsKeyServer.cpp | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/src/ui/dialog/help/AboutDialog.cpp b/src/ui/dialog/help/AboutDialog.cpp index 548ba47a..faf2b316 100644 --- a/src/ui/dialog/help/AboutDialog.cpp +++ b/src/ui/dialog/help/AboutDialog.cpp @@ -97,7 +97,7 @@ InfoTab::InfoTab(QWidget* parent) : QWidget(parent) { _("or send a mail to my mailing list at") + " eric@bktus.com." + "

" + _("Built with Qt") + " " + qVersion() + ", " + OPENSSL_VERSION_TEXT + - " " + _("and") + "GPGME" + " " + + " " + _("and") + " " + "GPGME" + " " + GpgFrontend::GpgContext::GetInstance() .GetInfo(false) .GpgMEVersion.c_str() + diff --git a/src/ui/dialog/settings/SettingsKeyServer.cpp b/src/ui/dialog/settings/SettingsKeyServer.cpp index 8719ab9a..83bd2c80 100644 --- a/src/ui/dialog/settings/SettingsKeyServer.cpp +++ b/src/ui/dialog/settings/SettingsKeyServer.cpp @@ -284,6 +284,11 @@ void KeyserverTab::slot_test_listed_key_server() { Thread::TaskRunnerGetter::GetInstance() .GetTaskRunner(Thread::TaskRunnerGetter::kTaskRunnerType_Network) ->PostTask(task); + + QEventLoop loop; + connect(task, &Thread::Task::SignalTaskEnd, &loop, &QEventLoop::quit); + connect(waiting_dialog, &QProgressDialog::canceled, &loop, &QEventLoop::quit); + loop.exec(); } void KeyserverTab::contextMenuEvent(QContextMenuEvent* event) { From 2792b7565e084a1b6f209ba0095343b464251367 Mon Sep 17 00:00:00 2001 From: Saturneric Date: Fri, 31 Mar 2023 16:29:09 +0800 Subject: [PATCH 22/35] fix: solve macos release build always use sandbox issues --- src/CMakeLists.txt | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 4ec07d66..3417f0cf 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -419,12 +419,17 @@ if (APPLICATION_BUILD) # option for sandbox mode, still under test if(GPGFRONTEND_XOCDE_ENABLE_SANDBOX) + message(STATUS "Build Application With App Sandbox") set(CUSTOM_ATTRIBUTE_ENABLE_APP_SANDBOX "Yes") add_custom_command(TARGET ${AppName} POST_BUILD COMMAND /bin/cp -rf ${CMAKE_SOURCE_DIR}/resource/lfs/macOS/GnuPG ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${CMAKE_BUILD_TYPE}/${AppName}.app/Contents/ WORKING_DIRECTORY ${CMAKE_RUNTIME_OUTPUT_DIRECTORY} COMMENT "Copying Buddled GnuPG into App Bundle Resource") + set_target_properties(${AppName} PROPERTIES + XCODE_ATTRIBUTE_CODE_SIGN_ENTITLEMENTS "${CMAKE_SOURCE_DIR}/GpgFrontend.entitlements" + ) else() + message(STATUS "Build Application Without App Sandbox") set(CUSTOM_ATTRIBUTE_ENABLE_APP_SANDBOX "No") endif() @@ -434,7 +439,6 @@ if (APPLICATION_BUILD) XCODE_ATTRIBUTE_OTHER_CODE_SIGN_FLAGS "--deep --entitlements ${CMAKE_SOURCE_DIR}/resource/plist/entitlement.plist" XCODE_ATTRIBUTE_ENABLE_APP_SANDBOX "${CUSTOM_ATTRIBUTE_ENABLE_APP_SANDBOX}" XCODE_ATTRIBUTE_ENABLE_HARDENED_RUNTIME "Yes" - XCODE_ATTRIBUTE_CODE_SIGN_ENTITLEMENTS "${CMAKE_SOURCE_DIR}/GpgFrontend.entitlements" XCODE_ATTRIBUTE_CODE_SIGN_IDENTITY "${GPGFRONTEND_XOCDE_CODE_SIGN_IDENTITY}" ) else () From 37739a716b4c7eee310aabcd3686ba852900d819 Mon Sep 17 00:00:00 2001 From: Saturneric Date: Fri, 31 Mar 2023 16:29:48 +0800 Subject: [PATCH 23/35] feat: update ui file of network settings --- ui/NetworkSettings.ui | 76 +++++++++++++++++++++++++++++-------------- 1 file changed, 52 insertions(+), 24 deletions(-) diff --git a/ui/NetworkSettings.ui b/ui/NetworkSettings.ui index 9e27d11b..8d7c7d48 100644 --- a/ui/NetworkSettings.ui +++ b/ui/NetworkSettings.ui @@ -6,7 +6,7 @@ 0 0 - 549 + 554 727 @@ -251,23 +251,57 @@ + + + + Qt::Horizontal + + + + + + + Operations + + + + + + + + Check Proxy Connection + + + + + + + + - Network Capability + Network Ability + + + + Tips: These Option Changes take effect only after the application restart. + + + - + - Forbid all network connection. + Forbid all GnuPG network connection. @@ -278,8 +312,22 @@ + + + + Automatically import a missing key for signature verification. + + + + + + + Qt::Horizontal + + + @@ -296,26 +344,6 @@ - - - - Operations - - - - - - - - Check Proxy Connection - - - - - - - - From ae5bbe98c80bdfb9697f59c9fc6c37b4babb0517 Mon Sep 17 00:00:00 2001 From: Saturneric Date: Fri, 31 Mar 2023 16:39:05 +0800 Subject: [PATCH 24/35] fix: solve warn issues in ci files --- .github/workflows/codeql-analysis.yml | 2 +- .github/workflows/debug.yml | 4 ++-- .github/workflows/release-deb-package.yml | 2 +- .github/workflows/release.yml | 6 +++--- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml index 39a4f7bd..512470cd 100644 --- a/.github/workflows/codeql-analysis.yml +++ b/.github/workflows/codeql-analysis.yml @@ -44,7 +44,7 @@ jobs: steps: - name: Checkout repository - uses: actions/checkout@v2 + uses: actions/checkout@v3 with: submodules: recursive diff --git a/.github/workflows/debug.yml b/.github/workflows/debug.yml index 8c140121..41a31788 100644 --- a/.github/workflows/debug.yml +++ b/.github/workflows/debug.yml @@ -34,7 +34,7 @@ jobs: git config --global core.eol lf if: matrix.os == 'windows-latest' || matrix.os == 'macos-11' || matrix.os == 'macos-12' - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 with: submodules: recursive @@ -99,7 +99,7 @@ jobs: with: version: '6.4.2' modules: 'qt5compat' - cached: ${{ steps.cache-qt.outputs.cache-hit }} + cache: ${{ steps.cache-qt.outputs.cache-hit }} if: matrix.os == 'ubuntu-latest' || matrix.os == 'macos-11' || matrix.os == 'macos-12' - name: Set up MinGW (Windows) diff --git a/.github/workflows/release-deb-package.yml b/.github/workflows/release-deb-package.yml index 63cacb6f..55b8c095 100644 --- a/.github/workflows/release-deb-package.yml +++ b/.github/workflows/release-deb-package.yml @@ -28,7 +28,7 @@ jobs: continue-on-error: true steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 with: submodules: 'recursive' diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 95d0f32a..b2f3bb39 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -33,7 +33,7 @@ jobs: git config --global core.eol lf if: matrix.os == 'windows-2019' || matrix.os == 'macos-11' || matrix.os == 'macos-12' - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 with: submodules: recursive @@ -107,7 +107,7 @@ jobs: with: version: '6.4.2' modules: 'qt5compat' - cached: ${{ steps.cache-qt.outputs.cache-hit }} + cache: ${{ steps.cache-qt.outputs.cache-hit }} if: matrix.os == 'macos-11' || matrix.os == 'macos-12' - name: Install Dependence (macOS) @@ -156,7 +156,7 @@ jobs: - name: Install Qt uses: jurplel/install-qt-action@v2 with: - cached: ${{ steps.cache-qt.outputs.cache-hit }} + cache: ${{ steps.cache-qt.outputs.cache-hit }} if: matrix.os == 'ubuntu-18.04' - name: Set up MinGW (Windows) From 0920f93dee6444d11e1e206852ab68eef9de7276 Mon Sep 17 00:00:00 2001 From: Saturneric Date: Fri, 31 Mar 2023 16:42:20 +0800 Subject: [PATCH 25/35] fix: solve README issues --- README.md | 6 ------ 1 file changed, 6 deletions(-) diff --git a/README.md b/README.md index 54a18a2b..ab2075b2 100644 --- a/README.md +++ b/README.md @@ -217,14 +217,8 @@ $ ./linuxdeployqt-continuous-x86_64.AppImage ../release/gpgfrontend/usr/share/ap ## Languages Support -<<<<<<< HEAD The supported languages are listed here. Some languages use machine translation and have not been verified. If you want to join translation and verification work, please refer to [HERE](https://gpgfrontend.pub/#/translate-interface). -======= -The supported languages are listed here. Some translations use machine translation and have not been verified. If you want -to join translation or verification work, please refer to [HERE](https://gpgfrontend.pub/#/translate-interface). - -> > > > > > > main ### Supported Languages From 4010a5662d5561b9a5b24fba183fd1906015afc4 Mon Sep 17 00:00:00 2001 From: Saturneric Date: Fri, 31 Mar 2023 17:21:54 +0800 Subject: [PATCH 26/35] feat: improve core init speed and safty. --- src/core/GpgCoreInit.cpp | 55 +++++++++++++++++++++++++++------------- 1 file changed, 38 insertions(+), 17 deletions(-) diff --git a/src/core/GpgCoreInit.cpp b/src/core/GpgCoreInit.cpp index 34780d98..9395bac7 100644 --- a/src/core/GpgCoreInit.cpp +++ b/src/core/GpgCoreInit.cpp @@ -36,6 +36,10 @@ #include "core/GpgContext.h" #include "core/function/GlobalSettingStation.h" #include "function/gpg/GpgAdvancedOperator.h" +#include "spdlog/spdlog.h" +#include "thread/Task.h" +#include "thread/TaskRunner.h" +#include "thread/TaskRunnerGetter.h" namespace GpgFrontend { @@ -147,7 +151,7 @@ void init_gpgfrontend_core() { custom_key_database_path); // init default channel - GpgFrontend::GpgContext::CreateInstance( + auto& default_ctx = GpgFrontend::GpgContext::CreateInstance( GPGFRONTEND_DEFAULT_CHANNEL, [=]() -> std::unique_ptr { GpgFrontend::GpgContextInitArgs args; @@ -162,22 +166,39 @@ void init_gpgfrontend_core() { return std::unique_ptr(new GpgContext(args)); }); - // init non-ascii channel - GpgFrontend::GpgContext::CreateInstance( - GPGFRONTEND_NON_ASCII_CHANNEL, [=]() -> std::unique_ptr { - GpgFrontend::GpgContextInitArgs args; - args.ascii = false; - - // set key database path - if (use_custom_key_database_path && !custom_key_database_path.empty()) { - args.db_path = custom_key_database_path; - } - - args.offline_mode = forbid_all_gnupg_connection; - args.auto_import_missing_key = auto_import_missing_key; - - return std::unique_ptr(new GpgContext(args)); - }); + // exit if failed + if (!default_ctx.good()) { + SPDLOG_ERROR("default gpgme context init error, exit."); + QCoreApplication::exit(); + }; + + // async init no-ascii channel + Thread::TaskRunnerGetter::GetInstance() + .GetTaskRunner(Thread::TaskRunnerGetter::kTaskRunnerType_GPG) + ->PostTask( + new Thread::Task([=](Thread::Task::DataObjectPtr data_obj) -> int { + // init non-ascii channel + auto& ctx = GpgFrontend::GpgContext::CreateInstance( + GPGFRONTEND_NON_ASCII_CHANNEL, + [=]() -> std::unique_ptr { + GpgFrontend::GpgContextInitArgs args; + args.ascii = false; + + // set key database path + if (use_custom_key_database_path && + !custom_key_database_path.empty()) { + args.db_path = custom_key_database_path; + } + + args.offline_mode = forbid_all_gnupg_connection; + args.auto_import_missing_key = auto_import_missing_key; + + return std::unique_ptr(new GpgContext(args)); + }); + if (!ctx.good()) SPDLOG_ERROR("no-ascii channel init error"); + + return ctx.good() ? 0 : -1; + })); // try to restart all components GpgFrontend::GpgAdvancedOperator::GetInstance().RestartGpgComponents(); From 3e3e09184079f4d2c197415957bb0a23c7e19d86 Mon Sep 17 00:00:00 2001 From: Saturneric Date: Fri, 31 Mar 2023 17:24:37 +0800 Subject: [PATCH 27/35] fix: solve ui issues in gunpg tab --- src/ui/dialog/help/GnupgTab.cpp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/ui/dialog/help/GnupgTab.cpp b/src/ui/dialog/help/GnupgTab.cpp index 2758cbe1..996d4ad9 100644 --- a/src/ui/dialog/help/GnupgTab.cpp +++ b/src/ui/dialog/help/GnupgTab.cpp @@ -42,7 +42,10 @@ GpgFrontend::UI::GnupgTab::GnupgTab(QWidget* parent) QStringList components_column_titles; components_column_titles << _("Name") << _("Description") << _("Version") - << _("Checksum") << _("Path"); + << _("Checksum") << _("Binary Path"); + + ui_->tabWidget->setTabText(0, _("Components")); + ui_->tabWidget->setTabText(1, _("Configurations")); ui_->componentDetailsTable->setColumnCount(components_column_titles.length()); ui_->componentDetailsTable->setHorizontalHeaderLabels( @@ -52,7 +55,7 @@ GpgFrontend::UI::GnupgTab::GnupgTab(QWidget* parent) QAbstractItemView::SelectRows); QStringList configurations_column_titles; - configurations_column_titles << _("Name") << _("Path"); + configurations_column_titles << _("Key") << _("Value"); ui_->configurationDetailsTable->setColumnCount( configurations_column_titles.length()); From d1e5dd5ae298a2e720045804dd78c77fa52824c5 Mon Sep 17 00:00:00 2001 From: saturneric Date: Sat, 1 Apr 2023 01:32:00 +0800 Subject: [PATCH 28/35] feat: use lfs to track some resources --- gpgfrontend.qrc | 150 +++++++++--------- .../share/applications/gpgfrontend.desktop | 7 - .../hicolor/128x128/apps/GpgFrontend.png | Bin 3819 -> 0 bytes .../hicolor/256x256/apps/GpgFrontend.png | Bin 9155 -> 0 bytes .../icons/hicolor/32x32/apps/GpgFrontend.png | Bin 3533 -> 0 bytes .../pub.gpgfrontend.gpgfrontend.metainfo.xml | 35 ---- .../apps/pub.gpgfrontend.gpgfrontend.png | Bin 3819 -> 0 bytes .../apps/pub.gpgfrontend.gpgfrontend.png | Bin 9155 -> 0 bytes .../apps/pub.gpgfrontend.gpgfrontend.png | Bin 3533 -> 0 bytes resource/icons/archive.png | Bin 4613 -> 0 bytes resource/icons/button_cancel.png | Bin 3242 -> 0 bytes resource/icons/button_copy.png | Bin 1475 -> 0 bytes resource/icons/button_cut.png | Bin 2828 -> 0 bytes resource/icons/button_delete.png | Bin 2202 -> 0 bytes resource/icons/button_next.png | Bin 6380 -> 0 bytes resource/icons/button_ok.png | Bin 6709 -> 0 bytes resource/icons/button_paste.png | Bin 2727 -> 0 bytes resource/icons/button_previous.png | Bin 5914 -> 0 bytes resource/icons/check.png | Bin 4779 -> 0 bytes resource/icons/configure.png | Bin 4277 -> 0 bytes resource/icons/decrypted.png | Bin 3620 -> 0 bytes resource/icons/decrypted_verified.png | Bin 3935 -> 0 bytes resource/icons/down.png | Bin 4859 -> 0 bytes resource/icons/drafts.png | Bin 6313 -> 0 bytes resource/icons/edit.png | Bin 1491 -> 0 bytes resource/icons/email.png | Bin 4582 -> 0 bytes resource/icons/encrypted.png | Bin 3288 -> 0 bytes resource/icons/encrypted_signed.png | Bin 2837 -> 0 bytes resource/icons/error.png | Bin 6721 -> 0 bytes resource/icons/exit.png | Bin 4925 -> 0 bytes resource/icons/export_key_to_clipboard.png | Bin 2659 -> 0 bytes resource/icons/export_key_to_file.png | Bin 4577 -> 0 bytes resource/icons/file-browser.png | Bin 3652 -> 0 bytes resource/icons/file.png | Bin 4488 -> 0 bytes resource/icons/fileencrytion.png | Bin 2276 -> 0 bytes resource/icons/fileopen.png | Bin 3100 -> 0 bytes resource/icons/fileprint.png | Bin 2915 -> 0 bytes resource/icons/filesave.png | Bin 2348 -> 0 bytes resource/icons/filesaveas.png | Bin 4333 -> 0 bytes resource/icons/flag-fill.png | Bin 2128 -> 0 bytes resource/icons/folder.png | Bin 2944 -> 0 bytes resource/icons/format-line-spacing-double.png | Bin 676 -> 0 bytes resource/icons/format-line-spacing-normal.png | Bin 707 -> 0 bytes resource/icons/format-line-spacing-triple.png | Bin 534 -> 0 bytes resource/icons/gnupg.png | Bin 7198 -> 0 bytes resource/icons/gpgfrontend-logo.png | Bin 17878 -> 0 bytes .../icons/gpgfrontend-logo_small (copy).png | Bin 12857 -> 0 bytes resource/icons/gpgfrontend-logo_small.png | Bin 12857 -> 0 bytes resource/icons/gpgfrontend.png | Bin 3533 -> 0 bytes resource/icons/help.png | Bin 2723 -> 0 bytes resource/icons/import_key_from_clipboard.png | Bin 1952 -> 0 bytes resource/icons/import_key_from_file.png | Bin 2404 -> 0 bytes resource/icons/import_key_from_server.png | Bin 4802 -> 0 bytes resource/icons/importance.png | Bin 6036 -> 0 bytes resource/icons/importkey_editor.png | Bin 4040 -> 0 bytes resource/icons/inbox.png | Bin 5627 -> 0 bytes resource/icons/info.png | Bin 7948 -> 0 bytes resource/icons/junk.png | Bin 7485 -> 0 bytes resource/icons/key_export.png | Bin 1449 -> 0 bytes resource/icons/key_generate.png | Bin 2708 -> 0 bytes resource/icons/key_import.png | Bin 4276 -> 0 bytes resource/icons/key_package.png | Bin 8815 -> 0 bytes resource/icons/keymgmt.png | Bin 4905 -> 0 bytes resource/icons/keys12.jpg | Bin 8130 -> 0 bytes resource/icons/keys13.jpg | Bin 25883 -> 0 bytes resource/icons/kgpg_key2.png | Bin 3837 -> 0 bytes resource/icons/mimetypes/application-pdf.png | Bin 1537 -> 0 bytes resource/icons/mimetypes/image-x-generic.png | Bin 1562 -> 0 bytes resource/icons/mimetypes/text-plain.png | Bin 1138 -> 0 bytes resource/icons/mimetypes/unknown.png | Bin 1091 -> 0 bytes resource/icons/misc_doc.png | Bin 1482 -> 0 bytes resource/icons/quote.png | Bin 1516 -> 0 bytes resource/icons/receive_email.png | Bin 6404 -> 0 bytes resource/icons/refresh.png | Bin 6821 -> 0 bytes resource/icons/sent.png | Bin 8314 -> 0 bytes resource/icons/server.png | Bin 3663 -> 0 bytes resource/icons/signature.png | Bin 3710 -> 0 bytes resource/icons/ssh-key.png | Bin 6510 -> 0 bytes resource/icons/statusbar_icon.png | Bin 870 -> 0 bytes resource/icons/trash.png | Bin 3901 -> 0 bytes resource/icons/txt.png | Bin 2482 -> 0 bytes resource/icons/undo.png | Bin 4347 -> 0 bytes resource/icons/up-arrow.png | Bin 4969 -> 0 bytes resource/icons/up.png | Bin 4557 -> 0 bytes resource/icons/verify.png | Bin 7005 -> 0 bytes resource/icons/warning.png | Bin 7506 -> 0 bytes resource/icons/wizard_banner.png | Bin 16779 -> 0 bytes .../share/applications/gpgfrontend.desktop | 3 + .../hicolor/128x128/apps/GpgFrontend.png | 3 + .../hicolor/256x256/apps/GpgFrontend.png | 3 + .../icons/hicolor/32x32/apps/GpgFrontend.png | 3 + .../pub.gpgfrontend.gpgfrontend.metainfo.xml | 3 + .../apps/pub.gpgfrontend.gpgfrontend.png | 3 + .../apps/pub.gpgfrontend.gpgfrontend.png | 3 + .../apps/pub.gpgfrontend.gpgfrontend.png | 3 + resource/lfs/icons/archive.png | 3 + resource/lfs/icons/button_cancel.png | 3 + resource/lfs/icons/button_copy.png | 3 + resource/lfs/icons/button_cut.png | 3 + resource/lfs/icons/button_delete.png | 3 + resource/lfs/icons/button_next.png | 3 + resource/lfs/icons/button_ok.png | 3 + resource/lfs/icons/button_paste.png | 3 + resource/lfs/icons/button_previous.png | 3 + resource/lfs/icons/check.png | 3 + resource/lfs/icons/configure.png | 3 + resource/lfs/icons/decrypted.png | 3 + resource/lfs/icons/decrypted_verified.png | 3 + resource/lfs/icons/down.png | 3 + resource/lfs/icons/drafts.png | 3 + resource/lfs/icons/edit.png | 3 + resource/lfs/icons/email.png | 3 + resource/lfs/icons/encrypted.png | 3 + resource/lfs/icons/encrypted_signed.png | 3 + resource/lfs/icons/error.png | 3 + resource/lfs/icons/exit.png | 3 + .../lfs/icons/export_key_to_clipboard.png | 3 + resource/lfs/icons/export_key_to_file.png | 3 + resource/lfs/icons/file-browser.png | 3 + resource/lfs/icons/file.png | 3 + resource/lfs/icons/fileencrytion.png | 3 + resource/lfs/icons/fileopen.png | 3 + resource/lfs/icons/fileprint.png | 3 + resource/lfs/icons/filesave.png | 3 + resource/lfs/icons/filesaveas.png | 3 + resource/lfs/icons/flag-fill.png | 3 + resource/lfs/icons/folder.png | 3 + .../lfs/icons/format-line-spacing-double.png | 3 + .../lfs/icons/format-line-spacing-normal.png | 3 + .../lfs/icons/format-line-spacing-triple.png | 3 + resource/lfs/icons/gnupg.png | 3 + resource/lfs/icons/gpgfrontend-logo.png | 3 + .../icons/gpgfrontend-logo_small (copy).png | 3 + resource/lfs/icons/gpgfrontend-logo_small.png | 3 + resource/lfs/icons/gpgfrontend.png | 3 + resource/lfs/icons/help.png | 3 + .../lfs/icons/import_key_from_clipboard.png | 3 + resource/lfs/icons/import_key_from_file.png | 3 + resource/lfs/icons/import_key_from_server.png | 3 + resource/lfs/icons/importance.png | 3 + resource/lfs/icons/importkey_editor.png | 3 + resource/lfs/icons/inbox.png | 3 + resource/lfs/icons/info.png | 3 + resource/lfs/icons/junk.png | 3 + resource/lfs/icons/key_export.png | 3 + resource/lfs/icons/key_generate.png | 3 + resource/lfs/icons/key_import.png | 3 + resource/lfs/icons/key_package.png | 3 + resource/lfs/icons/keymgmt.png | 3 + resource/lfs/icons/keys12.jpg | 3 + resource/lfs/icons/keys13.jpg | 3 + resource/lfs/icons/kgpg_key2.png | 3 + .../lfs/icons/mimetypes/application-pdf.png | 3 + .../lfs/icons/mimetypes/image-x-generic.png | 3 + resource/lfs/icons/mimetypes/text-plain.png | 3 + resource/lfs/icons/mimetypes/unknown.png | 3 + resource/lfs/icons/misc_doc.png | 3 + resource/lfs/icons/quote.png | 3 + resource/lfs/icons/receive_email.png | 3 + resource/lfs/icons/refresh.png | 3 + resource/lfs/icons/sent.png | 3 + resource/lfs/icons/server.png | 3 + resource/lfs/icons/signature.png | 3 + resource/lfs/icons/ssh-key.png | 3 + resource/lfs/icons/statusbar_icon.png | 3 + resource/lfs/icons/trash.png | 3 + resource/lfs/icons/txt.png | 3 + resource/lfs/icons/undo.png | 3 + resource/lfs/icons/up-arrow.png | 3 + resource/lfs/icons/up.png | 3 + resource/lfs/icons/verify.png | 3 + resource/lfs/icons/warning.png | 3 + resource/lfs/icons/wizard_banner.png | 3 + resource/lfs/macOS/GnuPG/agent/gpg-agent | 3 - resource/lfs/macOS/GnuPG/bin/gpgconf | 3 - resource/lfs/macOS/GnuPG/bin/gpgconf-original | 3 - resource/lfs/macOS/GnuPG/dirmngr/dirmngr | 3 - resource/lfs/macOS/GnuPG/g10/gpg | 3 - resource/lfs/macOS/GnuPG/kbx/keyboxd | 3 - .../lfs/macOS/GnuPG/libs/libassuan.0.dylib | 3 - .../lfs/macOS/GnuPG/libs/libgcrypt.20.dylib | 3 - resource/lfs/macOS/GnuPG/libs/libgmp.10.dylib | 3 - .../lfs/macOS/GnuPG/libs/libgnutls.30.dylib | 3 - .../lfs/macOS/GnuPG/libs/libgpg-error.0.dylib | 3 - .../lfs/macOS/GnuPG/libs/libhogweed.6.6.dylib | 3 - resource/lfs/macOS/GnuPG/libs/libidn2.0.dylib | 3 - resource/lfs/macOS/GnuPG/libs/libintl.8.dylib | 3 - resource/lfs/macOS/GnuPG/libs/libksba.8.dylib | 3 - .../lfs/macOS/GnuPG/libs/libnettle.8.6.dylib | 3 - resource/lfs/macOS/GnuPG/libs/libnpth.0.dylib | 3 - .../lfs/macOS/GnuPG/libs/libp11-kit.0.dylib | 3 - .../macOS/GnuPG/libs/libreadline.8.2.dylib | 3 - .../lfs/macOS/GnuPG/libs/libtasn1.6.dylib | 3 - .../lfs/macOS/GnuPG/libs/libunistring.5.dylib | 3 - .../lfs/macOS/GnuPG/libs/libusb-1.0.0.dylib | 3 - resource/lfs/macOS/GnuPG/scd/scdaemon | 3 - resource/lfs/macOS/GnuPG/sm/gpgsm | 3 - .../lfs/macOS/GnuPG/tools/gpg-connect-agent | 3 - .../pixmaps/pub.gpgfrontend.gpgfrontend.png | 3 + .../pixmaps/pub.gpgfrontend.gpgfrontend.png | Bin 9155 -> 0 bytes scripts/install-qt-env.sh | 3 + src/CMakeLists.txt | 8 +- 202 files changed, 343 insertions(+), 196 deletions(-) delete mode 100644 resource/gpgfrontend/usr/share/applications/gpgfrontend.desktop delete mode 100644 resource/gpgfrontend/usr/share/icons/hicolor/128x128/apps/GpgFrontend.png delete mode 100644 resource/gpgfrontend/usr/share/icons/hicolor/256x256/apps/GpgFrontend.png delete mode 100644 resource/gpgfrontend/usr/share/icons/hicolor/32x32/apps/GpgFrontend.png delete mode 100644 resource/gpgfrontend/usr/share/metainfo/pub.gpgfrontend.gpgfrontend.metainfo.xml delete mode 100644 resource/hicolor/128x128/apps/pub.gpgfrontend.gpgfrontend.png delete mode 100644 resource/hicolor/256x256/apps/pub.gpgfrontend.gpgfrontend.png delete mode 100644 resource/hicolor/32x32/apps/pub.gpgfrontend.gpgfrontend.png delete mode 100644 resource/icons/archive.png delete mode 100644 resource/icons/button_cancel.png delete mode 100644 resource/icons/button_copy.png delete mode 100644 resource/icons/button_cut.png delete mode 100644 resource/icons/button_delete.png delete mode 100644 resource/icons/button_next.png delete mode 100644 resource/icons/button_ok.png delete mode 100644 resource/icons/button_paste.png delete mode 100644 resource/icons/button_previous.png delete mode 100644 resource/icons/check.png delete mode 100644 resource/icons/configure.png delete mode 100644 resource/icons/decrypted.png delete mode 100644 resource/icons/decrypted_verified.png delete mode 100644 resource/icons/down.png delete mode 100644 resource/icons/drafts.png delete mode 100644 resource/icons/edit.png delete mode 100644 resource/icons/email.png delete mode 100644 resource/icons/encrypted.png delete mode 100644 resource/icons/encrypted_signed.png delete mode 100644 resource/icons/error.png delete mode 100644 resource/icons/exit.png delete mode 100644 resource/icons/export_key_to_clipboard.png delete mode 100644 resource/icons/export_key_to_file.png delete mode 100644 resource/icons/file-browser.png delete mode 100644 resource/icons/file.png delete mode 100644 resource/icons/fileencrytion.png delete mode 100644 resource/icons/fileopen.png delete mode 100644 resource/icons/fileprint.png delete mode 100644 resource/icons/filesave.png delete mode 100644 resource/icons/filesaveas.png delete mode 100644 resource/icons/flag-fill.png delete mode 100644 resource/icons/folder.png delete mode 100644 resource/icons/format-line-spacing-double.png delete mode 100644 resource/icons/format-line-spacing-normal.png delete mode 100644 resource/icons/format-line-spacing-triple.png delete mode 100644 resource/icons/gnupg.png delete mode 100644 resource/icons/gpgfrontend-logo.png delete mode 100644 resource/icons/gpgfrontend-logo_small (copy).png delete mode 100644 resource/icons/gpgfrontend-logo_small.png delete mode 100644 resource/icons/gpgfrontend.png delete mode 100644 resource/icons/help.png delete mode 100644 resource/icons/import_key_from_clipboard.png delete mode 100644 resource/icons/import_key_from_file.png delete mode 100644 resource/icons/import_key_from_server.png delete mode 100644 resource/icons/importance.png delete mode 100644 resource/icons/importkey_editor.png delete mode 100644 resource/icons/inbox.png delete mode 100644 resource/icons/info.png delete mode 100644 resource/icons/junk.png delete mode 100644 resource/icons/key_export.png delete mode 100644 resource/icons/key_generate.png delete mode 100644 resource/icons/key_import.png delete mode 100644 resource/icons/key_package.png delete mode 100644 resource/icons/keymgmt.png delete mode 100644 resource/icons/keys12.jpg delete mode 100644 resource/icons/keys13.jpg delete mode 100644 resource/icons/kgpg_key2.png delete mode 100644 resource/icons/mimetypes/application-pdf.png delete mode 100644 resource/icons/mimetypes/image-x-generic.png delete mode 100644 resource/icons/mimetypes/text-plain.png delete mode 100644 resource/icons/mimetypes/unknown.png delete mode 100644 resource/icons/misc_doc.png delete mode 100644 resource/icons/quote.png delete mode 100644 resource/icons/receive_email.png delete mode 100644 resource/icons/refresh.png delete mode 100644 resource/icons/sent.png delete mode 100644 resource/icons/server.png delete mode 100644 resource/icons/signature.png delete mode 100644 resource/icons/ssh-key.png delete mode 100644 resource/icons/statusbar_icon.png delete mode 100644 resource/icons/trash.png delete mode 100644 resource/icons/txt.png delete mode 100644 resource/icons/undo.png delete mode 100644 resource/icons/up-arrow.png delete mode 100644 resource/icons/up.png delete mode 100644 resource/icons/verify.png delete mode 100644 resource/icons/warning.png delete mode 100644 resource/icons/wizard_banner.png create mode 100644 resource/lfs/app-image/gpgfrontend/usr/share/applications/gpgfrontend.desktop create mode 100644 resource/lfs/app-image/gpgfrontend/usr/share/icons/hicolor/128x128/apps/GpgFrontend.png create mode 100644 resource/lfs/app-image/gpgfrontend/usr/share/icons/hicolor/256x256/apps/GpgFrontend.png create mode 100644 resource/lfs/app-image/gpgfrontend/usr/share/icons/hicolor/32x32/apps/GpgFrontend.png create mode 100644 resource/lfs/app-image/gpgfrontend/usr/share/metainfo/pub.gpgfrontend.gpgfrontend.metainfo.xml create mode 100644 resource/lfs/hicolor/128x128/apps/pub.gpgfrontend.gpgfrontend.png create mode 100644 resource/lfs/hicolor/256x256/apps/pub.gpgfrontend.gpgfrontend.png create mode 100644 resource/lfs/hicolor/32x32/apps/pub.gpgfrontend.gpgfrontend.png create mode 100644 resource/lfs/icons/archive.png create mode 100644 resource/lfs/icons/button_cancel.png create mode 100644 resource/lfs/icons/button_copy.png create mode 100644 resource/lfs/icons/button_cut.png create mode 100644 resource/lfs/icons/button_delete.png create mode 100644 resource/lfs/icons/button_next.png create mode 100644 resource/lfs/icons/button_ok.png create mode 100644 resource/lfs/icons/button_paste.png create mode 100644 resource/lfs/icons/button_previous.png create mode 100644 resource/lfs/icons/check.png create mode 100644 resource/lfs/icons/configure.png create mode 100644 resource/lfs/icons/decrypted.png create mode 100644 resource/lfs/icons/decrypted_verified.png create mode 100644 resource/lfs/icons/down.png create mode 100644 resource/lfs/icons/drafts.png create mode 100644 resource/lfs/icons/edit.png create mode 100644 resource/lfs/icons/email.png create mode 100644 resource/lfs/icons/encrypted.png create mode 100644 resource/lfs/icons/encrypted_signed.png create mode 100644 resource/lfs/icons/error.png create mode 100644 resource/lfs/icons/exit.png create mode 100644 resource/lfs/icons/export_key_to_clipboard.png create mode 100644 resource/lfs/icons/export_key_to_file.png create mode 100644 resource/lfs/icons/file-browser.png create mode 100644 resource/lfs/icons/file.png create mode 100644 resource/lfs/icons/fileencrytion.png create mode 100644 resource/lfs/icons/fileopen.png create mode 100644 resource/lfs/icons/fileprint.png create mode 100644 resource/lfs/icons/filesave.png create mode 100644 resource/lfs/icons/filesaveas.png create mode 100644 resource/lfs/icons/flag-fill.png create mode 100644 resource/lfs/icons/folder.png create mode 100644 resource/lfs/icons/format-line-spacing-double.png create mode 100644 resource/lfs/icons/format-line-spacing-normal.png create mode 100644 resource/lfs/icons/format-line-spacing-triple.png create mode 100644 resource/lfs/icons/gnupg.png create mode 100644 resource/lfs/icons/gpgfrontend-logo.png create mode 100644 resource/lfs/icons/gpgfrontend-logo_small (copy).png create mode 100644 resource/lfs/icons/gpgfrontend-logo_small.png create mode 100644 resource/lfs/icons/gpgfrontend.png create mode 100644 resource/lfs/icons/help.png create mode 100644 resource/lfs/icons/import_key_from_clipboard.png create mode 100644 resource/lfs/icons/import_key_from_file.png create mode 100644 resource/lfs/icons/import_key_from_server.png create mode 100644 resource/lfs/icons/importance.png create mode 100644 resource/lfs/icons/importkey_editor.png create mode 100644 resource/lfs/icons/inbox.png create mode 100644 resource/lfs/icons/info.png create mode 100644 resource/lfs/icons/junk.png create mode 100644 resource/lfs/icons/key_export.png create mode 100644 resource/lfs/icons/key_generate.png create mode 100644 resource/lfs/icons/key_import.png create mode 100644 resource/lfs/icons/key_package.png create mode 100644 resource/lfs/icons/keymgmt.png create mode 100644 resource/lfs/icons/keys12.jpg create mode 100644 resource/lfs/icons/keys13.jpg create mode 100644 resource/lfs/icons/kgpg_key2.png create mode 100644 resource/lfs/icons/mimetypes/application-pdf.png create mode 100644 resource/lfs/icons/mimetypes/image-x-generic.png create mode 100644 resource/lfs/icons/mimetypes/text-plain.png create mode 100644 resource/lfs/icons/mimetypes/unknown.png create mode 100644 resource/lfs/icons/misc_doc.png create mode 100644 resource/lfs/icons/quote.png create mode 100644 resource/lfs/icons/receive_email.png create mode 100644 resource/lfs/icons/refresh.png create mode 100644 resource/lfs/icons/sent.png create mode 100644 resource/lfs/icons/server.png create mode 100644 resource/lfs/icons/signature.png create mode 100644 resource/lfs/icons/ssh-key.png create mode 100644 resource/lfs/icons/statusbar_icon.png create mode 100644 resource/lfs/icons/trash.png create mode 100644 resource/lfs/icons/txt.png create mode 100644 resource/lfs/icons/undo.png create mode 100644 resource/lfs/icons/up-arrow.png create mode 100644 resource/lfs/icons/up.png create mode 100644 resource/lfs/icons/verify.png create mode 100644 resource/lfs/icons/warning.png create mode 100644 resource/lfs/icons/wizard_banner.png delete mode 100755 resource/lfs/macOS/GnuPG/agent/gpg-agent delete mode 100755 resource/lfs/macOS/GnuPG/bin/gpgconf delete mode 100755 resource/lfs/macOS/GnuPG/bin/gpgconf-original delete mode 100755 resource/lfs/macOS/GnuPG/dirmngr/dirmngr delete mode 100755 resource/lfs/macOS/GnuPG/g10/gpg delete mode 100755 resource/lfs/macOS/GnuPG/kbx/keyboxd delete mode 100644 resource/lfs/macOS/GnuPG/libs/libassuan.0.dylib delete mode 100644 resource/lfs/macOS/GnuPG/libs/libgcrypt.20.dylib delete mode 100644 resource/lfs/macOS/GnuPG/libs/libgmp.10.dylib delete mode 100644 resource/lfs/macOS/GnuPG/libs/libgnutls.30.dylib delete mode 100644 resource/lfs/macOS/GnuPG/libs/libgpg-error.0.dylib delete mode 100644 resource/lfs/macOS/GnuPG/libs/libhogweed.6.6.dylib delete mode 100644 resource/lfs/macOS/GnuPG/libs/libidn2.0.dylib delete mode 100644 resource/lfs/macOS/GnuPG/libs/libintl.8.dylib delete mode 100644 resource/lfs/macOS/GnuPG/libs/libksba.8.dylib delete mode 100644 resource/lfs/macOS/GnuPG/libs/libnettle.8.6.dylib delete mode 100644 resource/lfs/macOS/GnuPG/libs/libnpth.0.dylib delete mode 100644 resource/lfs/macOS/GnuPG/libs/libp11-kit.0.dylib delete mode 100644 resource/lfs/macOS/GnuPG/libs/libreadline.8.2.dylib delete mode 100644 resource/lfs/macOS/GnuPG/libs/libtasn1.6.dylib delete mode 100644 resource/lfs/macOS/GnuPG/libs/libunistring.5.dylib delete mode 100644 resource/lfs/macOS/GnuPG/libs/libusb-1.0.0.dylib delete mode 100755 resource/lfs/macOS/GnuPG/scd/scdaemon delete mode 100755 resource/lfs/macOS/GnuPG/sm/gpgsm delete mode 100755 resource/lfs/macOS/GnuPG/tools/gpg-connect-agent create mode 100644 resource/lfs/pixmaps/pub.gpgfrontend.gpgfrontend.png delete mode 100644 resource/pixmaps/pub.gpgfrontend.gpgfrontend.png create mode 100644 scripts/install-qt-env.sh diff --git a/gpgfrontend.qrc b/gpgfrontend.qrc index 7f4a9c68..cf035bc7 100644 --- a/gpgfrontend.qrc +++ b/gpgfrontend.qrc @@ -1,79 +1,79 @@ - +resource/lfs/icons/ - resource/icons/keymgmt.png - resource/icons/help.png - resource/icons/button_copy.png - resource/icons/gpgfrontend-logo.png - resource/icons/wizard_banner.png - resource/icons/gpgfrontend-logo_small.png - resource/icons/keys12.jpg - resource/icons/keys13.jpg - resource/icons/error.png - resource/icons/info.png - resource/icons/inbox.png - resource/icons/warning.png - resource/icons/archive.png - resource/icons/button_cancel.png - resource/icons/button_cut.png - resource/icons/button_ok.png - resource/icons/button_paste.png - resource/icons/button_delete.png - resource/icons/configure.png - resource/icons/decrypted.png - resource/icons/drafts.png - resource/icons/edit.png - resource/icons/email.png - resource/icons/encrypted.png - resource/icons/encrypted_signed.png - resource/icons/decrypted_verified.png - resource/icons/exit.png - resource/icons/export_key_to_file.png - resource/icons/file.png - resource/icons/fileencrytion.png - resource/icons/file-browser.png - resource/icons/fileopen.png - resource/icons/fileprint.png - resource/icons/filesave.png - resource/icons/filesaveas.png - resource/icons/flag-fill.png - resource/icons/folder.png - resource/icons/format-line-spacing-double.png - resource/icons/format-line-spacing-normal.png - resource/icons/format-line-spacing-triple.png - resource/icons/gnupg.png - resource/icons/gpgfrontend.png - resource/icons/importance.png - resource/icons/importkey_editor.png - resource/icons/import_key_from_clipboard.png - resource/icons/import_key_from_file.png - resource/icons/import_key_from_server.png - resource/icons/junk.png - resource/icons/key_export.png - resource/icons/key_generate.png - resource/icons/key_import.png - resource/icons/kgpg_key2.png - resource/icons/key_package.png - resource/icons/misc_doc.png - resource/icons/quote.png - resource/icons/receive_email.png - resource/icons/sent.png - resource/icons/server.png - resource/icons/signature.png - resource/icons/ssh-key.png - resource/icons/statusbar_icon.png - resource/icons/trash.png - resource/icons/txt.png - resource/icons/undo.png - resource/icons/verify.png - resource/icons/export_key_to_clipboard.png - resource/icons/mimetypes/application-pdf.png - resource/icons/mimetypes/image-x-generic.png - resource/icons/mimetypes/text-plain.png - resource/icons/mimetypes/unknown.png - resource/icons/button_previous.png - resource/icons/button_next.png - resource/icons/refresh.png - resource/icons/up.png + resource/lfs/icons/keymgmt.png + resource/lfs/icons/help.png + resource/lfs/icons/button_copy.png + resource/lfs/icons/gpgfrontend-logo.png + resource/lfs/icons/wizard_banner.png + resource/lfs/icons/gpgfrontend-logo_small.png + resource/lfs/icons/keys12.jpg + resource/lfs/icons/keys13.jpg + resource/lfs/icons/error.png + resource/lfs/icons/info.png + resource/lfs/icons/inbox.png + resource/lfs/icons/warning.png + resource/lfs/icons/archive.png + resource/lfs/icons/button_cancel.png + resource/lfs/icons/button_cut.png + resource/lfs/icons/button_ok.png + resource/lfs/icons/button_paste.png + resource/lfs/icons/button_delete.png + resource/lfs/icons/configure.png + resource/lfs/icons/decrypted.png + resource/lfs/icons/drafts.png + resource/lfs/icons/edit.png + resource/lfs/icons/email.png + resource/lfs/icons/encrypted.png + resource/lfs/icons/encrypted_signed.png + resource/lfs/icons/decrypted_verified.png + resource/lfs/icons/exit.png + resource/lfs/icons/export_key_to_file.png + resource/lfs/icons/file.png + resource/lfs/icons/fileencrytion.png + resource/lfs/icons/file-browser.png + resource/lfs/icons/fileopen.png + resource/lfs/icons/fileprint.png + resource/lfs/icons/filesave.png + resource/lfs/icons/filesaveas.png + resource/lfs/icons/flag-fill.png + resource/lfs/icons/folder.png + resource/lfs/icons/format-line-spacing-double.png + resource/lfs/icons/format-line-spacing-normal.png + resource/lfs/icons/format-line-spacing-triple.png + resource/lfs/icons/gnupg.png + resource/lfs/icons/gpgfrontend.png + resource/lfs/icons/importance.png + resource/lfs/icons/importkey_editor.png + resource/lfs/icons/import_key_from_clipboard.png + resource/lfs/icons/import_key_from_file.png + resource/lfs/icons/import_key_from_server.png + resource/lfs/icons/junk.png + resource/lfs/icons/key_export.png + resource/lfs/icons/key_generate.png + resource/lfs/icons/key_import.png + resource/lfs/icons/kgpg_key2.png + resource/lfs/icons/key_package.png + resource/lfs/icons/misc_doc.png + resource/lfs/icons/quote.png + resource/lfs/icons/receive_email.png + resource/lfs/icons/sent.png + resource/lfs/icons/server.png + resource/lfs/icons/signature.png + resource/lfs/icons/ssh-key.png + resource/lfs/icons/statusbar_icon.png + resource/lfs/icons/trash.png + resource/lfs/icons/txt.png + resource/lfs/icons/undo.png + resource/lfs/icons/verify.png + resource/lfs/icons/export_key_to_clipboard.png + resource/lfs/icons/mimetypes/application-pdf.png + resource/lfs/icons/mimetypes/image-x-generic.png + resource/lfs/icons/mimetypes/text-plain.png + resource/lfs/icons/mimetypes/unknown.png + resource/lfs/icons/button_previous.png + resource/lfs/icons/button_next.png + resource/lfs/icons/refresh.png + resource/lfs/icons/up.png diff --git a/resource/gpgfrontend/usr/share/applications/gpgfrontend.desktop b/resource/gpgfrontend/usr/share/applications/gpgfrontend.desktop deleted file mode 100644 index 8530e1d6..00000000 --- a/resource/gpgfrontend/usr/share/applications/gpgfrontend.desktop +++ /dev/null @@ -1,7 +0,0 @@ -[Desktop Entry] -Type=Application -Name=GpgFrontend -Comment=A Cross-Platform OpenPGP Frontend Software -Exec=GpgFrontend -Icon=GpgFrontend -Categories=Utility; diff --git a/resource/gpgfrontend/usr/share/icons/hicolor/128x128/apps/GpgFrontend.png b/resource/gpgfrontend/usr/share/icons/hicolor/128x128/apps/GpgFrontend.png deleted file mode 100644 index 5c24791fc5a4e6f62a7fcf44d776b6ad73d5bc6b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3819 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 diff --git a/resource/gpgfrontend/usr/share/icons/hicolor/256x256/apps/GpgFrontend.png b/resource/gpgfrontend/usr/share/icons/hicolor/256x256/apps/GpgFrontend.png deleted file mode 100644 index b3268b012a8f9e830ab66921549b900a8126e090..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9155 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 diff --git a/resource/gpgfrontend/usr/share/icons/hicolor/32x32/apps/GpgFrontend.png b/resource/gpgfrontend/usr/share/icons/hicolor/32x32/apps/GpgFrontend.png deleted file mode 100644 index c90e1d1d1fa99a1471ef11fa979ae59105fe407e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3533 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=ffJ&Z>}zlAy$Lg@U5|w9K4Tg_6pG zRE5-v%rpjuid&_9r+E(>@HoGprKB7n?|sd}bppfP1&`hPVp(jz$hvqba9sRYIe!bU zgxj@6)w>pN*fJ%2W?v_h&Vz-f>fTdNd#=q^pPFe?ePG@K$-0bJch7I&$lv!{@2Xz= zE89rN@~kPn;h!`o(OWkyPNTnaWtDQQ+gE^bgGfIM5JjFOT9D}DX)@^Za$W4-*MbbUihOG|wN zBYh(yU7!lx;>x^|#0uTKVr7sK5Hnm-i<65o3raHc^Atd4CMM;Vme?vO0p%5-hJzvi zZhBrZG!THnp%0SLH`FuGM^;{vnTA6-NCu%Cq}eJUvm!Mo!X+~|HLn=x1Y0FzBd}Qr z$w*8|kU3VKxryni;h8BV8E{PqagWr@^bDXkpr(N({EISEf&K^i)K{XT0mh#doXGVNnt!1T%*B7QV5WwcrVpX z{dMYC!M!V&&%G*oxA*yT_va=+@@N?)?Fgk}-?@ zmtH!Olw9+3(iwFw)i%ZI#wS@^Og}BY|NcA2rc&v+r9*1!gucGVKWg^XY!>{nm(6U- zv}w#g{@!LZ@SQwyqJ(*VU(zf!hNn-TnwY;YzuFwb*mAh^+>gu4&-?hFpWxv$*=Lzd zZEWn?)r;;tODl|wTxrbLx+*g(>xe3 zVi|XM9ek3KblCJ`#Ubm4cf1GfH<`PxUgks$xIANkYE<$m!{m^L)=(O`n*!Vn@deFU{~& z8&lJ>TeCecWtRW3ms{pzCHUf%)pyAq;SpMC+&9e@l|Fg>-t>a1Qg?-pk`a56;c||x zeR~-Ex=*ZWKNoyJbM5*4QQt)}WF?trxuhhh`u{)m(OhsRpGlVN&g~D+YdYlT@4vq- qwZ9|e&(i;v8nZ6`dc*X8aSgl0bq$lG=leK79Uf0tKbLh*2~7Z`%4MVg diff --git a/resource/gpgfrontend/usr/share/metainfo/pub.gpgfrontend.gpgfrontend.metainfo.xml b/resource/gpgfrontend/usr/share/metainfo/pub.gpgfrontend.gpgfrontend.metainfo.xml deleted file mode 100644 index 49d409e5..00000000 --- a/resource/gpgfrontend/usr/share/metainfo/pub.gpgfrontend.gpgfrontend.metainfo.xml +++ /dev/null @@ -1,35 +0,0 @@ - - - - pub.gpgfrontend.gpgfrontend - FSFAP - GPL-3.0+ - GpgFrontend - Take the initiative to protect privacy in your own hands - - -

- GpgFrontend is a Powerful, Easy-to-Use, Compact, Cross-Platform, and Installation-Free OpenPGP Crypto Tool. -

-

- By using GpgFrontend, you can quickly encrypt and decrypt text or files. - Or at the same time as the above operations, you can add your own signature - to let others know that this document or this paragraph of text was issued by you. -

-

For moew information visit https://gpgfrontend.pub/

- -
- - gpgfrontend.desktop - - - - Main Window - https://raw.githubusercontent.com/saturneric/Blob/master/screenshots/keygen_ubuntu.png - - - - https://gpgfrontend.pub/ - GNOME - Saturneric -
\ No newline at end of file diff --git a/resource/hicolor/128x128/apps/pub.gpgfrontend.gpgfrontend.png b/resource/hicolor/128x128/apps/pub.gpgfrontend.gpgfrontend.png deleted file mode 100644 index 5c24791fc5a4e6f62a7fcf44d776b6ad73d5bc6b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3819 zcmVPx#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D4uDBSK~#8N?VWp2 zRM#EH&%L_~%UeK%U{H*p2IC`%8U>7riX^o)NjtTjrqecmIn!pw7pU})A~W$FV@;gt zkY=Wt{?RccX)?(~qaYPfkvud;4KXS;0=^(T-Gya$@9pn*_b|;UclYj-doJfQbGi5Y zF6^>r>m_n9`Ql^NV8|8HF%R4}2vz!FB|$>!PF0jceDgy#wFV|9>OIge3>| z@86$hx4Vi&k^BOZkojahyj84nlcNbJD0ks>6EeS6lE{0a=xo}&d2_$#Zs-W90LsfN zV`F0a3*cq{49P|C&qsUiaDoBE&Rb^^vXdt$$6TrV;Tf08u1!!3U(#q#=ljv6AuQ zQ^}Mm*<|L-Jd%_15Xs0$Cy9v(#ANb&U{u!#f;>MuS{hH2Bckda%FD~mF)@j|K}qW% zsd->QZ^XsLDVdv{J()c8P&P?PNd{qyaG2l_u!@6rj-(tzLr!w*)@}0LcUMS9M+fQc z?E{-%BdfXtKHu6cTQkl&;E&jt_(@GoCC@&)f@EbqNG;(bCub^o;e}PuuuP;DeFGjK z%IOqT6{{)$aQ{q{esudwmo6a_CuUMh_(5-j)r{4u|M4;CUEK0u3{m z`72f|gD&1AYKa`!tt>3eSK0`A1`4tO-Cfn*p6)Z*8;?Aa2QB^_rPUs3uz@*y_9G-O zZ^o#+f2d$q09fkh&3lZdMhEN>ELiY3NlNlM+Nx`q6ae=1AANL=UxPb821oyJl<)iR zTb02co6V-!0wFm$nLPY(E={oqlLDADDNAXM2jY4=Iy%YW!$-+mZ~cS3`|iKVJMX*) z*KaE}9Q_M~xpU`6v=JIgm=ge&{@mQaGT-4CA|HKph+Mqb4BcGM_&*+Kzi{CjQd?U` z`uqLgfEynlr%W!f*cM<;064UZ9>8B*E*Cj@vXOLkb*Z}hD_2^`nKS47t`0Ecv$M0H zO~Br4B69-B%*-I;#`)jq!g2hYH*a~(T=WL5t!)9d2Qo4;lx`_&FzEpT8RH)u98?;6 zzUb=erdR%f|5Ik>12n}B%n2aSad_;qX&JP^1tWoykdQ#H*nv3#1mgaY=;&x=afmOl zTNh|!j)kG&dtpuhS~77YaLi!Il0p!IdKd#-Duz?OfeL`P0V06Q<)l~sg9|+J^A{@9 z#XrtuyhhvN#RViSE$}%oZ{pG`%n88h3|s)n{P~ZQ)vJF_7A<;0nM;^8Yo_8EUVQOa z0go>X<8($Ov|mVJP5`)YGg#0Q6c#Qb#l_2&16L8@6mPKLSOaS?CxGtm9(ol#II0+m zWn;sHLY$F?IRX6eLnpn`AGdGcp;zp{oB+DIdUUxmSCV9M>((urVh092Ko{xj3wgxU zpy}-FBzN!n9%1T` znCYK=_64)0A7NGi_~oBD^A+jt4s8BD6tuP7P?ndmSoaUZtN;*Pym92nF=DgXsU>n; zzupS(T}=iC2B?Kim=*wbzc3@3nm(tN$bd`Aj~zQsdU|@Pg-`^N2myFJ!F6!SHA|~yAp|f?d;1OY z;fEiSg6EM*Bp2>`({0_+{25Kf(HQl^gsSww=p4E$Rh zZ}{MYkCZN_!{MNJjf0mMLB$v&@DIVPkQpto)M92~0};DvSb}9)(!AX3`t>$)`t)a{ zuI>c6a^)%+9ArAgrb$;A32WbTCv zKqI*I8<&4yz3TTP`gIK#fCg~m=ht6fASX^VGQ9$LB)9;4fEj-2(k0T+a7q^&Q9=zD zfEO_Hzxk$FSpjUs)j$XrfC|{)!$qK2@-fP&QQ-nm0XLh})cl9^_ur)!W5NZX0=oP_ zB8RgE7k~;FkrbagYV?I6TmULy#$({f+}s>PFA?Jc@B#*o#z~-=Gaojr2)F=zfI+60 zEqjVgpPp;T>VOMC15r^?iUEONSdp^%$WvSjLP1Fv94mQ>XpjDvl9AKl$WS($f>V zDCK%WRRGY~G1S~A*4>vcUnO6CbzXB!zdLt2NOg5>z@9@7z{i#ZK~i1DEWV|hK3X5;>B-O8+2G* zVCG}p&pLuY943=nHF}n+0Q&kwa2+K4VYfyBd{%IMeS;EE>RxcsXIQaSZ^j{=u*?2I}tJuBfO`eVCD|06IG2 zT%t%?Y0{8j2$=f%lS<@qtQs&b5C(%X)?kltnO=;D>cBR93Bs;jul)&rWgk=p#@Y^Z z54hV0CwkER8!7YQvp7vAaYbqA`s37eAF3We5Cj?i_;Yv}cKbjY!8QN50?1e;U&+I7 z9S+%RNOe^KcyK{~Nw`K69EJcfBlS*auh)jWR{@lkmfFDm*U%(~DTG0&#jBwK=yflf z4-bHDgnR-@>YzyuGsu@M7U?8SsNz!qHe2smIQ<_^4mra}2eMe22@Jj%Q$t3>`{_FsCHyj-R zIf3IfuM7_M9`{t&+VOj*Lv?kvv#4k(xEfO$ym219v4!5^j0$qEC<^=R_T)Vk73=*D zU=+|+mztWIq2l7@wX!VUg@0fHsLo1naUuvfVcff3Vz>9b0hu3A1dD+8I-w^>PEKsf z%9>OwN%A}pK?c3W2{Tyz!uS0t9KRbF=sWCfzTX!i+2^!#=d1bfQe|*FWAv%x(Z*Bi zg(Dz=lCrY(K~L0$YNMM_RaGTkz1sRb2;lc{6oV;>-s6OZZs>j0noOoWiHWgi)~s3M z|D(`GAf!7T(KBt|{`z>c+5HN zMRM5b6x(xiALv@WdUaUmUq@N;f{BkPobJI2;a# h!{Kl^oUlX4{{W6ihC|c}$xr|Q002ovPDHLkV1nA${-^)| diff --git a/resource/hicolor/256x256/apps/pub.gpgfrontend.gpgfrontend.png b/resource/hicolor/256x256/apps/pub.gpgfrontend.gpgfrontend.png deleted file mode 100644 index b3268b012a8f9e830ab66921549b900a8126e090..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9155 zcmZ`E7pacZz?vh3tDanD23TxzY^BqO7x z6;1i%4;3n2dK*`PD~D+Rbe3>3SqSt0^MK3bE*&@8AO9KoeROnW)x@L9)>U9!Lea0R z_}sn_{>^RY9h8;1zcAIlyYNO@diU_}q5nDBxhw_0U%T6b$XMTolRm!x^6JWZOzLVc zXJ-EUr#|sD4WMT{Z(?gI*+!6>IKs=F(xnld+PU>wFb7|UykpK=1L8DT&|*Qd`0PFhMWf7L_fUuG`&^6 zTWs=-VtlieYqN7FAVuq&dh5U9?~q!%wJZO4R!YN=j;~swR9^bpPI~rGh(I=<4gYshM7E)R$E> z@C2qy419Cj-Pnkx4UiwDCVA{2ab>^sJf6ztPF`Nl#Vqot>UO zrK&d2a#KWQ9<~aIQ%uCJ=kY6Y^K(h6zTI6%m`JO~wP*BcNXYhdZl}yov(N79jEw#W zteI+g?y)2&I(O`n`x-C8iu27-8ZR-bQHV~F|7}3#d){QcDxFb^p3t;se9GGc9H*jnu?xRl* z%P=^MOcQv~3Hp{NO%ie9BqwJ(LQKqc`?s5vHH6kMDE%HGi|@)!XV>cLq_{%iQ|0T^ zaN0Yai`ZIuXUHDS5hOgys!l*1|nq z^c)+hDjhggG4lP9;FnT+3_qK0Rv~**ShOJ0Nq3T8b%CSAXNK2#l4GbyPXAR@DTLpLbExZJYqXGC1Rq&vy2-0(`%`eZn9c@Rfs5DFK?izSy0zAMp+0x29Rq} zKYIJsoH;y>+(BSMFY8(alDDy((l<{D$`Eng2KVEyY>PVP(bNA{f-8!uva>bvCP9|! zy?6CBUvX|K!y0ds;3!Gsl8S*U#dhFbc4FN4q~EhGLH_-Ng8=87%TrXQxbGjYj?m9^ z_6iET9H)z{Q2M2y@Wj&b)1&OD_XHJuyu1-2na@4=fI*v8i$RB`05=~rc`{wss&ep1 zHBV^}<{LE_9!Jr<{q>Za{miZa9mzdY`^897D?55Uen^VW2E(H5 zMPJ%<`!2smw_hCJdC%V7bPPMryUj2nY=0TH+!0z`|J+E!@DmlC&ik%3%gN~SPXyr= z6RuHGESY81nrQ5jlWcVV%YCM?dgdhfx&`pcgqKpU>y@-@G^u6KJ9;{~+{yWoPa^hp zaY6cEgl)V0yFWi{or}ZCR)r^##uOd~;u-RHT8$~R~1#&5p5%*_z;sn&+ZYF{Qk{6 zy&|0x85y}wn|Ad=SX4A07Z-PGYpbYwANI;hRSKuyU9ku2&X{KgecadA7e`Gt0tXWP z5><4w)ppE|I$-GR&Dhvvr!am0qxEN=Q`71?#Kfn?`T0H0zn+^TYzvGpv^Y1ef7P=p zO-e54e0!CuHvi{=?D*_#VYz8jF`s#B{xk6wU5P9-vGd@e`+8EaLDseAQ|C8(IVNe; z_X#?KAMx`;mlD;Ag9m1Cn15;O>9O-ZGd}guGchS~bS$n~sCKyE=H~A09g|QdvQFr= z>XX~r-8GPul>8$hAi!xGSlrh36M{3yEnUU4*{>;qDhu{G{K=A+cJ&?akcVciLzS;; zQKazZlF0aSb=AuHM9A(*(FdWz5~CWs;@()A;>*i##m&tsrUA9rzY6@2V)?fk5hzYK zT|K>ziC-EU;XN;={HR|lCF?Lp-@$1G*!m+F#OvGksS6Yo!Idw%p?ZP5R8-%ZJU5HHcV~)HxzkI;Jnd9>Ev$|G`BQx1)LkvG=*RwNJi>u*BToeCf?D?@p{mtA^?A{XU$i?;AtsAgP5Ya~V0gFpSRAP473jYR#H8OhT|w zjIVDuL>Gm{COKHK;``ZwaRMwdPJj`Ne&CM&qChwt;s-4cQdX|4H$srf=k@-nVR>Ry zZId*pltTlqAlJlKm7@w#GoeA3pn}T&(Y2cw6Q7ml6EIH^!+5ULywI}&hGqss%=%L7<^x8 zH7t76#GDeUJN+&Q_)W+?b%S1U@}TK?{GKRb6%DMS{08cU*(IWQ%$nuP z%mef8YY8ofh`22{H)P}vu^HqT@O{vx(Z&tpXt*4sqP0&T_i~yk75s1;Gieqn09fPv z8Tqu9mbf=qdY~5ffCgrHox-86!>!LFWY0FlK>)$A8_sZ%Wh7#>(h&&O0*>TuZ6iLY zh27r1vfrm-`KBFKGcxc!hAl`Y44n8-pqjMX_Mspg*XliMGyWs+MF=<%&+?p*df4E3 zp@zFE2gkr`%cW3^8hl{x?g{1uq(Tj8tT!fREes6A`EW072!kkxeKVdqzrD{Ue;olv zvc5zKw9@cOUp@#;He~G7e(Bb7R)bsam34iEq_nllC$}dm8OV~vjLYq|kGTm~=jpcE*|K@0> zLzDXn5CEp4kM+G=IzpeE6f=k~Yc15b@s-^uKdx-V$Eu9pjKVu`N47x&+*EG%>??}a z`ZZ}?zw-t6)fHt;6#rio*~((lseJWa6{HW+NmOyL6|@lbX`0L-^x{pa!T-Q-bFXm zWj=l#%55+oXmZt2#Ay}ukjF_%J5phj?)HZiLZ7&-BRgwUPjOPJSWup)BJ+!z2*Fj6f^9TACFtQt~=N64&WE zmynEVo_{>mr!0KMFeLi?KA1@wkSEP92G7Mc^U!+dVU;ri31nQXohp?TC>8(QgSPu7I^nKmQP42M74{tOX?u$sD~`h8_Oq-+R1u zg>F$LTswbU%tsS0`)x$}hVes`j0~lF0b9qv?|OPvuOXl>92XgcK~V6y>JKbS2vYby z1U4+0QU#E99vV^~?{1D|JNc}Jfb0nr1+0V;^h#X*-iQm}AxZB;fEK$+W@zlIPBSG4 zqM*L|mlY99wb%A)sXW_r9WV@U+UcCopXhSp=7Hjsw&jVQo}S~yQGp%Ka+M1&2@2N0 z9vA#)_(OZVEd_r=^wu8)^*A1JnhM1^j$>x6!p*y^4QKqp^nmQG za*E^BN8yqY`pAH$-{&ns4;de_+yfFq@Q`SxkD8&TolCy1x*|(nc^}?~Q{SfaMVy}7 zjeN{?Y5e`>w5}p>dd~>493Bt?f(NO~Wew!>R*gxb(>>o;yQW?q`|8ASPRt@pEN-el zEDGw=EOHBcg_eL`yb+M!?v8-vs&74pd$&ZWr`xtu^W1QTg~>Tyoz0FkN30u*s>kQu zIrufAdol1N+(eXP3*<*c#J|D_AXMK~ou;Oy+GX(CaXx+WBqNPc4E$;o#0&{Vg-snQ zl6E@%lLLK`m*qV4BHBXUz_wEziRm%S)Dw`3=*H6?ImP0e#`%N|~Ka~aUzkgP053*Wg%HUeIk zlLbRxPwgqj{V}$2e0kZy)Y!w>^5o@>^QYI8(*M+p!dP^U;rxP06O4vR0v8#IlH|Gn zv~IeW(f`8GtRWG$3ytj^E>|Q2uS(tnvSB0uolEi7pe%Gujr zHJfwn=VF#L*0s0v;63QS#@7k*$W(5F5qX*;cO@aX|&b|KnbtE`ZY5eF# zCZankAwx!BEwGxbou5M?mu7vnSJm{08_)v4Fp~u%?}J4#p?f~9;I)Ka#kk!Bb26S} z*&|XMCZ@gl)A-uB{>2s)o&ye&yWb8 zsUd3~X0kjlHH4gYhJ<|`A}zU2w3G!w1TwhC7X#GVj($|A1p$;Xp?u)YF$>)mpMC9) zixD4(8~9`y>qPVSjDx=r|jCtg-@J$j^_t2LkCJ#5LzPvQR; zw(RekJ$Pb`&3c7CR%y|>{9k7*2_b-mV0FvI#+hUJ;cR*GbGhg|76HIaN&9~u z_bHR$@>M_WuVp|?v)GXqIuybzmPVz5Yxq*?f*i%gTza;)1zdc5KB@zL2r#T~c<+~x zp4k!`IzA4M6R;T`&XQDB&tA^q;^JDQ(Am-g1~M?=kwJ~!h*m5$uU0`pff_+P*1wh* zcqHsRuUqGbViESVE19EeSD%^W>{s)i-D7Ry6;;m5@kcdFhSg1617iH6-GV?4V{oN zNmy#+ROSGQrJV%wTMt@Mef)2gw45j+?uB%PfML~Ni;CdtS*C>t&ATMzVcT{Nf;zNX z09*sUf$cawUsp1Xi4?>Pi(r@@K8GxWyomWsMJ;%Zs^O`r?v+~OxtQwELD|#OQ^)V2 zuUT-P%ilBX4JFDZ85GNS7Dpb2N!n>oyu@!q04X7WTb`1Kvw$p_Y6`za`}>Rk)X6Ui zF=vxfgl)0dRKVO`KwuI$;?(Y>AxK#eQx;-Gr7~myWBi8uzOrR#0nraFqgeK+Ly?g7c3l?tLncOxPzf+jIZ|7gT;`V!LawkGU^1q6^6J{xS}m?gB2i;F9crQ!c3 zWIy^*2ww_ANSV0Z5peMq0~9-+`5v@B6u+0UC*D^CRdvXiLtY`I? zjt+~u`ucB@{%6JQ?LiNMLofnzKP(N33Q`?%@ZR{L_aGRA8Tx*b+WfzG*5;ZSym!E@ z_HXaTCs}8LcgxHuuCi$~5tKayR0M!BUE?igSZfJ{pTt30vTQgQHVKvs@PG4W8UuRY zp*(XmUtm~q2)PaFxx#?9C%5hZ4kBNH^PawfLa$x9^rL|Dd&*ao_S^9G~y;VW#=i?XIMlYx*tK5GI28+4RQ(gz5QySV2dX_}{5- z&xa3S`G5Zj2PSlDGOn>p{V43jk$%Sq!|?7@i3gnFm{wX!Nrr&KFzbM85{hxy-#)pT zmtpWp879%WWB~t<1Xvo)`+?_Z$ml{XEnpM@7~(?90N^QZ?=4~&9~(*l42qE zc6K=2dn`MD|6~@!7=S86-{o&t~V;^-6*W0RjMp-Cs2_^@8FRC(uK=iVAP` zLkWuD5{qJxReCT>HfcT1LY-5C5!YwJ2;5IZ*i1WF%39w;87_Q2BM9^7%J_>zjo8h%fDkGFt_F4yF_}tk+v$7H@?>Zn2w_ildU#cj9q{NIZ{aYqJ*m>r%>E1O5Ns0Kc6A^%{p;68 zT5sO9LNkqCukk~hGuo%KzOmwscfQbSkZA}*$&ph&th(v1ck;L7dqe!RP z1M%3fX;Ewyut_B+Ki~(H6qxgomxrO@IF`hmWXO8-*;x!ITPvN%%~!q8IIBj5xefO!4${?|6tc~D{W^&(yfFWAx zwcF05dr9$^@bUZ zzBLa)Oos90OWnnI%A=@lN@@WCpHhaum?1uqhhaKgU`aGncI!f1@KUN?qF-lGKfSYyl9)Fk!<;5PeX;d4-k)Vxp-` zOj3@66$Frh9G;N;V7CvAqqICB1M6^ZvDWXKI=;Go)3@7U%LBk3MCTn@5aDx#pU3&V z#CuO*I}O;g1I8wJJvbQC4ri?7*<7-j+;MXiV&MkSKG+dsXK|C42oZ82XYR4i-$)pm za9sE;nU`l~G%`G*0z9Cjqa4ilRN)iSkR_9ylxsbBQFhuAFZ6`-X~wkS=TdCIFfCBy z$#$#1Dg>29j%p_DwW4xIOIcS_17+RLX$2;~(;5}R$qr#6>K!^~xAXHhw>Xw=l~+a1 zCJP%!dSY`?^3jE&4-0Y(P>66KgS>Nz_MdbVl$NeO zCklaJY80`j!ZDC*{wB#}F7|Mn*e5s9=sWY>9`UfSeS_x(P0aRSKtN!?ea~P*=~2VK z9vFGre>xlOJPZr#-Ty^$eZeM11u$_KUkKJGeLT&ps1& z{?wFSdM88Raq%@8m`PsE_mCBYJ(z5qBTI9+)l*kLA&}Uc;%;JH&+_~c&#*9xLC+eo zGowUJW<_-*h5t@M7y`B8vx!O3ZGX?#68r@R_%;~osz@ShK^=E*~MT>Z+8LVs{%2Mo_w2J_qO4;GsY z0~drOC=sNOxO6&_ewvr5^T$EC}cW{bUi9smeLFTlCiJZrl+aQh>3;xf6zEldbh|q?Kk};(|H-~Z25j= zsJlCmU-EcZsC}<*H5PaxA|j4nzKX&^iFN^Ie7`#b9>sq(XAg&rsQls=k3Y?G4Zhkg zow-oOv%m&kE!6X(kYQ+I4hrQH2;4NUL;>RXyn;e7_o9qmnmD3#UsLLW*6#X3QBfSr zcIbFax?{@yEh8n!4@RH;03ZMDQaa>=K%=B}rp_H*Y;0M!)a6!Qmff}VyH*GyCp-8y zD%H5ZoW>q`btJdQDIMy%3}Kdm?F81W%>^5qm^9%n{c)+PSm(aKNknR~2Ys;fMubA! zf|Je4L$%3)7|NItxcl2h#r=6?WE!__+(%2gw zC!*N9?h}K$YtZ6s>L@Qin4Im%x~MmAVj=?r?dZ1jTbMjD2!(r)WZfK4`{0qCFY_b6 z`~szP^9s|O4J+`2e-dQ1L;yPtpE4(|dkw+jQe|52*6E_n>iFZ%_Y%*EY5m1d-m`>j+XFFCXx zRpPNC3zuOcHdw4aVK2+<(C0#BCMSOh-rL<3o12^4+8$r_!hbc?Y&(=TZ#bMqO%g>T z79Ut~@1_a@>H=%6DlzI>Z1F#y5d9NBxW)bsvw{W7~is(n>7uQ2P) z&NuVpc*OIUgTgm7!KkqLOeySBchT0c9S?cCsFCT_{{n z64&OU)-M|dZHn|-Cx8F=A#b{4y%;Ne)%q2QjZC@z8zmiwiQZCs*HFqT3SZ}ZzL+~X zwL`jIp-Aio4CF~=Bj{~C-p5+%s;J?HAZf9V#F2ffZ3tCqPQ1m}^f#jG!o#Br_C}X+ zQzaxrDn3Iu)BVuk0L}r_jUlHW=$s8sub8J-!!twW-3Ar%0x``EB@W=Jm! z8Tljbf`)v#tYzqb0Xb|>Q~&?~ diff --git a/resource/hicolor/32x32/apps/pub.gpgfrontend.gpgfrontend.png b/resource/hicolor/32x32/apps/pub.gpgfrontend.gpgfrontend.png deleted file mode 100644 index c90e1d1d1fa99a1471ef11fa979ae59105fe407e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3533 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=ffJ&Z>}zlAy$Lg@U5|w9K4Tg_6pG zRE5-v%rpjuid&_9r+E(>@HoGprKB7n?|sd}bppfP1&`hPVp(jz$hvqba9sRYIe!bU zgxj@6)w>pN*fJ%2W?v_h&Vz-f>fTdNd#=q^pPFe?ePG@K$-0bJch7I&$lv!{@2Xz= zE89rN@~kPn;h!`o(OWkyPNTnaWtDQQ+gE^bgGfIM5JjFOT9D}DX)@^Za$W4-*MbbUihOG|wN zBYh(yU7!lx;>x^|#0uTKVr7sK5Hnm-i<65o3raHc^Atd4CMM;Vme?vO0p%5-hJzvi zZhBrZG!THnp%0SLH`FuGM^;{vnTA6-NCu%Cq}eJUvm!Mo!X+~|HLn=x1Y0FzBd}Qr z$w*8|kU3VKxryni;h8BV8E{PqagWr@^bDXkpr(N({EISEf&K^i)K{XT0mh#doXGVNnt!1T%*B7QV5WwcrVpX z{dMYC!M!V&&%G*oxA*yT_va=+@@N?)?Fgk}-?@ zmtH!Olw9+3(iwFw)i%ZI#wS@^Og}BY|NcA2rc&v+r9*1!gucGVKWg^XY!>{nm(6U- zv}w#g{@!LZ@SQwyqJ(*VU(zf!hNn-TnwY;YzuFwb*mAh^+>gu4&-?hFpWxv$*=Lzd zZEWn?)r;;tODl|wTxrbLx+*g(>xe3 zVi|XM9ek3KblCJ`#Ubm4cf1GfH<`PxUgks$xIANkYE<$m!{m^L)=(O`n*!Vn@deFU{~& z8&lJ>TeCecWtRW3ms{pzCHUf%)pyAq;SpMC+&9e@l|Fg>-t>a1Qg?-pk`a56;c||x zeR~-Ex=*ZWKNoyJbM5*4QQt)}WF?trxuhhh`u{)m(OhsRpGlVN&g~D+YdYlT@4vq- qwZ9|e&(i;v8nZ6`dc*X8aSgl0bq$lG=leK79Uf0tKbLh*2~7Z`%4MVg diff --git a/resource/icons/archive.png b/resource/icons/archive.png deleted file mode 100644 index 37a87950fbb17e9127e5d52667e9a0e9a16bcc56..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4613 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 diff --git a/resource/icons/button_cut.png b/resource/icons/button_cut.png deleted file mode 100644 index a5e0c2d83a2b967b49afc68b5be1a2d3a4e66d6c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2828 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

@yvRVDxpp(b1W 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 diff --git a/resource/icons/button_previous.png b/resource/icons/button_previous.png deleted file mode 100644 index 679802456f8cca00252859c82e4387bcbe0206d0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5914 zcmX|Fc|4Te`<}6kB3T+)V=yry`x03O(J0JVB0ELOShDYCRB1P87K7))sUb3f@ zeF?>=#E`K>w%_CZ{6615W}eS8^PKyf`<(l}p6j|2Fs9epSp`@@AP~C|>Y6!l?K}CL zf&kxDw@JAm(D`ph*K{pIUea=K>GlR0y)*DyS4FM$Sv}0PSp0$IC-I}(2Gq<`m9>?y zkZVzu19ApajD0p@rHqMq)FY+H^=yb9jH!#Oi&@u!XA&fxUo9s1{L8-MANW&tg?~jb??&Zte2QS=1(W}~|d(&5r z=+tZSS2Q9cC|}!~h4IBweHGEW#0S>ObF0nAn*5*RHm*jyk~TZ6=nQbmNfgrl$lZiX zDnSsUAZTfw#A00ng&j#_gv!97*(*oeeB7Kq9DNfl!p1p{_=Qrn#0J0F`P>A>@FLc( z%tqlW4OK^yIowtBC!&Jj ztcx*k8eQ1B(4ZdPI7&}FDN=^j0~N#w9en-PjqBP*i^Kk;`c{Jkcpw&8JHDoxXdMTi zFCTp1y*Axl$gmB^@Hs)caBo_OeVh0L^@*bl;ZjL({uh_<^K3?>-@NM*rt_Fu@%%5u zj$c||ryGV9Rcsqm#Dr@a>&Umd)XGJtK2Utzipf194Ahp(K26@_L80tl(+%caV(r!i zn%-~D9bEMcXEJMT|A1aa(h0{yQe%ibO^0K z4TxY}=sJ0|E9McyzL*PCoUW#sZR z4H7Lo-AW3bHXr0^mpzet20!8qE^w6oemIb^C`g+9{oLi-(Ecq_WFHjPq_iYM=b6wB z83w~AiuoBuH=2Oo{~=I^p%p#Tgk3gLNE>l6+u;(s<&g)SjdWKR=coaM56t1eIHUQHj+_9 ze-o(=x6fYh&kItHdNsp?R~(`o+Jby%2hAM6=`RP%(cC!8E5{{D!(IyEPxqYUVzXH>P>@>*z!DvU~#L892HOyzGBpS;wRLZPwDD zGjL0NycWWi*1p^|xsiT=qZw3v3M^VRl2BPO9(x^(2-Me+~tQf!ZpYTj9R zFu30V*xMhM6t1TonBsW)_bRI{&>fxnXSok5Oyc{$A#45K(K`I?XRHkw($PPUZGIg0 zkD;EftRnq9NQN2`$<)b-aCr!#p|So=GN@nc?;^P-SbIFhhrh0{hOvJkB3T-8j;mMN zYf-%ZC%0iOxq~UvOSVTU5j{M|Xc%ED+rtAg@Ow0FahJ+sKVxqQ9a!J4x1mSK=0&id z*}vI96|;s*@(p@oBVW2i0*Lxr%go|{;+Z1g(c0?_3NVmyIOiJ@U8J8T^9hTMx?&fj z{B9RSXIo0TQo!MSaO<3JUBm6vruz0uB;08{mjHP>tE7ZVJFxK&Y86$w%c_Ukm`Lu{ z9X3alwCogABDGGZ-}Al+Yl5A-YuqN3E;0O%D1f-dTr8YJ!8H9TFcGW5O#HxmYxWHX z%=_LQlrD&9F;XQI;k5DUAynjPLJP-Jj@xQXm}l5a+hQw*P$s!2cM1d_o<+5}kKyqP zT5JWw3}3s=H1P|ln=k~&vdJ>!ziGSjQhRRsA!tc1Y(~b;I^tm{dCmEh!rYMQQun_}uYkHG3gB^QEc3&i&7d9Uw%GEosG z+GmyP@finA2=cXd63HJy3pa=3^+k2QcYlM-=AT9SS(med_x!VB7E6Nc17p~IEmzp) zsne<6#kO{}2BdS%L2Vq#Lv>W_T8M7|1o>rjx#5HjynJ127kEi}h2|jl~DIqJdGgz?70Pvi3K@3L8k_s?e=|9K3@2-)nYD48e4G%k0WVF1)uVWvyI z3JX|t0{6Gu1*x3#jKAwq_fT*mDn#|ka6%5AUTJo5Ixi&Y*%e<#V7)BOq2novXMeWo z%6UfpQpNi<@m>$kSGK6%X1{pV!n+^HJnAi1CXDlQTlF7k)9Kyj3VUy|!Ob?O z@I|j3P7^ehH&}Q3&m1T-$hS@IA(w~E)6@O5Vv^>|r3fo^(%|&t+=mzYhFrgva5X#4 zN7URVShuVl-zYXO8@2Nph4#^=0}(0C?8t+LGhdYT_=`^Oben>S6w?0jMbI8IyUTG; zKEqzD>7wh`S6o5bw7+-YoFhp%{(N_}`PUB7Yws%uen0x4_}e18x<|xc3)4&ix;SX| zI0KmB#mE=?_uj;8$_fUd^O+kJ{Ya6KPFU#}4rE@kChZ?yoPJRfz*Lxb+CERiVweg`4)gl@AAJbQ)0rNd2hTMkdeAIB(l}!mfSHjV*3VhJgb9-K<>o z4}!4M+W$-~TzH>RFgP;vexq0BZLPBF{L0a7a`0UUMa&aTp=J1^;b{#@&jZjOB8(g2DQq*eHMvhNcBTSob8}8aeDJ zkYxCTa!Bf!^S8HDoc`K9#qVBsgfBq|*7vJm+i;XkfhO6)#cc;QMkJe7ixSNvD}Tba zBm>ww4Dlgt&%~s(yB?8EjikBrAk*wfzvO#5#T<%Y1n;j~1M`%x75<y!9M0} z{7@~X?7K+d!v5u5+f$zL*Vs{cSe<6(ocsBSMa*Wc*1v90{LxPKw5TX_M$rF>he$O%zbr#15-DHE2`!$Sn@f&RzVDe3D=&Mfgf&(^>f0S z97=SO9l5+)>ARdJf!a39J|?yIkh;M7#SC!EP=JeZq8vw;lbjKu?OJS)c|Bi;3o}rt zd8_;wA^a{;S!L0hCjfpgCt{yzBQ#%ZaG;oU+fIUI8=OUDSswkDsq@>LsQ&c%!0E8MS2?!VQdg zG57SSJ|3pVL$1%z7JqmEU6Yd_%B<%Saqm(ZrwDC2PLUCwq#Uej?S9Xgub-Ea`KGkV z;U0wNA4@UasDCMkZWs9$7%4MXi7|>wC}1Ny&ZrY!=rS{)OjYc3U8^YPW@Q=Uea5nr zsT)Gc#HK7mEy0f-k6#E{fsC&$FyDDBK%A|c(MV0I1B!Ut{YH#T;YEXetO)%s$xBuo zAMtkWT9JHII6wfn$CbU^0Mh*Zjy)K(V4-X^IpQ#5r^>KEqew1mZe}8gN_FhX)R`v! z+aTybrXy|vVO0J0Q9*W#VOm`$;wT{MJkZhxwTAxE8^)3jF?pw4OwKYAGX$rC939H! zXue)|r%K0(Ie==+vOBn#VYR~EB;Y}mIfrV?tVm-ct_RW5Bei)!Zs2o!cNJ;(sO`%xMBjVH7_TD!ikB%7zE<-%p1`=v=hhGV@He4pW z_;?25vFcL&!FDF8wLz`>d!rmvZ z&A)k(WJ0zqt9cV$Yln}h1sLVhztk9lo}YMkX$3rp%2n{EE(sR(;8&&ghHrZ6Q z_c-;-+H?>)`h~hG4?z%u8_eWcOP0E}7o9dNrQJ`V<=$a{UYEH0pN8?mU4C=DTu?`4 z&NWmPHaADv%e})jN@N_A_`=}M_X*cn&M|d~H zvk*m6ydZ)!_xHkibe1;d=!H(-hVzO1_)n9hOIyS*raejU5&}{_<0t|+D+ev*{bna3 z$Dm-)RP;%SAKSO5ynqUl5}(GLcM5fgIn#e;VU;xoVlI1x=Q z+_mm+FLX}rV#W5Z$F^!L$&8ru;btjvxtaP^Sxiv-_J_bxFHh&`aRLKlAzo5MCk+nh zcsHO$$A|bEI~=07{xcSEtOj=Qp<*97D%~g2zeKy4;!Phso&N2F z1K96d-2lM#(-o${o_o^J4IksJpDljI;C=(vC7X&!UB77T`~VuTKM3}&q2nG>3tTYu zp84hJD~p|9*X`6xY#V6SQpp@aG^gtY^4gP~lvwsE#4DuYyOPJ@v26l46qi#~Wu#fe zE!`;PWf3!aRPxd zcBIH1gCUZfc|2z}qQ|C*m+c!m{%(n_v-ag#z~2mO-&VXYNS}ycMa3WZJh=0)Sh|%7 zlh7rO0mu8s|-QgN62Yt`H^Z?eBUuQO^MP>#%pNDSpk;VGO``y@~%|rK@ zv#&2a{;mNF{k(^lM(-)*zoa#oJDj+L7cdZZ3+rG5Ffk6;-HH=)skvQ~1UL!cL=JFz z=#Hb}vj$Kig1A{uah05KSdU~|FB~(nnu_A_Age%oa&?NnI5hnfqeTU%a5}85a zvd3Lc7(lFFjTo%`jY9cJIn&K1OlZrXX@xvlOxK?lkuMSzOgaSw9|r2v$VMylcaVh0 zEk2wB*L-PwX5;yPAy)DG(M6E1>nwp&9e~H${BjO4cd4@9<;3r#+rbiUotLAlRx5%w zM53vXSU-(x8;+!z&czqlJh_Z}KF9O?3*XoGhjaGpwfB3!*IIk6wfB0h#A7xVk{cB_0stUM zfsWY2o^8ih;X%KKD#EC zU;3M0lB)Y6VuUHey6qh8zrL_}fGwY28UY#es;rURPmk;N!6Y`oKR?m=rO0ww&J`c7 z9>ROj-bJf-+*0#W-o?WLJ22&eXkEAz+Dkbw-_PV`7@8-B6odB`rDXil44 zBMCRI2{dn=5NM-0nern?$s22PAOD2)mIl=qjVYcj6)*?DCY-Mf z$Pie@5AWa$8MNbJMh^3lWbOx`?(vnvaP1zercp-K{4Na!?ddOP7tK2;rVtVIgSL95 z2mdl6^uEM<+N9^nRxEvXCorlLXgAR!MFRV4k|m)1uG)44aZn&OuwuVxFdW@r8e)p% zzIp9u-;SWX0$#juk-Dwj;3*5SiP^B-g!+)aC!9IdnMyTIB?U}Fy&bp{qs%6at>cX{(8PwqrW=op4Fc6wX5 z9=L4Wk>yI6uJWG)VXPM##rNK&Fp8hPi4wu9hJ>xu&N2ba$^oqYdtM_8)VMNyhN(%3@(jb`JoI%s6AP{|i(O9nzU{d}0 z)q`_IOux{M)05(lNeY$Ld&k>gp6g`Q9Fq#pmI7x=+g7k+^S*0xl$!aBA${cS(LGFG zY{2VdK1dla`J#Ph+!Aa`KU(KbD5aDt|B%rn!eUrQcgCQh+L!%Qqwv?h;w$qrl=^bp zD-w|Me1$+&9OU&g{3Bv6;H>uHy$gC`%#hp<^?nny(*YJyVj)8z%yx~3Y6!yj!Q@b= zR*pR-Ucshn83JudQNk1vR?UqWYuq>zcqJCXR_|5BQ0poo5NGC><0?ZLMfPZSyf0yv zym2!#yk&;8|Jbq!GQ;#}+r$;0oha8OJ$3Z#gvd#~FIPBVE@Ge{&U~o`-F)S9M>_3O zP&g&j(qJoF10~t6{-w9&*%{tddqr8gz0JO8C5jq?MC#C7d-Hwal(n@4WF46a*06>U z7)37<_2Cz4%8i09OK)qk<$;&1Xb>wo5FU5aGs9alMfX zA83-k?Cn2o8H%)T;q3aLGOi2!!F80^PlSsIgg)gES*$X~08260z}|r*R4WfwhxACz zn5ZBWK20v}(Wa27i62|Q#y1+PDD0J?cRo$+dd4yW>Wor$uCTwCOG#VY7V$W~+&p!fYYuEnDf2LU zlj=9Km9iWbI}4G`?_d2b0`)4e&kqrLN=NT6v}`G)x*=u8%G@CWGXfd(jvlKw_CaX` z4lPZ)&C(P@`bxK^iWPnnoWz?Cd3;xm^NT@ntdQe8uwVnuW&Vv=B!T0eFR3-xH%4Ri zhm!)fywCi)9`-?X>U+#0 zn|xc(Y(C3RGKr^Gt)di6F!b49aK7Rbz_e#l6n^~_NiF$DwbE*<#lvQNK+y-pXJ6^xnyuN(=Iu9iQhS$!)jje|NIptIR`Kq_4B8^ ztbNHK?@g0fbGxq2r9(_ly*fRj2CTZpLQC+}Rqy4(d!Gc68f0)aufeg_-zwAP=(PV{ z{_uzqtd$13nK%nM)Q%4;4d{q9-OuGacRPoN`P(w5#(MO!p9hh-#AW}_#OGerWv&Xv zyf?SUtL`@NyQUNtr_)lqkpC4jUz#i$4I0$VoV`^aG9e9p-4Ch=d;|SjYiY+9Ts*fi zg*#Lqm7|!GLqP}Yf_@s0+u#(&kEB!Gon+}rt}!>4e-vi;B8Ydwq#8c{(ZE+c}BR!Gk$TVO(iSXlp=hw`W3jWO_vPZwa6sL z#87w}r71-5pi^bZ0{Bs|bf)}y65F*{O%Jnz??*NIra-mDd>Citgzy-yq}TtVuY^x+ zX~o5{vJEh{QaXK`D3kJ#?G{2dAQ6)Etp>|Xl~>@&s4-?Oew=uKcQKz{jGL89dwX`Y z>~a_WWkt`1%smWNWG~@b+|Bd+2*I=0NN;u3cfhmmwFoFU{Y5W+(L>I}E)1&OK%VOD z7j2$VyZrub>ZTu?Gkj+D-Vp#*jY*H1PGXrRQtByM3!lRv11a`ooX(%Sjlrfk>vsiy ziz;8y8r7z^9$nvR@vO-C8a7<{`~d$a-NW_p)K=)eQE*jdalJC+u$90!{_)(RPWYF; zrK8b?Yr`{kB9bMhTxVdyFs#9M*3(u|pI)a&FZ8jeUbORy-^R!PZTB`sMhmLnZq{+k z;NK_z;gWAhd;elfu=O?H%t5Bv{d+z5zaz4O(-%DBho9`e>hp^prbR>f&UfuxQ^TMy zCTL|l{&F{4KGtdMm@IQY1gcjuJGK}5Z#{5o(QtUxBEC^6@1y#c81qh zJK*xUSzes#WFSUHqoP6%zg{bdDkhg~7w+z+(s|}8WQ+{I=64m@Cbk3r(wJTdzm!PYHgOrJ^VK(n4a5uB~QjHs<1hr=JIyPL4&|V13{L>=HbLYHyhn- zOD-t;Bc3@}Poz$B;&Li2kBD)G>&2NKuO@fq9`v5l_ZwMQCeIi?NvF~l)I)rMYScf8 zkJS5XXXZ&@+G753t}(DPmlU1b=+-c$)fe}LMgnUhp@_}H!&^ap5pLzNB#<8-X@e^f z8n#j0md|89yMf9Df}sgk&~pBaT^vTTA=rW`s5Lx9_Y^L-1{6=9rkzkN(8i$?bGHZ3 z59)MWcRdo)O^%_mpk7hhXNN?Y=!%a9+MS!E{kZ&Cv$b{DYhXs|>WnML=gxiYm; zWo+$6Pm9~s3oUt4#}4WErj{}VF#AKfndS4zvn`_CyS1*f#~Z@Lm;Al~Hme)$hha%Uvd*VK14fNHPo0_Zmn&Fl$VsDD@34wPjjXWd0T59A4B$Y0>{^ zAB81JbUzJiJE(gnO z*nO?4vJJio#sf?a0c`vH*4eWV6WCC?Wcmfn0=X}AB|Ebq9 zUy>I@F&XGsFM%&h>>6^AJ|QvC2dM%i8eHmnG5@Wxc!g(1eAnn6tf8ywQZ<*C-XMaZ zr$@S-=Hk1b#II8FI$1aVE4o5f$=x}YT3nM*l;o=b{YStcy@zoxqUr*xCv*7TfMsnZ zTsh(C|7b(z2KhR4-BngH?9p>;L%c27jC0>dw=@0J3XDoBG9TCt?t!(cNg1@-f_(&Q z)syXCY%4<$;=Jcb)Wb}{JAKl`h-W$}(}Pv9!R`{F&^-)3&*Gr-8Kpblm4bq?6NaRz zA8^6}bMPXf5kh%IhYRo0K z=^Kb9d?IyYn}-vlW%TCV{R1IPMpBemMPXg~F*w6IE#G8BzP@O_T-YjPtW{l1^5gv- z7xdr4^WRlpo>!0d4=mV~ptYui=<6cuT-kvi8}3VyFl$DI2?vB&dFgoYRCxFPKjy|0 zL6;(v+eW{6dcpqlntKz!lD+tsvc!@AZ`fKN5QaMlry|zQy-22wP&%98?){evmyV1!|%uKa8{I~K5E2qHVm>s*ssPSY#ZX~n=e|PY)Gr(7bla^M`3-3 zRe+uTr+;cacb(5@yqx7J5_*;kQwT{q+%MgF4lCBK2aLZJ+PN6!pwiaEbuCr}o7dqX zRu)d0IDgjsnD`weoRE|K$}*ou{m;j?2Nq9gGn3iqJ(942Mu?;^8sEp^%C$1g6@`VV zodqvZR-&+tsa7gjMD2(&KNX8!4l{B`qW56e@p`w9ZwyG=(@;`jZL1&~e3k&~T`Cro zN}ef?WBK>DX3?fnEl3jw3eKg10A=ifGQ8u5A!FHwchKVOvQI$Z`NydHA zv&6BRyG6SfSPL6N?-4c`XzqX=Xb3FWn5<7FsR(66g9|-%H{bBw&k2?pXzQ^~ z&@itv=g6eiQzZCqC)7Ia7A5Ra#Vg_>?KlZ35{W!V%N zY2QCI;r14mC7V~5?$Qr;KkA!#jn}adS@mEv;dMPq0*XzojF*7Pjz&$}$Hc;Wmy|rE zWFv5hyZ;Oq%r3!u=ZxBvRN*F!)_0E8_#C|V=fxbOqyNW>tcmBLPKppbutjk9380wS L94S3~_Uiut%Kgf2 diff --git a/resource/icons/configure.png b/resource/icons/configure.png deleted file mode 100644 index b2c3c62fdfbd5e544a12fef29ea4d30b95b5d051..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4277 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 DIRyc7 diff --git a/resource/icons/decrypted_verified.png b/resource/icons/decrypted_verified.png deleted file mode 100644 index 5e45f62570fada16bbddbc0af5c8c8e52587cf25..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3935 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 diff --git a/resource/icons/edit.png b/resource/icons/edit.png deleted file mode 100644 index 01a6662bab853f18d75a749a97d04aed5def037d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1491 zcmZvbdr(q&6vs`>M=c7p3%VjA;N}y}mV%vKq=dLc>SpEoNbSK|sH0hChC@cV3gLrG z@2!=o^?^0o!{}vbv$-Xewy9z3g9;f9C)ezut}eO1tNz(<=HB1Azu%efoO?d!tN1aB zk6!fkB0D=fv;gA9fV~xYoE^ctF0Q`9&Tiqa0`97fd1puZ+p@Ru-HV>CEWD`T`1qls z{T{ZoAN*>kxH!xw550Kx<>i+N#+&YF@`0(`J&jLlr;L66O*Ly#G5hR+*k{+S8nIq_ z+SuD|e6ql8M?zLgg|V@@DI<4A?%+ziKPKhcvq;4dd1wIR646L=g+nXT%@~)qby?Fx z!N>t{@1lXaXU7Eq}ynbq&NIzLYI(g4KCx7`yJJ^loh?<580DeNK!(@ zLftajUW%20+&QTqdkUUp)9gJcDp3U_DW_svLuIt(+?bstBq6eT6WK7pd)JDj&{dXf z%Ki^boa_q^sDrKcZGoLd&pGN`ILH^|MmVXv%0&VsldY;urU{i)tej(N^D^KDAP0&H z)hU?{DD!sVlEeMH4C>i4>RR4aM9|q%m`}C(l+jMdPK!YY7>t@vV$I5140W>kV04nF zg6ZB~1jI!5ITqj@V)655#RDT@bL_}bgh(TNXwk+loNk0eRn7iJb zO@TS>8cYbTDA(XJM%fB=Z`P1;MY|vMQvfHiPIIAo(2FoCFHCC+No%VL%nm#bo$7zU ztGklpdnsdyO9M-%-9t|@Fw-2v^dp+)J0k}eA5%evbz>${!M*VKE*3tkHk%d|n-NwQ z6?-RVy^#JA`M0oj9JN*4@foPi8 z(|`kW6_!I5oPkatQ}qfZ7+!O=au!cgDRctQr(k5nQ_I!9_hDx)+50ip5HkRo3XZ2X zOs5XF-5Y)Mpz$w$DJm)et6;wF`2q0q>B9kD4;e_9goHh}06G>)!F+jlDA`Bu1}{YDH3Zhut(FvBhU1QRGaUNXwvn~H7_RJlnL9dYm@(u4a6-C zTye^{G_WF}i*+)ycEV$k=rV_$IFHcYBS0l2=q&bh7MSLH4!cLrpNMOzdH{x8&dE&b z%EwMY@A+v}(Gv$PYWN0X-_COk6h!e?@k7@T2SWh`p^ zHsaf(EDF{s$=?HjicvrpWqn-Y{oSm-#aokt-ZOi1fbU4$t z%WDRc^TVJHDj=As7?9(&GbKb*ssxgt`UPaBQV;$J{a!03$V2Xe3zJB71oI-W zT~ZmEEJbu)=V{1h=K?up?o+XRll zs=iwh2PJv}x7*{J(NwTq?AYD(`-q@_WMvaA{J=8!UV7=yIw7M=6pxY{4)K6|dQ|TH zj{K(4N`zaxxm^2OrL(Hb+h0AO{lriS8EX{iy}e4?3G_-OFg(5tU z3Ofphb1aeYrw|woR><`C5a8NqMVR`H#a7b~v+w@mZg%B1nfwZs8SCM}O&$zJb3`5! zoUMn#dTu)5w9BZ^IA?#W!y^epRDkpf8A#>9R-I8pIl*gau=dop`UK zyMDVjG4DK@yru4@PNx6ZwAu3CZBN8jS)5kUvUe}or`zV8Y#)*;uvZy)+8!AF$0cYu zRFW?(9l@jMEoU;Sya=bs3)HuthL>!xx*hY{RwxPn!^%%X7L>WRLEi87DftqBE0CY+ z3w_9!7KVT;qVX-e1bqE>jAgzTu)L=?w`s%Oiom_NVda@{Ja0+CC2Er_a%X(=d3`u( zt*9SW`<0-OZGHbA6^FV+2iEl|kF_Xgy|F21;1flH`=3cE`dCl%*@Yz zvsFipo^|80E%IjsQMo|7Y64(}s##2t@K9zwH1c9`#A;@Hbb?4HrpXtM3Hcyy-`B4=NMR1 zww)XEaV}n}ZRZTYw-hVk4_ILtV*9so!n9}U0Z1wGf{mW9v2`iv5u%H;f!$W;=}=#VCim>Y_CoQqsd8JTU9YDhLO*BtN;8-KUw8qd#_6puO!%2 zvrm6-U;fw3!9`>htI6;2EM=}a6v1?`TwZv>s==_aOe(Q)?95~bZt~&V#IPdefTtza zBtq+eb~2xt1aT483`uAYd$^fcHfQI2G85%)?5zzdQo#Q4hq^;+pLc(+V)#qwJ-(!EuNElbuUp4Ya7koYTk_0pW)wVXcBXkkD?XDn!X%XI!WD=g~k+baEd)0Fu zCu+t-@os2h*1{_lZd~~mKmtYGDviHxvL6!XapFTmj7!wrqrZ@pKNb!?d=&hb05F>v zcaz|yGXi=XqRe;R3j`c~j~Vv6#=*hfRgDtK{n=Oe4J)5hDySK{@7a+;Qpt}f@a>P1 z46|L}tNYV;N~rVNt$~i$6&YoFUCfP{H4ggk&k3gZChObj_#ol@1*XG)qN5kOlDVv^ z6;Elrh>VK+F(czblj1N2oqajbaL{8Ob=@X_ zfa$|Bmic@uxTIT{^5oxt6A(|0S89JH;Y2a+M3xJ>G%#BYR3O=ue^MNhV6lq$V0Uc` zJ5R4ur?})~Wa`BrmZIW9H?Oi&Q&cH^Z=Iqu^|d6j;7N3aiGFW+c*ge;#^<$5&4M8E zBkI=m8(S6|K{_Ki-eGVaBWhjfBEtObOzTWJ;@COA-V>H~AhOQm2iqm%Hj<8gRR8{5 zKkOxOQ}b2h0D|`kj(XAI*X%pfbX2g72k`7rVb+*ZJkQIj-;<+jRC)UYXPXKjumfWR zx*kE9`%R(M!6pu_NnxF3VEy~j&69aix=6q&9NolGjuN8Txn%igZyd~oCeG!ad-9`} z&4{kBTUywohWS{!M&qRw1%s-JQj_DtG!(&$qtP|B-{I46UcOZkEc=MVe#LWi%vN<2 zn&{NAOGdcwEeXUB-muJeP(K#Gda{WWsP*{pjI1E`DmIXiRlsbbR4rcTnU#nG2aD=7 z^h>nSSuH~G58(@%LtcO?G3Zd$yzf0q2z9RF%DK;FID6Pzk^Cr4*%jyG+{{<^u}4n+ z(7VRo!x(?8Qs#FtP=_x;KPIM=%&J+JVfGjR=rYCl8vWGop6!c`W|Yo!Db!Of9xTH! z>M%3SXY(8#4R}BRW4iA{V)E7$cvC79XXta&gF=Df8H1dH^`^lxN)PyB5`sd$9M<9U zoO|3!rrApTb7?DgrvTr6UdUX%ZJ0BUL%aUJ|2GJ;^Z9V+;COm=ZyEV1w0f4Vw;+@^uNW7ccy?1v>wvHe*b zOUVgx>T%n6E|)UaWFmv+6il@2Mt%Ue=hNn)l2?|eV)j0cU1Rk?Hy9A_3VFJM+R$gmd@375Pf}{U6)J zr}}qUJt!8*+Ly@#eRt?=F3!2*WL+3_Hf_caH_kr)9=-pDI8hCndLZ>oNuZQLqnqYT zpO#mjS)THpy?D39as%icQ?>MVJ;$ zB1|ha!G$kCN2+<(R{rkTh--J|&`WMX87b0*loCY?s|I$sE^Yg4mOA7mbMtTijDY;r zz}$Z83RG6QpeyN8A3M(flIy$-CG;6tGycNzm7ZyyecEj2^5lldaikB|!j+JxljkH> zH&qV1yRL?=-HX;#p$IBr{>f?WBQp~VS0Z!4si&tn_om#T4J2PXB6Qk5jzyDW`sB(; zSEWU4MmGZscFo$tPgc*1EM6yS>Aa&zz1b%m*dG&kWa5hBUw2)vR`}yqD7hF0F}!j!umPyRsewcKNGWOAtTD(<=Fi)#YULzP%^!TL64g@~^?J7#cTyyA3`iT&$8$ zk+KHGNeSaIsdQ?~QjUF>Nh0idt_dyEmG4pQb-23(>4z?*7>TJ~87IaE2|39E2yC*m zb{iv8rjqioZjyZlfX+VSE}M#KFc@Me{wU%(=>Gx!m+!z$^2+1M^E9Ws-MI6&$gSOn z79t@I1Qr+ZD^kR0%i9V=O24K8Vs3}rVKT7mlA_niy}Kwkl18~|cM50CahA4um$cY)i&)kxLn~JvY=Lor+$ntqOCU;cHOqiy8u_=k7F!g`m$h4|#{wyl z1j3T^x4*j_+3-69Rt=ztw5u;B%)0RJHEM@vtt(}dj7$bAVj&d_`HF0D9h_~(rxlwy z;o9lL(A)DZMw(E@EA}%=g4Nz!bp;ZU6@7>+_9Mn`u(Dls1x#dnWy!AC4|?*{z~ri! y7_LgJ)Bel;*U?Ibw-H#?oS{PT{{euIOUkS%wgRNluIN?c2B4*eR4rDv3;hpa&{Bo~ diff --git a/resource/icons/encrypted.png b/resource/icons/encrypted.png deleted file mode 100644 index 45bbf696335b012145e3eed382ad9759a8c47599..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3288 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 J)!Fz`{|y6>0ww?e diff --git a/resource/icons/error.png b/resource/icons/error.png deleted file mode 100644 index 3137becbf8bb962d1c0ff673612eb147d67633fa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6721 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 =&@%^xUUJLlnxBqtUvFU@;iHLO zDR=DRxpQq!4IbbKsF|syatYOzl~W$YWhrsqy5m4KlM!9elNKG1Fc~IaZ(?H$kH=AC zd#9JPoQP>)&}(+#9gL-i^LJn&HzC?K59oE3gqlzz7YsgI;_CqS1SodHG=XiIvmEH) z4KIQv0o%vztR}q4Ust@`ai9b5wlF?CtUw@294+XtJvoaR@z=?tHED&K!(iz3UU{T@ zCR*#(d2a+CIQP|px}4rt&{hkq+V&Kma;<(JYJ?WcyIu!!zx8qz&5W7;;2QJniqedK z;^VE@uB=A5s?bd65%Et$&4-P;d6t{mUrEQp7QOimqnDTHy5);E%Q#jxs=1X*^9s%k zSnfDowzV?Ied~~=zW$0$|EG3C4>31!9jfYKK(*f1$I`XaHFBOwNrQ?2=OcF2PWn^V z0U#Z+6we7dGR{3;5r15!Q!MBbHZiBuh;)dKluQuvH<2yXtmXZ&xHDNStv=J8kZ7r2 z;7OTCRqywp{jeGqbAEXc+5jDCm*ftQYTtcFFCJHh3gKC80&{h>;u{sDu`mSsYmZLl z91!*Gue;{bveMWN^dX3?M3e3ij5^?l+;~&r5FM%_0qFL`c6_qn>X1OX-wTJ-;o@-I zrWTOzUPVt09oK^(r6*9 zR9O}XwohqO)k}mz0iL-6&H~<#nr5Jg3^~2 z0({BV5fB_dnaWhVLKo{a7+ifD7(gIqvPDCt9$4%D3b#SOYT_ruL|)CbhVUd&iU6;# zm|c5h{I@(CP>qD>FlmhPQT)p?HKoeAddy5(Yeh*L^tl~hexn*$qmPw)oJmRX!^`#l zr?+9gDKKnS5i5G+w@rE%XR3B{R^*g1*DtRI1Km8DMnDdui&?z?jia{!!X;fuO;FAX z9fp(U?f}xwJ9ZLYuR{p_uF&rCACGN>JY*y}edL=}n-fw!c7YE22LCj33?GSlvTzR# zoqy&bGsra?PNq;__hgM#n(eZ9DJ(EL6dC}M`%b__E%QW6dRUglU(%j4pr7GImD$Xz zj;wd83<;9t=Vp6eTQ>*TnjBIii~54Za1OVX?KLk{<775d>SLB21q|r4*rI_kHq+D= z#fj-&qINymPVI>m(GT!V%otw1`p-NFHOzs8%a9Y6=D}_i!J0GnFnSUU9tbI8L>#ta z%+sv`WD4J^IqjZx1AkmZ{ysZ{hbzboi0ExlHBU7CQIpg@0{n{kf6@@L`#tlc5zT>_ z9P2F!4_L{Zjm1&SW;LGv_*D(MSbxnVWkIwV5ILuE)cmpZTIjqe7(9y_m0}euxXd-8 ztSPo&Y6?E7+!Bo3xlLsZr=u}5VytX88o|XSm{Z!ruRMtVw^}OAF7}-vh~Yks^LC@m zMoteU&0DgtrnVb5zc5Xd>%D~HOwDH{XY!8)FX4CU?8h|~^IjL^$o)2R+?C)vF@lu1 z0jqtNiCw3mmCil$z5iKC+p>p@;uXsCKU#wMt|X^#P(3J@#eI-jlH`Q9udy)Hqh*opK)_0rU91g6tSPQHi)H*0airYN?fUI@Rmv%3rKpR zfuPebcLv`9=g(>%=^wH>#Yc`|a|m)&j#WpoY`2c|npUuDdkI(nh%JJ_!OFk9OA_RC zhPqE->BZq=5B}JKkqNREDgA_p)7E*qX?Zj*%Hr~iR>gSj7XP-AG>s$FL(Wi>?hySU zm1&L7vq^wU;E&modVft8b@=DR`<$4Fscog^*5e|lHv1bKx}Qvo8R(eRqQ1YTg7;0KRS?uCa(a+4-ZcovAi+z0-i7zi%u3mU z@M$=UcT-nC@u(r_?qE_N<;Pe4fqQvvMA7 zqdwwXAOm2AD>79TKD8S$D*MlkQ-?Vf@Z6Dbt}B4fzeSx4Yec9E0R|V~83BI+ic-cA z{OI`Q#mxQEn&R0ZRtpCYee$mt%%K6Y}`!(;zDQBSiTfkrv>w{ zYt^BC`K6erU@yv$-)^iO?~lC#Z|Cv5DuBTP%B8i){2E+LpgjnfhZr$ diff --git a/resource/icons/exit.png b/resource/icons/exit.png deleted file mode 100644 index 8ed3161dae1d19363a059f6c16bf75e931580467..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4925 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 O0GP`b#uY~HG5-g^U`~So diff --git a/resource/icons/export_key_to_clipboard.png b/resource/icons/export_key_to_clipboard.png deleted file mode 100644 index 74cc910ac5f9bbaa4b92b1bbb97b7435a6a8e59a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2659 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 VUY-l}6Mr5-XOS+5`cqd@{sMY$oL>L{ diff --git a/resource/icons/export_key_to_file.png b/resource/icons/export_key_to_file.png deleted file mode 100644 index d083f63eef3e00f7ffa7ebb834f01961d0f8d84e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4577 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 diff --git a/resource/icons/file-browser.png b/resource/icons/file-browser.png deleted file mode 100644 index 29dba7e1706cd08215a5192c5a23387ca27352b3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3652 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 TOV%kuYXzXGs*A!Y+l2iKjax5m diff --git a/resource/icons/fileencrytion.png b/resource/icons/fileencrytion.png deleted file mode 100644 index b4546e2aa02d9c45b58876286beed639b4580c9e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2276 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 diff --git a/resource/icons/fileprint.png b/resource/icons/fileprint.png deleted file mode 100644 index 1b78055255db1a798fd0b84fdd9f44d571d54627..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2915 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 diff --git a/resource/icons/filesaveas.png b/resource/icons/filesaveas.png deleted file mode 100644 index 14ce8aeeb2229944e2431730d0e88b4b75fc36d0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4333 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 bAh=25Lc>D`RtFL*1Yd+xR@gF=^Q8X)(i$mz diff --git a/resource/icons/flag-fill.png b/resource/icons/flag-fill.png deleted file mode 100644 index b87236168908e2bf255bf2684699b02bcb814f95..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2128 zcmeAS@N?(olHy`uVBq!ia0vp^CqS5k4M?tyST_$yF%}28J29*~C-ahlfrHD_#WAEJ z?(J;bjyb6!Zttx(yB$$_r?pJ*h>Eb_#D<6t1*N2gtw1VF%ur>uuS1Seif+1;>th#B zWz8*{1RZmZIOXK12sHI@DmA&?h^-g8xW;E=K?UoArNsa{2l*N4U=)@Se8py@$eVgRn1(#dytD>~OIQB=E%>S8^>)3?%bGp9@yDn8oMCA6 z@p-z8uQoFK?Rq`Aiu_>z&lmcn6(-D``QUcc;_bU`NWM99{qx${rVa|TO{ac}*=zG} z_WGw~%f;JIN1X~UDDh_FNb&xq_T!<{`g3oyzSr4o`F@FIeNk37P`sN-{olu+dzy;_ z>nlGV_}O{?Swb>1%cY2$-)a`P)dXa{T&wf$e@*qiiTOXxnOT(n7YEv}R;^m?&R3(+ zZ`Ins^2qqr&LHpl%EJGW@+tK}OdD@+sF4r+t?h2T{^mkyCgF~U8OcwiJ|6$EzGMCF zPtpG`d9$ydv9Ha>tnq~Z7Q=+Kg`3`V-8;4LT)DLUSz%uu0T1EmN9U)lc;A<_ZhKY9 z`^dr&X&a`EGgonD{LI)A_uJRbQ2YG9FG=QcNcAadf=MZcRr zdTr*j*FFxj|yGe4XqQKdQ`BFUdGp@dH z>-=rPncmXnu%&&Te9hO0&TAh#Dja5)c)jE}l6+&fe_Vx1)Z&l-&)7e4v{9YH^2qeb zp9hbcm#*vofBAKweo=4~(?^-SM1wu{S#RAm`>Xdga+)^I;Q1;)WA}Zzd$*(d^ExXo z{q}Wv$>~xuqb=fd{+#{G&z$Z3U-jc2Mkxm(wjXLqJAe|@&> zMJ`85`w{i}x9=|BzjHAzTKa$5znxFk&wBTn#pv#Dy*+k&bf0CJFS4<}n?LJI8OtP< zus3h!1;^j7Dh=7a^ayuS#w`n$MSIULd0EDP?%ejrZ6EWW_51$%7IIH{!pb?Nho|2v ze%3Dif6t%SKg>Vt=l}SiWAC7_c~6~-&fMEuH$4CK_gtfC#1G8!CM+!;NOGc>-) zVeDMM$RsGksv^tGvS>4_N)sE0OM%FQl2MJrD{y{ri#q&bEoV^h1U3;EJYD@<);T3K F0RRagkADCF diff --git a/resource/icons/folder.png b/resource/icons/folder.png deleted file mode 100644 index b0e7989ceaf5b7707cb8885f831aac0014a51dd8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2944 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 diff --git a/resource/icons/format-line-spacing-normal.png b/resource/icons/format-line-spacing-normal.png deleted file mode 100644 index f3d48acab2e195f2e4b047c25a82856cc6f5d563..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 707 zcmeAS@N?(olHy`uVBq!ia0vp^CqS5k4M?tyST~P>fvL;W#WAE}&fB{ibEUmS+AiuQ zuG30nPvd;!@~XurEu!s8}wHI`|EN_y%AUb%$fJ9CaSu_B&F2O_vwx)8Gn<%8eVd6eJu~< z?63R!%==1B_cZa$%~xx*b>ro}{ougipd7cAe=Vc-xt*SWsjXUftNs6<27TV0x9(rx z_d>Zhx5myzYC}eCp?d7D;4OQ6FMiteO(65gqNk}^&+n|a zb&=Xwbnfr<`D@JN7d_2=>v)O7^>lRR=ZCwuPl&aA9tZNV+}Ce79P*)GYwLTj)AETEAF~oj8bpFl|BE;9hT3Tn=pCb>N&;lJC>I$&!{Y9i`o@@WshIr=i;}D zmpWX}o`1RW-14pM9?oIUFNXjf$^@Vi(^Q|oVPa(vqBw3jz7HV z@ZhYDlj6ZcM!qMSbXrO>bM7>jpF1rzDNNN@p<7_0rT(@iiH*FPNrD1SR*Lt!-~WDa z{r_yuceYD`X5s|@=bAmemo>Nj(za`UMc*$Tj_`fF;Mk75iRG8Jg;&?*2fw>--&eYC zP3@g?wq8*|rpM0u)zrpCJvn+Od5LOR@*aKDPuK4_1DU^n1V;7f7xPaPi-%uJj1q}It=G)m z*FKNz-7{s|R7Iqe5qUBGdU&Qjki7r zubgQA9K@7*ylcye&pX>ayw`mDxbRAOxPF%W_Tv7D(?WU+Hyg*=YA>C#Y1T2v-a^~& z8kvG$|6E&kr@n@JW>NmubIzI3+3Guge+hTT@`8zncI6 diff --git a/resource/icons/gnupg.png b/resource/icons/gnupg.png deleted file mode 100644 index 2a209e216a7f03c5b68ff12e07e272ad3438a476..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7198 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 diff --git a/resource/icons/gpgfrontend-logo.png b/resource/icons/gpgfrontend-logo.png deleted file mode 100644 index 7e9841be61c285d77245dac5d7c315ef4cfc4148..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17878 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 diff --git a/resource/icons/gpgfrontend-logo_small (copy).png b/resource/icons/gpgfrontend-logo_small (copy).png deleted file mode 100644 index d34c6c31153a5f9a5f3e4b623689d13a0692abf1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12857 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 diff --git a/resource/icons/gpgfrontend-logo_small.png b/resource/icons/gpgfrontend-logo_small.png deleted file mode 100644 index d34c6c31153a5f9a5f3e4b623689d13a0692abf1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12857 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 diff --git a/resource/icons/gpgfrontend.png b/resource/icons/gpgfrontend.png deleted file mode 100644 index c90e1d1d1fa99a1471ef11fa979ae59105fe407e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3533 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=ffJ&Z>}zlAy$Lg@U5|w9K4Tg_6pG zRE5-v%rpjuid&_9r+E(>@HoGprKB7n?|sd}bppfP1&`hPVp(jz$hvqba9sRYIe!bU zgxj@6)w>pN*fJ%2W?v_h&Vz-f>fTdNd#=q^pPFe?ePG@K$-0bJch7I&$lv!{@2Xz= zE89rN@~kPn;h!`o(OWkyPNTnaWtDQQ+gE^bgGfIM5JjFOT9D}DX)@^Za$W4-*MbbUihOG|wN zBYh(yU7!lx;>x^|#0uTKVr7sK5Hnm-i<65o3raHc^Atd4CMM;Vme?vO0p%5-hJzvi zZhBrZG!THnp%0SLH`FuGM^;{vnTA6-NCu%Cq}eJUvm!Mo!X+~|HLn=x1Y0FzBd}Qr z$w*8|kU3VKxryni;h8BV8E{PqagWr@^bDXkpr(N({EISEf&K^i)K{XT0mh#doXGVNnt!1T%*B7QV5WwcrVpX z{dMYC!M!V&&%G*oxA*yT_va=+@@N?)?Fgk}-?@ zmtH!Olw9+3(iwFw)i%ZI#wS@^Og}BY|NcA2rc&v+r9*1!gucGVKWg^XY!>{nm(6U- zv}w#g{@!LZ@SQwyqJ(*VU(zf!hNn-TnwY;YzuFwb*mAh^+>gu4&-?hFpWxv$*=Lzd zZEWn?)r;;tODl|wTxrbLx+*g(>xe3 zVi|XM9ek3KblCJ`#Ubm4cf1GfH<`PxUgks$xIANkYE<$m!{m^L)=(O`n*!Vn@deFU{~& z8&lJ>TeCecWtRW3ms{pzCHUf%)pyAq;SpMC+&9e@l|Fg>-t>a1Qg?-pk`a56;c||x zeR~-Ex=*ZWKNoyJbM5*4QQt)}WF?trxuhhh`u{)m(OhsRpGlVN&g~D+YdYlT@4vq- qwZ9|e&(i;v8nZ6`dc*X8aSgl0bq$lG=leK79Uf0tKbLh*2~7Z`%4MVg diff --git a/resource/icons/help.png b/resource/icons/help.png deleted file mode 100644 index 54821e497967f9615422e3a5553f57154596204b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2723 zcmai0`9Bl>A0M9&GD10;xudjXmfRWUYMXn_5hX{3mCBW4bDw>jA=YR^C_?UY&aldT zm59lvrQD>Ed_L6lpx(ohYM zRr|ZSExB~*dq0g1-N@SBEa5*;HXGi~6F6XU8)~Rt&q~h~V`KNjx!4jw!oGVPza?x& zUtw3SKiVfsjLC>0Py?eW#e?^$KI}4nYJz)L#i$I$7k?xo>+q}SL>(V+j;9iznFfJb z^Ov&i3=T^#8f2wifc@R@8zmaDYP`~CxR3(35DiKFsJ@{(xi!uck#Xo$vczpz=*T5! z`xUC>MXrArKYjTtw0M^92%@m<1tc}buFI|q1Ou{T=0FV8zDXUF#SmzqX5Y1e9jjj} z+uUs0NwgUNEpsH9( zJO+j34#-v^Djg#}BXlb%c1KZV-4_f*h|i$z4{ifyPs$J4<>j-q#YBapfT457eZK)t zRYEOY!sGNp^qGyvfea%wbI*JqkL78giro`KKCY(R;Nx8yb?hk!zw|IsrCH><6n!o; zT?H4ad&y*?RT&qGGN=O6=UPRsm(cP1I$INyeizJ8451T?Dm)#T`YO2K_0NyDsgKfV z*rF~+%%)iU%wcidr6sU+KAHWvYI4sc!NJ#TdXx;Sx45R$*L7cUsT_Zb)TcyV-PAq#ib}BLSRi3Dm#T6x+l9=xwzgOs$Z`PMI3=?h~3GI&2^W ztH`vqcymCOe(daK;*WvF1}|u@<8t#*Y9Ej)P?MWBTkNztoID&H>?CtSVk+5b1y16S zGI9ixFC_QvoP2;!2Y&e!Y|ANq8Xhb4crOHRA6_o?^c)nY(dN~QbIo)9IZaaB zJw8GvW#v^SJ4vf)k?$4%rG0jq|61ctjaeCAbs;hDSl;Ef1Laec4;z<}DBX(P{o(D| z>0pWOZ&9x}UANTUaE@WK%u_lLu0*vRii`G5v!~{zZJaK z>u)RKf<@bKUa;xUI}&@%8A8VeF|QD$f&)R-f#TtX^^udTt&j{u?gcCgy<^r6(nC3L}grx(j<)zk;&p&Vnn@)X^ zCRWR$CUN}G0L;`k{4(vO8frNvs*9cfH(xNjs zXSzqe|M8yXN9VA#b~lmN{?YUR*+6pxC|WLnAR*}Cr27G=se0W7zN!xChb3KG`U-!s zbkhnlWq3XTaR;{+WGvPyklci~QU&$C_=0@(z^pSUwQRD-l6_R3nQ@srTRw9adJn#G44myz^wuA1T+4ru~%tg@+3 zM)E@4pIAwGE85}0LbJPZJ}b9e>YfFCR^Nn?I)g|ehZ&`4it+!O9%y9g(`#M^-p#Nn z)9u()%4ekp+Me@40*$_taUV}#jK^ASu60|!CnhkTmoDAr%$AZhc7@L#7*4Z=kh*6s zPm15k@F~;#7%t5FEkmMAs$l(*kl^2%h|hp<;hcP@n{MNpOB7Z|n~_ zW}C~FpP8y!WOn+?{@|v?k(XFpZljz4@ApVf!KPeMGc|yU4A|66Ha9#t!(^cKGDz85 zwAU?86pylHZ;IFkYZmvcafInC(rt^1AFXDur`a4yo0}?MQhuytNK#Zk5xI9UK(UG zK0<-Jl5Eg}2wzC7z(Iz{OTJ~+2v}u^weqFtJvMoby+WLidk-Izq1Zoho>IRZlr$rd zG}?K#LtZBvOj8`yt_?Y2B801|HNo54s>%(ll`|ao%wv?8#)Q6R20&A2MnUi$AHo3Y zmKlZ(I)DEh3?&nzd%SDs-W~_K9p?P)=Q#2og?cACc>X*nE4y%x=y~clT%6z1!v&P# z<>sP{I6p?}C!++-qyA}AEi{G#D)BwP75A6)4SS?x+{CM0?K`Dx1)49KXy}cg__5bo^rCB0MZL z#%M+}wQ*U@S{fp;3O$PnOe^>gS0FCd)xK#KVB{{q%%Kv&&zN3GoV1{G5;m>K%Q$Mn_vv zH03#HKxahi1iOWknz5JQ?Ajw(fb^adZJ-|5O}qS`?XPR>fX{N_mDT8kwB?^A5oKm= JT4n4O^B*K$BVPaj diff --git a/resource/icons/import_key_from_clipboard.png b/resource/icons/import_key_from_clipboard.png deleted file mode 100644 index 2e45baed8a4e92266e06597f72c190d95a35f14f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1952 zcmd^AYdDl?7-oDL><-hYt&kZJO_!#F-Db+fj6*XHkzqF^T5V<6NRDGN8p*IZWjG3i zxt~3t9HzXuIa8onrYSW0^+p(+2Jawe5N@{X9yeNCottHv&F-WLKAo|1DX>~n4))f3 zIc!nf*Hko|U()x57oBZ?f=2i8EpKjP99Z@Db!iB9*oeNp;@GgCewP^iOg|eI+tX6Ap=;>bvgRP?qG1bds>y!KKZct;VtPgs+P0&p zCN<5mGeSg3@}Lyq1Dl@AXZ4=5Rx8qm##La`5PRto=^z}lZ18Ppi`3XO% ziuN)>i^g1UUZ@`tIv!5uMLFtkM^e(=Q#%Tw@f|2&=92VmeGeI@q7n+JWo<$iSn!5K zNjA|Qld`Q+KZByqa{<98dJjR@?3trL=+yi>CslJJ0mxL2W&v8u!u$Msh3?oEc{DD`+bmQjw}ZW$^`oIY7vZ`1 zBzXyGXfrQ`t<21A&B^kyjl7Qbp1n3}6mecr>3jf{qOesM>MB%bt@p_?;F3mD*COR| z)*|JmIx6;itxHt2q)zXxBG3g7$F)r6vlU&Vq8$}|DnjQdG^jo}eLK1jEAo^)`Hxe5 z>5g?HO$=+Wyeo-hU2#!Se>0yBj@a_lVOhtod{{QsSdBgM1b@rlV+@;$YXAMISA`Ec zttD^Xn4J``GmH^Uf<-*bf%er@5?RYEuxQUQR7G`8P(%x~g@J(eBJ+vf+prr$*Ch|gq%D`v}@t`M$*cCNI*bRqG3;ft| z$X3~L9_|N6R+|c^d<}jI+4d{`(c!eWZRWrwfgMLO3bIJyN3<3eu0ypt7`d_l3WLTQ^h#*X*xDfe6dlVBePNARHSX>-=ob6CJJcH>4H{MV9h_R;oI_IM z9fGzQv;D{zUsS?3|0fvy1E#c^DIzm6NY#V|4Vp9mGI+&)fCewNTAzzox4BvcQ#Xj? z4&g;EjBCKl99g~%8oyDc0$8l&sE1bPRjA;JEpVEP%_DhTs3cjb8DxfM*fVSN2irkE zHz9Z#`@P-yA`YSUp8M-A?vObD;%v@csKE9WY4JICXcs$4iyazE zx=6z0VUTDf)kKX4hx*iEAC&(sJwCz~N|6qq5w_1I5wPhNrV828Gw7%ej4VRfTVwnh z$#ga7K7I#+Ju@UL4`Htz(pbYvd$9+}@@jShgGWlXG6w^Iugm4cXjS@5H0YImGU+)m z+dAIP&yXy}vwL=pW|dY?MS2xT-p9w@@%+5!`l4RQ%E`vsH<64--5e$}lYk>Vm)wjY z2z#T(=>u25oM>vG(40&AD;BkIUw#9--CjqViqDAed>^Bn<6!L{yW%dJyh?VqPB!IM HCu9EtnZrYo diff --git a/resource/icons/import_key_from_file.png b/resource/icons/import_key_from_file.png deleted file mode 100644 index 5db35a6ffafd48676c60e88d074489b2628f869c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2404 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 E7w_U!djJ3c diff --git a/resource/icons/import_key_from_server.png b/resource/icons/import_key_from_server.png deleted file mode 100644 index 060346609bf6bc9f3aa759501e4a08fe5594d09a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4802 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 diff --git a/resource/icons/importance.png b/resource/icons/importance.png deleted file mode 100644 index e59ff133413da1add834286085ba5aeb9681ae7f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6036 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 diff --git a/resource/icons/importkey_editor.png b/resource/icons/importkey_editor.png deleted file mode 100644 index 406b29c4e77d137baf8a1578471655b69dbafc3c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4040 zcmb_f`#+QY8z1Hn%0_8wt=SyHD2HgtVda=gJQ?yhWuhpVm_rVmgfOG16fzYWVb05l z9ENhJh#X^zVIDo0XTo>uZ}|Rj-}mc&U+?$z`h2eIzOU>0BwxH>y<7T#GynkDZEIuU zD0s4jmz0FyUgq*94*-x$x3$1r3V*hg8f~_1^2C3KiqEQ?7DYJ9YXEDK zFMhL1K=5ruW-%$@K%-NGr_JZZK3VN@(=gbj8dkZyJjQ$t{R)0Q^$#oF>z(Z_XhTG@ z+6`Owv&k{0hb(#Ku3GWUI8F9?`WhmN$IaF6(+}ZoX2itibq4*o!$s@+UDW{#7Ie{0 z?X7(yscyA5Fm!s-kG8BYzmo>ewYrBHYf|E7w8vgKNW zzJER76(MZCt735BbpAz)@9{rJK1ufCXKYv3uZM&l)>h3(=58yb&Al(MSEHt43XScQ z3<~F9&%9`F#b%={3mPnzMjniC|AvklpLakW_bB&FgPCNQ-AN>_TR*7%n`lekl$IW+s1aw1esIS&*yOu<1Onp_e>9^Mg@FZz}0dG&ix0W?NDO6 zKOG#}>RAlJT?eHeRbqQBz}$~=S5Y4=4JW)T^6izq87X1hw&n+VPfS2!vZ^UiDzASi z`awiaS{svC7WIvGKG^zl7@4W%x3G=;xc9L-_*e(-!ORdfCqFi@{m|-W#@A-v>xY&* zpJIRXFWf&Xk*f5BeT$$tp0+l9!H?Fb+J}gIhb(E~?Clu;`?j9fIaWnq3)Q&9*u~w7 zfLPF3n?FMvkLqFFcbQJ#RAq-{Wk^B9=-RZilU;ta5Lonx0bL%+4NgD1y?;O3>&TOv zvkdp@vgTKdZw`%{*UGpr{4p7q_+6r(S%}6^6alB}x zs<=3(YDs_?B%#vNU6^TMve<#z?VM`Q7H?Wq$^_CoxKE|lWN}>KDCPyhAtP6OHzFM> z1I%u-`90c2Qz78Oy`@C63#HJCj~}t4lvTWGMp06~)(R4or66ZB@TiKJN`=?iD)Kyu z{4hjttZAbt%}7O&+qVDe65Jo|+q77{^6r~#`4qS7_V)>s6D`xQmFtD00lUk@NO3bP zwa%rIZ!81j1{0OUuSM57>UJygW*xG;lEr_N{PHc5?a@YZl^OH>3^qfOHq5yZGd(Zk z5Vg+sT_C~Zl3E*gx!hCHV4u*miNYOLmXhM<1ZHHuc=$eP+u+-mbgOkaQt2(uKYJp; znJ@Cu9=OrX2W?GC18E>!LgrH8%}Er^*lNsO!*Z)GL56^gwCkqF98OKKFv~x}s_?sH zUR5%E)9G^U+E>Uz*h>X0k3Q$@_|X(g2ouXs>X;6G5mI{np}_Tv_0$K@Yo;8mBsvLhQ$~b( z&%#OY8gcwxq1!L=EC)HEVJQx}mLUYBSq?{qzzqTLKnRGk9PH6a|EzGPa2u3rFv0ni zSq(}_k$LFJfCL2MFKJo}>hwC@XRPDk zJw+0n$U-Czz75bw91MElfptPjg25@;8m;+utcAN+%S~{mS|Cs^}?9snUgOIBge6RwTx}pgj=J{DJKO{ zW!w-YCkqLt=Hzc(LV^gp_@w|)IW>dmT%CG3qb3Ok?&^Vbd0PZ2842Tb0&cw|jHq`U zG>syN*Cjc&f2z>MWw>=ATVNOzK_5^Ts7fSQ12#g%f9B*4Ve-4h@dlR#X>){83Ri?_ z!^c5=lm$!;7)#es2wWjTeN=_O9+qy{A3(s+5CC0rY>1oCmnpo{rAOe4E{5*#5ctYW zLrs>+^8jpr7)V9ib+&l)ISJ}vPBAbiN6tEkfZF!69Li5=ijp<}Xik=Of;mN{!;;)G zrAk4XfN*<#R3uYkDpw+a020c&wi$lJfV#fe)$nf|v>^`uzL*G2kP=1X#W43kp{tqw zc(x)CzgHBfBx-jj+8>SIC5o07Bgqom$CWOVKakAHr-|@0UbK*cS(b_v`v_Eu{+Qd6 z+OsaRZqt~))K&7Q7Wn{h zhfh4EECv;1+#pVbW&tpY-le8lj~@+A_KaT8!N9G3%_%#7&5VJAyT&Sd_r}W6^I3v z703cZgMPjHET{M>yBtnI9s#i-sr5)(^!b|cgDL(gWup(mf1lj?ORq~g@$3EpYl@$` z`|7{R>cbuTfh-M$t5r?iegMU_o)1`pI&5Rre&1yJp$1Md(!BM$83-mYCatiIz| zALG3gfvObz0xsBnd$L`uy%)BJ&QOe{1Ild#JGy30DXf@VXO~~SGuvyNed z?tjHv#^!-};dzE?j7|H%PtJSh!A5Jix1nXBWn4cU6L(Z3Mn2f*ygrrn1&^3R;=f>xtDtMw)Z z1SV~!e!Lw3eO(3!=5ePGf}d6tQyODfFH0$`E!~I)393{z2z4{tGAO_K;E#!TnP2>h zX&z>n;gO*KK0R%YfS?&!47s0FWrq0A5Nit3MO^Z-m~EUr*hhLu7oLJ5;b@99VfE;6 zZ(irPht_Qd+(hd#MPokqL5S7HVW07MtJ^d%v+?-M#L0p2*ei35=E0@@7~%Aj1Gb3m z9Wv>rdg2DO>SrbtL-|GhUjJnFqvPE>&2?#<+;5c;T@u-zwc zwWQwPkNI*}wJFoGJndwpEv>9siDC9UX39YUU{yhV2p9)82LY@A z{|A8L3d-K#<1o`aN!G5o)}+8j<=|&-%*bn)bh9QLEq@P10g%ul@A<@_H*HQZ&R9*G zK5^;iyaJ#_EV${0YL>7`6UWB z8*jN@%iV7~b0>Gz6J6a1jy8489QjxCf=t}$sj%fc={-qB+2!vzH`86&4CxTj=f{RS za&ee3=SSt{W5;368;QkHx2Ua+0M_}Q-b(P+wO?zAo9tg%A69$UACn|9>S>xEcE^oD zl6OXYLRYC78!s~URnEn#^&z-6J-xw}4I-43Vv{I6H(o4^bVsXF54n;UeHD!4=St(n z;D-;&l^!25nbUvOFm7zt&?*=J-VJTF*~!z4vh$SzBi_LTewuGx-&;rI$t4ZeyQB+` z9>D-3D#{cyl8S;Ej-Hg`q8(11P2iAC3HKmrleZONpVe*i%ySD0QgwZiG z%cYz})0O-3pTyrCM6TGP_*;9mp8s?kVj2ecB-eE)PL5xpeZ}m(cwA5!?zey3ICU2P zo1?xRzK*REj5su%@pF1XFDoN`1pTg}M5>$W`||{SMFPnUDCwO0Eys6nFxFLFSx6l$ z(hK!!aimT9EHF^qzsksOPjKd*f|9BS%Q;n^*-0RUgwT{prb}d%}xyf0G)=qvOc-*`uD*o z$!(EIaR#{qJ=0fH1d4kRD*(V$p`ol`;Age*@kKmh$h)I&B@p=twXsWp3(>#Ka|F?I zFg7;FHFc!0BAQe?P(JNA$N-P6cFabKfoW9?Cpb>w*RE6K%YvDt`AHiFB|E#AYy9hN z3Q5h%>Zut_X!S5wY+p!X*2u2L-q%7WTke4auj$PxDRY(WO9#?#w)Wp_u5{MJcK9ww zKnCvN=3>#v%i3Ew;JR8kS~wH}jzDnDkw=|4bk-6sU12bQ(J&m1#CdfoYo)ndh9O-V zA`6rdaLm0&*}3<{FHyk7r@FaB_b50|Zk3A*tsb z0RgLrYnPYfmvBJ#5{K4M<&@=ja?b2s32N0M%JQ`kaMwDQirjUeZ8=0O3Bp6z(;SZN z_NOOq;DBF5!+yG}nC!ozo9bZoiOah5)__KnS9=mTBHIJ;0ci2iEinT6*L(%ifJEF% z6h9QMGLIGoh0SMJ6#>~J?oy$s8A-m}e;f4#9Lb9e@l;5vlsh<-O^uxIMxG%N9%D2~G7QaC0bhP2cd7CDZ)WQ9^vA zRtpL6r(cm8)ba4AFx32I^3((jicY$w0fs}-6bt|y1K>d645%8AZBzetyq64;zKNcl z;Ui8NP*YR-)sIt#sohlf0x?`eaMEZL0NsJ)zHL`M=5UFt;F8B2ThjCS_@Ei#;F%Vm0HO6l0?ck2En9U6^v+-GQ9Q{K6B@|ct3`**n~$TEOk$m!*ccmL{IsVu_;{0@4V)FNHjy(`!c-bmuGo)pFohqpeoIWKE^VJq1y@duCSWfw`=%_}>k||T;U?afyxkFjWqr2hy2(yhML53D}o-;+j#A zk)wr(PcPg10khQgNJWOc5$hg4OJ}`QL1x;q6xN2ZC^NWw#xtYzK#5Rv$o?~?1F-TT zs8g4FcK2K29*qty6Lt=_Q0Vpw_9S_(Q~Y3lS*RhKK{IrjC013u9ZAG;}Pf(o4ZjdvzK@F_X;<-Z90-i zj%R7Fg zPUpIpcv43>WVB_3V(!@6=QI*hTYv#P7TN?dbcbzcsNzZdhV@Z*Ofd*wdBCgi>eMfI zz<_{xrtxqk|9a!|HE^(kG4MTnJn4~h3NzZwF(K-O0P>W+6EXSTG!m5fjM&KX>8KA; zM%z;6n@qDR@1um09I2-HRJ&I@I{_~(zcNIrW}_UO8}#nYE@K=&%&Yf{<*5jtDl66w zx4?N&0-GrnZr5SgB9$8xrw9aN_!6ZWv+ckYQV)^;5k7Dw-2hRmHv$)Y~rr;TGq4jr?p@3Q6}sB_cy z>8p$4&=oI04~{lW!G77c=I-+;Jwta+_y0N^G{`pl*E>G5cOK-U?o`f{>YNM%8gnNk z=j8oz6%l>;QxEhNailvXz^rP?qas5I^!3>gI`f@LRbSGkQMPq`#hA{m8JLTBp&Kdd zuK;#fc2U^!z3Dh8a;_eMn&-?}TzvD4HcqqF=BatG?*I&G%4XQZI`^3}E~`?V3;s43 zZ_IUQMQe4R8qXPDH-C=9ZC^(=H~KwZll9P|?1Mr+v?fspD^|{G9*1Lt?kR7GoHFg+DH;0(K zKmCx*7mwF0J&p++@TFFTW5w1xQw;gn z^x8JL12&x+pCfS#F*oO4#UxOnLoz&dHvB10%i_=Ovj=7QTAe2gy!TIMz3W^7N-U|# zM1?dih=nNU$GnR+M~iql{~f}1GC+mUiM<@uA70v@`gVN}>l$ZCXtJLCdg+$Ok3tEI zcK$gW2*gy=hlSTACgXjxdb~G1enOgE`MZ5x6%Uj7(Y(i^g`02uN;ZB9$<`jegUh{Q zFQEUYG~2b_b9?{6WUkFuQ@jwA6gr|m#bz({A&iIAN*I)*iKzTmCk1HLyAn7FtOF4h zfSnOBkn(3$=m4gShFZw_aqLq&RBj;FbZ91Ax`F34yC{v?OnbJ1?{j0ukgcJi3s}iP z_bc-uh<3>!7fb&llKof62AaYWa;d>Q%tMVQ82y3XeRZs(r^fXGyl z;z$`yJ1kI^^;QsuQgSclhsp`MoiSwcrm3M$jF{6&f%!YOAYYQONED0U9|}Zs-9mvI z6&0cv!PX%1)pc)&ov*`Sd=&KEc&#wfNj8UcR_<>7$zvnx!lq3<)~o-xh>z9MvbolL z)x8Yd!-h7)O%RX#);H+xl=%AMLy<4gmiF)|qOPZ4xUtWI<9WWL`RadZI(O;6fkhien+2#ZHD74Kig&w* zKN48^uU?YZsZA?lK}@q}*GW;S{cJS#C;`IU!%1^=N`cvxammp=BgVYpu}tJEI~0l! zeT5%7k2ue#*=Mo3RpO^7h^aB85!h3d)F<^1Ib#j(InKiTtu4j^3>f`aaff*lbt#@O z@Pv$uxwZa~Zf-PN{CJ;fr3BUMy3)Pvn;bgkgmw-!LLPVB4D7D#dg{Rc7hW|Dc~W!_ zfBfe;G1-{O6^c4k&93AK`oYgkFDGtRx;fj{6+#SdRqvM!xl47wLQ_kviN5FI)e;`i zESps|sqD*=Eb*>-uSa795ZryU+{31?p+#V%C}KlJOck4;b@FioB6r-1@mfwqb3)W? zmRsbfpZN5-PX6e|vuoqlIDD>^R;12DKCjAs@_V1RNCyhYw>8f+5Wf{&b2?MTr&qRD zaEcf1bXz1!b4zvBUjmJf4~T8vW*AB7~%0Vi9qcHa|xD z>umaO@*f@E33*yd!cH;K#Jy&aEjgE_9w=kx8D-69oP{mnD@>~TIi8FW!$jPD{fXW;l!70y(;(LuZ%}RSbPqG> ziQN<_{R0FK1>?TFgGM3Z+mro2MJ{;eLFt9K1erGH+u&Fq&MxCM7W#zoxb}JM3D79* zU{1hJhdfAt*cnaOyb$iqw&{Cuc0&Et1-b_9T<7A_m!idPiu+b4qtCd7g1v_c%g()56LeX` zj99p5$O85`yRctAzM(Ajxx>3lE)?m6w<1)Q9~YZluro|%u`|%Cs%jZ27z))?FJc;2 zha+vOU5vv>zOjkkp9t=SHh8qRZ=XZn3=7QjGKWWyJr>`oUry((q)K29H^|^vkn-Ng7%Hxv?$!TPR45}>1~Z{qk5}F1 zi!v;$tSp7PtCw*rgYF>YuujLxS?h^!iJY53d!{<@-Th1bTiR3OWH7IoT#KpwjWs69&TujL30-w%;V-3LCee~VVhV4*Y_J6M-Qcgs1rD2BbTFNJw!v#LI8zd?Um9`Bm&*haGx($IlN)_%Xyitq+!B>{ ziSr#WQ$7c=hO#*hA|w3~c>H$fNB7!nKYEfbvT)u7%`{+imLI2@x+5r6f* zfg+9W!bh`Yz|?v!x2xSriyo7`_m(A=_}oYDW{PibZR5l|Au3HL-Rq_z=< z@*e&M;krxC+H92k6{*Rj(OC@OL;Y5w+pwWwgPD9<1lMq~(6i?h@#Xi~WLL)8g*g_! zvI`4ra^gsAM)B3RnKAn4TBm>>0l`Me&2FpTDwTXDdJYN`)uJ5aXZPaZ8Tko$&}qqb zk(OR1psf%9LP6gOt5A7dFh@S}2=y{!!5V_q%Y(>uU#0Hk7KcD4e1-BYqt%R^fO!&Ht5-%wBjR+8D!5+D0k9CON>o@{pa3V)CAmu@rvrFavV z-;XbrCVd;fy(Y8(n+Og^i;Ixyu<7WVMg&`vOyfuN@!!N(tiPkS28B>r%S3ymKP`MK ztnb=K-3C6;Q$Cx&P+(NbjD2)W{&1rIr_57r#%(9$J<5bQ$`<*VB3X%Cc_BYy@&~>x zuzElzTEMgTo~K-5pBXmY5MyEY>Y}j2P*d6i8t-GF>7?C@pAN?mhFTbJ1=f`RjxEl( z>uXuDF8|PIqL`)V-gxVhyt=XGzSdAU0?L)u6xr#~53}q7#<~%S1 z4vo71ORtatAF8$z{i479NWF0k0;}(4sB(#%yf-_{a%Aa^o?xW|LE&_~&mJxm^rc4) zGOo9{c-Y^_3TD9nDed1W6{K2l$iIpiWnQHsjjvui6b3kR`FP}MK!XXSC&}V2M`JmW zNSyL~&byn@0%>nt?6zP)&q!kY`-R8B?gyo);nlfhSyMrr@=9KuNobnC=OyM1<*@d9 zzwnD$lU9w%p@yRd1NmwkafRxv4mRf_bYRrMbgV3N<`NsdE+BQC$U?@l0! z<4gSoeDhZ5F?RR-ykF5-X^3=PD1oam#=Rqd6mTbjVw+A$@8shR=sXsgFms+p&n8fq z5C7R{Yi9!4N0>Ni%U*n@BVdUE{y>_3vF^ye0j?b44%CiBjA*@88T5h3wvJt>l*7}3 zQ`z(EzmaC|t+o_#A^yqbu>iMP*vTI@A$d}Zq5FyTp2?U#HF7LfXwl`3$)7u$swOWf z(|?6PXRC(gr2Vu0_56q-ld_mH@@wG!pNDzXvQ!S|s1%?JpDvI@T8 z-@ysTh|0ax52_;vZyyWv-`&IkiQ803JM-QcAacYyGQ)$67NeV$#9cxTt~=M5m&su&9uMo4Ogw(I-dPe5L+@q%RSzC>246{ zb55RlD&0T1!y;_cdjD)Y@yTCLOvnUZvhH0Se+h5)$Gd%Jb{_KDy_%TjqC^r?1 zEL|q&q22UtYK0UM=Tv6K@VK9>A-arL-1Qj-=y#|xvUiC!(#rnd2x+A5kdhJv1Z0Q-2c$<*x?8$C73mIXM7oEeyE_F096~@5q(P+N z%=>=d&AB*t=VI^u>{x66)?Rx(&p#qxtG*&8pd$bP0K^LNaCOXa_@50A2eYrzsm=ue z9?dGir8T{c_5+Ah7_>6}o@!6A(m${en2(I+_9MzDBO!Yjk&nmGOpqBN)s|qmg6Kzx zaLvw}Q{uUJ1i@!KRO;&Jiz_%x03I%H_`h>Km6Mh{rm%PuNG+_qpd9gPQ8uYM7oPz& zqP*sXI8!#mJJm4saPsgtt8#M{`!(J%6|nZJs$_Sy+HWmApKl`A%0v!F-t9B(G|~8Y zFjYh+R0xFP&&MusdNA?NDXtJ`on{)5;M~4rYom?B;{AWTf_>0Xcrk~+ zDV{4B!9&Vx8Syj}nb2bh*28nA1{s2R{zwIw00(In4}*Y0gWqp8?V8gd}?=1oX2H4^_`U1@nFNAAsy=Y*9&j9*l)j~(N;*c~tUT)ehs%~yUN zW;-|!#HU%Ycln{r?m_}{0((CUeuJ}@nPN2s_@fcb1Q8C@=KOQxr%t3)$EXKE!GB$Z z7%r)@ps4br0hOw*ke7>%6yMQ`Q$n(zjvm)xj& z#|1O;$1tXL=C)}ZyzM)%4N+FJa`ZsJIXWJEZ!l>uGi9Hh4sn)(LHQ@wPQL0RN_vV) zCF?t2bpsOIA4vi}!kElV6f|XKr}Kh4h&m&^S7TFqzZlvcaaKNX;7-_sUB)V3@T(cp zoc57_+zJFUSp0n-O3!`Ug8OA}SGltx2R7bwf|j3?J-+iK^47`2zhI~LPhLpBR?~^m z-dhj`K8tRfwEAq$^6akmAt;qHE8~cdm0j59{ljy%0rphSLL*3YwU0O1gp?x-Rvyr# zlob_Qiw!c~3gfe<>)87ai<&#ecd_i>^4+&J z2`rGP-Lp_J;m~8FqCMLq1suF48gZm;UdKjHy;_o3$j57^Ea6N>p%orUz&_Z%Lx$ql$GWX5qfUm{wLQZ+aT5Mtz`(_kh={iw#-JOpGvhJK^t zqXZ#>o!_T7d4~Va$yep&!`wB(sg`>2CshasFWt{)H?uHfK0<<*o7AnMjg-;DwDN7g z>58x?PNO+6-EX(*78%cD+MPxj5u~GF!9U%YMZgA@)W++*#i89jKRdg5{MChx=&LK{ zoAtdlIXW}Re$sO<3K_&A!V>Sd5VsBf0Ji>XK_m%*1ZvRNFn+Y2Bbl>14cweyf_|sB zc(kXNFv8%w#GI&`urtoXZ_-}LZWAKiPz0>c*2yNCb_LvZO^Rkmh~sQ7SVZ`Ar>-nDWpqUhwWqzw$bk(-r$^!*EisHw0r@zA4Z38N@Vb z27OpB{7G|4zUerw8QG+u4!>PKPC*b8&L`#r@)bu4UWlZj;Dj|I9B0Znbi?!{SCASE7l0b}~6xW4p0j-W(3J=y5 z3t@Fd>rDb~C;|IDkeh<@(BGLm%dTwhM%#<)f{>LO0UI;Mh!X&nNFN8ge|~0@qvPNr zDmFtj#63NHih1jPjj|x3TEwp2(l`jw!nrBpGd%!ed6BqIY;tEKsB9{*YB+JeJQIVo zrV~^H>WYiHhLig9bt4_MtiM0PLl%AOx-m|s%(hzkBEj#DMPv^8l&k*ys}f$|sZG$q zst#_BWorAM^90l;=6%!VM_AGh`FW6rXC`*Q z`z+@^2$-WYTPb)jK_TxC=1^y_a=EZ4rN+t@9tya|`$%B)NyH_C$edDP)@+e7q`&$5 zTRJ3a<f?gFXG$AcR%^znAA#60V_PQ@8*2|}KI%O5a&2A2HcMM};+*pSIGyK` zP86r}ocXbX`3Q}iqmyww{jpW@szjPD);blRQwO5;7zG&QN+>gEF@E#gL}p;7Z9eDF zW110=$21YtI+p$2i@2tVM6NG!4N8)jK*|&&NbPJ7JVsU0pT?h-XpfRB2+mMfT&{Md zFkNj&EG7Bj3l{pnAYBhjZBHG3H?vZ-&PRG`47awIdp9)DL#;iKswF8L;toAnBh5cx z5SSINnMRlJ^C#x3l(f^99==U-KBk(QG~~pR$A72G@CbZdq}Ywce^gZN5Fqz3a4*`u z%bU2glmCrI9?N>km*0fCLua$jordbKgSMBn3&zy522LCZ&Ykd&`pZS5F8WWvJ5O8I z)U=jH)+7a<#my_Mx!X{!SW90Raso|nzH#et$oHs&H@aL7xBFGK(CRmeZ|2+2UPX;d z0V@n3fhsV(t5007BDM>(7xgX0o{s(KM)CecM%&eNc|~V9MMnvm2ZgOww^|jrCZXc| zP<5dh__qUgt-+0-VZSxTMtpe{J+ZFe%W^k*AO)~g9k12A=9PHq|G2TS)OWXT+H|3{ zAjyx_njSItSeNmrRcS)3km7icA9h*YlnaM6u?DPs!WI~T1>id49;mqrB>H5%8Ron` zQ_uLfp29XC2=W{Mr6`;~X;Zz8n)iI0@Oe|x!~czMoFI@S6pE;!Ogl&l$h-6&1)GWe zRJmJcU6Q-Trz&qe(_U&WKUN+J!0A3zp!?M&j`l5Ltz0x|Wjr6UBbPq1nwq@y;4Cs$ z1e;-sdm)KeFO6^iuGeqfJ9cj)#h=rFD46?frY_9Q||pMZAo+|t=u2nWm02gu!V zcC!1poJ`*Kf`H#CQ3V`PeSXrxlpIG7%HK(;!IA$WOmi1%{p*ek2UYaIG%dVFBgre; zCM^B%Y*$mUgA%{L10fxr6cEloX**x&c=nAQ!kGc0^>>+{4AA(ULrS3|@gj#gkX<5- zWj&D3DTfzLyaOB|iOU|6S!P4O<~QDd=o-Y!D8dfA_jZWgxdP5B>I)Ky{y7yUe?^f%w0Waw96y)RaDu(jOacmwdy|pQ0k^WO_%)g%X0;pS7vA-8 zQeop5Eyqy)3n*;&U_|w!3ardb-;?{j#o>2u$I|)k zg`*#hRN0Ut{qg;<2K@KI77LZQ$WwNsTmSngMVhSQT^21!vBn(@3~fOx^4=|2fRTGv zGZZq8L>E44BBtLR`9er>rvZ0;WYsx`a$9)cu)7$TguQWP>tE>DXO*whP!*_4!hvml za={CA%i}L>6Tn$g5VxXF9djIFgyfSx{Ppn;DuLExA=Jpk{40rq8U0-&0(<;%kV<7G z%M$aJv^nQX-}@OLB?pi9h~G?OeN>Z5X5IBAwdW}Bu{xjGCUL4v ze2Q857qA)ChZ=xF(78*AwLZ1HB_fP13TxKoHi^QOFh;=Ph`@CxW7z>DMw^N+>4nD=_y zpEOG|gUVgGCZN4hB#YQ-w#I5U4wrsqy1kQXA(Ko{Vv&j6K7y(mwoWX>D{RwQm4_Rr z(E=nol18lRkebSlzSY7ao0Y{5g@xs3%-4=z)xk_-Lpn+b22W&zAca6l#rS?4rBM)D*KjVjt_0TCxm}5&HS2EU~fRXbjfw& z{#+Wq-&<SLanBeuI0P(F>b=_0V|)vR<1z|6q2o0*BGKZ*W^4UZ)(tkCQJz*O+@7hUN4I8` ze+km+{D)?UiQ-Mf4wwNs>tsgDf_;oNi~6EFOSRsK;5wUp|7z1|L@$Y?O4pDC+P4bc z-Ve(dSSN<8@(e(VxjSTPZYrOt$3){`Ds<2=PaP|`%cow7`f33wkHNeLVx*mPu}Po( zPD!RFZ;|5dKOi2^g9ZF%c(^Q)|7SaWa%z-7Wm1@_*iR=At0jly%HzRT?V$}4l^!$T z4I*RW+Cl>aEJ>;KJ==w|)GVizo)jh9&y68*sEAK9mu315x#J(~sRQC1X||+)Ft0W+ zz(6}D$-s}VJbpiWrGxCi;;U=6fACR*7PP68j6TkhUI9`p=ugr8WmT77;FtEkWto3i zH8%Mk)xM`^&Eq+l8d@VUf`AE>pA@D2A6wrK``hQcp37)_yg$OC!=mA)*)26Szo@0Z zHR{pxCYX@v{|n<}Mtx33IPf|(8mgw-NDCyT4{&shiakIj-T`TOZ@4|uspM-DGQ$ok zn2+GKU#0bC;w9S7+abIqZz+>{Xu zi_Ry3)2OOxr&$*KLbQt^&^N3_(yM}q$#-D2m-CbH?{Nv4Q$3py@MfUGaU^EK5#PqF zal$JaEwSkhPw4vHmyMNF1jRzC>vKbe58`s*`nJk!6r|r6~c!j zkU*T3snf$|2g82BCmOa{W;?RJ-NSD~z${!2(eAf`PPNUu9P+SS^)tbm9im<8_gJ8s zJV;N3;(WAB$2_af^sTlYq^DUCtxeIP`%GuK0R}utshf!MZS(7H#&pBV<$zu}3n>c@ zS|UYjKVW{I^=m zNCj5sB+4y)QpNgh!!$4hYE-PTiZea5Q(@svw?!!b%gauzR1&WOcL);K9^LGWZj&q@hh z0ae-fJhG5~eHMd;ngmAdgwv>o_sF)Nwgjoh@QuVI^9z*3{^j)(BCsl?c>e)cn9++V z*q#!T9@8%!YZ9QwbVk77dYILNP+gui?1JeXpJM46@5TmEyX~KNh1;tHp>u_^w%nj9 zY=P6N@iZQp_QjFEmdsgX;{JiG}ROH*QfOx8!*8ONrf zh7}@xnl8~;CjUoa%_Pc1VE|6b9XkQ*cLO&KR~r-9l-58i8c{+ z4|LyGMal?Ft|lYY?0nZhr;MtH6;nq&#Jpf=~j~p-VEPbWZ{g{NU{=WbMcY5xhLW^ac^?I0*vX>`XgTu|CH^`SKfgbN) zkTBAl!j-Uz>uCv%CFuf8j#<)*M)v88L%oU&#=U1SjmDdHQba)Y(yo-b^wbnJft^9J zvQ*WYAs2F%j0>g^zOimj21La8=s(mlC5E0pn`+pp%t)yAS}R=bH1ARIIDqtZ`C=L` ztp+ zl9Kk{98dCNqH#*HeG>c+yjxmW(@2YhzvF)w}oBXjM#~%j(uJ zJ9LbP*cfYz_sgfqe_$jzB3q%!Sq{dVpkO!t<;cV2uGD=iQrH{AKayiBHT$7hHAMFyP+^zpZV=_wu+N35~UBH># zL6LfwJ-0u@H7r4gTER|Yd{Sc_b|)=71!e$y5U6XKG@@Xwjja+HB+H=h=S6N~?GxNTt_n9*vA7<}d*R(b6O3u43XVH3hk>l$4Pjd5gDdIO; zOnW|z&}C>Pu<+Lw$ng*bcIqOlqP0wzGA1j)=g0|+iU!&KP(H|95Y2VDiq={m>veb) zVxiPWEr4p}$-wDa*&Vx;*N!RfQxh8y6F2c1xg~ja_xe2xoF;>2=yzewtN*fxjqm?q z4?JxAcdeg4Q$RCjKAQp9Zdh)0WtYk~3Z8S_y;S557Pq}Jad;Q_G|N|)s>=I^rvjIHyis&lUXc(8-m z&kC%oF?q-5HF}%76dM6Vp0S>lo&DOswNR(H9+aIdq9g zTzKNngM7T>IeN%3Jt5$4eKep2Jy)UCse7gw4eH+9_)b_M#|I72Y}{AT4`X;F3gvgl zrypE+2u+huW6~1YKlh15OnMDX&ZC56E`?t4(hLx0Nga$hNW3#R1)xDw z{5ZO>8o8ySu`7{z_qM&=!^eOXhjEC9B#+oEh~w==^bSMKbcO%HN@)n@F#?+O=ih2R z{e7q3-hS2@eg(H@XoFEf+l=^L8`mmH+W8Ps;0L_=vLEw@3|<-&M8sm;;D^I9XyEIW zdMFkr@HaRlQtNu}VI2kKOYi_St0yb>2{^|(J zLOc?m+!bveP4vKxE4TdEZhct~)AR*I&E~;Sz*OQu?!hRH#o_+0%g@-SxC((Pr?mTa z-&*T@fGw*MWSd8`;GD-C2B>^~hf{)%QQ`Xc4P9Op(5`Qh=K`m@0AEI$lCMa-c;F2U znZ#F#IQ{SiecZmdPvv?4FnMHDZ0S(u4Ok30cwKsfdL-R!n+f}kNK9&@GoX&VioX1- z7hA1-MelV6htq%R6cp*p(sGdWkMwx=+-UV1?Zoe+jx4SO&O`&8!8g5ar0peLyaQ7G z^8|iPp?(jIm4ciec4HbaWympLq){bLF?2ZI+g4cdR~BRJ+G^&p&qAu(8xm1U<=2Ca zH1}03XbJRHgk9HGFCrY)*h)AP$@FCSodD|Icl7x}huXd0o(5OY>)u|vAAQP?DgrYD;6ivL#qf{h{#$av zJ8`@cf^Yv-2DK-#m+|<{3|fScB=A60%NE)PAUc_tEN<*w5LVXESDr-Rafe9sfhXx5 zk1)HDSOV@5amvo}>hB_Is}1KmaLTl< z$teIN!f)zF$7Ogaevz6JfsA{74^(fnbywY3I^8qyoU~H0ORx!1mQ%mKH~ znk=_8O+y(9f@WJU<}I+-8HxUm@hb7QFnr@2oHgo+I;O50o*vMb6%jiQ zaQCMmC&x@?6tS|+6;)DxdwmS1&o37*qVnPL_UA+(FN$NYw=o}vFk~fikuT)8>*$!k zyV;B#32-(pWM(Irrn%5gKk}v^>!~U)Tf!C4?O&3i0#H@=*;MF%gv$>;B27Ln#Ck-Y zy_EdyA~^U$#i8BPBv%dkx?l0mY1(royIG>l{EGQxmRtWm44+KX5>vwv@ zx8}ELe=@hrIUN;3=DI9ziQ^d098Qk+f!d6*?i)@+;HQY*!9M;!jg>GG=-agA#mVG% z%*|ET_0wkl#i9-Em_?R6k{lTrAa*w7g}#b=uy;cNF_^L2jn(A&Voi|v!e?+L&y`cj zhxX#H&0%;`0Y$pVE>Vm9Z;fN{i%d$4z(^H?cpgOfe(yEgqeFm>yoV2d0AGDVj2VoxtEz@VHFIIbqHc9sx-NPF4DwpKwTw0Xnp6yTO5 zJLIv6%lL}Wg08qOjOCYfL<3PJ_R&ecMWapIFT6#pzC|?*2x^lJcx}~4HOw>jNUD|_ zZENur=uQ?qKUy%&@I42xCj8V6ntN!hW*dh;!lXsWY7+C0Y(wk+6wexTCnd>jvhYsm zvo+Q-?qC48wMl*Z^86i5nvGyROeTEDeHkNr7(C7#@}q;_-<3F#V3`x`ol9ZSnI8p~2Swe2&56eSz$mmr&d-kb$v0)m zos`coR&9h1aTW>2{QN@pYXALXOh8FiVLID`F>A#(N;_WnV|?7lX3y=#Xr_S*uNWGr zqcDLQyfRz`7o-Q-iTM0ih71!#MaPy6_en%SRCr$PT?v>RRki+4^<)K->FNX&h!Cc$6T&743bH(Q6dnRWK@oUt61sX4 z6=hSzsGuwYlBBDXAOr*i5hTHgfC_{~;7MfB5Yp9?L`d?0Ojjo)K*&tjd0$N?kZm$m z-Bq`4^;CUdzK@SS=Rf~B=l)acy_XOlQdgk4Fn?F#rb8;acDK|-8=1Z(x=9dwm+%OblfkdR0YQFdf5S;?TL@TTP zBqFpUPcs%sL|Uj8il>6sED$N$;GIOWP#Q^%>5Dy z=K7Ha19w&Q_-*@!wTuPg$H)p1!&$pm;ig4?QDEY0D%s4He&IzOCl*M=JE%@FhoA{7 zeNH2Ok=R|(SRg)+tT5nI!(0o%=V`Wlo~38DHfu4ARE5Wk1tPrU{s&YG=G$QG;5#xW zj?mgyl|FgI0%?G@tA_b3fP(`{ z<#(2@^|XRYKq2LUjRhi4FKT9z$`>DIq7!Qd=*^M&Dl3=yS#M^I_TtF$VoNK8v$JG(ao#*BE?p|)ZW@s^y(O8`&b}R?p`bu5q?2Bd5*s$o6~;5cEt7)umZj_M2dBe6h)jjG@R zsfPI?fX@dPVGGEN2dtd-HK8#>2o?(@grfT$GHIA50pd5$Vf*`5Zj|!`tznN?APvx3 z)iB!uq(Vq#4Ogp2SH_QiE`-=ZLdF6SQs!WTsD^2WwazjFPgUMcABBnJaA>$A7D&Wf z+I;h(W@SKUCCoI4acw!LT@faSpkl`Y397P!aEIQycx0lZW1*mMJ%%A0Czo5bSz+_= zJANz>zbh&jZ>0ON zIqd=;kfec#1tLu=Y9o@&7cV8E>uU4%--`)nRj#?G*?-_+?_Ds$svjzRgjgWq_nAtCvJaek`KgA<^K%x(`X>$ZP6E!BmERV4t%8CBqjtj{d4cRuC~d!%`MFJ}oGM&B zvOPEY$p{S~PgGT-_#Qypd2$Nbm_Sp@dO9024Nu`CFA%j*nhNG|n`TX*AC>j=)t;&m z5##j_BO*d~Bbp5Ru!=tFnW%7&v_O)Ec_smO^-%1`EM5CjR2t!hXVNgI5RmiYBa!Xz zEnPcJB0gKC5?O($`O*jw&jB#9rwqyF1Iw)$XGxrfI#k140$``8CPkoA%6fWc6!=G0 zAjyI`nHa6T6!|7g*S;5pM!4k|<;$y2a-=6LJ$;nhoWrz>q(Iau#bcmQ?^}Zrme^}n z@3rE)`>qJH$bQD&=yA56z@o7j7g#y%Hql|d#*3yv3g+Wr9OEWg292xe>FI84qhJ%- zB5{5fhw$o)a(bWai5% zxyX(H&MceXehK0RknB;u!>Lm}NYB zD-|g?xqOjaE5u7Jkd#q0807o>0b)M4oXgzNTf@TqeVDOul#S|NyuR}ZlXJbXnK7%9 z(@w4z$4`H01(Gxt97<50_A}W}uxPPO9Y?Il?!Gt}{Q6Ood2=QaPO2X%S_lf$k?py( zG!xyV6^Lq>4*)ndu=YxPsihj`RRDexSnd)7GjLZ$*QA+BETuryLh)2EIRXjvknvJ0 zX|$a{uxAIFxa8nUwR%AN_|f5S3KZ7HkG=IrHA+tdEa00XT1;#oU(RLb_r^)Y@581o z{SYTi5_gkOtl9)sp0L1Qc9THX{Dv!^(!Vcrkm zYhm*UKRy+$VJ%~D8dbyQBAq}|hWQi&|0T9C{A`Ck_~ccsJD0`A{Ull}j?F56nx$)@ zf1D|mK$3a$L?S#K(ja|&$e^Z^!kECL8pUY83Dg##p)f~0Zb}HEZ5rBQd zY<>h{zhLRwL1FTgLLfsYzcDhANW21INSMXgEH>l*D)AL7^~^#)cr{OXeHVrL{Sbt2 z`GMCLFvwPpF1NOXw%4H)0+Ia9aXWxnOv=nkwxy;QcwO%|?2Ze;aBjqR>;yVxO#%NyeItTn-?`>K<8l! zVc%F7b#>wGD*BIEsqa#$3#CTq&;^n-iWd>6P$U0v-3V_oqYaGtibAW|=3%T*ikNo+ z@Y!(5HBj^r7nuuPAgWRN3&4@zF1Ue)qkO3_KVs!FCxk&PRDldLN}sdAQhbyaM)BjA zt}F0h58z3Ij zXRKWMEs>doB9NiRf07C6m=ES1L?#=@igpFUm;oA!KvIR$Im|pG+U@F->`ee#c$w3k zmYzOGWc*MB(pOjP5ZTxuVlikYfx}#uXQ8EQEkWeg6Q*#1bbpxW%g28r3l+!0G6wD- z;0IyWLP275yT023Q5=K|MD(0?MIz_{7A@vxFW*o(S7XzAKlMO8((Kvcv0KLDQ+m0%plp9(POc(Qo~6#U&E z#9C3PV(DqMR&TFT{Si|zfX00X6pu4%)jnfuvQ%=HJgc9bgmx2)865po|Z zRv?CXBLLx_3)J3<*wd*1gC|$?%!Fj&^*xFE{VVLM5a^V$o}MX!hiHMk9M6*w(N=$B zIG0xyJ^kn5Q`@wvZ5RDTuL&eu7kaEupEqBBdF2!$Ij!w8 zRJH#jK~aR=sEZRwq4X^iE7905lnN|U68-jXAGfRXIL z@@hoT3B~w6R$zm(hl9G~v}J?WRNsH!#|Sk;kG5)#LATOBd?NaGIh&reB}7>S0*LwKM2tWT^LYRV`q#o3DX=3}kajI*a>U`OBr8Imuh zn~0sMn(-ld1(^AwN-i^PYcypN2orsyl1<+iWLX0jNGe|(%R~>G3i=s#81N4nVuMJ9ouhey$VRx5ac z#GknP*{?vbh;Vi}tKH=WTqc1qVM-+%?7NWQ1rk5vbu;clwBcV`dgc%+Xq*HTE*col1dDbC7%j7l>Lg-v%RI#XZO_y1*u&wXAD-7p6U$s8h{@V28af z)<*OymaYZ5Mpp0wG2-vA>KT-N_!86qlym9d)QhDSil>6SAdCT0i8EgvZJ5#qeiJhsg+r(c|9GLuJ!jLx1KP97f5`G6=eT< zz~%)Yy57oaxBD49X_!AJ;0ix6>%tcg@~QqR$v(j(>oM9 zziQm5cDGJ$?bJeP2AG9zVABh?`IfGYam&9JI}rkT7Qn%^kc)j>SD;H6iqdcT`Xzc? zdwMWb4f8Pofxfx+K*uqC&eF9*JoI?)rW*w|eKi2nwr*-E0{?}8M@ zdNQg}d;_3S?#KmiMa+LJ=Q3XjGE(3Ik?^z}WIY4LX7E~KnoC5FRN0=rBA0n3(14qO ztA^>kBnfXce4)gjKM4HNcAjo@?96+@=qz zbK5T)y~;J9kA|tjf}NO^B|bv>0d(hyl~o2M)|OHq`%UpD%gA2FX=&Sn1KC+4PDfeR#QystjyRTLZ6Uo}kUrDLEs#9sR?Vukm>1>z*F8pS05?c}upvf4YF$`JVHmY$g*D@VV1 zB@OdQ0s>#^(>-rqYU!CkzvOke2oZ>U#dY6?O)Z`M`kJ`k&zI*$%CM14?TL8wR1MSF z7bNM?Eim)C=CycWB}5>qVLHpyU*Lh4l%@<^UeUEa_e4&@c_7aC__d{L-wJx52oXpl ztnTi|e2So(85DjpZ=Ohmhl9ee1y{tPal$UKB>fBIx-VYVjdBedA;Xkm{(ymNWTI?S z=g1Y=-4_SVNyr(*Ng}Fq)BEaW)h17{ob_){4|*`V#V6q9vaapt*1jG)VFHQh5~MF$ z!(KiZr=3=lx+UPZWnKHGh$hG!BWaYrOyEZ(;`o-OYo8It zN31~Pn~}D)Iv-@|+6$r@A#0qZQJh4ez&Fcuoxgxj+&APRSRm$UVEoQ?F+wtQ-jr8# zO$#Z!RAHrC*NkwwmDTPSRV1MT!Nez<)a`e6=BUd)_-0tTcAlsv$Qnn&%PZ4*cgYw` zJVMxB?P3M8?s4z63|uDbpm2CGD`!-4E%(aIQ3N;HF0Tla9i^yI0Q>^s?Q~9<7 znC$-*nWWcP%Bt#+ux9RgnbbT<&~Qqc!L-dp$KH#N#^kW zO?VlAbaO;vfdI*AZ9}PQJ2Ul!y>IAca4%ikiG5d3(3S@wf~{eOB9L`|q0Gw&xK?z+ zy~T?K0wfD&mKa8FwG#DvnBT*NCXgMcEgQV1`u>Xm_7qiUmvQD2lPXjlc6dFJg|M6r;!t!@ne>*eJMD2Z^%*!BsuwwgGo`I0#TENi$%!Q5A2ngZ|_{l=~ZFG}KwoIvCg30{JNE3K^Nytk3=Nafqc zGO;6$Ps>0qYT}5bK%^7Nx++ez(Rrtc4PD#}^r1#^w*=GWAOyZenHxTiO%%luS%Gvt z-7?HS1CZvUHUKLC++j1{xgwW&#qGfH)ozkGAl1YdI*S|ta=c{i&hJr6*S_p)u7bcK zbq}&>O{98HvLQL5JM2!rQ`8<7!>6`sRkqIn(-{C~1dSb6VOa9_9K9tGX@RV}+>&np zijQl~pqa!xI{})rJeMx@)(kJd?|jo+gFYPe(dl45hKa_4d7u}65w;9EzM`j{Gks)_ z$P2`&eD{-@I{@BW;!ezCu=9P{d@#R>YT`}w$D5ULEh~HD+9L)jIe zLm7Mm0RwvT4d-`y%_cr)MOJeb2aNR55CU;J;A|CUQ|ELBPK;7V82AW`_ds3$R(AjQ z5HN;Y^VvsFXz?o3SgPN{faqdXxF?Yiq4J(k3FS(4iGYIz8Qp~w-tl_hWpFWM!wbYoSDj?;j3)Xvz~2EN#extK9#owG{R*9Yi#0)865%{tQSTE1Szn1^li%2% z6Nzs#aHgy3#6}xcfPlNHTD_%x{OFhZN@@C(Kt8_gDir^lSaHrMNB5OR*Ow>#mC3%P zlFc;KynHt`>5~FkUl`ReojD!n0+8ZUa5oJTZ1Z;j&X(A}793ZaaD7@J>${LDlulvW zJ_|&rNYj}xi7-DzigH&un|>%v8ZyL=1+qaG)O_iSMD|$>a_&*Km7zfbIjkn|-OS2e zRxa(FIpQN~GYUm@Z0IDjCD9LO!p3nR93(1kC~+9iL&0O!4&2?BR-Y@POQoC- zA!(gZjwRp-w}qA2j)5n^c$^hH)(9UI23hM^ARell$`^NMqT>KM7T|*c4DsL|rs;bC zJqPgP#Qaz}mzf_XnJC4M1yWe+=yE9z@C*fOiA)ATSLC!I=d(kb!{&9_0LYH=Q*M z`jCJ%aQ-pYfOrjvJ_KkXv;8`h#60G;ugkJfM8IVX4gUWDpSwa(Nb2@B00000NkvXX Hu0mjf?nW*? diff --git a/resource/icons/key_export.png b/resource/icons/key_export.png deleted file mode 100644 index 6703498e7ba29ef34193ab1a1a711475fab415b9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1449 zcmeAS@N?(olHy`uVBq!ia0vp^CqS5k4M?tyST~P>fwjQX#WAE}&f7bN-Ljz)#~+#t zatCg%Crh$N-1RB)=&ebU$Ip>xD(gHTeT?xU__ zPkhVX&zx!e+>Zax?b9>o{=R)PX(q?2O_k+)wtSIXV0XPt-287v_T~Ki)y_J1i{ zAh*1b=W(8KkM+a@E88CnaQ=B)SlH3h{C$aq%b|l+w?L$2wv5ulggNGX6EEzk1u8kK zCED(h;rG(Q#mRVCm$S;6dsl#3uFlfto4CQM__(4_Sn^7s+}CM+&MG0RrvaIzS=~V9 z;%h+D9%c1AtLUWZ0(IP6tIIdhVD{Eyib87JzX9b^qB@;bM6O54C@q{32DGR;+m>%) zL0-F1yNAVQXP^;tT(9Tb&-~E+(9xJfB*g1 z`!@Rb|7HIlo;?}QqA2t)xy>SO&%e*!?td#v@1M7Nb$s=`X@_dkx|EfYjC<5s?LMbW zEB=1__Q!8~pNs7^*U33%p~S^*bol4)y5Czp_^zHQbny{5!E;@4lJgb^89`xIqr+c2 zo=ngYaX-@1c%~p$$&!Wpn4n>yf^p1zkEm_8VbCdx^%R-&#>rQ zC%@l1TSkzZRS4*b)HaL0`#(SauyK#p0U9L`dR%a0fr6ltWyaLwf`N`8mWOtS@}fx& zN-jkKVM6XMu0V61D6G-w>o^5;jOXPrF?W|%px6>m?H=Vtmw@UnO__R3Ft8A)H`CR; z=eqjt&ci?6F6DopyUeP3ceyL|u}%I-H)7N?yN{sxw~Pne%~ouy-73KY!?v1q_pk4od&TJ1xRqm`sX#)RCbvp`%_&@OW40;k)5|ZS!|6 zJzto``@g$1Z1(HNtG(wpx|w`sX}rY3#M$WJq%c8%LuC*#d2fArytX#~)urnJ+>KMV zem}oSKL2e!N27@HgiS1$BpRovPB_M~M5ocjO(B(Yi6N7ww?eO=MKzU% zraCAn3V3j^2r)IbkjxAb^ym~nF1z1;Us_nz?>ha}m4$O6r>=hLud`W8U0`zxlcBd7 y(NvhqghZR0UmlxoerDFAUd_$~EN;Qzfbd_|?IBVtRRvY$KmwkwelF{r5}E*FEJm6D diff --git a/resource/icons/key_generate.png b/resource/icons/key_generate.png deleted file mode 100644 index c67edd21b89cd6ca4d884f5a75d842db8d09d28a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2708 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 hLFs=7zW?W|=@LlcLye(flKkW*54dYe}q diff --git a/resource/icons/key_import.png b/resource/icons/key_import.png deleted file mode 100644 index 98384fba6db20dd2024faada0a35d2432bfddcf2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4276 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 diff --git a/resource/icons/key_package.png b/resource/icons/key_package.png deleted file mode 100644 index 6464cb9dce968fcae2c41ae1e99f0b98e2e7b141..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8815 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 diff --git a/resource/icons/keymgmt.png b/resource/icons/keymgmt.png deleted file mode 100644 index ae44ad9ce8789fb33b4e9e563ef6b7b23c3d2b49..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4905 zcmeHLXH-*Nvpxxg5{eK(K>-7VsvsarkrFfrA+*p$iXa`8Dkby?DntQ8??pN&AOgZm zSCAr2+Dnrz0i_cN9lp5ky8rL}eeaKR&RR3G*4{JwIkTU62>QAjEYM3(003CfnkWP6 zxAX7AKu3L-nwDh(0BjSDQZvFmT+0agz%y#x(d?Kd&A|9G73;Ejy|!`6CCa zvv>KM6NoPa?KHLM5r4c!L-#KMNi?Rm|Gs+k!KS?uwa?71EF(8Hak;(txy&pBXY3&G zAo&70kUrwpt3mnbrPVWu*-RyZ?`;x0%k}foZ2V#nV$zJ(+!v2Du2&iL#U;c@aP$v2 zJAEF>J$*U+yPAxa{GCt~2iwbqcy2>(%@ROEl-LO#ObM#JH_8(>?V)_*?c&lEy}lI| zGtq+$<4{3b%{Jh{anLyAdNg*D;BiRl%|z0ff5+ty*n#z0zDzsJ;Dt3<)3C8 z7+WfuL4nyg#v{`6gl^$wsPL&JP)=D?OK7SW0&B+m$k8-(Cs{AVhjZWdU#pF;$(){p zE5++|oVcl_Z^!OeeG(@!fMn{KvU?YX$M~L%$BAr>@R2j5jpO+md7X|cnuC_-l$gp>0)C0XY|pvw|mH znV)-j52utBJtKpgbH94$6$-@N_hf0L2}sedzrnmdGu+$%X88*F_rLuIXdnMXeQH*D ziZ+A>6@cLI>8J&lRGxcd6Lp;s(tf`wfBOXk0W2`ZS>Cw;)g10Rg}s=ecs~W7`biQn zN4c&}RE#$%_Da2Ff@2kru=wCs_p4#{$JhO2b`9y68YLO2Ik&yv4T~EG4{BE)G1mHQ zvbJBPETIDlTaWvh?mkC>ww@kmd)>lo7mRms;g+(0wx9LkWZXJhrz)o8|2g=|2FD_M zPIf+dnj)zug2sn@>n2?nQJ@0r8y{IAzeJH*wYbJs`g1g$c8a%K;UQNR!B*en_Iq2i z%x>KQ!(>0UcNms)uszt&>vn}|-UvFRyCc1@hC^9(6`HHgNn|adPWk6}Sn7s3savfa z2pdcRKFznD9kiam-h^XoImhzdk+QL~sN{T-H$E{?y3NW+o^DX~&c~=jBi{I5s1U}Z zZcGKV1Xija-gs&BC)HM8=am1Qx8&PULnNI7>0pK)^vTAYQb({~_Mf02Guu{_7R4o^ z^fb8|8k4lA>;iC*HWP*JS~dKBJ%y|H3P{3UL89j(g4rto%`=&a0aY0H$+)t?W5Oq^ zStnYzm-E9V?rbZJnnR_9`!^y!z`=HTgvW*s9P2Oxl5(zxgq;>7RVf8qbyE<* z^L^u6J4OSd(RFr$ITFu?N_qb~o*6i>0=m~~vd@vw-IGz5SNrEgWF`_%;E8j!m|Ma> zC(@$NehPJ+{}*fu@Yk9~4wZlqInVb}2&^Ne5`G9_ zLih8`7n?xZ(gYm{ufTSWpD#i9Xg{`JtN$Xd7iIe~ZY#DZP8k|nGnsMNux@~iblItN z=R#g6=uEx~%YSgz9ih6RVR?2%OB6nxE{&1B247%C%f>0wwJ$n+=l%doj)q1&Usp*Q z17xC!RM>_9f6>>+eD>@9@cc)inuC03%~;XUF}0J)dlZJat(YH|h-u=SNbzUK}7PbKhyl?Y*wb z^WfKuy$Y46CQz{q0-GAdj&HuLm?*EHTU(4z-mR`NhT)CaW1R|)?4_)h^=b!>0d3G0 zDf@wd7_x*G9q-dj`?2}5{ab6#Wm@SK$Bp+0P%#+s&gxmipnD7>%-cbgHOFdq+R~Ot z#A}dZ$41YE_7z2RUgTjpP3FoU4+c&%EpC48;#XA5(cQbiHgl8i+1Z1v zUF&uOTGhMCF3{L{7SzY2TuD?8HXY~2g3AML%oqFm3zk!pq3W5WvrfIN8+S!M z;0Z%q@eG=_;LgE~hi!si&-aPXJPNXld$Bnes5rf!L0NH zGr#gnoY?gN-?@Cr&O}U;VSnEOc4iilBMRrQ6UI555r52(&?~&58W(g*@e$uIJ8Y|K zuKNV-fS>#J2^l7wiS9j>6oWsaxQi9~;3E2KxT7ZhyH

J@vonaImR)bnx%aFU-2$ z3U&|}Xe4(hP6ZrWmLIgs50~R3!`=uDv#s?=lE9ZED)>@subEa*wX_yKc=cY+nMHmXfscb^FmKXg^KqpKqbbgl`fE0ey8=f3d4g-p`et*jFZWUx+l^|11 zGyig+MqwW-&aUWI|Jw9P4MXh^lJ*1ERWs8^$%)>`oI!vv_#uQ$chXhr=$P9#Q0gS> z3bFlXY1mk2j~Q>ijhMD<2Vp>V?9u+yry83DEKKhDw!h?XlDXLaj~xXvfBEXa?&X*oE=adM>y>`OlEVmIwKdL+S}PD8Ww&@3L?ZDVTGW%3=e8NJ=pnR-!HiI3Ifa zuIa^(lk}4Shuv6tpRO70%1C@7CfehTPbs109|a*fdR(q$Msa)&?Dv9jxw zKNG7+WvcLX=aqUaJ;~PJZQ6DBjBRaKh&Don&R;Caf{#Wy#UabVI&74cE6J`Wt8>!u zBtRt~hyYMomB_Km?(madL7n!NriU;qhi42U-p(TyUdm|~p%FTTify%A#duLTYw5*% zMPPx2xHn~rYIaH$-~ZU;>9S?OO>{0A5UKXW|F{3&sRL0ug-Y1}jz=cEvZrbR+lZ!# zf*#RcKCpX&&gy>0W{{tZcjJa)m+#l$CebxlI$RQJ{l_yITa9vFw~FH2@vhJ3=kBGA zZM}WBLeBHf+EBCy##2h~J#TF~cboMfd0@SIVYndCK?D==qk_PDluY;UFS#}=vSlFy z{JLJusw(hdD`@rySx4$y|7UZ{G({7ix>CRS9$}vzTh=A?u^{ZG7T8k`?~CD4oK2@E zBbvq*kFlxBjI#nsJhof`dYNq-F-3oWRbPpSJ!;T!I?9Xu)9XoE_koCGot!keQBt8@ zGSS(RI@A-3FwDf4H4iez!_}&=^RpmQpaWlb|KHy9OyTJDPFgQx!=^D%?$dSSRz*($ znKGPUu-ggV-u`wN<}dNddZvInP9I6hXjMMJLo8QL6(i|xp)Jz0*i1NxFU4|*xR(nr zJfMtibIVU8SR?MtyLmQvS`2f=8qA8a5I63~^!pAkr{;wWjGcLX>z*vhpTxoQ`$Eo)Uh9@`iHAhP+?>i)e2>+61NhPjGEnjmiDfx2>W z>k>TJrX;@XeLnRXk#HH!(VM`nD1pNL0#*ybNvOE|G_5C=-tI__0N;npHL+*0IjZzD!XGH`X8S| BDP8~o diff --git a/resource/icons/keys12.jpg b/resource/icons/keys12.jpg deleted file mode 100644 index acf8f8d0a1760c0dc9a3cc08950bfa955c1154db..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8130 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 diff --git a/resource/icons/keys13.jpg b/resource/icons/keys13.jpg deleted file mode 100644 index 0b76c5c657e59203d2c780d7010b9fcfd081bc1f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 25883 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 JDYj>o|JkAhaDe~- diff --git a/resource/icons/kgpg_key2.png b/resource/icons/kgpg_key2.png deleted file mode 100644 index 129c55d5ef76a0df10699babdeb785ac896e9730..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3837 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 diff --git a/resource/icons/mimetypes/text-plain.png b/resource/icons/mimetypes/text-plain.png deleted file mode 100644 index adc288363538a493ac2c274eb2091c0b8c6e67fa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1138 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE3?yBabR7dy%*9TgAsieWw;%dH0CG7CJR*yM zqGce=SbMeU3{X(A#5JNMI6tkVJh3R1p}f3YFEcN@I61K(RWH9NefB#WDFz0{wg8_H z*Z=?j1JzRwc)({T}0D_xf za0?7>gTS3TckbT3dk+ZigTTXw4<9{x{OIxHCr_R{efI3>v**u%;Q5Q^K=9(l^A|5) z0Kvg)|NZ+1jDlbeDL!D>sg(rz1v4-*F|)9- zb8vET^YV$vD5z;@>gXF;+1S`RxF0=w^XB8nuiyOpr}OJ9PzRHar;B4q#jV`Q=d*e6VP)bkk{`L?39oqk(@c+q<%4te3&hKntsDZ^j2& zlFWP9Ry{rbF>ztZw9|qG^S7$ZH(i;@`sbS?^Pg9B(?pdMK64(}-I}k(ar@J&Jhr>y zchB2zE@4nk=v|*~##j>QEgkr$bp7-vRW?ibA5XsM<@K`m=hf~_pHv>cP2N(@tueKA zcjS~TjYjvHscMpM)K|XU&aj-z_Mf;(*Qw)ilfJ3-?K%<9HA81+`lPQy9-k)Hmj>GX ZVOCsqC`U;lfDx42Jzf1=);T3K0RZQfRhR$( diff --git a/resource/icons/mimetypes/unknown.png b/resource/icons/mimetypes/unknown.png deleted file mode 100644 index 6a84b799688bfa6298530f819d73365bff2ca93d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1091 zcmV-J1ibr+P)-}m4di+DK6c(R&b->LfrVp4}R*8^fUfj?bkLn2{Xxz_a=_7&zEtY7B3v` z%OiQ`+;iu>H!*zQM-YZ#n3M?rH9X?v^EG@}I=40fUNWgP)(R>dgeh!&WN z>+ohEhtBh_aPiicvdyOaJDy|c2{1$(l!YF@&Em$(F&x{m9E<18D$lK3mcY4# zE%1Ec?A7<^`;wowbIc0FS`h+-R{>-J_9Vupin#n>ND{ZXX)Y48E%+X|H37Nepq2nZ zs$x;HQg!!-@4{NjB@YZ9|H`_d?t(uE*s~>tWITqg%}J@E7ay}I7JZoP#>)CI0X#o5 z0ksyebK^qA(ntN1W%Bh63A9o>LI^blgd?<{Pv1?I53n=)R-wicUDa-Zz6tqUqf))T0CfjMlXG0UKZI85`|+JCB74tQzkUm35n-1QRX>3Z^tQHIMY#`GQ=KO89#Re4m9x-v2e0fvu~P z(!!qSO@}1HvMfypej`RmE1Jmu>E9`pN=(X`Aw&oPJSZ|n)HV$1y@=7Qi_@2EY->rP zGra`xD`drD5su@)bzL6+6u~Zd=m58xBQ{gVK#r}_G`QQUexj@xg(p=D_t8&@Ql zuuMEMGJ@gZVQ?f83B+PC^!NAow70h(1~ABP#6o};xjMI{c`j0PC8y|uYEI4mWqYAe zz~JB@(&;pExf})t29U{QJ`s5*0Gr_GoP<$gsOki6o^Iv-GBMlEnO&glA)n8eh1j+| zvY!G#hLHCuBCq4WXbTIFo_cOUef=CJXWK`+y1EWzv)ShWauWFro&iO`bg&cLcecHw zqoeaD`II161Vn|tKyCpA+uqaG*0v8oU$x4^T2S7jR`4Dd{Yu3Z2d`he$N6dZdwYBD z5&3QaJrU%}pHp_DfiVMT9Kr{}5WyAXdIGpS>)*+Ri(;Qg#}DM`v#OAjsSN-C002ov JPDHLkV1m^+^V|Rc diff --git a/resource/icons/misc_doc.png b/resource/icons/misc_doc.png deleted file mode 100644 index 57878ba3af064315e29171bfa1f582a15d6ef18b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1482 zcmeAS@N?(olHy`uVBq!ia0vp^CqS5k4M?tyST~P>fpwy%i(^Q|oVRxk^Jcq?v|eOq zXAAPW;=-*izb?|yh)$@s6fyCIm2ZxnR`DM9GkFu zT|)VdxH-3NzqjwVzxVgcdH(Aa+WD8>G|EnNnQgmHc~Zva_EHz2+;1!TJQkgmyCUeh zzbVWyQrC%1B>%vsnN5^B3|&u;si{hcWajXlOT6IQK?kJ~4F(t%0x zxmIIHXNpQ=Pw`fVRW3$d4##$8DTFFXIx0Mlv7MkbF=m#-v6(_1Q$6%N6(0L=11*`Z zG@)=A8_*JOffE*&nSqvMbEeGc0P6lE#U!b&2GlgiTj8+_YtYwtmEUjqC(dzDczlF4 zDD>;Yr+Yp86ebiZfi!8d82RM@ZTcAo)MN$JRKwlaBP<&*lVL z84t8FPiw;e*jN3R&+a>Z6eu3e^CW1$XIlK@Bo?D{zHC9I6Ft)6AA&e%*@C{l@<^-y z(=B+y!d%uP^lJO`@4F9wTkgPObmS~M&>f$TzkknvJKns$zZmFpRi>4t?+V2ldp4gs z9Q9N#9jI%y&6-dWgo@7rHJT zhQ=P{39K9`GL1UGFhN(kv-*}?+3&X>ubuy!SS{A!@Pq09tZ)Sr79{~GCP5C~Mvj&? z2Nox11*V0H0*x00Ivg@MTn4kWA;>dRiob8M?fK_Z?tlC6%K6z}(sxNUrfhVVXdZgR zjO|t@EdOua`1x)6w|(Nu0`3aDjTTIq97hB_oE7>Uq?ig>E(vrfPiS+HX*6MZ#IZyX zS;^zIY(>DJc=PRc@*T^<{@;hc+59!Ge|F~H_oRDS3M=0T9#e>W6=MAn=7Bc z%dDR9_ilZk!=X7gC$!YRB(5#$PxYx^!DPAVlzopr08sdAjsO4v diff --git a/resource/icons/quote.png b/resource/icons/quote.png deleted file mode 100644 index 8d792b85a41b0738dbf5e6f9993ca1dbed8bb2bb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1516 zcmbVMi#yY69QV{D*PUb)j>cgwZDC10A?FAO>q5*JMq@b2IJ&q@vqN#@*2*(Rb2;o-y5Od%rl+Q) zq@?NL?&1xsLdDp-2bgR8d8JB9$_*YaPUu9&@M6r7dkstseo>i4Bt571SXSY7q#y}XfUVDT^n!_!%|5_C(E^5sH(0rke z&s>vaB>?85m3i@-t!ysHHoK$#geu?suWDl^Jo3U&|xRXu^_mPUL8GOm<@0V)HKvk{kc9qQJdFx89sqx&` zDcndM5CVF=Er{DN_!*cO~YwWCpdA&B|+Lr~~Yw`>G zvUwrO3m_5qT5;NikCwJ(+ZQnNY2}y@MppCI+Q3{$jpOlXWVJ_BUGAGjdo2R&!^f_? z%1SU&1Qj=Lfw6bgIEZ3W=s&U|PXerp(|I!ZdcC#?H7$@4=v)^CZi@8@MM~?z)9&K2 zl!ulgo7!)t;xS9&GcYH}pkWFrvX@Gl4B>dZ=uc|Tr&q*J1w?t6RFV&gz~em6@YuMj zNPs~>P;3(=RuB^$ZFeFv6sKF?S&b-z`)qd|!m8Hyz4V3AnX9un_OGW1@VJw!KKGCS1f*lBS$T6h4v0HAkd{Bt$KG`i3(s? zRY362n{Ivbk?ZWwIN;q z1rxedW)Algw{O1&{BndjUzyE%TwN?OaY)gcnu=%5NSFkekmSIbi9rJy+Kkl>7kXgQ z`mTUG;#o<{9r>$q#|-j|Y~RvG2YmbFPI3F^P5hgp5}HwmeVs9(+|5iKY38V>8$7~R zx4`%^TAE3Kb&pr&aKxO6edpOU*<@HNSAEq|a)Z~|QWiMgl7&5=@jkJ5f&!LKrbH89 z5ki&IqP9*HCN$$*&B*#bfG^2)e6rifcsk(QLx$tHz8(M&7z8=^00?(~;7zOp98G}@ z%h#e<6<<^$`PGf@hFMon5n9UEbm#!_V2TgJl1if+oxa)3fncM6*O`GhPSf(;$>h=l zax>-R1$NpPAd1dSyF8#%8q&@WOO7zOle0SSc;R6NgoFE-g@mdvAwaf860aw3-6PsrnTpCU5Iz*to#PEp+3*w{g7HHRQ$=` bXMfaAh9eX7j*KK9QzY7-fjwqLYl?MU5^7gOJfBLL!OYd-Tpk7o$WcdI=J} zch|q}x{vqyzTAg%_F8A{hrPf3oxOI6($Q8SC1M}~005+Fs)~B|vhP2K0Pp@TGbvBM z7eFsP6$L=~5YrX_K;NdOC~x3zzLOUCk;x~yx4m8}6hozUhV8R?9ieGVj^?H}lK#Hi zQI#nG?LGOi`!{TOP+abJ_!z{G!8wfjCq>_1&>gZ3qFncnz*$K z7vk>08jvrsCu}tZ7CUfhcGxyGT^Y9*m$#ivad?HC9kiaLzPTgs@hqEj>f52&u z;Qb!)Lk|7pyr(c3so;P+3wZGn%Ir=N1jYma9&GXHSu3dl&FwHIdBimQDDU;?4dGv9 zy04PPsY*d4$U5s(ym=clc)zE{87n9T;11^#XOi z>w$}&oZeb{5nQyy2#GRv5+`6efxbR~5@|x=+oqB!Ta1U#C@la{8|n`zJ%c&;WR*f^ zXe^iJqU{#4UOrk!@tHmym01){2d@%L^he9-T4oRl)k!hIoRF3WUc82SWU6e&OyFO& zyh$_`*{CPDlFo>t=K<9x_IVEy*PS;w%>%oV01KP^EhbSQb=v76becis1G&7PC3#sN&&w}eWfn?BYSsjPOt-^&Zm zJ!ZA$ZYM9xRz3LjnrO}%@duZ;*a%NGTjwQSk0-5K6uE9DEiS$Pck9%G+LdP)l(|sj zrf@NGE<^L7fpjpu^JvL|(hC!c>z7QYLXW`s=zCu##5+LenL)IkBVsok{>J zN_ncY1Q7FCUX;Hs&j$$*`coYd#M~e{H|}1w?EgkJ5|Fr?{FS^!YJwB&Kq#CdiBS+N zs?Q;%WVRJyj`tGVn;qk zp!(eHM&59C&rZnQ|YEi~~$WUE*jxyXpLa~>OMm1LF zG#v0}<}8EfJzLH3rlvpF)Srpks%$3tzwC79l(rTjs{eACS>dO8aCS&}k0+_fSvuDg zkJ5XTpV;mCxEL7G1E8bN}``kJ}zOLez>XU+5z z#YoV@9u3`KU(ywQo31hyTx0{@49v4LQ4Ea6lcX3o<4cgC5oMwM41PPs`z`1*|L;i1 z0STH+@)fxlo)Gzp&2YC54p9RtF|>9qpuz=nk)EHIF``q;0-)QrS{w6h5YN}(6p29!hrDo5 z1UneT$H04AYc*mFR}FiungcV1&5GJEQpO1t>QuhDV=rU?;n^Cgo&q>LBtdw&P`N|O z$kzxRn5yK;;h78cqz&Rp2!vFG**^IXx06tU!#~9Gec*nTR2Ltv(4EZ;8WK&D#R~#RE^t^tl{p*dFc{9KQVT+1J}hv z$Io!k#CS&+HmT#T;{VCSXN1?xY1Z4KDfaL;p6j->*Yw=r5GI9RsE2Ao3sw$TmVfF{ zO%$MJCd;fq*Es7s0edZD#x@?8^Dt4d&7U708bqB_&MeO$6zt}JP4da35P-i@dGE|k zL-$7%mdTi?u+?k%Ez9|_V~He|x@Rw~Yttcqvg*=y8UWl3+@-YT7tLV!(zAufVR4It z!H>+pP2^lLcs+X_@h4nrl!yi5|Ap$}kOg?^z*d?%!6OE$D%6qsVR@~fa`amQ4;Jp5 z?;a6<{T0+@7B()#^@+`}McAK?(=$)KP(Vi7BhQAS;QZv%GdJ3V6CeuXY%$Imh1HS-6pK?`Qwm_h~$%MLgsE z>6tuL<7j)RhX#~K#gEUy6?(#Bb`n8KVShQp0g;L~GB=z=f{W7Z*Q3wEHuqZdrzw50 zj60ft>Ci7D`egGyEtAY(B2W_+&H8TN&>u(f-+NleCQYEL?9`(&OzElRVS?cL&} zG^CcgdX|m&l|K0r!O8=VeVr}-$WR~fc12z0>5+0~Oi$^WR+H!=sp`H<13AxvsC}x# z9!{dvhG}i!(Aw}{K1Jtk??b-%!J=+No3DBHhR?G{*MrCS)|xlJMfyD{E_=PYpHpxC zeIYkkz`;7awqq@_@Gto5>mhbk(r~AYU2<8?9<0$59A_)~nV+NP?M5?S^>@!bw&vF` zw#tIQnAGoZwUCa@x0OGH9J_!rIsa_Z0tZG!Tl!0-Cgf4FyCsVHXU>Vg0ppyEW&0(7(&*<6D6SvNsnH~(+dsl+c7M1 z7MR$Ne3*dqu~xJn_6$;(JCY099S9H($4foP;xa3Ir0mUD{H+!rds6+>jRl@x?J%db zw0{40#$F{;xd-!(w7&VR;LzJ}wJ=C`9lJXJ?PJfA^InWsyj6UBI~;EDYgRw3n+%;u4&&d z-%=8HThnXOue{=e$$me7TH#sy6w*Ap$c1koO(#K0H7%1ygj}7S1$`^C)l;`1 zHzMn+(KEYvKS1B}3CGw?B=pk{WLcV8kTAzZjSquaqt+ho(wFbx z;JJSA&K4u2+(X5*eitPtu-Qn9k;4_V08$+{*-!icpMjVU~QRjJx( z@v2VsyuvLm&WZZGN9Q}gYI`$n_yS%o>ijNn#4c7y4dn@%`yW>a6EbqP&zC$ADBVQ| zrJy`Cu_AKVOczd@h1L3@mw;3OHr?rC-S5@2d)Y0QkF%Y7M*D~TYxfkJ%S|sjHIdI$ zA4r6>Nf4JGkmVV{eZxOM7XaBY3RRslotUcos+{rzQsKRFi;ir>=L$Rzb$Tl65iPWC z-RR;KH0=TmLL-*4JH}L~hMUC|>mx!sJOs*2RGfpz5f0U@U4Q#!0v#s`1@OJv=>ivB zKTpvMRpq4SUImctAS_Xu#te18JHRwOd}E^vQ50a32|qmo#scjEP|%Qo2R#2QMri(l zy(J^YqR^yhnPR)Xtst>a#*0g*75FwMh}=jHzN5DDH<-9eFlgJyH^?i5UjYY=_|uWh zK7Ulwql0!MmILK$Y-@U^wYw7ZTseELuSt8BgSZpjsoIMF&Nj;``~HDe{NO%PAJ+j^ zT{(&vNJo)+Zai0bjrbf2`*SdKT!*b}CvUQPwIa&txo!vH(_gI+7bKAedR8TSFZ#Va z5=5Erz}J3__rUM z#U<)$Tofo1+*`bt!3!RW_jz0``ObH;-hH9t=EIjOv2Ld7JH*`C=#J*k*1Xn0VsVID zO6|<~O>+g&FV|&Kh^ckKAdC2-zzsVcX+ldX)9U5OoVYEr74Kc7aRGJ2A+M0dlA2FP zr|<0bSEt`2IQO1a6?^kNx8&v{wI3n3u1uSBykj)q=Rm@hWf~VBiCMKA8(K3Ha7V~= zQ0*r^`&O2#FE{@F`Mss$s7}V%lUUc(+70Y1Ug8#rZe7EH5#wqV@RA;rTxS=#Vj8@c z21yqb;M5^Q{aPYhd3TXgRDW3$Vyt%groE7`FHp)s&Xb?&n6*494Dslq=fD?C=M(hCGGj3t5%(4Sb%8{Ltb&x zo@wT64VtZGl>ujh#2zv{O(X3zi<73QkN9!^B~7?iz+@yDYBAJh@#>Ac4s72k@qO)B ztA+8u$>w^+ETqh5x#gfPzLd9jQDDee9w*T{F{Y)MQ}-ij{%h-vl}gRxymsr8(XF2e zE$^%vrXI$bqbI%Qv3q_^)k|cj18t72ZKJU`hBj0eqe*~x_g{-Cs=$?K-LG*OnZxfk z>-O0V@h4+&@<)fYrWSDDCE@>i$iE9Nj$Cx2SN8RGst84%@oLZ(*k$9lda;5}xF)+u z8>YljsO}-aT&<@S)Y^Zu#I5i8K$^tj#}`u{xfE=6hHrq&I|)%>F0iP;eidJSt^7Al zq-!{i$!f|);wRfCBiXbAo-@vy6&Y}qsBqc z08ZnV>+HDZ-76$Zm;JjV8hX6#hGS{#S~3-6Rp$Bx*i|s8HQ3X~c=&OEY2!!`iOr zVqC&62>sp^g#el&p`)n$JAQl{6ulJOLj%7y@Dp6ruRh2i9&ok7%}WqwMa+D`S~oU( z$RA4p6}_H6lVn^h1=Z6R+N+f1sC@AmAzK9}qM8i8##J;Gm?6#KJYo-1m@NyMvPDMf z^VRTO#Wewh4Q5Hz2Vw;Kzj3tl%+ELS7jXSprnf(90SMJf?xQ)s(cIyWIKM2~J86Ul zdXICV-WJYVeT{qkC$Knn`yBpvnW8^eoEE59GPe-cSbd<`10mQumQZM%xGWmuv9LHY zOs^#;!=+$RG+g)elwjUHQBzMImI|(GPRR1&`x9*WM@dWg*&}5Dp--ULP>*Ox^Usfl zH$#Da>t$cl0eZ&S9`xsujCTaFCX?n(=W?C8P7PHQ@Q#UurkRH7gI!lEJncef>G~gq z%{AI~o=V5BV%peXrU0kT$u<#2cT=MMAEci!4Kqto+nX5S?#N!>`vN^Tj&Wh%Mf%qb zc7m3+WUoy^0O9->gf?otA(S`)j(MHcqTe>Fg5DntLO$&u7kJ*a5a?OKgIyy!h3ew-lE@u3*sMdriD+?ypSmR|K(^8Ig9pO6|Nrp6;GqDI9>zJ| zD9i87yp2vaohW8`C`eRO4FB(OSe2n1;5W_ir%5W0Vvs|L3v^ClH zd9r0(xuQU^&07?eQ2RGF^f7NrfOSc*Z438EG05z~I#gZ*ae|Y5#beGL^5t`d+f3>| z)BzdH=GG)i@HHEeSQh4ey=?Q+x|~+2&C*-0$UWh=^o!Z$rU$K>$MZ&MTJakN_uZ&5xXzfNgV^^-l#>9 zqZ@Uc@o$x++4z{6)P9~La9m*mD>FH?@kzEtjCQ11&9h1V*y5 za=J49qNq+oe5#OaIE)vrSdehfU`@~pv(n)@C>+u5Hy8g(btoIdOtf!Pm;9#W%Ay$< zRWawyWSFJ`=G2X-K_bDr&8!wOslUZI>=l*0IZu zzGA`O$Urc4YM*hBPRxj?ojfYVJgu`^kby#Kb5ygCoS)?ue}L4s(ux5`46r0AXZwpl zCiyvwhT*D~;{w97l)e76;-vBUD54QBlGW|#+Vi5Pz@kS=ks9u(a1{X4c$A*n;G;rR zc+w8=Xd}@0wwS%IM!x0y77IEpP)diFr?Ha;vj5P==+$Je!6_lSEQi?8)SiMne zOv?p~_3mhn20eZ?>8cIqV&zF2i2V&y6D_J0y&ol4(++$)GAnFCHR$<}yG#9geQt#! z-z3?}{aFabU^Sqr<3Hc{ya9FjR5@;@PBBJ$5o1D(hl{SwX$UGoIS||Jnt)HAm}GEP zq+rN(ce1(N>*Y5>0{bhbE{dT#JeZb9k~V9;`3>#Jz*z>6?W_%(v21EzztCoQdN%q! zH$^6BcavfN{2t{WZMsH!J~oc!ZSeE^umW@PS`n>+kU2 zhYWcAt~0GK1OQmw)m0IO!Pff)lv!*>c|(6}<};!`KHu4mt0kj!D0fCK5N^}Zh>-7c zO%q51m|~E|H$YbO#LrX*9#BDio{20^7WS+Om@R;G^#o4x)%3cx3RLsH6^|W#dx;oMzT9PGX#;IgPB@FJ_jZ-?UmkTa(@!`mGp6&!u8U zz~#|%FECb>gScY!o_@|_1K5M3d34P%7lSiH zAq7TH6*F=!w^bDUs2J6xUk-|5LcJG(EY)FLmtEME0{7fGV(-0!qV*sLE+oc+UuQSfLgLN57p!=i~;)V^QNJ8B>?+;g2 z1rayV(M`r2QAJ0rj9!U!?q`GON^B+cQMR(tlavO5m10!pdMz)Nl?-JWBNu_maLEFj zNU?qyP>MmWXvo>VJ|o+hPE$005^Ld6ASQx5zTF{v^NKSnlA)w&uvz?&aYjH>4Z_1y zKX^IF4O%N2`A3I$y*6Y1xkbtsUZ;q;qu-2H;ublYH(g~trK4iw{o6wVohlFcRkXXT z)F2Mv+D)cfj#jrhghBEn0eWKl6vG)x%q>UjA=OdPHxqwHi=u3@Az#bvDctJ~T;7xX z8pcP4bomr@{`KE^){ZLZ?RTyFZyQQr6tq7NF`pxjzl^cVJPmyftOU_vEMxY{dR9MS9mytX*I)(_3 zgZmGS;#$7LWiQ0LsnIqC3Dc-$sQP~Q?axi$4%}hg#AtU+c}7wr`MKxE zBPP$T+JGNd#4|v3Rq1$|l4+kwi7Drl=KjSQ-kZEVm%tv%u7pL;o)r49Q{ftrKJWI# zl2`pNc@B?=cygQi=NUDkV>Zo)Yr6TkpYOwB7J*eUo?7w+oKC_*fN38iu%}R5a1FM3 zyIiQ5zpE7V{OF*?_rM)|ix@`7;aV5pol} z>2L!zM_huwUk8N%9y1i=PCw?jZGj4EB8b_f!bW=bUwF*vzUrR)ZQ>=CuuhY`jYMhcx9mj*;~jB!tdG2#wAv=lC}S>)rsa>gY7 zT6yyfOxw;e59o8pZ2Ec{o`}DQF$=(QE_fW+;-89xI1O@xDd5Im5oFSpAbp^&;Pw?L z?%2^#&m;@W7ta0OilC1N8h>g z1z%N7Y)0Q4^I!ZWe41BbGD^&_485Q4nr#s5fA-dZQMOI=3&(7+qlK^=#lnlaJZ_BN zB(F;2^PjTnC=G~1#ws>Htqc(UikSUN?C%TSqQjl;%P*;nF3N3u1{XhOle8i0;&yH= zDG4nIV3Z>PkG7mQa%{{J_(|3*`hIEQq%;dH`NcHk%nxlz4b|f=Zbh8>otCnl0hbj& z-ksPCa4NKMck8%2p_VykyxA@##mXJ_9=JYII#32`($O*P=wkzmBsIt89&=}gZhK+* z>z_2Ql(u047m9{p#IFr6T}wbsi)MBNitVWL3T&awz+wn4`vTi$b|aOSaBZB4Y%+a{ z@1KfVk9|4UH*~)sVN(2f{)78ydZK{oWTehEWs&Wm5WvI%pCdKQ5i4_WMq~*d`iP7R zBl@#j@4olcr^RI7BPD=>|2)ns_M+vD-!zaYBT%m1QCFc|_Gh-hH(BfC#e)E^j1#&b zfnTPy9g8DXNQt3QshgQKuDi@=PTwjaGJ%omdJrAeBH!mB+1$ z-6`S2_UYOsy>F$EBRi(5#p|0{GqJWD7A^dw5Y2@-S`W@|yDGZvK=tj#@C@8zt$-jS zipJe{2^};YyGH{jg7cA#Yw#goJX*5*t{u-A_dvOiYFQhtabC`V(mw*5nRE4;v8JdE zN`MH4w4>oxvyYlkS_K_G(ULbpbpNgR@cHA746896+NpbLKAg9KHij)02L@#}>Q*1a zhXwNx5@9UT$QK!!^B|*jCPD<>v)c^``FkVK)Q+@GsuJbu-Q0D` z5EChb*_WGShxhBN1qb}Et;Y46pP(;z)eiSnCh0Gn7k?hnZiEjr2E^yPuP{5LeBUPL z3%p@M!)p_qca9Hb4mNcL;Ttppgij(lx(TBe+-#vSlF0pP=sudyRP7C7Xkt4f0{k&1sfttIxLH^rtE`3C z5yP_b5E!=TOg|VdEP_r@^%Z$h#uHtnai7X`l2ms^g?}uI1sQU+ol`XpvppvbDm!Z~4{AVqaNrg>!Wd>_cM3iliKi9 zRkcb)FEv0HxX#cLCmyC3o_d#Ye$}Co)OyV3TD(MMCg5v?phSfi$%8jG8{`z^-TQY+ zG+Cu2vfEoQw;^Ld=RcsLw0vQPRKOlwaU{{hpS({De>!FQ5j;F*a(@)VC<|4ZIPNwM*j1nTm;>UdW(VMJY)1n~&f^O25@ ztMS|MzFW=;odk#5qC&69x<}YnPE_kgKweR@cM6j-xeh4_DRG(xrSve4Ff!XcFN~ z??L4n#dO3QuDG>e+*s8H#h(6)C^jNqpt?MJ2rxPIz1=$Gf&6z)-$!n|+R(oSY<{0T zAQEOtc0cEvri|MjArEsuXO35b$c*?2)#s}lJz=FP9!ri_zXeTD!DbpddoIMb_H}FagZN_13pg3^XP`PkPMC+Q zLs6DFDA*%U^Zq|2|K)2(SePVXv7vvO^(bx8ILt!o>G8CR2Kg|A=WvyH(7mb>C#__h zkK_3{ttTK=XYh;Ekog~Km=b@|0mJpK80+e2J|cc~?LOecNqY2gik3<*Lr<>Fh11F} z?4{=Mw45vX9T;*$FX}@!vt*uFLz^VioZZy!i=Hd;N?6ht35$M(bzQ{|#zoy2uHruE z9+BrWjU?^YSee&V7XPM70B1-eyN{${=_33|y(6JcXJlhC*oXgR)3wcDM=LevLt7A~ zE|1tB5q|^v;MoBKR3%>6(oV}g%zgMORQAjZnzUlKlX&9$)*uJN2lWD1G*Yh{SHXX{ zS>Jtb&QC#f1LzZZ6Yd_u@%t4_qkUIS|8JVM0B6k`WN;cu+PJE+5$@~dl|b-&y-x@M zmBK=r@OXqL2~;}rK21>0zE7R;t?M8=rhuvZrV{4b#zGixf<7fi2abnUSq|kSeR)Yp z6w?JM5{%Qzj0JL{-XLZ)@l{{#A9O@h>065|L&*#@F%Pd7+mV*6b@DjGmde^(l*95`eALcr@$gwr!Pc0 zD7>REE#gBDk%_sS>5O^v5oU6BdgQm#ELPz2&#Pf5yE5>Ly*@dtvB|}G;`z+1+(*8Q z5hfJ(7J4I{sKS%pyU0e&^PctU2|osRM=U8!956lZc~WVOsX+L)%wF_qIpIl<5VuQq zo%&KgxNi-D9l06x95VWt0M@K`ONazSS+;LAYb$5Z&6$7XLd$y2rH=)L1giP+7PR-= z5k=Z}%Hv?iZ|+4{uj7Plp3l#@s^88S>9pY+jC_!q2)Eg9dikEC^$PwYifF3}nw3xl%GIq^539)e3iZSm_(M8706+aNbm}TFjdQoGcC8GsE_4=AhY| zPf&%+9$+Q8Le9ut0coUt#OAYsu01m5yDTzM z9%cGFZw^M&SMSu;5E$qi*-SzoRVvcj5O6Hh&ejAVIaj;y!Eb23$b{8-w3dRB&^a~n z4sZO<*YAomE@VqM%ECF1cK3|Av=7j`6`Ka6Z%xFGB82|7#=j_$*hA>9R?pjU#gtI& za~AEsnP~j)!h$@$I>=MRpopnrwewu(0tHIR#jr{^^Yx3%I+RV>^_z(@k+Y|=%TnCqb~ZvBTHos(mr#@>+c z4e}V&ww#XLx1wxRvCUxsNmpk361~aYnZ>4lC``#lrZh2xH!8V5gQZb`eoc3*&9X*C zUMiNf*W#kj3VoIGL^b#LwVlP50^_o|UofdYYTGVmO-cbn5&htssz8=`fQRpW4O~3t!c%U!6^L)t)Px(#TNt?Zlcee#c71X)RXBATs= zjP_uE#7T+0s;QnwrDuf6^Tu~ZE<2Ls0a$e>7f@Yj=km_QmCjt>>?F6w1vQta>_Gsa z-UQ$MoF?|ype1cADZ(@jqV@D0{H|(=taY2L=>UpTl(y0LfES9dZ|Xpsl1HOH*+~mV z*4c>0{sq)oJvw)p2hQ8NZ~q4k3&?A^9rD2z%)(;Qfdm7vVZ<47jM3rDs1(MD=H(1N zMP>a9ixnz#9O6l1jD8O>tpYaT@pYs#ZkGiOMco0X#}!WREfs0;v z|5-I^p;?@9+$bOdv(U~a9qbldxhrFMk6PMvj8XZ~%*4+~XXcWc4Nw;Bc3opgL#-1y((C-yK1l?qd z8pRIYL1?G;j1N;%R?6wh;cwmz>z?=KG@9g*)fK+%;z=&*=dAt0X3s2YR9XL7|0Hbz zQk3TeeoyWnWVK!o;p;Z1@n&PaKIPscdL-}XFbL`W>&Zh_eN7bbtlQ3Wg4d?wLn|+% zoCDs5|DJ}WHfXr(>81tbZZLeB13A*rYnFIoPf7Cw@lwEBiR$nsE!fUT>FPzOlb!PX z%_Xfa^IXjVKcXfcGn%pwJ%1SX$L3y*R9%H}foA?FG?A)`8G)Z?ovKbLicfwt_I=>3Wfa+jN1>+m!8{(xRThlQ8aQhmo*Ta312b{>LJCyWj{O4s0&I?4VQOpYnE(|X7`aU`oA=M6f2xM` z(hfy&;;?&gqxq@US5A3JP%%1rqWSe!eX;euW|G$fR+2#6Zzs+1azVYGE~CW%;SQQ@ zAKk6aA7NUhJfEd1e?-N*_gO7H|5&_1NSya=)ba}>#|*%Ok)3xb>)Z2o$<-5+Q9J73 z2!p<)qM%O?8D0y3Dy;1z_Mh>wP8@~jYsF_P7t#?)%@f*-&A>L+m#%3ZwiM{L$y>~Xr@@@fz0Q^%`~R631MPw#jt zGsvuuuMW1*D0_%i;3Q_KN4n5FM~sgMDXrTiZ>wlYXZVTb zdrA4@_|gPZl%=Fc20*p36ik2fJH*Z`sD|yl)hOEV2#$Pi`nHiSb;=LW9u}y!qXfkayRS*@%|OGTC;R?J0#?<&@^5(jo6uAu zV$&sh@@j2=2u~9a!E@TRhE|Y&>b5h{_Ig{Ih6mj*m&Bo#Xh_lyYPof9;x9$WP_N;U zH3P)eaQ-^=k^Y%N_vu>&xpL|P;LYsX#m@pC57SHuj%DbtooD~e!E&3v`Fd0uU`}tDdANk1C^<2bicSb^pMj|A=3lrFY~c+Lo2np^V4c z9*ya}^kcqsF=>;e)eP0(tuTKGQ6<_?>i-|ook60t!J&vH3H!vhR*a>lZOnZ)>D9^$ z4;2VceSN`@T4??!icIrMx^_BSHh609+|R2bwWz_U4%)f1KUx5Jz%sS>k)EeKvpoDA ziKyQdiWOPdL)_jD$5KW5UTkX?v^nRY>BrO{$r$g_a-JmxM{=wa~(4JB!(kzZP2lFJZ1YOW{F? V0PnC**YXoU{Q*j~UIiWV{{RbR!Dj#f diff --git a/resource/icons/sent.png b/resource/icons/sent.png deleted file mode 100644 index b11d0425d1e617732ff45e9734c40c517d22cf28..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8314 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 diff --git a/resource/icons/signature.png b/resource/icons/signature.png deleted file mode 100644 index 3aea526b01a5e7400aa667f5d8f4380fc3747792..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3710 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 diff --git a/resource/icons/trash.png b/resource/icons/trash.png deleted file mode 100644 index 9cf606b8813edc96cc09865f541214e43540b545..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3901 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 diff --git a/resource/icons/txt.png b/resource/icons/txt.png deleted file mode 100644 index 8db7ba45e48de2fd165455e668fed7d45efb6e3d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2482 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 KHmxzf_3(cU?0*;l diff --git a/resource/icons/up-arrow.png b/resource/icons/up-arrow.png deleted file mode 100644 index 12451e507e1f4caeb64ab91efc71eb864487a140..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4969 zcmX9?c_7pMAOG$!R+eKO?uMD%SB^4S5nGOu$^A%6S-B#J=8xbYay=!X>#kb9L9y z1Eeh@O$5H$w5ZP?(C9mdg1>GDcK?QSQ*CMqPWE&SDiy<`Ivi1U;?F=Ch`CjbuR79W zzEHPHtaHbtSv(3EijxgJR49!P6A`#Udgm_`$DVyD!X3oV&cvM7>sN-!lj+qjypHhg zzE)?yZQ=4ceWg!k&M`X-Kb)0CgSw=`ypm6LcqURYeo&hgzXw(&GRHW? zUy*?9$m^GsujpKW!A%$~nMo{fC_;;^O~1 zZi*g%cLJH&K?mzfn;%qJ^WU{`+Ke=hzKs*K`C1A^V>{}eKLc1rO3;+i>*uT{6+P{1 zCneT)G_J-{p3;Q%yRp6Etl64lB{Ot;A}khDy=hB*n6>btX0|5yVC^LNcf)|hO5y%& z;!{h2W__UF!=3-`HOF>H0{O7K^2V!Cn)T>9WA{_ZA!RJKnubSxI%!5ZKQnrV6jpAe z!M1#6o^p)vvVrDTE0xMimO#l3HA~wv7p^B8T9%qHI!(#^*}ph#dj7h`^-Zg1ErrUbEjNrw*Q#+0HnL7IK6(gRjUz5YV z+yDgc;;LG+3^fk294yUa#K--4%J`hS2}8WWn}5EI?;o0wc_UhN!RnC4j|%aIkdMqz zTz=R~R%!aT8s`B1uiPJ5K`I-c8zdiZYyisgi&2!(*gNc%@h^F)WTjh!x#=Dm82r8I zyo*Sv|5xfPFO|Yky%#25zg?b87}ERRaQ6HBdwcxfnq#XqIV(e+A{mrC4F3A(+=a3r zr9W=dilp&tE_<_9?Ig|p(m_?xu6z;5bEtnPbt{EaJF-2~(SeI%76f(0Fujmm;{=EB z$Ym+KUa(2;ljEQ(S!DzINvtnv+u!+;JR+YC~3F*gfD0_ieu{M z_**JC2yLw>4_L%doW*o5%M=!YDNWiC!F%5#=p(7%uOOgY{f2c5L z?dAC&2vXHFdzGB!C1%M^yF9x3HjBlGFX`o-U(yw=^HzpP`&l~Q1MkMJIng^Zf-8pZ zrmVfY&73iE1*5s3RxH7-zw)B^b97A-IbOvSYZ<$>8c%}GwktcOZ^=Z|lDsZ5i2O*ee8oBx$pO{)_# zP0YQh1oaDbE_mVAR`A|E@AzYGy(s?I19n$nQ2$pQL$>6v8~Ba8EoKtIBrb{%dEC-q zUR7PRFsU>g@%2!hn+8p6AEK3JR*hlZ=*nB@`M0C2+! z6#LGZFfP{ zgCx1BOxF9Qf$~=;j`H%jkMMayExn`uCX9krm0&ffzti~H4#Tx{ytiv|pSIs8(z(#< zEGt;!N%pHM?ww76ESvGd50Ny_=G9qE#f3UW-lX562;>1rD~5kxuKa{Lp4GrQ)nb9z zL637AMD{U<>!-FqcRG)#;JWj-KR-E^xiA}CgY1-j9Q$&PL(UNTVsn0t2 z%OP=D$H#_9I|uer#-Rv|=LFBOGERi&%TH3U*(={pT;22C2Vy7CBi}gtM~d;ZoJHi1 zD9E=L73VClz&3XtGZ~D#rNIbKk)X|VNw9rr-n6WN%2BO3)y^u0fVixdWG!*yb z=~4b5cG-~ zVe09cGH~xzeOW|(!ILlZ{N7`nb-6qf=aNpukR4dOdr?Cw*Q1|+$%Hw zCIvFaG5DpoBwKZ98($o=8`6I+SD)=HJp4`CEL({7)6RvdOI9F!9;d=_lh$xCc3(%2i)gDepMJZBW z_1?BJ^XopN3J)RA7$J49>w~IcGAF|JCAR*puv2Xg#eA$+?DQ`v&l0*`p_j9AXo2Jr#g_DYvThvPjmo!+@rVTsK~{TCaF3P-x2u$IT-2lRXUETF*EXOEzW* zImJ~UTU1_yy>y0c_qKXkeSe#~60L_^;#o3v$a1Ud_gLsAThWfF-8ZaB`%UIF^zQHw z^BUFyDWq4GGSAcKRs|$)Z}Q|K@9f1y}krYs$!$D6D8F~!!#SRY?bv+Jw(jy4ZIXr&%u$eSB3tYS}z|CNwg z)lGjbJdAsBm3$JVqCxCeU9f1ma3DUPiVh{?h^F`jtCkDawT)3mj5)s=?T}{e=nfTo zC`N)eH;r)j90Wk;?0crpHEBolRP24M;E&a1IU5g_w6-F$wwGw;PRD(2o@I*M=DtBL zs>yOv%K9rWgKs!(Y9P-hyo*P?p2^PuqfRL@ysPj5jp8;!?TOYn@* zV=mizQ^CxlxQ}MyPK>Ba?4`XHOT5~yi=Um6bM{6>8B@JN8rTQpEU-cOTw}aMXl#0V z%jIw!(-C@qs;ke~=W!rhQQ9m^D67b(JA(Q2g058bK2Myew=c7W$7MHhDu0?ANm5RM zi|EtSYU7veeG-vljAM+zRGmNr;WGb&_j+E@XXDyDFBzRF}i_%(O6Vp@w{OYK5WOT(op%%$ryqUJRKcxuxK?Cu5hL#B}}H>1@fqT zcAPNlM$k8eSCW--498h0mG5rQqmLdM+0oiq83WoFxujTg!w(GcWr!D2bs}Yd2KqJ^ zfn3DJI&V>;h+Fe>!PPopi&MrKIN`k}%^chcN`hS}{y0}S+2fQ$;qCE4Dq8!9K$9tY zv?J&oP)2d8pK)&;I+laJP4b7gF^Tu*|A|F8`s0|<2nH*+fPj8y48sQ5`&?$4nihW^ z01OcTLmw|jzB7Vh|0(890~x9(9Qo6Lp#|BWwlbEQ-Uq-@(4Lfe20=<5NZCD@y^FcA z)a0i9k(61I@aFRmAz%bg!}hZCC$=oaVD)L;VpBHrx%(@74J9d=83~!{{qBGHI&hIU zadS7oz2u5Z{UwYr3Q9j${_q;H8);wW3U_4?>mFWvi~7p3bzvz5!e3(_3`-B*GODxki+ zY|jyZv3VP5dMT;vGt%BiADKaT7Ii0d=ca(~g0LZFuY965UAIcP9h&c3xw`K$=y~Fz zMf6^00OSL9*%KTj7j#o@hzq45dZtn#>^2qMDH*eimrgvRipZ)nrA~HsA?>-yZ<1~{ zQ9q|POiO9;;#{LNfNRqzR^I7|pDkS3ke5lGHTg+1fMIWweAIYz!D~PJ5n%IAL8HBG z0X9K!P(`X_j0sPo%b2kh*3>cp*4z8QX`-C6bH9P!7DCI0)JN(6#U)5CD^tVBBj&!i zRd{3Hf39UJw7l%5m^Y-gqRg8giJf4v1#O6YAeCt%GRGY(!ilxg4m)fjn= z4rJ;!SDg0y8m&k|;1Y0l)4>?6fEEAi%k1&&0y^lgD)qSxAKa+#b94D*G{F85KR4=w zD}~MF6ksieH!;qjQBkH;ovxP6hjY@)k@}2PSfaU8!e(@mB78{%v7$?*_vZgy1Huy^ zp9J&;QR;MB>;L`Tc8Lp3pm$aKKD2@su^05bBAtY}o!hzTdn}v#t07Vkia61gq7=Sa z-F;C+tOm8A;Ku)Jsm9B+x5DD@f3ub_g<)k(X>-T!*me>ngmTboW+D9vFg`daK;SQz z7%;4$MEaH$pqTpLNOV+-eVay0G$atQy{0)X2geNv`r+`=nV*UjcH!^(ZFjQdufyvUR#fmA|%=2S0c+Qr67%t`i-WS9?t)s5L=rfHGk;dQ`NC(6O-{1Tf zCyT2N5$QsS0PJ8p>26BsZo7QCOexr`f6!}t3fgSHF>m(+`xIL6>%%=G2qfrd63-tH z-zrDmn{{k9@#y3)08~bOQ)HTtO{4;|)R%7uy04E_ISBSJcj+XZxl6Og#%fZR5Mm8Y ztDDXTXsTo{LyfK@C}{^jE$F;x^(3oobHGS7$Uc}^zHmZQ_Jj!|NJRo3p+e1D33#Fz zWAO%gQ>7ZtJ;MCLe)v3>)``5eeZ~z#kiNP$nE$ZOq8mAnuSRjVFn2%JdYnb;G-S@f zntW755d(EIUzN@SUDKk~Lu|rI_n(@78Zz8%=G&L8pCmxq!J2P=0QNo9Bh0CD?z!^h zq}jxRi6dumPj-;E1Vlm9Fj(k;$-u3a)jEL?I5i9ZK38SEz|Wl3{e~Vi zlLcUwGmk^N83l+c5Y2Q5`!7t@0d zc#Pio7D^9+Y5F^<=W3TaYumT6C?ItU5(auVLmw)8LON#xu|rK z&`!^)DB!i%^f^gmM_p*D-t;BF1)A_gfmeMd#orDX;8eXeL&PKI$Et1ur%-`1=0G(dFjTpYRM+UYHT9ec~h$?xqnI?A4ya!V9| zdJKTQw+YUZtbae+;OF7@i1rGr?H}is;%R~=JSAWgWua>K`hOocjepT)=iTe*N09e_ z90XD(dLpqNUqQky`BaM|4t92{OC; z(t583-B9hW@h*|F3u&L{bgGx9N( zJ`H-=dI=X~jd%W>Oz!mI`|Po7rfOxw*#nG87HAX8?#a#WE>ne|s29gTrM`_}H*&b@ zfxLmCN3+e+c*|C-O8cdy=cZ8Wkr`iOFa0GJnLI~_%CNO&t;4FW#_{(hW)RrZPmyk+ zv~jg>?R{e5@M10(8{9<9l6z=5m~NzQ?$N3S=FhzPLjCjH8pGmIg3UPz#v%Upo6H~} zURGW7SPEnEjP*lbzI6phL{NLo#`%bdr8#>7N`T$x_7b6(T;2PSHgY^LHRK*bUbhnI zc>XSgk+ef&#o7CdN=kH`=E#S+$$EBD;De4CN@@+`>dzo6&iK?vZU<6;w*uLu(&Y<{ zoySKDi+MCuzUa$?CE9Mwc1*_I^GB!zhD-0@S4eR;AC-WX!8^D>k|N+RS>m-t66Wyj zV#%qapc=$bg~7oi-B|z$TKra zAqyUBb8dSd2imp5DDk}>pa^+}2tp{%_`nl#hC3MLMYAy@gp;@pf2o)5davD`07BoA z)GI>LvTj0)RE+{=zplZ4bfs|ElGBzV!^j>2^Q!4!I6wI|yw(cg_d>@Qv#V9uMuD%* zb*xxrB{JvM7DwbLR0X7P*!+6hLOR-h2N4_GA|7o!wBUm8XlFqTbHjiE-B77m%K~udp;;!Q0&?d*_ zoY139z>fHg*cPQY8jU*0ob+vKg8J?X-;oB^P9yibB!(r5z3<8oj?Icb{xmT!-F4|* z9wO61c5bZdoVS4+e))aS-UZ$Zd8sT zpO_iD+DvndmS({Cr;&3)jFdw_Y7bG5GFF2jPGVXT=LtnG?eY0Vr-V6l?~I)3>hqoZIn9bh<0sbB47F3%jgPQ z`1bXC_1mAH3@>$y9%GXHpr`1BF+PTr?OEEu7?I<}_97%t)d$r34!5R)4U6QrcpgvfajcNlOX-cwkw24z~<;BwC zJNkTzDf&w%MuGb^C}3|tDDMlX8f2bzS7&eMmxX-nsT#nma-nXOn{AH3d=`@QMWh1E z(ltNiPMj)(1$uUT=?WK6!(!!MgB>0aZUMua@wVolBURPEf^W*hT+pn4{Jb*)WZ$Xx zA0jF(4lgG~|7=X;?(=Q(kDKDJObl8GJMH>owmKnMBuPer_tAsfv*X>!myp7V{G$53 zP?s4&#Ufh)XovAZp5-x}TcGZ$`GQTA9}&w`zk^Vczy+B2&W$l&UD1<~zmfdBpI4u= z_TPQ!QJ)2ub_Hm(1@rn3B=om#MdcD2JRS30?DrOnXbz#d;)z8lEoIaCt8w9r$Izi~ zQ=XVZTkkAH)vejap)LeTQwkP9oci-O6VW#O5J82cSH^SvN^&OSsw^IrEvzj3(OTW4 z_tu?aJl0NEwvb!^#_hlA*t*DjmwJzwqhrSwRl;)|D_7{NrPz$he#P;+EDU}oehDGG zB~$rmCnoDwHBC9^N`JZo2lTS!A3L_-8xdUP6a@NP zeEh@QYvEhi1&z8cdA1&1Gd~6T-JVrr0Dt+vpZcc`nv6wsg8F8jnTeifdu)BG-;;z< za;Vw^#;x&;Y9W%PYUd9}8ZD+5bxcK97#xC-p~2p?J&MDTH@z1}@!JJDf0BEx7}Vqo4KoygiD;`_){W)fAg?YMWN9UV4o z2KB*j8Fqy*la`TV!gUpZdf{$|poL*wQul)E-c=Yy87^>cA56@hV$urh@{jW?m-1%` zKL5G~Vb&Qnu4!0|tT^h7lyr&U^Z2znrBfB{7!fg!ouI}J#_Y}-*%0fAA#mem7oRB# zFHi3&3_e%a-jJXD8~Qja#Q7jkQs`OudgqRWv}EQ+tDry2csij{RYzyT+qXh-{YUj| z@;AYU(FBIILdp=?s|GF;;cCx^aBD*D%l48ya0G9tbBlIC!Ri}TR(i~jTyxA`shd*y z6dyF}!VzOkR<%5>=?%0Ro&5=IR5MM=Xf$W3-x1Cxu$9J2v9aQtocN8h2y(UwW5S5; z%ibiVF5`goc%Linl@p>97qa_cShcXZY~lxG2)S9(h`XH9OFq3Xfe<)jPZK)oL%vQC zxe?wM0ga4*$yzoG`aqQU#`hOq8rS8`c;P4&i-vjdnq^%)5K@jU&u)w4)IqLRX+sY` zL8sEI)%a0giA-Cgy6O?)*|zJ|RNw?F8f|-`IB+~x%G)>({OR@;N^!$ZR%vW_kPf3} zr4!R$16}chCc>MKG2dx)U)(=8!|Yy+RIaZe6J2bed<1`-kW`0gw@lhj*BXO`BJpgn zqK5K)@?_aLi@+>$^87Jwe9yo_PUiiORA&d;m^t~dZ30qjOAP;s-yzHEoYOH`(t)vJ zie~y2Z6}B1QDeMnbGuHlJ`?)p;CH7RnHLt3Mfsl58?BLPIjZUJ_doyQmGn(&+LuW& zS_JipKPa^Y88Vf_SsAXEF59v()M;=4-MN}9Wr5=KP{+=R@KhD^9VjE7w7N31~-EP~YMWNQ%+4 zJ_eG)340*`bl3la5dyjg{qrBV|6%w4S1{CGZ{S7vnNM1~1#~n8(@)j3+K^izyws`` z=-6iT;@i7Qm7dU=N!@J6^mTKb?ArYm+jP z%VXj$0i&)>7-Q}eVjsxJ;DC_J7{nL5*+x|&;#GfGJv}5v&Z3f+x`WKLUWDfVncYpH Z8$+-u#V`!`Qom^ca3ga=tiCJizX0RNTKoV2 diff --git a/resource/icons/verify.png b/resource/icons/verify.png deleted file mode 100644 index e359b69f9d99184b5ea06648425a95c41d463f7b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7005 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 diff --git a/scripts/install-qt-env.sh b/scripts/install-qt-env.sh new file mode 100644 index 00000000..27c06515 --- /dev/null +++ b/scripts/install-qt-env.sh @@ -0,0 +1,3 @@ +#!/bin/bash + +REPO_ROOT_PWD=`git rev-parse --show-toplevel` \ No newline at end of file diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 3417f0cf..62ecfdcd 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -102,7 +102,7 @@ if (APPLICATION_BUILD) if (APPLE) set(RESOURCE_OUTPUT_DIRECTORY ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/Resources) elseif (LINUX AND NOT LINUX_INSTALL_SOFTWARE) - file(COPY ${CMAKE_SOURCE_DIR}/resource/gpgfrontend DESTINATION ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/ FOLLOW_SYMLINK_CHAIN) + file(COPY ${CMAKE_SOURCE_DIR}/resource/lfs/app-image/gpgfrontend DESTINATION ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/ FOLLOW_SYMLINK_CHAIN) set(RESOURCE_OUTPUT_DIRECTORY ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/gpgfrontend/usr/share) else () set(RESOURCE_OUTPUT_DIRECTORY ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}) @@ -171,7 +171,7 @@ endif () if (APPLICATION_BUILD) # Copy Resource Files file(COPY ${CMAKE_SOURCE_DIR}/resource/css DESTINATION ${RESOURCE_OUTPUT_DIRECTORY}/ FOLLOW_SYMLINK_CHAIN) - file(COPY ${CMAKE_SOURCE_DIR}/resource/icons DESTINATION ${RESOURCE_OUTPUT_DIRECTORY}/ FOLLOW_SYMLINK_CHAIN) + file(COPY ${CMAKE_SOURCE_DIR}/resource/lfs/icons DESTINATION ${RESOURCE_OUTPUT_DIRECTORY}/ FOLLOW_SYMLINK_CHAIN) file(COPY ${CMAKE_SOURCE_DIR}/TRANSLATORS DESTINATION ${RESOURCE_OUTPUT_DIRECTORY} FOLLOW_SYMLINK_CHAIN) if (GPG_STANDALONE_MODE) file(COPY ${CMAKE_SOURCE_DIR}/resource/gpg1.4 DESTINATION ${RESOURCE_OUTPUT_DIRECTORY}/ FOLLOW_SYMLINK_CHAIN) @@ -514,9 +514,9 @@ if (LINUX AND LINUX_INSTALL_SOFTWARE) DESTINATION /usr/share/metainfo/) install(DIRECTORY ${CMAKE_SOURCE_DIR}/resource/desktop/ DESTINATION /usr/share/applications/) - install(DIRECTORY ${CMAKE_SOURCE_DIR}/resource/pixmaps/ + install(DIRECTORY ${CMAKE_SOURCE_DIR}/resource/lfs/pixmaps/ DESTINATION /usr/share/pixmaps/) - install(DIRECTORY ${CMAKE_SOURCE_DIR}/resource/hicolor/ + install(DIRECTORY ${CMAKE_SOURCE_DIR}/resource/lfs/hicolor/ DESTINATION /usr/share/icons/hicolor/) endif () if (MULTI_LANG_SUPPORT) From 66a1339b3335d47418f0ff475a5127783641b11a Mon Sep 17 00:00:00 2001 From: saturneric Date: Sat, 1 Apr 2023 01:56:02 +0800 Subject: [PATCH 29/35] feat: use lfs to track locale files --- gpgfrontend.qrc | 2 +- resource/lfs/locale/po/af_ZA.po | 3 +++ resource/lfs/locale/po/ar_IQ.po | 3 +++ resource/lfs/locale/po/ar_SA.po | 3 +++ resource/lfs/locale/po/be_BY.po | 3 +++ resource/lfs/locale/po/bg_BG.po | 3 +++ resource/lfs/locale/po/ca_ES.po | 3 +++ resource/lfs/locale/po/cs_CZ.po | 3 +++ resource/lfs/locale/po/da_DK.po | 3 +++ resource/lfs/locale/po/de_AT.po | 3 +++ resource/lfs/locale/po/de_CH.po | 3 +++ resource/lfs/locale/po/de_DE.po | 3 +++ resource/lfs/locale/po/el_GR.po | 3 +++ resource/lfs/locale/po/en_US.po | 3 +++ resource/lfs/locale/po/es_ES.po | 3 +++ resource/lfs/locale/po/es_MX.po | 3 +++ resource/lfs/locale/po/et_EE.po | 3 +++ resource/lfs/locale/po/fa_IR.po | 3 +++ resource/lfs/locale/po/fi_FI.po | 3 +++ resource/lfs/locale/po/fr_CA.po | 3 +++ resource/lfs/locale/po/fr_FR.po | 3 +++ resource/lfs/locale/po/he_IL.po | 3 +++ resource/lfs/locale/po/hi_IN.po | 3 +++ resource/lfs/locale/po/hr_HR.po | 3 +++ resource/lfs/locale/po/id_ID.po | 3 +++ resource/lfs/locale/po/it_IT.po | 3 +++ resource/lfs/locale/po/iw_IL.po | 3 +++ resource/lfs/locale/po/ja_JP.po | 3 +++ resource/lfs/locale/po/ko_KR.po | 3 +++ resource/lfs/locale/po/lt_LT.po | 3 +++ resource/lfs/locale/po/nl_NL.po | 3 +++ resource/lfs/locale/po/pl_PL.po | 3 +++ resource/lfs/locale/po/pt_BR.po | 3 +++ resource/lfs/locale/po/ru_RU.po | 3 +++ resource/lfs/locale/po/sq_AL.po | 3 +++ resource/lfs/locale/po/uk_UA.po | 3 +++ resource/lfs/locale/po/zh_CN.po | 3 +++ resource/lfs/locale/po/zh_HK.po | 3 +++ resource/lfs/locale/po/zh_TW.po | 3 +++ resource/lfs/locale/template/GpgFrontend.pot | 3 +++ src/CMakeLists.txt | 4 ++-- 41 files changed, 120 insertions(+), 3 deletions(-) create mode 100644 resource/lfs/locale/po/af_ZA.po create mode 100644 resource/lfs/locale/po/ar_IQ.po create mode 100644 resource/lfs/locale/po/ar_SA.po create mode 100644 resource/lfs/locale/po/be_BY.po create mode 100644 resource/lfs/locale/po/bg_BG.po create mode 100644 resource/lfs/locale/po/ca_ES.po create mode 100644 resource/lfs/locale/po/cs_CZ.po create mode 100644 resource/lfs/locale/po/da_DK.po create mode 100644 resource/lfs/locale/po/de_AT.po create mode 100644 resource/lfs/locale/po/de_CH.po create mode 100644 resource/lfs/locale/po/de_DE.po create mode 100644 resource/lfs/locale/po/el_GR.po create mode 100644 resource/lfs/locale/po/en_US.po create mode 100644 resource/lfs/locale/po/es_ES.po create mode 100644 resource/lfs/locale/po/es_MX.po create mode 100644 resource/lfs/locale/po/et_EE.po create mode 100644 resource/lfs/locale/po/fa_IR.po create mode 100644 resource/lfs/locale/po/fi_FI.po create mode 100644 resource/lfs/locale/po/fr_CA.po create mode 100644 resource/lfs/locale/po/fr_FR.po create mode 100644 resource/lfs/locale/po/he_IL.po create mode 100644 resource/lfs/locale/po/hi_IN.po create mode 100644 resource/lfs/locale/po/hr_HR.po create mode 100644 resource/lfs/locale/po/id_ID.po create mode 100644 resource/lfs/locale/po/it_IT.po create mode 100644 resource/lfs/locale/po/iw_IL.po create mode 100644 resource/lfs/locale/po/ja_JP.po create mode 100644 resource/lfs/locale/po/ko_KR.po create mode 100644 resource/lfs/locale/po/lt_LT.po create mode 100644 resource/lfs/locale/po/nl_NL.po create mode 100644 resource/lfs/locale/po/pl_PL.po create mode 100644 resource/lfs/locale/po/pt_BR.po create mode 100644 resource/lfs/locale/po/ru_RU.po create mode 100644 resource/lfs/locale/po/sq_AL.po create mode 100644 resource/lfs/locale/po/uk_UA.po create mode 100644 resource/lfs/locale/po/zh_CN.po create mode 100644 resource/lfs/locale/po/zh_HK.po create mode 100644 resource/lfs/locale/po/zh_TW.po create mode 100644 resource/lfs/locale/template/GpgFrontend.pot diff --git a/gpgfrontend.qrc b/gpgfrontend.qrc index cf035bc7..59859444 100644 --- a/gpgfrontend.qrc +++ b/gpgfrontend.qrc @@ -1,4 +1,4 @@ -resource/lfs/icons/ + resource/lfs/icons/keymgmt.png diff --git a/resource/lfs/locale/po/af_ZA.po b/resource/lfs/locale/po/af_ZA.po new file mode 100644 index 00000000..e1ea537d --- /dev/null +++ b/resource/lfs/locale/po/af_ZA.po @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:28f0d88dbda7e26863343bd7712734a851cda1704f8f2b1e25cdb8319d7cb5dd +size 178621 diff --git a/resource/lfs/locale/po/ar_IQ.po b/resource/lfs/locale/po/ar_IQ.po new file mode 100644 index 00000000..9c666723 --- /dev/null +++ b/resource/lfs/locale/po/ar_IQ.po @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e74990bbc6abe54992d726502c6d11f1f64fd4af0e571a7cb7712c975faabb52 +size 193799 diff --git a/resource/lfs/locale/po/ar_SA.po b/resource/lfs/locale/po/ar_SA.po new file mode 100644 index 00000000..936e422b --- /dev/null +++ b/resource/lfs/locale/po/ar_SA.po @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:975bd684d25977809b9b1655d78cb7523fb838fe581822e60c49ed0df83065ef +size 193786 diff --git a/resource/lfs/locale/po/be_BY.po b/resource/lfs/locale/po/be_BY.po new file mode 100644 index 00000000..523b939f --- /dev/null +++ b/resource/lfs/locale/po/be_BY.po @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3ff405dfada2e7dc4070c60da66ae631a02ca42aa5adda5eb5a7badab64b2318 +size 204590 diff --git a/resource/lfs/locale/po/bg_BG.po b/resource/lfs/locale/po/bg_BG.po new file mode 100644 index 00000000..09b51da2 --- /dev/null +++ b/resource/lfs/locale/po/bg_BG.po @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:869bab9f9a558338399126f5435d5472ddb8922b69b4a7c67edf411c98064776 +size 206711 diff --git a/resource/lfs/locale/po/ca_ES.po b/resource/lfs/locale/po/ca_ES.po new file mode 100644 index 00000000..f5a7dec7 --- /dev/null +++ b/resource/lfs/locale/po/ca_ES.po @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:67074700501db216092117d9a9ba12ce74f8a37f724f6ab99262fdd5a2e3946a +size 181764 diff --git a/resource/lfs/locale/po/cs_CZ.po b/resource/lfs/locale/po/cs_CZ.po new file mode 100644 index 00000000..5359703b --- /dev/null +++ b/resource/lfs/locale/po/cs_CZ.po @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ec01bc3b302dbc5fae7db37b20bac8266641c281b53f182662367bb467b34d34 +size 179793 diff --git a/resource/lfs/locale/po/da_DK.po b/resource/lfs/locale/po/da_DK.po new file mode 100644 index 00000000..6de8a22f --- /dev/null +++ b/resource/lfs/locale/po/da_DK.po @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a0b96267327fe7a85bda9978f07979bd40266c1ade45d27991d5ee81de46591e +size 177186 diff --git a/resource/lfs/locale/po/de_AT.po b/resource/lfs/locale/po/de_AT.po new file mode 100644 index 00000000..b6111e8a --- /dev/null +++ b/resource/lfs/locale/po/de_AT.po @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9da8047ce35402c04a816acc1e5ea3ac1d938018ef88f455857bfae8fa10dc76 +size 183833 diff --git a/resource/lfs/locale/po/de_CH.po b/resource/lfs/locale/po/de_CH.po new file mode 100644 index 00000000..8f16384c --- /dev/null +++ b/resource/lfs/locale/po/de_CH.po @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:beadf3b2774e19d8487fcca43951b424943cac8cc85749303d2409ea59420de0 +size 183821 diff --git a/resource/lfs/locale/po/de_DE.po b/resource/lfs/locale/po/de_DE.po new file mode 100644 index 00000000..7ca407f7 --- /dev/null +++ b/resource/lfs/locale/po/de_DE.po @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:81c1d84c7d431485823deddfc67f5bc1e7922d994db59f8107eb2d8d08c33495 +size 184285 diff --git a/resource/lfs/locale/po/el_GR.po b/resource/lfs/locale/po/el_GR.po new file mode 100644 index 00000000..91079378 --- /dev/null +++ b/resource/lfs/locale/po/el_GR.po @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5045b87ad0e4e2b7bc7172772a4cc0ec0c6b5257aad98d57f108b36eacb5c175 +size 214074 diff --git a/resource/lfs/locale/po/en_US.po b/resource/lfs/locale/po/en_US.po new file mode 100644 index 00000000..d2e1a2cd --- /dev/null +++ b/resource/lfs/locale/po/en_US.po @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f04dd1dc4b01e75fc6e01120d6ddcbd0934c1efc47528147bf78da0848f83ce6 +size 174736 diff --git a/resource/lfs/locale/po/es_ES.po b/resource/lfs/locale/po/es_ES.po new file mode 100644 index 00000000..9aced60f --- /dev/null +++ b/resource/lfs/locale/po/es_ES.po @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:86a1363b95f4def768ce3edbbcb6dc0a67d7fd0db1f6539b4d6b11428bc72cc3 +size 181915 diff --git a/resource/lfs/locale/po/es_MX.po b/resource/lfs/locale/po/es_MX.po new file mode 100644 index 00000000..9d26a6d6 --- /dev/null +++ b/resource/lfs/locale/po/es_MX.po @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:633227ddb99b0f7c449e73a85874cab6ec898dd85bed63356dd95975918953c0 +size 156250 diff --git a/resource/lfs/locale/po/et_EE.po b/resource/lfs/locale/po/et_EE.po new file mode 100644 index 00000000..4f9d40b1 --- /dev/null +++ b/resource/lfs/locale/po/et_EE.po @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fcc266aaa4edebed315146a97785949b159ca39e9325eb9678ed7c3a1b7d9e87 +size 176566 diff --git a/resource/lfs/locale/po/fa_IR.po b/resource/lfs/locale/po/fa_IR.po new file mode 100644 index 00000000..c8eba924 --- /dev/null +++ b/resource/lfs/locale/po/fa_IR.po @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2a12df4a347064e35d130320b9f33e329a2eaf5dd167ba701195b8f4ca88a88d +size 195536 diff --git a/resource/lfs/locale/po/fi_FI.po b/resource/lfs/locale/po/fi_FI.po new file mode 100644 index 00000000..12dc226d --- /dev/null +++ b/resource/lfs/locale/po/fi_FI.po @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:da7b046f4ae573cac1d5e6eae3ec8551b02f500245bce4b83d1d7c16015c38d1 +size 178462 diff --git a/resource/lfs/locale/po/fr_CA.po b/resource/lfs/locale/po/fr_CA.po new file mode 100644 index 00000000..ec5d9420 --- /dev/null +++ b/resource/lfs/locale/po/fr_CA.po @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:030c695997ca7b4fe25cb128f58255d6bebfd181346a5a38253e39b949b67bd8 +size 184247 diff --git a/resource/lfs/locale/po/fr_FR.po b/resource/lfs/locale/po/fr_FR.po new file mode 100644 index 00000000..72cd97e9 --- /dev/null +++ b/resource/lfs/locale/po/fr_FR.po @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6e42dac05e41b520715fb6172c9d13ecf53977e2d0ce91ee4d57391a25113932 +size 184226 diff --git a/resource/lfs/locale/po/he_IL.po b/resource/lfs/locale/po/he_IL.po new file mode 100644 index 00000000..671b3f8a --- /dev/null +++ b/resource/lfs/locale/po/he_IL.po @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ba6b60c5a4ef1d2c28c9ae594688a428b4627a75a4ebef9352398b925562fb20 +size 186987 diff --git a/resource/lfs/locale/po/hi_IN.po b/resource/lfs/locale/po/hi_IN.po new file mode 100644 index 00000000..ea740a8f --- /dev/null +++ b/resource/lfs/locale/po/hi_IN.po @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9cfdf09bcb42d93682ebb17e665bd24e6ec6dc3a740fdc575c0f55c791b5f086 +size 227532 diff --git a/resource/lfs/locale/po/hr_HR.po b/resource/lfs/locale/po/hr_HR.po new file mode 100644 index 00000000..e86bb75e --- /dev/null +++ b/resource/lfs/locale/po/hr_HR.po @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5ba7fcdcfa9084041a323216b42d369cfb6224b8629fa23c0f75646124a9bfeb +size 178992 diff --git a/resource/lfs/locale/po/id_ID.po b/resource/lfs/locale/po/id_ID.po new file mode 100644 index 00000000..8db68ef0 --- /dev/null +++ b/resource/lfs/locale/po/id_ID.po @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d4a35dbc50a129ef8da1f20f04c41362508673ef5d77815571246e0cea9ed51f +size 177523 diff --git a/resource/lfs/locale/po/it_IT.po b/resource/lfs/locale/po/it_IT.po new file mode 100644 index 00000000..64e8b7da --- /dev/null +++ b/resource/lfs/locale/po/it_IT.po @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0f6b9b7f01c64f16cd68b073299499021dea115718ed40157529c62cc9b10423 +size 181812 diff --git a/resource/lfs/locale/po/iw_IL.po b/resource/lfs/locale/po/iw_IL.po new file mode 100644 index 00000000..12f7d889 --- /dev/null +++ b/resource/lfs/locale/po/iw_IL.po @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e18c010c87e737b8956a9771a978e5f273602460c2db0fe3de1b26b742a55da1 +size 161317 diff --git a/resource/lfs/locale/po/ja_JP.po b/resource/lfs/locale/po/ja_JP.po new file mode 100644 index 00000000..77c93890 --- /dev/null +++ b/resource/lfs/locale/po/ja_JP.po @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b889d6b287a12d07fd18ddfa68e4d235c3d63d91572e190570e264a506909d49 +size 188487 diff --git a/resource/lfs/locale/po/ko_KR.po b/resource/lfs/locale/po/ko_KR.po new file mode 100644 index 00000000..76aaf8d9 --- /dev/null +++ b/resource/lfs/locale/po/ko_KR.po @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b51345220da4755f94d7aadb65673b71209ccf2f3fbac311fe28664aef3569d5 +size 180599 diff --git a/resource/lfs/locale/po/lt_LT.po b/resource/lfs/locale/po/lt_LT.po new file mode 100644 index 00000000..676f9b2f --- /dev/null +++ b/resource/lfs/locale/po/lt_LT.po @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1f77f8d5dd073e70e9cfdb2a3cf67f61fae6393a93a4b172fc68bb0ea9bbb568 +size 180308 diff --git a/resource/lfs/locale/po/nl_NL.po b/resource/lfs/locale/po/nl_NL.po new file mode 100644 index 00000000..4e425e99 --- /dev/null +++ b/resource/lfs/locale/po/nl_NL.po @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cc30142bee7663add4b207e43dde28411fed5f55b2e7fc9ca472edefd7cf2545 +size 180142 diff --git a/resource/lfs/locale/po/pl_PL.po b/resource/lfs/locale/po/pl_PL.po new file mode 100644 index 00000000..a0671299 --- /dev/null +++ b/resource/lfs/locale/po/pl_PL.po @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:40ee8a29b964383487ebc05b9056c8c38e515bc2b0d7dba171e81f26d94d900c +size 180377 diff --git a/resource/lfs/locale/po/pt_BR.po b/resource/lfs/locale/po/pt_BR.po new file mode 100644 index 00000000..104e9cda --- /dev/null +++ b/resource/lfs/locale/po/pt_BR.po @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3a1d2a79e2f66ff06f89d7a0bc145d682d7ba9255eb77002630191f4a08db0c0 +size 181155 diff --git a/resource/lfs/locale/po/ru_RU.po b/resource/lfs/locale/po/ru_RU.po new file mode 100644 index 00000000..5cb48216 --- /dev/null +++ b/resource/lfs/locale/po/ru_RU.po @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e2e4165fe52865a917a141571c14b84d8b8b65d669fed6eb848696f39299b0b3 +size 206538 diff --git a/resource/lfs/locale/po/sq_AL.po b/resource/lfs/locale/po/sq_AL.po new file mode 100644 index 00000000..86419d64 --- /dev/null +++ b/resource/lfs/locale/po/sq_AL.po @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6ba12a6f3ae1a4c777d0247bb371d07b7a5e86b23199b0469d1fab058579c39c +size 183627 diff --git a/resource/lfs/locale/po/uk_UA.po b/resource/lfs/locale/po/uk_UA.po new file mode 100644 index 00000000..9254a4fe --- /dev/null +++ b/resource/lfs/locale/po/uk_UA.po @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8712926b45c68833c85cd736e797486129de3bf0dc8a572dee50c43be0356be1 +size 205262 diff --git a/resource/lfs/locale/po/zh_CN.po b/resource/lfs/locale/po/zh_CN.po new file mode 100644 index 00000000..bd969aaf --- /dev/null +++ b/resource/lfs/locale/po/zh_CN.po @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:66c78a261044ce74fc616af86983e912ef9147d4ed38547e1ec0c3711660b13f +size 171812 diff --git a/resource/lfs/locale/po/zh_HK.po b/resource/lfs/locale/po/zh_HK.po new file mode 100644 index 00000000..72c731d6 --- /dev/null +++ b/resource/lfs/locale/po/zh_HK.po @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bfd8d21ac746313d1ff0e923870e341e39c08da587466db212fde190456b2113 +size 171694 diff --git a/resource/lfs/locale/po/zh_TW.po b/resource/lfs/locale/po/zh_TW.po new file mode 100644 index 00000000..ea27de1c --- /dev/null +++ b/resource/lfs/locale/po/zh_TW.po @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7d346e095da2ca7a26b7df0c9dc0e0702c1e8f3cf9f56dca090fff50b1a243bd +size 171688 diff --git a/resource/lfs/locale/template/GpgFrontend.pot b/resource/lfs/locale/template/GpgFrontend.pot new file mode 100644 index 00000000..8bda2ffb --- /dev/null +++ b/resource/lfs/locale/template/GpgFrontend.pot @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:810f7df66638b9a07471ec42392fcf377e403f5a1e7a6b4a9ceef8aba5dd9133 +size 132195 diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 62ecfdcd..5c41c929 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -130,13 +130,13 @@ if (MULTI_LANG_SUPPORT) else (NOT GETTEXT_MSGFMT_EXECUTABLE) message(STATUS "Setting target translations") add_custom_target(translations) - set(OUTPUT_POT_PATH ${CMAKE_SOURCE_DIR}/resource/locale/template/${PROJECT_NAME}.pot) + set(OUTPUT_POT_PATH ${CMAKE_SOURCE_DIR}/resource/lfs/locale/template/${PROJECT_NAME}.pot) add_custom_command( TARGET translations COMMAND find ${CMAKE_SOURCE_DIR}/src -iname \"*.cpp\" | xargs xgettext --package-name=${PROJECT_NAME} --copyright-holder=Saturneric --package-version=${PROJECT_VERSION} --msgid-bugs-address=eric@bktus.com --add-comments="/*" --c++ -k_ -o ${OUTPUT_POT_PATH} ) - file(GLOB ALL_PO_FILES ${CMAKE_SOURCE_DIR}/resource/locale/po/*.po) + file(GLOB ALL_PO_FILES ${CMAKE_SOURCE_DIR}/resource/lfs/locale/po/*.po) SET(GMO_FILES) foreach (_poFile ${ALL_PO_FILES}) From cf1af943216dacd6bcef437ea60cb66dfad65337 Mon Sep 17 00:00:00 2001 From: saturneric Date: Sat, 1 Apr 2023 02:13:39 +0800 Subject: [PATCH 30/35] fix: avoid using set-output commands in ci files --- .github/workflows/codeql-analysis.yml | 1 + .github/workflows/debug.yml | 9 +++++---- .github/workflows/release-deb-package.yml | 6 ++++-- .github/workflows/release.yml | 15 ++++++++------- 4 files changed, 18 insertions(+), 13 deletions(-) diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml index 512470cd..8a8ea11b 100644 --- a/.github/workflows/codeql-analysis.yml +++ b/.github/workflows/codeql-analysis.yml @@ -46,6 +46,7 @@ jobs: - name: Checkout repository uses: actions/checkout@v3 with: + lfs: 'true' submodules: recursive # Initializes the CodeQL tools for scanning. diff --git a/.github/workflows/debug.yml b/.github/workflows/debug.yml index 41a31788..3750f915 100644 --- a/.github/workflows/debug.yml +++ b/.github/workflows/debug.yml @@ -36,6 +36,7 @@ jobs: - uses: actions/checkout@v3 with: + lfs: 'true' submodules: recursive - name: Install Dependence (Linux) @@ -145,25 +146,25 @@ jobs: - name: Get Short SHA of Commit id: vars - run: echo "::set-output name=sha_short::$(git rev-parse --short HEAD)" + run: echo "sha_short=$(git rev-parse --short HEAD)" >> $GITHUB_ENV - name: Upload Artifact(Linux) uses: actions/upload-artifact@master with: - name: gpgfrontend-${{matrix.os}}-${{env.BUILD_TYPE}}-${{steps.vars.outputs.sha_short}} + name: gpgfrontend-${{matrix.os}}-${{env.BUILD_TYPE}}-${{env.sha_short}} path: ${{github.workspace}}/build/release/* if: matrix.os == 'ubuntu-latest' - name: Upload Artifact(macOS) uses: actions/upload-artifact@master with: - name: gpgfrontend-${{matrix.os}}-${{env.BUILD_TYPE}}-${{steps.vars.outputs.sha_short}} + name: gpgfrontend-${{matrix.os}}-${{env.BUILD_TYPE}}-${{env.sha_short}} path: ${{github.workspace}}/build/release/* if: matrix.os == 'macos-11' || matrix.os == 'macos-12' - name: Upload Artifact(Windows) uses: actions/upload-artifact@master with: - name: gpgfrontend-${{matrix.os}}-${{env.BUILD_TYPE}}-${{steps.vars.outputs.sha_short}} + name: gpgfrontend-${{matrix.os}}-${{env.BUILD_TYPE}}-${{env.sha_short}} path: ${{github.workspace}}/build/release/* if: matrix.os == 'windows-latest' diff --git a/.github/workflows/release-deb-package.yml b/.github/workflows/release-deb-package.yml index 55b8c095..446ca3b1 100644 --- a/.github/workflows/release-deb-package.yml +++ b/.github/workflows/release-deb-package.yml @@ -30,11 +30,13 @@ jobs: - uses: actions/checkout@v3 with: + lfs: 'true' submodules: 'recursive' - name: Get Short SHA of Commit id: vars - run: echo "::set-output name=sha_short::$(git rev-parse --short HEAD)" + run: echo "sha_short=$(git rev-parse --short HEAD)" >> $GITHUB_ENV + - name: Install Dependence (Ubuntu 20.04) run: | @@ -91,5 +93,5 @@ jobs: - name: Upload Artifact(Linux DEB) uses: actions/upload-artifact@master with: - name: gpgfrontend-${{matrix.os}}-${{env.BUILD_TYPE}}-${{steps.vars.outputs.sha_short}}-deb-${{matrix.os}} + name: gpgfrontend-${{matrix.os}}-${{env.BUILD_TYPE}}-${{env.sha_short}}-deb-${{matrix.os}} path: ${{github.workspace}}/build-deb-${{matrix.os}}/gpgfrontend*.deb* diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index b2f3bb39..b4f8f875 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -35,11 +35,12 @@ jobs: - uses: actions/checkout@v3 with: + lfs: 'true' submodules: recursive - name: Get Short SHA of Commit id: vars - run: echo "::set-output name=sha_short::$(git rev-parse --short HEAD)" + run: echo "sha_short=$(git rev-parse --short HEAD)" >> $GITHUB_ENV - name: Install Dependence (Linux) run: | @@ -213,15 +214,15 @@ jobs: hdiutil convert ${{github.workspace}}/build/tmp.dmg -format UDZO -o ${{github.workspace}}/build/artifactOut/GpgFrontend.dmg codesign -s "${{secrets.GPGFRONTEND_XOCDE_CODE_SIGN_IDENTITY}}" ${{github.workspace}}/build/artifactOut/GpgFrontend.dmg mv ${{github.workspace}}/build/artifactOut/GpgFrontend.dmg \ - ${{github.workspace}}/build/artifactOut/GpgFrontend-${{steps.vars.outputs.sha_short}}-x86_64.dmg + ${{github.workspace}}/build/artifactOut/GpgFrontend-${{env.sha_short}}-x86_64.dmg mv ${{github.workspace}}/build/GpgFrontend.app.zip \ - ${{github.workspace}}/build/GpgFrontend-${{steps.vars.outputs.sha_short}}-x86_64.zip + ${{github.workspace}}/build/GpgFrontend-${{env.sha_short}}-x86_64.zip if: matrix.os == 'macos-11' || matrix.os == 'macos-12' - name: Notarize Release Build (macOS) run: | xcrun altool --notarize-app \ - -f ${{github.workspace}}/build/GpgFrontend-${{steps.vars.outputs.sha_short}}-x86_64.zip \ + -f ${{github.workspace}}/build/GpgFrontend-${{env.sha_short}}-x86_64.zip \ --primary-bundle-id ${{secrets.GPGFRONTEND_XOCDE_APPID}} \ -u ${{secrets.APPLE_DEVELOPER_ID}} \ -p ${{secrets.APPLE_DEVELOPER_ID_SECRET}} @@ -249,20 +250,20 @@ jobs: - name: Upload Artifact(Linux) uses: actions/upload-artifact@master with: - name: gpgfrontend-${{matrix.os}}-${{env.BUILD_TYPE}}-${{steps.vars.outputs.sha_short}} + name: gpgfrontend-${{matrix.os}}-${{env.BUILD_TYPE}}-${{env.sha_short}} path: ${{github.workspace}}/build/artifactOut/GpgFrontend*.AppImage* if: matrix.os == 'ubuntu-18.04' - name: Upload Artifact(macOS) uses: actions/upload-artifact@master with: - name: gpgfrontend-${{matrix.os}}-${{env.BUILD_TYPE}}-${{steps.vars.outputs.sha_short}} + name: gpgfrontend-${{matrix.os}}-${{env.BUILD_TYPE}}-${{env.sha_short}} path: ${{github.workspace}}/build/artifactOut/* if: matrix.os == 'macos-11' || matrix.os == 'macos-12' - name: Upload Artifact(Windows) uses: actions/upload-artifact@master with: - name: gpgfrontend-${{matrix.os}}-${{env.BUILD_TYPE}}-${{steps.vars.outputs.sha_short}} + name: gpgfrontend-${{matrix.os}}-${{env.BUILD_TYPE}}-${{env.sha_short}} path: ${{github.workspace}}/build/release/* if: matrix.os == 'windows-2019' From 021519292f6398864e375bd9bda5b62409c3e420 Mon Sep 17 00:00:00 2001 From: saturneric Date: Sat, 1 Apr 2023 02:17:42 +0800 Subject: [PATCH 31/35] fix: solve syntax issues in cmake file --- src/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 5c41c929..fb0aecc2 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -127,7 +127,7 @@ if (MULTI_LANG_SUPPORT) if (NOT GETTEXT_MSGFMT_EXECUTABLE OR NOT GETTEXT_XGETTEXT_EXECUTABLE) message(ERROR "msgfmt or xgettext not found. Translations will *not* be installed") - else (NOT GETTEXT_MSGFMT_EXECUTABLE) + else() message(STATUS "Setting target translations") add_custom_target(translations) set(OUTPUT_POT_PATH ${CMAKE_SOURCE_DIR}/resource/lfs/locale/template/${PROJECT_NAME}.pot) From 2568f1947368da266a4ed685843b2136b3315d2c Mon Sep 17 00:00:00 2001 From: saturneric Date: Sat, 1 Apr 2023 02:25:27 +0800 Subject: [PATCH 32/35] fix: solve ui issues in network settings --- src/ui/dialog/settings/SettingsNetwork.cpp | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/src/ui/dialog/settings/SettingsNetwork.cpp b/src/ui/dialog/settings/SettingsNetwork.cpp index 63ecaf2f..0713856d 100644 --- a/src/ui/dialog/settings/SettingsNetwork.cpp +++ b/src/ui/dialog/settings/SettingsNetwork.cpp @@ -147,11 +147,6 @@ void GpgFrontend::UI::NetworkTab::SetSettings() { SPDLOG_ERROR("setting operation error: proxy_enable"); } - { - auto state = ui_->enableProxyCheckBox->checkState(); - switch_ui_enabled(state == Qt::Checked); - } - ui_->forbidALLGnuPGNetworkConnectionCheckBox->setCheckState(Qt::Unchecked); try { bool forbid_all_gnupg_connection = @@ -189,6 +184,7 @@ void GpgFrontend::UI::NetworkTab::SetSettings() { SPDLOG_ERROR("setting operation error: auto_import_missing_key"); } + switch_ui_enabled(ui_->enableProxyCheckBox->isChecked()); switch_ui_proxy_type(ui_->proxyTypeComboBox->currentText()); } From d15c83a1697d3798ed19261d2be617099d33a4ad Mon Sep 17 00:00:00 2001 From: saturneric Date: Sat, 1 Apr 2023 03:14:23 +0800 Subject: [PATCH 33/35] fix: solve codacy issues --- src/core/function/ArchiveFileOperator.cpp | 15 +----- src/core/function/CharsetOperator.cpp | 6 +-- src/core/function/aes/aes_ssl_cbc.cpp | 4 +- src/core/model/GpgData.cpp | 3 +- src/core/thread/Task.cpp | 2 +- src/ui/GpgFrontendUIInit.cpp | 4 +- src/ui/UserInterfaceUtils.cpp | 52 +++++++++---------- src/ui/dialog/details/VerifyDetailsDialog.h | 1 - src/ui/dialog/help/AboutDialog.h | 1 - .../import_export/KeyImportDetailDialog.cpp | 40 +++++++------- src/ui/dialog/key_generate/KeygenDialog.cpp | 4 +- .../key_generate/SubkeyGenerateDialog.cpp | 2 +- .../KeySetExpireDateDialog.cpp | 2 +- 13 files changed, 60 insertions(+), 76 deletions(-) diff --git a/src/core/function/ArchiveFileOperator.cpp b/src/core/function/ArchiveFileOperator.cpp index 04c9326f..8aad0500 100644 --- a/src/core/function/ArchiveFileOperator.cpp +++ b/src/core/function/ArchiveFileOperator.cpp @@ -136,8 +136,6 @@ void GpgFrontend::ArchiveFileOperator::CreateArchive( } for (;;) { - bool needcr = false; - entry = archive_entry_new(); r = archive_read_next_header2(disk, entry); @@ -149,15 +147,6 @@ void GpgFrontend::ArchiveFileOperator::CreateArchive( } archive_read_disk_descend(disk); -#ifdef WINDOWS - auto entry_path = - QString::fromStdWString(std::wstring(archive_entry_pathname_w(entry))) - .toUtf8() - .toStdString(); -#else - auto entry_path = std::string(archive_entry_pathname_utf8(entry)); -#endif - SPDLOG_DEBUG("Adding: {} size: {} bytes: {} file type: {}", archive_entry_pathname_utf8(entry), archive_entry_size(entry), archive_entry_filetype(entry)); @@ -201,7 +190,6 @@ void GpgFrontend::ArchiveFileOperator::ExtractArchive( struct archive *a; struct archive *ext; struct archive_entry *entry; - int r; a = archive_read_new(); ext = archive_write_disk_new(); @@ -241,8 +229,9 @@ void GpgFrontend::ArchiveFileOperator::ExtractArchive( archive_error_string(a)); throw std::runtime_error("archive_read_open_filename() failed"); } + for (;;) { - r = archive_read_next_header(a, &entry); + int r = archive_read_next_header(a, &entry); if (r == ARCHIVE_EOF) break; if (r != ARCHIVE_OK) { SPDLOG_ERROR("archive_read_next_header() failed: {}", diff --git a/src/core/function/CharsetOperator.cpp b/src/core/function/CharsetOperator.cpp index 0e40e317..72c5e72b 100644 --- a/src/core/function/CharsetOperator.cpp +++ b/src/core/function/CharsetOperator.cpp @@ -117,12 +117,10 @@ bool GpgFrontend::CharsetOperator::Convert2Utf8(const std::string &buffer, if (status == U_BUFFER_OVERFLOW_ERROR) { status = U_ZERO_ERROR; - target_limit = target_capacity + 1; out_buffer.clear(); out_buffer.resize(target_capacity); - target_capacity = - ucnv_convert(from_encode.c_str(), to_encode.c_str(), out_buffer.data(), - out_buffer.size(), buffer.data(), buffer.size(), &status); + ucnv_convert(from_encode.c_str(), to_encode.c_str(), out_buffer.data(), + out_buffer.size(), buffer.data(), buffer.size(), &status); } if (U_FAILURE(status)) { diff --git a/src/core/function/aes/aes_ssl_cbc.cpp b/src/core/function/aes/aes_ssl_cbc.cpp index 88a54baa..3aa80ef5 100644 --- a/src/core/function/aes/aes_ssl_cbc.cpp +++ b/src/core/function/aes/aes_ssl_cbc.cpp @@ -59,7 +59,7 @@ uint8_t *aes_256_cbc_encrypt(EVP_CIPHER_CTX *e, uint8_t *plaintext, int *len) { /* max ciphertext len for a n bytes of plaintext is n + AES_BLOCK_SIZE -1 * bytes */ int c_len = *len + AES_BLOCK_SIZE, f_len = 0; - auto *ciphertext = (uint8_t *)malloc(c_len); + auto *ciphertext = static_cast(malloc(c_len)); /* allows reusing of 'e' for multiple encryption cycles */ EVP_EncryptInit_ex(e, nullptr, nullptr, nullptr, nullptr); @@ -86,7 +86,7 @@ uint8_t *aes_256_cbc_encrypt(EVP_CIPHER_CTX *e, uint8_t *plaintext, int *len) { uint8_t *aes_256_cbc_decrypt(EVP_CIPHER_CTX *e, uint8_t *ciphertext, int *len) { /* plaintext will always be equal to or lesser than length of ciphertext*/ int p_len = *len, f_len = 0; - auto *plaintext = (uint8_t *)malloc(p_len); + auto *plaintext = static_cast(malloc(p_len)); EVP_DecryptInit_ex(e, nullptr, nullptr, nullptr, nullptr); EVP_DecryptUpdate(e, plaintext, &p_len, ciphertext, *len); diff --git a/src/core/model/GpgData.cpp b/src/core/model/GpgData.cpp index 5aa95dc6..05f61a46 100644 --- a/src/core/model/GpgData.cpp +++ b/src/core/model/GpgData.cpp @@ -40,7 +40,8 @@ GpgFrontend::GpgData::GpgData() { GpgFrontend::GpgData::GpgData(void* buffer, size_t size, bool copy) { gpgme_data_t data; - auto err = gpgme_data_new_from_mem(&data, (const char*)buffer, size, copy); + auto err = gpgme_data_new_from_mem(&data, static_cast(buffer), + size, copy); assert(gpgme_err_code(err) == GPG_ERR_NO_ERROR); data_ref_ = std::unique_ptr(data); diff --git a/src/core/thread/Task.cpp b/src/core/thread/Task.cpp index f3c6ae86..7173b69e 100644 --- a/src/core/thread/Task.cpp +++ b/src/core/thread/Task.cpp @@ -218,7 +218,7 @@ void GpgFrontend::Thread::Task::DataObject::free_heap_ptr(Destructor *ptr) { if (ptr->destroy != nullptr) { ptr->destroy(ptr->p_obj); } - free((void *)ptr->p_obj); + free(const_cast(ptr->p_obj)); delete ptr; } diff --git a/src/ui/GpgFrontendUIInit.cpp b/src/ui/GpgFrontendUIInit.cpp index d363f886..b90493a5 100644 --- a/src/ui/GpgFrontendUIInit.cpp +++ b/src/ui/GpgFrontendUIInit.cpp @@ -270,7 +270,7 @@ void init_locale() { #ifndef WINDOWS if (!lang.empty()) { - std::string lc = lang.empty() ? "" : lang + ".UTF-8"; + std::string lc = lang + ".UTF-8"; // set LC_ALL auto* locale_name = setlocale(LC_ALL, lc.c_str()); @@ -286,7 +286,7 @@ void init_locale() { } #else if (!lang.empty()) { - std::string lc = lang.empty() ? "" : lang; + std::string lc = lang; // set LC_ALL auto* locale_name = setlocale(LC_ALL, lc.c_str()); diff --git a/src/ui/UserInterfaceUtils.cpp b/src/ui/UserInterfaceUtils.cpp index f944e037..5a11e119 100644 --- a/src/ui/UserInterfaceUtils.cpp +++ b/src/ui/UserInterfaceUtils.cpp @@ -299,38 +299,36 @@ void CommonUtils::SlotExecuteGpgCommand( void CommonUtils::SlotImportKeyFromKeyServer( const KeyIdArgsList &key_ids, const ImportCallbackFunctiopn &callback) { + // target key server that we need to import key from it std::string target_keyserver; - if (target_keyserver.empty()) { - try { - auto &settings = GlobalSettingStation::GetInstance().GetUISettings(); - SettingsObject key_server_json("key_server"); + try { + auto &settings = GlobalSettingStation::GetInstance().GetUISettings(); + SettingsObject key_server_json("key_server"); - // get key servers from settings - const auto key_server_list = - key_server_json.Check("server_list", nlohmann::json::array()); - if (key_server_list.empty()) { - throw std::runtime_error("No key server configured"); - } + // get key servers from settings + const auto key_server_list = + key_server_json.Check("server_list", nlohmann::json::array()); + if (key_server_list.empty()) { + throw std::runtime_error("No key server configured"); + } - const int target_key_server_index = - key_server_json.Check("default_server", 0); - if (target_key_server_index >= key_server_list.size()) { - throw std::runtime_error("default_server index out of range"); - } - target_keyserver = - key_server_list[target_key_server_index].get(); - - SPDLOG_DEBUG("set target key server to default Key Server: {}", - target_keyserver); - } catch (...) { - SPDLOG_ERROR(_("Cannot read default_keyserver From Settings")); - QMessageBox::critical( - nullptr, _("Default Keyserver Not Found"), - _("Cannot read default keyserver from your settings, " - "please set a default keyserver first")); - return; + const int target_key_server_index = + key_server_json.Check("default_server", 0); + if (target_key_server_index >= key_server_list.size()) { + throw std::runtime_error("default_server index out of range"); } + target_keyserver = + key_server_list[target_key_server_index].get(); + + SPDLOG_DEBUG("set target key server to default Key Server: {}", + target_keyserver); + } catch (...) { + SPDLOG_ERROR(_("Cannot read default_keyserver From Settings")); + QMessageBox::critical(nullptr, _("Default Keyserver Not Found"), + _("Cannot read default keyserver from your settings, " + "please set a default keyserver first")); + return; } auto thread = QThread::create([target_keyserver, key_ids, callback]() { diff --git a/src/ui/dialog/details/VerifyDetailsDialog.h b/src/ui/dialog/details/VerifyDetailsDialog.h index 97e2cc2d..5bc09884 100644 --- a/src/ui/dialog/details/VerifyDetailsDialog.h +++ b/src/ui/dialog/details/VerifyDetailsDialog.h @@ -60,7 +60,6 @@ class VerifyDetailsDialog : public QDialog { void slot_refresh(); private: - KeyList* key_list_; ///< QHBoxLayout* main_layout_; ///< QWidget* m_vbox_{}; ///< QByteArray* input_data_{}; ///< diff --git a/src/ui/dialog/help/AboutDialog.h b/src/ui/dialog/help/AboutDialog.h index 09a63734..6d7ce265 100644 --- a/src/ui/dialog/help/AboutDialog.h +++ b/src/ui/dialog/help/AboutDialog.h @@ -80,7 +80,6 @@ class UpdateTab : public QWidget { QLabel* upgrade_label_; ///< QProgressBar* pb_; ///< QString current_version_; ///< - QPushButton* download_button_; ///< public: /** diff --git a/src/ui/dialog/import_export/KeyImportDetailDialog.cpp b/src/ui/dialog/import_export/KeyImportDetailDialog.cpp index e9b1af93..4e10146b 100644 --- a/src/ui/dialog/import_export/KeyImportDetailDialog.cpp +++ b/src/ui/dialog/import_export/KeyImportDetailDialog.cpp @@ -124,7 +124,6 @@ void KeyImportDetailDialog::create_general_info_box() { new QLabel(QString(_("Private Unchanged")) + ": "), row, 0); generalInfoBoxLayout->addWidget( new QLabel(QString::number(m_result_.secret_unchanged)), row, 1); - row++; } } @@ -162,36 +161,35 @@ void KeyImportDetailDialog::create_keys_table() { keys_table_->resizeColumnsToContents(); } -QString KeyImportDetailDialog::get_status_string(int keyStatus) { - QString statusString; +QString KeyImportDetailDialog::get_status_string(int key_status) { + QString status_string; // keystatus is greater than 15, if key is private - if (keyStatus > 15) { - statusString.append(_("Private")); - keyStatus = keyStatus - 16; + if (key_status > 15) { + status_string.append(_("Private")); + key_status = key_status - 16; } else { - statusString.append(_("Public")); + status_string.append(_("Public")); } - if (keyStatus == 0) { - statusString.append(", " + QString(_("Unchanged"))); + if (key_status == 0) { + status_string.append(", " + QString(_("Unchanged"))); } else { - if (keyStatus == 1) { - statusString.append(", " + QString(_("New Key"))); + if (key_status == 1) { + status_string.append(", " + QString(_("New Key"))); } else { - if (keyStatus > 7) { - statusString.append(", " + QString(_("New Subkey"))); - keyStatus = keyStatus - 8; + if (key_status > 7) { + status_string.append(", " + QString(_("New Subkey"))); + return status_string; } - if (keyStatus > 3) { - statusString.append(", " + QString(_("New Signature"))); - keyStatus = keyStatus - 4; + if (key_status > 3) { + status_string.append(", " + QString(_("New Signature"))); + return status_string; } - if (keyStatus > 1) { - statusString.append(", " + QString(_("New UID"))); - keyStatus = keyStatus - 2; + if (key_status > 1) { + status_string.append(", " + QString(_("New UID"))); + return status_string; } } } - return statusString; } void KeyImportDetailDialog::create_button_box() { diff --git a/src/ui/dialog/key_generate/KeygenDialog.cpp b/src/ui/dialog/key_generate/KeygenDialog.cpp index f103f0b1..ea874ed2 100644 --- a/src/ui/dialog/key_generate/KeygenDialog.cpp +++ b/src/ui/dialog/key_generate/KeygenDialog.cpp @@ -28,6 +28,8 @@ #include "KeygenDialog.h" +#include + #include "core/common/CoreCommonUtil.h" #include "core/function/GlobalSettingStation.h" #include "core/function/gpg/GpgKeyOpera.h" @@ -178,7 +180,7 @@ void KeyGenDialog::slot_key_gen_accept() { SPDLOG_DEBUG("generate done"); if (gpgme_err_code(error) == GPG_ERR_NO_ERROR) { - auto* msg_box = new QMessageBox((QWidget*)this->parent()); + auto* msg_box = new QMessageBox(qobject_cast(this->parent())); msg_box->setAttribute(Qt::WA_DeleteOnClose); msg_box->setStandardButtons(QMessageBox::Ok); msg_box->setWindowTitle(_("Success")); diff --git a/src/ui/dialog/key_generate/SubkeyGenerateDialog.cpp b/src/ui/dialog/key_generate/SubkeyGenerateDialog.cpp index 1569fc5d..f4263962 100644 --- a/src/ui/dialog/key_generate/SubkeyGenerateDialog.cpp +++ b/src/ui/dialog/key_generate/SubkeyGenerateDialog.cpp @@ -327,7 +327,7 @@ void SubkeyGenerateDialog::slot_key_gen_accept() { } if (check_gpg_error_2_err_code(error) == GPG_ERR_NO_ERROR) { - auto* msg_box = new QMessageBox((QWidget*)this->parent()); + auto* msg_box = new QMessageBox(qobject_cast(this->parent())); msg_box->setAttribute(Qt::WA_DeleteOnClose); msg_box->setStandardButtons(QMessageBox::Ok); msg_box->setWindowTitle(_("Success")); diff --git a/src/ui/dialog/keypair_details/KeySetExpireDateDialog.cpp b/src/ui/dialog/keypair_details/KeySetExpireDateDialog.cpp index d09662e1..89d2ce74 100644 --- a/src/ui/dialog/keypair_details/KeySetExpireDateDialog.cpp +++ b/src/ui/dialog/keypair_details/KeySetExpireDateDialog.cpp @@ -79,7 +79,7 @@ void KeySetExpireDateDialog::slot_confirm() { auto err = GpgKeyOpera::GetInstance().SetExpire(m_key_, m_subkey_, expires); if (check_gpg_error_2_err_code(err) == GPG_ERR_NO_ERROR) { - auto* msg_box = new QMessageBox((QWidget*)this->parent()); + auto* msg_box = new QMessageBox(qobject_cast(this->parent())); msg_box->setAttribute(Qt::WA_DeleteOnClose); msg_box->setStandardButtons(QMessageBox::Ok); msg_box->setWindowTitle(_("Success")); From 25e7d7c1fd4176298d04fc24a0065166923aad91 Mon Sep 17 00:00:00 2001 From: saturneric Date: Sat, 1 Apr 2023 03:16:59 +0800 Subject: [PATCH 34/35] fix: solve missing return value issue --- src/ui/dialog/import_export/KeyImportDetailDialog.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/ui/dialog/import_export/KeyImportDetailDialog.cpp b/src/ui/dialog/import_export/KeyImportDetailDialog.cpp index 4e10146b..32ae63fa 100644 --- a/src/ui/dialog/import_export/KeyImportDetailDialog.cpp +++ b/src/ui/dialog/import_export/KeyImportDetailDialog.cpp @@ -190,6 +190,7 @@ QString KeyImportDetailDialog::get_status_string(int key_status) { } } } + return status_string; } void KeyImportDetailDialog::create_button_box() { From 119091d8f393b74f48ea584614ef5d7345400b40 Mon Sep 17 00:00:00 2001 From: saturneric Date: Sat, 1 Apr 2023 04:01:39 +0800 Subject: [PATCH 35/35] feat: add project security document --- scripts/install-qt-env.sh | 3 --- src/SECURITY.md | 43 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 43 insertions(+), 3 deletions(-) delete mode 100644 scripts/install-qt-env.sh create mode 100644 src/SECURITY.md diff --git a/scripts/install-qt-env.sh b/scripts/install-qt-env.sh deleted file mode 100644 index 27c06515..00000000 --- a/scripts/install-qt-env.sh +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/bash - -REPO_ROOT_PWD=`git rev-parse --show-toplevel` \ No newline at end of file diff --git a/src/SECURITY.md b/src/SECURITY.md new file mode 100644 index 00000000..0d6b2add --- /dev/null +++ b/src/SECURITY.md @@ -0,0 +1,43 @@ +# Security Policy + +## Supported Versions + +The application white check mark is still in support, without it means there +version will no longer have a update including security fixture. That's beacuse +currently I have a job and a hard learning plain, which means I don't have too +much time to dealing with this project now, sincerely, I am sorry for that. +Maybe this situation will get better in the future. So it is recommand to use +the latest version. + +| Version | Supported | +| ------- | ------------------ | +| 1.x.x | :x: | +| 2.x.x | :x: | +| 2.1.x | :white_check_mark: | + +## Platform & Library Support + +According to security concern and my limiting time to contributing, GpgFrontend +will gradually drop the support of some old platforms. + +Starting from v1.0.0, x32 operating system is no longer support. Mainly because +I have limit time and the fact that x32 machime is getting less and less in the +pc market, so I plan to stop spending tons of time dealing with lots of complex +problem which might made me crazy. x64 is just enough, or you can use gpg4usb. + +Starting from v2.0.1, Ubuntu 16.04 is no longer support. Mainly because this +Ubuntu 16.04 LTS's life time had come into an end at during that time. Keep +using this version of Ubuntu is not safty anymore. + +Starting from v2.1.0, macOS 10.15 is no longer support. Mainly because this +system will no longer support by github action in the near future. Also, I think +this version is old enough to drop it out, and Apple might not longer to support +it soon. + +## Reporting a Vulnerability + +If you want to report a vulnerability, it's not good to raise an issue in +public. You should send an email to eric@bktus.com to contract me. In the email, +You can describe the vulnerability you have just discovered and request a +hot-fix. Or you can just provide a git patch to fix it and send it to me using +the email. This is a better way to solve the vulnerability as quick as possible. \ No newline at end of file