diff --git a/chat_widget.py b/chat_widget.py index 6d0e77e..59ae1c2 100644 --- a/chat_widget.py +++ b/chat_widget.py @@ -26,14 +26,103 @@ def setupUi(self, Form): font.setFamily("Consolas") font.setPointSize(10) self.chat_text.setFont(font) - self.chat_text.setStyleSheet("selection-background-color: rgb(161, 75, 0);") + self.chat_text.setStyleSheet("selection-background-color: rgb(161, 75, 0);\n" +"\n" +"QScrollBar::handle {\n" +"border-syle: outset;\n" +"background: #444444;\n" +"border-width: 2px;\n" +"border-radius: 10px;\n" +"}\n" +"\n" +"QScrollBar::handle::pressed {\n" +"background: rgb(161, 75, 0);\n" +"}\n" +"\n" +"QScrollBar::add-page {\n" +"background-color: rgb(43, 43, 43);\n" +"}") + self.chat_text.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarAsNeeded) self.chat_text.setUndoRedoEnabled(False) self.chat_text.setReadOnly(True) self.chat_text.setObjectName("chat_text") self.horizontalLayout_4.addWidget(self.chat_text) + self.verticalScrollBar = QtWidgets.QScrollBar(Form) + self.verticalScrollBar.setStyleSheet("QScrollBar:vertical {\n" +" border: 0px solid;\n" +" background: rgb(43, 43, 43);\n" +" width: 15px;\n" +" margin: 16px 0 16px 0;\n" +" }\n" +" QScrollBar::handle:vertical {\n" +" background: rgb(161, 75, 0);\n" +" border-width: 2px;\n" +" border-radius: 10px;\n" +" }\n" +" QScrollBar::add-line:vertical {\n" +" border: 0px solid;\n" +" background-color: rgb(43, 43, 43);\n" +" height: 16px;\n" +" subcontrol-position: bottom;\n" +" subcontrol-origin: margin;\n" +" image: url(:/arrows/up_arrow_dark.png);\n" +" }\n" +"\n" +" QScrollBar::sub-line:vertical {\n" +" border: 0px solid;\n" +" background: rgb(43, 43, 43);\n" +" height: 16px;\n" +" subcontrol-position: top;\n" +" subcontrol-origin: margin;\n" +" image: url(:/arrows/down_arrow_dark.png);\n" +" }\n" +"\n" +" QScrollBar::add-page:vertical, QScrollBar::sub-page:vertical {\n" +" background: none;\n" +" }") + self.verticalScrollBar.setOrientation(QtCore.Qt.Vertical) + self.verticalScrollBar.setObjectName("verticalScrollBar") + self.horizontalLayout_4.addWidget(self.verticalScrollBar) + self.verticalScrollBar_2 = QtWidgets.QScrollBar(Form) + self.verticalScrollBar_2.setStyleSheet("QScrollBar:vertical {\n" +" border: 0px solid;\n" +" background: rgb(43, 43, 43);\n" +" width: 15px;\n" +" margin: 16px 0 16px 0;\n" +" }\n" +" QScrollBar::handle:vertical {\n" +" background: rgb(161, 75, 0);\n" +" border-width: 2px;\n" +" border-radius: 10px;\n" +" }\n" +" QScrollBar::add-line:vertical {\n" +" border: 0px solid;\n" +" background-color: rgb(43, 43, 43);\n" +" height: 16px;\n" +" subcontrol-position: bottom;\n" +" subcontrol-origin: margin;\n" +" image: url(:/arrows/up_arrow_dark.png);\n" +" }\n" +"\n" +" QScrollBar::sub-line:vertical {\n" +" border: 0px solid;\n" +" background: rgb(43, 43, 43);\n" +" height: 16px;\n" +" subcontrol-position: top;\n" +" subcontrol-origin: margin;\n" +" image: url(:/arrows/down_arrow_dark.png);\n" +" }\n" +"\n" +" QScrollBar::add-page:vertical, QScrollBar::sub-page:vertical {\n" +" background: none;\n" +" }") + self.verticalScrollBar_2.setOrientation(QtCore.Qt.Vertical) + self.verticalScrollBar_2.setObjectName("verticalScrollBar_2") + self.horizontalLayout_4.addWidget(self.verticalScrollBar_2) self.members_list = QtWidgets.QTreeWidget(Form) self.members_list.setMinimumSize(QtCore.QSize(144, 0)) self.members_list.setMaximumSize(QtCore.QSize(144, 16777215)) + self.members_list.setStyleSheet("selection-background-color: rgb(161, 75, 0);") self.members_list.setHorizontalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOff) self.members_list.setSizeAdjustPolicy(QtWidgets.QAbstractScrollArea.AdjustToContents) self.members_list.setEditTriggers(QtWidgets.QAbstractItemView.DoubleClicked|QtWidgets.QAbstractItemView.SelectedClicked) @@ -44,6 +133,7 @@ def setupUi(self, Form): self.members_list.setExpandsOnDoubleClick(True) self.members_list.setObjectName("members_list") self.members_list.header().setVisible(False) + self.members_list.header().setStretchLastSection(True) self.horizontalLayout_4.addWidget(self.members_list) self.verticalLayout.addLayout(self.horizontalLayout_4) self.verticalLayout_3 = QtWidgets.QVBoxLayout() @@ -76,3 +166,4 @@ def retranslateUi(self, Form): self.members_list.headerItem().setText(0, _translate("Form", "Members")) self.message_text.setText(_translate("Form", "На данный момент отправить сообщение нельзя")) self.send_msg_btn.setText(_translate("Form", "Отправить")) +import resources_rc diff --git a/chat_widget.ui b/chat_widget.ui index 32067b3..2d7b465 100644 --- a/chat_widget.ui +++ b/chat_widget.ui @@ -29,7 +29,25 @@ color: rgb(255, 255, 255); - selection-background-color: rgb(161, 75, 0); + selection-background-color: rgb(161, 75, 0); + +QScrollBar::handle { +border-syle: outset; +background: #444444; +border-width: 2px; +border-radius: 10px; +} + +QScrollBar::handle::pressed { +background: rgb(161, 75, 0); +} + +QScrollBar::add-page { +background-color: rgb(43, 43, 43); +} + + + Qt::ScrollBarAsNeeded false @@ -39,6 +57,88 @@ color: rgb(255, 255, 255); + + + + QScrollBar:vertical { + border: 0px solid; + background: rgb(43, 43, 43); + width: 15px; + margin: 16px 0 16px 0; + } + QScrollBar::handle:vertical { + background: rgb(161, 75, 0); + border-width: 2px; + border-radius: 10px; + } + QScrollBar::add-line:vertical { + border: 0px solid; + background-color: rgb(43, 43, 43); + height: 16px; + subcontrol-position: bottom; + subcontrol-origin: margin; + image: url(:/arrows/up_arrow_dark.png); + } + + QScrollBar::sub-line:vertical { + border: 0px solid; + background: rgb(43, 43, 43); + height: 16px; + subcontrol-position: top; + subcontrol-origin: margin; + image: url(:/arrows/down_arrow_dark.png); + } + + QScrollBar::add-page:vertical, QScrollBar::sub-page:vertical { + background: none; + } + + + Qt::Vertical + + + + + + + QScrollBar:vertical { + border: 0px solid; + background: rgb(43, 43, 43); + width: 15px; + margin: 16px 0 16px 0; + } + QScrollBar::handle:vertical { + background: rgb(161, 75, 0); + border-width: 2px; + border-radius: 10px; + } + QScrollBar::add-line:vertical { + border: 0px solid; + background-color: rgb(43, 43, 43); + height: 16px; + subcontrol-position: bottom; + subcontrol-origin: margin; + image: url(:/arrows/up_arrow_dark.png); + } + + QScrollBar::sub-line:vertical { + border: 0px solid; + background: rgb(43, 43, 43); + height: 16px; + subcontrol-position: top; + subcontrol-origin: margin; + image: url(:/arrows/down_arrow_dark.png); + } + + QScrollBar::add-page:vertical, QScrollBar::sub-page:vertical { + background: none; + } + + + Qt::Vertical + + + @@ -53,6 +153,9 @@ color: rgb(255, 255, 255); 16777215 + + selection-background-color: rgb(161, 75, 0); + Qt::ScrollBarAlwaysOff @@ -80,6 +183,9 @@ color: rgb(255, 255, 255); false + + true + Members @@ -141,6 +247,8 @@ color: rgb(79, 79, 79); - + + + diff --git a/down_arrow_dark.png b/down_arrow_dark.png new file mode 100644 index 0000000..9b21500 Binary files /dev/null and b/down_arrow_dark.png differ diff --git a/down_arrow_light.png b/down_arrow_light.png new file mode 100644 index 0000000..a2dd547 Binary files /dev/null and b/down_arrow_light.png differ diff --git a/flight.py b/flight.py index 73e51d4..53185fd 100644 --- a/flight.py +++ b/flight.py @@ -16,14 +16,15 @@ from dlg003 import Ui_Dialog as swiz_003 from dlg004 import Ui_Dialog as aboutprg from dlg005 import Ui_Dialog as ext_sett +from progresswindow import Ui_Dialog as progrdlg from chat_widget import Ui_Form as chatwidg from mention_notif import Ui_Dialog as mention_notif_window settings = configparser.ConfigParser() profiles = configparser.ConfigParser() -version = '1.0.1' -date = '2021-09-01' +version = '0.5.0 Beta' +date = '2021-09-04' init_required = 1 @@ -112,10 +113,22 @@ def run(self): self.socket.send(bytes("NICK " + self.username + "\n", self.encoding)) while True: - self.text=self.socket.recv(2040) + self.text=self.socket.recv(8192) self.ping = time.time() - self.started.emit(''.join(self.text.decode(self.encoding).split(":")), self.server, self.port, self.username, self.encoding, self.quiting_msg, self.ping, self.socket) - msg_list = self.text.decode(self.encoding).splitlines() + try: + for line in self.text.decode(self.encoding).splitlines(): + if ' '.join(msg_line.split(' ')[0:2]).find('321') != -1: + self.started.emit('{0}{1}'.format('Please wait...', ':'.join(line.split(":")[2:])), self.server, self.port, self.username, self.encoding, self.quiting_msg, self.ping, self.socket) + if ' '.join(msg_line.split(' ')[0:2]).find('322') != -1: + time.sleep(0.2) + self.started.emit('{0}{1}'.format(''.join(line.split(":")[:2]), ':'.join(line.split(":")[2:])), self.server, self.port, self.username, self.encoding, self.quiting_msg, self.ping, self.socket) + except Exception as e: + if not str(e).startswith('\'utf-8\' codec can\'t decode byte'): + self.started.emit(''.join(self.text.decode(self.encoding).split(":")), self.server, self.port, self.username, self.encoding, self.quiting_msg, self.ping, self.socket) + try: + msg_list = self.text.decode(self.encoding).splitlines() + except: + msg_list = ['Oops'] for msg_line in msg_list: if msg_line.startswith('PING'): ping_msg = msg_line.split(' ') @@ -124,7 +137,6 @@ def run(self): elif msg_line.startswith(':{0} {1}'.format(self.server, '001')) and profiles[self.parent.ui.tableWidget.item(self.parent.ui.tableWidget.currentRow(), 0).text()]['AuthMethod'] == 'NickServ': self.socket.send(bytes("PRIVMSG nickserv identify {0} {1}\r\n".format(self.username, self.password), self.encoding)) elif msg_line.startswith('ERROR'): - print(msg_line) self.socket.close() tracemalloc.stop() elif msg_line.startswith(':{0} {1}'.format(self.server, 433)): @@ -135,6 +147,7 @@ def run(self): self.socket.send(bytes("NICK " + self.username + "\n", self.encoding)) except: pass + except Exception as e: exc_type, exc_value, exc_tb = sys.exc_info() ex = traceback.format_exception(exc_type, exc_value, exc_tb) @@ -169,6 +182,8 @@ def __init__(self, parent=None): profiles.read('profiles') print('Tinelix codename Flight {0} ({1})\nDone!'.format(version, date)) self.ui.tabs.addTab(self.child_widget, 'Thread') + self.child_widget.chat_text.setVerticalScrollBar(self.child_widget.verticalScrollBar) + self.child_widget.members_list.setVerticalScrollBar(self.child_widget.verticalScrollBar_2) self.child_widget.members_list.setVisible(False) try: font = QFont(settings['Main']['MsgFont'].split(', ')[0]) @@ -197,6 +212,8 @@ def __init__(self, parent=None): self.child_widget.members_list.setStyleSheet('selection-background-color: #ff7700') if self.child_widget.message_text.isEnabled() == True: self.child_widget.message_text.setStyleSheet('selection-background-color: #ff7700') + self.child_widget.verticalScrollBar.setStyleSheet('QScrollBar:vertical {\nborder: 0px solid;\nbackground: rgb(255, 255, 255);\nwidth: 15px;\nmargin: 16px 0 16px 0;\n}\nQScrollBar::handle:vertical {\nbackground: #ff7700;\nborder-width: 2px;\nborder-radius: 10px;\n}\n\nQScrollBar::add-line:vertical {\nborder: 0px solid;\nbackground-color: rgb(255, 255, 255);\nheight: 16px;\nsubcontrol-position: bottom;\nsubcontrol-origin: margin;\nimage: url(:/arrows/up_arrow_light.png);\n}\n\nQScrollBar::sub-line:vertical {\nborder: 0px solid;\nbackground: rgb(255, 255, 255);\nheight: 16px;\nsubcontrol-position: top;\nsubcontrol-origin: margin;\nimage: url(:/arrows/down_arrow_light.png);\n}\n\nQScrollBar::add-page:vertical, QScrollBar::sub-page:vertical {\nbackground: none;\n}') + self.child_widget.verticalScrollBar_2.setStyleSheet('QScrollBar:vertical {\nborder: 0px solid;\nbackground: rgb(255, 255, 255);\nwidth: 15px;\nmargin: 16px 0 16px 0;\n}\nQScrollBar::handle:vertical {\nbackground: #ff7700;\nborder-width: 2px;\nborder-radius: 10px;\n}\n\nQScrollBar::add-line:vertical {\nborder: 0px solid;\nbackground-color: rgb(255, 255, 255);\nheight: 16px;\nsubcontrol-position: bottom;\nsubcontrol-origin: margin;\nimage: url(:/arrows/up_arrow_light.png);\n}\n\nQScrollBar::sub-line:vertical {\nborder: 0px solid;\nbackground: rgb(255, 255, 255);\nheight: 16px;\nsubcontrol-position: top;\nsubcontrol-origin: margin;\nimage: url(:/arrows/down_arrow_light.png);\n}\n\nQScrollBar::add-page:vertical, QScrollBar::sub-page:vertical {\nbackground: none;\n}') else: self.ui.line.setStyleSheet('color: #4a4a4a') self.child.setStyleSheet('background-color: #313131;\ncolor: #ffffff;') @@ -207,6 +224,8 @@ def __init__(self, parent=None): self.child_widget.members_list.setStyleSheet('selection-background-color: #a14b00') if self.child_widget.message_text.isEnabled() == True: self.child_widget.message_text.setStyleSheet('selection-background-color: #a14b00') + self.child_widget.verticalScrollBar.setStyleSheet('QScrollBar:vertical {border: 0px solid;\nbackground: rgb(43, 43, 43);\nwidth: 15px;\nmargin: 16px 0 16px 0;\n}\nQScrollBar::handle:vertical {\nbackground: rgb(161, 75, 0);\nborder-width: 2px;\nborder-radius: 10px;\n}\n\nQScrollBar::add-line:vertical {\nborder: 0px solid;\nbackground-color: rgb(43, 43, 43);\nheight: 16px;\nsubcontrol-position: bottom;\nsubcontrol-origin: margin;\nimage: url(:/arrows/up_arrow_dark.png);\n}\n\nQScrollBar::sub-line:vertical {\nborder: 0px solid;\nbackground: rgb(43, 43, 43);\nheight: 16px;\nsubcontrol-position: top;\nsubcontrol-origin: margin;\nimage: url(:/arrows/down_arrow_dark.png);\n}\n\nQScrollBar::add-page:vertical, QScrollBar::sub-page:vertical {\nbackground: none;\n}') + self.child_widget.verticalScrollBar_2.setStyleSheet('QScrollBar:vertical {border: 0px solid;\nbackground: rgb(43, 43, 43);\nwidth: 15px;\nmargin: 16px 0 16px 0;\n}\nQScrollBar::handle:vertical {\nbackground: rgb(161, 75, 0);\nborder-width: 2px;\nborder-radius: 10px;\n}\n\nQScrollBar::add-line:vertical {\nborder: 0px solid;\nbackground-color: rgb(43, 43, 43);\nheight: 16px;\nsubcontrol-position: bottom;\nsubcontrol-origin: margin;\nimage: url(:/arrows/up_arrow_dark.png);\n}\n\nQScrollBar::sub-line:vertical {\nborder: 0px solid;\nbackground: rgb(43, 43, 43);\nheight: 16px;\nsubcontrol-position: top;\nsubcontrol-origin: margin;\nimage: url(:/arrows/down_arrow_dark.png);\n}\n\nQScrollBar::add-page:vertical, QScrollBar::sub-page:vertical {\nbackground: none;\n}') #swiz001 = SettingsWizard001() if settings.sections() == [] or profiles.sections == []: @@ -335,6 +354,8 @@ def change_theme(self): tab.setStyleSheet('background-color: #ffffff;\ncolor: #000000;') tab.chat_text.setStyleSheet('selection-background-color: #ff7700') tab.members_list.setStyleSheet('selection-background-color: #ff7700') + tab.verticalScrollBar.setStyleSheet('QScrollBar:vertical {\nborder: 0px solid;\nbackground: rgb(255, 255, 255);\nwidth: 15px;\nmargin: 16px 0 16px 0;\n}\nQScrollBar::handle:vertical {\nbackground: #ff7700;\nborder-width: 2px;\nborder-radius: 10px;\n}\n\nQScrollBar::add-line:vertical {\nborder: 0px solid;\nbackground-color: rgb(255, 255, 255);\nheight: 16px;\nsubcontrol-position: bottom;\nsubcontrol-origin: margin;\nimage: url(:/arrows/up_arrow_light.png);\n}\n\nQScrollBar::sub-line:vertical {\nborder: 0px solid;\nbackground: rgb(255, 255, 255);\nheight: 16px;\nsubcontrol-position: top;\nsubcontrol-origin: margin;\nimage: url(:/arrows/down_arrow_light.png);\n}\n\nQScrollBar::add-page:vertical, QScrollBar::sub-page:vertical {\nbackground: none;\n}') + tab.verticalScrollBar_2.setStyleSheet('QScrollBar:vertical {\nborder: 0px solid;\nbackground: rgb(255, 255, 255);\nwidth: 15px;\nmargin: 16px 0 16px 0;\n}\nQScrollBar::handle:vertical {\nbackground: #ff7700;\nborder-width: 2px;\nborder-radius: 10px;\n}\n\nQScrollBar::add-line:vertical {\nborder: 0px solid;\nbackground-color: rgb(255, 255, 255);\nheight: 16px;\nsubcontrol-position: bottom;\nsubcontrol-origin: margin;\nimage: url(:/arrows/up_arrow_light.png);\n}\n\nQScrollBar::sub-line:vertical {\nborder: 0px solid;\nbackground: rgb(255, 255, 255);\nheight: 16px;\nsubcontrol-position: top;\nsubcontrol-origin: margin;\nimage: url(:/arrows/down_arrow_light.png);\n}\n\nQScrollBar::add-page:vertical, QScrollBar::sub-page:vertical {\nbackground: none;\n}') if self.child_widget.message_text.isEnabled() == True: self.child_widget.message_text.setStyleSheet('selection-background-color: #ff7700') else: @@ -364,6 +385,8 @@ def change_theme(self): tab.setStyleSheet('background-color: #313131;\ncolor: #ffffff;') tab.chat_text.setStyleSheet('selection-background-color: #a14b00') tab.members_list.setStyleSheet('selection-background-color: #a14b00') + tab.verticalScrollBar.setStyleSheet('QScrollBar:vertical {border: 0px solid;\nbackground: rgb(43, 43, 43);\nwidth: 15px;\nmargin: 16px 0 16px 0;\n}\nQScrollBar::handle:vertical {\nbackground: rgb(161, 75, 0);\nborder-width: 2px;\nborder-radius: 10px;\n}\n\nQScrollBar::add-line:vertical {\nborder: 0px solid;\nbackground-color: rgb(43, 43, 43);\nheight: 16px;\nsubcontrol-position: bottom;\nsubcontrol-origin: margin;\nimage: url(:/arrows/up_arrow_dark.png);\n}\n\nQScrollBar::sub-line:vertical {\nborder: 0px solid;\nbackground: rgb(43, 43, 43);\nheight: 16px;\nsubcontrol-position: top;\nsubcontrol-origin: margin;\nimage: url(:/arrows/down_arrow_dark.png);\n}\n\nQScrollBar::add-page:vertical, QScrollBar::sub-page:vertical {\nbackground: none;\n}') + tab.verticalScrollBar_2.setStyleSheet('QScrollBar:vertical {border: 0px solid;\nbackground: rgb(43, 43, 43);\nwidth: 15px;\nmargin: 16px 0 16px 0;\n}\nQScrollBar::handle:vertical {\nbackground: rgb(161, 75, 0);\nborder-width: 2px;\nborder-radius: 10px;\n}\n\nQScrollBar::add-line:vertical {\nborder: 0px solid;\nbackground-color: rgb(43, 43, 43);\nheight: 16px;\nsubcontrol-position: bottom;\nsubcontrol-origin: margin;\nimage: url(:/arrows/up_arrow_dark.png);\n}\n\nQScrollBar::sub-line:vertical {\nborder: 0px solid;\nbackground: rgb(43, 43, 43);\nheight: 16px;\nsubcontrol-position: top;\nsubcontrol-origin: margin;\nimage: url(:/arrows/down_arrow_dark.png);\n}\n\nQScrollBar::add-page:vertical, QScrollBar::sub-page:vertical {\nbackground: none;\n}') if self.child_widget.message_text.isEnabled() == True: self.child_widget.message_text.setStyleSheet('selection-background-color: #a14b00') try: @@ -738,6 +761,9 @@ def __init__(self, parent=None): self.ui.del_profile_btn.setEnabled(False) self.ui.del_profile_btn.setStyleSheet('color: #4f4f4f') self.parent = parent + self.progr = ProgressDlg(self) + self.progr.ui.frame.setVisible(False) + self.progr.ui.additional_btn.clicked.connect(self.progress_additional) self.channel = None self.timer = QTimer() self.connected = False @@ -747,6 +773,7 @@ def __init__(self, parent=None): self.members = [] self.operators = [] self.owners = [] + self.channels = {} try: if settings['Main']['DarkTheme'] == 'Disabled': self.setStyleSheet('background-color: #ffffff;\ncolor: #000000;') @@ -808,6 +835,9 @@ def irc_connect(self): self.now = datetime.datetime.now() self.parent.child_widget.message_text.setText('') self.parent.child_widget.message_text.setEnabled(True) + self.parent.ui.join_item.setEnabled(True) + self.parent.ui.msg_history.setEnabled(True) + self.parent.ui.join_item.triggered.connect(self.join_channel) if settings.sections() != [] and settings['Main']['DarkTheme'] == 'Disabled': self.parent.child_widget.message_text.setStyleSheet('selection-background-color: rgb(255, 119, 0); color: #000000') else: @@ -1002,8 +1032,11 @@ def started(self, status, server, port, nickname, encoding, quiting_msg, ping, s tab = self.parent.ui.tabs.widget(i) tab.members_list.clear() tab.members_list.addTopLevelItems([owners_list, operators_list, members_list]) + operators_list.setIcon(0, QIcon(':/icons/operator_icon.png')) operators_list.setExpanded(True) + members_list.setIcon(0, QIcon(':/icons/member_icon.png')) members_list.setExpanded(True) + owners_list.setIcon(0, QIcon(':/icons/owner_icon.png')) owners_list.setExpanded(True) self.members = [] self.operators = [] @@ -1012,9 +1045,9 @@ def started(self, status, server, port, nickname, encoding, quiting_msg, ping, s exc_type, exc_value, exc_tb = sys.exc_info() ex = traceback.format_exception(exc_type, exc_value, exc_tb) print("\n".join(ex)) - elif msg_line.startswith('{0} {1}'.format(self.server, 366)): + elif ' '.join(msg_line.split(' ')[0:2]).find('366') != -1: pass - elif msg_line.startswith('{0} {1}'.format(self.server, 372)): + elif ' '.join(msg_line.split(' ')[0:2]).find('372') != -1: tab = self.parent.ui.tabs.widget(self.parent.ui.tabs.currentIndex()) try: if settings['Main']['MsgBacklight'] == 'Disabled': @@ -1023,7 +1056,8 @@ def started(self, status, server, port, nickname, encoding, quiting_msg, ping, s tab.chat_text.setHtml('{0}\nMOTD: {1}'.format(tab.chat_text.toHtml(), " ".join(msg_line.split(' ')[3:]))) except: tab.chat_text.setHtml('{0}\nMOTD: {1}'.format(tab.chat_text.toHtml(), "".join(" ".join(msg_line.split(' ')[3:]).splitlines()[0]))) - elif msg_line.startswith('{0} {1}'.format(self.server, 371)): + tab.chat_text.moveCursor(QTextCursor.End) + elif ' '.join(msg_line.split(' ')[0:2]).find('371') != -1: tab = self.parent.ui.tabs.widget(self.parent.ui.tabs.currentIndex()) try: if settings['Main']['MsgBacklight'] == 'Disabled': @@ -1032,7 +1066,8 @@ def started(self, status, server, port, nickname, encoding, quiting_msg, ping, s tab.chat_text.setHtml('{0}\nInfo: {1}'.format(tab.chat_text.toHtml(), " ".join(msg_line.split(' ')[3:]))) except: tab.chat_text.setHtml('{0}\nInfo: {1}'.format(tab.chat_text.toHtml(), "".join(" ".join(msg_line.split(' ')[3:]).splitlines()[0]))) - elif msg_line.startswith('{0} {1}'.format(self.server, 671)): + tab.chat_text.moveCursor(QTextCursor.End) + elif ' '.join(msg_line.split(' ')[0:2]).find('671') != -1: tab = self.parent.ui.tabs.widget(self.parent.ui.tabs.currentIndex()) try: if settings['Main']['MsgBacklight'] == 'Disabled': @@ -1041,29 +1076,59 @@ def started(self, status, server, port, nickname, encoding, quiting_msg, ping, s tab.chat_text.setHtml('{0}\n{1} using a TLS/SSL connection.'.format(tab.chat_text.toHtml(), " ".join(msg_line.split(' ')[3]))) except: tab.chat_text.setHtml('{0}\n{1} using a TLS/SSL connection.'.format(tab.chat_text.toHtml(), " ".join(msg_line.split(' ')[3]))) - elif msg_line.startswith('{0} {1}'.format(self.server, 318)): + tab.chat_text.moveCursor(QTextCursor.End) + elif ' '.join(msg_line.split(' ')[0:2]).find('318') != -1: pass - elif msg_line.startswith('{0} {1}'.format(self.server, 321)): + elif ' '.join(msg_line.split(' ')[0:2]).find('321') != -1: pass - elif msg_line.startswith('{0} {1}'.format(self.server, 374)): + elif ' '.join(msg_line.split(' ')[0:2]).find('374') != -1: pass - elif msg_line.startswith('{0} {1}'.format(self.server, 322)): - for i in range(self.parent.ui.tabs.count()): - if self.parent.ui.tabs.tabText(i) == self.parent.ui.tabs.tabText(self.parent.ui.tabs.currentIndex()): - tab = self.parent.ui.tabs.widget(self.parent.ui.tabs.currentIndex()) - try: - if settings['Main']['MsgBacklight'] == 'Disabled': - tab.chat_text.setHtml('{0}{1}
Topic: {2}
Members: {3}
------------------------------------'.format(tab.chat_text.toHtml(), msg_line.split(' ')[3], " ".join(msg_line.split(' ')[5:]).replace('http//', 'http://').replace('https//', 'https://').replace('ftp//', 'ftp://'), msg_line.split(' ')[4])) - else: - tab.chat_text.setHtml('{0}{1}
Topic: {2}
Members: {3}
-------------------------------------'.format(tab.chat_text.toHtml(), msg_line.split(' ')[3], " ".join(msg_line.split(' ')[5:]).replace('http//', 'http://').replace('https//', 'https://').replace('ftp//', 'ftp://'), msg_line.split(' ')[4])) - except: - tab.chat_text.setHtml('{0}{1}
Topic: {2}
Members: {3}
------------------------------------'.format(tab.chat_text.toHtml(), msg_line.split(' ')[3], " ".join(msg_line.split(' ')[5:]).replace('http//', 'http://').replace('https//', 'https://').replace('ftp//', 'ftp://'), msg_line.split(' ')[4])) - self.parent.ui.tabs.widget(self.parent.ui.tabs.currentIndex()).chat_text.moveCursor(QTextCursor.End) - elif msg_line.startswith('{0} {1}'.format(self.server, 376)): + elif ' '.join(msg_line.split(' ')[0:2]).find('322') != -1: + try: + tab = self.parent.ui.tabs.widget(self.parent.ui.tabs.currentIndex()) + if settings['Main']['DarkTheme'] == 'Disabled': + self.progr.setStyleSheet('background-color: #ffffff; color: #000000;') + self.progr.ui.progressBar.setStyleSheet('selection-background-color: #ff7700;') + elif settings['Main']['DarkTheme'] == 'Enabled': + self.progr.setStyleSheet('background-color: #313131; color: #ffffff;') + self.progr.ui.progressBar.setStyleSheet('selection-background-color: rgb(161, 75, 0);') + self.progr.ui.value.setText(msg_line.split(' ')[3]) + if len(self.channels) > 10 and settings['Main']['Language'] == 'English': + self.progr.ui.progresstext.setText(en_US.get()['p_chanls'].format(len(self.channels))) + self.progr.setWindowTitle(en_US.get()['prgrwait']) + self.progr.ui.additional_btn.setText(en_US.get()['addit_bt']) + self.progr.ui.propertie.setText(en_US.get()['channelp']) + elif len(self.channels) > 10 and settings['Main']['Language'] == 'Russian': + self.progr.ui.progresstext.setText(ru_RU.get()['p_chanls'].format(len(self.channels))) + self.progr.ui.additional_btn.setText(ru_RU.get()['addit_bt']) + self.progr.setWindowTitle(ru_RU.get()['prgrwait']) + self.progr.ui.propertie.setText(ru_RU.get()['channelp']) + elif len(self.channels) == 10: + self.progr.exec_() + self.channels.update({msg_line.split(' ')[3]: {'name': msg_line.split(' ')[3], 'topic': " ".join(msg_line.split(' ')[5:]), 'members': int(msg_line.split(' ')[4])}}) + except Exception as e: + pass + elif ' '.join(msg_line.split(' ')[0:2]).find('323') != -1: + try: + self.progr.close() + except: + pass + for channel in self.channels: + tab = self.parent.ui.tabs.widget(self.parent.ui.tabs.currentIndex()) + try: + if settings['Main']['MsgBacklight'] == 'Disabled': + tab.chat_text.setHtml('{0}{1}
Topic: {2}
Members: {3}
------------------------------------'.format(tab.chat_text.toHtml(), self.channels[channel]['name'], self.channels[channel]['topic'], self.channels[channel]['members'])) + else: + tab.chat_text.setHtml('{0}{1}
Topic: {2}
Members: {3}
-------------------------------------'.format(tab.chat_text.toHtml(), self.channels[channel]['name'], self.channels[channel]['topic'], self.channels[channel]['members'])) + except: + tab.chat_text.setHtml('{0}{1}
Topic: {2}
Members: {3}
------------------------------------'.format(tab.chat_text.toHtml(), self.channels[channel]['name'], self.channels[channel]['topic'], self.channels[channel]['members'])) + self.channels = {} + self.parent.ui.tabs.widget(self.parent.ui.tabs.currentIndex()).chat_text.moveCursor(QTextCursor.End) + elif ' '.join(msg_line.split(' ')[0:2]).find('376') != -1: pass - elif msg_line.startswith('{0} {1}'.format(self.server, 378)): + elif ' '.join(msg_line.split(' ')[0:2]).find('378') != -1: pass - elif msg_line.startswith('{0} {1}'.format(self.server, 312)): + elif ' '.join(msg_line.split(' ')[0:2]).find('312') != -1: tab = self.parent.ui.tabs.widget(self.parent.ui.tabs.currentIndex()) try: if settings['Main']['MsgBacklight'] == 'Disabled': @@ -1073,7 +1138,7 @@ def started(self, status, server, port, nickname, encoding, quiting_msg, ping, s except: tab.chat_text.setHtml('{0}{1}'.format(tab.chat_text.toHtml(), " ".join(msg_line.split(' ')[4:]))) self.parent.ui.tabs.widget(self.parent.ui.tabs.currentIndex()).chat_text.moveCursor(QTextCursor.End) - elif msg_line.startswith('{0} {1}'.format(self.server, 311)): + elif ' '.join(msg_line.split(' ')[0:2]).find('311') != -1: tab = self.parent.ui.tabs.widget(self.parent.ui.tabs.currentIndex()) try: if settings['Main']['MsgBacklight'] == 'Disabled': @@ -1084,7 +1149,7 @@ def started(self, status, server, port, nickname, encoding, quiting_msg, ping, s except: tab.chat_text.setHtml('{0}{1} ({2}@{3})
Real name: {4}
------------------------------------'.format(tab.chat_text.toHtml(), msg_line.split(' ')[3], msg_line.split(' ')[4], msg_line.split(' ')[5], ' '.join(msg_line.split(' ')[7:]).splitlines()[0])) tab.chat_text.moveCursor(QTextCursor.End) - elif msg_line.startswith('{0} {1}'.format(self.server, 332)): + elif ' '.join(msg_line.split(' ')[0:2]).find('332') != -1: tab = self.parent.ui.tabs.widget(self.parent.ui.tabs.currentIndex()) try: if settings['Main']['MsgBacklight'] == 'Disabled': @@ -1097,7 +1162,7 @@ def started(self, status, server, port, nickname, encoding, quiting_msg, ping, s print("\n".join(ex)) tab.chat_text.setHtml('{0}\nTopic: {1}'.format(tab.chat_text.toHtml(), " ".join(msg_line.split(' ')[3:]).replace('http//', 'http://').replace('https//', 'https://'))) tab.chat_text.moveCursor(QTextCursor.End) - elif msg_line.startswith('{0} {1}'.format(self.server, 333)): + elif ' '.join(msg_line.split(' ')[0:2]).find('333') != -1: tab = self.parent.ui.tabs.widget(self.parent.ui.tabs.currentIndex()) try: if settings['Main']['MsgBacklight'] == 'Disabled': @@ -1110,7 +1175,7 @@ def started(self, status, server, port, nickname, encoding, quiting_msg, ping, s print("\n".join(ex)) tab.chat_text.setHtml('{0}\nTopic set by {1} ({2})'.format(tab.chat_text.toHtml(), msg_line.split(' ')[4], datetime.datetime.fromtimestamp(int(msg_line.split(' ')[5])).strftime('%Y-%m-%d %H:%M:%S'))) tab.chat_text.moveCursor(QTextCursor.End) - elif msg_line.startswith('{0} {1}'.format(self.server, 319)): + elif ' '.join(msg_line.split(' ')[0:2]).find('319') != -1: tab = self.parent.ui.tabs.widget(self.parent.ui.tabs.currentIndex()) try: if settings['Main']['MsgBacklight'] == 'Disabled': @@ -1123,7 +1188,7 @@ def started(self, status, server, port, nickname, encoding, quiting_msg, ping, s print("\n".join(ex)) tab.chat_text.setHtml('{0}\nMutual channels: {1}'.format(tab.chat_text.toHtml(), " ".join(msg_line.split(' ')[4:]).replace('@', '').replace('~', '').replace('&', ''))) tab.chat_text.moveCursor(QTextCursor.End) - elif msg_line.startswith('{0} {1}'.format(self.server, 317)): + elif ' '.join(msg_line.split(' ')[0:2]).find('317') != -1: tab = self.parent.ui.tabs.widget(self.parent.ui.tabs.currentIndex()) try: if settings['Main']['MsgBacklight'] == 'Disabled': @@ -1186,7 +1251,6 @@ def started(self, status, server, port, nickname, encoding, quiting_msg, ping, s exc_type, exc_value, exc_tb = sys.exc_info() ex = traceback.format_exception(exc_type, exc_value, exc_tb) print("\n".join(ex)) - self.parent.child_widget.chat_text.setHtml('{0}\n{1}'.format(self.parent.child_widget.chat_text.toHtml(), msg_line)) self.parent.child_widget.chat_text.moveCursor(QTextCursor.End) elif msg_line.find('JOIN') != -1: @@ -1259,7 +1323,6 @@ def started(self, status, server, port, nickname, encoding, quiting_msg, ping, s print("\n".join(ex)) self.parent.child_widget.chat_text.setHtml('{0}
{1}'.format(self.parent.child_widget.chat_text.toHtml(), msg_line)) self.parent.child_widget.chat_text.moveCursor(QTextCursor.End) - elif msg_line.find('QUIT') != -1: try: decoded_text = status.replace('!', ' ').split(' ') @@ -1310,6 +1373,7 @@ def started(self, status, server, port, nickname, encoding, quiting_msg, ping, s except: tab.chat_text.setHtml('{0}\n{1} changed nickname to {2}. ({3})'.format(tab.chat_text.toHtml(), decoded_text[0], " ".join(decoded_text[3:]).splitlines()[0], datetime.datetime.now().strftime("%H:%M:%S"))) tab.chat_text.moveCursor(QTextCursor.End) + self.socket.send(bytes('NAMES {0}\r\n'.format(self.parent.ui.tabs.tabText(i)), self.encoding)) try: if settings['Main']['Language'] == 'English': self.parent.ui.status_label.setText(en_US.get()['rdstatus']) @@ -1318,8 +1382,8 @@ def started(self, status, server, port, nickname, encoding, quiting_msg, ping, s except: pass except: - self.parent.child_widget.chat_text.setHtml('{0}\n{1}'.format(self.parent.child_widget.chat_text.toHtml(), msg_line)) - self.parent.child_widget.chat_text.moveCursor(QTextCursor.End) + if self.channels == {} and self.owners == [] and self.operators == [] and self.members == []: + self.parent.child_widget.chat_text.setHtml('{0}\n{1}'.format(self.parent.child_widget.chat_text.toHtml(), msg_line)) self.parent.child_widget.chat_text.moveCursor(QTextCursor.End) elif msg_line.startswith('Exception: '): self.parent.child_widget.chat_text.setHtml('{0}'.format(msg_line)) @@ -1350,12 +1414,11 @@ def started(self, status, server, port, nickname, encoding, quiting_msg, ping, s message_code.append(int(string)) if msg_line.index(string) > 1 and message_code != []: message_splited.append(string.splitlines()[0]) - if message_code != []: + if message_code != [] and (self.channels == {} and self.owners == [] and self.operators == [] and self.members == []): tab.chat_text.setHtml('{0}\nCode {1:03d}: {2}'.format(tab.chat_text.toHtml(), message_code[0], ' '.join(message_splited[2:]))) - else: + elif (self.channels == {} and self.owners == [] and self.operators == [] and self.members == []): tab.chat_text.setHtml('{0}\n{1}'.format(tab.chat_text.toHtml(), msg_line)) tab.chat_text.moveCursor(QTextCursor.End) - self.parent.child_widget.chat_text.moveCursor(QTextCursor.End) try: if not msg_line.startswith('Exception: ') and settings.sections() != [] and settings['Main']['MsgHistory'] == 'Enabled': if not os.path.exists('history'): @@ -1363,10 +1426,14 @@ def started(self, status, server, port, nickname, encoding, quiting_msg, ping, s for i in range(self.parent.ui.tabs.count()): with open('history/irc_{0}_{1}_{2}.html'.format(self.parent.ui.tabs.tabText(i), self.ui.tableWidget.item(self.ui.tableWidget.currentRow(), 0).text(), self.now.strftime('%Y-%m-%d_%H.%M.%S')), 'w+') as f: f.write(self.parent.ui.tabs.widget(i).chat_text.toHtml()) + self.parent.ui.msg_history.triggered.disconnect() + self.parent.ui.msg_history.triggered.connect(self.show_channel_history) else: for i in range(self.parent.ui.tabs.count()): with open('history/irc_{0}_{1}_{2}.html'.format(self.parent.ui.tabs.tabText(i), str(self.ui.tableWidget.item(self.ui.tableWidget.currentRow(), 0).text()), self.now.strftime('%Y-%m-%d_%H.%M.%S')), 'w+') as f: f.write(self.parent.ui.tabs.widget(i).chat_text.toHtml()) + self.parent.ui.msg_history.triggered.disconnect() + self.parent.ui.msg_history.triggered.connect(self.show_channel_history) except: pass @@ -1378,12 +1445,21 @@ def irc_reconnect_msg(self): self.parent.child_widget.chat_text.setHtml('{0}\nReconnecting...'.format(self.parent.child_widget.chat_text.toHtml())) self.timer_2.stop() + def progress_additional(self): + if self.progr.ui.frame.isVisible() == False: + self.progr.ui.frame.setVisible(True) + else: + self.progr.ui.frame.setVisible(False) + def send_msg(self): if self.parent.ui.tabs.widget(self.parent.ui.tabs.currentIndex()).message_text.text().startswith('/join '): msg_list = self.parent.ui.tabs.widget(self.parent.ui.tabs.currentIndex()).message_text.text().split(' ') if self.parent.ui.tabs.widget(self.parent.ui.tabs.currentIndex()).message_text.text().startswith('/join #'): self.socket.send(bytes('JOIN {0}\r\n'.format(msg_list[1]), self.encoding)) self.channel = msg_list[1] + if self.parent.ui.leave_item.isEnabled() == False: + self.parent.ui.leave_item.setEnabled(True) + self.parent.ui.leave_item.triggered.connect(self.leave_channel) else: self.socket.send(bytes('JOIN #{0}\r\n'.format(msg_list[1]), self.encoding)) self.channel = '#{0}'.format(msg_list[1]) @@ -1394,26 +1470,20 @@ def send_msg(self): self.tab.setStyleSheet('background-color: #ffffff;\ncolor: #000000;\nselection-background-color: rgb(255, 119, 0);') self.tab.chat_text.setStyleSheet('selection-background-color: rgb(255, 119, 0);') self.tab.members_list.setStyleSheet('selection-background-color: #ff7700;') + self.tab.verticalScrollBar.setStyleSheet('QScrollBar:vertical {\nborder: 0px solid;\nbackground: rgb(255, 255, 255);\nwidth: 15px;\nmargin: 16px 0 16px 0;\n}\nQScrollBar::handle:vertical {\nbackground: #ff7700;\nborder-width: 2px;\nborder-radius: 10px;\n}\n\nQScrollBar::add-line:vertical {\nborder: 0px solid;\nbackground-color: rgb(255, 255, 255);\nheight: 16px;\nsubcontrol-position: bottom;\nsubcontrol-origin: margin;\nimage: url(:/arrows/up_arrow_light.png);\n}\n\nQScrollBar::sub-line:vertical {\nborder: 0px solid;\nbackground: rgb(255, 255, 255);\nheight: 16px;\nsubcontrol-position: top;\nsubcontrol-origin: margin;\nimage: url(:/arrows/down_arrow_light.png);\n}\n\nQScrollBar::add-page:vertical, QScrollBar::sub-page:vertical {\nbackground: none;\n}') + self.tab.verticalScrollBar_2.setStyleSheet('QScrollBar:vertical {\nborder: 0px solid;\nbackground: rgb(255, 255, 255);\nwidth: 15px;\nmargin: 16px 0 16px 0;\n}\nQScrollBar::handle:vertical {\nbackground: #a14b00;\nborder-width: 2px;\nborder-radius: 10px;\n}\n\nQScrollBar::add-line:vertical {\nborder: 0px solid;\nbackground-color: rgb(255, 255, 255);\nheight: 16px;\nsubcontrol-position: bottom;\nsubcontrol-origin: margin;\nimage: url(:/arrows/up_arrow_light.png);\n}\n\nQScrollBar::sub-line:vertical {\nborder: 0px solid;\nbackground: rgb(255, 255, 255);\nheight: 16px;\nsubcontrol-position: top;\nsubcontrol-origin: margin;\nimage: url(:/arrows/down_arrow_light.png);\n}\n\nQScrollBar::add-page:vertical, QScrollBar::sub-page:vertical {\nbackground: none;\n}') else: self.tab.setStyleSheet('background-color: #313131;\ncolor: #ffffff;\nselection-background-color: rgb(161, 75, 0);') self.tab.chat_text.setStyleSheet('selection-background-color: rgb(161, 75, 0);') self.tab.members_list.setStyleSheet('selection-background-color: #a14b00;') + self.tab.verticalScrollBar.setStyleSheet('QScrollBar:vertical {border: 0px solid;\nbackground: rgb(43, 43, 43);\nwidth: 15px;\nmargin: 16px 0 16px 0;\n}\nQScrollBar::handle:vertical {\nbackground: rgb(161, 75, 0);\nborder-width: 2px;\nborder-radius: 10px;\n}\n\nQScrollBar::add-line:vertical {\nborder: 0px solid;\nbackground-color: rgb(43, 43, 43);\nheight: 16px;\nsubcontrol-position: bottom;\nsubcontrol-origin: margin;\nimage: url(:/arrows/up_arrow_dark.png);\n}\n\nQScrollBar::sub-line:vertical {\nborder: 0px solid;\nbackground: rgb(43, 43, 43);\nheight: 16px;\nsubcontrol-position: top;\nsubcontrol-origin: margin;\nimage: url(:/arrows/down_arrow_dark.png);\n}\n\nQScrollBar::add-page:vertical, QScrollBar::sub-page:vertical {\nbackground: none;\n}') + self.tab.verticalScrollBar_2.setStyleSheet('QScrollBar:vertical {border: 0px solid;\nbackground: rgb(43, 43, 43);\nwidth: 15px;\nmargin: 16px 0 16px 0;\n}\nQScrollBar::handle:vertical {\nbackground: rgb(161, 75, 0);\nborder-width: 2px;\nborder-radius: 10px;\n}\n\nQScrollBar::add-line:vertical {\nborder: 0px solid;\nbackground-color: rgb(43, 43, 43);\nheight: 16px;\nsubcontrol-position: bottom;\nsubcontrol-origin: margin;\nimage: url(:/arrows/up_arrow_dark.png);\n}\n\nQScrollBar::sub-line:vertical {\nborder: 0px solid;\nbackground: rgb(43, 43, 43);\nheight: 16px;\nsubcontrol-position: top;\nsubcontrol-origin: margin;\nimage: url(:/arrows/down_arrow_dark.png);\n}\n\nQScrollBar::add-page:vertical, QScrollBar::sub-page:vertical {\nbackground: none;\n}') self.tab.members_list.setContextMenuPolicy(Qt.CustomContextMenu) self.tab.members_list.customContextMenuRequested.connect(self.call_member_cm) self.member_context_menu = QMenu(self) - try: - settings.read('settings') - if settings.sections() != [] and settings['Main']['Language'] == 'English': - self.mention_item = self.member_context_menu.addAction(en_US.get()['mntion_a']) - self.whoism_item = self.member_context_menu.addAction(en_US.get()['whoism_a']) - self.ping_item = self.member_context_menu.addAction(en_US.get()['pingctcp']) - else: - self.mention_item = self.member_context_menu.addAction(ru_RU.get()['mntion_a']) - self.whoism_item = self.member_context_menu.addAction(ru_RU.get()['whoism_a']) - self.ping_item = self.member_context_menu.addAction(ru_RU.get()['pingctcp']) - except: - pass self.parent.ui.tabs.addTab(self.tab, self.channel) + self.tab.chat_text.setVerticalScrollBar(self.tab.verticalScrollBar) + self.tab.members_list.setVerticalScrollBar(self.tab.verticalScrollBar_2) self.tab.message_text.setEnabled(True) self.tab.send_msg_btn.setEnabled(False) self.tab.send_msg_btn.clicked.connect(self.send_msg) @@ -1547,6 +1617,31 @@ def send_msg(self): self.parent.ui.tabs.widget(self.parent.ui.tabs.currentIndex()).message_text.setText('') self.parent.ui.tabs.widget(self.parent.ui.tabs.currentIndex()).chat_text.moveCursor(QTextCursor.End) + def leave_channel(self): + for i in range(self.parent.ui.tabs.count()): + if i > 0 and i == self.parent.ui.tabs.currentIndex(): + try: + self.socket.send(bytes('PART {0}\r\n'.format(self.parent.ui.tabs.tabText(self.parent.ui.tabs.currentIndex())), self.encoding)) + self.parent.ui.tabs.widget(self.parent.ui.tabs.currentIndex()).members_list.clear() + self.parent.ui.tabs.widget(self.parent.ui.tabs.currentIndex()).members_list.setVisible(False) + self.parent.ui.tabs.widget(self.parent.ui.tabs.currentIndex()).message_text.setEnabled(False) + self.parent.ui.tabs.removeTab(self.parent.ui.tabs.currentIndex()) + if settings.sections() != [] and settings['Main']['Language'] == 'English': + self.parent.ui.status_label.setText(en_US.get()['rdstatus']) + else: + self.parent.ui.status_label.setText(ru_RU.get()['rdstatus']) + except: + pass + + def join_channel(self): + self.parent.ui.tabs.widget(self.parent.ui.tabs.currentIndex()).message_text.setText('/join #') + + def show_channel_history(self): + try: + webbrowser.open('history/irc_{0}_{1}_{2}.html'.format(self.parent.ui.tabs.tabText(self.parent.ui.tabs.currentIndex()), self.ui.tableWidget.item(self.ui.tableWidget.currentRow(), 0).text(), self.now.strftime('%Y-%m-%d_%H.%M.%S'))) + except Exception as e: + print(e) + def chanjoined(self): tabs_count = self.parent.ui.tabs.count() - 1 self.parent.ui.tabs.setCurrentIndex(tabs_count) @@ -1558,8 +1653,38 @@ def chanjoined(self): def call_member_cm(self, pos): self.tab = self.parent.ui.tabs.widget(self.parent.ui.tabs.currentIndex()) - if self.tab.members_list.currentItem().parent() != None: - context_menu = self.member_context_menu.exec_(self.tab.members_list.mapToGlobal(QPoint(-146, -0))) + try: + if self.tab.members_list.currentItem().parent() != None: + nick_action = QtWidgets.QWidgetAction(self.member_context_menu) + nick_label = QtWidgets.QLabel(self.tab.members_list.currentItem().text(0)) + nick_action.setDefaultWidget(nick_label) + nick_action.setEnabled(False) + self.member_context_menu.clear() + try: + settings.read('settings') + if settings.sections() != [] and settings['Main']['DarkTheme'] == 'Enabled': + nick_label.setStyleSheet('QLabel {margin-left: 13px;\nfont-weight: 700; color: #828282}') + elif settings.sections() != [] and settings['Main']['DarkTheme'] == 'Disabled': + nick_label.setStyleSheet('QLabel {margin-left: 13px;\nfont-weight: 700; color: #626262}') + else: + nick_label.setStyleSheet('QLabel {margin-left: 13px;\nfont-weight: 700;}') + except: + pass + self.member_context_menu.addAction(nick_action) + try: + if settings.sections() != [] and settings['Main']['Language'] == 'English': + self.mention_item = self.member_context_menu.addAction(en_US.get()['mntion_a']) + self.whoism_item = self.member_context_menu.addAction(en_US.get()['whoism_a']) + self.ping_item = self.member_context_menu.addAction(en_US.get()['pingctcp']) + else: + self.mention_item = self.member_context_menu.addAction(ru_RU.get()['mntion_a']) + self.whoism_item = self.member_context_menu.addAction(ru_RU.get()['whoism_a']) + self.ping_item = self.member_context_menu.addAction(ru_RU.get()['pingctcp']) + except: + pass + context_menu = self.member_context_menu.exec_(self.tab.members_list.mapToGlobal(QPoint(-self.member_context_menu.width() - 2, -0))) + except: + pass try: if context_menu == self.mention_item and self.tab.members_list.currentItem().text(0) != '': self.tab.message_text.setText(self.tab.members_list.currentItem().text(0)) @@ -1716,6 +1841,27 @@ def __init__(self, parent=None): if settings.sections() != []: self.ui.language_combo.setCurrentText(settings['Main']['Language']) +class ProgressDlg(QtWidgets.QDialog, progrdlg): + def __init__(self, parent=None): + super(ProgressDlg, self).__init__(parent) + self.ui = progrdlg() + self.ui.setupUi(self) + self.parent = parent + self.setWindowFlag(Qt.CustomizeWindowHint, True) + self.setWindowFlag(Qt.WindowMinimizeButtonHint, False) + self.setWindowFlag(Qt.WindowMaximizeButtonHint, False) + self.setWindowFlag(Qt.WindowCloseButtonHint, False) + settings.read('settings') + try: + if settings.sections() != [] and settings['Main']['DarkTheme'] == 'Disabled': + self.setStyleSheet('background-color: #ffffff; color: #000000;') + self.progressBar.setStyleSheet('selection-background-color: #ff7700;') + elif settings.sections() != [] and settings['Main']['DarkTheme'] == 'Enabled': + self.setStyleSheet('background-color: #313131; color: #ffffff;') + self.progressBar.setStyleSheet('selection-background-color: rgb(161, 75, 0);') + except: + pass + class MentionNotificationWindow(QtWidgets.QDialog, mention_notif_window): def __init__(self, parent=None): super(MentionNotificationWindow, self).__init__(parent) diff --git a/languages/en_US.py b/languages/en_US.py index bf7dbb2..034e63e 100644 --- a/languages/en_US.py +++ b/languages/en_US.py @@ -33,9 +33,13 @@ def get(): 'quit_msg': 'Quit message:', 'filemenu': 'File', 'viewmenu': 'View', + 'chanmenu': 'Channel', 'helpmenu': 'Help', 'conn_mi': 'Connect...', 'quit_mi': 'Quit', + 'joinchan': 'Join...', + 'lv_chan': 'Leave', + 'msg_hist': 'Messages history', 'about_mi': 'About...', 'send_msg': 'Send', 'chstatus': 'You are on the channel {0}.', @@ -64,6 +68,10 @@ def get(): 'msg_font': 'Messages font:', 'mentionl': '{0} mentioned you', 'opclient': 'Open', + 'p_chanls': 'Getting channel list... ({0})', + 'channelp': 'Channel:', + 'addit_bt': 'More', + 'prgrwait': 'Waiting', 'about_tt': 'About Tinelix IRC Client', 'prog_ver': '

Tinelix IRC Client (codename Flight, {0})

', 'free_sft': 'Written on Python, using Qt {0} with PyQt5 {1}', diff --git a/languages/ru_RU.py b/languages/ru_RU.py index f9f58d9..d31156a 100644 --- a/languages/ru_RU.py +++ b/languages/ru_RU.py @@ -33,9 +33,13 @@ def get(): 'quit_msg': 'Сообщение при выходе:', 'filemenu': 'Файл', 'viewmenu': 'Вид', + 'chanmenu': 'Канал', 'helpmenu': 'Справка', 'conn_mi': 'Подключиться...', 'quit_mi': 'Выйти', + 'joinchan': 'Присоединиться...', + 'lv_chan': 'Покинуть', + 'msg_hist': 'История сообщений', 'about_mi': 'О программе...', 'send_msg': 'Отправить', 'chstatus': 'Вы находитесь на канале {0}.', @@ -64,6 +68,10 @@ def get(): 'msg_font': 'Шрифт сообщений:', 'mentionl': '{0} упомянул(a) вас', 'opclient': 'Открыть', + 'p_chanls': 'Получение списка каналов... ({0})', + 'channelp': 'Канал:', + 'addit_bt': 'Подробнее', + 'prgrwait': 'Ожидание', 'about_tt': 'О клиенте Tinelix IRC', 'prog_ver': '

Tinelix IRC Client (codename Flight, {0})

', 'free_sft': 'Написан на языке программирования Python, используется Qt {0} с PyQt5 {1}', diff --git a/mainform.py b/mainform.py index baa6420..7e0606d 100644 --- a/mainform.py +++ b/mainform.py @@ -1,169 +1,195 @@ -# -*- coding: utf-8 -*- - -# Form implementation generated from reading ui file 'mainform.ui' -# -# Created by: PyQt5 UI code generator 5.15.4 -# -# WARNING: Any manual changes made to this file will be lost when pyuic5 is -# run again. Do not edit this file unless you know what you are doing. - - -from PyQt5 import QtCore, QtGui, QtWidgets - - -class Ui_MainWindow(object): - def setupUi(self, MainWindow): - MainWindow.setObjectName("MainWindow") - MainWindow.resize(595, 354) - MainWindow.setMinimumSize(QtCore.QSize(544, 300)) - icon = QtGui.QIcon() - icon.addPixmap(QtGui.QPixmap("icon_48x48.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off) - MainWindow.setWindowIcon(icon) - MainWindow.setStyleSheet("background-color: rgb(43, 43, 43);\n" -"color: rgb(255, 255, 255);") - self.centralwidget = QtWidgets.QWidget(MainWindow) - self.centralwidget.setObjectName("centralwidget") - self.verticalLayout = QtWidgets.QVBoxLayout(self.centralwidget) - self.verticalLayout.setContentsMargins(0, 0, 0, 0) - self.verticalLayout.setSpacing(0) - self.verticalLayout.setObjectName("verticalLayout") - self.horizontalLayout = QtWidgets.QHBoxLayout() - self.horizontalLayout.setSpacing(0) - self.horizontalLayout.setObjectName("horizontalLayout") - self.tabs = QtWidgets.QTabWidget(self.centralwidget) - self.tabs.setStyleSheet("") - self.tabs.setTabsClosable(False) - self.tabs.setObjectName("tabs") - self.horizontalLayout.addWidget(self.tabs) - self.verticalLayout.addLayout(self.horizontalLayout) - self.verticalLayout_2 = QtWidgets.QVBoxLayout() - self.verticalLayout_2.setContentsMargins(-1, -1, 0, 0) - self.verticalLayout_2.setSpacing(0) - self.verticalLayout_2.setObjectName("verticalLayout_2") - self.horizontalLayout_2 = QtWidgets.QHBoxLayout() - self.horizontalLayout_2.setContentsMargins(-1, 0, -1, -1) - self.horizontalLayout_2.setSpacing(4) - self.horizontalLayout_2.setObjectName("horizontalLayout_2") - self.verticalLayout_2.addLayout(self.horizontalLayout_2) - self.horizontalLayout_3 = QtWidgets.QHBoxLayout() - self.horizontalLayout_3.setContentsMargins(-1, -1, -1, 0) - self.horizontalLayout_3.setSpacing(4) - self.horizontalLayout_3.setObjectName("horizontalLayout_3") - self.status_label = QtWidgets.QLabel(self.centralwidget) - self.status_label.setMinimumSize(QtCore.QSize(100, 0)) - self.status_label.setMaximumSize(QtCore.QSize(220, 16777215)) - font = QtGui.QFont() - font.setPointSize(8) - self.status_label.setFont(font) - self.status_label.setText("") - self.status_label.setTextFormat(QtCore.Qt.PlainText) - self.status_label.setObjectName("status_label") - self.horizontalLayout_3.addWidget(self.status_label) - spacerItem = QtWidgets.QSpacerItem(2, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum) - self.horizontalLayout_3.addItem(spacerItem) - self.channel_name = QtWidgets.QLabel(self.centralwidget) - self.channel_name.setMaximumSize(QtCore.QSize(16777215, 40)) - font = QtGui.QFont() - font.setPointSize(8) - self.channel_name.setFont(font) - self.channel_name.setText("") - self.channel_name.setObjectName("channel_name") - self.horizontalLayout_3.addWidget(self.channel_name) - self.line = QtWidgets.QFrame(self.centralwidget) - self.line.setStyleSheet("color: rgb(74, 74, 74)") - self.line.setFrameShadow(QtWidgets.QFrame.Plain) - self.line.setFrameShape(QtWidgets.QFrame.VLine) - self.line.setObjectName("line") - self.horizontalLayout_3.addWidget(self.line) - self.conn_quality_label = QtWidgets.QLabel(self.centralwidget) - font = QtGui.QFont() - font.setPointSize(8) - self.conn_quality_label.setFont(font) - self.conn_quality_label.setObjectName("conn_quality_label") - self.horizontalLayout_3.addWidget(self.conn_quality_label) - self.conn_quality_progr = QtWidgets.QProgressBar(self.centralwidget) - self.conn_quality_progr.setMinimumSize(QtCore.QSize(0, 18)) - self.conn_quality_progr.setMaximumSize(QtCore.QSize(80, 16777215)) - font = QtGui.QFont() - font.setPointSize(8) - font.setBold(False) - font.setWeight(50) - self.conn_quality_progr.setFont(font) - self.conn_quality_progr.setStyleSheet("selection-background-color: rgb(161, 75, 0);") - self.conn_quality_progr.setMaximum(5000) - self.conn_quality_progr.setProperty("value", 4970) - self.conn_quality_progr.setTextVisible(True) - self.conn_quality_progr.setInvertedAppearance(False) - self.conn_quality_progr.setTextDirection(QtWidgets.QProgressBar.TopToBottom) - self.conn_quality_progr.setObjectName("conn_quality_progr") - self.horizontalLayout_3.addWidget(self.conn_quality_progr) - self.latency_label = QtWidgets.QLabel(self.centralwidget) - self.latency_label.setMinimumSize(QtCore.QSize(35, 0)) - font = QtGui.QFont() - font.setPointSize(8) - font.setBold(False) - font.setWeight(50) - self.latency_label.setFont(font) - self.latency_label.setObjectName("latency_label") - self.horizontalLayout_3.addWidget(self.latency_label) - self.verticalLayout_2.addLayout(self.horizontalLayout_3) - self.verticalLayout.addLayout(self.verticalLayout_2) - MainWindow.setCentralWidget(self.centralwidget) - self.menubar = QtWidgets.QMenuBar(MainWindow) - self.menubar.setGeometry(QtCore.QRect(0, 0, 595, 21)) - self.menubar.setStyleSheet("selection-background-color: rgb(161, 75, 0);") - self.menubar.setObjectName("menubar") - self.menu = QtWidgets.QMenu(self.menubar) - self.menu.setObjectName("menu") - self.menu_2 = QtWidgets.QMenu(self.menubar) - self.menu_2.setStyleSheet("") - self.menu_2.setObjectName("menu_2") - self.menu_3 = QtWidgets.QMenu(self.menubar) - self.menu_3.setObjectName("menu_3") - MainWindow.setMenuBar(self.menubar) - self.about_item = QtWidgets.QAction(MainWindow) - self.about_item.setObjectName("about_item") - self.about_Qt_item = QtWidgets.QAction(MainWindow) - self.about_Qt_item.setObjectName("about_Qt_item") - self.connect_item = QtWidgets.QAction(MainWindow) - self.connect_item.setObjectName("connect_item") - self.quit_item = QtWidgets.QAction(MainWindow) - self.quit_item.setObjectName("quit_item") - self.history_cb_action = QtWidgets.QAction(MainWindow) - self.history_cb_action.setCheckable(True) - self.history_cb_action.setChecked(False) - self.history_cb_action.setObjectName("history_cb_action") - self.action = QtWidgets.QAction(MainWindow) - self.action.setObjectName("action") - self.settings_item = QtWidgets.QAction(MainWindow) - self.settings_item.setObjectName("settings_item") - self.menu.addAction(self.connect_item) - self.menu.addSeparator() - self.menu.addAction(self.quit_item) - self.menu_2.addAction(self.about_item) - self.menu_3.addAction(self.settings_item) - self.menubar.addAction(self.menu.menuAction()) - self.menubar.addAction(self.menu_3.menuAction()) - self.menubar.addAction(self.menu_2.menuAction()) - - self.retranslateUi(MainWindow) - self.tabs.setCurrentIndex(-1) - QtCore.QMetaObject.connectSlotsByName(MainWindow) - - def retranslateUi(self, MainWindow): - _translate = QtCore.QCoreApplication.translate - MainWindow.setWindowTitle(_translate("MainWindow", "Tinelix IRC Client")) - self.conn_quality_label.setText(_translate("MainWindow", "Качество соединения:")) - self.conn_quality_progr.setFormat(_translate("MainWindow", "%p%")) - self.latency_label.setText(_translate("MainWindow", "(2 ms)")) - self.menu.setTitle(_translate("MainWindow", "Файл")) - self.menu_2.setTitle(_translate("MainWindow", "Справка")) - self.menu_3.setTitle(_translate("MainWindow", "Вид")) - self.about_item.setText(_translate("MainWindow", "О программе...")) - self.about_Qt_item.setText(_translate("MainWindow", "О Qt...")) - self.connect_item.setText(_translate("MainWindow", "Подключиться")) - self.quit_item.setText(_translate("MainWindow", "Выход")) - self.history_cb_action.setText(_translate("MainWindow", "Сохранить историю переписок")) - self.action.setText(_translate("MainWindow", "Настройки")) - self.settings_item.setText(_translate("MainWindow", "Настройки")) -import resources_rc +# -*- coding: utf-8 -*- + +# Form implementation generated from reading ui file 'mainform.ui' +# +# Created by: PyQt5 UI code generator 5.15.4 +# +# WARNING: Any manual changes made to this file will be lost when pyuic5 is +# run again. Do not edit this file unless you know what you are doing. + + +from PyQt5 import QtCore, QtGui, QtWidgets + + +class Ui_MainWindow(object): + def setupUi(self, MainWindow): + MainWindow.setObjectName("MainWindow") + MainWindow.resize(595, 354) + MainWindow.setMinimumSize(QtCore.QSize(544, 300)) + icon = QtGui.QIcon() + icon.addPixmap(QtGui.QPixmap("icon_48x48.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off) + MainWindow.setWindowIcon(icon) + MainWindow.setStyleSheet("background-color: rgb(43, 43, 43);\n" +"color: rgb(255, 255, 255);") + self.centralwidget = QtWidgets.QWidget(MainWindow) + self.centralwidget.setObjectName("centralwidget") + self.verticalLayout = QtWidgets.QVBoxLayout(self.centralwidget) + self.verticalLayout.setContentsMargins(0, 0, 0, 0) + self.verticalLayout.setSpacing(0) + self.verticalLayout.setObjectName("verticalLayout") + self.horizontalLayout = QtWidgets.QHBoxLayout() + self.horizontalLayout.setSpacing(0) + self.horizontalLayout.setObjectName("horizontalLayout") + self.tabs = QtWidgets.QTabWidget(self.centralwidget) + self.tabs.setStyleSheet("") + self.tabs.setTabsClosable(False) + self.tabs.setObjectName("tabs") + self.horizontalLayout.addWidget(self.tabs) + self.verticalLayout.addLayout(self.horizontalLayout) + self.verticalLayout_2 = QtWidgets.QVBoxLayout() + self.verticalLayout_2.setContentsMargins(-1, -1, 0, 0) + self.verticalLayout_2.setSpacing(0) + self.verticalLayout_2.setObjectName("verticalLayout_2") + self.horizontalLayout_2 = QtWidgets.QHBoxLayout() + self.horizontalLayout_2.setContentsMargins(-1, 0, -1, -1) + self.horizontalLayout_2.setSpacing(4) + self.horizontalLayout_2.setObjectName("horizontalLayout_2") + self.verticalLayout_2.addLayout(self.horizontalLayout_2) + self.horizontalLayout_3 = QtWidgets.QHBoxLayout() + self.horizontalLayout_3.setContentsMargins(-1, -1, -1, 0) + self.horizontalLayout_3.setSpacing(4) + self.horizontalLayout_3.setObjectName("horizontalLayout_3") + self.status_label = QtWidgets.QLabel(self.centralwidget) + self.status_label.setMinimumSize(QtCore.QSize(100, 0)) + self.status_label.setMaximumSize(QtCore.QSize(220, 16777215)) + font = QtGui.QFont() + font.setPointSize(8) + self.status_label.setFont(font) + self.status_label.setText("") + self.status_label.setTextFormat(QtCore.Qt.PlainText) + self.status_label.setObjectName("status_label") + self.horizontalLayout_3.addWidget(self.status_label) + spacerItem = QtWidgets.QSpacerItem(2, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum) + self.horizontalLayout_3.addItem(spacerItem) + self.channel_name = QtWidgets.QLabel(self.centralwidget) + self.channel_name.setMaximumSize(QtCore.QSize(16777215, 40)) + font = QtGui.QFont() + font.setPointSize(8) + self.channel_name.setFont(font) + self.channel_name.setText("") + self.channel_name.setObjectName("channel_name") + self.horizontalLayout_3.addWidget(self.channel_name) + self.line = QtWidgets.QFrame(self.centralwidget) + self.line.setStyleSheet("color: rgb(74, 74, 74)") + self.line.setFrameShadow(QtWidgets.QFrame.Plain) + self.line.setFrameShape(QtWidgets.QFrame.VLine) + self.line.setObjectName("line") + self.horizontalLayout_3.addWidget(self.line) + self.conn_quality_label = QtWidgets.QLabel(self.centralwidget) + font = QtGui.QFont() + font.setPointSize(8) + self.conn_quality_label.setFont(font) + self.conn_quality_label.setObjectName("conn_quality_label") + self.horizontalLayout_3.addWidget(self.conn_quality_label) + self.conn_quality_progr = QtWidgets.QProgressBar(self.centralwidget) + self.conn_quality_progr.setMinimumSize(QtCore.QSize(0, 18)) + self.conn_quality_progr.setMaximumSize(QtCore.QSize(80, 16777215)) + font = QtGui.QFont() + font.setPointSize(8) + font.setBold(False) + font.setWeight(50) + self.conn_quality_progr.setFont(font) + self.conn_quality_progr.setStyleSheet("selection-background-color: rgb(161, 75, 0);") + self.conn_quality_progr.setMaximum(5000) + self.conn_quality_progr.setProperty("value", 4970) + self.conn_quality_progr.setTextVisible(True) + self.conn_quality_progr.setInvertedAppearance(False) + self.conn_quality_progr.setTextDirection(QtWidgets.QProgressBar.TopToBottom) + self.conn_quality_progr.setObjectName("conn_quality_progr") + self.horizontalLayout_3.addWidget(self.conn_quality_progr) + self.latency_label = QtWidgets.QLabel(self.centralwidget) + self.latency_label.setMinimumSize(QtCore.QSize(35, 0)) + font = QtGui.QFont() + font.setPointSize(8) + font.setBold(False) + font.setWeight(50) + self.latency_label.setFont(font) + self.latency_label.setObjectName("latency_label") + self.horizontalLayout_3.addWidget(self.latency_label) + self.verticalLayout_2.addLayout(self.horizontalLayout_3) + self.verticalLayout.addLayout(self.verticalLayout_2) + MainWindow.setCentralWidget(self.centralwidget) + self.menubar = QtWidgets.QMenuBar(MainWindow) + self.menubar.setGeometry(QtCore.QRect(0, 0, 595, 29)) + self.menubar.setStyleSheet("selection-background-color: rgb(161, 75, 0);") + self.menubar.setObjectName("menubar") + self.menu = QtWidgets.QMenu(self.menubar) + self.menu.setObjectName("menu") + self.menu_2 = QtWidgets.QMenu(self.menubar) + self.menu_2.setStyleSheet("") + self.menu_2.setObjectName("menu_2") + self.menu_3 = QtWidgets.QMenu(self.menubar) + self.menu_3.setObjectName("menu_3") + self.menu_4 = QtWidgets.QMenu(self.menubar) + self.menu_4.setObjectName("menu_4") + MainWindow.setMenuBar(self.menubar) + self.about_item = QtWidgets.QAction(MainWindow) + self.about_item.setObjectName("about_item") + self.about_Qt_item = QtWidgets.QAction(MainWindow) + self.about_Qt_item.setObjectName("about_Qt_item") + self.connect_item = QtWidgets.QAction(MainWindow) + self.connect_item.setObjectName("connect_item") + self.quit_item = QtWidgets.QAction(MainWindow) + self.quit_item.setObjectName("quit_item") + self.history_cb_action = QtWidgets.QAction(MainWindow) + self.history_cb_action.setCheckable(True) + self.history_cb_action.setChecked(False) + self.history_cb_action.setObjectName("history_cb_action") + self.action = QtWidgets.QAction(MainWindow) + self.action.setObjectName("action") + self.settings_item = QtWidgets.QAction(MainWindow) + self.settings_item.setObjectName("settings_item") + self.join_item = QtWidgets.QAction(MainWindow) + self.join_item.setEnabled(False) + self.join_item.setObjectName("join_item") + self.leave_item = QtWidgets.QAction(MainWindow) + self.leave_item.setEnabled(False) + self.leave_item.setObjectName("leave_item") + self.members_list_item = QtWidgets.QAction(MainWindow) + self.members_list_item.setCheckable(True) + self.members_list_item.setChecked(True) + self.members_list_item.setObjectName("members_list_item") + self.msg_history = QtWidgets.QAction(MainWindow) + self.msg_history.setEnabled(False) + self.msg_history.setObjectName("msg_history") + self.menu.addAction(self.connect_item) + self.menu.addSeparator() + self.menu.addAction(self.quit_item) + self.menu_2.addAction(self.about_item) + self.menu_3.addSeparator() + self.menu_3.addAction(self.settings_item) + self.menu_4.addAction(self.join_item) + self.menu_4.addAction(self.leave_item) + self.menu_4.addSeparator() + self.menu_4.addAction(self.msg_history) + self.menubar.addAction(self.menu.menuAction()) + self.menubar.addAction(self.menu_4.menuAction()) + self.menubar.addAction(self.menu_3.menuAction()) + self.menubar.addAction(self.menu_2.menuAction()) + + self.retranslateUi(MainWindow) + self.tabs.setCurrentIndex(-1) + QtCore.QMetaObject.connectSlotsByName(MainWindow) + + def retranslateUi(self, MainWindow): + _translate = QtCore.QCoreApplication.translate + MainWindow.setWindowTitle(_translate("MainWindow", "Tinelix IRC Client")) + self.conn_quality_label.setText(_translate("MainWindow", "Качество соединения:")) + self.conn_quality_progr.setFormat(_translate("MainWindow", "%p%")) + self.latency_label.setText(_translate("MainWindow", "(2 ms)")) + self.menu.setTitle(_translate("MainWindow", "Файл")) + self.menu_2.setTitle(_translate("MainWindow", "Справка")) + self.menu_3.setTitle(_translate("MainWindow", "Вид")) + self.menu_4.setTitle(_translate("MainWindow", "Канал")) + self.about_item.setText(_translate("MainWindow", "О программе...")) + self.about_Qt_item.setText(_translate("MainWindow", "О Qt...")) + self.connect_item.setText(_translate("MainWindow", "Подключиться")) + self.quit_item.setText(_translate("MainWindow", "Выход")) + self.history_cb_action.setText(_translate("MainWindow", "Сохранить историю переписок")) + self.action.setText(_translate("MainWindow", "Настройки")) + self.settings_item.setText(_translate("MainWindow", "Настройки")) + self.join_item.setText(_translate("MainWindow", "Присоединиться...")) + self.leave_item.setText(_translate("MainWindow", "Покинуть")) + self.members_list_item.setText(_translate("MainWindow", "Список участников")) + self.msg_history.setText(_translate("MainWindow", "История")) +import resources_rc diff --git a/mainform.ui b/mainform.ui index 54fc16f..61a2882 100644 --- a/mainform.ui +++ b/mainform.ui @@ -255,7 +255,7 @@ color: rgb(255, 255, 255); 0 0 595 - 21 + 29 @@ -282,9 +282,20 @@ color: rgb(255, 255, 255); Вид + + + + Канал + + + + + + + @@ -329,6 +340,41 @@ color: rgb(255, 255, 255); Настройки + + + false + + + Присоединиться... + + + + + false + + + Покинуть + + + + + true + + + true + + + Список участников + + + + + false + + + История + + diff --git a/member_icon.png b/member_icon.png index 198cd4c..e13b274 100644 Binary files a/member_icon.png and b/member_icon.png differ diff --git a/progresswindow.py b/progresswindow.py new file mode 100644 index 0000000..3fb7b16 --- /dev/null +++ b/progresswindow.py @@ -0,0 +1,93 @@ +# -*- coding: utf-8 -*- + +# Form implementation generated from reading ui file 'progresswindow.ui' +# +# Created by: PyQt5 UI code generator 5.15.4 +# +# WARNING: Any manual changes made to this file will be lost when pyuic5 is +# run again. Do not edit this file unless you know what you are doing. + + +from PyQt5 import QtCore, QtGui, QtWidgets + + +class Ui_Dialog(object): + def setupUi(self, Dialog): + Dialog.setObjectName("Dialog") + Dialog.resize(240, 140) + Dialog.setMinimumSize(QtCore.QSize(240, 140)) + Dialog.setMaximumSize(QtCore.QSize(240, 140)) + Dialog.setWindowTitle("") + Dialog.setStyleSheet("background-color: rgb(43, 43, 43);\n" +"color: rgb(255, 255, 255);") + self.verticalLayout = QtWidgets.QVBoxLayout(Dialog) + self.verticalLayout.setObjectName("verticalLayout") + self.progresstext = QtWidgets.QLabel(Dialog) + self.progresstext.setMinimumSize(QtCore.QSize(0, 24)) + self.progresstext.setMaximumSize(QtCore.QSize(16777215, 24)) + self.progresstext.setText("") + self.progresstext.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignTop) + self.progresstext.setWordWrap(True) + self.progresstext.setObjectName("progresstext") + self.verticalLayout.addWidget(self.progresstext) + self.progressBar = QtWidgets.QProgressBar(Dialog) + self.progressBar.setMinimumSize(QtCore.QSize(0, 20)) + self.progressBar.setMaximumSize(QtCore.QSize(16777215, 20)) + self.progressBar.setStyleSheet("selection-background-color: rgb(161, 75, 0);") + self.progressBar.setMaximum(0) + self.progressBar.setProperty("value", -1) + self.progressBar.setInvertedAppearance(False) + self.progressBar.setObjectName("progressBar") + self.verticalLayout.addWidget(self.progressBar) + self.frame = QtWidgets.QFrame(Dialog) + self.frame.setMinimumSize(QtCore.QSize(0, 24)) + self.frame.setMaximumSize(QtCore.QSize(16777215, 24)) + self.frame.setFrameShape(QtWidgets.QFrame.NoFrame) + self.frame.setFrameShadow(QtWidgets.QFrame.Raised) + self.frame.setObjectName("frame") + self.verticalLayout_2 = QtWidgets.QVBoxLayout(self.frame) + self.verticalLayout_2.setContentsMargins(0, 0, 0, 0) + self.verticalLayout_2.setSpacing(0) + self.verticalLayout_2.setObjectName("verticalLayout_2") + self.gridLayout_2 = QtWidgets.QGridLayout() + self.gridLayout_2.setObjectName("gridLayout_2") + self.propertie = QtWidgets.QLabel(self.frame) + self.propertie.setMinimumSize(QtCore.QSize(80, 22)) + self.propertie.setMaximumSize(QtCore.QSize(80, 22)) + font = QtGui.QFont() + font.setBold(True) + font.setWeight(75) + self.propertie.setFont(font) + self.propertie.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignTop) + self.propertie.setObjectName("propertie") + self.gridLayout_2.addWidget(self.propertie, 0, 0, 1, 1) + self.value = QtWidgets.QLabel(self.frame) + self.value.setMinimumSize(QtCore.QSize(0, 22)) + self.value.setMaximumSize(QtCore.QSize(16777215, 22)) + self.value.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignTop) + self.value.setObjectName("value") + self.gridLayout_2.addWidget(self.value, 0, 1, 1, 1) + self.verticalLayout_2.addLayout(self.gridLayout_2) + self.verticalLayout.addWidget(self.frame) + self.frame_2 = QtWidgets.QFrame(Dialog) + self.frame_2.setFrameShape(QtWidgets.QFrame.NoFrame) + self.frame_2.setFrameShadow(QtWidgets.QFrame.Raised) + self.frame_2.setObjectName("frame_2") + self.verticalLayout.addWidget(self.frame_2) + self.additional_btn = QtWidgets.QPushButton(Dialog) + self.additional_btn.setMinimumSize(QtCore.QSize(0, 24)) + self.additional_btn.setMaximumSize(QtCore.QSize(100, 24)) + self.additional_btn.setStyleSheet("selection-background-color: #ff7700;") + self.additional_btn.setFlat(False) + self.additional_btn.setObjectName("additional_btn") + self.verticalLayout.addWidget(self.additional_btn) + + self.retranslateUi(Dialog) + QtCore.QMetaObject.connectSlotsByName(Dialog) + + def retranslateUi(self, Dialog): + _translate = QtCore.QCoreApplication.translate + self.propertie.setText(_translate("Dialog", "Свойство:")) + self.value.setText(_translate("Dialog", "Значение")) + self.additional_btn.setText(_translate("Dialog", "Подробнее")) +import resources_rc diff --git a/progresswindow.ui b/progresswindow.ui new file mode 100644 index 0000000..d431043 --- /dev/null +++ b/progresswindow.ui @@ -0,0 +1,220 @@ + + + Dialog + + + + 0 + 0 + 240 + 140 + + + + + 240 + 140 + + + + + 240 + 140 + + + + + + + background-color: rgb(43, 43, 43); +color: rgb(255, 255, 255); + + + + + + + 0 + 24 + + + + + 16777215 + 24 + + + + + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop + + + true + + + + + + + + 0 + 20 + + + + + 16777215 + 20 + + + + selection-background-color: rgb(161, 75, 0); + + + 0 + + + -1 + + + false + + + + + + + + 0 + 24 + + + + + 16777215 + 24 + + + + QFrame::NoFrame + + + QFrame::Raised + + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + + + + + + 80 + 22 + + + + + 80 + 22 + + + + + 75 + true + + + + Свойство: + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop + + + + + + + + 0 + 22 + + + + + 16777215 + 22 + + + + Значение + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop + + + + + + + + + + + + QFrame::NoFrame + + + QFrame::Raised + + + + + + + + 0 + 24 + + + + + 100 + 24 + + + + selection-background-color: #ff7700; + + + Подробнее + + + false + + + + + + + + + + diff --git a/resources.qrc b/resources.qrc index 5bb18af..ddaca6d 100644 --- a/resources.qrc +++ b/resources.qrc @@ -1,5 +1,6 @@ + member_icon.png owner_icon.png admin_icon.png operator_icon.png @@ -8,6 +9,12 @@ icon_48x48.png icon_64_64.png + + down_arrow_dark.png + down_arrow_light.png + up_arrow_dark.png + up_arrow_light.png + closebutton.png diff --git a/resources_rc.py b/resources_rc.py index fe4b51b..360a994 100644 --- a/resources_rc.py +++ b/resources_rc.py @@ -9,56 +9,143 @@ from PyQt5 import QtCore qt_resource_data = b"\ -\x00\x00\x02\xbe\ +\x00\x00\x08\x22\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x10\x00\x00\x00\x10\x08\x06\x00\x00\x00\x1f\xf3\xff\x61\ -\x00\x00\x02\x85\x49\x44\x41\x54\x38\x8d\x85\x91\x5d\x48\x93\x51\ -\x18\xc7\x7f\xef\x71\xc6\x5c\x6a\xd3\xcc\xaf\xec\xb5\x90\x54\x22\ -\xf1\x22\x22\x23\x88\x28\xb3\xba\xe8\x22\xe8\xe3\xa2\x20\x84\x62\ -\x89\x50\x41\x14\xd5\x75\xcc\x08\x83\x88\x40\xbb\xd2\x2e\x84\x40\ -\x29\x28\x24\xa9\x59\x91\x51\x62\x69\x81\x44\x9a\x1f\xe5\xe6\xdc\ -\x74\x7e\xac\xbd\xed\x9d\xf3\xdd\xf6\x76\xf1\x6e\xd3\x2b\x3d\xf0\ -\xe7\x9c\x87\x73\x1e\xce\xef\xf9\xff\x25\x5d\xd7\xe1\xe5\xfd\xed\ -\x58\x37\xdd\xc5\x6c\xa9\x46\x88\x4c\x56\x5b\xb1\x58\x80\x45\xd5\ -\x81\xdf\x77\x93\xe3\xd7\x46\xa4\xe9\x7b\x47\xcb\x2c\x05\x3b\x7a\ -\x87\x2b\x4b\xad\x13\x45\xb9\xc4\xcc\x66\x24\x21\x81\x44\x52\x7a\ -\x62\xd7\x63\x88\xf0\x22\xc5\x93\x33\x94\x7f\x19\xf5\xab\x53\x3f\ -\xaa\x4c\x3e\x6f\x97\xbd\x27\x7b\xc4\x3a\x69\xb2\x21\xcd\x28\x34\ -\xb9\xbb\x99\x0b\x76\xd1\x9c\xdf\xc2\xbe\x8d\xbb\xa9\xf8\xb9\x13\ -\x04\xf4\x94\x7c\xc2\xcd\x34\xdf\xd2\xc6\xe8\xb7\x40\x49\xca\x73\ -\x6b\x95\x77\xdc\x2e\x7c\x21\xaa\xeb\xa2\x63\x4c\x2b\xb3\xdc\x19\ -\xbc\xce\xdc\x7c\x17\x68\x90\x9b\x9a\x83\x5b\xf5\x42\x0c\x88\x82\ -\xd5\x94\x89\xd3\x3f\x49\xc3\xd0\x0d\x3c\xc1\x59\x2e\x98\xc6\xf1\ -\x85\xa8\x11\xca\x12\x99\x04\xa1\xcd\x3b\x00\x4b\x40\xc4\x50\xce\ -\xba\x2c\xfe\x04\x5d\x10\x05\xa4\x5d\x6c\x48\xcd\xe4\x69\xe0\x1d\ -\x68\xd0\x3a\xd3\x07\x2a\x28\x4b\xa4\x0b\x0d\x20\x04\x21\xbf\xc3\ -\x78\x1c\x57\x81\x25\x0f\x45\x0b\x42\x14\xea\xd3\x6a\x08\x47\xc3\ -\x0c\xa8\xcf\x8c\x7b\xe5\x3d\x84\x41\x03\xa4\x8e\x8b\xe8\x27\x8b\ -\x80\xcd\xf0\xb8\xb4\x85\x63\x5b\x0f\xad\x1a\x02\x80\x3c\x78\x02\ -\x9c\xfd\x74\x0c\x80\x09\xb1\x8c\x6d\x1b\xaa\x85\x5f\xd0\xb8\xed\ -\x11\x47\xe4\x03\x54\xf4\x1a\x06\x7e\xa8\xfc\x88\x53\x75\x73\x6e\ -\xe2\x8c\x91\x8c\x88\x93\x0a\x10\x7a\xa2\x88\x2c\xab\x24\xbd\x98\ -\xd1\x85\xdf\xc9\xba\x60\x7d\x1e\xbd\xf3\xdf\x8d\x3a\x31\x66\x0c\ -\x74\x01\x52\x7b\x3d\xfa\xa9\x74\x38\x5b\x51\x47\xc3\xfe\x5b\x6b\ -\xe2\xbf\x72\x75\x63\x73\xd5\x82\x07\xda\x47\x13\x04\x1a\xb4\x79\ -\x9a\x90\x3b\x64\xe4\xce\xd3\x00\x34\x7e\x6d\x46\xee\x94\x69\x1f\ -\x7e\xc1\xdf\xc5\x00\xb2\x43\x46\x7e\x2b\x63\x1b\xab\x35\xdc\x8b\ -\x18\x04\x26\x2d\x06\xa8\x46\x12\x98\xe1\x4a\xf6\x41\xc2\x91\x30\ -\x0f\x5d\x76\x10\x90\x6f\xce\x65\x4a\xf1\x1a\xf8\x22\xae\x08\x10\ -\x04\x4d\x07\x11\x81\x00\x21\x60\xd6\x20\x29\xb6\x14\xb2\xa8\x85\ -\x93\xf3\x6f\xc9\x28\x64\xc2\xef\x5a\xf6\x48\x03\xbc\x40\x00\x22\ -\x3a\xff\x04\x12\x8e\x4b\x26\x60\x01\x70\x42\x56\xca\x06\xa6\xfc\ -\x9e\x64\x43\x56\x9a\x15\x25\x1c\x34\x1a\x55\x60\xcc\xf8\xac\x3e\ -\x02\x48\xbc\x96\x5a\x2f\x53\x1e\xd3\xf9\xdc\xa7\x62\x6d\x5e\x8a\ -\x3b\x95\x88\x4a\x5a\x81\xbd\xe2\x6c\x13\xb0\x47\xe0\x17\xb0\x57\ -\xd2\x75\x9d\x27\x57\xa5\x32\xc0\x0e\x1c\x06\x32\xd6\x08\x42\x01\ -\xde\x00\xb7\xcf\x3f\xd0\x87\xff\x03\x38\x6a\x17\x21\xd5\x41\x8f\ -\xc4\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ -\x00\x00\x16\x76\ +\x00\x00\x01\x37\x69\x43\x43\x50\x41\x64\x6f\x62\x65\x20\x52\x47\ +\x42\x20\x28\x31\x39\x39\x38\x29\x00\x00\x28\x91\x95\x8f\xbf\x4a\ +\xc3\x50\x14\x87\xbf\x1b\x45\xc5\xa1\x56\x08\xe2\xe0\x70\x27\x51\ +\x50\x6c\xd5\xc1\x8c\x49\x5b\x8a\x20\x58\xab\x43\x92\xad\x49\x43\ +\x95\x62\x12\x6e\xae\x7f\xfa\x10\x8e\x6e\x1d\x5c\xdc\x7d\x02\x27\ +\x47\xc1\x41\xf1\x09\x7c\x03\xc5\xa9\x83\x43\x84\x0c\x05\x8b\xdf\ +\xf4\x9d\xdf\x39\x1c\xce\x01\xa3\x62\xd7\x9d\x86\x51\x86\xf3\x58\ +\xab\x76\xd3\x91\xae\xe7\xcb\xd9\x17\x66\x98\x02\x80\x4e\x98\xa5\ +\x76\xab\x75\x00\x10\x27\x71\xc4\x18\xdf\xef\x08\x80\xd7\x4d\xbb\ +\xee\x34\xc6\xfb\x7f\x32\x1f\xa6\x4a\x03\x23\x60\xbb\x1b\x65\x21\ +\x88\x0a\xd0\xbf\xd2\xa9\x06\x31\x04\xcc\xa0\x9f\x6a\x10\x0f\x80\ +\xa9\x4e\xda\x35\x10\x4f\x40\xa9\x97\xfb\x1b\x50\x0a\x72\xff\x00\ +\x4a\xca\xf5\x7c\x10\x5f\x80\xd9\x73\x3d\x1f\x8c\x39\xc0\x0c\x72\ +\x5f\x01\x4c\x1d\x5d\x6b\x80\x5a\x92\x0e\xd4\x59\xef\x54\xcb\xaa\ +\x65\x59\xd2\xee\x26\x41\x24\x8f\x07\x99\x8e\xce\x33\xb9\x1f\x87\ +\x89\x4a\x13\xd5\xd1\x51\x17\xc8\xef\x03\x60\x31\x1f\x6c\x37\x1d\ +\xb9\x56\xb5\xac\xbd\xf5\x7f\xfe\x3d\x11\xd7\xf3\x65\x6e\x9f\x47\ +\x08\x40\x2c\x3d\x17\x59\x41\x78\xa1\x2e\x7f\x55\x18\x3b\x93\xeb\ +\x62\xc7\x70\x19\x0e\xef\x61\x7a\x54\x64\xbb\x37\x70\xb7\x01\x0b\ +\xb7\x45\xb6\x5a\x85\xf2\x16\x3c\x0e\x7f\x00\xc0\xc6\x4f\xfd\xf3\ +\x53\x3f\xc8\x00\x00\x00\x09\x70\x48\x59\x73\x00\x00\x2e\x23\x00\ +\x00\x2e\x23\x01\x78\xa5\x3f\x76\x00\x00\x05\xea\x69\x54\x58\x74\ +\x58\x4d\x4c\x3a\x63\x6f\x6d\x2e\x61\x64\x6f\x62\x65\x2e\x78\x6d\ +\x70\x00\x00\x00\x00\x00\x3c\x3f\x78\x70\x61\x63\x6b\x65\x74\x20\ +\x62\x65\x67\x69\x6e\x3d\x22\xef\xbb\xbf\x22\x20\x69\x64\x3d\x22\ +\x57\x35\x4d\x30\x4d\x70\x43\x65\x68\x69\x48\x7a\x72\x65\x53\x7a\ +\x4e\x54\x63\x7a\x6b\x63\x39\x64\x22\x3f\x3e\x20\x3c\x78\x3a\x78\ +\x6d\x70\x6d\x65\x74\x61\x20\x78\x6d\x6c\x6e\x73\x3a\x78\x3d\x22\ +\x61\x64\x6f\x62\x65\x3a\x6e\x73\x3a\x6d\x65\x74\x61\x2f\x22\x20\ +\x78\x3a\x78\x6d\x70\x74\x6b\x3d\x22\x41\x64\x6f\x62\x65\x20\x58\ +\x4d\x50\x20\x43\x6f\x72\x65\x20\x35\x2e\x36\x2d\x63\x31\x34\x32\ +\x20\x37\x39\x2e\x31\x36\x30\x39\x32\x34\x2c\x20\x32\x30\x31\x37\ +\x2f\x30\x37\x2f\x31\x33\x2d\x30\x31\x3a\x30\x36\x3a\x33\x39\x20\ +\x20\x20\x20\x20\x20\x20\x20\x22\x3e\x20\x3c\x72\x64\x66\x3a\x52\ +\x44\x46\x20\x78\x6d\x6c\x6e\x73\x3a\x72\x64\x66\x3d\x22\x68\x74\ +\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\ +\x31\x39\x39\x39\x2f\x30\x32\x2f\x32\x32\x2d\x72\x64\x66\x2d\x73\ +\x79\x6e\x74\x61\x78\x2d\x6e\x73\x23\x22\x3e\x20\x3c\x72\x64\x66\ +\x3a\x44\x65\x73\x63\x72\x69\x70\x74\x69\x6f\x6e\x20\x72\x64\x66\ +\x3a\x61\x62\x6f\x75\x74\x3d\x22\x22\x20\x78\x6d\x6c\x6e\x73\x3a\ +\x78\x6d\x70\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x6e\x73\x2e\x61\ +\x64\x6f\x62\x65\x2e\x63\x6f\x6d\x2f\x78\x61\x70\x2f\x31\x2e\x30\ +\x2f\x22\x20\x78\x6d\x6c\x6e\x73\x3a\x78\x6d\x70\x4d\x4d\x3d\x22\ +\x68\x74\x74\x70\x3a\x2f\x2f\x6e\x73\x2e\x61\x64\x6f\x62\x65\x2e\ +\x63\x6f\x6d\x2f\x78\x61\x70\x2f\x31\x2e\x30\x2f\x6d\x6d\x2f\x22\ +\x20\x78\x6d\x6c\x6e\x73\x3a\x73\x74\x45\x76\x74\x3d\x22\x68\x74\ +\x74\x70\x3a\x2f\x2f\x6e\x73\x2e\x61\x64\x6f\x62\x65\x2e\x63\x6f\ +\x6d\x2f\x78\x61\x70\x2f\x31\x2e\x30\x2f\x73\x54\x79\x70\x65\x2f\ +\x52\x65\x73\x6f\x75\x72\x63\x65\x45\x76\x65\x6e\x74\x23\x22\x20\ +\x78\x6d\x6c\x6e\x73\x3a\x64\x63\x3d\x22\x68\x74\x74\x70\x3a\x2f\ +\x2f\x70\x75\x72\x6c\x2e\x6f\x72\x67\x2f\x64\x63\x2f\x65\x6c\x65\ +\x6d\x65\x6e\x74\x73\x2f\x31\x2e\x31\x2f\x22\x20\x78\x6d\x6c\x6e\ +\x73\x3a\x70\x68\x6f\x74\x6f\x73\x68\x6f\x70\x3d\x22\x68\x74\x74\ +\x70\x3a\x2f\x2f\x6e\x73\x2e\x61\x64\x6f\x62\x65\x2e\x63\x6f\x6d\ +\x2f\x70\x68\x6f\x74\x6f\x73\x68\x6f\x70\x2f\x31\x2e\x30\x2f\x22\ +\x20\x78\x6d\x70\x3a\x43\x72\x65\x61\x74\x6f\x72\x54\x6f\x6f\x6c\ +\x3d\x22\x41\x64\x6f\x62\x65\x20\x50\x68\x6f\x74\x6f\x73\x68\x6f\ +\x70\x20\x43\x43\x20\x28\x57\x69\x6e\x64\x6f\x77\x73\x29\x22\x20\ +\x78\x6d\x70\x3a\x43\x72\x65\x61\x74\x65\x44\x61\x74\x65\x3d\x22\ +\x32\x30\x32\x31\x2d\x30\x38\x2d\x32\x38\x54\x31\x35\x3a\x31\x32\ +\x3a\x31\x37\x2b\x30\x37\x3a\x30\x30\x22\x20\x78\x6d\x70\x3a\x4d\ +\x65\x74\x61\x64\x61\x74\x61\x44\x61\x74\x65\x3d\x22\x32\x30\x32\ +\x31\x2d\x30\x38\x2d\x32\x38\x54\x31\x35\x3a\x31\x32\x3a\x31\x37\ +\x2b\x30\x37\x3a\x30\x30\x22\x20\x78\x6d\x70\x3a\x4d\x6f\x64\x69\ +\x66\x79\x44\x61\x74\x65\x3d\x22\x32\x30\x32\x31\x2d\x30\x38\x2d\ +\x32\x38\x54\x31\x35\x3a\x31\x32\x3a\x31\x37\x2b\x30\x37\x3a\x30\ +\x30\x22\x20\x78\x6d\x70\x4d\x4d\x3a\x49\x6e\x73\x74\x61\x6e\x63\ +\x65\x49\x44\x3d\x22\x78\x6d\x70\x2e\x69\x69\x64\x3a\x38\x66\x38\ +\x33\x61\x37\x32\x64\x2d\x63\x66\x65\x31\x2d\x65\x31\x34\x39\x2d\ +\x61\x37\x66\x63\x2d\x34\x66\x33\x38\x38\x63\x35\x37\x33\x35\x65\ +\x64\x22\x20\x78\x6d\x70\x4d\x4d\x3a\x44\x6f\x63\x75\x6d\x65\x6e\ +\x74\x49\x44\x3d\x22\x61\x64\x6f\x62\x65\x3a\x64\x6f\x63\x69\x64\ +\x3a\x70\x68\x6f\x74\x6f\x73\x68\x6f\x70\x3a\x38\x33\x31\x36\x30\ +\x36\x30\x61\x2d\x32\x32\x37\x35\x2d\x66\x30\x34\x35\x2d\x62\x63\ +\x35\x63\x2d\x34\x37\x34\x36\x35\x36\x61\x38\x38\x61\x66\x63\x22\ +\x20\x78\x6d\x70\x4d\x4d\x3a\x4f\x72\x69\x67\x69\x6e\x61\x6c\x44\ +\x6f\x63\x75\x6d\x65\x6e\x74\x49\x44\x3d\x22\x78\x6d\x70\x2e\x64\ +\x69\x64\x3a\x65\x32\x64\x31\x65\x31\x34\x65\x2d\x33\x66\x32\x35\ +\x2d\x37\x32\x34\x37\x2d\x38\x39\x66\x33\x2d\x32\x64\x32\x63\x61\ +\x30\x31\x62\x30\x37\x65\x39\x22\x20\x64\x63\x3a\x66\x6f\x72\x6d\ +\x61\x74\x3d\x22\x69\x6d\x61\x67\x65\x2f\x70\x6e\x67\x22\x20\x70\ +\x68\x6f\x74\x6f\x73\x68\x6f\x70\x3a\x43\x6f\x6c\x6f\x72\x4d\x6f\ +\x64\x65\x3d\x22\x33\x22\x20\x70\x68\x6f\x74\x6f\x73\x68\x6f\x70\ +\x3a\x49\x43\x43\x50\x72\x6f\x66\x69\x6c\x65\x3d\x22\x41\x64\x6f\ +\x62\x65\x20\x52\x47\x42\x20\x28\x31\x39\x39\x38\x29\x22\x3e\x20\ +\x3c\x78\x6d\x70\x4d\x4d\x3a\x48\x69\x73\x74\x6f\x72\x79\x3e\x20\ +\x3c\x72\x64\x66\x3a\x53\x65\x71\x3e\x20\x3c\x72\x64\x66\x3a\x6c\ +\x69\x20\x73\x74\x45\x76\x74\x3a\x61\x63\x74\x69\x6f\x6e\x3d\x22\ +\x63\x72\x65\x61\x74\x65\x64\x22\x20\x73\x74\x45\x76\x74\x3a\x69\ +\x6e\x73\x74\x61\x6e\x63\x65\x49\x44\x3d\x22\x78\x6d\x70\x2e\x69\ +\x69\x64\x3a\x65\x32\x64\x31\x65\x31\x34\x65\x2d\x33\x66\x32\x35\ +\x2d\x37\x32\x34\x37\x2d\x38\x39\x66\x33\x2d\x32\x64\x32\x63\x61\ +\x30\x31\x62\x30\x37\x65\x39\x22\x20\x73\x74\x45\x76\x74\x3a\x77\ +\x68\x65\x6e\x3d\x22\x32\x30\x32\x31\x2d\x30\x38\x2d\x32\x38\x54\ +\x31\x35\x3a\x31\x32\x3a\x31\x37\x2b\x30\x37\x3a\x30\x30\x22\x20\ +\x73\x74\x45\x76\x74\x3a\x73\x6f\x66\x74\x77\x61\x72\x65\x41\x67\ +\x65\x6e\x74\x3d\x22\x41\x64\x6f\x62\x65\x20\x50\x68\x6f\x74\x6f\ +\x73\x68\x6f\x70\x20\x43\x43\x20\x28\x57\x69\x6e\x64\x6f\x77\x73\ +\x29\x22\x2f\x3e\x20\x3c\x72\x64\x66\x3a\x6c\x69\x20\x73\x74\x45\ +\x76\x74\x3a\x61\x63\x74\x69\x6f\x6e\x3d\x22\x73\x61\x76\x65\x64\ +\x22\x20\x73\x74\x45\x76\x74\x3a\x69\x6e\x73\x74\x61\x6e\x63\x65\ +\x49\x44\x3d\x22\x78\x6d\x70\x2e\x69\x69\x64\x3a\x38\x66\x38\x33\ +\x61\x37\x32\x64\x2d\x63\x66\x65\x31\x2d\x65\x31\x34\x39\x2d\x61\ +\x37\x66\x63\x2d\x34\x66\x33\x38\x38\x63\x35\x37\x33\x35\x65\x64\ +\x22\x20\x73\x74\x45\x76\x74\x3a\x77\x68\x65\x6e\x3d\x22\x32\x30\ +\x32\x31\x2d\x30\x38\x2d\x32\x38\x54\x31\x35\x3a\x31\x32\x3a\x31\ +\x37\x2b\x30\x37\x3a\x30\x30\x22\x20\x73\x74\x45\x76\x74\x3a\x73\ +\x6f\x66\x74\x77\x61\x72\x65\x41\x67\x65\x6e\x74\x3d\x22\x41\x64\ +\x6f\x62\x65\x20\x50\x68\x6f\x74\x6f\x73\x68\x6f\x70\x20\x43\x43\ +\x20\x28\x57\x69\x6e\x64\x6f\x77\x73\x29\x22\x20\x73\x74\x45\x76\ +\x74\x3a\x63\x68\x61\x6e\x67\x65\x64\x3d\x22\x2f\x22\x2f\x3e\x20\ +\x3c\x2f\x72\x64\x66\x3a\x53\x65\x71\x3e\x20\x3c\x2f\x78\x6d\x70\ +\x4d\x4d\x3a\x48\x69\x73\x74\x6f\x72\x79\x3e\x20\x3c\x2f\x72\x64\ +\x66\x3a\x44\x65\x73\x63\x72\x69\x70\x74\x69\x6f\x6e\x3e\x20\x3c\ +\x2f\x72\x64\x66\x3a\x52\x44\x46\x3e\x20\x3c\x2f\x78\x3a\x78\x6d\ +\x70\x6d\x65\x74\x61\x3e\x20\x3c\x3f\x78\x70\x61\x63\x6b\x65\x74\ +\x20\x65\x6e\x64\x3d\x22\x72\x22\x3f\x3e\x12\x0f\x9d\x9c\x00\x00\ +\x00\x9b\x49\x44\x41\x54\x38\x8d\xa5\x93\x51\x0a\x03\x21\x0c\x44\ +\xc7\xde\x20\x7b\x11\x7b\xfc\x7a\x88\xc2\xf6\x44\xaf\x1f\x8d\x8b\ +\x58\xa3\xc2\x06\x82\x30\xc9\xbc\x8f\x24\x26\x40\x77\xe2\xe1\x6f\ +\x96\x54\x24\xd9\x86\xc7\xbc\x37\x4b\x92\x00\x01\x2f\x7e\xf1\x06\ +\xcc\xb5\x51\x9a\xf7\x00\x14\xe0\x02\x1c\x4d\x21\x82\x58\xd7\x73\ +\xb4\x80\x15\x64\x68\xee\x01\x11\x24\x34\x8f\x00\x3d\xe4\xf4\x1c\ +\x9a\x23\x40\x85\x54\x63\x05\xfd\x99\x81\x6b\x8d\x7d\xf4\xc7\x91\ +\x06\x9a\xda\x35\x46\xd3\x3e\x81\xcf\x6c\x3b\x3b\xab\xea\x35\x8b\ +\x00\xb3\x69\x87\x90\x1d\xf3\x14\x52\x8b\x65\x61\x5e\x9e\x72\x76\ +\x61\xf6\x0f\x5a\x48\x01\x9e\x80\x12\x37\xbf\xf3\x17\xc5\x12\x83\ +\x61\x69\x9d\xa9\xb0\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\ +\x82\ +\x00\x00\x0a\x05\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ -\x00\x00\x30\x00\x00\x00\x30\x08\x06\x00\x00\x00\x57\x02\xf9\x87\ +\x00\x00\x10\x00\x00\x00\x10\x08\x06\x00\x00\x00\x1f\xf3\xff\x61\ \x00\x00\x01\x37\x69\x43\x43\x50\x41\x64\x6f\x62\x65\x20\x52\x47\ \x42\x20\x28\x31\x39\x39\x38\x29\x00\x00\x28\x91\x95\x8f\xbf\x4a\ \xc3\x50\x14\x87\xbf\x1b\x45\xc5\xa1\x56\x08\xe2\xe0\x70\x27\x51\ @@ -80,7 +167,7 @@ \x62\xc7\x70\x19\x0e\xef\x61\x7a\x54\x64\xbb\x37\x70\xb7\x01\x0b\ \xb7\x45\xb6\x5a\x85\xf2\x16\x3c\x0e\x7f\x00\xc0\xc6\x4f\xfd\xf3\ \x53\x3f\xc8\x00\x00\x00\x09\x70\x48\x59\x73\x00\x00\x2e\x23\x00\ -\x00\x2e\x23\x01\x78\xa5\x3f\x76\x00\x00\x08\x15\x69\x54\x58\x74\ +\x00\x2e\x23\x01\x78\xa5\x3f\x76\x00\x00\x06\xb5\x69\x54\x58\x74\ \x58\x4d\x4c\x3a\x63\x6f\x6d\x2e\x61\x64\x6f\x62\x65\x2e\x78\x6d\ \x70\x00\x00\x00\x00\x00\x3c\x3f\x78\x70\x61\x63\x6b\x65\x74\x20\ \x62\x65\x67\x69\x6e\x3d\x22\xef\xbb\xbf\x22\x20\x69\x64\x3d\x22\ @@ -118,70 +205,233 @@ \x3d\x22\x41\x64\x6f\x62\x65\x20\x50\x68\x6f\x74\x6f\x73\x68\x6f\ \x70\x20\x43\x43\x20\x28\x57\x69\x6e\x64\x6f\x77\x73\x29\x22\x20\ \x78\x6d\x70\x3a\x43\x72\x65\x61\x74\x65\x44\x61\x74\x65\x3d\x22\ -\x32\x30\x32\x31\x2d\x30\x38\x2d\x32\x36\x54\x31\x33\x3a\x32\x33\ -\x3a\x34\x38\x2b\x30\x37\x3a\x30\x30\x22\x20\x78\x6d\x70\x3a\x4d\ -\x6f\x64\x69\x66\x79\x44\x61\x74\x65\x3d\x22\x32\x30\x32\x31\x2d\ -\x30\x38\x2d\x32\x36\x54\x31\x34\x3a\x33\x39\x3a\x32\x32\x2b\x30\ -\x37\x3a\x30\x30\x22\x20\x78\x6d\x70\x3a\x4d\x65\x74\x61\x64\x61\ -\x74\x61\x44\x61\x74\x65\x3d\x22\x32\x30\x32\x31\x2d\x30\x38\x2d\ -\x32\x36\x54\x31\x34\x3a\x33\x39\x3a\x32\x32\x2b\x30\x37\x3a\x30\ -\x30\x22\x20\x78\x6d\x70\x4d\x4d\x3a\x44\x6f\x63\x75\x6d\x65\x6e\ +\x32\x30\x32\x31\x2d\x30\x38\x2d\x32\x36\x54\x31\x32\x3a\x35\x30\ +\x3a\x33\x34\x2b\x30\x37\x3a\x30\x30\x22\x20\x78\x6d\x70\x3a\x4d\ +\x65\x74\x61\x64\x61\x74\x61\x44\x61\x74\x65\x3d\x22\x32\x30\x32\ +\x31\x2d\x30\x38\x2d\x32\x36\x54\x31\x33\x3a\x34\x33\x3a\x32\x30\ +\x2b\x30\x37\x3a\x30\x30\x22\x20\x78\x6d\x70\x3a\x4d\x6f\x64\x69\ +\x66\x79\x44\x61\x74\x65\x3d\x22\x32\x30\x32\x31\x2d\x30\x38\x2d\ +\x32\x36\x54\x31\x33\x3a\x34\x33\x3a\x32\x30\x2b\x30\x37\x3a\x30\ +\x30\x22\x20\x78\x6d\x70\x4d\x4d\x3a\x49\x6e\x73\x74\x61\x6e\x63\ +\x65\x49\x44\x3d\x22\x78\x6d\x70\x2e\x69\x69\x64\x3a\x31\x64\x30\ +\x64\x64\x33\x64\x65\x2d\x65\x33\x32\x66\x2d\x66\x38\x34\x64\x2d\ +\x61\x39\x61\x38\x2d\x62\x37\x33\x63\x30\x35\x38\x61\x65\x30\x36\ +\x62\x22\x20\x78\x6d\x70\x4d\x4d\x3a\x44\x6f\x63\x75\x6d\x65\x6e\ \x74\x49\x44\x3d\x22\x61\x64\x6f\x62\x65\x3a\x64\x6f\x63\x69\x64\ -\x3a\x70\x68\x6f\x74\x6f\x73\x68\x6f\x70\x3a\x35\x30\x37\x38\x31\ -\x64\x36\x63\x2d\x38\x39\x34\x34\x2d\x66\x39\x34\x65\x2d\x61\x34\ -\x37\x62\x2d\x38\x35\x63\x31\x32\x36\x34\x62\x30\x35\x30\x33\x22\ -\x20\x78\x6d\x70\x4d\x4d\x3a\x49\x6e\x73\x74\x61\x6e\x63\x65\x49\ -\x44\x3d\x22\x78\x6d\x70\x2e\x69\x69\x64\x3a\x30\x31\x30\x35\x31\ -\x37\x61\x63\x2d\x64\x32\x34\x33\x2d\x38\x62\x34\x38\x2d\x61\x33\ -\x61\x30\x2d\x32\x61\x30\x39\x66\x62\x61\x35\x65\x30\x66\x62\x22\ +\x3a\x70\x68\x6f\x74\x6f\x73\x68\x6f\x70\x3a\x61\x34\x36\x39\x30\ +\x32\x38\x39\x2d\x38\x62\x66\x63\x2d\x32\x62\x34\x35\x2d\x61\x61\ +\x34\x32\x2d\x64\x62\x63\x66\x36\x35\x62\x65\x36\x30\x64\x37\x22\ \x20\x78\x6d\x70\x4d\x4d\x3a\x4f\x72\x69\x67\x69\x6e\x61\x6c\x44\ -\x6f\x63\x75\x6d\x65\x6e\x74\x49\x44\x3d\x22\x61\x64\x6f\x62\x65\ -\x3a\x64\x6f\x63\x69\x64\x3a\x70\x68\x6f\x74\x6f\x73\x68\x6f\x70\ -\x3a\x61\x34\x36\x39\x30\x32\x38\x39\x2d\x38\x62\x66\x63\x2d\x32\ -\x62\x34\x35\x2d\x61\x61\x34\x32\x2d\x64\x62\x63\x66\x36\x35\x62\ -\x65\x36\x30\x64\x37\x22\x20\x64\x63\x3a\x66\x6f\x72\x6d\x61\x74\ -\x3d\x22\x69\x6d\x61\x67\x65\x2f\x70\x6e\x67\x22\x20\x70\x68\x6f\ -\x74\x6f\x73\x68\x6f\x70\x3a\x43\x6f\x6c\x6f\x72\x4d\x6f\x64\x65\ -\x3d\x22\x33\x22\x20\x70\x68\x6f\x74\x6f\x73\x68\x6f\x70\x3a\x49\ -\x43\x43\x50\x72\x6f\x66\x69\x6c\x65\x3d\x22\x41\x64\x6f\x62\x65\ -\x20\x52\x47\x42\x20\x28\x31\x39\x39\x38\x29\x22\x3e\x20\x3c\x78\ -\x6d\x70\x4d\x4d\x3a\x48\x69\x73\x74\x6f\x72\x79\x3e\x20\x3c\x72\ -\x64\x66\x3a\x53\x65\x71\x3e\x20\x3c\x72\x64\x66\x3a\x6c\x69\x20\ -\x73\x74\x45\x76\x74\x3a\x61\x63\x74\x69\x6f\x6e\x3d\x22\x63\x72\ -\x65\x61\x74\x65\x64\x22\x20\x73\x74\x45\x76\x74\x3a\x69\x6e\x73\ -\x74\x61\x6e\x63\x65\x49\x44\x3d\x22\x78\x6d\x70\x2e\x69\x69\x64\ -\x3a\x65\x37\x39\x66\x62\x63\x35\x30\x2d\x61\x66\x32\x38\x2d\x36\ -\x38\x34\x65\x2d\x61\x35\x36\x33\x2d\x32\x36\x63\x32\x36\x37\x65\ -\x32\x33\x61\x66\x31\x22\x20\x73\x74\x45\x76\x74\x3a\x77\x68\x65\ -\x6e\x3d\x22\x32\x30\x32\x31\x2d\x30\x38\x2d\x32\x36\x54\x31\x33\ -\x3a\x32\x33\x3a\x34\x38\x2b\x30\x37\x3a\x30\x30\x22\x20\x73\x74\ -\x45\x76\x74\x3a\x73\x6f\x66\x74\x77\x61\x72\x65\x41\x67\x65\x6e\ -\x74\x3d\x22\x41\x64\x6f\x62\x65\x20\x50\x68\x6f\x74\x6f\x73\x68\ -\x6f\x70\x20\x43\x43\x20\x28\x57\x69\x6e\x64\x6f\x77\x73\x29\x22\ -\x2f\x3e\x20\x3c\x72\x64\x66\x3a\x6c\x69\x20\x73\x74\x45\x76\x74\ -\x3a\x61\x63\x74\x69\x6f\x6e\x3d\x22\x63\x6f\x6e\x76\x65\x72\x74\ -\x65\x64\x22\x20\x73\x74\x45\x76\x74\x3a\x70\x61\x72\x61\x6d\x65\ -\x74\x65\x72\x73\x3d\x22\x66\x72\x6f\x6d\x20\x61\x70\x70\x6c\x69\ -\x63\x61\x74\x69\x6f\x6e\x2f\x76\x6e\x64\x2e\x61\x64\x6f\x62\x65\ -\x2e\x70\x68\x6f\x74\x6f\x73\x68\x6f\x70\x20\x74\x6f\x20\x69\x6d\ -\x61\x67\x65\x2f\x70\x6e\x67\x22\x2f\x3e\x20\x3c\x72\x64\x66\x3a\ -\x6c\x69\x20\x73\x74\x45\x76\x74\x3a\x61\x63\x74\x69\x6f\x6e\x3d\ -\x22\x73\x61\x76\x65\x64\x22\x20\x73\x74\x45\x76\x74\x3a\x69\x6e\ -\x73\x74\x61\x6e\x63\x65\x49\x44\x3d\x22\x78\x6d\x70\x2e\x69\x69\ -\x64\x3a\x38\x32\x30\x38\x65\x64\x34\x63\x2d\x38\x65\x37\x63\x2d\ -\x30\x36\x34\x65\x2d\x38\x62\x31\x64\x2d\x34\x63\x31\x34\x34\x39\ -\x62\x64\x65\x63\x30\x62\x22\x20\x73\x74\x45\x76\x74\x3a\x77\x68\ -\x65\x6e\x3d\x22\x32\x30\x32\x31\x2d\x30\x38\x2d\x32\x36\x54\x31\ -\x33\x3a\x35\x35\x3a\x31\x36\x2b\x30\x37\x3a\x30\x30\x22\x20\x73\ -\x74\x45\x76\x74\x3a\x73\x6f\x66\x74\x77\x61\x72\x65\x41\x67\x65\ -\x6e\x74\x3d\x22\x41\x64\x6f\x62\x65\x20\x50\x68\x6f\x74\x6f\x73\ -\x68\x6f\x70\x20\x43\x43\x20\x28\x57\x69\x6e\x64\x6f\x77\x73\x29\ -\x22\x20\x73\x74\x45\x76\x74\x3a\x63\x68\x61\x6e\x67\x65\x64\x3d\ -\x22\x2f\x22\x2f\x3e\x20\x3c\x72\x64\x66\x3a\x6c\x69\x20\x73\x74\ -\x45\x76\x74\x3a\x61\x63\x74\x69\x6f\x6e\x3d\x22\x73\x61\x76\x65\ -\x64\x22\x20\x73\x74\x45\x76\x74\x3a\x69\x6e\x73\x74\x61\x6e\x63\ -\x65\x49\x44\x3d\x22\x78\x6d\x70\x2e\x69\x69\x64\x3a\x30\x31\x30\ -\x35\x31\x37\x61\x63\x2d\x64\x32\x34\x33\x2d\x38\x62\x34\x38\x2d\ +\x6f\x63\x75\x6d\x65\x6e\x74\x49\x44\x3d\x22\x78\x6d\x70\x2e\x64\ +\x69\x64\x3a\x39\x32\x61\x31\x32\x35\x31\x31\x2d\x38\x36\x39\x35\ +\x2d\x66\x64\x34\x63\x2d\x38\x37\x31\x61\x2d\x30\x62\x38\x66\x37\ +\x35\x66\x65\x34\x63\x37\x37\x22\x20\x64\x63\x3a\x66\x6f\x72\x6d\ +\x61\x74\x3d\x22\x69\x6d\x61\x67\x65\x2f\x70\x6e\x67\x22\x20\x70\ +\x68\x6f\x74\x6f\x73\x68\x6f\x70\x3a\x43\x6f\x6c\x6f\x72\x4d\x6f\ +\x64\x65\x3d\x22\x33\x22\x20\x70\x68\x6f\x74\x6f\x73\x68\x6f\x70\ +\x3a\x49\x43\x43\x50\x72\x6f\x66\x69\x6c\x65\x3d\x22\x41\x64\x6f\ +\x62\x65\x20\x52\x47\x42\x20\x28\x31\x39\x39\x38\x29\x22\x3e\x20\ +\x3c\x78\x6d\x70\x4d\x4d\x3a\x48\x69\x73\x74\x6f\x72\x79\x3e\x20\ +\x3c\x72\x64\x66\x3a\x53\x65\x71\x3e\x20\x3c\x72\x64\x66\x3a\x6c\ +\x69\x20\x73\x74\x45\x76\x74\x3a\x61\x63\x74\x69\x6f\x6e\x3d\x22\ +\x63\x72\x65\x61\x74\x65\x64\x22\x20\x73\x74\x45\x76\x74\x3a\x69\ +\x6e\x73\x74\x61\x6e\x63\x65\x49\x44\x3d\x22\x78\x6d\x70\x2e\x69\ +\x69\x64\x3a\x39\x32\x61\x31\x32\x35\x31\x31\x2d\x38\x36\x39\x35\ +\x2d\x66\x64\x34\x63\x2d\x38\x37\x31\x61\x2d\x30\x62\x38\x66\x37\ +\x35\x66\x65\x34\x63\x37\x37\x22\x20\x73\x74\x45\x76\x74\x3a\x77\ +\x68\x65\x6e\x3d\x22\x32\x30\x32\x31\x2d\x30\x38\x2d\x32\x36\x54\ +\x31\x32\x3a\x35\x30\x3a\x33\x34\x2b\x30\x37\x3a\x30\x30\x22\x20\ +\x73\x74\x45\x76\x74\x3a\x73\x6f\x66\x74\x77\x61\x72\x65\x41\x67\ +\x65\x6e\x74\x3d\x22\x41\x64\x6f\x62\x65\x20\x50\x68\x6f\x74\x6f\ +\x73\x68\x6f\x70\x20\x43\x43\x20\x28\x57\x69\x6e\x64\x6f\x77\x73\ +\x29\x22\x2f\x3e\x20\x3c\x72\x64\x66\x3a\x6c\x69\x20\x73\x74\x45\ +\x76\x74\x3a\x61\x63\x74\x69\x6f\x6e\x3d\x22\x73\x61\x76\x65\x64\ +\x22\x20\x73\x74\x45\x76\x74\x3a\x69\x6e\x73\x74\x61\x6e\x63\x65\ +\x49\x44\x3d\x22\x78\x6d\x70\x2e\x69\x69\x64\x3a\x34\x65\x65\x63\ +\x62\x35\x31\x64\x2d\x30\x33\x63\x31\x2d\x34\x64\x34\x66\x2d\x62\ +\x36\x62\x30\x2d\x37\x64\x61\x64\x64\x65\x38\x62\x62\x31\x34\x36\ +\x22\x20\x73\x74\x45\x76\x74\x3a\x77\x68\x65\x6e\x3d\x22\x32\x30\ +\x32\x31\x2d\x30\x38\x2d\x32\x36\x54\x31\x32\x3a\x35\x30\x3a\x33\ +\x34\x2b\x30\x37\x3a\x30\x30\x22\x20\x73\x74\x45\x76\x74\x3a\x73\ +\x6f\x66\x74\x77\x61\x72\x65\x41\x67\x65\x6e\x74\x3d\x22\x41\x64\ +\x6f\x62\x65\x20\x50\x68\x6f\x74\x6f\x73\x68\x6f\x70\x20\x43\x43\ +\x20\x28\x57\x69\x6e\x64\x6f\x77\x73\x29\x22\x20\x73\x74\x45\x76\ +\x74\x3a\x63\x68\x61\x6e\x67\x65\x64\x3d\x22\x2f\x22\x2f\x3e\x20\ +\x3c\x72\x64\x66\x3a\x6c\x69\x20\x73\x74\x45\x76\x74\x3a\x61\x63\ +\x74\x69\x6f\x6e\x3d\x22\x73\x61\x76\x65\x64\x22\x20\x73\x74\x45\ +\x76\x74\x3a\x69\x6e\x73\x74\x61\x6e\x63\x65\x49\x44\x3d\x22\x78\ +\x6d\x70\x2e\x69\x69\x64\x3a\x31\x64\x30\x64\x64\x33\x64\x65\x2d\ +\x65\x33\x32\x66\x2d\x66\x38\x34\x64\x2d\x61\x39\x61\x38\x2d\x62\ +\x37\x33\x63\x30\x35\x38\x61\x65\x30\x36\x62\x22\x20\x73\x74\x45\ +\x76\x74\x3a\x77\x68\x65\x6e\x3d\x22\x32\x30\x32\x31\x2d\x30\x38\ +\x2d\x32\x36\x54\x31\x33\x3a\x34\x33\x3a\x32\x30\x2b\x30\x37\x3a\ +\x30\x30\x22\x20\x73\x74\x45\x76\x74\x3a\x73\x6f\x66\x74\x77\x61\ +\x72\x65\x41\x67\x65\x6e\x74\x3d\x22\x41\x64\x6f\x62\x65\x20\x50\ +\x68\x6f\x74\x6f\x73\x68\x6f\x70\x20\x43\x43\x20\x28\x57\x69\x6e\ +\x64\x6f\x77\x73\x29\x22\x20\x73\x74\x45\x76\x74\x3a\x63\x68\x61\ +\x6e\x67\x65\x64\x3d\x22\x2f\x22\x2f\x3e\x20\x3c\x2f\x72\x64\x66\ +\x3a\x53\x65\x71\x3e\x20\x3c\x2f\x78\x6d\x70\x4d\x4d\x3a\x48\x69\ +\x73\x74\x6f\x72\x79\x3e\x20\x3c\x2f\x72\x64\x66\x3a\x44\x65\x73\ +\x63\x72\x69\x70\x74\x69\x6f\x6e\x3e\x20\x3c\x2f\x72\x64\x66\x3a\ +\x52\x44\x46\x3e\x20\x3c\x2f\x78\x3a\x78\x6d\x70\x6d\x65\x74\x61\ +\x3e\x20\x3c\x3f\x78\x70\x61\x63\x6b\x65\x74\x20\x65\x6e\x64\x3d\ +\x22\x72\x22\x3f\x3e\x46\x3f\x58\x82\x00\x00\x01\xb3\x49\x44\x41\ +\x54\x38\x8d\xa5\x93\x4f\x6b\x13\x41\x18\xc6\x7f\xef\xce\x06\x8b\ +\x49\xca\x86\x62\x82\xc7\x1e\xa4\x42\xe7\xde\x06\x84\x52\xa9\x82\ +\xe0\x61\x89\xe0\x17\xd0\x43\x3f\x81\x8a\x78\x94\x20\x9e\xd4\x8b\ +\x1e\xf4\x13\x48\x40\x51\x2f\xb6\x34\x28\x85\xb6\x9e\x37\xd2\x22\ +\xe8\x39\x5e\xba\x54\xd3\x6e\xa1\xc9\xeb\x61\xb6\xbb\x5b\xac\x52\ +\xe8\x03\xc3\x33\xc3\xcc\xf3\xbc\x7f\x78\x47\x54\x95\xd3\xc0\x07\ +\xb0\xd6\xf2\xa2\xd6\xbb\x00\x3c\x02\x16\x80\x71\x8a\xbe\xe2\x48\ +\x61\x47\x94\x65\x84\x7b\x8b\xdb\xd3\xdf\xa2\x28\x42\x54\x95\xd5\ +\x39\x99\x1a\xaa\xac\x77\x76\x1b\xc1\xc6\x7e\xc0\x40\xcd\x5f\x91\ +\xc2\x30\x64\xe9\x6d\x87\x99\x33\x31\xad\x72\x3f\xf6\x55\x67\x2f\ +\x7d\xd6\x2d\x0f\x00\x8f\x76\x67\xaf\x11\xac\x24\x13\xc7\x8a\x0f\ +\x31\x50\xc3\x4a\x32\xc1\xbb\xbd\x7a\x80\xa1\xed\xa4\x80\xf8\x2c\ +\x6c\xec\x07\x27\xae\x7b\x35\xa9\x21\x3e\x57\x33\x03\x0c\xe3\x83\ +\x91\x8b\x1c\xcd\x93\x71\x74\xdd\xe3\xf2\x79\xc9\x84\xd1\xbc\x5b\ +\x83\x91\x01\x43\x25\x37\x28\x15\xec\xc7\x52\xc1\x98\x87\x7d\x3f\ +\xe2\xd9\x0d\x97\xd9\xc3\xf8\x0d\xb6\x0b\xb6\x9b\xbe\xf3\xa1\x58\ +\x42\x8e\x6a\xda\x83\xaa\xf3\xa6\xb7\xed\xb8\x76\xb4\x37\x52\xfa\ +\xa7\x81\x97\x71\xd4\x32\xdc\xf9\x91\x9e\xeb\xc5\x47\xb9\xc6\x2b\ +\xa6\x03\x40\x25\x37\xb8\xbb\x29\x3c\x9e\x1c\x01\xf0\xa0\x7f\x2d\ +\xeb\x41\x51\xe3\x17\xd3\x01\xb0\x4f\x13\xc7\x4f\x1c\x7f\xf8\x5a\ +\xb8\xeb\xe6\xfb\x23\x3d\xc0\xb0\x53\xf6\x87\x9c\x14\x65\x7f\x88\ +\x94\xf8\x9d\xfb\x94\x58\x6e\x9e\x8b\x5b\x95\x99\x5b\xff\x15\x86\ +\x61\x08\x40\xf2\xe5\x25\x18\x3e\x02\x6e\x94\xd7\x17\xe5\xe2\x01\ +\xb2\xf6\xfa\x7b\x23\x58\xfb\x19\xb0\x7b\x70\xfc\x34\x9e\xf5\x87\ +\x34\xeb\x31\x37\x27\xfb\xb1\xf1\xb4\x39\xfb\x5c\x37\x45\x55\xb1\ +\xd6\xf2\x6a\xae\x37\x05\xb4\x15\xae\x08\x54\x15\x10\x81\xc3\x4f\ +\x95\xd2\x2f\x60\x09\xb8\x7f\xfb\xd3\xf4\x56\xf6\x99\x4e\x83\x3f\ +\xd9\xb1\x8d\xe5\xa7\x2e\x4c\x70\x00\x00\x00\x00\x49\x45\x4e\x44\ +\xae\x42\x60\x82\ +\x00\x00\x16\x76\ +\x89\ +\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ +\x00\x00\x30\x00\x00\x00\x30\x08\x06\x00\x00\x00\x57\x02\xf9\x87\ +\x00\x00\x01\x37\x69\x43\x43\x50\x41\x64\x6f\x62\x65\x20\x52\x47\ +\x42\x20\x28\x31\x39\x39\x38\x29\x00\x00\x28\x91\x95\x8f\xbf\x4a\ +\xc3\x50\x14\x87\xbf\x1b\x45\xc5\xa1\x56\x08\xe2\xe0\x70\x27\x51\ +\x50\x6c\xd5\xc1\x8c\x49\x5b\x8a\x20\x58\xab\x43\x92\xad\x49\x43\ +\x95\x62\x12\x6e\xae\x7f\xfa\x10\x8e\x6e\x1d\x5c\xdc\x7d\x02\x27\ +\x47\xc1\x41\xf1\x09\x7c\x03\xc5\xa9\x83\x43\x84\x0c\x05\x8b\xdf\ +\xf4\x9d\xdf\x39\x1c\xce\x01\xa3\x62\xd7\x9d\x86\x51\x86\xf3\x58\ +\xab\x76\xd3\x91\xae\xe7\xcb\xd9\x17\x66\x98\x02\x80\x4e\x98\xa5\ +\x76\xab\x75\x00\x10\x27\x71\xc4\x18\xdf\xef\x08\x80\xd7\x4d\xbb\ +\xee\x34\xc6\xfb\x7f\x32\x1f\xa6\x4a\x03\x23\x60\xbb\x1b\x65\x21\ +\x88\x0a\xd0\xbf\xd2\xa9\x06\x31\x04\xcc\xa0\x9f\x6a\x10\x0f\x80\ +\xa9\x4e\xda\x35\x10\x4f\x40\xa9\x97\xfb\x1b\x50\x0a\x72\xff\x00\ +\x4a\xca\xf5\x7c\x10\x5f\x80\xd9\x73\x3d\x1f\x8c\x39\xc0\x0c\x72\ +\x5f\x01\x4c\x1d\x5d\x6b\x80\x5a\x92\x0e\xd4\x59\xef\x54\xcb\xaa\ +\x65\x59\xd2\xee\x26\x41\x24\x8f\x07\x99\x8e\xce\x33\xb9\x1f\x87\ +\x89\x4a\x13\xd5\xd1\x51\x17\xc8\xef\x03\x60\x31\x1f\x6c\x37\x1d\ +\xb9\x56\xb5\xac\xbd\xf5\x7f\xfe\x3d\x11\xd7\xf3\x65\x6e\x9f\x47\ +\x08\x40\x2c\x3d\x17\x59\x41\x78\xa1\x2e\x7f\x55\x18\x3b\x93\xeb\ +\x62\xc7\x70\x19\x0e\xef\x61\x7a\x54\x64\xbb\x37\x70\xb7\x01\x0b\ +\xb7\x45\xb6\x5a\x85\xf2\x16\x3c\x0e\x7f\x00\xc0\xc6\x4f\xfd\xf3\ +\x53\x3f\xc8\x00\x00\x00\x09\x70\x48\x59\x73\x00\x00\x2e\x23\x00\ +\x00\x2e\x23\x01\x78\xa5\x3f\x76\x00\x00\x08\x15\x69\x54\x58\x74\ +\x58\x4d\x4c\x3a\x63\x6f\x6d\x2e\x61\x64\x6f\x62\x65\x2e\x78\x6d\ +\x70\x00\x00\x00\x00\x00\x3c\x3f\x78\x70\x61\x63\x6b\x65\x74\x20\ +\x62\x65\x67\x69\x6e\x3d\x22\xef\xbb\xbf\x22\x20\x69\x64\x3d\x22\ +\x57\x35\x4d\x30\x4d\x70\x43\x65\x68\x69\x48\x7a\x72\x65\x53\x7a\ +\x4e\x54\x63\x7a\x6b\x63\x39\x64\x22\x3f\x3e\x20\x3c\x78\x3a\x78\ +\x6d\x70\x6d\x65\x74\x61\x20\x78\x6d\x6c\x6e\x73\x3a\x78\x3d\x22\ +\x61\x64\x6f\x62\x65\x3a\x6e\x73\x3a\x6d\x65\x74\x61\x2f\x22\x20\ +\x78\x3a\x78\x6d\x70\x74\x6b\x3d\x22\x41\x64\x6f\x62\x65\x20\x58\ +\x4d\x50\x20\x43\x6f\x72\x65\x20\x35\x2e\x36\x2d\x63\x31\x34\x32\ +\x20\x37\x39\x2e\x31\x36\x30\x39\x32\x34\x2c\x20\x32\x30\x31\x37\ +\x2f\x30\x37\x2f\x31\x33\x2d\x30\x31\x3a\x30\x36\x3a\x33\x39\x20\ +\x20\x20\x20\x20\x20\x20\x20\x22\x3e\x20\x3c\x72\x64\x66\x3a\x52\ +\x44\x46\x20\x78\x6d\x6c\x6e\x73\x3a\x72\x64\x66\x3d\x22\x68\x74\ +\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\ +\x31\x39\x39\x39\x2f\x30\x32\x2f\x32\x32\x2d\x72\x64\x66\x2d\x73\ +\x79\x6e\x74\x61\x78\x2d\x6e\x73\x23\x22\x3e\x20\x3c\x72\x64\x66\ +\x3a\x44\x65\x73\x63\x72\x69\x70\x74\x69\x6f\x6e\x20\x72\x64\x66\ +\x3a\x61\x62\x6f\x75\x74\x3d\x22\x22\x20\x78\x6d\x6c\x6e\x73\x3a\ +\x78\x6d\x70\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x6e\x73\x2e\x61\ +\x64\x6f\x62\x65\x2e\x63\x6f\x6d\x2f\x78\x61\x70\x2f\x31\x2e\x30\ +\x2f\x22\x20\x78\x6d\x6c\x6e\x73\x3a\x78\x6d\x70\x4d\x4d\x3d\x22\ +\x68\x74\x74\x70\x3a\x2f\x2f\x6e\x73\x2e\x61\x64\x6f\x62\x65\x2e\ +\x63\x6f\x6d\x2f\x78\x61\x70\x2f\x31\x2e\x30\x2f\x6d\x6d\x2f\x22\ +\x20\x78\x6d\x6c\x6e\x73\x3a\x73\x74\x45\x76\x74\x3d\x22\x68\x74\ +\x74\x70\x3a\x2f\x2f\x6e\x73\x2e\x61\x64\x6f\x62\x65\x2e\x63\x6f\ +\x6d\x2f\x78\x61\x70\x2f\x31\x2e\x30\x2f\x73\x54\x79\x70\x65\x2f\ +\x52\x65\x73\x6f\x75\x72\x63\x65\x45\x76\x65\x6e\x74\x23\x22\x20\ +\x78\x6d\x6c\x6e\x73\x3a\x64\x63\x3d\x22\x68\x74\x74\x70\x3a\x2f\ +\x2f\x70\x75\x72\x6c\x2e\x6f\x72\x67\x2f\x64\x63\x2f\x65\x6c\x65\ +\x6d\x65\x6e\x74\x73\x2f\x31\x2e\x31\x2f\x22\x20\x78\x6d\x6c\x6e\ +\x73\x3a\x70\x68\x6f\x74\x6f\x73\x68\x6f\x70\x3d\x22\x68\x74\x74\ +\x70\x3a\x2f\x2f\x6e\x73\x2e\x61\x64\x6f\x62\x65\x2e\x63\x6f\x6d\ +\x2f\x70\x68\x6f\x74\x6f\x73\x68\x6f\x70\x2f\x31\x2e\x30\x2f\x22\ +\x20\x78\x6d\x70\x3a\x43\x72\x65\x61\x74\x6f\x72\x54\x6f\x6f\x6c\ +\x3d\x22\x41\x64\x6f\x62\x65\x20\x50\x68\x6f\x74\x6f\x73\x68\x6f\ +\x70\x20\x43\x43\x20\x28\x57\x69\x6e\x64\x6f\x77\x73\x29\x22\x20\ +\x78\x6d\x70\x3a\x43\x72\x65\x61\x74\x65\x44\x61\x74\x65\x3d\x22\ +\x32\x30\x32\x31\x2d\x30\x38\x2d\x32\x36\x54\x31\x33\x3a\x32\x33\ +\x3a\x34\x38\x2b\x30\x37\x3a\x30\x30\x22\x20\x78\x6d\x70\x3a\x4d\ +\x6f\x64\x69\x66\x79\x44\x61\x74\x65\x3d\x22\x32\x30\x32\x31\x2d\ +\x30\x38\x2d\x32\x36\x54\x31\x34\x3a\x33\x39\x3a\x32\x32\x2b\x30\ +\x37\x3a\x30\x30\x22\x20\x78\x6d\x70\x3a\x4d\x65\x74\x61\x64\x61\ +\x74\x61\x44\x61\x74\x65\x3d\x22\x32\x30\x32\x31\x2d\x30\x38\x2d\ +\x32\x36\x54\x31\x34\x3a\x33\x39\x3a\x32\x32\x2b\x30\x37\x3a\x30\ +\x30\x22\x20\x78\x6d\x70\x4d\x4d\x3a\x44\x6f\x63\x75\x6d\x65\x6e\ +\x74\x49\x44\x3d\x22\x61\x64\x6f\x62\x65\x3a\x64\x6f\x63\x69\x64\ +\x3a\x70\x68\x6f\x74\x6f\x73\x68\x6f\x70\x3a\x35\x30\x37\x38\x31\ +\x64\x36\x63\x2d\x38\x39\x34\x34\x2d\x66\x39\x34\x65\x2d\x61\x34\ +\x37\x62\x2d\x38\x35\x63\x31\x32\x36\x34\x62\x30\x35\x30\x33\x22\ +\x20\x78\x6d\x70\x4d\x4d\x3a\x49\x6e\x73\x74\x61\x6e\x63\x65\x49\ +\x44\x3d\x22\x78\x6d\x70\x2e\x69\x69\x64\x3a\x30\x31\x30\x35\x31\ +\x37\x61\x63\x2d\x64\x32\x34\x33\x2d\x38\x62\x34\x38\x2d\x61\x33\ +\x61\x30\x2d\x32\x61\x30\x39\x66\x62\x61\x35\x65\x30\x66\x62\x22\ +\x20\x78\x6d\x70\x4d\x4d\x3a\x4f\x72\x69\x67\x69\x6e\x61\x6c\x44\ +\x6f\x63\x75\x6d\x65\x6e\x74\x49\x44\x3d\x22\x61\x64\x6f\x62\x65\ +\x3a\x64\x6f\x63\x69\x64\x3a\x70\x68\x6f\x74\x6f\x73\x68\x6f\x70\ +\x3a\x61\x34\x36\x39\x30\x32\x38\x39\x2d\x38\x62\x66\x63\x2d\x32\ +\x62\x34\x35\x2d\x61\x61\x34\x32\x2d\x64\x62\x63\x66\x36\x35\x62\ +\x65\x36\x30\x64\x37\x22\x20\x64\x63\x3a\x66\x6f\x72\x6d\x61\x74\ +\x3d\x22\x69\x6d\x61\x67\x65\x2f\x70\x6e\x67\x22\x20\x70\x68\x6f\ +\x74\x6f\x73\x68\x6f\x70\x3a\x43\x6f\x6c\x6f\x72\x4d\x6f\x64\x65\ +\x3d\x22\x33\x22\x20\x70\x68\x6f\x74\x6f\x73\x68\x6f\x70\x3a\x49\ +\x43\x43\x50\x72\x6f\x66\x69\x6c\x65\x3d\x22\x41\x64\x6f\x62\x65\ +\x20\x52\x47\x42\x20\x28\x31\x39\x39\x38\x29\x22\x3e\x20\x3c\x78\ +\x6d\x70\x4d\x4d\x3a\x48\x69\x73\x74\x6f\x72\x79\x3e\x20\x3c\x72\ +\x64\x66\x3a\x53\x65\x71\x3e\x20\x3c\x72\x64\x66\x3a\x6c\x69\x20\ +\x73\x74\x45\x76\x74\x3a\x61\x63\x74\x69\x6f\x6e\x3d\x22\x63\x72\ +\x65\x61\x74\x65\x64\x22\x20\x73\x74\x45\x76\x74\x3a\x69\x6e\x73\ +\x74\x61\x6e\x63\x65\x49\x44\x3d\x22\x78\x6d\x70\x2e\x69\x69\x64\ +\x3a\x65\x37\x39\x66\x62\x63\x35\x30\x2d\x61\x66\x32\x38\x2d\x36\ +\x38\x34\x65\x2d\x61\x35\x36\x33\x2d\x32\x36\x63\x32\x36\x37\x65\ +\x32\x33\x61\x66\x31\x22\x20\x73\x74\x45\x76\x74\x3a\x77\x68\x65\ +\x6e\x3d\x22\x32\x30\x32\x31\x2d\x30\x38\x2d\x32\x36\x54\x31\x33\ +\x3a\x32\x33\x3a\x34\x38\x2b\x30\x37\x3a\x30\x30\x22\x20\x73\x74\ +\x45\x76\x74\x3a\x73\x6f\x66\x74\x77\x61\x72\x65\x41\x67\x65\x6e\ +\x74\x3d\x22\x41\x64\x6f\x62\x65\x20\x50\x68\x6f\x74\x6f\x73\x68\ +\x6f\x70\x20\x43\x43\x20\x28\x57\x69\x6e\x64\x6f\x77\x73\x29\x22\ +\x2f\x3e\x20\x3c\x72\x64\x66\x3a\x6c\x69\x20\x73\x74\x45\x76\x74\ +\x3a\x61\x63\x74\x69\x6f\x6e\x3d\x22\x63\x6f\x6e\x76\x65\x72\x74\ +\x65\x64\x22\x20\x73\x74\x45\x76\x74\x3a\x70\x61\x72\x61\x6d\x65\ +\x74\x65\x72\x73\x3d\x22\x66\x72\x6f\x6d\x20\x61\x70\x70\x6c\x69\ +\x63\x61\x74\x69\x6f\x6e\x2f\x76\x6e\x64\x2e\x61\x64\x6f\x62\x65\ +\x2e\x70\x68\x6f\x74\x6f\x73\x68\x6f\x70\x20\x74\x6f\x20\x69\x6d\ +\x61\x67\x65\x2f\x70\x6e\x67\x22\x2f\x3e\x20\x3c\x72\x64\x66\x3a\ +\x6c\x69\x20\x73\x74\x45\x76\x74\x3a\x61\x63\x74\x69\x6f\x6e\x3d\ +\x22\x73\x61\x76\x65\x64\x22\x20\x73\x74\x45\x76\x74\x3a\x69\x6e\ +\x73\x74\x61\x6e\x63\x65\x49\x44\x3d\x22\x78\x6d\x70\x2e\x69\x69\ +\x64\x3a\x38\x32\x30\x38\x65\x64\x34\x63\x2d\x38\x65\x37\x63\x2d\ +\x30\x36\x34\x65\x2d\x38\x62\x31\x64\x2d\x34\x63\x31\x34\x34\x39\ +\x62\x64\x65\x63\x30\x62\x22\x20\x73\x74\x45\x76\x74\x3a\x77\x68\ +\x65\x6e\x3d\x22\x32\x30\x32\x31\x2d\x30\x38\x2d\x32\x36\x54\x31\ +\x33\x3a\x35\x35\x3a\x31\x36\x2b\x30\x37\x3a\x30\x30\x22\x20\x73\ +\x74\x45\x76\x74\x3a\x73\x6f\x66\x74\x77\x61\x72\x65\x41\x67\x65\ +\x6e\x74\x3d\x22\x41\x64\x6f\x62\x65\x20\x50\x68\x6f\x74\x6f\x73\ +\x68\x6f\x70\x20\x43\x43\x20\x28\x57\x69\x6e\x64\x6f\x77\x73\x29\ +\x22\x20\x73\x74\x45\x76\x74\x3a\x63\x68\x61\x6e\x67\x65\x64\x3d\ +\x22\x2f\x22\x2f\x3e\x20\x3c\x72\x64\x66\x3a\x6c\x69\x20\x73\x74\ +\x45\x76\x74\x3a\x61\x63\x74\x69\x6f\x6e\x3d\x22\x73\x61\x76\x65\ +\x64\x22\x20\x73\x74\x45\x76\x74\x3a\x69\x6e\x73\x74\x61\x6e\x63\ +\x65\x49\x44\x3d\x22\x78\x6d\x70\x2e\x69\x69\x64\x3a\x30\x31\x30\ +\x35\x31\x37\x61\x63\x2d\x64\x32\x34\x33\x2d\x38\x62\x34\x38\x2d\ \x61\x33\x61\x30\x2d\x32\x61\x30\x39\x66\x62\x61\x35\x65\x30\x66\ \x62\x22\x20\x73\x74\x45\x76\x74\x3a\x77\x68\x65\x6e\x3d\x22\x32\ \x30\x32\x31\x2d\x30\x38\x2d\x32\x36\x54\x31\x34\x3a\x33\x39\x3a\ @@ -900,10 +1150,640 @@ \x36\xd9\xd2\xdc\x80\xf9\x18\x7e\x37\x5a\x1f\xda\x4d\xee\x6e\x76\ \xcd\xd1\x74\xbc\xfa\x7f\x00\xfc\x55\xb5\xb4\xec\xeb\x30\x72\x00\ \x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ -\x00\x00\x0a\x71\ +\x00\x00\x02\xbe\ +\x89\ +\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ +\x00\x00\x10\x00\x00\x00\x10\x08\x06\x00\x00\x00\x1f\xf3\xff\x61\ +\x00\x00\x02\x85\x49\x44\x41\x54\x38\x8d\x85\x91\x5d\x48\x93\x51\ +\x18\xc7\x7f\xef\x71\xc6\x5c\x6a\xd3\xcc\xaf\xec\xb5\x90\x54\x22\ +\xf1\x22\x22\x23\x88\x28\xb3\xba\xe8\x22\xe8\xe3\xa2\x20\x84\x62\ +\x89\x50\x41\x14\xd5\x75\xcc\x08\x83\x88\x40\xbb\xd2\x2e\x84\x40\ +\x29\x28\x24\xa9\x59\x91\x51\x62\x69\x81\x44\x9a\x1f\xe5\xe6\xdc\ +\x74\x7e\xac\xbd\xed\x9d\xf3\xdd\xf6\x76\xf1\x6e\xd3\x2b\x3d\xf0\ +\xe7\x9c\x87\x73\x1e\xce\xef\xf9\xff\x25\x5d\xd7\xe1\xe5\xfd\xed\ +\x58\x37\xdd\xc5\x6c\xa9\x46\x88\x4c\x56\x5b\xb1\x58\x80\x45\xd5\ +\x81\xdf\x77\x93\xe3\xd7\x46\xa4\xe9\x7b\x47\xcb\x2c\x05\x3b\x7a\ +\x87\x2b\x4b\xad\x13\x45\xb9\xc4\xcc\x66\x24\x21\x81\x44\x52\x7a\ +\x62\xd7\x63\x88\xf0\x22\xc5\x93\x33\x94\x7f\x19\xf5\xab\x53\x3f\ +\xaa\x4c\x3e\x6f\x97\xbd\x27\x7b\xc4\x3a\x69\xb2\x21\xcd\x28\x34\ +\xb9\xbb\x99\x0b\x76\xd1\x9c\xdf\xc2\xbe\x8d\xbb\xa9\xf8\xb9\x13\ +\x04\xf4\x94\x7c\xc2\xcd\x34\xdf\xd2\xc6\xe8\xb7\x40\x49\xca\x73\ +\x6b\x95\x77\xdc\x2e\x7c\x21\xaa\xeb\xa2\x63\x4c\x2b\xb3\xdc\x19\ +\xbc\xce\xdc\x7c\x17\x68\x90\x9b\x9a\x83\x5b\xf5\x42\x0c\x88\x82\ +\xd5\x94\x89\xd3\x3f\x49\xc3\xd0\x0d\x3c\xc1\x59\x2e\x98\xc6\xf1\ +\x85\xa8\x11\xca\x12\x99\x04\xa1\xcd\x3b\x00\x4b\x40\xc4\x50\xce\ +\xba\x2c\xfe\x04\x5d\x10\x05\xa4\x5d\x6c\x48\xcd\xe4\x69\xe0\x1d\ +\x68\xd0\x3a\xd3\x07\x2a\x28\x4b\xa4\x0b\x0d\x20\x04\x21\xbf\xc3\ +\x78\x1c\x57\x81\x25\x0f\x45\x0b\x42\x14\xea\xd3\x6a\x08\x47\xc3\ +\x0c\xa8\xcf\x8c\x7b\xe5\x3d\x84\x41\x03\xa4\x8e\x8b\xe8\x27\x8b\ +\x80\xcd\xf0\xb8\xb4\x85\x63\x5b\x0f\xad\x1a\x02\x80\x3c\x78\x02\ +\x9c\xfd\x74\x0c\x80\x09\xb1\x8c\x6d\x1b\xaa\x85\x5f\xd0\xb8\xed\ +\x11\x47\xe4\x03\x54\xf4\x1a\x06\x7e\xa8\xfc\x88\x53\x75\x73\x6e\ +\xe2\x8c\x91\x8c\x88\x93\x0a\x10\x7a\xa2\x88\x2c\xab\x24\xbd\x98\ +\xd1\x85\xdf\xc9\xba\x60\x7d\x1e\xbd\xf3\xdf\x8d\x3a\x31\x66\x0c\ +\x74\x01\x52\x7b\x3d\xfa\xa9\x74\x38\x5b\x51\x47\xc3\xfe\x5b\x6b\ +\xe2\xbf\x72\x75\x63\x73\xd5\x82\x07\xda\x47\x13\x04\x1a\xb4\x79\ +\x9a\x90\x3b\x64\xe4\xce\xd3\x00\x34\x7e\x6d\x46\xee\x94\x69\x1f\ +\x7e\xc1\xdf\xc5\x00\xb2\x43\x46\x7e\x2b\x63\x1b\xab\x35\xdc\x8b\ +\x18\x04\x26\x2d\x06\xa8\x46\x12\x98\xe1\x4a\xf6\x41\xc2\x91\x30\ +\x0f\x5d\x76\x10\x90\x6f\xce\x65\x4a\xf1\x1a\xf8\x22\xae\x08\x10\ +\x04\x4d\x07\x11\x81\x00\x21\x60\xd6\x20\x29\xb6\x14\xb2\xa8\x85\ +\x93\xf3\x6f\xc9\x28\x64\xc2\xef\x5a\xf6\x48\x03\xbc\x40\x00\x22\ +\x3a\xff\x04\x12\x8e\x4b\x26\x60\x01\x70\x42\x56\xca\x06\xa6\xfc\ +\x9e\x64\x43\x56\x9a\x15\x25\x1c\x34\x1a\x55\x60\xcc\xf8\xac\x3e\ +\x02\x48\xbc\x96\x5a\x2f\x53\x1e\xd3\xf9\xdc\xa7\x62\x6d\x5e\x8a\ +\x3b\x95\x88\x4a\x5a\x81\xbd\xe2\x6c\x13\xb0\x47\xe0\x17\xb0\x57\ +\xd2\x75\x9d\x27\x57\xa5\x32\xc0\x0e\x1c\x06\x32\xd6\x08\x42\x01\ +\xde\x00\xb7\xcf\x3f\xd0\x87\xff\x03\x38\x6a\x17\x21\xd5\x41\x8f\ +\xc4\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ +\x00\x00\x0a\x86\ +\x89\ +\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ +\x00\x00\x10\x00\x00\x00\x10\x08\x06\x00\x00\x00\x1f\xf3\xff\x61\ +\x00\x00\x01\x37\x69\x43\x43\x50\x41\x64\x6f\x62\x65\x20\x52\x47\ +\x42\x20\x28\x31\x39\x39\x38\x29\x00\x00\x28\x91\x95\x8f\xbf\x4a\ +\xc3\x50\x14\x87\xbf\x1b\x45\xc5\xa1\x56\x08\xe2\xe0\x70\x27\x51\ +\x50\x6c\xd5\xc1\x8c\x49\x5b\x8a\x20\x58\xab\x43\x92\xad\x49\x43\ +\x95\x62\x12\x6e\xae\x7f\xfa\x10\x8e\x6e\x1d\x5c\xdc\x7d\x02\x27\ +\x47\xc1\x41\xf1\x09\x7c\x03\xc5\xa9\x83\x43\x84\x0c\x05\x8b\xdf\ +\xf4\x9d\xdf\x39\x1c\xce\x01\xa3\x62\xd7\x9d\x86\x51\x86\xf3\x58\ +\xab\x76\xd3\x91\xae\xe7\xcb\xd9\x17\x66\x98\x02\x80\x4e\x98\xa5\ +\x76\xab\x75\x00\x10\x27\x71\xc4\x18\xdf\xef\x08\x80\xd7\x4d\xbb\ +\xee\x34\xc6\xfb\x7f\x32\x1f\xa6\x4a\x03\x23\x60\xbb\x1b\x65\x21\ +\x88\x0a\xd0\xbf\xd2\xa9\x06\x31\x04\xcc\xa0\x9f\x6a\x10\x0f\x80\ +\xa9\x4e\xda\x35\x10\x4f\x40\xa9\x97\xfb\x1b\x50\x0a\x72\xff\x00\ +\x4a\xca\xf5\x7c\x10\x5f\x80\xd9\x73\x3d\x1f\x8c\x39\xc0\x0c\x72\ +\x5f\x01\x4c\x1d\x5d\x6b\x80\x5a\x92\x0e\xd4\x59\xef\x54\xcb\xaa\ +\x65\x59\xd2\xee\x26\x41\x24\x8f\x07\x99\x8e\xce\x33\xb9\x1f\x87\ +\x89\x4a\x13\xd5\xd1\x51\x17\xc8\xef\x03\x60\x31\x1f\x6c\x37\x1d\ +\xb9\x56\xb5\xac\xbd\xf5\x7f\xfe\x3d\x11\xd7\xf3\x65\x6e\x9f\x47\ +\x08\x40\x2c\x3d\x17\x59\x41\x78\xa1\x2e\x7f\x55\x18\x3b\x93\xeb\ +\x62\xc7\x70\x19\x0e\xef\x61\x7a\x54\x64\xbb\x37\x70\xb7\x01\x0b\ +\xb7\x45\xb6\x5a\x85\xf2\x16\x3c\x0e\x7f\x00\xc0\xc6\x4f\xfd\xf3\ +\x53\x3f\xc8\x00\x00\x00\x09\x70\x48\x59\x73\x00\x00\x2e\x23\x00\ +\x00\x2e\x23\x01\x78\xa5\x3f\x76\x00\x00\x06\xb5\x69\x54\x58\x74\ +\x58\x4d\x4c\x3a\x63\x6f\x6d\x2e\x61\x64\x6f\x62\x65\x2e\x78\x6d\ +\x70\x00\x00\x00\x00\x00\x3c\x3f\x78\x70\x61\x63\x6b\x65\x74\x20\ +\x62\x65\x67\x69\x6e\x3d\x22\xef\xbb\xbf\x22\x20\x69\x64\x3d\x22\ +\x57\x35\x4d\x30\x4d\x70\x43\x65\x68\x69\x48\x7a\x72\x65\x53\x7a\ +\x4e\x54\x63\x7a\x6b\x63\x39\x64\x22\x3f\x3e\x20\x3c\x78\x3a\x78\ +\x6d\x70\x6d\x65\x74\x61\x20\x78\x6d\x6c\x6e\x73\x3a\x78\x3d\x22\ +\x61\x64\x6f\x62\x65\x3a\x6e\x73\x3a\x6d\x65\x74\x61\x2f\x22\x20\ +\x78\x3a\x78\x6d\x70\x74\x6b\x3d\x22\x41\x64\x6f\x62\x65\x20\x58\ +\x4d\x50\x20\x43\x6f\x72\x65\x20\x35\x2e\x36\x2d\x63\x31\x34\x32\ +\x20\x37\x39\x2e\x31\x36\x30\x39\x32\x34\x2c\x20\x32\x30\x31\x37\ +\x2f\x30\x37\x2f\x31\x33\x2d\x30\x31\x3a\x30\x36\x3a\x33\x39\x20\ +\x20\x20\x20\x20\x20\x20\x20\x22\x3e\x20\x3c\x72\x64\x66\x3a\x52\ +\x44\x46\x20\x78\x6d\x6c\x6e\x73\x3a\x72\x64\x66\x3d\x22\x68\x74\ +\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\ +\x31\x39\x39\x39\x2f\x30\x32\x2f\x32\x32\x2d\x72\x64\x66\x2d\x73\ +\x79\x6e\x74\x61\x78\x2d\x6e\x73\x23\x22\x3e\x20\x3c\x72\x64\x66\ +\x3a\x44\x65\x73\x63\x72\x69\x70\x74\x69\x6f\x6e\x20\x72\x64\x66\ +\x3a\x61\x62\x6f\x75\x74\x3d\x22\x22\x20\x78\x6d\x6c\x6e\x73\x3a\ +\x78\x6d\x70\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x6e\x73\x2e\x61\ +\x64\x6f\x62\x65\x2e\x63\x6f\x6d\x2f\x78\x61\x70\x2f\x31\x2e\x30\ +\x2f\x22\x20\x78\x6d\x6c\x6e\x73\x3a\x78\x6d\x70\x4d\x4d\x3d\x22\ +\x68\x74\x74\x70\x3a\x2f\x2f\x6e\x73\x2e\x61\x64\x6f\x62\x65\x2e\ +\x63\x6f\x6d\x2f\x78\x61\x70\x2f\x31\x2e\x30\x2f\x6d\x6d\x2f\x22\ +\x20\x78\x6d\x6c\x6e\x73\x3a\x73\x74\x45\x76\x74\x3d\x22\x68\x74\ +\x74\x70\x3a\x2f\x2f\x6e\x73\x2e\x61\x64\x6f\x62\x65\x2e\x63\x6f\ +\x6d\x2f\x78\x61\x70\x2f\x31\x2e\x30\x2f\x73\x54\x79\x70\x65\x2f\ +\x52\x65\x73\x6f\x75\x72\x63\x65\x45\x76\x65\x6e\x74\x23\x22\x20\ +\x78\x6d\x6c\x6e\x73\x3a\x64\x63\x3d\x22\x68\x74\x74\x70\x3a\x2f\ +\x2f\x70\x75\x72\x6c\x2e\x6f\x72\x67\x2f\x64\x63\x2f\x65\x6c\x65\ +\x6d\x65\x6e\x74\x73\x2f\x31\x2e\x31\x2f\x22\x20\x78\x6d\x6c\x6e\ +\x73\x3a\x70\x68\x6f\x74\x6f\x73\x68\x6f\x70\x3d\x22\x68\x74\x74\ +\x70\x3a\x2f\x2f\x6e\x73\x2e\x61\x64\x6f\x62\x65\x2e\x63\x6f\x6d\ +\x2f\x70\x68\x6f\x74\x6f\x73\x68\x6f\x70\x2f\x31\x2e\x30\x2f\x22\ +\x20\x78\x6d\x70\x3a\x43\x72\x65\x61\x74\x6f\x72\x54\x6f\x6f\x6c\ +\x3d\x22\x41\x64\x6f\x62\x65\x20\x50\x68\x6f\x74\x6f\x73\x68\x6f\ +\x70\x20\x43\x43\x20\x28\x57\x69\x6e\x64\x6f\x77\x73\x29\x22\x20\ +\x78\x6d\x70\x3a\x43\x72\x65\x61\x74\x65\x44\x61\x74\x65\x3d\x22\ +\x32\x30\x32\x31\x2d\x30\x38\x2d\x32\x36\x54\x31\x37\x3a\x33\x35\ +\x3a\x30\x39\x2b\x30\x37\x3a\x30\x30\x22\x20\x78\x6d\x70\x3a\x4d\ +\x65\x74\x61\x64\x61\x74\x61\x44\x61\x74\x65\x3d\x22\x32\x30\x32\ +\x31\x2d\x30\x39\x2d\x30\x32\x54\x31\x39\x3a\x34\x35\x3a\x35\x31\ +\x2b\x30\x37\x3a\x30\x30\x22\x20\x78\x6d\x70\x3a\x4d\x6f\x64\x69\ +\x66\x79\x44\x61\x74\x65\x3d\x22\x32\x30\x32\x31\x2d\x30\x39\x2d\ +\x30\x32\x54\x31\x39\x3a\x34\x35\x3a\x35\x31\x2b\x30\x37\x3a\x30\ +\x30\x22\x20\x78\x6d\x70\x4d\x4d\x3a\x49\x6e\x73\x74\x61\x6e\x63\ +\x65\x49\x44\x3d\x22\x78\x6d\x70\x2e\x69\x69\x64\x3a\x63\x37\x38\ +\x63\x61\x30\x61\x36\x2d\x65\x33\x31\x32\x2d\x61\x62\x34\x39\x2d\ +\x62\x65\x34\x64\x2d\x33\x33\x35\x62\x65\x63\x34\x63\x65\x66\x39\ +\x30\x22\x20\x78\x6d\x70\x4d\x4d\x3a\x44\x6f\x63\x75\x6d\x65\x6e\ +\x74\x49\x44\x3d\x22\x61\x64\x6f\x62\x65\x3a\x64\x6f\x63\x69\x64\ +\x3a\x70\x68\x6f\x74\x6f\x73\x68\x6f\x70\x3a\x32\x63\x36\x33\x36\ +\x65\x34\x33\x2d\x66\x63\x33\x31\x2d\x33\x34\x34\x39\x2d\x61\x61\ +\x30\x65\x2d\x65\x65\x39\x35\x34\x66\x61\x63\x31\x32\x63\x35\x22\ +\x20\x78\x6d\x70\x4d\x4d\x3a\x4f\x72\x69\x67\x69\x6e\x61\x6c\x44\ +\x6f\x63\x75\x6d\x65\x6e\x74\x49\x44\x3d\x22\x78\x6d\x70\x2e\x64\ +\x69\x64\x3a\x34\x39\x66\x31\x30\x34\x36\x37\x2d\x37\x61\x36\x62\ +\x2d\x30\x65\x34\x32\x2d\x39\x34\x37\x33\x2d\x36\x62\x64\x34\x66\ +\x34\x62\x65\x31\x31\x31\x64\x22\x20\x64\x63\x3a\x66\x6f\x72\x6d\ +\x61\x74\x3d\x22\x69\x6d\x61\x67\x65\x2f\x70\x6e\x67\x22\x20\x70\ +\x68\x6f\x74\x6f\x73\x68\x6f\x70\x3a\x43\x6f\x6c\x6f\x72\x4d\x6f\ +\x64\x65\x3d\x22\x33\x22\x20\x70\x68\x6f\x74\x6f\x73\x68\x6f\x70\ +\x3a\x49\x43\x43\x50\x72\x6f\x66\x69\x6c\x65\x3d\x22\x41\x64\x6f\ +\x62\x65\x20\x52\x47\x42\x20\x28\x31\x39\x39\x38\x29\x22\x3e\x20\ +\x3c\x78\x6d\x70\x4d\x4d\x3a\x48\x69\x73\x74\x6f\x72\x79\x3e\x20\ +\x3c\x72\x64\x66\x3a\x53\x65\x71\x3e\x20\x3c\x72\x64\x66\x3a\x6c\ +\x69\x20\x73\x74\x45\x76\x74\x3a\x61\x63\x74\x69\x6f\x6e\x3d\x22\ +\x63\x72\x65\x61\x74\x65\x64\x22\x20\x73\x74\x45\x76\x74\x3a\x69\ +\x6e\x73\x74\x61\x6e\x63\x65\x49\x44\x3d\x22\x78\x6d\x70\x2e\x69\ +\x69\x64\x3a\x34\x39\x66\x31\x30\x34\x36\x37\x2d\x37\x61\x36\x62\ +\x2d\x30\x65\x34\x32\x2d\x39\x34\x37\x33\x2d\x36\x62\x64\x34\x66\ +\x34\x62\x65\x31\x31\x31\x64\x22\x20\x73\x74\x45\x76\x74\x3a\x77\ +\x68\x65\x6e\x3d\x22\x32\x30\x32\x31\x2d\x30\x38\x2d\x32\x36\x54\ +\x31\x37\x3a\x33\x35\x3a\x30\x39\x2b\x30\x37\x3a\x30\x30\x22\x20\ +\x73\x74\x45\x76\x74\x3a\x73\x6f\x66\x74\x77\x61\x72\x65\x41\x67\ +\x65\x6e\x74\x3d\x22\x41\x64\x6f\x62\x65\x20\x50\x68\x6f\x74\x6f\ +\x73\x68\x6f\x70\x20\x43\x43\x20\x28\x57\x69\x6e\x64\x6f\x77\x73\ +\x29\x22\x2f\x3e\x20\x3c\x72\x64\x66\x3a\x6c\x69\x20\x73\x74\x45\ +\x76\x74\x3a\x61\x63\x74\x69\x6f\x6e\x3d\x22\x73\x61\x76\x65\x64\ +\x22\x20\x73\x74\x45\x76\x74\x3a\x69\x6e\x73\x74\x61\x6e\x63\x65\ +\x49\x44\x3d\x22\x78\x6d\x70\x2e\x69\x69\x64\x3a\x33\x39\x36\x64\ +\x63\x32\x34\x38\x2d\x31\x37\x35\x30\x2d\x34\x63\x34\x39\x2d\x62\ +\x31\x34\x64\x2d\x37\x61\x61\x30\x32\x33\x38\x39\x39\x30\x36\x64\ +\x22\x20\x73\x74\x45\x76\x74\x3a\x77\x68\x65\x6e\x3d\x22\x32\x30\ +\x32\x31\x2d\x30\x38\x2d\x32\x36\x54\x31\x37\x3a\x33\x35\x3a\x30\ +\x39\x2b\x30\x37\x3a\x30\x30\x22\x20\x73\x74\x45\x76\x74\x3a\x73\ +\x6f\x66\x74\x77\x61\x72\x65\x41\x67\x65\x6e\x74\x3d\x22\x41\x64\ +\x6f\x62\x65\x20\x50\x68\x6f\x74\x6f\x73\x68\x6f\x70\x20\x43\x43\ +\x20\x28\x57\x69\x6e\x64\x6f\x77\x73\x29\x22\x20\x73\x74\x45\x76\ +\x74\x3a\x63\x68\x61\x6e\x67\x65\x64\x3d\x22\x2f\x22\x2f\x3e\x20\ +\x3c\x72\x64\x66\x3a\x6c\x69\x20\x73\x74\x45\x76\x74\x3a\x61\x63\ +\x74\x69\x6f\x6e\x3d\x22\x73\x61\x76\x65\x64\x22\x20\x73\x74\x45\ +\x76\x74\x3a\x69\x6e\x73\x74\x61\x6e\x63\x65\x49\x44\x3d\x22\x78\ +\x6d\x70\x2e\x69\x69\x64\x3a\x63\x37\x38\x63\x61\x30\x61\x36\x2d\ +\x65\x33\x31\x32\x2d\x61\x62\x34\x39\x2d\x62\x65\x34\x64\x2d\x33\ +\x33\x35\x62\x65\x63\x34\x63\x65\x66\x39\x30\x22\x20\x73\x74\x45\ +\x76\x74\x3a\x77\x68\x65\x6e\x3d\x22\x32\x30\x32\x31\x2d\x30\x39\ +\x2d\x30\x32\x54\x31\x39\x3a\x34\x35\x3a\x35\x31\x2b\x30\x37\x3a\ +\x30\x30\x22\x20\x73\x74\x45\x76\x74\x3a\x73\x6f\x66\x74\x77\x61\ +\x72\x65\x41\x67\x65\x6e\x74\x3d\x22\x41\x64\x6f\x62\x65\x20\x50\ +\x68\x6f\x74\x6f\x73\x68\x6f\x70\x20\x43\x43\x20\x28\x57\x69\x6e\ +\x64\x6f\x77\x73\x29\x22\x20\x73\x74\x45\x76\x74\x3a\x63\x68\x61\ +\x6e\x67\x65\x64\x3d\x22\x2f\x22\x2f\x3e\x20\x3c\x2f\x72\x64\x66\ +\x3a\x53\x65\x71\x3e\x20\x3c\x2f\x78\x6d\x70\x4d\x4d\x3a\x48\x69\ +\x73\x74\x6f\x72\x79\x3e\x20\x3c\x2f\x72\x64\x66\x3a\x44\x65\x73\ +\x63\x72\x69\x70\x74\x69\x6f\x6e\x3e\x20\x3c\x2f\x72\x64\x66\x3a\ +\x52\x44\x46\x3e\x20\x3c\x2f\x78\x3a\x78\x6d\x70\x6d\x65\x74\x61\ +\x3e\x20\x3c\x3f\x78\x70\x61\x63\x6b\x65\x74\x20\x65\x6e\x64\x3d\ +\x22\x72\x22\x3f\x3e\xc7\xa3\x9b\xf5\x00\x00\x02\x34\x49\x44\x41\ +\x54\x38\x8d\x7d\x92\x4f\x4b\x94\x61\x14\xc5\x7f\xf7\x7d\x9f\x99\ +\x71\x1c\x1d\x8d\x16\x0a\xa1\xe1\x58\x89\x22\x19\x21\xe4\x22\x23\ +\xc8\xdc\x24\x11\x46\x9b\x04\x3f\x40\x8b\x22\x37\x59\x42\x9b\x68\ +\x08\x02\x83\xe8\x0b\x04\xe2\xca\x55\x46\x50\x59\x2d\x0a\x8a\x68\ +\xd1\x2e\x2a\x14\x2a\x23\x2c\x82\x69\x0a\xcb\xf9\xf3\x9c\x16\xef\ +\xe8\xcc\xb4\xe8\x81\xf3\xdc\xcd\xe5\xdc\x73\xce\xbd\x36\x30\x30\ +\xc0\xeb\xe1\xd2\x6e\xe0\x1a\x62\x04\x23\xcd\xff\x5f\x1e\xb1\x84\ +\x31\xbd\xef\xa9\x7b\x6f\x3a\xdb\xdf\x53\x94\x5e\xcc\x2e\x07\xad\ +\xf7\xd6\x8c\x5c\x29\xea\xb2\x9a\x1f\x55\x4b\x8b\x13\xc7\xda\x61\ +\x2a\x53\xce\xc5\x02\x86\x1c\x21\xd9\x1b\xef\x82\xd6\xf9\x4f\xb6\ +\xd5\xef\x0c\xa6\x32\x9e\xb1\x36\x61\xc0\xdd\x35\x63\x76\x25\xa0\ +\x28\xf8\x51\x82\xf9\x55\x68\x08\x83\xd6\x73\xdd\xca\x06\x84\x8c\ +\x2c\x7e\xa9\x0c\x11\x48\x62\x6a\x8f\x98\xe8\x82\x96\x94\x91\x4e\ +\x19\xa7\x33\x70\xa6\xdb\x23\x69\xab\x67\xe1\x33\xe0\x18\x0d\x08\ +\x2d\x9d\x2b\x80\xe4\xf1\x44\x0d\x63\x5d\x06\x8d\x01\x24\xab\x38\ +\xb9\x2b\x40\x08\x29\x42\xae\x20\x08\xad\xc9\xe1\x0c\x28\x23\x0c\ +\x93\x22\x25\xa9\x10\x12\x55\xef\x00\xc4\x40\xbe\x8c\xac\x26\x10\ +\x67\x04\x38\xf0\x1e\x90\x47\xde\xe3\xbd\x58\x5c\x15\xa4\x82\x3a\ +\x2c\x7c\xa8\x5a\xc0\x47\x36\x70\x46\xa4\x40\x1e\x61\x20\x81\x89\ +\xeb\xcf\x0b\x10\x8f\x73\xbc\xd7\x01\x70\xe7\x4d\x89\x9b\x2f\x8b\ +\xa8\x12\x94\x54\x09\x7c\x93\x40\xaa\x28\x30\x30\x19\x85\xb2\xc8\ +\x3e\xde\xe0\xea\xa3\x02\x18\x98\x04\x18\x32\xc0\x2b\x22\xa1\x96\ +\x00\x1f\x49\x93\xd1\xe4\x3c\x93\x9d\x01\xa3\x6d\x46\x67\xa3\x81\ +\x60\x65\x5d\xdc\xff\x2a\xe6\x3e\x8a\xf5\xca\x9d\x44\x16\xc0\x11\ +\xb3\x28\x03\xa0\x3d\x29\xe6\x86\x63\x74\xa4\xac\xee\xf4\xfa\x9a\ +\xa1\xaf\x1d\xc6\xbb\xc4\xc4\xb3\x22\xdf\xfe\x00\x26\x88\x05\x04\ +\x84\x44\x0a\xf0\x4c\x0f\xc5\xe9\xd8\xe1\xa0\x35\xac\xc7\xb6\xa8\ +\xee\xec\x70\x5c\x3c\x10\xaf\x86\x59\xb1\x90\x4f\xc7\x2d\x9d\xdf\ +\x10\x07\x7b\x63\x90\xa8\x9f\xbe\x75\xd1\x51\x0c\x1c\xea\x0f\xe0\ +\xc9\x6f\xd2\x0d\x06\x8e\x5f\x0e\x67\x4b\x27\xfa\x63\xe3\xb7\x5f\ +\x6d\xb0\xff\x56\x3e\x5a\xc4\x3f\x1c\xaa\xe1\xd8\xe4\x3b\xb5\x37\ +\x0e\x21\x0f\x02\x42\x66\x2e\x1c\x49\xe6\x26\x07\x13\xa4\x13\xd5\ +\x80\x6a\x11\xad\x0e\x90\x68\x49\xc0\xe4\x60\x9c\xf3\x87\x93\x39\ +\x42\x9b\xb1\x4c\x26\xc3\xf2\xe5\xed\x3d\x40\x16\x74\x14\xac\xb9\ +\x5e\x7a\x45\x52\xf5\x2a\x7f\x02\x0f\x81\x4b\xdd\x57\xbe\xbf\xfd\ +\x0b\x58\xf1\xfc\x4e\x1a\x56\xb5\x8c\x00\x00\x00\x00\x49\x45\x4e\ +\x44\xae\x42\x60\x82\ +\x00\x00\x02\xdd\ +\x89\ +\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ +\x00\x00\x10\x00\x00\x00\x10\x08\x06\x00\x00\x00\x1f\xf3\xff\x61\ +\x00\x00\x02\xa4\x49\x44\x41\x54\x38\x8d\x6d\x93\x4f\x6b\x9d\x55\ +\x10\xc6\x7f\x73\xce\xfb\x26\x97\xdc\xde\xf4\x6a\xa2\xad\x14\x43\ +\x2d\xd6\x54\x37\x15\x37\x2d\x74\x5b\x45\x0a\xa2\xb8\x53\x04\x77\ +\x2a\xb8\x73\x25\x2e\x14\xa1\x04\xbf\x80\x50\xfd\x02\xfa\x09\x24\ +\x98\x52\x69\xc1\x3f\x2b\xa1\x15\x21\xc1\xa0\x21\x2e\xd4\x84\xdc\ +\xde\xdc\x3f\xb9\xef\x39\x73\xce\x19\x17\x37\x94\xc4\xfa\xc0\x6c\ +\x06\xe6\x99\xe7\x19\x9e\x11\x33\x63\xf0\xc5\xa7\xe7\x7d\x55\x7f\ +\xe6\xaa\xfa\xaa\x38\x3f\x2f\xce\x21\x22\x1c\x85\x99\x61\xa5\x60\ +\x25\x0f\x4a\xd2\x9b\x39\xe9\x87\xf3\xef\x7e\xf2\x9b\xfc\x75\xfd\ +\x9d\x65\x37\xd7\xfd\xe9\xee\xd3\xd7\xba\xeb\x8f\x9d\x43\x67\x5b\ +\xd4\xce\xe3\x9c\x3c\x20\x31\x33\x4a\x31\xb4\x64\xea\xd0\x70\x61\ +\xf7\x77\x2e\x6e\x7e\xd3\x2f\x07\xfd\xcb\x2e\x84\xb8\x72\x67\xe1\ +\x4a\x77\xb5\xbd\x44\xaf\x78\x72\x36\xcc\x40\x10\xc4\x0e\x0b\xc1\ +\x0c\x72\x36\x7a\xc5\xb3\xda\x5e\xe2\x87\x47\x2e\x77\x43\x88\x2b\ +\x55\x88\x7a\xf5\x4e\xfb\x49\x46\x13\xc5\x8b\x67\xb9\x33\xc3\xf3\ +\xa7\x5a\x9c\x9e\x9f\xa5\x3d\xe3\xf0\x22\x0c\x43\x66\xbb\x1f\xf8\ +\xf9\x9f\x31\xbf\x0e\x13\xf7\x27\xca\xad\xce\x59\x9e\x8b\xfa\x52\ +\x15\x63\x9c\xff\x3b\x09\xbe\x51\xfa\xe2\x78\xf9\xec\xa3\xb4\x5b\ +\x35\xce\x81\x60\x60\xc6\x89\x1a\x2e\x2c\xd4\x9c\xeb\xcc\xf1\xfd\ +\xed\x7d\x26\x8d\x32\x4a\x42\x8c\xf1\x44\x15\x42\xa4\x69\x22\xbe\ +\x86\x58\x84\xac\x09\xf5\x0e\xef\xfd\xb1\x23\xe6\x9c\x51\x55\xf6\ +\xc6\x91\xa2\x4a\xd6\x48\x08\x91\x2a\x86\xc8\x24\x24\x5c\x16\x7c\ +\x16\x54\x03\x42\xf9\x5f\x82\xde\x30\x30\x69\x94\xac\x4a\x49\x89\ +\x18\x22\x95\x46\xe5\xa0\x51\x7c\x2d\x48\x16\x76\xf7\x03\x8f\x9f\ +\x9c\x0e\x1c\x45\x29\x85\x3f\x7b\x13\xc6\xcd\x74\xb8\xa8\xa2\x51\ +\xa9\x34\x46\x0e\x62\x46\x4a\xc6\x65\xc7\xd6\x5e\xc3\x62\xa7\x7e\ +\x28\x07\xa5\x14\x36\x76\x1a\xc6\x21\x53\x52\xc6\x52\x46\x63\xa4\ +\xd2\x10\xd8\x9f\x28\xae\x02\xa9\x8c\x1f\xb7\x46\x5c\x3c\xd3\xa2\ +\x94\xf2\x90\x85\x5b\x5b\x23\xf6\x27\x11\x4b\x8a\x25\x45\x43\xa0\ +\x8a\x21\xb0\xdb\x04\x70\x19\xf1\x89\x2f\x37\x95\x4b\xa7\x1d\xcf\ +\x9e\x99\x3b\x16\xa4\xef\xd6\x07\xac\xee\x8c\x20\x27\x2c\x27\x28\ +\x89\x18\xc2\x54\xc1\x68\x12\x41\x12\x38\x0f\xce\xf1\xda\x5a\xc3\ +\x57\x57\xba\x3c\xf3\x44\x0b\x80\xdb\xeb\x23\x3e\xb8\x37\x04\x2b\ +\x50\x0a\x94\x0c\x56\xa6\x0a\x34\x84\xc1\xd2\x78\x3c\xbf\xed\x6b\ +\x40\x40\x04\x10\xde\x58\x1d\xf1\xf9\xa5\x0e\x7b\xe3\xcc\xc7\xbf\ +\x1c\x80\x19\x1c\xe6\x02\x8c\xa5\xac\x68\x08\xa3\x2a\x85\xe6\xe6\ +\xb5\x9d\xcd\xd7\x6f\x9c\x7c\x6a\xba\x01\x3b\x74\x2d\xbc\xbf\x36\ +\x38\xfa\x4e\x0f\xfa\x88\xe3\x95\xfe\x26\x29\x34\xdf\xfa\x57\x17\ +\xab\x7b\x0b\xbd\xf5\xb7\x16\xdd\xa9\xd6\x5d\x66\x40\x13\xc4\x08\ +\x31\xfc\xa7\x14\x54\x41\x1b\xde\xbe\xff\x07\x2f\x6c\x7f\xdd\xf7\ +\x65\xfc\xa6\x98\x19\x37\x96\x67\x97\x9b\xc2\x4a\x2c\xf6\xa2\x16\ +\x3a\xc9\x8c\x62\x1c\x83\x13\xa8\x44\xa8\x1c\xc3\x59\x27\x6b\x2d\ +\xc7\x47\xef\x6d\x84\x8d\x7f\x01\x94\xaa\xa7\xf7\x0e\x04\xf9\x8f\ +\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ +\x00\x00\x0a\x71\ +\x89\ +\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ +\x00\x00\x10\x00\x00\x00\x10\x08\x06\x00\x00\x00\x1f\xf3\xff\x61\ +\x00\x00\x01\x37\x69\x43\x43\x50\x41\x64\x6f\x62\x65\x20\x52\x47\ +\x42\x20\x28\x31\x39\x39\x38\x29\x00\x00\x28\x91\x95\x8f\xbf\x4a\ +\xc3\x50\x14\x87\xbf\x1b\x45\xc5\xa1\x56\x08\xe2\xe0\x70\x27\x51\ +\x50\x6c\xd5\xc1\x8c\x49\x5b\x8a\x20\x58\xab\x43\x92\xad\x49\x43\ +\x95\x62\x12\x6e\xae\x7f\xfa\x10\x8e\x6e\x1d\x5c\xdc\x7d\x02\x27\ +\x47\xc1\x41\xf1\x09\x7c\x03\xc5\xa9\x83\x43\x84\x0c\x05\x8b\xdf\ +\xf4\x9d\xdf\x39\x1c\xce\x01\xa3\x62\xd7\x9d\x86\x51\x86\xf3\x58\ +\xab\x76\xd3\x91\xae\xe7\xcb\xd9\x17\x66\x98\x02\x80\x4e\x98\xa5\ +\x76\xab\x75\x00\x10\x27\x71\xc4\x18\xdf\xef\x08\x80\xd7\x4d\xbb\ +\xee\x34\xc6\xfb\x7f\x32\x1f\xa6\x4a\x03\x23\x60\xbb\x1b\x65\x21\ +\x88\x0a\xd0\xbf\xd2\xa9\x06\x31\x04\xcc\xa0\x9f\x6a\x10\x0f\x80\ +\xa9\x4e\xda\x35\x10\x4f\x40\xa9\x97\xfb\x1b\x50\x0a\x72\xff\x00\ +\x4a\xca\xf5\x7c\x10\x5f\x80\xd9\x73\x3d\x1f\x8c\x39\xc0\x0c\x72\ +\x5f\x01\x4c\x1d\x5d\x6b\x80\x5a\x92\x0e\xd4\x59\xef\x54\xcb\xaa\ +\x65\x59\xd2\xee\x26\x41\x24\x8f\x07\x99\x8e\xce\x33\xb9\x1f\x87\ +\x89\x4a\x13\xd5\xd1\x51\x17\xc8\xef\x03\x60\x31\x1f\x6c\x37\x1d\ +\xb9\x56\xb5\xac\xbd\xf5\x7f\xfe\x3d\x11\xd7\xf3\x65\x6e\x9f\x47\ +\x08\x40\x2c\x3d\x17\x59\x41\x78\xa1\x2e\x7f\x55\x18\x3b\x93\xeb\ +\x62\xc7\x70\x19\x0e\xef\x61\x7a\x54\x64\xbb\x37\x70\xb7\x01\x0b\ +\xb7\x45\xb6\x5a\x85\xf2\x16\x3c\x0e\x7f\x00\xc0\xc6\x4f\xfd\xf3\ +\x53\x3f\xc8\x00\x00\x00\x09\x70\x48\x59\x73\x00\x00\x2e\x23\x00\ +\x00\x2e\x23\x01\x78\xa5\x3f\x76\x00\x00\x06\xb5\x69\x54\x58\x74\ +\x58\x4d\x4c\x3a\x63\x6f\x6d\x2e\x61\x64\x6f\x62\x65\x2e\x78\x6d\ +\x70\x00\x00\x00\x00\x00\x3c\x3f\x78\x70\x61\x63\x6b\x65\x74\x20\ +\x62\x65\x67\x69\x6e\x3d\x22\xef\xbb\xbf\x22\x20\x69\x64\x3d\x22\ +\x57\x35\x4d\x30\x4d\x70\x43\x65\x68\x69\x48\x7a\x72\x65\x53\x7a\ +\x4e\x54\x63\x7a\x6b\x63\x39\x64\x22\x3f\x3e\x20\x3c\x78\x3a\x78\ +\x6d\x70\x6d\x65\x74\x61\x20\x78\x6d\x6c\x6e\x73\x3a\x78\x3d\x22\ +\x61\x64\x6f\x62\x65\x3a\x6e\x73\x3a\x6d\x65\x74\x61\x2f\x22\x20\ +\x78\x3a\x78\x6d\x70\x74\x6b\x3d\x22\x41\x64\x6f\x62\x65\x20\x58\ +\x4d\x50\x20\x43\x6f\x72\x65\x20\x35\x2e\x36\x2d\x63\x31\x34\x32\ +\x20\x37\x39\x2e\x31\x36\x30\x39\x32\x34\x2c\x20\x32\x30\x31\x37\ +\x2f\x30\x37\x2f\x31\x33\x2d\x30\x31\x3a\x30\x36\x3a\x33\x39\x20\ +\x20\x20\x20\x20\x20\x20\x20\x22\x3e\x20\x3c\x72\x64\x66\x3a\x52\ +\x44\x46\x20\x78\x6d\x6c\x6e\x73\x3a\x72\x64\x66\x3d\x22\x68\x74\ +\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\ +\x31\x39\x39\x39\x2f\x30\x32\x2f\x32\x32\x2d\x72\x64\x66\x2d\x73\ +\x79\x6e\x74\x61\x78\x2d\x6e\x73\x23\x22\x3e\x20\x3c\x72\x64\x66\ +\x3a\x44\x65\x73\x63\x72\x69\x70\x74\x69\x6f\x6e\x20\x72\x64\x66\ +\x3a\x61\x62\x6f\x75\x74\x3d\x22\x22\x20\x78\x6d\x6c\x6e\x73\x3a\ +\x78\x6d\x70\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x6e\x73\x2e\x61\ +\x64\x6f\x62\x65\x2e\x63\x6f\x6d\x2f\x78\x61\x70\x2f\x31\x2e\x30\ +\x2f\x22\x20\x78\x6d\x6c\x6e\x73\x3a\x78\x6d\x70\x4d\x4d\x3d\x22\ +\x68\x74\x74\x70\x3a\x2f\x2f\x6e\x73\x2e\x61\x64\x6f\x62\x65\x2e\ +\x63\x6f\x6d\x2f\x78\x61\x70\x2f\x31\x2e\x30\x2f\x6d\x6d\x2f\x22\ +\x20\x78\x6d\x6c\x6e\x73\x3a\x73\x74\x45\x76\x74\x3d\x22\x68\x74\ +\x74\x70\x3a\x2f\x2f\x6e\x73\x2e\x61\x64\x6f\x62\x65\x2e\x63\x6f\ +\x6d\x2f\x78\x61\x70\x2f\x31\x2e\x30\x2f\x73\x54\x79\x70\x65\x2f\ +\x52\x65\x73\x6f\x75\x72\x63\x65\x45\x76\x65\x6e\x74\x23\x22\x20\ +\x78\x6d\x6c\x6e\x73\x3a\x64\x63\x3d\x22\x68\x74\x74\x70\x3a\x2f\ +\x2f\x70\x75\x72\x6c\x2e\x6f\x72\x67\x2f\x64\x63\x2f\x65\x6c\x65\ +\x6d\x65\x6e\x74\x73\x2f\x31\x2e\x31\x2f\x22\x20\x78\x6d\x6c\x6e\ +\x73\x3a\x70\x68\x6f\x74\x6f\x73\x68\x6f\x70\x3d\x22\x68\x74\x74\ +\x70\x3a\x2f\x2f\x6e\x73\x2e\x61\x64\x6f\x62\x65\x2e\x63\x6f\x6d\ +\x2f\x70\x68\x6f\x74\x6f\x73\x68\x6f\x70\x2f\x31\x2e\x30\x2f\x22\ +\x20\x78\x6d\x70\x3a\x43\x72\x65\x61\x74\x6f\x72\x54\x6f\x6f\x6c\ +\x3d\x22\x41\x64\x6f\x62\x65\x20\x50\x68\x6f\x74\x6f\x73\x68\x6f\ +\x70\x20\x43\x43\x20\x28\x57\x69\x6e\x64\x6f\x77\x73\x29\x22\x20\ +\x78\x6d\x70\x3a\x43\x72\x65\x61\x74\x65\x44\x61\x74\x65\x3d\x22\ +\x32\x30\x32\x31\x2d\x30\x38\x2d\x32\x36\x54\x31\x37\x3a\x33\x35\ +\x3a\x30\x39\x2b\x30\x37\x3a\x30\x30\x22\x20\x78\x6d\x70\x3a\x4d\ +\x65\x74\x61\x64\x61\x74\x61\x44\x61\x74\x65\x3d\x22\x32\x30\x32\ +\x31\x2d\x30\x38\x2d\x32\x36\x54\x32\x32\x3a\x30\x35\x3a\x35\x39\ +\x2b\x30\x37\x3a\x30\x30\x22\x20\x78\x6d\x70\x3a\x4d\x6f\x64\x69\ +\x66\x79\x44\x61\x74\x65\x3d\x22\x32\x30\x32\x31\x2d\x30\x38\x2d\ +\x32\x36\x54\x32\x32\x3a\x30\x35\x3a\x35\x39\x2b\x30\x37\x3a\x30\ +\x30\x22\x20\x78\x6d\x70\x4d\x4d\x3a\x49\x6e\x73\x74\x61\x6e\x63\ +\x65\x49\x44\x3d\x22\x78\x6d\x70\x2e\x69\x69\x64\x3a\x61\x62\x36\ +\x66\x34\x31\x31\x35\x2d\x62\x31\x64\x33\x2d\x65\x62\x34\x66\x2d\ +\x38\x36\x66\x37\x2d\x36\x35\x63\x38\x34\x66\x63\x31\x35\x34\x36\ +\x64\x22\x20\x78\x6d\x70\x4d\x4d\x3a\x44\x6f\x63\x75\x6d\x65\x6e\ +\x74\x49\x44\x3d\x22\x61\x64\x6f\x62\x65\x3a\x64\x6f\x63\x69\x64\ +\x3a\x70\x68\x6f\x74\x6f\x73\x68\x6f\x70\x3a\x65\x34\x34\x66\x66\ +\x31\x33\x35\x2d\x66\x34\x61\x35\x2d\x33\x32\x34\x39\x2d\x61\x64\ +\x30\x37\x2d\x34\x35\x30\x65\x64\x63\x63\x31\x37\x65\x62\x37\x22\ +\x20\x78\x6d\x70\x4d\x4d\x3a\x4f\x72\x69\x67\x69\x6e\x61\x6c\x44\ +\x6f\x63\x75\x6d\x65\x6e\x74\x49\x44\x3d\x22\x78\x6d\x70\x2e\x64\ +\x69\x64\x3a\x34\x39\x66\x31\x30\x34\x36\x37\x2d\x37\x61\x36\x62\ +\x2d\x30\x65\x34\x32\x2d\x39\x34\x37\x33\x2d\x36\x62\x64\x34\x66\ +\x34\x62\x65\x31\x31\x31\x64\x22\x20\x64\x63\x3a\x66\x6f\x72\x6d\ +\x61\x74\x3d\x22\x69\x6d\x61\x67\x65\x2f\x70\x6e\x67\x22\x20\x70\ +\x68\x6f\x74\x6f\x73\x68\x6f\x70\x3a\x43\x6f\x6c\x6f\x72\x4d\x6f\ +\x64\x65\x3d\x22\x33\x22\x20\x70\x68\x6f\x74\x6f\x73\x68\x6f\x70\ +\x3a\x49\x43\x43\x50\x72\x6f\x66\x69\x6c\x65\x3d\x22\x41\x64\x6f\ +\x62\x65\x20\x52\x47\x42\x20\x28\x31\x39\x39\x38\x29\x22\x3e\x20\ +\x3c\x78\x6d\x70\x4d\x4d\x3a\x48\x69\x73\x74\x6f\x72\x79\x3e\x20\ +\x3c\x72\x64\x66\x3a\x53\x65\x71\x3e\x20\x3c\x72\x64\x66\x3a\x6c\ +\x69\x20\x73\x74\x45\x76\x74\x3a\x61\x63\x74\x69\x6f\x6e\x3d\x22\ +\x63\x72\x65\x61\x74\x65\x64\x22\x20\x73\x74\x45\x76\x74\x3a\x69\ +\x6e\x73\x74\x61\x6e\x63\x65\x49\x44\x3d\x22\x78\x6d\x70\x2e\x69\ +\x69\x64\x3a\x34\x39\x66\x31\x30\x34\x36\x37\x2d\x37\x61\x36\x62\ +\x2d\x30\x65\x34\x32\x2d\x39\x34\x37\x33\x2d\x36\x62\x64\x34\x66\ +\x34\x62\x65\x31\x31\x31\x64\x22\x20\x73\x74\x45\x76\x74\x3a\x77\ +\x68\x65\x6e\x3d\x22\x32\x30\x32\x31\x2d\x30\x38\x2d\x32\x36\x54\ +\x31\x37\x3a\x33\x35\x3a\x30\x39\x2b\x30\x37\x3a\x30\x30\x22\x20\ +\x73\x74\x45\x76\x74\x3a\x73\x6f\x66\x74\x77\x61\x72\x65\x41\x67\ +\x65\x6e\x74\x3d\x22\x41\x64\x6f\x62\x65\x20\x50\x68\x6f\x74\x6f\ +\x73\x68\x6f\x70\x20\x43\x43\x20\x28\x57\x69\x6e\x64\x6f\x77\x73\ +\x29\x22\x2f\x3e\x20\x3c\x72\x64\x66\x3a\x6c\x69\x20\x73\x74\x45\ +\x76\x74\x3a\x61\x63\x74\x69\x6f\x6e\x3d\x22\x73\x61\x76\x65\x64\ +\x22\x20\x73\x74\x45\x76\x74\x3a\x69\x6e\x73\x74\x61\x6e\x63\x65\ +\x49\x44\x3d\x22\x78\x6d\x70\x2e\x69\x69\x64\x3a\x33\x39\x36\x64\ +\x63\x32\x34\x38\x2d\x31\x37\x35\x30\x2d\x34\x63\x34\x39\x2d\x62\ +\x31\x34\x64\x2d\x37\x61\x61\x30\x32\x33\x38\x39\x39\x30\x36\x64\ +\x22\x20\x73\x74\x45\x76\x74\x3a\x77\x68\x65\x6e\x3d\x22\x32\x30\ +\x32\x31\x2d\x30\x38\x2d\x32\x36\x54\x31\x37\x3a\x33\x35\x3a\x30\ +\x39\x2b\x30\x37\x3a\x30\x30\x22\x20\x73\x74\x45\x76\x74\x3a\x73\ +\x6f\x66\x74\x77\x61\x72\x65\x41\x67\x65\x6e\x74\x3d\x22\x41\x64\ +\x6f\x62\x65\x20\x50\x68\x6f\x74\x6f\x73\x68\x6f\x70\x20\x43\x43\ +\x20\x28\x57\x69\x6e\x64\x6f\x77\x73\x29\x22\x20\x73\x74\x45\x76\ +\x74\x3a\x63\x68\x61\x6e\x67\x65\x64\x3d\x22\x2f\x22\x2f\x3e\x20\ +\x3c\x72\x64\x66\x3a\x6c\x69\x20\x73\x74\x45\x76\x74\x3a\x61\x63\ +\x74\x69\x6f\x6e\x3d\x22\x73\x61\x76\x65\x64\x22\x20\x73\x74\x45\ +\x76\x74\x3a\x69\x6e\x73\x74\x61\x6e\x63\x65\x49\x44\x3d\x22\x78\ +\x6d\x70\x2e\x69\x69\x64\x3a\x61\x62\x36\x66\x34\x31\x31\x35\x2d\ +\x62\x31\x64\x33\x2d\x65\x62\x34\x66\x2d\x38\x36\x66\x37\x2d\x36\ +\x35\x63\x38\x34\x66\x63\x31\x35\x34\x36\x64\x22\x20\x73\x74\x45\ +\x76\x74\x3a\x77\x68\x65\x6e\x3d\x22\x32\x30\x32\x31\x2d\x30\x38\ +\x2d\x32\x36\x54\x32\x32\x3a\x30\x35\x3a\x35\x39\x2b\x30\x37\x3a\ +\x30\x30\x22\x20\x73\x74\x45\x76\x74\x3a\x73\x6f\x66\x74\x77\x61\ +\x72\x65\x41\x67\x65\x6e\x74\x3d\x22\x41\x64\x6f\x62\x65\x20\x50\ +\x68\x6f\x74\x6f\x73\x68\x6f\x70\x20\x43\x43\x20\x28\x57\x69\x6e\ +\x64\x6f\x77\x73\x29\x22\x20\x73\x74\x45\x76\x74\x3a\x63\x68\x61\ +\x6e\x67\x65\x64\x3d\x22\x2f\x22\x2f\x3e\x20\x3c\x2f\x72\x64\x66\ +\x3a\x53\x65\x71\x3e\x20\x3c\x2f\x78\x6d\x70\x4d\x4d\x3a\x48\x69\ +\x73\x74\x6f\x72\x79\x3e\x20\x3c\x2f\x72\x64\x66\x3a\x44\x65\x73\ +\x63\x72\x69\x70\x74\x69\x6f\x6e\x3e\x20\x3c\x2f\x72\x64\x66\x3a\ +\x52\x44\x46\x3e\x20\x3c\x2f\x78\x3a\x78\x6d\x70\x6d\x65\x74\x61\ +\x3e\x20\x3c\x3f\x78\x70\x61\x63\x6b\x65\x74\x20\x65\x6e\x64\x3d\ +\x22\x72\x22\x3f\x3e\xd5\x71\x5f\x37\x00\x00\x02\x1f\x49\x44\x41\ +\x54\x38\x8d\x8d\x92\x3f\x68\x94\x41\x10\xc5\x7f\x33\xbb\xf7\xdd\ +\x91\xbb\x5c\x0c\x7a\x26\x06\xb5\x8b\x01\x31\x92\x74\x5a\x68\x15\ +\x2d\x52\x5a\xaa\xb5\x9d\xd8\xaa\x60\x2b\x82\x60\x69\x61\x65\x63\ +\x11\x90\x70\x29\xa3\x49\x88\x48\x40\xed\x92\x4e\x43\x2c\x14\x41\ +\xad\x8e\xfc\x23\xdf\x7d\xb7\x3b\x16\x7b\x31\x7f\x44\xf4\xc1\x32\ +\xb3\xcb\xce\x9b\xb7\x6f\x47\xa6\x1f\xc3\xda\x73\x86\x7b\x1c\x8f\ +\xbc\x73\x13\xce\xb9\xba\xaa\x22\x22\x98\x81\x90\x20\x2a\x88\x08\ +\x4e\xdd\xba\xaa\xce\x01\x77\x47\xef\xd8\xaa\xdc\x3b\xc3\x48\xd9\ +\xf3\x6e\xf8\x12\x47\x4e\x8d\x09\xe5\x9a\x47\x10\x44\x05\x8c\xc4\ +\x60\x89\x40\x55\xa1\x70\xac\xaf\x3a\x7e\x2c\x69\xcb\x8c\x0b\x6e\ +\xac\x8f\x67\x8d\x71\xc6\x8f\x8f\x42\x4f\x0d\x54\x52\x4f\x33\xc3\ +\xcc\x52\xce\x5e\xae\x1e\x6a\x43\x8a\x96\xb4\xb2\xfd\x4d\x86\x74\ +\xcb\x98\x70\x83\xb0\xd3\x86\x76\x01\xd1\x22\x21\x04\x42\x0c\x07\ +\xf2\x10\x02\x9d\xd0\xf9\x9d\xf7\x9f\x8d\xa0\x5c\xd5\xdc\xa8\x77\ +\x04\x96\x96\xa1\x08\x10\xa3\x31\xf3\xc6\x98\x59\x34\xa2\x45\x22\ +\x91\xe6\x42\xa4\xb9\x18\x13\x61\x0c\xcc\x7f\x88\x68\xc5\x30\xb1\ +\x9a\xef\x00\x11\x58\x5e\x05\x51\x28\x67\xd0\x9c\x4f\xc6\x85\x98\ +\x62\x73\x61\x77\x6f\x38\x6f\xac\x7d\x8d\x4c\x5c\x8c\x98\x2a\xde\ +\xba\x5e\x1d\xed\x83\xe9\x79\xd0\x5d\xdb\x81\xa9\x59\x0e\x60\x6a\ +\x16\x9c\x83\xc9\xcb\x5d\x73\x15\xfc\xae\xcb\x8d\x7e\xd8\xc9\x41\ +\x24\xad\xfd\x30\x4b\x67\x66\xe0\x3d\x9c\x68\xa4\x62\x3c\x78\x34\ +\x6d\x06\x1a\x90\xb7\xff\x2c\x3e\x8c\x4e\x80\x93\x83\x5d\x05\x0e\ +\xbc\x69\x62\x1e\x38\x96\x7e\xe1\x5f\x70\x0e\x4e\x0f\x25\x02\x71\ +\xe0\x0d\x08\x06\xb5\x1e\x98\x79\x0a\xbd\xd5\xbf\xa8\xb0\x2e\x81\ +\x87\x52\x29\xcd\x09\x62\xf8\x28\x50\x74\x20\x0f\x30\x79\xeb\xff\ +\x14\xbc\x7f\x99\x9e\x6d\x6a\xf8\x08\xeb\x9b\x9b\xd4\xb7\x7a\xe1\ +\xc5\x13\xe8\xaf\x43\x56\x4a\x97\xf7\x2b\xd9\x35\xb7\x9c\xa5\xf9\ +\x28\xf2\x48\x44\x36\x3d\xc2\x5c\xeb\x3b\xd7\xaa\x35\xa8\x94\x93\ +\xd2\x72\x29\x75\x3a\x5c\x5c\x72\x20\x1a\x11\x0d\xb4\x3e\x09\x01\ +\x5e\xb9\xf3\x83\xac\xec\x6c\x70\x53\x94\x8a\xaf\x24\x73\x8a\x0e\ +\xb4\x3b\x90\x17\x90\xe7\x29\xb6\x8b\x34\x58\xa1\x80\xed\x2f\xc6\ +\xcf\x15\x69\x61\x76\x5d\x1e\xdc\x86\xcf\x6f\x19\x41\x78\x98\x29\ +\x57\xca\x9e\xde\x92\x82\x6a\xfa\x29\x91\xbd\x98\x39\xa8\x66\x6c\ +\xd4\x32\x5e\x57\x33\xb9\x7f\xee\x86\x7e\xfc\x05\x65\x13\xe6\x9c\ +\x64\x4c\xd0\x01\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ +\ +\x00\x00\x0c\x06\ +\x89\ +\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ +\x00\x00\x20\x00\x00\x00\x20\x08\x06\x00\x00\x00\x73\x7a\x7a\xf4\ +\x00\x00\x01\x37\x69\x43\x43\x50\x41\x64\x6f\x62\x65\x20\x52\x47\ +\x42\x20\x28\x31\x39\x39\x38\x29\x00\x00\x28\x91\x95\x8f\xbf\x4a\ +\xc3\x50\x14\x87\xbf\x1b\x45\xc5\xa1\x56\x08\xe2\xe0\x70\x27\x51\ +\x50\x6c\xd5\xc1\x8c\x49\x5b\x8a\x20\x58\xab\x43\x92\xad\x49\x43\ +\x95\x62\x12\x6e\xae\x7f\xfa\x10\x8e\x6e\x1d\x5c\xdc\x7d\x02\x27\ +\x47\xc1\x41\xf1\x09\x7c\x03\xc5\xa9\x83\x43\x84\x0c\x05\x8b\xdf\ +\xf4\x9d\xdf\x39\x1c\xce\x01\xa3\x62\xd7\x9d\x86\x51\x86\xf3\x58\ +\xab\x76\xd3\x91\xae\xe7\xcb\xd9\x17\x66\x98\x02\x80\x4e\x98\xa5\ +\x76\xab\x75\x00\x10\x27\x71\xc4\x18\xdf\xef\x08\x80\xd7\x4d\xbb\ +\xee\x34\xc6\xfb\x7f\x32\x1f\xa6\x4a\x03\x23\x60\xbb\x1b\x65\x21\ +\x88\x0a\xd0\xbf\xd2\xa9\x06\x31\x04\xcc\xa0\x9f\x6a\x10\x0f\x80\ +\xa9\x4e\xda\x35\x10\x4f\x40\xa9\x97\xfb\x1b\x50\x0a\x72\xff\x00\ +\x4a\xca\xf5\x7c\x10\x5f\x80\xd9\x73\x3d\x1f\x8c\x39\xc0\x0c\x72\ +\x5f\x01\x4c\x1d\x5d\x6b\x80\x5a\x92\x0e\xd4\x59\xef\x54\xcb\xaa\ +\x65\x59\xd2\xee\x26\x41\x24\x8f\x07\x99\x8e\xce\x33\xb9\x1f\x87\ +\x89\x4a\x13\xd5\xd1\x51\x17\xc8\xef\x03\x60\x31\x1f\x6c\x37\x1d\ +\xb9\x56\xb5\xac\xbd\xf5\x7f\xfe\x3d\x11\xd7\xf3\x65\x6e\x9f\x47\ +\x08\x40\x2c\x3d\x17\x59\x41\x78\xa1\x2e\x7f\x55\x18\x3b\x93\xeb\ +\x62\xc7\x70\x19\x0e\xef\x61\x7a\x54\x64\xbb\x37\x70\xb7\x01\x0b\ +\xb7\x45\xb6\x5a\x85\xf2\x16\x3c\x0e\x7f\x00\xc0\xc6\x4f\xfd\xf3\ +\x53\x3f\xc8\x00\x00\x00\x09\x70\x48\x59\x73\x00\x00\x2e\x23\x00\ +\x00\x2e\x23\x01\x78\xa5\x3f\x76\x00\x00\x07\x53\x69\x54\x58\x74\ +\x58\x4d\x4c\x3a\x63\x6f\x6d\x2e\x61\x64\x6f\x62\x65\x2e\x78\x6d\ +\x70\x00\x00\x00\x00\x00\x3c\x3f\x78\x70\x61\x63\x6b\x65\x74\x20\ +\x62\x65\x67\x69\x6e\x3d\x22\xef\xbb\xbf\x22\x20\x69\x64\x3d\x22\ +\x57\x35\x4d\x30\x4d\x70\x43\x65\x68\x69\x48\x7a\x72\x65\x53\x7a\ +\x4e\x54\x63\x7a\x6b\x63\x39\x64\x22\x3f\x3e\x20\x3c\x78\x3a\x78\ +\x6d\x70\x6d\x65\x74\x61\x20\x78\x6d\x6c\x6e\x73\x3a\x78\x3d\x22\ +\x61\x64\x6f\x62\x65\x3a\x6e\x73\x3a\x6d\x65\x74\x61\x2f\x22\x20\ +\x78\x3a\x78\x6d\x70\x74\x6b\x3d\x22\x41\x64\x6f\x62\x65\x20\x58\ +\x4d\x50\x20\x43\x6f\x72\x65\x20\x35\x2e\x36\x2d\x63\x31\x34\x32\ +\x20\x37\x39\x2e\x31\x36\x30\x39\x32\x34\x2c\x20\x32\x30\x31\x37\ +\x2f\x30\x37\x2f\x31\x33\x2d\x30\x31\x3a\x30\x36\x3a\x33\x39\x20\ +\x20\x20\x20\x20\x20\x20\x20\x22\x3e\x20\x3c\x72\x64\x66\x3a\x52\ +\x44\x46\x20\x78\x6d\x6c\x6e\x73\x3a\x72\x64\x66\x3d\x22\x68\x74\ +\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\ +\x31\x39\x39\x39\x2f\x30\x32\x2f\x32\x32\x2d\x72\x64\x66\x2d\x73\ +\x79\x6e\x74\x61\x78\x2d\x6e\x73\x23\x22\x3e\x20\x3c\x72\x64\x66\ +\x3a\x44\x65\x73\x63\x72\x69\x70\x74\x69\x6f\x6e\x20\x72\x64\x66\ +\x3a\x61\x62\x6f\x75\x74\x3d\x22\x22\x20\x78\x6d\x6c\x6e\x73\x3a\ +\x78\x6d\x70\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x6e\x73\x2e\x61\ +\x64\x6f\x62\x65\x2e\x63\x6f\x6d\x2f\x78\x61\x70\x2f\x31\x2e\x30\ +\x2f\x22\x20\x78\x6d\x6c\x6e\x73\x3a\x78\x6d\x70\x4d\x4d\x3d\x22\ +\x68\x74\x74\x70\x3a\x2f\x2f\x6e\x73\x2e\x61\x64\x6f\x62\x65\x2e\ +\x63\x6f\x6d\x2f\x78\x61\x70\x2f\x31\x2e\x30\x2f\x6d\x6d\x2f\x22\ +\x20\x78\x6d\x6c\x6e\x73\x3a\x73\x74\x45\x76\x74\x3d\x22\x68\x74\ +\x74\x70\x3a\x2f\x2f\x6e\x73\x2e\x61\x64\x6f\x62\x65\x2e\x63\x6f\ +\x6d\x2f\x78\x61\x70\x2f\x31\x2e\x30\x2f\x73\x54\x79\x70\x65\x2f\ +\x52\x65\x73\x6f\x75\x72\x63\x65\x45\x76\x65\x6e\x74\x23\x22\x20\ +\x78\x6d\x6c\x6e\x73\x3a\x70\x68\x6f\x74\x6f\x73\x68\x6f\x70\x3d\ +\x22\x68\x74\x74\x70\x3a\x2f\x2f\x6e\x73\x2e\x61\x64\x6f\x62\x65\ +\x2e\x63\x6f\x6d\x2f\x70\x68\x6f\x74\x6f\x73\x68\x6f\x70\x2f\x31\ +\x2e\x30\x2f\x22\x20\x78\x6d\x6c\x6e\x73\x3a\x64\x63\x3d\x22\x68\ +\x74\x74\x70\x3a\x2f\x2f\x70\x75\x72\x6c\x2e\x6f\x72\x67\x2f\x64\ +\x63\x2f\x65\x6c\x65\x6d\x65\x6e\x74\x73\x2f\x31\x2e\x31\x2f\x22\ +\x20\x78\x6d\x70\x3a\x43\x72\x65\x61\x74\x6f\x72\x54\x6f\x6f\x6c\ +\x3d\x22\x41\x64\x6f\x62\x65\x20\x50\x68\x6f\x74\x6f\x73\x68\x6f\ +\x70\x20\x43\x43\x20\x28\x57\x69\x6e\x64\x6f\x77\x73\x29\x22\x20\ +\x78\x6d\x70\x3a\x43\x72\x65\x61\x74\x65\x44\x61\x74\x65\x3d\x22\ +\x32\x30\x32\x31\x2d\x30\x38\x2d\x32\x36\x54\x31\x33\x3a\x30\x30\ +\x3a\x33\x34\x2b\x30\x37\x3a\x30\x30\x22\x20\x78\x6d\x70\x3a\x4d\ +\x65\x74\x61\x64\x61\x74\x61\x44\x61\x74\x65\x3d\x22\x32\x30\x32\ +\x31\x2d\x30\x38\x2d\x32\x36\x54\x31\x33\x3a\x33\x39\x3a\x34\x35\ +\x2b\x30\x37\x3a\x30\x30\x22\x20\x78\x6d\x70\x3a\x4d\x6f\x64\x69\ +\x66\x79\x44\x61\x74\x65\x3d\x22\x32\x30\x32\x31\x2d\x30\x38\x2d\ +\x32\x36\x54\x31\x33\x3a\x33\x39\x3a\x34\x35\x2b\x30\x37\x3a\x30\ +\x30\x22\x20\x78\x6d\x70\x4d\x4d\x3a\x49\x6e\x73\x74\x61\x6e\x63\ +\x65\x49\x44\x3d\x22\x78\x6d\x70\x2e\x69\x69\x64\x3a\x32\x66\x36\ +\x64\x39\x33\x61\x36\x2d\x31\x32\x33\x37\x2d\x39\x33\x34\x66\x2d\ +\x38\x61\x35\x30\x2d\x62\x63\x30\x66\x61\x35\x31\x30\x30\x37\x63\ +\x30\x22\x20\x78\x6d\x70\x4d\x4d\x3a\x44\x6f\x63\x75\x6d\x65\x6e\ +\x74\x49\x44\x3d\x22\x61\x64\x6f\x62\x65\x3a\x64\x6f\x63\x69\x64\ +\x3a\x70\x68\x6f\x74\x6f\x73\x68\x6f\x70\x3a\x38\x37\x30\x62\x30\ +\x64\x35\x32\x2d\x39\x34\x63\x38\x2d\x62\x39\x34\x34\x2d\x62\x35\ +\x37\x64\x2d\x66\x35\x37\x64\x30\x66\x63\x39\x36\x39\x32\x62\x22\ +\x20\x78\x6d\x70\x4d\x4d\x3a\x4f\x72\x69\x67\x69\x6e\x61\x6c\x44\ +\x6f\x63\x75\x6d\x65\x6e\x74\x49\x44\x3d\x22\x78\x6d\x70\x2e\x64\ +\x69\x64\x3a\x38\x34\x62\x63\x30\x36\x62\x31\x2d\x65\x37\x61\x33\ +\x2d\x34\x37\x34\x35\x2d\x62\x61\x38\x37\x2d\x65\x33\x65\x65\x38\ +\x36\x61\x63\x62\x62\x64\x34\x22\x20\x70\x68\x6f\x74\x6f\x73\x68\ +\x6f\x70\x3a\x43\x6f\x6c\x6f\x72\x4d\x6f\x64\x65\x3d\x22\x33\x22\ +\x20\x70\x68\x6f\x74\x6f\x73\x68\x6f\x70\x3a\x49\x43\x43\x50\x72\ +\x6f\x66\x69\x6c\x65\x3d\x22\x41\x64\x6f\x62\x65\x20\x52\x47\x42\ +\x20\x28\x31\x39\x39\x38\x29\x22\x20\x64\x63\x3a\x66\x6f\x72\x6d\ +\x61\x74\x3d\x22\x69\x6d\x61\x67\x65\x2f\x70\x6e\x67\x22\x3e\x20\ +\x3c\x78\x6d\x70\x4d\x4d\x3a\x48\x69\x73\x74\x6f\x72\x79\x3e\x20\ +\x3c\x72\x64\x66\x3a\x53\x65\x71\x3e\x20\x3c\x72\x64\x66\x3a\x6c\ +\x69\x20\x73\x74\x45\x76\x74\x3a\x61\x63\x74\x69\x6f\x6e\x3d\x22\ +\x63\x72\x65\x61\x74\x65\x64\x22\x20\x73\x74\x45\x76\x74\x3a\x69\ +\x6e\x73\x74\x61\x6e\x63\x65\x49\x44\x3d\x22\x78\x6d\x70\x2e\x69\ +\x69\x64\x3a\x38\x34\x62\x63\x30\x36\x62\x31\x2d\x65\x37\x61\x33\ +\x2d\x34\x37\x34\x35\x2d\x62\x61\x38\x37\x2d\x65\x33\x65\x65\x38\ +\x36\x61\x63\x62\x62\x64\x34\x22\x20\x73\x74\x45\x76\x74\x3a\x77\ +\x68\x65\x6e\x3d\x22\x32\x30\x32\x31\x2d\x30\x38\x2d\x32\x36\x54\ +\x31\x33\x3a\x30\x30\x3a\x33\x34\x2b\x30\x37\x3a\x30\x30\x22\x20\ +\x73\x74\x45\x76\x74\x3a\x73\x6f\x66\x74\x77\x61\x72\x65\x41\x67\ +\x65\x6e\x74\x3d\x22\x41\x64\x6f\x62\x65\x20\x50\x68\x6f\x74\x6f\ +\x73\x68\x6f\x70\x20\x43\x43\x20\x28\x57\x69\x6e\x64\x6f\x77\x73\ +\x29\x22\x2f\x3e\x20\x3c\x72\x64\x66\x3a\x6c\x69\x20\x73\x74\x45\ +\x76\x74\x3a\x61\x63\x74\x69\x6f\x6e\x3d\x22\x73\x61\x76\x65\x64\ +\x22\x20\x73\x74\x45\x76\x74\x3a\x69\x6e\x73\x74\x61\x6e\x63\x65\ +\x49\x44\x3d\x22\x78\x6d\x70\x2e\x69\x69\x64\x3a\x65\x33\x33\x34\ +\x38\x30\x35\x31\x2d\x32\x63\x64\x37\x2d\x66\x62\x34\x66\x2d\x39\ +\x66\x33\x62\x2d\x36\x66\x37\x66\x61\x38\x32\x62\x66\x32\x34\x64\ +\x22\x20\x73\x74\x45\x76\x74\x3a\x77\x68\x65\x6e\x3d\x22\x32\x30\ +\x32\x31\x2d\x30\x38\x2d\x32\x36\x54\x31\x33\x3a\x30\x30\x3a\x33\ +\x34\x2b\x30\x37\x3a\x30\x30\x22\x20\x73\x74\x45\x76\x74\x3a\x73\ +\x6f\x66\x74\x77\x61\x72\x65\x41\x67\x65\x6e\x74\x3d\x22\x41\x64\ +\x6f\x62\x65\x20\x50\x68\x6f\x74\x6f\x73\x68\x6f\x70\x20\x43\x43\ +\x20\x28\x57\x69\x6e\x64\x6f\x77\x73\x29\x22\x20\x73\x74\x45\x76\ +\x74\x3a\x63\x68\x61\x6e\x67\x65\x64\x3d\x22\x2f\x22\x2f\x3e\x20\ +\x3c\x72\x64\x66\x3a\x6c\x69\x20\x73\x74\x45\x76\x74\x3a\x61\x63\ +\x74\x69\x6f\x6e\x3d\x22\x73\x61\x76\x65\x64\x22\x20\x73\x74\x45\ +\x76\x74\x3a\x69\x6e\x73\x74\x61\x6e\x63\x65\x49\x44\x3d\x22\x78\ +\x6d\x70\x2e\x69\x69\x64\x3a\x32\x66\x36\x64\x39\x33\x61\x36\x2d\ +\x31\x32\x33\x37\x2d\x39\x33\x34\x66\x2d\x38\x61\x35\x30\x2d\x62\ +\x63\x30\x66\x61\x35\x31\x30\x30\x37\x63\x30\x22\x20\x73\x74\x45\ +\x76\x74\x3a\x77\x68\x65\x6e\x3d\x22\x32\x30\x32\x31\x2d\x30\x38\ +\x2d\x32\x36\x54\x31\x33\x3a\x33\x39\x3a\x34\x35\x2b\x30\x37\x3a\ +\x30\x30\x22\x20\x73\x74\x45\x76\x74\x3a\x73\x6f\x66\x74\x77\x61\ +\x72\x65\x41\x67\x65\x6e\x74\x3d\x22\x41\x64\x6f\x62\x65\x20\x50\ +\x68\x6f\x74\x6f\x73\x68\x6f\x70\x20\x43\x43\x20\x28\x57\x69\x6e\ +\x64\x6f\x77\x73\x29\x22\x20\x73\x74\x45\x76\x74\x3a\x63\x68\x61\ +\x6e\x67\x65\x64\x3d\x22\x2f\x22\x2f\x3e\x20\x3c\x2f\x72\x64\x66\ +\x3a\x53\x65\x71\x3e\x20\x3c\x2f\x78\x6d\x70\x4d\x4d\x3a\x48\x69\ +\x73\x74\x6f\x72\x79\x3e\x20\x3c\x70\x68\x6f\x74\x6f\x73\x68\x6f\ +\x70\x3a\x44\x6f\x63\x75\x6d\x65\x6e\x74\x41\x6e\x63\x65\x73\x74\ +\x6f\x72\x73\x3e\x20\x3c\x72\x64\x66\x3a\x42\x61\x67\x3e\x20\x3c\ +\x72\x64\x66\x3a\x6c\x69\x3e\x61\x64\x6f\x62\x65\x3a\x64\x6f\x63\ +\x69\x64\x3a\x70\x68\x6f\x74\x6f\x73\x68\x6f\x70\x3a\x61\x34\x36\ +\x39\x30\x32\x38\x39\x2d\x38\x62\x66\x63\x2d\x32\x62\x34\x35\x2d\ +\x61\x61\x34\x32\x2d\x64\x62\x63\x66\x36\x35\x62\x65\x36\x30\x64\ +\x37\x3c\x2f\x72\x64\x66\x3a\x6c\x69\x3e\x20\x3c\x2f\x72\x64\x66\ +\x3a\x42\x61\x67\x3e\x20\x3c\x2f\x70\x68\x6f\x74\x6f\x73\x68\x6f\ +\x70\x3a\x44\x6f\x63\x75\x6d\x65\x6e\x74\x41\x6e\x63\x65\x73\x74\ +\x6f\x72\x73\x3e\x20\x3c\x2f\x72\x64\x66\x3a\x44\x65\x73\x63\x72\ +\x69\x70\x74\x69\x6f\x6e\x3e\x20\x3c\x2f\x72\x64\x66\x3a\x52\x44\ +\x46\x3e\x20\x3c\x2f\x78\x3a\x78\x6d\x70\x6d\x65\x74\x61\x3e\x20\ +\x3c\x3f\x78\x70\x61\x63\x6b\x65\x74\x20\x65\x6e\x64\x3d\x22\x72\ +\x22\x3f\x3e\x22\x47\x54\x58\x00\x00\x03\x16\x49\x44\x41\x54\x58\ +\x85\xc5\x97\xcf\x4b\x54\x51\x14\xc7\x3f\xe7\xbe\x99\x71\x91\xe8\ +\xb4\x88\x08\x5b\xb4\xc8\x0c\x9a\x55\x51\x5a\x48\x90\x88\x10\x54\ +\x0c\xb4\x0f\x77\x41\x41\x6b\xff\x80\x10\x17\x2d\x73\x61\x4b\x17\ +\xad\x22\xa6\x88\x8a\x10\x8d\x34\xfb\xb1\x2a\xb0\x30\x24\x0a\x52\ +\x08\x2b\x70\xcc\xac\x9c\x71\x6e\x8b\x37\xef\xbd\x7b\xdf\xbb\x4f\ +\x0d\xfc\x71\x60\x98\x7b\xee\x3b\xef\x7c\xbf\xf7\x9e\x1f\xef\x5e\ +\xd1\x5a\xb3\x93\xa2\x76\x14\x1d\xc8\x98\xca\x44\xa7\xb4\x22\x0c\ +\x00\xdd\x40\x13\xae\xcd\x11\x08\xe7\x83\xb1\xf9\x8f\x63\xec\xcb\ +\x22\x30\x02\xf4\x75\x4e\xe8\x99\xd0\x5d\x10\x82\x89\xd3\xd2\x86\ +\xe6\x25\x42\xde\x72\x62\x82\x05\xe2\x02\xc5\xf1\xdc\xd4\x23\x1f\ +\x0b\x40\x47\xe7\x33\xfd\x01\xcc\x1d\x10\xfa\x11\xf2\xef\x2a\x8d\ +\x0c\x2f\xb5\x50\xae\x59\x9b\xf3\xdf\x52\x2c\x16\x29\x95\x4a\xa1\ +\xde\xac\xaa\x5c\x6a\x9c\xe3\x48\x76\x29\x2f\xd0\x0f\x5c\x04\x33\ +\x07\x84\x6e\x14\x9b\x02\xee\x92\x72\x2d\xc3\xf0\x52\x8b\xbf\x0b\ +\x42\x4f\x30\x1f\x22\x89\xf2\x63\xbe\x15\xe0\x26\x09\xf1\xc3\xd0\ +\x98\x20\x50\x67\xb6\xf5\x12\xab\x3b\x9b\xc0\x76\x48\x2a\x01\xb5\ +\x4d\x24\x36\x4a\x60\xea\x4c\xf2\xdd\xc2\x58\x72\xfe\xe9\x1f\xc5\ +\xed\x8f\x9a\xc9\xf9\xa8\xe0\xa7\x7a\x04\xaa\xf7\xb9\x7e\xc6\x7e\ +\x17\x48\x2c\xd2\x4c\xc2\x04\x18\xc0\x54\xb7\x50\x18\x31\x3a\x92\ +\x67\xeb\xa7\xf6\xc3\xad\x23\x9a\xc2\x7c\xdd\xfe\xbc\x62\x79\x4f\ +\x96\xd2\xaf\xa3\xf4\x3f\x78\x91\x58\x84\x28\xac\xfe\x16\xc2\x6a\ +\xcf\xff\x25\x24\x3e\x97\xb1\x97\x30\x39\x5b\x83\x5d\x06\xfb\x7d\ +\x59\xfa\xc6\xab\xbc\xff\xbb\xd7\xe1\xac\xee\xcf\x30\x37\xfb\x80\ +\x3b\x07\xb2\x69\x7b\x66\x48\xde\x60\xf9\xa5\xc2\xe8\xcc\xaa\x1b\ +\x3c\x40\xf4\x6c\xd5\xc7\xf7\x92\x61\x70\x12\x88\xeb\x71\x02\xb9\ +\x75\x32\x59\x08\x7a\x01\xb0\x91\x3e\xb0\x0e\x81\xae\x7d\xc2\xe3\ +\x57\x2b\x1b\x26\x20\x5e\x4a\x0e\x88\x47\x32\xde\x2e\x87\x86\xde\ +\x75\x40\x31\x70\x36\xc7\xa3\xef\xc6\xf3\x86\xb5\x09\x68\x95\xb6\ +\x03\x69\x27\x83\x38\x81\xd9\x4a\x54\x8a\xba\xc6\xb5\xf1\x2a\xa3\ +\x9f\x6a\xe9\xf6\x31\x89\x57\x41\x44\xc0\x03\x71\x7d\xff\xe3\x21\ +\x68\x6b\xa0\x30\xf4\x37\x54\x87\x8e\xd7\xf8\x91\x87\xb7\x0b\xf5\ +\x89\x86\xb5\xcf\x38\x5a\xd9\x91\xb6\xab\xc0\x15\x82\xec\xda\x84\ +\x1e\x7e\x83\xbe\x63\x5e\xe4\x34\xb7\x26\xbe\x9f\xe8\xa9\x55\xe0\ +\x4c\xc2\x78\xef\xb4\x8d\xee\x7f\xd6\xb0\x4b\x71\xa1\x55\x85\xf6\ +\x37\x4f\x2a\x0e\xf2\xcd\xcd\x40\x61\x85\xdb\xce\x01\x23\x04\x61\ +\x9c\xdf\xfc\x0e\xc7\x85\xb1\x24\x01\x0d\x0c\xbc\x5e\xe5\x4a\x47\ +\x86\x7b\x33\x2b\x14\x6e\x2c\xfb\xf6\xe5\xe7\xf4\xba\x5a\x71\x2c\ +\x04\x21\x01\xad\xec\x1c\x08\x5f\x88\x49\xe1\xc6\x72\x62\xee\xed\ +\xd7\x1a\x97\x4b\x51\x29\x16\xc6\x92\x27\xa2\x40\xc4\xb3\x17\x6a\ +\x7f\x0b\xb6\xe3\x84\x1e\xeb\x37\x56\x23\x72\xe6\xc0\x66\x4b\xda\ +\xe7\x38\xa8\xcf\x62\xb1\xb8\x69\x58\x2e\x5f\x32\xff\xce\x4d\x00\ +\xc5\x22\x9a\xa6\xb1\x87\x77\x28\xaf\x6c\xcd\xb9\xb0\x39\x57\xe5\ +\xdc\x09\x40\x58\x8a\x60\x43\x6a\x8c\x88\x40\x6f\xeb\x1c\xcd\xb9\ +\xea\xa6\x83\xef\x6e\xa8\xd0\x7b\x68\xce\xaf\x02\xe1\x49\x08\x1b\ +\x5c\x4c\x5e\x5d\x95\xc3\x1a\x5e\x08\xf5\x8b\x49\x5d\xd2\xee\x1e\ +\xe6\xa5\xc5\x65\xa3\xc5\xa8\x2a\xfb\x96\xb4\x00\x9c\x6c\x1f\xd4\ +\xd3\x60\xec\x40\xfb\xa0\x9e\x16\xa1\x03\xe1\x2e\x8a\x9f\x61\xb6\ +\x06\x47\xb5\x60\xac\xa2\x39\x1d\x7f\x26\xd1\x4f\x30\xec\x7c\x02\ +\x3f\x11\xee\x6a\x45\x47\x00\x6e\xed\xc0\x4e\xc9\x8e\xdf\x8e\xff\ +\x01\xde\xb1\xde\x59\xd8\xdd\x2c\x0e\x00\x00\x00\x00\x49\x45\x4e\ +\x44\xae\x42\x60\x82\ +\x00\x00\x07\xc2\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ -\x00\x00\x10\x00\x00\x00\x10\x08\x06\x00\x00\x00\x1f\xf3\xff\x61\ +\x00\x00\x09\x00\x00\x00\x09\x08\x06\x00\x00\x00\xe0\x91\x06\x10\ \x00\x00\x01\x37\x69\x43\x43\x50\x41\x64\x6f\x62\x65\x20\x52\x47\ \x42\x20\x28\x31\x39\x39\x38\x29\x00\x00\x28\x91\x95\x8f\xbf\x4a\ \xc3\x50\x14\x87\xbf\x1b\x45\xc5\xa1\x56\x08\xe2\xe0\x70\x27\x51\ @@ -925,7 +1805,7 @@ \x62\xc7\x70\x19\x0e\xef\x61\x7a\x54\x64\xbb\x37\x70\xb7\x01\x0b\ \xb7\x45\xb6\x5a\x85\xf2\x16\x3c\x0e\x7f\x00\xc0\xc6\x4f\xfd\xf3\ \x53\x3f\xc8\x00\x00\x00\x09\x70\x48\x59\x73\x00\x00\x2e\x23\x00\ -\x00\x2e\x23\x01\x78\xa5\x3f\x76\x00\x00\x06\xb5\x69\x54\x58\x74\ +\x00\x2e\x23\x01\x78\xa5\x3f\x76\x00\x00\x05\xea\x69\x54\x58\x74\ \x58\x4d\x4c\x3a\x63\x6f\x6d\x2e\x61\x64\x6f\x62\x65\x2e\x78\x6d\ \x70\x00\x00\x00\x00\x00\x3c\x3f\x78\x70\x61\x63\x6b\x65\x74\x20\ \x62\x65\x67\x69\x6e\x3d\x22\xef\xbb\xbf\x22\x20\x69\x64\x3d\x22\ @@ -963,27 +1843,27 @@ \x3d\x22\x41\x64\x6f\x62\x65\x20\x50\x68\x6f\x74\x6f\x73\x68\x6f\ \x70\x20\x43\x43\x20\x28\x57\x69\x6e\x64\x6f\x77\x73\x29\x22\x20\ \x78\x6d\x70\x3a\x43\x72\x65\x61\x74\x65\x44\x61\x74\x65\x3d\x22\ -\x32\x30\x32\x31\x2d\x30\x38\x2d\x32\x36\x54\x31\x37\x3a\x33\x35\ -\x3a\x30\x39\x2b\x30\x37\x3a\x30\x30\x22\x20\x78\x6d\x70\x3a\x4d\ +\x32\x30\x32\x31\x2d\x30\x39\x2d\x30\x32\x54\x31\x38\x3a\x34\x32\ +\x3a\x32\x36\x2b\x30\x37\x3a\x30\x30\x22\x20\x78\x6d\x70\x3a\x4d\ \x65\x74\x61\x64\x61\x74\x61\x44\x61\x74\x65\x3d\x22\x32\x30\x32\ -\x31\x2d\x30\x38\x2d\x32\x36\x54\x32\x32\x3a\x30\x35\x3a\x35\x39\ +\x31\x2d\x30\x39\x2d\x30\x32\x54\x31\x38\x3a\x34\x32\x3a\x32\x36\ \x2b\x30\x37\x3a\x30\x30\x22\x20\x78\x6d\x70\x3a\x4d\x6f\x64\x69\ -\x66\x79\x44\x61\x74\x65\x3d\x22\x32\x30\x32\x31\x2d\x30\x38\x2d\ -\x32\x36\x54\x32\x32\x3a\x30\x35\x3a\x35\x39\x2b\x30\x37\x3a\x30\ +\x66\x79\x44\x61\x74\x65\x3d\x22\x32\x30\x32\x31\x2d\x30\x39\x2d\ +\x30\x32\x54\x31\x38\x3a\x34\x32\x3a\x32\x36\x2b\x30\x37\x3a\x30\ \x30\x22\x20\x78\x6d\x70\x4d\x4d\x3a\x49\x6e\x73\x74\x61\x6e\x63\ -\x65\x49\x44\x3d\x22\x78\x6d\x70\x2e\x69\x69\x64\x3a\x61\x62\x36\ -\x66\x34\x31\x31\x35\x2d\x62\x31\x64\x33\x2d\x65\x62\x34\x66\x2d\ -\x38\x36\x66\x37\x2d\x36\x35\x63\x38\x34\x66\x63\x31\x35\x34\x36\ -\x64\x22\x20\x78\x6d\x70\x4d\x4d\x3a\x44\x6f\x63\x75\x6d\x65\x6e\ +\x65\x49\x44\x3d\x22\x78\x6d\x70\x2e\x69\x69\x64\x3a\x62\x36\x39\ +\x65\x32\x31\x66\x65\x2d\x35\x62\x64\x31\x2d\x64\x63\x34\x61\x2d\ +\x39\x38\x64\x39\x2d\x37\x33\x63\x61\x31\x35\x62\x65\x35\x39\x30\ +\x31\x22\x20\x78\x6d\x70\x4d\x4d\x3a\x44\x6f\x63\x75\x6d\x65\x6e\ \x74\x49\x44\x3d\x22\x61\x64\x6f\x62\x65\x3a\x64\x6f\x63\x69\x64\ -\x3a\x70\x68\x6f\x74\x6f\x73\x68\x6f\x70\x3a\x65\x34\x34\x66\x66\ -\x31\x33\x35\x2d\x66\x34\x61\x35\x2d\x33\x32\x34\x39\x2d\x61\x64\ -\x30\x37\x2d\x34\x35\x30\x65\x64\x63\x63\x31\x37\x65\x62\x37\x22\ +\x3a\x70\x68\x6f\x74\x6f\x73\x68\x6f\x70\x3a\x38\x33\x33\x62\x61\ +\x63\x34\x66\x2d\x31\x62\x66\x64\x2d\x63\x34\x34\x64\x2d\x62\x62\ +\x33\x61\x2d\x35\x30\x63\x38\x61\x32\x34\x31\x34\x33\x65\x64\x22\ \x20\x78\x6d\x70\x4d\x4d\x3a\x4f\x72\x69\x67\x69\x6e\x61\x6c\x44\ \x6f\x63\x75\x6d\x65\x6e\x74\x49\x44\x3d\x22\x78\x6d\x70\x2e\x64\ -\x69\x64\x3a\x34\x39\x66\x31\x30\x34\x36\x37\x2d\x37\x61\x36\x62\ -\x2d\x30\x65\x34\x32\x2d\x39\x34\x37\x33\x2d\x36\x62\x64\x34\x66\ -\x34\x62\x65\x31\x31\x31\x64\x22\x20\x64\x63\x3a\x66\x6f\x72\x6d\ +\x69\x64\x3a\x39\x66\x36\x36\x31\x66\x32\x36\x2d\x38\x38\x35\x36\ +\x2d\x33\x64\x34\x34\x2d\x39\x32\x30\x34\x2d\x33\x31\x62\x33\x64\ +\x36\x35\x30\x66\x61\x63\x65\x22\x20\x64\x63\x3a\x66\x6f\x72\x6d\ \x61\x74\x3d\x22\x69\x6d\x61\x67\x65\x2f\x70\x6e\x67\x22\x20\x70\ \x68\x6f\x74\x6f\x73\x68\x6f\x70\x3a\x43\x6f\x6c\x6f\x72\x4d\x6f\ \x64\x65\x3d\x22\x33\x22\x20\x70\x68\x6f\x74\x6f\x73\x68\x6f\x70\ @@ -994,134 +1874,43 @@ \x69\x20\x73\x74\x45\x76\x74\x3a\x61\x63\x74\x69\x6f\x6e\x3d\x22\ \x63\x72\x65\x61\x74\x65\x64\x22\x20\x73\x74\x45\x76\x74\x3a\x69\ \x6e\x73\x74\x61\x6e\x63\x65\x49\x44\x3d\x22\x78\x6d\x70\x2e\x69\ -\x69\x64\x3a\x34\x39\x66\x31\x30\x34\x36\x37\x2d\x37\x61\x36\x62\ -\x2d\x30\x65\x34\x32\x2d\x39\x34\x37\x33\x2d\x36\x62\x64\x34\x66\ -\x34\x62\x65\x31\x31\x31\x64\x22\x20\x73\x74\x45\x76\x74\x3a\x77\ -\x68\x65\x6e\x3d\x22\x32\x30\x32\x31\x2d\x30\x38\x2d\x32\x36\x54\ -\x31\x37\x3a\x33\x35\x3a\x30\x39\x2b\x30\x37\x3a\x30\x30\x22\x20\ +\x69\x64\x3a\x39\x66\x36\x36\x31\x66\x32\x36\x2d\x38\x38\x35\x36\ +\x2d\x33\x64\x34\x34\x2d\x39\x32\x30\x34\x2d\x33\x31\x62\x33\x64\ +\x36\x35\x30\x66\x61\x63\x65\x22\x20\x73\x74\x45\x76\x74\x3a\x77\ +\x68\x65\x6e\x3d\x22\x32\x30\x32\x31\x2d\x30\x39\x2d\x30\x32\x54\ +\x31\x38\x3a\x34\x32\x3a\x32\x36\x2b\x30\x37\x3a\x30\x30\x22\x20\ \x73\x74\x45\x76\x74\x3a\x73\x6f\x66\x74\x77\x61\x72\x65\x41\x67\ \x65\x6e\x74\x3d\x22\x41\x64\x6f\x62\x65\x20\x50\x68\x6f\x74\x6f\ \x73\x68\x6f\x70\x20\x43\x43\x20\x28\x57\x69\x6e\x64\x6f\x77\x73\ \x29\x22\x2f\x3e\x20\x3c\x72\x64\x66\x3a\x6c\x69\x20\x73\x74\x45\ \x76\x74\x3a\x61\x63\x74\x69\x6f\x6e\x3d\x22\x73\x61\x76\x65\x64\ \x22\x20\x73\x74\x45\x76\x74\x3a\x69\x6e\x73\x74\x61\x6e\x63\x65\ -\x49\x44\x3d\x22\x78\x6d\x70\x2e\x69\x69\x64\x3a\x33\x39\x36\x64\ -\x63\x32\x34\x38\x2d\x31\x37\x35\x30\x2d\x34\x63\x34\x39\x2d\x62\ -\x31\x34\x64\x2d\x37\x61\x61\x30\x32\x33\x38\x39\x39\x30\x36\x64\ +\x49\x44\x3d\x22\x78\x6d\x70\x2e\x69\x69\x64\x3a\x62\x36\x39\x65\ +\x32\x31\x66\x65\x2d\x35\x62\x64\x31\x2d\x64\x63\x34\x61\x2d\x39\ +\x38\x64\x39\x2d\x37\x33\x63\x61\x31\x35\x62\x65\x35\x39\x30\x31\ \x22\x20\x73\x74\x45\x76\x74\x3a\x77\x68\x65\x6e\x3d\x22\x32\x30\ -\x32\x31\x2d\x30\x38\x2d\x32\x36\x54\x31\x37\x3a\x33\x35\x3a\x30\ -\x39\x2b\x30\x37\x3a\x30\x30\x22\x20\x73\x74\x45\x76\x74\x3a\x73\ +\x32\x31\x2d\x30\x39\x2d\x30\x32\x54\x31\x38\x3a\x34\x32\x3a\x32\ +\x36\x2b\x30\x37\x3a\x30\x30\x22\x20\x73\x74\x45\x76\x74\x3a\x73\ \x6f\x66\x74\x77\x61\x72\x65\x41\x67\x65\x6e\x74\x3d\x22\x41\x64\ \x6f\x62\x65\x20\x50\x68\x6f\x74\x6f\x73\x68\x6f\x70\x20\x43\x43\ \x20\x28\x57\x69\x6e\x64\x6f\x77\x73\x29\x22\x20\x73\x74\x45\x76\ \x74\x3a\x63\x68\x61\x6e\x67\x65\x64\x3d\x22\x2f\x22\x2f\x3e\x20\ -\x3c\x72\x64\x66\x3a\x6c\x69\x20\x73\x74\x45\x76\x74\x3a\x61\x63\ -\x74\x69\x6f\x6e\x3d\x22\x73\x61\x76\x65\x64\x22\x20\x73\x74\x45\ -\x76\x74\x3a\x69\x6e\x73\x74\x61\x6e\x63\x65\x49\x44\x3d\x22\x78\ -\x6d\x70\x2e\x69\x69\x64\x3a\x61\x62\x36\x66\x34\x31\x31\x35\x2d\ -\x62\x31\x64\x33\x2d\x65\x62\x34\x66\x2d\x38\x36\x66\x37\x2d\x36\ -\x35\x63\x38\x34\x66\x63\x31\x35\x34\x36\x64\x22\x20\x73\x74\x45\ -\x76\x74\x3a\x77\x68\x65\x6e\x3d\x22\x32\x30\x32\x31\x2d\x30\x38\ -\x2d\x32\x36\x54\x32\x32\x3a\x30\x35\x3a\x35\x39\x2b\x30\x37\x3a\ -\x30\x30\x22\x20\x73\x74\x45\x76\x74\x3a\x73\x6f\x66\x74\x77\x61\ -\x72\x65\x41\x67\x65\x6e\x74\x3d\x22\x41\x64\x6f\x62\x65\x20\x50\ -\x68\x6f\x74\x6f\x73\x68\x6f\x70\x20\x43\x43\x20\x28\x57\x69\x6e\ -\x64\x6f\x77\x73\x29\x22\x20\x73\x74\x45\x76\x74\x3a\x63\x68\x61\ -\x6e\x67\x65\x64\x3d\x22\x2f\x22\x2f\x3e\x20\x3c\x2f\x72\x64\x66\ -\x3a\x53\x65\x71\x3e\x20\x3c\x2f\x78\x6d\x70\x4d\x4d\x3a\x48\x69\ -\x73\x74\x6f\x72\x79\x3e\x20\x3c\x2f\x72\x64\x66\x3a\x44\x65\x73\ -\x63\x72\x69\x70\x74\x69\x6f\x6e\x3e\x20\x3c\x2f\x72\x64\x66\x3a\ -\x52\x44\x46\x3e\x20\x3c\x2f\x78\x3a\x78\x6d\x70\x6d\x65\x74\x61\ -\x3e\x20\x3c\x3f\x78\x70\x61\x63\x6b\x65\x74\x20\x65\x6e\x64\x3d\ -\x22\x72\x22\x3f\x3e\xd5\x71\x5f\x37\x00\x00\x02\x1f\x49\x44\x41\ -\x54\x38\x8d\x8d\x92\x3f\x68\x94\x41\x10\xc5\x7f\x33\xbb\xf7\xdd\ -\x91\xbb\x5c\x0c\x7a\x26\x06\xb5\x8b\x01\x31\x92\x74\x5a\x68\x15\ -\x2d\x52\x5a\xaa\xb5\x9d\xd8\xaa\x60\x2b\x82\x60\x69\x61\x65\x63\ -\x11\x90\x70\x29\xa3\x49\x88\x48\x40\xed\x92\x4e\x43\x2c\x14\x41\ -\xad\x8e\xfc\x23\xdf\x7d\xb7\x3b\x16\x7b\x31\x7f\x44\xf4\xc1\x32\ -\xb3\xcb\xce\x9b\xb7\x6f\x47\xa6\x1f\xc3\xda\x73\x86\x7b\x1c\x8f\ -\xbc\x73\x13\xce\xb9\xba\xaa\x22\x22\x98\x81\x90\x20\x2a\x88\x08\ -\x4e\xdd\xba\xaa\xce\x01\x77\x47\xef\xd8\xaa\xdc\x3b\xc3\x48\xd9\ -\xf3\x6e\xf8\x12\x47\x4e\x8d\x09\xe5\x9a\x47\x10\x44\x05\x8c\xc4\ -\x60\x89\x40\x55\xa1\x70\xac\xaf\x3a\x7e\x2c\x69\xcb\x8c\x0b\x6e\ -\xac\x8f\x67\x8d\x71\xc6\x8f\x8f\x42\x4f\x0d\x54\x52\x4f\x33\xc3\ -\xcc\x52\xce\x5e\xae\x1e\x6a\x43\x8a\x96\xb4\xb2\xfd\x4d\x86\x74\ -\xcb\x98\x70\x83\xb0\xd3\x86\x76\x01\xd1\x22\x21\x04\x42\x0c\x07\ -\xf2\x10\x02\x9d\xd0\xf9\x9d\xf7\x9f\x8d\xa0\x5c\xd5\xdc\xa8\x77\ -\x04\x96\x96\xa1\x08\x10\xa3\x31\xf3\xc6\x98\x59\x34\xa2\x45\x22\ -\x91\xe6\x42\xa4\xb9\x18\x13\x61\x0c\xcc\x7f\x88\x68\xc5\x30\xb1\ -\x9a\xef\x00\x11\x58\x5e\x05\x51\x28\x67\xd0\x9c\x4f\xc6\x85\x98\ -\x62\x73\x61\x77\x6f\x38\x6f\xac\x7d\x8d\x4c\x5c\x8c\x98\x2a\xde\ -\xba\x5e\x1d\xed\x83\xe9\x79\xd0\x5d\xdb\x81\xa9\x59\x0e\x60\x6a\ -\x16\x9c\x83\xc9\xcb\x5d\x73\x15\xfc\xae\xcb\x8d\x7e\xd8\xc9\x41\ -\x24\xad\xfd\x30\x4b\x67\x66\xe0\x3d\x9c\x68\xa4\x62\x3c\x78\x34\ -\x6d\x06\x1a\x90\xb7\xff\x2c\x3e\x8c\x4e\x80\x93\x83\x5d\x05\x0e\ -\xbc\x69\x62\x1e\x38\x96\x7e\xe1\x5f\x70\x0e\x4e\x0f\x25\x02\x71\ -\xe0\x0d\x08\x06\xb5\x1e\x98\x79\x0a\xbd\xd5\xbf\xa8\xb0\x2e\x81\ -\x87\x52\x29\xcd\x09\x62\xf8\x28\x50\x74\x20\x0f\x30\x79\xeb\xff\ -\x14\xbc\x7f\x99\x9e\x6d\x6a\xf8\x08\xeb\x9b\x9b\xd4\xb7\x7a\xe1\ -\xc5\x13\xe8\xaf\x43\x56\x4a\x97\xf7\x2b\xd9\x35\xb7\x9c\xa5\xf9\ -\x28\xf2\x48\x44\x36\x3d\xc2\x5c\xeb\x3b\xd7\xaa\x35\xa8\x94\x93\ -\xd2\x72\x29\x75\x3a\x5c\x5c\x72\x20\x1a\x11\x0d\xb4\x3e\x09\x01\ -\x5e\xb9\xf3\x83\xac\xec\x6c\x70\x53\x94\x8a\xaf\x24\x73\x8a\x0e\ -\xb4\x3b\x90\x17\x90\xe7\x29\xb6\x8b\x34\x58\xa1\x80\xed\x2f\xc6\ -\xcf\x15\x69\x61\x76\x5d\x1e\xdc\x86\xcf\x6f\x19\x41\x78\x98\x29\ -\x57\xca\x9e\xde\x92\x82\x6a\xfa\x29\x91\xbd\x98\x39\xa8\x66\x6c\ -\xd4\x32\x5e\x57\x33\xb9\x7f\xee\x86\x7e\xfc\x05\x65\x13\xe6\x9c\ -\x64\x4c\xd0\x01\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ -\ -\x00\x00\x02\xdd\ -\x89\ -\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ -\x00\x00\x10\x00\x00\x00\x10\x08\x06\x00\x00\x00\x1f\xf3\xff\x61\ -\x00\x00\x02\xa4\x49\x44\x41\x54\x38\x8d\x6d\x93\x4f\x6b\x9d\x55\ -\x10\xc6\x7f\x73\xce\xfb\x26\x97\xdc\xde\xf4\x6a\xa2\xad\x14\x43\ -\x2d\xd6\x54\x37\x15\x37\x2d\x74\x5b\x45\x0a\xa2\xb8\x53\x04\x77\ -\x2a\xb8\x73\x25\x2e\x14\xa1\x04\xbf\x80\x50\xfd\x02\xfa\x09\x24\ -\x98\x52\x69\xc1\x3f\x2b\xa1\x15\x21\xc1\xa0\x21\x2e\xd4\x84\xdc\ -\xde\xdc\x3f\xb9\xef\x39\x73\xce\x19\x17\x37\x94\xc4\xfa\xc0\x6c\ -\x06\xe6\x99\xe7\x19\x9e\x11\x33\x63\xf0\xc5\xa7\xe7\x7d\x55\x7f\ -\xe6\xaa\xfa\xaa\x38\x3f\x2f\xce\x21\x22\x1c\x85\x99\x61\xa5\x60\ -\x25\x0f\x4a\xd2\x9b\x39\xe9\x87\xf3\xef\x7e\xf2\x9b\xfc\x75\xfd\ -\x9d\x65\x37\xd7\xfd\xe9\xee\xd3\xd7\xba\xeb\x8f\x9d\x43\x67\x5b\ -\xd4\xce\xe3\x9c\x3c\x20\x31\x33\x4a\x31\xb4\x64\xea\xd0\x70\x61\ -\xf7\x77\x2e\x6e\x7e\xd3\x2f\x07\xfd\xcb\x2e\x84\xb8\x72\x67\xe1\ -\x4a\x77\xb5\xbd\x44\xaf\x78\x72\x36\xcc\x40\x10\xc4\x0e\x0b\xc1\ -\x0c\x72\x36\x7a\xc5\xb3\xda\x5e\xe2\x87\x47\x2e\x77\x43\x88\x2b\ -\x55\x88\x7a\xf5\x4e\xfb\x49\x46\x13\xc5\x8b\x67\xb9\x33\xc3\xf3\ -\xa7\x5a\x9c\x9e\x9f\xa5\x3d\xe3\xf0\x22\x0c\x43\x66\xbb\x1f\xf8\ -\xf9\x9f\x31\xbf\x0e\x13\xf7\x27\xca\xad\xce\x59\x9e\x8b\xfa\x52\ -\x15\x63\x9c\xff\x3b\x09\xbe\x51\xfa\xe2\x78\xf9\xec\xa3\xb4\x5b\ -\x35\xce\x81\x60\x60\xc6\x89\x1a\x2e\x2c\xd4\x9c\xeb\xcc\xf1\xfd\ -\xed\x7d\x26\x8d\x32\x4a\x42\x8c\xf1\x44\x15\x42\xa4\x69\x22\xbe\ -\x86\x58\x84\xac\x09\xf5\x0e\xef\xfd\xb1\x23\xe6\x9c\x51\x55\xf6\ -\xc6\x91\xa2\x4a\xd6\x48\x08\x91\x2a\x86\xc8\x24\x24\x5c\x16\x7c\ -\x16\x54\x03\x42\xf9\x5f\x82\xde\x30\x30\x69\x94\xac\x4a\x49\x89\ -\x18\x22\x95\x46\xe5\xa0\x51\x7c\x2d\x48\x16\x76\xf7\x03\x8f\x9f\ -\x9c\x0e\x1c\x45\x29\x85\x3f\x7b\x13\xc6\xcd\x74\xb8\xa8\xa2\x51\ -\xa9\x34\x46\x0e\x62\x46\x4a\xc6\x65\xc7\xd6\x5e\xc3\x62\xa7\x7e\ -\x28\x07\xa5\x14\x36\x76\x1a\xc6\x21\x53\x52\xc6\x52\x46\x63\xa4\ -\xd2\x10\xd8\x9f\x28\xae\x02\xa9\x8c\x1f\xb7\x46\x5c\x3c\xd3\xa2\ -\x94\xf2\x90\x85\x5b\x5b\x23\xf6\x27\x11\x4b\x8a\x25\x45\x43\xa0\ -\x8a\x21\xb0\xdb\x04\x70\x19\xf1\x89\x2f\x37\x95\x4b\xa7\x1d\xcf\ -\x9e\x99\x3b\x16\xa4\xef\xd6\x07\xac\xee\x8c\x20\x27\x2c\x27\x28\ -\x89\x18\xc2\x54\xc1\x68\x12\x41\x12\x38\x0f\xce\xf1\xda\x5a\xc3\ -\x57\x57\xba\x3c\xf3\x44\x0b\x80\xdb\xeb\x23\x3e\xb8\x37\x04\x2b\ -\x50\x0a\x94\x0c\x56\xa6\x0a\x34\x84\xc1\xd2\x78\x3c\xbf\xed\x6b\ -\x40\x40\x04\x10\xde\x58\x1d\xf1\xf9\xa5\x0e\x7b\xe3\xcc\xc7\xbf\ -\x1c\x80\x19\x1c\xe6\x02\x8c\xa5\xac\x68\x08\xa3\x2a\x85\xe6\xe6\ -\xb5\x9d\xcd\xd7\x6f\x9c\x7c\x6a\xba\x01\x3b\x74\x2d\xbc\xbf\x36\ -\x38\xfa\x4e\x0f\xfa\x88\xe3\x95\xfe\x26\x29\x34\xdf\xfa\x57\x17\ -\xab\x7b\x0b\xbd\xf5\xb7\x16\xdd\xa9\xd6\x5d\x66\x40\x13\xc4\x08\ -\x31\xfc\xa7\x14\x54\x41\x1b\xde\xbe\xff\x07\x2f\x6c\x7f\xdd\xf7\ -\x65\xfc\xa6\x98\x19\x37\x96\x67\x97\x9b\xc2\x4a\x2c\xf6\xa2\x16\ -\x3a\xc9\x8c\x62\x1c\x83\x13\xa8\x44\xa8\x1c\xc3\x59\x27\x6b\x2d\ -\xc7\x47\xef\x6d\x84\x8d\x7f\x01\x94\xaa\xa7\xf7\x0e\x04\xf9\x8f\ -\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ -\x00\x00\x0c\x06\ +\x3c\x2f\x72\x64\x66\x3a\x53\x65\x71\x3e\x20\x3c\x2f\x78\x6d\x70\ +\x4d\x4d\x3a\x48\x69\x73\x74\x6f\x72\x79\x3e\x20\x3c\x2f\x72\x64\ +\x66\x3a\x44\x65\x73\x63\x72\x69\x70\x74\x69\x6f\x6e\x3e\x20\x3c\ +\x2f\x72\x64\x66\x3a\x52\x44\x46\x3e\x20\x3c\x2f\x78\x3a\x78\x6d\ +\x70\x6d\x65\x74\x61\x3e\x20\x3c\x3f\x78\x70\x61\x63\x6b\x65\x74\ +\x20\x65\x6e\x64\x3d\x22\x72\x22\x3f\x3e\xa6\x0c\xb7\x4f\x00\x00\ +\x00\x3b\x49\x44\x41\x54\x18\x95\x63\xfc\xff\xff\x3f\x03\x21\xc0\ +\x44\x50\x05\x14\xac\x66\x60\x60\xf0\xc0\x21\xe7\x01\x95\x67\xf0\ +\x60\x60\x60\xf8\x88\x45\x21\x86\x38\xba\x00\x2e\x8d\x70\x89\x1a\ +\x5c\x0a\x90\x15\x3e\x46\x57\xc0\x48\xb5\x20\x00\x00\xca\xf2\x12\ +\x4c\x24\x06\x88\x40\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\ +\x82\ +\x00\x00\x07\xce\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ -\x00\x00\x20\x00\x00\x00\x20\x08\x06\x00\x00\x00\x73\x7a\x7a\xf4\ +\x00\x00\x09\x00\x00\x00\x09\x08\x06\x00\x00\x00\xe0\x91\x06\x10\ \x00\x00\x01\x37\x69\x43\x43\x50\x41\x64\x6f\x62\x65\x20\x52\x47\ \x42\x20\x28\x31\x39\x39\x38\x29\x00\x00\x28\x91\x95\x8f\xbf\x4a\ \xc3\x50\x14\x87\xbf\x1b\x45\xc5\xa1\x56\x08\xe2\xe0\x70\x27\x51\ @@ -1143,7 +1932,7 @@ \x62\xc7\x70\x19\x0e\xef\x61\x7a\x54\x64\xbb\x37\x70\xb7\x01\x0b\ \xb7\x45\xb6\x5a\x85\xf2\x16\x3c\x0e\x7f\x00\xc0\xc6\x4f\xfd\xf3\ \x53\x3f\xc8\x00\x00\x00\x09\x70\x48\x59\x73\x00\x00\x2e\x23\x00\ -\x00\x2e\x23\x01\x78\xa5\x3f\x76\x00\x00\x07\x53\x69\x54\x58\x74\ +\x00\x2e\x23\x01\x78\xa5\x3f\x76\x00\x00\x05\xea\x69\x54\x58\x74\ \x58\x4d\x4c\x3a\x63\x6f\x6d\x2e\x61\x64\x6f\x62\x65\x2e\x78\x6d\ \x70\x00\x00\x00\x00\x00\x3c\x3f\x78\x70\x61\x63\x6b\x65\x74\x20\ \x62\x65\x67\x69\x6e\x3d\x22\xef\xbb\xbf\x22\x20\x69\x64\x3d\x22\ @@ -1171,152 +1960,84 @@ \x74\x70\x3a\x2f\x2f\x6e\x73\x2e\x61\x64\x6f\x62\x65\x2e\x63\x6f\ \x6d\x2f\x78\x61\x70\x2f\x31\x2e\x30\x2f\x73\x54\x79\x70\x65\x2f\ \x52\x65\x73\x6f\x75\x72\x63\x65\x45\x76\x65\x6e\x74\x23\x22\x20\ -\x78\x6d\x6c\x6e\x73\x3a\x70\x68\x6f\x74\x6f\x73\x68\x6f\x70\x3d\ -\x22\x68\x74\x74\x70\x3a\x2f\x2f\x6e\x73\x2e\x61\x64\x6f\x62\x65\ -\x2e\x63\x6f\x6d\x2f\x70\x68\x6f\x74\x6f\x73\x68\x6f\x70\x2f\x31\ -\x2e\x30\x2f\x22\x20\x78\x6d\x6c\x6e\x73\x3a\x64\x63\x3d\x22\x68\ -\x74\x74\x70\x3a\x2f\x2f\x70\x75\x72\x6c\x2e\x6f\x72\x67\x2f\x64\ -\x63\x2f\x65\x6c\x65\x6d\x65\x6e\x74\x73\x2f\x31\x2e\x31\x2f\x22\ +\x78\x6d\x6c\x6e\x73\x3a\x64\x63\x3d\x22\x68\x74\x74\x70\x3a\x2f\ +\x2f\x70\x75\x72\x6c\x2e\x6f\x72\x67\x2f\x64\x63\x2f\x65\x6c\x65\ +\x6d\x65\x6e\x74\x73\x2f\x31\x2e\x31\x2f\x22\x20\x78\x6d\x6c\x6e\ +\x73\x3a\x70\x68\x6f\x74\x6f\x73\x68\x6f\x70\x3d\x22\x68\x74\x74\ +\x70\x3a\x2f\x2f\x6e\x73\x2e\x61\x64\x6f\x62\x65\x2e\x63\x6f\x6d\ +\x2f\x70\x68\x6f\x74\x6f\x73\x68\x6f\x70\x2f\x31\x2e\x30\x2f\x22\ \x20\x78\x6d\x70\x3a\x43\x72\x65\x61\x74\x6f\x72\x54\x6f\x6f\x6c\ \x3d\x22\x41\x64\x6f\x62\x65\x20\x50\x68\x6f\x74\x6f\x73\x68\x6f\ \x70\x20\x43\x43\x20\x28\x57\x69\x6e\x64\x6f\x77\x73\x29\x22\x20\ \x78\x6d\x70\x3a\x43\x72\x65\x61\x74\x65\x44\x61\x74\x65\x3d\x22\ -\x32\x30\x32\x31\x2d\x30\x38\x2d\x32\x36\x54\x31\x33\x3a\x30\x30\ -\x3a\x33\x34\x2b\x30\x37\x3a\x30\x30\x22\x20\x78\x6d\x70\x3a\x4d\ +\x32\x30\x32\x31\x2d\x30\x39\x2d\x30\x32\x54\x31\x38\x3a\x34\x33\ +\x3a\x31\x39\x2b\x30\x37\x3a\x30\x30\x22\x20\x78\x6d\x70\x3a\x4d\ \x65\x74\x61\x64\x61\x74\x61\x44\x61\x74\x65\x3d\x22\x32\x30\x32\ -\x31\x2d\x30\x38\x2d\x32\x36\x54\x31\x33\x3a\x33\x39\x3a\x34\x35\ +\x31\x2d\x30\x39\x2d\x30\x32\x54\x31\x38\x3a\x34\x33\x3a\x31\x39\ \x2b\x30\x37\x3a\x30\x30\x22\x20\x78\x6d\x70\x3a\x4d\x6f\x64\x69\ -\x66\x79\x44\x61\x74\x65\x3d\x22\x32\x30\x32\x31\x2d\x30\x38\x2d\ -\x32\x36\x54\x31\x33\x3a\x33\x39\x3a\x34\x35\x2b\x30\x37\x3a\x30\ +\x66\x79\x44\x61\x74\x65\x3d\x22\x32\x30\x32\x31\x2d\x30\x39\x2d\ +\x30\x32\x54\x31\x38\x3a\x34\x33\x3a\x31\x39\x2b\x30\x37\x3a\x30\ \x30\x22\x20\x78\x6d\x70\x4d\x4d\x3a\x49\x6e\x73\x74\x61\x6e\x63\ -\x65\x49\x44\x3d\x22\x78\x6d\x70\x2e\x69\x69\x64\x3a\x32\x66\x36\ -\x64\x39\x33\x61\x36\x2d\x31\x32\x33\x37\x2d\x39\x33\x34\x66\x2d\ -\x38\x61\x35\x30\x2d\x62\x63\x30\x66\x61\x35\x31\x30\x30\x37\x63\ -\x30\x22\x20\x78\x6d\x70\x4d\x4d\x3a\x44\x6f\x63\x75\x6d\x65\x6e\ +\x65\x49\x44\x3d\x22\x78\x6d\x70\x2e\x69\x69\x64\x3a\x62\x37\x39\ +\x34\x30\x61\x33\x61\x2d\x63\x64\x38\x64\x2d\x61\x34\x34\x38\x2d\ +\x39\x31\x36\x31\x2d\x39\x66\x33\x38\x31\x61\x30\x38\x39\x31\x64\ +\x33\x22\x20\x78\x6d\x70\x4d\x4d\x3a\x44\x6f\x63\x75\x6d\x65\x6e\ \x74\x49\x44\x3d\x22\x61\x64\x6f\x62\x65\x3a\x64\x6f\x63\x69\x64\ -\x3a\x70\x68\x6f\x74\x6f\x73\x68\x6f\x70\x3a\x38\x37\x30\x62\x30\ -\x64\x35\x32\x2d\x39\x34\x63\x38\x2d\x62\x39\x34\x34\x2d\x62\x35\ -\x37\x64\x2d\x66\x35\x37\x64\x30\x66\x63\x39\x36\x39\x32\x62\x22\ +\x3a\x70\x68\x6f\x74\x6f\x73\x68\x6f\x70\x3a\x39\x36\x64\x34\x62\ +\x32\x34\x31\x2d\x30\x38\x33\x37\x2d\x66\x35\x34\x61\x2d\x61\x37\ +\x63\x36\x2d\x65\x34\x66\x31\x30\x38\x63\x37\x62\x37\x30\x61\x22\ \x20\x78\x6d\x70\x4d\x4d\x3a\x4f\x72\x69\x67\x69\x6e\x61\x6c\x44\ \x6f\x63\x75\x6d\x65\x6e\x74\x49\x44\x3d\x22\x78\x6d\x70\x2e\x64\ -\x69\x64\x3a\x38\x34\x62\x63\x30\x36\x62\x31\x2d\x65\x37\x61\x33\ -\x2d\x34\x37\x34\x35\x2d\x62\x61\x38\x37\x2d\x65\x33\x65\x65\x38\ -\x36\x61\x63\x62\x62\x64\x34\x22\x20\x70\x68\x6f\x74\x6f\x73\x68\ -\x6f\x70\x3a\x43\x6f\x6c\x6f\x72\x4d\x6f\x64\x65\x3d\x22\x33\x22\ -\x20\x70\x68\x6f\x74\x6f\x73\x68\x6f\x70\x3a\x49\x43\x43\x50\x72\ -\x6f\x66\x69\x6c\x65\x3d\x22\x41\x64\x6f\x62\x65\x20\x52\x47\x42\ -\x20\x28\x31\x39\x39\x38\x29\x22\x20\x64\x63\x3a\x66\x6f\x72\x6d\ -\x61\x74\x3d\x22\x69\x6d\x61\x67\x65\x2f\x70\x6e\x67\x22\x3e\x20\ +\x69\x64\x3a\x61\x31\x36\x34\x65\x62\x64\x32\x2d\x66\x32\x30\x62\ +\x2d\x32\x35\x34\x34\x2d\x38\x39\x32\x38\x2d\x38\x65\x30\x33\x35\ +\x37\x37\x30\x66\x32\x33\x65\x22\x20\x64\x63\x3a\x66\x6f\x72\x6d\ +\x61\x74\x3d\x22\x69\x6d\x61\x67\x65\x2f\x70\x6e\x67\x22\x20\x70\ +\x68\x6f\x74\x6f\x73\x68\x6f\x70\x3a\x43\x6f\x6c\x6f\x72\x4d\x6f\ +\x64\x65\x3d\x22\x33\x22\x20\x70\x68\x6f\x74\x6f\x73\x68\x6f\x70\ +\x3a\x49\x43\x43\x50\x72\x6f\x66\x69\x6c\x65\x3d\x22\x41\x64\x6f\ +\x62\x65\x20\x52\x47\x42\x20\x28\x31\x39\x39\x38\x29\x22\x3e\x20\ \x3c\x78\x6d\x70\x4d\x4d\x3a\x48\x69\x73\x74\x6f\x72\x79\x3e\x20\ \x3c\x72\x64\x66\x3a\x53\x65\x71\x3e\x20\x3c\x72\x64\x66\x3a\x6c\ \x69\x20\x73\x74\x45\x76\x74\x3a\x61\x63\x74\x69\x6f\x6e\x3d\x22\ -\x63\x72\x65\x61\x74\x65\x64\x22\x20\x73\x74\x45\x76\x74\x3a\x69\ -\x6e\x73\x74\x61\x6e\x63\x65\x49\x44\x3d\x22\x78\x6d\x70\x2e\x69\ -\x69\x64\x3a\x38\x34\x62\x63\x30\x36\x62\x31\x2d\x65\x37\x61\x33\ -\x2d\x34\x37\x34\x35\x2d\x62\x61\x38\x37\x2d\x65\x33\x65\x65\x38\ -\x36\x61\x63\x62\x62\x64\x34\x22\x20\x73\x74\x45\x76\x74\x3a\x77\ -\x68\x65\x6e\x3d\x22\x32\x30\x32\x31\x2d\x30\x38\x2d\x32\x36\x54\ -\x31\x33\x3a\x30\x30\x3a\x33\x34\x2b\x30\x37\x3a\x30\x30\x22\x20\ +\x63\x72\x65\x61\x74\x65\x64\x22\x20\x73\x74\x45\x76\x74\x3a\x69\ +\x6e\x73\x74\x61\x6e\x63\x65\x49\x44\x3d\x22\x78\x6d\x70\x2e\x69\ +\x69\x64\x3a\x61\x31\x36\x34\x65\x62\x64\x32\x2d\x66\x32\x30\x62\ +\x2d\x32\x35\x34\x34\x2d\x38\x39\x32\x38\x2d\x38\x65\x30\x33\x35\ +\x37\x37\x30\x66\x32\x33\x65\x22\x20\x73\x74\x45\x76\x74\x3a\x77\ +\x68\x65\x6e\x3d\x22\x32\x30\x32\x31\x2d\x30\x39\x2d\x30\x32\x54\ +\x31\x38\x3a\x34\x33\x3a\x31\x39\x2b\x30\x37\x3a\x30\x30\x22\x20\ \x73\x74\x45\x76\x74\x3a\x73\x6f\x66\x74\x77\x61\x72\x65\x41\x67\ \x65\x6e\x74\x3d\x22\x41\x64\x6f\x62\x65\x20\x50\x68\x6f\x74\x6f\ \x73\x68\x6f\x70\x20\x43\x43\x20\x28\x57\x69\x6e\x64\x6f\x77\x73\ \x29\x22\x2f\x3e\x20\x3c\x72\x64\x66\x3a\x6c\x69\x20\x73\x74\x45\ \x76\x74\x3a\x61\x63\x74\x69\x6f\x6e\x3d\x22\x73\x61\x76\x65\x64\ \x22\x20\x73\x74\x45\x76\x74\x3a\x69\x6e\x73\x74\x61\x6e\x63\x65\ -\x49\x44\x3d\x22\x78\x6d\x70\x2e\x69\x69\x64\x3a\x65\x33\x33\x34\ -\x38\x30\x35\x31\x2d\x32\x63\x64\x37\x2d\x66\x62\x34\x66\x2d\x39\ -\x66\x33\x62\x2d\x36\x66\x37\x66\x61\x38\x32\x62\x66\x32\x34\x64\ +\x49\x44\x3d\x22\x78\x6d\x70\x2e\x69\x69\x64\x3a\x62\x37\x39\x34\ +\x30\x61\x33\x61\x2d\x63\x64\x38\x64\x2d\x61\x34\x34\x38\x2d\x39\ +\x31\x36\x31\x2d\x39\x66\x33\x38\x31\x61\x30\x38\x39\x31\x64\x33\ \x22\x20\x73\x74\x45\x76\x74\x3a\x77\x68\x65\x6e\x3d\x22\x32\x30\ -\x32\x31\x2d\x30\x38\x2d\x32\x36\x54\x31\x33\x3a\x30\x30\x3a\x33\ -\x34\x2b\x30\x37\x3a\x30\x30\x22\x20\x73\x74\x45\x76\x74\x3a\x73\ +\x32\x31\x2d\x30\x39\x2d\x30\x32\x54\x31\x38\x3a\x34\x33\x3a\x31\ +\x39\x2b\x30\x37\x3a\x30\x30\x22\x20\x73\x74\x45\x76\x74\x3a\x73\ \x6f\x66\x74\x77\x61\x72\x65\x41\x67\x65\x6e\x74\x3d\x22\x41\x64\ \x6f\x62\x65\x20\x50\x68\x6f\x74\x6f\x73\x68\x6f\x70\x20\x43\x43\ \x20\x28\x57\x69\x6e\x64\x6f\x77\x73\x29\x22\x20\x73\x74\x45\x76\ \x74\x3a\x63\x68\x61\x6e\x67\x65\x64\x3d\x22\x2f\x22\x2f\x3e\x20\ -\x3c\x72\x64\x66\x3a\x6c\x69\x20\x73\x74\x45\x76\x74\x3a\x61\x63\ -\x74\x69\x6f\x6e\x3d\x22\x73\x61\x76\x65\x64\x22\x20\x73\x74\x45\ -\x76\x74\x3a\x69\x6e\x73\x74\x61\x6e\x63\x65\x49\x44\x3d\x22\x78\ -\x6d\x70\x2e\x69\x69\x64\x3a\x32\x66\x36\x64\x39\x33\x61\x36\x2d\ -\x31\x32\x33\x37\x2d\x39\x33\x34\x66\x2d\x38\x61\x35\x30\x2d\x62\ -\x63\x30\x66\x61\x35\x31\x30\x30\x37\x63\x30\x22\x20\x73\x74\x45\ -\x76\x74\x3a\x77\x68\x65\x6e\x3d\x22\x32\x30\x32\x31\x2d\x30\x38\ -\x2d\x32\x36\x54\x31\x33\x3a\x33\x39\x3a\x34\x35\x2b\x30\x37\x3a\ -\x30\x30\x22\x20\x73\x74\x45\x76\x74\x3a\x73\x6f\x66\x74\x77\x61\ -\x72\x65\x41\x67\x65\x6e\x74\x3d\x22\x41\x64\x6f\x62\x65\x20\x50\ -\x68\x6f\x74\x6f\x73\x68\x6f\x70\x20\x43\x43\x20\x28\x57\x69\x6e\ -\x64\x6f\x77\x73\x29\x22\x20\x73\x74\x45\x76\x74\x3a\x63\x68\x61\ -\x6e\x67\x65\x64\x3d\x22\x2f\x22\x2f\x3e\x20\x3c\x2f\x72\x64\x66\ -\x3a\x53\x65\x71\x3e\x20\x3c\x2f\x78\x6d\x70\x4d\x4d\x3a\x48\x69\ -\x73\x74\x6f\x72\x79\x3e\x20\x3c\x70\x68\x6f\x74\x6f\x73\x68\x6f\ -\x70\x3a\x44\x6f\x63\x75\x6d\x65\x6e\x74\x41\x6e\x63\x65\x73\x74\ -\x6f\x72\x73\x3e\x20\x3c\x72\x64\x66\x3a\x42\x61\x67\x3e\x20\x3c\ -\x72\x64\x66\x3a\x6c\x69\x3e\x61\x64\x6f\x62\x65\x3a\x64\x6f\x63\ -\x69\x64\x3a\x70\x68\x6f\x74\x6f\x73\x68\x6f\x70\x3a\x61\x34\x36\ -\x39\x30\x32\x38\x39\x2d\x38\x62\x66\x63\x2d\x32\x62\x34\x35\x2d\ -\x61\x61\x34\x32\x2d\x64\x62\x63\x66\x36\x35\x62\x65\x36\x30\x64\ -\x37\x3c\x2f\x72\x64\x66\x3a\x6c\x69\x3e\x20\x3c\x2f\x72\x64\x66\ -\x3a\x42\x61\x67\x3e\x20\x3c\x2f\x70\x68\x6f\x74\x6f\x73\x68\x6f\ -\x70\x3a\x44\x6f\x63\x75\x6d\x65\x6e\x74\x41\x6e\x63\x65\x73\x74\ -\x6f\x72\x73\x3e\x20\x3c\x2f\x72\x64\x66\x3a\x44\x65\x73\x63\x72\ -\x69\x70\x74\x69\x6f\x6e\x3e\x20\x3c\x2f\x72\x64\x66\x3a\x52\x44\ -\x46\x3e\x20\x3c\x2f\x78\x3a\x78\x6d\x70\x6d\x65\x74\x61\x3e\x20\ -\x3c\x3f\x78\x70\x61\x63\x6b\x65\x74\x20\x65\x6e\x64\x3d\x22\x72\ -\x22\x3f\x3e\x22\x47\x54\x58\x00\x00\x03\x16\x49\x44\x41\x54\x58\ -\x85\xc5\x97\xcf\x4b\x54\x51\x14\xc7\x3f\xe7\xbe\x99\x71\x91\xe8\ -\xb4\x88\x08\x5b\xb4\xc8\x0c\x9a\x55\x51\x5a\x48\x90\x88\x10\x54\ -\x0c\xb4\x0f\x77\x41\x41\x6b\xff\x80\x10\x17\x2d\x73\x61\x4b\x17\ -\xad\x22\xa6\x88\x8a\x10\x8d\x34\xfb\xb1\x2a\xb0\x30\x24\x0a\x52\ -\x08\x2b\x70\xcc\xac\x9c\x71\x6e\x8b\x37\xef\xbd\x7b\xdf\xbb\x4f\ -\x0d\xfc\x71\x60\x98\x7b\xee\x3b\xef\x7c\xbf\xf7\x9e\x1f\xef\x5e\ -\xd1\x5a\xb3\x93\xa2\x76\x14\x1d\xc8\x98\xca\x44\xa7\xb4\x22\x0c\ -\x00\xdd\x40\x13\xae\xcd\x11\x08\xe7\x83\xb1\xf9\x8f\x63\xec\xcb\ -\x22\x30\x02\xf4\x75\x4e\xe8\x99\xd0\x5d\x10\x82\x89\xd3\xd2\x86\ -\xe6\x25\x42\xde\x72\x62\x82\x05\xe2\x02\xc5\xf1\xdc\xd4\x23\x1f\ -\x0b\x40\x47\xe7\x33\xfd\x01\xcc\x1d\x10\xfa\x11\xf2\xef\x2a\x8d\ -\x0c\x2f\xb5\x50\xae\x59\x9b\xf3\xdf\x52\x2c\x16\x29\x95\x4a\xa1\ -\xde\xac\xaa\x5c\x6a\x9c\xe3\x48\x76\x29\x2f\xd0\x0f\x5c\x04\x33\ -\x07\x84\x6e\x14\x9b\x02\xee\x92\x72\x2d\xc3\xf0\x52\x8b\xbf\x0b\ -\x42\x4f\x30\x1f\x22\x89\xf2\x63\xbe\x15\xe0\x26\x09\xf1\xc3\xd0\ -\x98\x20\x50\x67\xb6\xf5\x12\xab\x3b\x9b\xc0\x76\x48\x2a\x01\xb5\ -\x4d\x24\x36\x4a\x60\xea\x4c\xf2\xdd\xc2\x58\x72\xfe\xe9\x1f\xc5\ -\xed\x8f\x9a\xc9\xf9\xa8\xe0\xa7\x7a\x04\xaa\xf7\xb9\x7e\xc6\x7e\ -\x17\x48\x2c\xd2\x4c\xc2\x04\x18\xc0\x54\xb7\x50\x18\x31\x3a\x92\ -\x67\xeb\xa7\xf6\xc3\xad\x23\x9a\xc2\x7c\xdd\xfe\xbc\x62\x79\x4f\ -\x96\xd2\xaf\xa3\xf4\x3f\x78\x91\x58\x84\x28\xac\xfe\x16\xc2\x6a\ -\xcf\xff\x25\x24\x3e\x97\xb1\x97\x30\x39\x5b\x83\x5d\x06\xfb\x7d\ -\x59\xfa\xc6\xab\xbc\xff\xbb\xd7\xe1\xac\xee\xcf\x30\x37\xfb\x80\ -\x3b\x07\xb2\x69\x7b\x66\x48\xde\x60\xf9\xa5\xc2\xe8\xcc\xaa\x1b\ -\x3c\x40\xf4\x6c\xd5\xc7\xf7\x92\x61\x70\x12\x88\xeb\x71\x02\xb9\ -\x75\x32\x59\x08\x7a\x01\xb0\x91\x3e\xb0\x0e\x81\xae\x7d\xc2\xe3\ -\x57\x2b\x1b\x26\x20\x5e\x4a\x0e\x88\x47\x32\xde\x2e\x87\x86\xde\ -\x75\x40\x31\x70\x36\xc7\xa3\xef\xc6\xf3\x86\xb5\x09\x68\x95\xb6\ -\x03\x69\x27\x83\x38\x81\xd9\x4a\x54\x8a\xba\xc6\xb5\xf1\x2a\xa3\ -\x9f\x6a\xe9\xf6\x31\x89\x57\x41\x44\xc0\x03\x71\x7d\xff\xe3\x21\ -\x68\x6b\xa0\x30\xf4\x37\x54\x87\x8e\xd7\xf8\x91\x87\xb7\x0b\xf5\ -\x89\x86\xb5\xcf\x38\x5a\xd9\x91\xb6\xab\xc0\x15\x82\xec\xda\x84\ -\x1e\x7e\x83\xbe\x63\x5e\xe4\x34\xb7\x26\xbe\x9f\xe8\xa9\x55\xe0\ -\x4c\xc2\x78\xef\xb4\x8d\xee\x7f\xd6\xb0\x4b\x71\xa1\x55\x85\xf6\ -\x37\x4f\x2a\x0e\xf2\xcd\xcd\x40\x61\x85\xdb\xce\x01\x23\x04\x61\ -\x9c\xdf\xfc\x0e\xc7\x85\xb1\x24\x01\x0d\x0c\xbc\x5e\xe5\x4a\x47\ -\x86\x7b\x33\x2b\x14\x6e\x2c\xfb\xf6\xe5\xe7\xf4\xba\x5a\x71\x2c\ -\x04\x21\x01\xad\xec\x1c\x08\x5f\x88\x49\xe1\xc6\x72\x62\xee\xed\ -\xd7\x1a\x97\x4b\x51\x29\x16\xc6\x92\x27\xa2\x40\xc4\xb3\x17\x6a\ -\x7f\x0b\xb6\xe3\x84\x1e\xeb\x37\x56\x23\x72\xe6\xc0\x66\x4b\xda\ -\xe7\x38\xa8\xcf\x62\xb1\xb8\x69\x58\x2e\x5f\x32\xff\xce\x4d\x00\ -\xc5\x22\x9a\xa6\xb1\x87\x77\x28\xaf\x6c\xcd\xb9\xb0\x39\x57\xe5\ -\xdc\x09\x40\x58\x8a\x60\x43\x6a\x8c\x88\x40\x6f\xeb\x1c\xcd\xb9\ -\xea\xa6\x83\xef\x6e\xa8\xd0\x7b\x68\xce\xaf\x02\xe1\x49\x08\x1b\ -\x5c\x4c\x5e\x5d\x95\xc3\x1a\x5e\x08\xf5\x8b\x49\x5d\xd2\xee\x1e\ -\xe6\xa5\xc5\x65\xa3\xc5\xa8\x2a\xfb\x96\xb4\x00\x9c\x6c\x1f\xd4\ -\xd3\x60\xec\x40\xfb\xa0\x9e\x16\xa1\x03\xe1\x2e\x8a\x9f\x61\xb6\ -\x06\x47\xb5\x60\xac\xa2\x39\x1d\x7f\x26\xd1\x4f\x30\xec\x7c\x02\ -\x3f\x11\xee\x6a\x45\x47\x00\x6e\xed\xc0\x4e\xc9\x8e\xdf\x8e\xff\ -\x01\xde\xb1\xde\x59\xd8\xdd\x2c\x0e\x00\x00\x00\x00\x49\x45\x4e\ -\x44\xae\x42\x60\x82\ -\x00\x00\x0a\x05\ +\x3c\x2f\x72\x64\x66\x3a\x53\x65\x71\x3e\x20\x3c\x2f\x78\x6d\x70\ +\x4d\x4d\x3a\x48\x69\x73\x74\x6f\x72\x79\x3e\x20\x3c\x2f\x72\x64\ +\x66\x3a\x44\x65\x73\x63\x72\x69\x70\x74\x69\x6f\x6e\x3e\x20\x3c\ +\x2f\x72\x64\x66\x3a\x52\x44\x46\x3e\x20\x3c\x2f\x78\x3a\x78\x6d\ +\x70\x6d\x65\x74\x61\x3e\x20\x3c\x3f\x78\x70\x61\x63\x6b\x65\x74\ +\x20\x65\x6e\x64\x3d\x22\x72\x22\x3f\x3e\xb0\x97\x95\x64\x00\x00\ +\x00\x47\x49\x44\x41\x54\x18\x95\xad\xd0\xc1\x09\x00\x20\x08\x85\ +\xe1\x57\xd3\x39\x54\x1b\x35\x56\x13\x34\xc1\xdf\xa5\x28\x4a\xf0\ +\x92\x20\x0f\xf1\xf3\x62\x02\x14\x55\x0e\x85\x83\x4c\x52\x9b\xb9\ +\x0b\x58\x6d\x40\x07\xca\x4c\x5b\xbb\x1b\x98\x37\x7b\xe0\x39\x14\ +\x50\x1d\x70\xc2\x9a\xbe\xbd\x60\x00\xef\xb0\x7d\xe2\xd3\x05\x84\ +\xb6\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ +\x00\x00\x07\xcc\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ -\x00\x00\x10\x00\x00\x00\x10\x08\x06\x00\x00\x00\x1f\xf3\xff\x61\ +\x00\x00\x09\x00\x00\x00\x09\x08\x06\x00\x00\x00\xe0\x91\x06\x10\ \x00\x00\x01\x37\x69\x43\x43\x50\x41\x64\x6f\x62\x65\x20\x52\x47\ \x42\x20\x28\x31\x39\x39\x38\x29\x00\x00\x28\x91\x95\x8f\xbf\x4a\ \xc3\x50\x14\x87\xbf\x1b\x45\xc5\xa1\x56\x08\xe2\xe0\x70\x27\x51\ @@ -1338,7 +2059,7 @@ \x62\xc7\x70\x19\x0e\xef\x61\x7a\x54\x64\xbb\x37\x70\xb7\x01\x0b\ \xb7\x45\xb6\x5a\x85\xf2\x16\x3c\x0e\x7f\x00\xc0\xc6\x4f\xfd\xf3\ \x53\x3f\xc8\x00\x00\x00\x09\x70\x48\x59\x73\x00\x00\x2e\x23\x00\ -\x00\x2e\x23\x01\x78\xa5\x3f\x76\x00\x00\x06\xb5\x69\x54\x58\x74\ +\x00\x2e\x23\x01\x78\xa5\x3f\x76\x00\x00\x05\xea\x69\x54\x58\x74\ \x58\x4d\x4c\x3a\x63\x6f\x6d\x2e\x61\x64\x6f\x62\x65\x2e\x78\x6d\ \x70\x00\x00\x00\x00\x00\x3c\x3f\x78\x70\x61\x63\x6b\x65\x74\x20\ \x62\x65\x67\x69\x6e\x3d\x22\xef\xbb\xbf\x22\x20\x69\x64\x3d\x22\ @@ -1376,27 +2097,27 @@ \x3d\x22\x41\x64\x6f\x62\x65\x20\x50\x68\x6f\x74\x6f\x73\x68\x6f\ \x70\x20\x43\x43\x20\x28\x57\x69\x6e\x64\x6f\x77\x73\x29\x22\x20\ \x78\x6d\x70\x3a\x43\x72\x65\x61\x74\x65\x44\x61\x74\x65\x3d\x22\ -\x32\x30\x32\x31\x2d\x30\x38\x2d\x32\x36\x54\x31\x32\x3a\x35\x30\ -\x3a\x33\x34\x2b\x30\x37\x3a\x30\x30\x22\x20\x78\x6d\x70\x3a\x4d\ +\x32\x30\x32\x31\x2d\x30\x39\x2d\x30\x32\x54\x31\x38\x3a\x34\x32\ +\x3a\x34\x30\x2b\x30\x37\x3a\x30\x30\x22\x20\x78\x6d\x70\x3a\x4d\ \x65\x74\x61\x64\x61\x74\x61\x44\x61\x74\x65\x3d\x22\x32\x30\x32\ -\x31\x2d\x30\x38\x2d\x32\x36\x54\x31\x33\x3a\x34\x33\x3a\x32\x30\ +\x31\x2d\x30\x39\x2d\x30\x32\x54\x31\x38\x3a\x34\x32\x3a\x34\x30\ \x2b\x30\x37\x3a\x30\x30\x22\x20\x78\x6d\x70\x3a\x4d\x6f\x64\x69\ -\x66\x79\x44\x61\x74\x65\x3d\x22\x32\x30\x32\x31\x2d\x30\x38\x2d\ -\x32\x36\x54\x31\x33\x3a\x34\x33\x3a\x32\x30\x2b\x30\x37\x3a\x30\ +\x66\x79\x44\x61\x74\x65\x3d\x22\x32\x30\x32\x31\x2d\x30\x39\x2d\ +\x30\x32\x54\x31\x38\x3a\x34\x32\x3a\x34\x30\x2b\x30\x37\x3a\x30\ \x30\x22\x20\x78\x6d\x70\x4d\x4d\x3a\x49\x6e\x73\x74\x61\x6e\x63\ -\x65\x49\x44\x3d\x22\x78\x6d\x70\x2e\x69\x69\x64\x3a\x31\x64\x30\ -\x64\x64\x33\x64\x65\x2d\x65\x33\x32\x66\x2d\x66\x38\x34\x64\x2d\ -\x61\x39\x61\x38\x2d\x62\x37\x33\x63\x30\x35\x38\x61\x65\x30\x36\ +\x65\x49\x44\x3d\x22\x78\x6d\x70\x2e\x69\x69\x64\x3a\x39\x62\x31\ +\x39\x61\x35\x61\x34\x2d\x65\x65\x37\x36\x2d\x31\x31\x34\x38\x2d\ +\x62\x64\x38\x32\x2d\x30\x30\x64\x33\x65\x33\x32\x30\x66\x31\x33\ \x62\x22\x20\x78\x6d\x70\x4d\x4d\x3a\x44\x6f\x63\x75\x6d\x65\x6e\ \x74\x49\x44\x3d\x22\x61\x64\x6f\x62\x65\x3a\x64\x6f\x63\x69\x64\ -\x3a\x70\x68\x6f\x74\x6f\x73\x68\x6f\x70\x3a\x61\x34\x36\x39\x30\ -\x32\x38\x39\x2d\x38\x62\x66\x63\x2d\x32\x62\x34\x35\x2d\x61\x61\ -\x34\x32\x2d\x64\x62\x63\x66\x36\x35\x62\x65\x36\x30\x64\x37\x22\ +\x3a\x70\x68\x6f\x74\x6f\x73\x68\x6f\x70\x3a\x33\x37\x36\x34\x30\ +\x66\x32\x38\x2d\x34\x62\x62\x66\x2d\x39\x38\x34\x66\x2d\x62\x39\ +\x32\x30\x2d\x33\x66\x65\x36\x65\x64\x62\x32\x33\x33\x35\x33\x22\ \x20\x78\x6d\x70\x4d\x4d\x3a\x4f\x72\x69\x67\x69\x6e\x61\x6c\x44\ \x6f\x63\x75\x6d\x65\x6e\x74\x49\x44\x3d\x22\x78\x6d\x70\x2e\x64\ -\x69\x64\x3a\x39\x32\x61\x31\x32\x35\x31\x31\x2d\x38\x36\x39\x35\ -\x2d\x66\x64\x34\x63\x2d\x38\x37\x31\x61\x2d\x30\x62\x38\x66\x37\ -\x35\x66\x65\x34\x63\x37\x37\x22\x20\x64\x63\x3a\x66\x6f\x72\x6d\ +\x69\x64\x3a\x37\x37\x64\x35\x65\x61\x34\x33\x2d\x35\x35\x39\x31\ +\x2d\x30\x61\x34\x64\x2d\x39\x35\x30\x32\x2d\x33\x38\x39\x32\x64\ +\x34\x61\x36\x62\x31\x62\x36\x22\x20\x64\x63\x3a\x66\x6f\x72\x6d\ \x61\x74\x3d\x22\x69\x6d\x61\x67\x65\x2f\x70\x6e\x67\x22\x20\x70\ \x68\x6f\x74\x6f\x73\x68\x6f\x70\x3a\x43\x6f\x6c\x6f\x72\x4d\x6f\ \x64\x65\x3d\x22\x33\x22\x20\x70\x68\x6f\x74\x6f\x73\x68\x6f\x70\ @@ -1407,79 +2128,43 @@ \x69\x20\x73\x74\x45\x76\x74\x3a\x61\x63\x74\x69\x6f\x6e\x3d\x22\ \x63\x72\x65\x61\x74\x65\x64\x22\x20\x73\x74\x45\x76\x74\x3a\x69\ \x6e\x73\x74\x61\x6e\x63\x65\x49\x44\x3d\x22\x78\x6d\x70\x2e\x69\ -\x69\x64\x3a\x39\x32\x61\x31\x32\x35\x31\x31\x2d\x38\x36\x39\x35\ -\x2d\x66\x64\x34\x63\x2d\x38\x37\x31\x61\x2d\x30\x62\x38\x66\x37\ -\x35\x66\x65\x34\x63\x37\x37\x22\x20\x73\x74\x45\x76\x74\x3a\x77\ -\x68\x65\x6e\x3d\x22\x32\x30\x32\x31\x2d\x30\x38\x2d\x32\x36\x54\ -\x31\x32\x3a\x35\x30\x3a\x33\x34\x2b\x30\x37\x3a\x30\x30\x22\x20\ +\x69\x64\x3a\x37\x37\x64\x35\x65\x61\x34\x33\x2d\x35\x35\x39\x31\ +\x2d\x30\x61\x34\x64\x2d\x39\x35\x30\x32\x2d\x33\x38\x39\x32\x64\ +\x34\x61\x36\x62\x31\x62\x36\x22\x20\x73\x74\x45\x76\x74\x3a\x77\ +\x68\x65\x6e\x3d\x22\x32\x30\x32\x31\x2d\x30\x39\x2d\x30\x32\x54\ +\x31\x38\x3a\x34\x32\x3a\x34\x30\x2b\x30\x37\x3a\x30\x30\x22\x20\ \x73\x74\x45\x76\x74\x3a\x73\x6f\x66\x74\x77\x61\x72\x65\x41\x67\ \x65\x6e\x74\x3d\x22\x41\x64\x6f\x62\x65\x20\x50\x68\x6f\x74\x6f\ \x73\x68\x6f\x70\x20\x43\x43\x20\x28\x57\x69\x6e\x64\x6f\x77\x73\ \x29\x22\x2f\x3e\x20\x3c\x72\x64\x66\x3a\x6c\x69\x20\x73\x74\x45\ \x76\x74\x3a\x61\x63\x74\x69\x6f\x6e\x3d\x22\x73\x61\x76\x65\x64\ \x22\x20\x73\x74\x45\x76\x74\x3a\x69\x6e\x73\x74\x61\x6e\x63\x65\ -\x49\x44\x3d\x22\x78\x6d\x70\x2e\x69\x69\x64\x3a\x34\x65\x65\x63\ -\x62\x35\x31\x64\x2d\x30\x33\x63\x31\x2d\x34\x64\x34\x66\x2d\x62\ -\x36\x62\x30\x2d\x37\x64\x61\x64\x64\x65\x38\x62\x62\x31\x34\x36\ +\x49\x44\x3d\x22\x78\x6d\x70\x2e\x69\x69\x64\x3a\x39\x62\x31\x39\ +\x61\x35\x61\x34\x2d\x65\x65\x37\x36\x2d\x31\x31\x34\x38\x2d\x62\ +\x64\x38\x32\x2d\x30\x30\x64\x33\x65\x33\x32\x30\x66\x31\x33\x62\ \x22\x20\x73\x74\x45\x76\x74\x3a\x77\x68\x65\x6e\x3d\x22\x32\x30\ -\x32\x31\x2d\x30\x38\x2d\x32\x36\x54\x31\x32\x3a\x35\x30\x3a\x33\ -\x34\x2b\x30\x37\x3a\x30\x30\x22\x20\x73\x74\x45\x76\x74\x3a\x73\ +\x32\x31\x2d\x30\x39\x2d\x30\x32\x54\x31\x38\x3a\x34\x32\x3a\x34\ +\x30\x2b\x30\x37\x3a\x30\x30\x22\x20\x73\x74\x45\x76\x74\x3a\x73\ \x6f\x66\x74\x77\x61\x72\x65\x41\x67\x65\x6e\x74\x3d\x22\x41\x64\ \x6f\x62\x65\x20\x50\x68\x6f\x74\x6f\x73\x68\x6f\x70\x20\x43\x43\ \x20\x28\x57\x69\x6e\x64\x6f\x77\x73\x29\x22\x20\x73\x74\x45\x76\ \x74\x3a\x63\x68\x61\x6e\x67\x65\x64\x3d\x22\x2f\x22\x2f\x3e\x20\ -\x3c\x72\x64\x66\x3a\x6c\x69\x20\x73\x74\x45\x76\x74\x3a\x61\x63\ -\x74\x69\x6f\x6e\x3d\x22\x73\x61\x76\x65\x64\x22\x20\x73\x74\x45\ -\x76\x74\x3a\x69\x6e\x73\x74\x61\x6e\x63\x65\x49\x44\x3d\x22\x78\ -\x6d\x70\x2e\x69\x69\x64\x3a\x31\x64\x30\x64\x64\x33\x64\x65\x2d\ -\x65\x33\x32\x66\x2d\x66\x38\x34\x64\x2d\x61\x39\x61\x38\x2d\x62\ -\x37\x33\x63\x30\x35\x38\x61\x65\x30\x36\x62\x22\x20\x73\x74\x45\ -\x76\x74\x3a\x77\x68\x65\x6e\x3d\x22\x32\x30\x32\x31\x2d\x30\x38\ -\x2d\x32\x36\x54\x31\x33\x3a\x34\x33\x3a\x32\x30\x2b\x30\x37\x3a\ -\x30\x30\x22\x20\x73\x74\x45\x76\x74\x3a\x73\x6f\x66\x74\x77\x61\ -\x72\x65\x41\x67\x65\x6e\x74\x3d\x22\x41\x64\x6f\x62\x65\x20\x50\ -\x68\x6f\x74\x6f\x73\x68\x6f\x70\x20\x43\x43\x20\x28\x57\x69\x6e\ -\x64\x6f\x77\x73\x29\x22\x20\x73\x74\x45\x76\x74\x3a\x63\x68\x61\ -\x6e\x67\x65\x64\x3d\x22\x2f\x22\x2f\x3e\x20\x3c\x2f\x72\x64\x66\ -\x3a\x53\x65\x71\x3e\x20\x3c\x2f\x78\x6d\x70\x4d\x4d\x3a\x48\x69\ -\x73\x74\x6f\x72\x79\x3e\x20\x3c\x2f\x72\x64\x66\x3a\x44\x65\x73\ -\x63\x72\x69\x70\x74\x69\x6f\x6e\x3e\x20\x3c\x2f\x72\x64\x66\x3a\ -\x52\x44\x46\x3e\x20\x3c\x2f\x78\x3a\x78\x6d\x70\x6d\x65\x74\x61\ -\x3e\x20\x3c\x3f\x78\x70\x61\x63\x6b\x65\x74\x20\x65\x6e\x64\x3d\ -\x22\x72\x22\x3f\x3e\x46\x3f\x58\x82\x00\x00\x01\xb3\x49\x44\x41\ -\x54\x38\x8d\xa5\x93\x4f\x6b\x13\x41\x18\xc6\x7f\xef\xce\x06\x8b\ -\x49\xca\x86\x62\x82\xc7\x1e\xa4\x42\xe7\xde\x06\x84\x52\xa9\x82\ -\xe0\x61\x89\xe0\x17\xd0\x43\x3f\x81\x8a\x78\x94\x20\x9e\xd4\x8b\ -\x1e\xf4\x13\x48\x40\x51\x2f\xb6\x34\x28\x85\xb6\x9e\x37\xd2\x22\ -\xe8\x39\x5e\xba\x54\xd3\x6e\xa1\xc9\xeb\x61\xb6\xbb\x5b\xac\x52\ -\xe8\x03\xc3\x33\xc3\xcc\xf3\xbc\x7f\x78\x47\x54\x95\xd3\xc0\x07\ -\xb0\xd6\xf2\xa2\xd6\xbb\x00\x3c\x02\x16\x80\x71\x8a\xbe\xe2\x48\ -\x61\x47\x94\x65\x84\x7b\x8b\xdb\xd3\xdf\xa2\x28\x42\x54\x95\xd5\ -\x39\x99\x1a\xaa\xac\x77\x76\x1b\xc1\xc6\x7e\xc0\x40\xcd\x5f\x91\ -\xc2\x30\x64\xe9\x6d\x87\x99\x33\x31\xad\x72\x3f\xf6\x55\x67\x2f\ -\x7d\xd6\x2d\x0f\x00\x8f\x76\x67\xaf\x11\xac\x24\x13\xc7\x8a\x0f\ -\x31\x50\xc3\x4a\x32\xc1\xbb\xbd\x7a\x80\xa1\xed\xa4\x80\xf8\x2c\ -\x6c\xec\x07\x27\xae\x7b\x35\xa9\x21\x3e\x57\x33\x03\x0c\xe3\x83\ -\x91\x8b\x1c\xcd\x93\x71\x74\xdd\xe3\xf2\x79\xc9\x84\xd1\xbc\x5b\ -\x83\x91\x01\x43\x25\x37\x28\x15\xec\xc7\x52\xc1\x98\x87\x7d\x3f\ -\xe2\xd9\x0d\x97\xd9\xc3\xf8\x0d\xb6\x0b\xb6\x9b\xbe\xf3\xa1\x58\ -\x42\x8e\x6a\xda\x83\xaa\xf3\xa6\xb7\xed\xb8\x76\xb4\x37\x52\xfa\ -\xa7\x81\x97\x71\xd4\x32\xdc\xf9\x91\x9e\xeb\xc5\x47\xb9\xc6\x2b\ -\xa6\x03\x40\x25\x37\xb8\xbb\x29\x3c\x9e\x1c\x01\xf0\xa0\x7f\x2d\ -\xeb\x41\x51\xe3\x17\xd3\x01\xb0\x4f\x13\xc7\x4f\x1c\x7f\xf8\x5a\ -\xb8\xeb\xe6\xfb\x23\x3d\xc0\xb0\x53\xf6\x87\x9c\x14\x65\x7f\x88\ -\x94\xf8\x9d\xfb\x94\x58\x6e\x9e\x8b\x5b\x95\x99\x5b\xff\x15\x86\ -\x61\x08\x40\xf2\xe5\x25\x18\x3e\x02\x6e\x94\xd7\x17\xe5\xe2\x01\ -\xb2\xf6\xfa\x7b\x23\x58\xfb\x19\xb0\x7b\x70\xfc\x34\x9e\xf5\x87\ -\x34\xeb\x31\x37\x27\xfb\xb1\xf1\xb4\x39\xfb\x5c\x37\x45\x55\xb1\ -\xd6\xf2\x6a\xae\x37\x05\xb4\x15\xae\x08\x54\x15\x10\x81\xc3\x4f\ -\x95\xd2\x2f\x60\x09\xb8\x7f\xfb\xd3\xf4\x56\xf6\x99\x4e\x83\x3f\ -\xd9\xb1\x8d\xe5\xa7\x2e\x4c\x70\x00\x00\x00\x00\x49\x45\x4e\x44\ -\xae\x42\x60\x82\ -\x00\x00\x08\x22\ +\x3c\x2f\x72\x64\x66\x3a\x53\x65\x71\x3e\x20\x3c\x2f\x78\x6d\x70\ +\x4d\x4d\x3a\x48\x69\x73\x74\x6f\x72\x79\x3e\x20\x3c\x2f\x72\x64\ +\x66\x3a\x44\x65\x73\x63\x72\x69\x70\x74\x69\x6f\x6e\x3e\x20\x3c\ +\x2f\x72\x64\x66\x3a\x52\x44\x46\x3e\x20\x3c\x2f\x78\x3a\x78\x6d\ +\x70\x6d\x65\x74\x61\x3e\x20\x3c\x3f\x78\x70\x61\x63\x6b\x65\x74\ +\x20\x65\x6e\x64\x3d\x22\x72\x22\x3f\x3e\xab\x72\xb5\x19\x00\x00\ +\x00\x45\x49\x44\x41\x54\x18\x95\x63\xfc\xff\xff\x3f\x03\x21\xc0\ +\x44\x50\x05\x54\xd1\x6a\x06\x06\x06\x0f\x1c\xf2\x1e\x0c\x0c\x0c\ +\xab\x19\xfe\xff\xff\xef\xf1\xff\xff\xff\x8f\x50\x9a\x01\x09\xc3\ +\xc5\x31\x04\xb0\xf1\xb1\xe9\xac\x41\x37\x99\x01\x8b\x15\x8f\xd1\ +\xad\x66\xa4\x5a\x10\x00\x00\x38\x03\x7d\xe2\x78\x0d\x2b\xc1\x00\ +\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ +\x00\x00\x07\xc2\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ -\x00\x00\x10\x00\x00\x00\x10\x08\x06\x00\x00\x00\x1f\xf3\xff\x61\ +\x00\x00\x09\x00\x00\x00\x09\x08\x06\x00\x00\x00\xe0\x91\x06\x10\ \x00\x00\x01\x37\x69\x43\x43\x50\x41\x64\x6f\x62\x65\x20\x52\x47\ \x42\x20\x28\x31\x39\x39\x38\x29\x00\x00\x28\x91\x95\x8f\xbf\x4a\ \xc3\x50\x14\x87\xbf\x1b\x45\xc5\xa1\x56\x08\xe2\xe0\x70\x27\x51\ @@ -1539,27 +2224,27 @@ \x3d\x22\x41\x64\x6f\x62\x65\x20\x50\x68\x6f\x74\x6f\x73\x68\x6f\ \x70\x20\x43\x43\x20\x28\x57\x69\x6e\x64\x6f\x77\x73\x29\x22\x20\ \x78\x6d\x70\x3a\x43\x72\x65\x61\x74\x65\x44\x61\x74\x65\x3d\x22\ -\x32\x30\x32\x31\x2d\x30\x38\x2d\x32\x38\x54\x31\x35\x3a\x31\x32\ -\x3a\x31\x37\x2b\x30\x37\x3a\x30\x30\x22\x20\x78\x6d\x70\x3a\x4d\ +\x32\x30\x32\x31\x2d\x30\x39\x2d\x30\x32\x54\x31\x38\x3a\x34\x32\ +\x3a\x30\x37\x2b\x30\x37\x3a\x30\x30\x22\x20\x78\x6d\x70\x3a\x4d\ \x65\x74\x61\x64\x61\x74\x61\x44\x61\x74\x65\x3d\x22\x32\x30\x32\ -\x31\x2d\x30\x38\x2d\x32\x38\x54\x31\x35\x3a\x31\x32\x3a\x31\x37\ +\x31\x2d\x30\x39\x2d\x30\x32\x54\x31\x38\x3a\x34\x32\x3a\x30\x37\ \x2b\x30\x37\x3a\x30\x30\x22\x20\x78\x6d\x70\x3a\x4d\x6f\x64\x69\ -\x66\x79\x44\x61\x74\x65\x3d\x22\x32\x30\x32\x31\x2d\x30\x38\x2d\ -\x32\x38\x54\x31\x35\x3a\x31\x32\x3a\x31\x37\x2b\x30\x37\x3a\x30\ +\x66\x79\x44\x61\x74\x65\x3d\x22\x32\x30\x32\x31\x2d\x30\x39\x2d\ +\x30\x32\x54\x31\x38\x3a\x34\x32\x3a\x30\x37\x2b\x30\x37\x3a\x30\ \x30\x22\x20\x78\x6d\x70\x4d\x4d\x3a\x49\x6e\x73\x74\x61\x6e\x63\ -\x65\x49\x44\x3d\x22\x78\x6d\x70\x2e\x69\x69\x64\x3a\x38\x66\x38\ -\x33\x61\x37\x32\x64\x2d\x63\x66\x65\x31\x2d\x65\x31\x34\x39\x2d\ -\x61\x37\x66\x63\x2d\x34\x66\x33\x38\x38\x63\x35\x37\x33\x35\x65\ -\x64\x22\x20\x78\x6d\x70\x4d\x4d\x3a\x44\x6f\x63\x75\x6d\x65\x6e\ +\x65\x49\x44\x3d\x22\x78\x6d\x70\x2e\x69\x69\x64\x3a\x65\x34\x61\ +\x64\x61\x35\x34\x38\x2d\x63\x35\x34\x37\x2d\x38\x33\x34\x39\x2d\ +\x61\x62\x33\x32\x2d\x34\x39\x32\x39\x62\x33\x64\x33\x31\x64\x64\ +\x63\x22\x20\x78\x6d\x70\x4d\x4d\x3a\x44\x6f\x63\x75\x6d\x65\x6e\ \x74\x49\x44\x3d\x22\x61\x64\x6f\x62\x65\x3a\x64\x6f\x63\x69\x64\ -\x3a\x70\x68\x6f\x74\x6f\x73\x68\x6f\x70\x3a\x38\x33\x31\x36\x30\ -\x36\x30\x61\x2d\x32\x32\x37\x35\x2d\x66\x30\x34\x35\x2d\x62\x63\ -\x35\x63\x2d\x34\x37\x34\x36\x35\x36\x61\x38\x38\x61\x66\x63\x22\ +\x3a\x70\x68\x6f\x74\x6f\x73\x68\x6f\x70\x3a\x65\x36\x30\x64\x62\ +\x61\x63\x38\x2d\x61\x62\x63\x63\x2d\x65\x30\x34\x33\x2d\x61\x61\ +\x33\x65\x2d\x34\x64\x65\x36\x62\x31\x33\x34\x34\x38\x39\x62\x22\ \x20\x78\x6d\x70\x4d\x4d\x3a\x4f\x72\x69\x67\x69\x6e\x61\x6c\x44\ \x6f\x63\x75\x6d\x65\x6e\x74\x49\x44\x3d\x22\x78\x6d\x70\x2e\x64\ -\x69\x64\x3a\x65\x32\x64\x31\x65\x31\x34\x65\x2d\x33\x66\x32\x35\ -\x2d\x37\x32\x34\x37\x2d\x38\x39\x66\x33\x2d\x32\x64\x32\x63\x61\ -\x30\x31\x62\x30\x37\x65\x39\x22\x20\x64\x63\x3a\x66\x6f\x72\x6d\ +\x69\x64\x3a\x33\x61\x32\x63\x64\x64\x63\x65\x2d\x61\x33\x61\x36\ +\x2d\x62\x64\x34\x65\x2d\x61\x63\x35\x37\x2d\x31\x34\x30\x65\x34\ +\x62\x37\x31\x32\x33\x64\x30\x22\x20\x64\x63\x3a\x66\x6f\x72\x6d\ \x61\x74\x3d\x22\x69\x6d\x61\x67\x65\x2f\x70\x6e\x67\x22\x20\x70\ \x68\x6f\x74\x6f\x73\x68\x6f\x70\x3a\x43\x6f\x6c\x6f\x72\x4d\x6f\ \x64\x65\x3d\x22\x33\x22\x20\x70\x68\x6f\x74\x6f\x73\x68\x6f\x70\ @@ -1570,22 +2255,22 @@ \x69\x20\x73\x74\x45\x76\x74\x3a\x61\x63\x74\x69\x6f\x6e\x3d\x22\ \x63\x72\x65\x61\x74\x65\x64\x22\x20\x73\x74\x45\x76\x74\x3a\x69\ \x6e\x73\x74\x61\x6e\x63\x65\x49\x44\x3d\x22\x78\x6d\x70\x2e\x69\ -\x69\x64\x3a\x65\x32\x64\x31\x65\x31\x34\x65\x2d\x33\x66\x32\x35\ -\x2d\x37\x32\x34\x37\x2d\x38\x39\x66\x33\x2d\x32\x64\x32\x63\x61\ -\x30\x31\x62\x30\x37\x65\x39\x22\x20\x73\x74\x45\x76\x74\x3a\x77\ -\x68\x65\x6e\x3d\x22\x32\x30\x32\x31\x2d\x30\x38\x2d\x32\x38\x54\ -\x31\x35\x3a\x31\x32\x3a\x31\x37\x2b\x30\x37\x3a\x30\x30\x22\x20\ +\x69\x64\x3a\x33\x61\x32\x63\x64\x64\x63\x65\x2d\x61\x33\x61\x36\ +\x2d\x62\x64\x34\x65\x2d\x61\x63\x35\x37\x2d\x31\x34\x30\x65\x34\ +\x62\x37\x31\x32\x33\x64\x30\x22\x20\x73\x74\x45\x76\x74\x3a\x77\ +\x68\x65\x6e\x3d\x22\x32\x30\x32\x31\x2d\x30\x39\x2d\x30\x32\x54\ +\x31\x38\x3a\x34\x32\x3a\x30\x37\x2b\x30\x37\x3a\x30\x30\x22\x20\ \x73\x74\x45\x76\x74\x3a\x73\x6f\x66\x74\x77\x61\x72\x65\x41\x67\ \x65\x6e\x74\x3d\x22\x41\x64\x6f\x62\x65\x20\x50\x68\x6f\x74\x6f\ \x73\x68\x6f\x70\x20\x43\x43\x20\x28\x57\x69\x6e\x64\x6f\x77\x73\ \x29\x22\x2f\x3e\x20\x3c\x72\x64\x66\x3a\x6c\x69\x20\x73\x74\x45\ \x76\x74\x3a\x61\x63\x74\x69\x6f\x6e\x3d\x22\x73\x61\x76\x65\x64\ \x22\x20\x73\x74\x45\x76\x74\x3a\x69\x6e\x73\x74\x61\x6e\x63\x65\ -\x49\x44\x3d\x22\x78\x6d\x70\x2e\x69\x69\x64\x3a\x38\x66\x38\x33\ -\x61\x37\x32\x64\x2d\x63\x66\x65\x31\x2d\x65\x31\x34\x39\x2d\x61\ -\x37\x66\x63\x2d\x34\x66\x33\x38\x38\x63\x35\x37\x33\x35\x65\x64\ +\x49\x44\x3d\x22\x78\x6d\x70\x2e\x69\x69\x64\x3a\x65\x34\x61\x64\ +\x61\x35\x34\x38\x2d\x63\x35\x34\x37\x2d\x38\x33\x34\x39\x2d\x61\ +\x62\x33\x32\x2d\x34\x39\x32\x39\x62\x33\x64\x33\x31\x64\x64\x63\ \x22\x20\x73\x74\x45\x76\x74\x3a\x77\x68\x65\x6e\x3d\x22\x32\x30\ -\x32\x31\x2d\x30\x38\x2d\x32\x38\x54\x31\x35\x3a\x31\x32\x3a\x31\ +\x32\x31\x2d\x30\x39\x2d\x30\x32\x54\x31\x38\x3a\x34\x32\x3a\x30\ \x37\x2b\x30\x37\x3a\x30\x30\x22\x20\x73\x74\x45\x76\x74\x3a\x73\ \x6f\x66\x74\x77\x61\x72\x65\x41\x67\x65\x6e\x74\x3d\x22\x41\x64\ \x6f\x62\x65\x20\x50\x68\x6f\x74\x6f\x73\x68\x6f\x70\x20\x43\x43\ @@ -1596,35 +2281,36 @@ \x66\x3a\x44\x65\x73\x63\x72\x69\x70\x74\x69\x6f\x6e\x3e\x20\x3c\ \x2f\x72\x64\x66\x3a\x52\x44\x46\x3e\x20\x3c\x2f\x78\x3a\x78\x6d\ \x70\x6d\x65\x74\x61\x3e\x20\x3c\x3f\x78\x70\x61\x63\x6b\x65\x74\ -\x20\x65\x6e\x64\x3d\x22\x72\x22\x3f\x3e\x12\x0f\x9d\x9c\x00\x00\ -\x00\x9b\x49\x44\x41\x54\x38\x8d\xa5\x93\x51\x0a\x03\x21\x0c\x44\ -\xc7\xde\x20\x7b\x11\x7b\xfc\x7a\x88\xc2\xf6\x44\xaf\x1f\x8d\x8b\ -\x58\xa3\xc2\x06\x82\x30\xc9\xbc\x8f\x24\x26\x40\x77\xe2\xe1\x6f\ -\x96\x54\x24\xd9\x86\xc7\xbc\x37\x4b\x92\x00\x01\x2f\x7e\xf1\x06\ -\xcc\xb5\x51\x9a\xf7\x00\x14\xe0\x02\x1c\x4d\x21\x82\x58\xd7\x73\ -\xb4\x80\x15\x64\x68\xee\x01\x11\x24\x34\x8f\x00\x3d\xe4\xf4\x1c\ -\x9a\x23\x40\x85\x54\x63\x05\xfd\x99\x81\x6b\x8d\x7d\xf4\xc7\x91\ -\x06\x9a\xda\x35\x46\xd3\x3e\x81\xcf\x6c\x3b\x3b\xab\xea\x35\x8b\ -\x00\xb3\x69\x87\x90\x1d\xf3\x14\x52\x8b\x65\x61\x5e\x9e\x72\x76\ -\x61\xf6\x0f\x5a\x48\x01\x9e\x80\x12\x37\xbf\xf3\x17\xc5\x12\x83\ -\x61\x69\x9d\xa9\xb0\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\ +\x20\x65\x6e\x64\x3d\x22\x72\x22\x3f\x3e\xac\xdc\x29\x1a\x00\x00\ +\x00\x3b\x49\x44\x41\x54\x18\x95\x63\xfc\xff\xff\x3f\x03\x21\xc0\ +\x44\x50\x05\x16\xe0\xc1\xc0\xc0\xf0\x18\x4a\xe3\x54\xf0\x91\x81\ +\x81\xa1\x06\x4a\x63\x28\xf4\x40\x93\x40\xe7\x63\x0a\x60\x13\x5f\ +\x8d\xc7\x0d\x1e\x0c\x0c\x0c\xab\x19\xa9\x16\x04\x00\x82\xae\x12\ +\x4c\xdc\xc0\x99\x68\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\ \x82\ " qt_resource_name = b"\ +\x00\x06\ +\x06\x89\x96\xe3\ +\x00\x61\ +\x00\x72\x00\x72\x00\x6f\x00\x77\x00\x73\ +\x00\x05\ +\x00\x6f\xa6\x53\ +\x00\x69\ +\x00\x63\x00\x6f\x00\x6e\x00\x73\ \x00\x0c\ \x01\x67\x14\xb3\ \x00\x62\ \x00\x75\x00\x74\x00\x74\x00\x6f\x00\x6e\x00\x5f\x00\x69\x00\x63\x00\x6f\x00\x6e\x00\x73\ -\x00\x05\ -\x00\x6f\xa6\x53\ +\x00\x0f\ +\x06\x97\xc6\xe7\ +\x00\x63\ +\x00\x6c\x00\x6f\x00\x73\x00\x65\x00\x62\x00\x75\x00\x74\x00\x74\x00\x6f\x00\x6e\x00\x2e\x00\x70\x00\x6e\x00\x67\ +\x00\x0e\ +\x0f\x81\x05\x07\ \x00\x69\ -\x00\x63\x00\x6f\x00\x6e\x00\x73\ -\x00\x11\ -\x0b\x14\xee\x87\ -\x00\x6f\ -\x00\x70\x00\x65\x00\x72\x00\x61\x00\x74\x00\x6f\x00\x72\x00\x5f\x00\x69\x00\x63\x00\x6f\x00\x6e\x00\x2e\x00\x70\x00\x6e\x00\x67\ -\ +\x00\x63\x00\x6f\x00\x6e\x00\x5f\x00\x31\x00\x36\x00\x78\x00\x31\x00\x36\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x0e\ \x0f\xb3\x03\x47\ \x00\x69\ @@ -1633,64 +2319,103 @@ \x06\x5f\x1e\x67\ \x00\x69\ \x00\x63\x00\x6f\x00\x6e\x00\x5f\x00\x36\x00\x34\x00\x5f\x00\x36\x00\x34\x00\x2e\x00\x70\x00\x6e\x00\x67\ -\x00\x0e\ -\x06\xf8\x41\x07\ +\x00\x11\ +\x0b\x14\xee\x87\ \x00\x6f\ -\x00\x77\x00\x6e\x00\x65\x00\x72\x00\x5f\x00\x69\x00\x63\x00\x6f\x00\x6e\x00\x2e\x00\x70\x00\x6e\x00\x67\ +\x00\x70\x00\x65\x00\x72\x00\x61\x00\x74\x00\x6f\x00\x72\x00\x5f\x00\x69\x00\x63\x00\x6f\x00\x6e\x00\x2e\x00\x70\x00\x6e\x00\x67\ +\ +\x00\x0f\ +\x01\x78\x12\x47\ +\x00\x6d\ +\x00\x65\x00\x6d\x00\x62\x00\x65\x00\x72\x00\x5f\x00\x69\x00\x63\x00\x6f\x00\x6e\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x0e\ \x00\xe1\xc5\x67\ \x00\x61\ \x00\x64\x00\x6d\x00\x69\x00\x6e\x00\x5f\x00\x69\x00\x63\x00\x6f\x00\x6e\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x0e\ +\x06\xf8\x41\x07\ +\x00\x6f\ +\x00\x77\x00\x6e\x00\x65\x00\x72\x00\x5f\x00\x69\x00\x63\x00\x6f\x00\x6e\x00\x2e\x00\x70\x00\x6e\x00\x67\ +\x00\x0e\ \x0f\xad\x01\x87\ \x00\x69\ \x00\x63\x00\x6f\x00\x6e\x00\x5f\x00\x33\x00\x32\x00\x78\x00\x33\x00\x32\x00\x2e\x00\x70\x00\x6e\x00\x67\ -\x00\x0e\ -\x0f\x81\x05\x07\ -\x00\x69\ -\x00\x63\x00\x6f\x00\x6e\x00\x5f\x00\x31\x00\x36\x00\x78\x00\x31\x00\x36\x00\x2e\x00\x70\x00\x6e\x00\x67\ -\x00\x0f\ -\x06\x97\xc6\xe7\ -\x00\x63\ -\x00\x6c\x00\x6f\x00\x73\x00\x65\x00\x62\x00\x75\x00\x74\x00\x74\x00\x6f\x00\x6e\x00\x2e\x00\x70\x00\x6e\x00\x67\ +\x00\x12\ +\x00\x33\x70\xe7\ +\x00\x75\ +\x00\x70\x00\x5f\x00\x61\x00\x72\x00\x72\x00\x6f\x00\x77\x00\x5f\x00\x6c\x00\x69\x00\x67\x00\x68\x00\x74\x00\x2e\x00\x70\x00\x6e\ +\x00\x67\ +\x00\x13\ +\x06\x1a\xe9\x67\ +\x00\x64\ +\x00\x6f\x00\x77\x00\x6e\x00\x5f\x00\x61\x00\x72\x00\x72\x00\x6f\x00\x77\x00\x5f\x00\x64\x00\x61\x00\x72\x00\x6b\x00\x2e\x00\x70\ +\x00\x6e\x00\x67\ +\x00\x11\ +\x0a\x52\x6a\x27\ +\x00\x75\ +\x00\x70\x00\x5f\x00\x61\x00\x72\x00\x72\x00\x6f\x00\x77\x00\x5f\x00\x64\x00\x61\x00\x72\x00\x6b\x00\x2e\x00\x70\x00\x6e\x00\x67\ +\ +\x00\x14\ +\x04\xbb\x45\x67\ +\x00\x64\ +\x00\x6f\x00\x77\x00\x6e\x00\x5f\x00\x61\x00\x72\x00\x72\x00\x6f\x00\x77\x00\x5f\x00\x6c\x00\x69\x00\x67\x00\x68\x00\x74\x00\x2e\ +\x00\x70\x00\x6e\x00\x67\ " qt_resource_struct_v1 = b"\ -\x00\x00\x00\x00\x00\x02\x00\x00\x00\x02\x00\x00\x00\x01\ -\x00\x00\x00\x1e\x00\x02\x00\x00\x00\x07\x00\x00\x00\x04\ -\x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x03\ -\x00\x00\x01\x22\x00\x00\x00\x00\x00\x01\x00\x00\x5a\xb5\ -\x00\x00\x00\xbc\x00\x00\x00\x00\x00\x01\x00\x00\x41\xc1\ -\x00\x00\x00\x78\x00\x00\x00\x00\x00\x01\x00\x00\x19\x3c\ -\x00\x00\x00\x9a\x00\x00\x00\x00\x00\x01\x00\x00\x37\x4c\ -\x00\x00\x00\x2e\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\ -\x00\x00\x01\x00\x00\x00\x00\x00\x00\x01\x00\x00\x50\xac\ -\x00\x00\x00\xde\x00\x00\x00\x00\x00\x01\x00\x00\x44\xa2\ -\x00\x00\x00\x56\x00\x00\x00\x00\x00\x01\x00\x00\x02\xc2\ +\x00\x00\x00\x00\x00\x02\x00\x00\x00\x03\x00\x00\x00\x01\ +\x00\x00\x00\x12\x00\x02\x00\x00\x00\x08\x00\x00\x00\x09\ +\x00\x00\x00\x22\x00\x02\x00\x00\x00\x01\x00\x00\x00\x08\ +\x00\x00\x00\x00\x00\x02\x00\x00\x00\x04\x00\x00\x00\x04\ +\x00\x00\x01\x7c\x00\x00\x00\x00\x00\x01\x00\x00\x6d\x65\ +\x00\x00\x01\xfa\x00\x00\x00\x00\x00\x01\x00\x00\x84\xcd\ +\x00\x00\x01\xa6\x00\x00\x00\x00\x00\x01\x00\x00\x75\x2b\ +\x00\x00\x01\xd2\x00\x00\x00\x00\x00\x01\x00\x00\x7c\xfd\ +\x00\x00\x00\x40\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\ +\x00\x00\x01\x16\x00\x00\x00\x00\x00\x01\x00\x00\x54\x05\ +\x00\x00\x00\xf2\x00\x00\x00\x00\x00\x01\x00\x00\x49\x7b\ +\x00\x00\x00\xa8\x00\x00\x00\x00\x00\x01\x00\x00\x28\xa9\ +\x00\x00\x01\x38\x00\x00\x00\x00\x00\x01\x00\x00\x56\xe6\ +\x00\x00\x00\xca\x00\x00\x00\x00\x00\x01\x00\x00\x46\xb9\ +\x00\x00\x00\x64\x00\x00\x00\x00\x00\x01\x00\x00\x08\x26\ +\x00\x00\x01\x5a\x00\x00\x00\x00\x00\x01\x00\x00\x61\x5b\ +\x00\x00\x00\x86\x00\x00\x00\x00\x00\x01\x00\x00\x12\x2f\ " qt_resource_struct_v2 = b"\ -\x00\x00\x00\x00\x00\x02\x00\x00\x00\x02\x00\x00\x00\x01\ +\x00\x00\x00\x00\x00\x02\x00\x00\x00\x03\x00\x00\x00\x01\ +\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x12\x00\x02\x00\x00\x00\x08\x00\x00\x00\x09\ \x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x1e\x00\x02\x00\x00\x00\x07\x00\x00\x00\x04\ +\x00\x00\x00\x22\x00\x02\x00\x00\x00\x01\x00\x00\x00\x08\ \x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x03\ +\x00\x00\x00\x00\x00\x02\x00\x00\x00\x04\x00\x00\x00\x04\ \x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x01\x22\x00\x00\x00\x00\x00\x01\x00\x00\x5a\xb5\ +\x00\x00\x01\x7c\x00\x00\x00\x00\x00\x01\x00\x00\x6d\x65\ +\x00\x00\x01\x7b\xa6\x51\x3e\x30\ +\x00\x00\x01\xfa\x00\x00\x00\x00\x00\x01\x00\x00\x84\xcd\ +\x00\x00\x01\x7b\xa6\x50\xf1\xe2\ +\x00\x00\x01\xa6\x00\x00\x00\x00\x00\x01\x00\x00\x75\x2b\ +\x00\x00\x01\x7b\xa6\x52\x0e\xb9\ +\x00\x00\x01\xd2\x00\x00\x00\x00\x00\x01\x00\x00\x7c\xfd\ +\x00\x00\x01\x7b\xa6\x51\x77\x12\ +\x00\x00\x00\x40\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\ \x00\x00\x01\x7b\x8b\xd1\x0b\x9b\ -\x00\x00\x00\xbc\x00\x00\x00\x00\x00\x01\x00\x00\x41\xc1\ +\x00\x00\x01\x16\x00\x00\x00\x00\x00\x01\x00\x00\x54\x05\ \x00\x00\x01\x7b\x81\xf2\x36\x20\ -\x00\x00\x00\x78\x00\x00\x00\x00\x00\x01\x00\x00\x19\x3c\ +\x00\x00\x00\xf2\x00\x00\x00\x00\x00\x01\x00\x00\x49\x7b\ +\x00\x00\x01\x7b\xa6\x8b\x4f\x41\ +\x00\x00\x00\xa8\x00\x00\x00\x00\x00\x01\x00\x00\x28\xa9\ \x00\x00\x01\x7b\x81\x5d\x71\xcc\ -\x00\x00\x00\x9a\x00\x00\x00\x00\x00\x01\x00\x00\x37\x4c\ +\x00\x00\x01\x38\x00\x00\x00\x00\x00\x01\x00\x00\x56\xe6\ \x00\x00\x01\x7b\x82\xff\x17\x69\ -\x00\x00\x00\x2e\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\ +\x00\x00\x00\xca\x00\x00\x00\x00\x00\x01\x00\x00\x46\xb9\ \x00\x00\x01\x7b\x81\xbb\x50\x12\ -\x00\x00\x01\x00\x00\x00\x00\x00\x00\x01\x00\x00\x50\xac\ +\x00\x00\x00\x64\x00\x00\x00\x00\x00\x01\x00\x00\x08\x26\ \x00\x00\x01\x7b\x81\x32\xe3\x89\ -\x00\x00\x00\xde\x00\x00\x00\x00\x00\x01\x00\x00\x44\xa2\ +\x00\x00\x01\x5a\x00\x00\x00\x00\x00\x01\x00\x00\x61\x5b\ \x00\x00\x01\x7b\x81\x2f\xa0\x61\ -\x00\x00\x00\x56\x00\x00\x00\x00\x00\x01\x00\x00\x02\xc2\ +\x00\x00\x00\x86\x00\x00\x00\x00\x00\x01\x00\x00\x12\x2f\ \x00\x00\x01\x7b\x81\x66\x31\x53\ " diff --git a/translator.py b/translator.py index 94d848a..63080d0 100644 --- a/translator.py +++ b/translator.py @@ -17,12 +17,16 @@ def translate_001(mainclass, form, language, en_US, ru_RU): pass try: mainclass.ui.menu.setTitle(ru_RU.get()['filemenu']) + mainclass.ui.menu_4.setTitle(ru_RU.get()['chanmenu']) mainclass.ui.menu_2.setTitle(ru_RU.get()['helpmenu']) mainclass.ui.menu_3.setTitle(ru_RU.get()['viewmenu']) mainclass.ui.connect_item.setText(ru_RU.get()['conn_mi']) mainclass.ui.settings_item.setText(ru_RU.get()['setsitem']) mainclass.ui.quit_item.setText(ru_RU.get()['quit_mi']) mainclass.ui.about_item.setText(ru_RU.get()['about_mi']) + mainclass.ui.join_item.setText(ru_RU.get()['joinchan']) + mainclass.ui.leave_item.setText(ru_RU.get()['lv_chan']) + mainclass.ui.msg_history.setText(ru_RU.get()['msg_hist']) mainclass.child_widget.send_msg_btn.setText(ru_RU.get()['send_msg']) if mainclass.child_widget.message_text.isEnabled() == False: mainclass.child_widget.message_text.setText(ru_RU.get()['cantsmsg']) @@ -32,12 +36,16 @@ def translate_001(mainclass, form, language, en_US, ru_RU): elif language == 'English': try: mainclass.ui.menu.setTitle(en_US.get()['filemenu']) + mainclass.ui.menu_4.setTitle(en_US.get()['chanmenu']) mainclass.ui.menu_2.setTitle(en_US.get()['helpmenu']) mainclass.ui.menu_3.setTitle(en_US.get()['viewmenu']) mainclass.ui.connect_item.setText(en_US.get()['conn_mi']) mainclass.ui.settings_item.setText(en_US.get()['setsitem']) mainclass.ui.quit_item.setText(en_US.get()['quit_mi']) mainclass.ui.about_item.setText(en_US.get()['about_mi']) + mainclass.ui.join_item.setText(en_US.get()['joinchan']) + mainclass.ui.leave_item.setText(en_US.get()['lv_chan']) + mainclass.ui.msg_history.setText(en_US.get()['msg_hist']) mainclass.child_widget.send_msg_btn.setText(en_US.get()['send_msg']) if mainclass.child_widget.message_text.isEnabled() == False: mainclass.child_widget.message_text.setText(en_US.get()['cantsmsg']) diff --git a/up_arrow_dark.png b/up_arrow_dark.png new file mode 100644 index 0000000..a3cecd5 Binary files /dev/null and b/up_arrow_dark.png differ diff --git a/up_arrow_light.png b/up_arrow_light.png new file mode 100644 index 0000000..87b485e Binary files /dev/null and b/up_arrow_light.png differ