diff --git a/TODO b/TODO
index 73b4c72..704592e 100644
--- a/TODO
+++ b/TODO
@@ -47,13 +47,10 @@ TODO
✓ Navigation
✓ Editing: Name
✓ Deletion
+ ✓ Cache next and previous images
Set context menu for definitions and the like
Search document using QTextCursor?
Comic view keyboard shortcuts
- Comic view modes
- Continuous paging
- Double pages
- Cache next and previous images
Filetypes:
✓ cbz, cbr support
✓ Keep font settings enabled but only for background color
@@ -81,6 +78,9 @@ TODO
txt, doc, chm, djvu, fb2 support
Include icons for filetype emblems
Drag and drop support for the library
+ Comic view modes
+ Continuous paging
+ Double pages
Leave comic images on disk in case tab isn't closed and files are remembered
Ignore a / the / numbers for sorting purposes
? Add only one file type if multiple are present
diff --git a/__main__.py b/__main__.py
index b4300f0..50982d8 100755
--- a/__main__.py
+++ b/__main__.py
@@ -33,6 +33,7 @@ from settings import Settings
from settingsdialog import SettingsUI
from metadatadialog import MetadataUI
+from definitionsdialog import DefinitionsUI
class MainUI(QtWidgets.QMainWindow, mainwindow.Ui_MainWindow):
@@ -73,6 +74,9 @@ class MainUI(QtWidgets.QMainWindow, mainwindow.Ui_MainWindow):
# Initialize metadata dialog
self.metadataDialog = MetadataUI(self)
+ # Initialize definition view dialog
+ self.definitionDialog = DefinitionsUI(self)
+
# Statusbar widgets
self.statusMessage.setObjectName('statusMessage')
self.statusBar.addPermanentWidget(self.statusMessage)
@@ -388,8 +392,8 @@ class MainUI(QtWidgets.QMainWindow, mainwindow.Ui_MainWindow):
self.tabWidget.widget(self.tabWidget.currentIndex()).add_bookmark()
def test_function(self):
- print('Caesar si viveret, ad remum dareris')
- self.metadataDialog.show()
+ # print('Caesar si viveret, ad remum dareris')
+ self.definitionDialog.find_definition('draft')
def resizeEvent(self, event=None):
if event:
@@ -964,10 +968,6 @@ class MainUI(QtWidgets.QMainWindow, mainwindow.Ui_MainWindow):
self.settingsDialog.hide()
def generate_library_context_menu(self, position):
- # TODO
- # The library might have multiple items selected
- # Make sure the context menu actions are carried out on each
-
index = self.sender().indexAt(position)
if not index.isValid():
return
@@ -1142,6 +1142,7 @@ class MainUI(QtWidgets.QMainWindow, mainwindow.Ui_MainWindow):
self.hide()
self.metadataDialog.hide()
self.settingsDialog.hide()
+ self.definitionDialog.hide()
self.temp_dir.remove()
self.settings['last_open_books'] = []
diff --git a/definitionsdialog.py b/definitionsdialog.py
new file mode 100644
index 0000000..3045a7f
--- /dev/null
+++ b/definitionsdialog.py
@@ -0,0 +1,119 @@
+#!/usr/bin/env python3
+
+# This file is a part of Lector, a Qt based ebook reader
+# Copyright (C) 2017 BasioMeusPuga
+
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see .
+
+import requests
+from PyQt5 import QtWidgets, QtCore, QtGui
+
+from resources import definitions
+
+
+class DefinitionsUI(QtWidgets.QDialog, definitions.Ui_Dialog):
+ def __init__(self, parent):
+ super(DefinitionsUI, self).__init__()
+ self.setupUi(self)
+
+ self.setWindowFlags(
+ QtCore.Qt.Popup |
+ QtCore.Qt.FramelessWindowHint)
+
+ radius = 15
+ path = QtGui.QPainterPath()
+ path.addRoundedRect(QtCore.QRectF(self.rect()), radius, radius)
+ mask = QtGui.QRegion(path.toFillPolygon().toPolygon())
+ self.setMask(mask)
+
+ foreground = QtGui.QColor().fromRgb(230, 230, 230)
+ background = QtGui.QColor().fromRgb(0, 0, 0)
+
+ self.setStyleSheet(
+ "QDialog {{background-color: {0}}}".format(background.name()))
+ self.definitionView.setStyleSheet(
+ "QTextBrowser {{color: {0}; background-color: {1}}}".format(
+ foreground.name(), background.name()))
+
+ self.app_id = 'bb7a91f9'
+ self.app_key = 'fefacdf6775c347b52e9efa2efe642ef'
+ self.language = 'en'
+
+ self.root_url = 'https://od-api.oxforddictionaries.com:443/api/v1/inflections/'
+ self.define_url = 'https://od-api.oxforddictionaries.com:443/api/v1/entries/'
+
+ self.root_url += self.language + '/'
+ self.define_url += self.language + '/'
+
+ def api_call(self, url, word):
+ url = url + word.lower()
+
+ r = requests.get(
+ url,
+ headers={'app_id': self.app_id, 'app_key': self.app_key})
+
+ if r.status_code != 200:
+ print('A firm nope on the dictionary finding thing')
+ return None
+
+ return r.json()
+
+ def find_definition(self, word):
+ word_root_json = self.api_call(self.root_url, word)
+ if not word_root_json:
+ return
+ word_root = word_root_json['results'][0]['lexicalEntries'][0]['inflectionOf'][0]['id']
+
+ definition_json = self.api_call(self.define_url, word_root)
+
+ definitions = {}
+ for i in definition_json['results'][0]['lexicalEntries']:
+ category = i['lexicalCategory']
+ this_sense = i['entries'][0]['senses']
+ for j in this_sense:
+
+ try:
+ this_definition = j['definitions'][0].capitalize()
+ except KeyError:
+ # The API also reports crossReferenceMarkers here
+ pass
+
+ try:
+ definitions[category].add(this_definition)
+ except KeyError:
+ definitions[category] = set()
+ definitions[category].add(this_definition)
+
+ self.set_text(word, word_root, definitions)
+
+ def set_text(self, word, word_root, definitions):
+ html_string = ''
+
+ # Word heading
+ html_string += f'
{word} \n'
+
+ # Word root
+ html_string += f'Word root: {word_root}
\n'
+
+ for i in definitions.items():
+ category = i[0]
+ html_string += f'{category} :
\n\n'
+
+ for j in i[1]:
+ html_string += f'{j} \n'
+
+ html_string += ' \n'
+
+ self.definitionView.setHtml(html_string)
+ self.show()
diff --git a/metadatadialog.py b/metadatadialog.py
index ad54ee9..37a4169 100644
--- a/metadatadialog.py
+++ b/metadatadialog.py
@@ -29,19 +29,11 @@ class MetadataUI(QtWidgets.QDialog, metadata.Ui_Dialog):
super(MetadataUI, self).__init__()
self.setupUi(self)
- self.parent = parent
self.setWindowFlags(
QtCore.Qt.Popup |
QtCore.Qt.FramelessWindowHint)
- self.database_path = self.parent.database_path
-
- self.book_index = None
- self.book_year = None
- self.previous_position = None
- self.cover_for_database = None
-
- radius = 20.0
+ radius = 15
path = QtGui.QPainterPath()
path.addRoundedRect(QtCore.QRectF(self.rect()), radius, radius)
mask = QtGui.QRegion(path.toFillPolygon().toPolygon())
@@ -55,8 +47,14 @@ class MetadataUI(QtWidgets.QDialog, metadata.Ui_Dialog):
self.coverView.setStyleSheet(
"QGraphicsView {{color: {0}; background-color: {1}}}".format(
foreground.name(), background.name()))
- self.okButton.setStyleSheet(
- "QToolButton {background-color: red}")
+
+ self.parent = parent
+ self.database_path = self.parent.database_path
+
+ self.book_index = None
+ self.book_year = None
+ self.previous_position = None
+ self.cover_for_database = None
self.coverView.setHorizontalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOff)
self.coverView.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOff)
diff --git a/resources/definitions.py b/resources/definitions.py
new file mode 100644
index 0000000..7e1dd24
--- /dev/null
+++ b/resources/definitions.py
@@ -0,0 +1,58 @@
+# -*- coding: utf-8 -*-
+
+# Form implementation generated from reading ui file 'raw/definition.ui'
+#
+# Created by: PyQt5 UI code generator 5.10.1
+#
+# WARNING! All changes made in this file will be lost!
+
+from PyQt5 import QtCore, QtGui, QtWidgets
+
+class Ui_Dialog(object):
+ def setupUi(self, Dialog):
+ Dialog.setObjectName("Dialog")
+ Dialog.resize(729, 318)
+ self.gridLayout = QtWidgets.QGridLayout(Dialog)
+ self.gridLayout.setObjectName("gridLayout")
+ self.verticalLayout = QtWidgets.QVBoxLayout()
+ self.verticalLayout.setObjectName("verticalLayout")
+ self.definitionView = QtWidgets.QTextBrowser(Dialog)
+ self.definitionView.setFrameShape(QtWidgets.QFrame.NoFrame)
+ self.definitionView.setFrameShadow(QtWidgets.QFrame.Plain)
+ self.definitionView.setObjectName("definitionView")
+ self.verticalLayout.addWidget(self.definitionView)
+ self.horizontalLayout = QtWidgets.QHBoxLayout()
+ self.horizontalLayout.setObjectName("horizontalLayout")
+ spacerItem = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
+ self.horizontalLayout.addItem(spacerItem)
+ self.okButton = QtWidgets.QPushButton(Dialog)
+ self.okButton.setText("")
+ icon = QtGui.QIcon()
+ icon.addPixmap(QtGui.QPixmap(":/images/checkmark.svg"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
+ self.okButton.setIcon(icon)
+ self.okButton.setIconSize(QtCore.QSize(24, 24))
+ self.okButton.setFlat(True)
+ self.okButton.setObjectName("okButton")
+ self.horizontalLayout.addWidget(self.okButton)
+ self.pronounceButton = QtWidgets.QPushButton(Dialog)
+ self.pronounceButton.setText("")
+ icon1 = QtGui.QIcon()
+ icon1.addPixmap(QtGui.QPixmap(":/images/QMPlay2.svg"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
+ self.pronounceButton.setIcon(icon1)
+ self.pronounceButton.setIconSize(QtCore.QSize(24, 24))
+ self.pronounceButton.setFlat(True)
+ self.pronounceButton.setObjectName("pronounceButton")
+ self.horizontalLayout.addWidget(self.pronounceButton)
+ spacerItem1 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
+ self.horizontalLayout.addItem(spacerItem1)
+ self.verticalLayout.addLayout(self.horizontalLayout)
+ self.gridLayout.addLayout(self.verticalLayout, 0, 0, 1, 1)
+
+ self.retranslateUi(Dialog)
+ QtCore.QMetaObject.connectSlotsByName(Dialog)
+
+ def retranslateUi(self, Dialog):
+ _translate = QtCore.QCoreApplication.translate
+ Dialog.setWindowTitle(_translate("Dialog", "Dialog"))
+ self.okButton.setToolTip(_translate("Dialog", "WERDS"))
+ self.pronounceButton.setToolTip(_translate("Dialog", "Play pronunciation of root word"))
diff --git a/resources/raw/QMPlay2.svg b/resources/raw/QMPlay2.svg
new file mode 100644
index 0000000..1d00077
--- /dev/null
+++ b/resources/raw/QMPlay2.svg
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
diff --git a/resources/raw/definition.ui b/resources/raw/definition.ui
new file mode 100644
index 0000000..74e762e
--- /dev/null
+++ b/resources/raw/definition.ui
@@ -0,0 +1,113 @@
+
+
+ Dialog
+
+
+
+ 0
+ 0
+ 729
+ 318
+
+
+
+ Dialog
+
+
+ -
+
+ -
+
+
+ QFrame::NoFrame
+
+
+ QFrame::Plain
+
+
+
+ -
+
+ -
+
+
+ Qt::Horizontal
+
+
+
+ 40
+ 20
+
+
+
+
+ -
+
+
+ WERDS
+
+
+
+
+
+
+ :/images/checkmark.svg :/images/checkmark.svg
+
+
+
+ 24
+ 24
+
+
+
+ true
+
+
+
+ -
+
+
+ Play pronunciation of root word
+
+
+
+
+
+
+ :/images/QMPlay2.svg :/images/QMPlay2.svg
+
+
+
+ 24
+ 24
+
+
+
+ true
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+
+ 40
+ 20
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/resources/raw/resources.qrc b/resources/raw/resources.qrc
index 5b4ab63..9d46946 100644
--- a/resources/raw/resources.qrc
+++ b/resources/raw/resources.qrc
@@ -1,5 +1,6 @@
+ QMPlay2.svg
color.svg
blank.png
gray-shadow.png
diff --git a/resources/resources.py b/resources/resources.py
index c30dca2..f4dc96c 100644
--- a/resources/resources.py
+++ b/resources/resources.py
@@ -9,30 +9,6 @@
from PyQt5 import QtCore
qt_resource_data = b"\
-\x00\x00\x01\x55\
-\x3c\
-\x73\x76\x67\x20\x78\x6d\x6c\x6e\x73\x3d\x22\x68\x74\x74\x70\x3a\
-\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x32\x30\x30\
-\x30\x2f\x73\x76\x67\x22\x20\x77\x69\x64\x74\x68\x3d\x22\x32\x34\
-\x22\x20\x68\x65\x69\x67\x68\x74\x3d\x22\x32\x34\x22\x20\x76\x65\
-\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\x31\x22\x20\x76\x69\x65\x77\
-\x42\x6f\x78\x3d\x22\x30\x20\x30\x20\x31\x36\x20\x31\x36\x22\x3e\
-\x0a\x20\x3c\x67\x20\x74\x72\x61\x6e\x73\x66\x6f\x72\x6d\x3d\x22\
-\x74\x72\x61\x6e\x73\x6c\x61\x74\x65\x28\x30\x20\x2d\x31\x30\x33\
-\x36\x2e\x34\x29\x22\x3e\x0a\x20\x20\x3c\x63\x69\x72\x63\x6c\x65\
-\x20\x66\x69\x6c\x6c\x3d\x22\x23\x34\x63\x61\x66\x35\x30\x22\x20\
-\x63\x78\x3d\x22\x38\x22\x20\x63\x79\x3d\x22\x31\x30\x34\x34\x2e\
-\x34\x22\x20\x72\x3d\x22\x37\x22\x2f\x3e\x0a\x20\x20\x3c\x70\x61\
-\x74\x68\x20\x66\x69\x6c\x6c\x3d\x22\x23\x66\x66\x66\x22\x20\x64\
-\x3d\x22\x6d\x31\x31\x2e\x35\x33\x35\x20\x31\x30\x34\x30\x2e\x38\
-\x2d\x34\x2e\x32\x34\x32\x32\x20\x34\x2e\x32\x34\x32\x32\x2d\x32\
-\x2e\x38\x32\x38\x31\x2d\x32\x2e\x38\x32\x38\x31\x2d\x31\x2e\x34\
-\x31\x34\x31\x20\x31\x2e\x34\x31\x34\x31\x20\x32\x2e\x38\x32\x38\
-\x31\x20\x32\x2e\x38\x32\x38\x31\x20\x31\x2e\x34\x31\x34\x31\x20\
-\x31\x2e\x34\x31\x34\x31\x20\x35\x2e\x36\x35\x36\x33\x2d\x35\x2e\
-\x36\x35\x36\x33\x2d\x31\x2e\x34\x31\x34\x31\x2d\x31\x2e\x34\x31\
-\x34\x31\x7a\x22\x2f\x3e\x0a\x20\x3c\x2f\x67\x3e\x0a\x3c\x2f\x73\
-\x76\x67\x3e\x0a\
\x00\x00\x00\xb1\
\x00\
\x00\x02\x97\x78\x9c\xeb\x0c\xf0\x73\xe7\xe5\x92\xe2\x62\x60\x60\
@@ -47,6 +23,119 @@ qt_resource_data = b"\
\x76\x11\x86\x51\x30\x22\xc0\x87\xb4\xcd\x8d\x0c\x8c\x9e\x1e\xcf\
\xbe\x83\x78\x9e\xae\x7e\x2e\xeb\x9c\x12\x9a\x00\x8a\x79\x2e\x80\
\
+\x00\x00\x00\xa3\
+\x00\
+\x00\x09\x38\x78\x9c\xeb\x0c\xf0\x73\xe7\xe5\x92\xe2\x62\x60\x60\
+\xe0\xf5\xf4\x70\x09\x62\x60\x60\x5c\xc2\xc0\xc0\x14\xc1\xc1\x06\
+\x14\xd1\xfd\x32\xe9\x14\x90\xe2\x2c\xf0\x88\x2c\x66\x60\x10\x2a\
+\x01\x61\xc6\x7b\x69\xf2\x15\x0c\x0c\x1c\xaf\x3c\x5d\x1c\x43\x2a\
+\xe6\xbc\xbd\x6a\xc8\x78\xc0\x80\xe7\xc0\x86\x35\x12\x87\xe7\x9f\
+\xe2\x5a\x6c\xa7\xc2\xf2\xef\xcf\xdb\x77\xf6\x0c\x1f\x6e\x54\xca\
+\x32\x30\x18\xb7\xb1\x38\xb4\x28\x32\x4e\x48\xf0\x60\x50\x91\x10\
+\x62\xe0\x04\x72\x9b\x46\xb9\xa3\xdc\x51\xee\x28\x77\x94\x3b\xca\
+\x1d\xe5\x8e\x72\x07\x39\xb7\x80\x91\xc5\x87\x6d\xf5\xcd\x67\x8b\
+\x6a\x80\x4d\x21\x06\x4f\x57\x3f\x97\x75\x4e\x09\x4d\x00\xf2\xfe\
+\xe3\x9e\
+\x00\x00\x06\x1b\
+\x00\
+\x00\x2e\x4f\x78\x9c\xed\x9a\x5d\x6f\xdb\x36\x14\x86\xef\xfb\x2b\
+\x04\xf5\xa6\xc5\x6c\x89\xa4\x24\x8a\x32\xec\x14\x1b\x8a\x0e\xbb\
+\x18\x06\xac\xed\x06\xec\x8e\x26\x29\x5b\xab\x2c\x19\x92\x1c\x27\
+\xf9\xf5\x23\x65\xeb\xc3\x36\xad\xfa\xa3\x32\x9a\x74\x36\xd2\x9a\
+\x3c\x87\x87\x87\x2f\x1f\x1e\x49\x4e\xc6\xef\x1e\x16\xb1\x71\x2f\
+\xb2\x3c\x4a\x93\x89\x09\x2d\x60\x1a\x22\x61\x29\x8f\x92\xd9\xc4\
+\xfc\xfc\xe9\xc3\x90\x98\x46\x5e\xd0\x84\xd3\x38\x4d\xc4\xc4\x4c\
+\x52\xf3\xdd\xdd\xab\x71\x7e\x3f\x7b\x65\x18\x86\x1c\x9c\xe4\x23\
+\xce\x26\xe6\xbc\x28\x96\x23\xdb\x5e\xae\xb2\xd8\x4a\xb3\x99\xcd\
+\x99\x2d\x62\xb1\x10\x49\x91\xdb\xd0\x82\xb6\xd9\xb8\xb3\xc6\x9d\
+\x65\x82\x16\xd1\xbd\x60\xe9\x62\x91\x26\x79\x39\x32\xc9\x5f\xb7\
+\x9c\x33\x1e\xd6\xde\xeb\xf5\xda\x5a\x3b\xa5\x13\x0c\x82\xc0\x06\
+\xc8\x46\x68\x28\x3d\x86\xf9\x63\x52\xd0\x87\xe1\xee\x50\x99\xa3\
+\x6e\x28\x02\x00\xd8\xd2\xd6\x78\x9e\xe6\x35\x7a\x88\xa3\xe4\xcb\
+\xd1\x64\x4a\x6b\x7b\x76\xa9\xe1\x52\xfe\xd4\x03\xaa\x0e\x2b\x4f\
+\x57\x19\x13\xa1\x1c\x29\xac\x44\x14\xf6\xfb\x4f\xef\x6b\xe3\x10\
+\x58\xbc\xe0\xad\x30\x32\x68\xce\xe8\x52\xec\xcc\x5b\x75\x6e\xf4\
+\xa2\x0b\x91\x2f\x29\x13\xb9\x5d\xf5\x97\xe3\xd7\x11\x2f\xe6\x13\
+\x13\xa1\xb2\x35\x17\xd1\x6c\x5e\xd4\xcd\xd6\x8e\xc3\x4d\x47\x24\
+\xd6\xbf\xa4\x0f\x13\x13\x18\xc0\x40\xc8\xd8\xfa\x45\x7c\x62\x4a\
+\x15\x02\x50\xb6\xaa\x2c\x47\x3c\x65\x6a\xda\x89\xc9\xd2\x38\xcd\
+\x86\x0b\x9a\xd0\x59\xb9\xd9\x56\x25\x59\x95\xca\xa8\x9e\x09\x58\
+\x01\xb2\x90\xe1\x31\x47\x10\xc0\x07\x06\x02\xd0\x1f\x02\x32\x04\
+\xd8\xbc\x93\x23\xc6\x0b\x51\x50\x4e\x0b\xaa\x46\x6f\x26\xae\x7a\
+\x02\xb7\xf4\x90\x3e\x72\xaf\x47\x7f\xbe\xff\xb0\x69\xc9\x36\x63\
+\xa3\xbf\xd3\xec\xcb\xb6\x29\x5f\xca\x81\x4e\xd3\x95\x5c\xa9\x79\
+\x57\x77\x8f\x39\x1b\x49\xbd\x17\xb4\xb8\x8b\x16\x32\x53\xb5\xb1\
+\x3f\x49\x7d\xc7\x76\x63\xd8\x71\x2e\x1e\x97\xa2\x09\xba\x09\x9b\
+\x89\xcd\xc6\x69\x59\xe7\x6c\x11\xa9\x41\xf6\xc7\x22\x8a\xe3\xdf\
+\xd4\x24\xa6\x61\xd7\x79\xda\xdb\x44\xb7\xcb\xb0\x5b\xeb\x18\xdb\
+\xd5\x32\xcb\x56\x2d\xb1\xd2\x97\xab\x5d\xd9\xc4\x58\xca\x88\xa5\
+\xd8\x13\xf3\x75\x58\xbe\xcc\x8d\x61\x9a\x66\x5c\x64\x95\x09\x97\
+\xaf\x1d\x53\x2a\xd9\x90\xb9\xc9\xad\xde\x76\xa7\xd3\x7f\x05\x2b\
+\x8a\x34\x16\x19\x4d\xd4\x7a\x20\xd8\x5a\x66\x99\x64\x46\xd7\xbf\
+\x8a\xb8\xd0\x19\xea\x5d\x56\xe9\xd5\x13\x69\xad\xf9\x9c\xf2\x74\
+\x2d\x01\xdc\x37\xae\xa3\x44\x1a\x86\x5b\x5c\x21\x42\xde\x11\x8f\
+\x0a\x61\x1f\xfb\x66\x03\x49\xad\x53\x50\x45\xce\xe7\xe9\x5a\xad\
+\x64\x62\x86\x34\xce\xc5\x7e\xb4\xa7\x34\x5d\xa8\x25\x58\x3e\x92\
+\x6f\x67\xdf\xcc\xd4\x19\xb0\x90\x1f\x60\x0c\xc1\x41\xb2\x4c\xe9\
+\x08\x8f\x24\x28\x47\x7a\x3e\x39\x62\x54\x03\xdd\x63\xc6\x05\x7d\
+\x88\x16\xd1\x93\xe0\x1a\xf1\xd8\x2a\xcb\xe4\xc9\x1a\xc6\xf4\x51\
+\x64\xd5\x69\xdc\xb0\x35\xe6\x22\xcc\x1b\x29\x54\xcb\xc5\xd5\x59\
+\x91\xf5\x48\xd0\xec\xd7\x8c\xf2\x48\x0e\xaf\x68\x56\x7e\xbb\x16\
+\x17\xd5\xcb\x94\x45\x07\x36\x9c\xc8\x16\x9a\x98\xa4\x6e\x3d\xc2\
+\x9d\x16\x6a\x7b\xce\xb6\xc1\x3e\x27\x51\x21\xeb\xe9\x2a\x17\xd9\
+\x47\x55\x93\xfe\x48\x3e\xcb\x1d\xa8\xcf\x41\x5e\xa4\xcb\xe6\x5c\
+\xa5\x61\x98\x8b\xa2\x59\x72\xb9\x79\xd2\x63\x58\xd1\x2c\x08\x24\
+\xbe\xdf\xb2\x96\xe5\x48\x7a\xa0\xf6\xe1\xd2\x07\xb5\x1c\xe8\x1c\
+\x8b\xcb\x39\xe4\x84\x69\xe2\xba\x27\xc4\xf5\xf0\xd1\xb8\x98\x7b\
+\xfe\x14\x6a\xe2\xe2\x13\xe2\xfa\xde\xb1\xb0\x88\xfa\x84\xe9\xc2\
+\x92\xaf\x87\x85\xc7\x82\x02\x48\x38\x9b\x6a\x82\x42\x50\x47\x1d\
+\xdb\xbb\xa8\x9c\x4f\x96\x7b\x29\x59\x5e\xdf\x68\x79\xd0\xc3\x3a\
+\x4d\x25\x35\x57\xb1\x25\x5c\x19\x58\xc7\x96\x5c\xd2\x55\x70\x09\
+\x1f\x0a\xa4\x0d\xec\x5f\x45\x97\x20\x0e\x80\x42\x17\x37\xb8\x02\
+\x2f\x81\x1d\x04\x74\x51\x11\xfc\x86\x78\xe1\x5d\xbc\xbc\xef\xa6\
+\x72\x4d\x05\x0b\x00\xd0\x2d\xff\x94\x12\xd3\x81\x57\x20\x18\x01\
+\x54\x17\xf8\x94\x1a\xd3\x81\x97\x0f\xa7\x81\xc3\x75\x81\x4f\xa8\
+\x32\x1d\x78\x39\x1e\x75\x49\xa8\x89\xeb\x80\xeb\xaa\x57\xc8\x74\
+\x32\x38\xe8\x1b\xe2\x45\x2e\xc6\xab\xef\xf2\xc5\x20\x63\x5a\xbe\
+\x9c\x53\xaa\x4c\xd7\xa5\x31\x64\x5c\x1f\xf8\x94\x2a\xd3\xc1\x57\
+\x08\x8e\x65\x7c\x42\x99\xe9\xe0\x2b\x94\x57\xf2\xd6\x46\xb5\xae\
+\xe5\xf0\x0a\xbe\x42\xe4\xb1\x1d\x91\xea\xa8\xce\x85\x7c\xd5\xb7\
+\x73\x69\x1c\xcb\xdb\xef\x89\x49\xe3\x35\x7d\xcc\x1b\xa4\xd4\xf3\
+\xe3\x68\x9e\x09\xf9\xbc\xfb\xba\xa3\xd0\x69\x40\xf5\x02\x70\x22\
+\x6e\x47\x70\xde\x05\x78\x0f\x6e\x6d\xb5\xfc\x24\x9f\x04\x72\xf5\
+\xe4\x24\x9f\xd2\x68\x91\x45\x0f\x6f\x80\x45\x40\x00\x30\x74\x83\
+\x01\x50\xef\xa6\x09\x2d\x0f\xf9\x1e\x20\xb0\xf9\xf4\xb6\x11\xb1\
+\x17\xb9\x50\xb7\x5c\xe8\x12\xb9\x5e\xae\x5a\xa4\x5b\x2d\xb7\x67\
+\xb8\x0e\x6b\xe5\x77\xae\x97\xdb\xad\x17\xee\x97\xae\x67\x27\xd7\
+\x57\x6a\x17\xf9\xbf\x76\x9d\x5e\xbb\x30\xb8\xa8\xd4\xbf\x5c\xb5\
+\x3a\x6b\x17\x06\x17\x55\xfa\x1f\xb6\x76\x61\x70\x51\xad\x7f\xc1\
+\x72\x75\xd6\x2e\x0c\x2e\x2a\xf5\x3f\x6e\xed\xba\xa8\xd4\xbf\x5c\
+\xb5\xba\x6b\x17\xec\xfb\xa6\xfe\xd9\x1d\xc6\xee\xda\x05\x7b\xbe\
+\xab\x7f\x76\x72\x75\xd7\x2e\xd8\xf7\x6d\xfd\x73\x93\xab\xbb\x76\
+\xc1\x9e\xef\xea\x9f\x9b\x5a\x5f\xa9\x5d\x7d\xdf\xd4\x3f\xbb\xc3\
+\xd8\x5d\xbb\x50\xcf\x77\xf5\xbd\xc9\x35\xb6\xd5\x2f\x1d\xcb\x4f\
+\xb3\xcd\x14\xc5\x41\x60\x68\x21\x07\x97\x31\x37\x9f\xa0\x05\x21\
+\xda\xfc\xfb\x76\x9b\x97\xd2\x64\x46\x48\xf5\xab\xcb\x59\x95\x6d\
+\x2b\x58\x96\x16\xb4\x10\x6f\xa0\x37\x20\x03\xf2\x76\x47\xcd\x99\
+\x87\x9b\x2f\x52\x97\xb4\x98\x57\x46\xf5\xa5\xde\x63\x2c\x26\x66\
+\x18\xc5\xf1\x68\x95\xc5\x6f\xf6\x37\xc6\x0b\x40\x13\xcb\x30\xd4\
+\x1f\x1d\x18\x64\x00\x8d\x7b\xc3\x37\xe6\xf2\xe7\x67\xc3\x1f\xf8\
+\x06\x28\xdf\xaa\xff\x9f\x96\xb3\x9a\x5a\xcd\xe6\x92\x76\x67\x83\
+\x49\x92\x48\x4c\xd2\x6c\xc8\x56\xd9\x3d\x2d\x56\x99\x50\xdf\xe7\
+\xb6\xbe\x92\x3c\x37\x53\xb4\x97\xe9\xef\x65\x46\xed\x0c\xe1\x80\
+\x94\x59\x3f\x69\xb2\xf4\xc0\x6d\xb2\x74\x35\x7a\x92\x52\x4f\xda\
+\xca\xd4\x1f\x0c\x8f\xa4\x89\x6e\x93\x26\x3e\x48\x53\x89\xb7\x9b\
+\xa2\x6f\xfc\x65\x10\xed\x96\x7b\xee\x05\x59\x8e\xed\xd9\x3e\xdf\
+\xdb\x3c\xb7\x7f\x39\x31\x02\x96\xbf\x0b\x36\xbe\x02\x6c\x72\x35\
+\xd8\xde\x4d\xc0\xc6\x60\xff\x08\x9e\x07\x36\xbe\x09\xd8\x18\xec\
+\x1f\xbf\x33\xc1\xc6\x37\x01\x5b\x3e\xc1\x5f\x05\x36\xee\x0b\x6c\
+\xa7\xb9\x04\x1d\x16\x75\x57\x57\xd4\xfd\x8b\xd9\x97\xcf\xe5\x57\
+\xb3\x8f\x6f\xc4\xfe\xfe\x29\x3d\x8f\x7d\xff\x36\xec\x43\xdd\x45\
+\xf2\x0c\xf6\xfd\xdb\xb0\x0f\x0f\x8f\xe8\x39\xec\xfb\xbd\xb1\xdf\
+\x81\x3e\x06\x1a\xf4\xc9\xe5\xe8\x43\xdd\xf5\xf7\x3c\xf4\xfd\xdb\
+\xa0\x0f\xf7\x0f\xe9\x79\xe8\x93\x1b\xa1\xaf\xbb\x8c\x9e\x81\x3e\
+\xb9\x0d\xfa\xe8\xf0\x84\x9e\x83\x3e\xb9\x02\xfd\xf2\xbf\xb1\xfa\
+\x93\xda\xbb\x57\xff\x01\x6d\x02\x15\x3b\
\x00\x00\x45\x13\
\x89\
\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\
@@ -1155,6 +1244,99 @@ qt_resource_data = b"\
\x00\x00\xd2\x04\x2f\x00\x00\x69\x82\x17\x00\x80\xb4\x2f\xb6\xe1\
\xd6\x4d\xdd\x20\x9a\xae\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\
\x60\x82\
+\x00\x00\x01\x55\
+\x3c\
+\x73\x76\x67\x20\x78\x6d\x6c\x6e\x73\x3d\x22\x68\x74\x74\x70\x3a\
+\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x32\x30\x30\
+\x30\x2f\x73\x76\x67\x22\x20\x77\x69\x64\x74\x68\x3d\x22\x32\x34\
+\x22\x20\x68\x65\x69\x67\x68\x74\x3d\x22\x32\x34\x22\x20\x76\x65\
+\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\x31\x22\x20\x76\x69\x65\x77\
+\x42\x6f\x78\x3d\x22\x30\x20\x30\x20\x31\x36\x20\x31\x36\x22\x3e\
+\x0a\x20\x3c\x67\x20\x74\x72\x61\x6e\x73\x66\x6f\x72\x6d\x3d\x22\
+\x74\x72\x61\x6e\x73\x6c\x61\x74\x65\x28\x30\x20\x2d\x31\x30\x33\
+\x36\x2e\x34\x29\x22\x3e\x0a\x20\x20\x3c\x63\x69\x72\x63\x6c\x65\
+\x20\x66\x69\x6c\x6c\x3d\x22\x23\x34\x63\x61\x66\x35\x30\x22\x20\
+\x63\x78\x3d\x22\x38\x22\x20\x63\x79\x3d\x22\x31\x30\x34\x34\x2e\
+\x34\x22\x20\x72\x3d\x22\x37\x22\x2f\x3e\x0a\x20\x20\x3c\x70\x61\
+\x74\x68\x20\x66\x69\x6c\x6c\x3d\x22\x23\x66\x66\x66\x22\x20\x64\
+\x3d\x22\x6d\x31\x31\x2e\x35\x33\x35\x20\x31\x30\x34\x30\x2e\x38\
+\x2d\x34\x2e\x32\x34\x32\x32\x20\x34\x2e\x32\x34\x32\x32\x2d\x32\
+\x2e\x38\x32\x38\x31\x2d\x32\x2e\x38\x32\x38\x31\x2d\x31\x2e\x34\
+\x31\x34\x31\x20\x31\x2e\x34\x31\x34\x31\x20\x32\x2e\x38\x32\x38\
+\x31\x20\x32\x2e\x38\x32\x38\x31\x20\x31\x2e\x34\x31\x34\x31\x20\
+\x31\x2e\x34\x31\x34\x31\x20\x35\x2e\x36\x35\x36\x33\x2d\x35\x2e\
+\x36\x35\x36\x33\x2d\x31\x2e\x34\x31\x34\x31\x2d\x31\x2e\x34\x31\
+\x34\x31\x7a\x22\x2f\x3e\x0a\x20\x3c\x2f\x67\x3e\x0a\x3c\x2f\x73\
+\x76\x67\x3e\x0a\
+\x00\x00\x04\x27\
+\x3c\
+\x73\x76\x67\x20\x78\x6d\x6c\x6e\x73\x3d\x22\x68\x74\x74\x70\x3a\
+\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x32\x30\x30\
+\x30\x2f\x73\x76\x67\x22\x20\x77\x69\x64\x74\x68\x3d\x22\x32\x34\
+\x22\x20\x68\x65\x69\x67\x68\x74\x3d\x22\x32\x34\x22\x20\x76\x65\
+\x72\x73\x69\x6f\x6e\x3d\x22\x31\x22\x3e\x0a\x20\x3c\x70\x61\x74\
+\x68\x20\x66\x69\x6c\x6c\x3d\x22\x23\x34\x66\x34\x66\x34\x66\x22\
+\x20\x64\x3d\x22\x6d\x33\x2e\x38\x31\x30\x32\x20\x32\x2e\x30\x30\
+\x30\x36\x61\x31\x2e\x37\x36\x39\x31\x20\x31\x2e\x35\x36\x39\x34\
+\x20\x30\x20\x30\x20\x30\x20\x2d\x31\x2e\x38\x31\x30\x32\x20\x31\
+\x2e\x35\x36\x38\x38\x76\x31\x36\x2e\x38\x36\x33\x61\x31\x2e\x37\
+\x36\x39\x31\x20\x31\x2e\x35\x36\x39\x34\x20\x30\x20\x30\x20\x30\
+\x20\x32\x2e\x36\x35\x33\x36\x20\x31\x2e\x33\x35\x38\x6c\x38\x2e\
+\x32\x33\x31\x34\x2d\x34\x2e\x32\x31\x35\x20\x38\x2e\x32\x33\x31\
+\x2d\x34\x2e\x32\x31\x35\x61\x31\x2e\x37\x36\x39\x31\x20\x31\x2e\
+\x35\x36\x39\x34\x20\x30\x20\x30\x20\x30\x20\x30\x20\x2d\x32\x2e\
+\x37\x31\x38\x32\x6c\x2d\x38\x2e\x32\x33\x31\x2d\x34\x2e\x32\x31\
+\x36\x31\x2d\x38\x2e\x32\x33\x31\x34\x2d\x34\x2e\x32\x31\x35\x36\
+\x61\x31\x2e\x37\x36\x39\x31\x20\x31\x2e\x35\x36\x39\x34\x20\x30\
+\x20\x30\x20\x30\x20\x2d\x30\x2e\x38\x34\x33\x34\x20\x2d\x30\x2e\
+\x32\x30\x39\x37\x7a\x22\x2f\x3e\x0a\x20\x3c\x70\x61\x74\x68\x20\
+\x6f\x70\x61\x63\x69\x74\x79\x3d\x22\x2e\x32\x22\x20\x64\x3d\x22\
+\x6d\x35\x20\x35\x2e\x35\x76\x31\x34\x6c\x36\x2e\x38\x33\x32\x2d\
+\x33\x2e\x36\x37\x39\x20\x36\x2e\x31\x36\x38\x2d\x33\x2e\x33\x32\
+\x31\x2d\x36\x2e\x31\x36\x38\x2d\x33\x2e\x33\x32\x31\x33\x2d\x36\
+\x2e\x38\x33\x32\x2d\x33\x2e\x36\x37\x38\x37\x7a\x22\x2f\x3e\x0a\
+\x20\x3c\x70\x61\x74\x68\x20\x66\x69\x6c\x6c\x3d\x22\x23\x30\x30\
+\x65\x33\x38\x32\x22\x20\x64\x3d\x22\x6d\x35\x20\x35\x76\x31\x34\
+\x6c\x36\x2e\x38\x33\x32\x2d\x33\x2e\x36\x37\x39\x20\x36\x2e\x31\
+\x36\x38\x2d\x33\x2e\x33\x32\x31\x2d\x36\x2e\x31\x36\x38\x2d\x33\
+\x2e\x33\x32\x31\x33\x2d\x36\x2e\x38\x33\x32\x2d\x33\x2e\x36\x37\
+\x38\x37\x7a\x22\x2f\x3e\x0a\x20\x3c\x70\x61\x74\x68\x20\x66\x69\
+\x6c\x6c\x3d\x22\x23\x66\x66\x66\x22\x20\x6f\x70\x61\x63\x69\x74\
+\x79\x3d\x22\x2e\x31\x22\x20\x64\x3d\x22\x6d\x33\x2e\x38\x31\x30\
+\x35\x20\x32\x2e\x30\x30\x30\x32\x61\x31\x2e\x37\x36\x39\x31\x20\
+\x31\x2e\x35\x36\x39\x34\x20\x30\x20\x30\x20\x30\x20\x2d\x31\x2e\
+\x38\x31\x30\x35\x20\x31\x2e\x35\x36\x39\x33\x76\x30\x2e\x35\x61\
+\x31\x2e\x37\x36\x39\x31\x20\x31\x2e\x35\x36\x39\x34\x20\x30\x20\
+\x30\x20\x31\x20\x31\x2e\x38\x31\x30\x35\x20\x2d\x31\x2e\x35\x36\
+\x39\x33\x20\x31\x2e\x37\x36\x39\x31\x20\x31\x2e\x35\x36\x39\x34\
+\x20\x30\x20\x30\x20\x31\x20\x30\x2e\x38\x34\x32\x38\x20\x30\x2e\
+\x32\x30\x39\x39\x6c\x38\x2e\x32\x33\x31\x34\x20\x34\x2e\x32\x31\
+\x35\x38\x20\x38\x2e\x32\x33\x30\x35\x20\x34\x2e\x32\x31\x35\x38\
+\x61\x31\x2e\x37\x36\x39\x31\x20\x31\x2e\x35\x36\x39\x34\x20\x30\
+\x20\x30\x20\x31\x20\x30\x2e\x38\x36\x31\x33\x33\x20\x31\x2e\x31\
+\x30\x37\x34\x20\x31\x2e\x37\x36\x39\x31\x20\x31\x2e\x35\x36\x39\
+\x34\x20\x30\x20\x30\x20\x30\x20\x2d\x30\x2e\x38\x36\x31\x33\x33\
+\x20\x2d\x31\x2e\x36\x30\x37\x34\x6c\x2d\x38\x2e\x32\x33\x2d\x34\
+\x2e\x32\x31\x36\x31\x2d\x38\x2e\x32\x33\x31\x37\x2d\x34\x2e\x32\
+\x31\x35\x38\x61\x31\x2e\x37\x36\x39\x31\x20\x31\x2e\x35\x36\x39\
+\x34\x20\x30\x20\x30\x20\x30\x20\x2d\x30\x2e\x38\x34\x32\x38\x20\
+\x2d\x30\x2e\x32\x30\x39\x39\x7a\x22\x2f\x3e\x0a\x20\x3c\x70\x61\
+\x74\x68\x20\x6f\x70\x61\x63\x69\x74\x79\x3d\x22\x2e\x32\x22\x20\
+\x64\x3d\x22\x6d\x32\x31\x2e\x39\x37\x37\x20\x31\x32\x2e\x32\x34\
+\x39\x61\x31\x2e\x37\x36\x39\x31\x20\x31\x2e\x35\x36\x39\x34\x20\
+\x30\x20\x30\x20\x31\x20\x2d\x30\x2e\x38\x36\x31\x33\x33\x20\x31\
+\x2e\x31\x31\x30\x34\x6c\x2d\x38\x2e\x32\x33\x30\x35\x20\x34\x2e\
+\x32\x31\x35\x38\x2d\x38\x2e\x32\x33\x31\x34\x20\x34\x2e\x32\x31\
+\x34\x38\x61\x31\x2e\x37\x36\x39\x31\x20\x31\x2e\x35\x36\x39\x34\
+\x20\x30\x20\x30\x20\x31\x20\x2d\x32\x2e\x36\x35\x34\x20\x2d\x31\
+\x2e\x33\x35\x38\x76\x30\x2e\x35\x61\x31\x2e\x37\x36\x39\x31\x20\
+\x31\x2e\x35\x36\x39\x34\x20\x30\x20\x30\x20\x30\x20\x32\x2e\x36\
+\x35\x33\x33\x20\x31\x2e\x33\x35\x38\x34\x6c\x38\x2e\x32\x33\x31\
+\x34\x2d\x34\x2e\x32\x31\x34\x38\x20\x38\x2e\x32\x33\x30\x35\x2d\
+\x34\x2e\x32\x31\x35\x38\x61\x31\x2e\x37\x36\x39\x31\x20\x31\x2e\
+\x35\x36\x39\x34\x20\x30\x20\x30\x20\x30\x20\x30\x2e\x38\x36\x31\
+\x33\x33\x20\x2d\x31\x2e\x36\x31\x30\x34\x7a\x22\x2f\x3e\x0a\x3c\
+\x2f\x73\x76\x67\x3e\x0a\
\x00\x00\x01\xb6\
\x3c\
\x73\x76\x67\x20\x78\x6d\x6c\x6e\x73\x3d\x22\x68\x74\x74\x70\x3a\
@@ -1185,119 +1367,6 @@ qt_resource_data = b"\
\x72\x6d\x3d\x22\x73\x63\x61\x6c\x65\x28\x2d\x31\x29\x22\x2f\x3e\
\x0a\x20\x20\x3c\x2f\x67\x3e\x0a\x20\x3c\x2f\x67\x3e\x0a\x3c\x2f\
\x73\x76\x67\x3e\x0a\
-\x00\x00\x06\x1b\
-\x00\
-\x00\x2e\x4f\x78\x9c\xed\x9a\x5d\x6f\xdb\x36\x14\x86\xef\xfb\x2b\
-\x04\xf5\xa6\xc5\x6c\x89\xa4\x24\x8a\x32\xec\x14\x1b\x8a\x0e\xbb\
-\x18\x06\xac\xed\x06\xec\x8e\x26\x29\x5b\xab\x2c\x19\x92\x1c\x27\
-\xf9\xf5\x23\x65\xeb\xc3\x36\xad\xfa\xa3\x32\x9a\x74\x36\xd2\x9a\
-\x3c\x87\x87\x87\x2f\x1f\x1e\x49\x4e\xc6\xef\x1e\x16\xb1\x71\x2f\
-\xb2\x3c\x4a\x93\x89\x09\x2d\x60\x1a\x22\x61\x29\x8f\x92\xd9\xc4\
-\xfc\xfc\xe9\xc3\x90\x98\x46\x5e\xd0\x84\xd3\x38\x4d\xc4\xc4\x4c\
-\x52\xf3\xdd\xdd\xab\x71\x7e\x3f\x7b\x65\x18\x86\x1c\x9c\xe4\x23\
-\xce\x26\xe6\xbc\x28\x96\x23\xdb\x5e\xae\xb2\xd8\x4a\xb3\x99\xcd\
-\x99\x2d\x62\xb1\x10\x49\x91\xdb\xd0\x82\xb6\xd9\xb8\xb3\xc6\x9d\
-\x65\x82\x16\xd1\xbd\x60\xe9\x62\x91\x26\x79\x39\x32\xc9\x5f\xb7\
-\x9c\x33\x1e\xd6\xde\xeb\xf5\xda\x5a\x3b\xa5\x13\x0c\x82\xc0\x06\
-\xc8\x46\x68\x28\x3d\x86\xf9\x63\x52\xd0\x87\xe1\xee\x50\x99\xa3\
-\x6e\x28\x02\x00\xd8\xd2\xd6\x78\x9e\xe6\x35\x7a\x88\xa3\xe4\xcb\
-\xd1\x64\x4a\x6b\x7b\x76\xa9\xe1\x52\xfe\xd4\x03\xaa\x0e\x2b\x4f\
-\x57\x19\x13\xa1\x1c\x29\xac\x44\x14\xf6\xfb\x4f\xef\x6b\xe3\x10\
-\x58\xbc\xe0\xad\x30\x32\x68\xce\xe8\x52\xec\xcc\x5b\x75\x6e\xf4\
-\xa2\x0b\x91\x2f\x29\x13\xb9\x5d\xf5\x97\xe3\xd7\x11\x2f\xe6\x13\
-\x13\xa1\xb2\x35\x17\xd1\x6c\x5e\xd4\xcd\xd6\x8e\xc3\x4d\x47\x24\
-\xd6\xbf\xa4\x0f\x13\x13\x18\xc0\x40\xc8\xd8\xfa\x45\x7c\x62\x4a\
-\x15\x02\x50\xb6\xaa\x2c\x47\x3c\x65\x6a\xda\x89\xc9\xd2\x38\xcd\
-\x86\x0b\x9a\xd0\x59\xb9\xd9\x56\x25\x59\x95\xca\xa8\x9e\x09\x58\
-\x01\xb2\x90\xe1\x31\x47\x10\xc0\x07\x06\x02\xd0\x1f\x02\x32\x04\
-\xd8\xbc\x93\x23\xc6\x0b\x51\x50\x4e\x0b\xaa\x46\x6f\x26\xae\x7a\
-\x02\xb7\xf4\x90\x3e\x72\xaf\x47\x7f\xbe\xff\xb0\x69\xc9\x36\x63\
-\xa3\xbf\xd3\xec\xcb\xb6\x29\x5f\xca\x81\x4e\xd3\x95\x5c\xa9\x79\
-\x57\x77\x8f\x39\x1b\x49\xbd\x17\xb4\xb8\x8b\x16\x32\x53\xb5\xb1\
-\x3f\x49\x7d\xc7\x76\x63\xd8\x71\x2e\x1e\x97\xa2\x09\xba\x09\x9b\
-\x89\xcd\xc6\x69\x59\xe7\x6c\x11\xa9\x41\xf6\xc7\x22\x8a\xe3\xdf\
-\xd4\x24\xa6\x61\xd7\x79\xda\xdb\x44\xb7\xcb\xb0\x5b\xeb\x18\xdb\
-\xd5\x32\xcb\x56\x2d\xb1\xd2\x97\xab\x5d\xd9\xc4\x58\xca\x88\xa5\
-\xd8\x13\xf3\x75\x58\xbe\xcc\x8d\x61\x9a\x66\x5c\x64\x95\x09\x97\
-\xaf\x1d\x53\x2a\xd9\x90\xb9\xc9\xad\xde\x76\xa7\xd3\x7f\x05\x2b\
-\x8a\x34\x16\x19\x4d\xd4\x7a\x20\xd8\x5a\x66\x99\x64\x46\xd7\xbf\
-\x8a\xb8\xd0\x19\xea\x5d\x56\xe9\xd5\x13\x69\xad\xf9\x9c\xf2\x74\
-\x2d\x01\xdc\x37\xae\xa3\x44\x1a\x86\x5b\x5c\x21\x42\xde\x11\x8f\
-\x0a\x61\x1f\xfb\x66\x03\x49\xad\x53\x50\x45\xce\xe7\xe9\x5a\xad\
-\x64\x62\x86\x34\xce\xc5\x7e\xb4\xa7\x34\x5d\xa8\x25\x58\x3e\x92\
-\x6f\x67\xdf\xcc\xd4\x19\xb0\x90\x1f\x60\x0c\xc1\x41\xb2\x4c\xe9\
-\x08\x8f\x24\x28\x47\x7a\x3e\x39\x62\x54\x03\xdd\x63\xc6\x05\x7d\
-\x88\x16\xd1\x93\xe0\x1a\xf1\xd8\x2a\xcb\xe4\xc9\x1a\xc6\xf4\x51\
-\x64\xd5\x69\xdc\xb0\x35\xe6\x22\xcc\x1b\x29\x54\xcb\xc5\xd5\x59\
-\x91\xf5\x48\xd0\xec\xd7\x8c\xf2\x48\x0e\xaf\x68\x56\x7e\xbb\x16\
-\x17\xd5\xcb\x94\x45\x07\x36\x9c\xc8\x16\x9a\x98\xa4\x6e\x3d\xc2\
-\x9d\x16\x6a\x7b\xce\xb6\xc1\x3e\x27\x51\x21\xeb\xe9\x2a\x17\xd9\
-\x47\x55\x93\xfe\x48\x3e\xcb\x1d\xa8\xcf\x41\x5e\xa4\xcb\xe6\x5c\
-\xa5\x61\x98\x8b\xa2\x59\x72\xb9\x79\xd2\x63\x58\xd1\x2c\x08\x24\
-\xbe\xdf\xb2\x96\xe5\x48\x7a\xa0\xf6\xe1\xd2\x07\xb5\x1c\xe8\x1c\
-\x8b\xcb\x39\xe4\x84\x69\xe2\xba\x27\xc4\xf5\xf0\xd1\xb8\x98\x7b\
-\xfe\x14\x6a\xe2\xe2\x13\xe2\xfa\xde\xb1\xb0\x88\xfa\x84\xe9\xc2\
-\x92\xaf\x87\x85\xc7\x82\x02\x48\x38\x9b\x6a\x82\x42\x50\x47\x1d\
-\xdb\xbb\xa8\x9c\x4f\x96\x7b\x29\x59\x5e\xdf\x68\x79\xd0\xc3\x3a\
-\x4d\x25\x35\x57\xb1\x25\x5c\x19\x58\xc7\x96\x5c\xd2\x55\x70\x09\
-\x1f\x0a\xa4\x0d\xec\x5f\x45\x97\x20\x0e\x80\x42\x17\x37\xb8\x02\
-\x2f\x81\x1d\x04\x74\x51\x11\xfc\x86\x78\xe1\x5d\xbc\xbc\xef\xa6\
-\x72\x4d\x05\x0b\x00\xd0\x2d\xff\x94\x12\xd3\x81\x57\x20\x18\x01\
-\x54\x17\xf8\x94\x1a\xd3\x81\x97\x0f\xa7\x81\xc3\x75\x81\x4f\xa8\
-\x32\x1d\x78\x39\x1e\x75\x49\xa8\x89\xeb\x80\xeb\xaa\x57\xc8\x74\
-\x32\x38\xe8\x1b\xe2\x45\x2e\xc6\xab\xef\xf2\xc5\x20\x63\x5a\xbe\
-\x9c\x53\xaa\x4c\xd7\xa5\x31\x64\x5c\x1f\xf8\x94\x2a\xd3\xc1\x57\
-\x08\x8e\x65\x7c\x42\x99\xe9\xe0\x2b\x94\x57\xf2\xd6\x46\xb5\xae\
-\xe5\xf0\x0a\xbe\x42\xe4\xb1\x1d\x91\xea\xa8\xce\x85\x7c\xd5\xb7\
-\x73\x69\x1c\xcb\xdb\xef\x89\x49\xe3\x35\x7d\xcc\x1b\xa4\xd4\xf3\
-\xe3\x68\x9e\x09\xf9\xbc\xfb\xba\xa3\xd0\x69\x40\xf5\x02\x70\x22\
-\x6e\x47\x70\xde\x05\x78\x0f\x6e\x6d\xb5\xfc\x24\x9f\x04\x72\xf5\
-\xe4\x24\x9f\xd2\x68\x91\x45\x0f\x6f\x80\x45\x40\x00\x30\x74\x83\
-\x01\x50\xef\xa6\x09\x2d\x0f\xf9\x1e\x20\xb0\xf9\xf4\xb6\x11\xb1\
-\x17\xb9\x50\xb7\x5c\xe8\x12\xb9\x5e\xae\x5a\xa4\x5b\x2d\xb7\x67\
-\xb8\x0e\x6b\xe5\x77\xae\x97\xdb\xad\x17\xee\x97\xae\x67\x27\xd7\
-\x57\x6a\x17\xf9\xbf\x76\x9d\x5e\xbb\x30\xb8\xa8\xd4\xbf\x5c\xb5\
-\x3a\x6b\x17\x06\x17\x55\xfa\x1f\xb6\x76\x61\x70\x51\xad\x7f\xc1\
-\x72\x75\xd6\x2e\x0c\x2e\x2a\xf5\x3f\x6e\xed\xba\xa8\xd4\xbf\x5c\
-\xb5\xba\x6b\x17\xec\xfb\xa6\xfe\xd9\x1d\xc6\xee\xda\x05\x7b\xbe\
-\xab\x7f\x76\x72\x75\xd7\x2e\xd8\xf7\x6d\xfd\x73\x93\xab\xbb\x76\
-\xc1\x9e\xef\xea\x9f\x9b\x5a\x5f\xa9\x5d\x7d\xdf\xd4\x3f\xbb\xc3\
-\xd8\x5d\xbb\x50\xcf\x77\xf5\xbd\xc9\x35\xb6\xd5\x2f\x1d\xcb\x4f\
-\xb3\xcd\x14\xc5\x41\x60\x68\x21\x07\x97\x31\x37\x9f\xa0\x05\x21\
-\xda\xfc\xfb\x76\x9b\x97\xd2\x64\x46\x48\xf5\xab\xcb\x59\x95\x6d\
-\x2b\x58\x96\x16\xb4\x10\x6f\xa0\x37\x20\x03\xf2\x76\x47\xcd\x99\
-\x87\x9b\x2f\x52\x97\xb4\x98\x57\x46\xf5\xa5\xde\x63\x2c\x26\x66\
-\x18\xc5\xf1\x68\x95\xc5\x6f\xf6\x37\xc6\x0b\x40\x13\xcb\x30\xd4\
-\x1f\x1d\x18\x64\x00\x8d\x7b\xc3\x37\xe6\xf2\xe7\x67\xc3\x1f\xf8\
-\x06\x28\xdf\xaa\xff\x9f\x96\xb3\x9a\x5a\xcd\xe6\x92\x76\x67\x83\
-\x49\x92\x48\x4c\xd2\x6c\xc8\x56\xd9\x3d\x2d\x56\x99\x50\xdf\xe7\
-\xb6\xbe\x92\x3c\x37\x53\xb4\x97\xe9\xef\x65\x46\xed\x0c\xe1\x80\
-\x94\x59\x3f\x69\xb2\xf4\xc0\x6d\xb2\x74\x35\x7a\x92\x52\x4f\xda\
-\xca\xd4\x1f\x0c\x8f\xa4\x89\x6e\x93\x26\x3e\x48\x53\x89\xb7\x9b\
-\xa2\x6f\xfc\x65\x10\xed\x96\x7b\xee\x05\x59\x8e\xed\xd9\x3e\xdf\
-\xdb\x3c\xb7\x7f\x39\x31\x02\x96\xbf\x0b\x36\xbe\x02\x6c\x72\x35\
-\xd8\xde\x4d\xc0\xc6\x60\xff\x08\x9e\x07\x36\xbe\x09\xd8\x18\xec\
-\x1f\xbf\x33\xc1\xc6\x37\x01\x5b\x3e\xc1\x5f\x05\x36\xee\x0b\x6c\
-\xa7\xb9\x04\x1d\x16\x75\x57\x57\xd4\xfd\x8b\xd9\x97\xcf\xe5\x57\
-\xb3\x8f\x6f\xc4\xfe\xfe\x29\x3d\x8f\x7d\xff\x36\xec\x43\xdd\x45\
-\xf2\x0c\xf6\xfd\xdb\xb0\x0f\x0f\x8f\xe8\x39\xec\xfb\xbd\xb1\xdf\
-\x81\x3e\x06\x1a\xf4\xc9\xe5\xe8\x43\xdd\xf5\xf7\x3c\xf4\xfd\xdb\
-\xa0\x0f\xf7\x0f\xe9\x79\xe8\x93\x1b\xa1\xaf\xbb\x8c\x9e\x81\x3e\
-\xb9\x0d\xfa\xe8\xf0\x84\x9e\x83\x3e\xb9\x02\xfd\xf2\xbf\xb1\xfa\
-\x93\xda\xbb\x57\xff\x01\x6d\x02\x15\x3b\
-\x00\x00\x00\xa3\
-\x00\
-\x00\x09\x38\x78\x9c\xeb\x0c\xf0\x73\xe7\xe5\x92\xe2\x62\x60\x60\
-\xe0\xf5\xf4\x70\x09\x62\x60\x60\x5c\xc2\xc0\xc0\x14\xc1\xc1\x06\
-\x14\xd1\xfd\x32\xe9\x14\x90\xe2\x2c\xf0\x88\x2c\x66\x60\x10\x2a\
-\x01\x61\xc6\x7b\x69\xf2\x15\x0c\x0c\x1c\xaf\x3c\x5d\x1c\x43\x2a\
-\xe6\xbc\xbd\x6a\xc8\x78\xc0\x80\xe7\xc0\x86\x35\x12\x87\xe7\x9f\
-\xe2\x5a\x6c\xa7\xc2\xf2\xef\xcf\xdb\x77\xf6\x0c\x1f\x6e\x54\xca\
-\x32\x30\x18\xb7\xb1\x38\xb4\x28\x32\x4e\x48\xf0\x60\x50\x91\x10\
-\x62\xe0\x04\x72\x9b\x46\xb9\xa3\xdc\x51\xee\x28\x77\x94\x3b\xca\
-\x1d\xe5\x8e\x72\x07\x39\xb7\x80\x91\xc5\x87\x6d\xf5\xcd\x67\x8b\
-\x6a\x80\x4d\x21\x06\x4f\x57\x3f\x97\x75\x4e\x09\x4d\x00\xf2\xfe\
-\xe3\x9e\
"
qt_resource_name = b"\
@@ -1305,59 +1374,66 @@ qt_resource_name = b"\
\x07\x03\x7d\xc3\
\x00\x69\
\x00\x6d\x00\x61\x00\x67\x00\x65\x00\x73\
-\x00\x0d\
-\x0b\x5d\x1f\x07\
-\x00\x63\
-\x00\x68\x00\x65\x00\x63\x00\x6b\x00\x6d\x00\x61\x00\x72\x00\x6b\x00\x2e\x00\x73\x00\x76\x00\x67\
\x00\x09\
\x08\x4e\x85\x07\
\x00\x62\
\x00\x6c\x00\x61\x00\x6e\x00\x6b\x00\x2e\x00\x70\x00\x6e\x00\x67\
-\x00\x0c\
-\x02\xea\x4d\x87\
-\x00\x4e\
-\x00\x6f\x00\x74\x00\x46\x00\x6f\x00\x75\x00\x6e\x00\x64\x00\x2e\x00\x70\x00\x6e\x00\x67\
-\x00\x09\
-\x09\x65\x83\xe7\
-\x00\x65\
-\x00\x72\x00\x72\x00\x6f\x00\x72\x00\x2e\x00\x73\x00\x76\x00\x67\
-\x00\x09\
-\x03\x65\x8e\x07\
-\x00\x63\
-\x00\x6f\x00\x6c\x00\x6f\x00\x72\x00\x2e\x00\x73\x00\x76\x00\x67\
\x00\x0f\
\x0a\xe2\xd1\x87\
\x00\x67\
\x00\x72\x00\x61\x00\x79\x00\x2d\x00\x73\x00\x68\x00\x61\x00\x64\x00\x6f\x00\x77\x00\x2e\x00\x70\x00\x6e\x00\x67\
+\x00\x09\
+\x03\x65\x8e\x07\
+\x00\x63\
+\x00\x6f\x00\x6c\x00\x6f\x00\x72\x00\x2e\x00\x73\x00\x76\x00\x67\
+\x00\x0c\
+\x02\xea\x4d\x87\
+\x00\x4e\
+\x00\x6f\x00\x74\x00\x46\x00\x6f\x00\x75\x00\x6e\x00\x64\x00\x2e\x00\x70\x00\x6e\x00\x67\
+\x00\x0d\
+\x0b\x5d\x1f\x07\
+\x00\x63\
+\x00\x68\x00\x65\x00\x63\x00\x6b\x00\x6d\x00\x61\x00\x72\x00\x6b\x00\x2e\x00\x73\x00\x76\x00\x67\
+\x00\x0b\
+\x08\x69\x14\x87\
+\x00\x51\
+\x00\x4d\x00\x50\x00\x6c\x00\x61\x00\x79\x00\x32\x00\x2e\x00\x73\x00\x76\x00\x67\
+\x00\x09\
+\x09\x65\x83\xe7\
+\x00\x65\
+\x00\x72\x00\x72\x00\x6f\x00\x72\x00\x2e\x00\x73\x00\x76\x00\x67\
"
qt_resource_struct_v1 = b"\
\x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x01\
-\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\x02\
-\x00\x00\x00\x4a\x00\x00\x00\x00\x00\x01\x00\x00\x02\x0e\
-\x00\x00\x00\x80\x00\x01\x00\x00\x00\x01\x00\x00\x48\xdf\
-\x00\x00\x00\x32\x00\x01\x00\x00\x00\x01\x00\x00\x01\x59\
-\x00\x00\x00\x68\x00\x00\x00\x00\x00\x01\x00\x00\x47\x25\
-\x00\x00\x00\x98\x00\x01\x00\x00\x00\x01\x00\x00\x4e\xfe\
-\x00\x00\x00\x12\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\
+\x00\x00\x00\x00\x00\x02\x00\x00\x00\x07\x00\x00\x00\x02\
+\x00\x00\x00\x66\x00\x00\x00\x00\x00\x01\x00\x00\x07\x7b\
+\x00\x00\x00\x4e\x00\x01\x00\x00\x00\x01\x00\x00\x01\x5c\
+\x00\x00\x00\x12\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\
+\x00\x00\x00\xa4\x00\x00\x00\x00\x00\x01\x00\x00\x4d\xeb\
+\x00\x00\x00\xc0\x00\x00\x00\x00\x00\x01\x00\x00\x52\x16\
+\x00\x00\x00\x2a\x00\x01\x00\x00\x00\x01\x00\x00\x00\xb5\
+\x00\x00\x00\x84\x00\x00\x00\x00\x00\x01\x00\x00\x4c\x92\
"
qt_resource_struct_v2 = b"\
\x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x01\
\x00\x00\x00\x00\x00\x00\x00\x00\
-\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\x02\
+\x00\x00\x00\x00\x00\x02\x00\x00\x00\x07\x00\x00\x00\x02\
\x00\x00\x00\x00\x00\x00\x00\x00\
-\x00\x00\x00\x4a\x00\x00\x00\x00\x00\x01\x00\x00\x02\x0e\
+\x00\x00\x00\x66\x00\x00\x00\x00\x00\x01\x00\x00\x07\x7b\
\x00\x00\x01\x5f\xb9\x9f\xca\xd0\
-\x00\x00\x00\x80\x00\x01\x00\x00\x00\x01\x00\x00\x48\xdf\
+\x00\x00\x00\x4e\x00\x01\x00\x00\x00\x01\x00\x00\x01\x5c\
\x00\x00\x01\x61\xf1\x68\x3f\x43\
-\x00\x00\x00\x32\x00\x01\x00\x00\x00\x01\x00\x00\x01\x59\
+\x00\x00\x00\x12\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\
\x00\x00\x01\x60\x5a\x92\x05\xe5\
-\x00\x00\x00\x68\x00\x00\x00\x00\x00\x01\x00\x00\x47\x25\
+\x00\x00\x00\xa4\x00\x00\x00\x00\x00\x01\x00\x00\x4d\xeb\
+\x00\x00\x01\x61\x94\x8b\x8c\xc8\
+\x00\x00\x00\xc0\x00\x00\x00\x00\x00\x01\x00\x00\x52\x16\
\x00\x00\x01\x5f\x7e\xcc\x7f\x20\
-\x00\x00\x00\x98\x00\x01\x00\x00\x00\x01\x00\x00\x4e\xfe\
+\x00\x00\x00\x2a\x00\x01\x00\x00\x00\x01\x00\x00\x00\xb5\
\x00\x00\x01\x5f\xf0\x1d\xc2\x38\
-\x00\x00\x00\x12\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\
+\x00\x00\x00\x84\x00\x00\x00\x00\x00\x01\x00\x00\x4c\x92\
\x00\x00\x01\x5f\x7e\xcc\x7f\x20\
"