From aab8486549e9e35288132f10e1a35f2737edd9f7 Mon Sep 17 00:00:00 2001 From: Keith Edmunds Date: Wed, 4 Jan 2023 17:02:53 +0000 Subject: [PATCH] UI displays --- app/ui/dont-know-woman.png | Bin 0 -> 4545 bytes app/ui/dont-know.png | Bin 0 -> 2405 bytes app/ui/green-tick.png | Bin 0 -> 389 bytes app/ui/icons8-next-page-48.png | Bin 0 -> 595 bytes app/ui/icons8-prev-page-48.png | Bin 0 -> 5802 bytes app/ui/main_window.ui | 194 ++++++++ app/ui/main_window_ui.py | 121 +++++ app/ui/red-cross.png | Bin 0 -> 397 bytes app/ui/thumbs-down.png | Bin 0 -> 2017 bytes app/ui/thumbs-up.png | Bin 0 -> 1974 bytes app/ui/urma.qrc | 9 + app/urma.py | 138 ++++-- app/urma_rc.py | 831 +++++++++++++++++++++++++++++++++ markdown_with_colour.txt | 2 + poetry.lock | 50 +- pyproject.toml | 3 + 16 files changed, 1298 insertions(+), 50 deletions(-) create mode 100644 app/ui/dont-know-woman.png create mode 100644 app/ui/dont-know.png create mode 100644 app/ui/green-tick.png create mode 100644 app/ui/icons8-next-page-48.png create mode 100644 app/ui/icons8-prev-page-48.png create mode 100644 app/ui/main_window.ui create mode 100644 app/ui/main_window_ui.py create mode 100644 app/ui/red-cross.png create mode 100644 app/ui/thumbs-down.png create mode 100644 app/ui/thumbs-up.png create mode 100644 app/ui/urma.qrc create mode 100644 app/urma_rc.py create mode 100644 markdown_with_colour.txt diff --git a/app/ui/dont-know-woman.png b/app/ui/dont-know-woman.png new file mode 100644 index 0000000000000000000000000000000000000000..e8b3ac1bb0abcb4089150704c154ee218942c95f GIT binary patch literal 4545 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 literal 0 HcmV?d00001 diff --git a/app/ui/dont-know.png b/app/ui/dont-know.png new file mode 100644 index 0000000000000000000000000000000000000000..415e2e5c216bdec29b90aa6d4c07dadeec2fe80b GIT binary patch literal 2405 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 + + MainWindow + + + + 0 + 0 + 800 + 574 + + + + Urma + + + + + + + Username: + + + + + + + + + + + + + + + + + + + + + + + + + :/buttons/icons8-next-page-48.png:/buttons/icons8-next-page-48.png + + + + 48 + 48 + + + + + + + + Hashtags: + + + + + + + + + + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'Sans'; font-size:13pt; font-weight:400; font-style:normal;"> +<p style="-qt-paragraph-type:empty; margin-top:8px; margin-bottom:8px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br /></p></body></html> + + + + + + + + + + + :/buttons/icons8-prev-page-48.png:/buttons/icons8-prev-page-48.png + + + + 48 + 48 + + + + + + + + + + + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'Sans'; font-size:13pt; font-weight:400; font-style:normal;"> +<p style="-qt-paragraph-type:empty; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br /></p></body></html> + + + + + + + + 72 + 75 + true + + + + 2 + + + urma + + + + + + + Dislike + + + + :/buttons/red-cross.png:/buttons/red-cross.png + + + + 48 + 48 + + + + + + + + Not sure + + + + :/buttons/dont-know-woman.png:/buttons/dont-know-woman.png + + + + 48 + 48 + + + + + + + + Like + + + + :/buttons/green-tick.png:/buttons/green-tick.png + + + + 48 + 48 + + + + + + + + + + 0 + 0 + 800 + 26 + + + + + + + + + + diff --git a/app/ui/main_window_ui.py b/app/ui/main_window_ui.py new file mode 100644 index 0000000..b743748 --- /dev/null +++ b/app/ui/main_window_ui.py @@ -0,0 +1,121 @@ +# -*- coding: utf-8 -*- + +# Form implementation generated from reading ui file 'app/ui/main_window.ui' +# +# Created by: PyQt5 UI code generator 5.15.7 +# +# 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(800, 574) + self.centralwidget = QtWidgets.QWidget(MainWindow) + self.centralwidget.setObjectName("centralwidget") + self.gridLayout = QtWidgets.QGridLayout(self.centralwidget) + self.gridLayout.setObjectName("gridLayout") + self.label = QtWidgets.QLabel(self.centralwidget) + self.label.setObjectName("label") + self.gridLayout.addWidget(self.label, 0, 0, 1, 1) + self.lblUsername = QtWidgets.QLabel(self.centralwidget) + self.lblUsername.setText("") + self.lblUsername.setObjectName("lblUsername") + self.gridLayout.addWidget(self.lblUsername, 0, 1, 1, 1) + self.lblPicture = QtWidgets.QLabel(self.centralwidget) + self.lblPicture.setText("") + self.lblPicture.setObjectName("lblPicture") + self.gridLayout.addWidget(self.lblPicture, 0, 2, 3, 3) + self.btnNext = QtWidgets.QPushButton(self.centralwidget) + self.btnNext.setText("") + icon = QtGui.QIcon() + icon.addPixmap(QtGui.QPixmap(":/buttons/icons8-next-page-48.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off) + self.btnNext.setIcon(icon) + self.btnNext.setIconSize(QtCore.QSize(48, 48)) + self.btnNext.setObjectName("btnNext") + self.gridLayout.addWidget(self.btnNext, 0, 5, 2, 1) + self.label_2 = QtWidgets.QLabel(self.centralwidget) + self.label_2.setObjectName("label_2") + self.gridLayout.addWidget(self.label_2, 1, 0, 1, 1) + self.textEdit_2 = QtWidgets.QTextEdit(self.centralwidget) + self.textEdit_2.setMarkdown("") + self.textEdit_2.setObjectName("textEdit_2") + self.gridLayout.addWidget(self.textEdit_2, 2, 0, 2, 2) + self.btnPrev = QtWidgets.QPushButton(self.centralwidget) + self.btnPrev.setText("") + icon1 = QtGui.QIcon() + icon1.addPixmap(QtGui.QPixmap(":/buttons/icons8-prev-page-48.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off) + self.btnPrev.setIcon(icon1) + self.btnPrev.setIconSize(QtCore.QSize(48, 48)) + self.btnPrev.setObjectName("btnPrev") + self.gridLayout.addWidget(self.btnPrev, 2, 5, 1, 1) + self.textEdit = QtWidgets.QTextEdit(self.centralwidget) + self.textEdit.setMarkdown("") + self.textEdit.setObjectName("textEdit") + self.gridLayout.addWidget(self.textEdit, 3, 2, 1, 4) + self.label_3 = QtWidgets.QLabel(self.centralwidget) + font = QtGui.QFont() + font.setPointSize(72) + font.setBold(True) + font.setWeight(75) + self.label_3.setFont(font) + self.label_3.setLineWidth(2) + self.label_3.setObjectName("label_3") + self.gridLayout.addWidget(self.label_3, 4, 0, 1, 2) + self.btnDislike = QtWidgets.QPushButton(self.centralwidget) + icon2 = QtGui.QIcon() + icon2.addPixmap(QtGui.QPixmap(":/buttons/red-cross.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off) + self.btnDislike.setIcon(icon2) + self.btnDislike.setIconSize(QtCore.QSize(48, 48)) + self.btnDislike.setObjectName("btnDislike") + self.gridLayout.addWidget(self.btnDislike, 4, 2, 1, 1) + self.btnUnsure = QtWidgets.QPushButton(self.centralwidget) + icon3 = QtGui.QIcon() + icon3.addPixmap(QtGui.QPixmap(":/buttons/dont-know-woman.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off) + self.btnUnsure.setIcon(icon3) + self.btnUnsure.setIconSize(QtCore.QSize(48, 48)) + self.btnUnsure.setObjectName("btnUnsure") + self.gridLayout.addWidget(self.btnUnsure, 4, 3, 1, 1) + self.btnLike = QtWidgets.QPushButton(self.centralwidget) + icon4 = QtGui.QIcon() + icon4.addPixmap(QtGui.QPixmap(":/buttons/green-tick.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off) + self.btnLike.setIcon(icon4) + self.btnLike.setIconSize(QtCore.QSize(48, 48)) + self.btnLike.setObjectName("btnLike") + self.gridLayout.addWidget(self.btnLike, 4, 4, 1, 2) + MainWindow.setCentralWidget(self.centralwidget) + self.menubar = QtWidgets.QMenuBar(MainWindow) + self.menubar.setGeometry(QtCore.QRect(0, 0, 800, 26)) + self.menubar.setObjectName("menubar") + MainWindow.setMenuBar(self.menubar) + self.statusbar = QtWidgets.QStatusBar(MainWindow) + self.statusbar.setObjectName("statusbar") + MainWindow.setStatusBar(self.statusbar) + + self.retranslateUi(MainWindow) + QtCore.QMetaObject.connectSlotsByName(MainWindow) + + def retranslateUi(self, MainWindow): + _translate = QtCore.QCoreApplication.translate + MainWindow.setWindowTitle(_translate("MainWindow", "Urma")) + self.label.setText(_translate("MainWindow", "Username:")) + self.label_2.setText(_translate("MainWindow", "Hashtags:")) + self.textEdit_2.setHtml(_translate("MainWindow", "\n" +"\n" +"


")) + self.textEdit.setHtml(_translate("MainWindow", "\n" +"\n" +"


")) + self.label_3.setText(_translate("MainWindow", "urma")) + self.btnDislike.setText(_translate("MainWindow", "Dislike")) + self.btnUnsure.setText(_translate("MainWindow", "Not sure")) + self.btnLike.setText(_translate("MainWindow", "Like")) +import urma_rc diff --git a/app/ui/red-cross.png b/app/ui/red-cross.png new file mode 100644 index 0000000000000000000000000000000000000000..c5fdf22477d58cae94a6726d1612e272ab9967b7 GIT binary patch literal 397 zcmV;80doF{P)>qO{%g#z8DW zmV$%=iJWxoOsct3ww`ljC!S1ENF)-8L=u_W>RVK%EE46oSzm@4Nfxi4?ytSoZ{F!` zU6~u|^--D9JN4RFweydwyCm?9(_i7CmcS2uyFRHz7oJ)IU3hAV&yBh8PCfrAKp=rW zcG-jQ@5)TLN1?Q{KE|0~9BMGk`#0 zd~gK6fS?dk7|Z2X0bR9YfE z>B`k>DQW4~Z)Rj>W#{DPYp?`ZE9|5ZF|<WOQtNVsd77Zhm2LX_>vUy0*Tt`Ssh@_aEDwon7u8 z`xQR}06spvg{e#Y=*rkI@i$X(_&S4b7N+FeJpuRCsF&MHN`s5CS@49;_rB)dG4g`$z<*#m>l@Y#s56h`Rf!)1MkrRb zr1Ug$=;Y#yhKe~`)t&{hxLnWQHK}JV3hEFhZ1Fn-a^&Ue$=)2S%> zh`tPSq5NRAOxuGwSaJw#wE+Qym9q{g3BQBp4xLEwErYq|7b9dxF0dOZVC)g3a1EQU zf^it_mC^htXefta&WuCw1g1HhuDD9yZGHH`ryMX5t!I;W$Qio*ekwpv(%|mt6<|1_ zEl|**wXpVo3)aN~y?%FmZ+lMc zhS?1fk%(g#k3ZL}b_z~(bgorYQrJBtnDXUZvfo$qd2Ryjww#0p8{0hp+2upDDK{vr zgYdpArLq>kL2KySPu|{R?*%5OdbVo~@6A~p?kx|h=htf*CI|F&rB1sQzGbPLoRaVl ztm5|)QE;s*MjI-MP8D~;2U+Dpo*gqn5jOCWWnvBKs`uq9J7I(ZBu*_3*(HyRT?ZlA zkfC&G++QjFraBYBkwyN%II2VWY!-?s`&lD3&-6VUd83JRlLBfaps}y{DQY@U?@YAj zUOvYg!sHAAhx>qpjgh(w2D$|_-Fw8an!w@#2-5}ET_NH@K)f6(;&KnYSPP{e;n4MM zz)Q-GYVK~Y@RwFPRi2wN055Wb1()skJ&D%?TrbB+OFGS%ixK_ST?(^yfY$|^WKZ%} zLP`7?d`l_CMS0K{-ZJzDFlk!hb$iyd}Y+#*CEo9~fJ2&;S4c literal 0 HcmV?d00001 diff --git a/app/ui/thumbs-up.png b/app/ui/thumbs-up.png new file mode 100644 index 0000000000000000000000000000000000000000..9005794fb2d387b796ca51c9580927b3d08a876e GIT binary patch literal 1974 zcmeHH`!|#c82-Nb8fM0h7a=wvE{xf*Rl*I8FyijGGol<&eyo)5^9r3m?&#Q zYgZ(FO@lFm`5k`XBbk-gBP!Iq!4c^Zf9f^S)U`XL~G083OSk%U5_CTCo@;t@@AAV-VUnQs7(H#N_RMJ0xNMU!%?2=Vb+@qw7Q{AhkuCY%`TW3H1fG**XzJcM7M~sY3OwBDUt*nn7 zx3RUecQ|p<$=TJ-{glUPPqLS{kFTG9K;W4mN@&>Gh;!#7skA71G~+@{YOfY@7{m>^m%T6VR31BYykcHUHdj;}S*M!ynsySN7<=)8rv)r7W%6~V{B1dEi1Z*fPYEJXNx8bih-xu%sQv@P(0B3Y-{k zb)Rfmwr{ySXd*v+RDkyXdD~+28Y?1qONu7Tvo9#(&6-XmdpEJv5=Iak+5EMzZN*G} zRtn1QXck|}VLKs7rUP~@5G?wmwx#gflbqcf39@*w_-S&R^>{g9soVIeFlykPFf>h& zG%uP#%2P*PWN6`63oSW}YO9l5w5VSj(L}g#R^=>6!-NE<5Lp6US7-VJ^0noYgJ{?m zOd8(1hPe_m};wUQw>+4XR$%=OY=v)KTg z-k6a>HUIJ!IFXnwU##cl(dVrl;U?#3S(c7x?g|9}^?MmrYB?JI`V}TW00Bo`EjyU` z6&k4^u;B`JT%(MU#hgCnW@Nil<;F~aFOQH zff5`^3OhfH0#wl$uYx;boQD{$bdMPv)Mh zf!GPEAP_JXO1G+exvD+=X?aA>)Kt3li(q?ia^+mUJr0_qEooY;I1vk`lz?!rc=@iZ4%u-$t( z>t(Hh%2rf4uZ-w4c$zG*od`0CT5b9Bp|XNX>wCuUm)D@RI+Yo;YC^^9Gbz_!os4ao zk*v{MPf$_UST%bAA%mHB)+fL2zalggfW!a* literal 0 HcmV?d00001 diff --git a/app/ui/urma.qrc b/app/ui/urma.qrc new file mode 100644 index 0000000..7f0c42d --- /dev/null +++ b/app/ui/urma.qrc @@ -0,0 +1,9 @@ + + + icons8-next-page-48.png + icons8-prev-page-48.png + dont-know-woman.png + green-tick.png + red-cross.png + + diff --git a/app/urma.py b/app/urma.py index ae99a2a..9f89fc7 100755 --- a/app/urma.py +++ b/app/urma.py @@ -3,6 +3,8 @@ import ipdb import pickle import random +import stackprinter +import sys from config import Config from dbconfig import engine, Session, scoped_session @@ -17,7 +19,15 @@ from models import ( PostTags, ) -MAXINT = 2147483647 +from PyQt5.QtWidgets import ( + QApplication, + QLabel, + QMainWindow, + QPushButton, +) + +from ui.main_window_ui import Ui_MainWindow # type: ignore + TESTDATA = "/home/kae/git/urma/hometl.pickle" # Mastodon.create_app( @@ -47,56 +57,86 @@ TESTDATA = "/home/kae/git/urma/hometl.pickle" # following._pagination_prev # history -Base.metadata.create_all(engine) -# mastodon = Mastodon(access_token=Config.ACCESS_TOKEN) +# mastodon = mastodon(access_token=Config.ACCESS_TOKEN) -def process_post(post): - rec = Posts.get_or_create(session, str(post.id)) - if rec.account_id is not None: - # We already have this post - return - - # Create account record if needed - account_rec = Accounts.get_or_create(session, str(post.account.id)) - if account_rec.username is None: - account_rec.username = post.account.username - account_rec.acct = post.account.acct - account_rec.display_name = post.account.display_name - account_rec.bot = post.account.bot - account_rec.url = post.account.url - rec.account_id = account_rec.id - - # Create hashtag records as needed - for tag in post.tags: - hashtag = Hashtags.get_or_create(session, tag.name, tag.url) - rec.hashtags.append(hashtag) - - # Handle media - for media in post.media_attachments: - media_rec = Attachments.get_or_create(session, str(media.id), rec.id) - if not media_rec.type: - media_rec.type = media.type - media_rec.url = media.url - media_rec.preview_url = media.preview_url - media_rec.description = media.description - - rec.account_id = account_rec.id - rec.created_at = post.created_at - rec.uri = post.uri - rec.url = post.url - rec.content = post.content - - if post.reblog: - rec.child_id = process_post(post.reblog).id - - return rec +class Window(QMainWindow, Ui_MainWindow): + def __init__(self, parent=None) -> None: + super().__init__(parent) + self.setupUi(self) -# Data for development -with open(TESTDATA, "rb") as inp: - hometl = pickle.load(inp) +# class HoldingPot: +# def process_post(post): +# rec = Posts.get_or_create(session, str(post.id)) +# if rec.account_id is not None: +# # We already have this post +# return +# +# # Create account record if needed +# account_rec = Accounts.get_or_create(session, str(post.account.id)) +# if account_rec.username is None: +# account_rec.username = post.account.username +# account_rec.acct = post.account.acct +# account_rec.display_name = post.account.display_name +# account_rec.bot = post.account.bot +# account_rec.url = post.account.url +# rec.account_id = account_rec.id +# +# # Create hashtag records as needed +# for tag in post.tags: +# hashtag = Hashtags.get_or_create(session, tag.name, tag.url) +# rec.hashtags.append(hashtag) +# +# # Handle media +# for media in post.media_attachments: +# media_rec = Attachments.get_or_create(session, +# str(media.id), rec.id) +# if not media_rec.type: +# media_rec.type = media.type +# media_rec.url = media.url +# media_rec.preview_url = media.preview_url +# media_rec.description = media.description +# +# rec.account_id = account_rec.id +# rec.created_at = post.created_at +# rec.uri = post.uri +# rec.url = post.url +# rec.content = post.content +# +# if post.reblog: +# rec.child_id = process_post(post.reblog).id +# +# return rec +# +# # Data for development +# with open(TESTDATA, "rb") as inp: +# hometl = pickle.load(inp) +# +# with Session() as session: +# for post in hometl: +# process_post(post) -with Session() as session: - for post in hometl: - process_post(post) + +if __name__ == "__main__": + """ + If command line arguments given, carry out requested function and + exit. Otherwise run full application. + """ + + try: + Base.metadata.create_all(engine) + app = QApplication(sys.argv) + win = Window() + win.show() + sys.exit(app.exec()) + except Exception as exc: + from helpers import send_mail + + msg = stackprinter.format(exc) + send_mail(Config.ERRORS_TO, Config.ERRORS_FROM, + "Exception from urma", msg) + + print("\033[1;31;47mUnhandled exception starts") + stackprinter.show(style="darkbg") + print("Unhandled exception ends\033[1;37;40m") diff --git a/app/urma_rc.py b/app/urma_rc.py new file mode 100644 index 0000000..1231421 --- /dev/null +++ b/app/urma_rc.py @@ -0,0 +1,831 @@ +# -*- coding: utf-8 -*- + +# Resource object code +# +# Created by: The Resource Compiler for PyQt5 (Qt v5.15.2) +# +# WARNING! All changes made in this file will be lost! + +from PyQt5 import QtCore + +qt_resource_data = b"\ +\x00\x00\x01\x85\ +\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\x00\x09\x70\x48\x59\x73\x00\x00\x0b\x13\x00\x00\x0b\x13\ +\x01\x00\x9a\x9c\x18\x00\x00\x01\x37\x49\x44\x41\x54\x78\x9c\xed\ +\x98\x4d\x4b\x03\x31\x10\x86\x73\xf6\x03\x15\xc4\x9b\x20\xfe\x0c\ +\x11\x02\x99\x76\xe6\x60\xf0\xff\x15\xd4\x09\x95\x5e\xfc\x11\xb5\ +\xa2\xe0\xd7\x55\xbc\x8a\xbf\x44\x59\x61\x71\xdd\xdd\x96\x6e\x5b\ +\x9b\x04\xde\x07\x72\xd9\xc3\xe6\x79\x67\xc2\x66\x58\x63\x00\x00\ +\x00\x00\x00\x40\x92\xf4\x87\xfd\x4d\x52\xbe\xb6\x2a\x47\x26\x37\ +\xfc\xc0\x6f\x90\xca\x98\x82\x7c\x39\x95\x4f\xba\xa4\x63\x93\x53\ +\xe5\x9d\xf2\xa4\x90\xff\x5d\xfc\xc1\x57\x7c\x68\x72\xaa\x3c\x55\ +\x96\x53\xbe\xb7\x37\x76\xcb\xa4\x8c\x87\x7c\x24\x3c\x2a\x1f\x09\ +\x8f\xca\x47\x02\x95\x8f\x05\x2a\xdf\x85\x62\xee\xa0\xc0\xc3\x62\ +\x2e\x31\x2b\x99\x2a\xe5\xae\x65\x3c\x98\xac\xe2\xfd\x6d\x1b\x1e\ +\x38\x95\xf7\x72\x06\x39\xb9\x38\xdf\xce\xe6\xd8\xd8\x91\xdf\x27\ +\xe5\xb7\xfa\x66\x8b\x84\x88\x72\xe6\x4f\x47\x67\x7b\x4e\xe5\xb5\ +\x6d\xd3\x2e\x21\x66\xc9\x2f\xd3\xd1\xb5\x84\x88\x2a\x5f\x62\xd5\ +\xee\xba\xc0\x2f\x0d\x89\x20\x0f\xb3\x24\x92\x90\xaf\x86\x20\x95\ +\xe7\x79\x43\x24\x25\xdf\x35\x44\x92\xf2\x25\xbd\x41\x6f\x87\x54\ +\x9e\xa6\x85\x48\x5a\xbe\xd6\x89\x46\x88\x9f\x0b\xaa\xe5\x92\x2a\ +\x9e\xfd\xcb\x25\xb5\x6c\x27\x5c\xe0\xc7\x86\x6c\xca\x95\x9f\xef\ +\x97\x47\x26\xf2\x7f\x42\x04\xbe\xcd\x52\x7e\x5a\x88\xac\xe4\x6b\ +\x53\xe6\x38\x4b\xf9\x6a\x88\xe4\xbe\x36\x00\x00\x60\xd6\xc5\x37\ +\x65\xc0\x1e\xc6\x76\x9c\x4f\xc4\x00\x00\x00\x00\x49\x45\x4e\x44\ +\xae\x42\x60\x82\ +\x00\x00\x01\x8d\ +\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\x00\x09\x70\x48\x59\x73\x00\x00\x0b\x13\x00\x00\x0b\x13\ +\x01\x00\x9a\x9c\x18\x00\x00\x01\x3f\x49\x44\x41\x54\x78\x9c\xed\ +\x98\xcb\x4e\xc3\x30\x10\x45\xf3\x29\x2c\x88\x78\x88\x1d\xb5\xdd\ +\x5d\x85\x1d\xf8\xff\x3f\x60\x01\xa2\xb4\xdd\xf4\xc6\x41\x2c\x41\ +\x96\x82\x84\x02\x89\x9c\x74\xec\x4c\xaa\xb9\x52\xb6\x9e\x73\x64\ +\x27\x9e\x4c\x51\x48\x24\x12\x89\x44\x12\x99\xda\xea\x5b\x54\xa6\ +\x2c\x12\xe5\xb8\x59\x5f\x86\x1a\x49\x16\xaf\x9f\xee\xaf\xbd\xd5\ +\x6f\xde\xe9\x6d\x5d\x99\x1b\xea\xf5\x51\x99\xd2\x3b\xf5\xda\x58\ +\xb5\xf3\x8f\xab\xbb\x24\xf0\x8d\xd3\x5f\xe1\xa1\x96\xc0\x0f\x7c\ +\xbb\x3e\xa9\x44\x17\x9e\x5a\x02\x5d\x78\x6a\x89\xcf\x8d\xb9\xf0\ +\x4e\x3d\xff\x29\x40\x20\x81\x3e\x78\xea\x5d\x4e\x21\x91\x0d\x3e\ +\x85\x44\x76\x78\x4a\x89\xd9\xe0\x29\x24\x66\x87\x3f\x45\x82\x0d\ +\xfc\x14\x09\x76\xf0\x63\x24\xd8\xc2\xc7\x48\x34\x4e\xef\x1b\xa7\ +\xde\xd9\xc2\x47\x4a\xf0\x86\x1f\x2b\xc1\x12\xfe\xb7\x44\xdd\x73\ +\xde\x5b\xf8\x03\x5b\xf8\x90\xf0\xc2\x7e\x58\xbd\x1d\xd8\x01\xbe\ +\x02\x18\xf8\xda\xb0\x3f\x42\x88\x84\x67\x29\x81\x21\x78\xab\xf7\ +\x01\x96\xad\x04\x22\x2e\xa9\xf0\x9f\xeb\x9d\x7a\x61\x27\x81\x11\ +\x37\x2c\x3b\x09\x4c\x68\x0f\xd8\x48\xe0\x84\xde\x66\x76\x09\x10\ +\x34\x66\xad\x44\xfe\xe6\x0e\x84\x5d\x65\xf6\x0e\x15\x09\x0a\x66\ +\x93\x40\xc2\x42\xc8\x21\x81\x87\xd5\xd5\xa2\x07\x5b\xff\x49\x2c\ +\x6a\xb4\xd8\x95\x58\xe4\x70\x37\xd7\x78\x1d\x95\x29\x93\x8d\xd7\ +\x25\x12\x89\x44\x72\x96\xf9\x06\x94\xab\x0c\xdf\x2f\xdb\x18\x63\ +\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ +\x00\x00\x16\xaa\ +\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\x02\xee\x7a\x54\x58\x74\x52\x61\x77\x20\x70\x72\x6f\x66\ +\x69\x6c\x65\x20\x74\x79\x70\x65\x20\x65\x78\x69\x66\x00\x00\x78\ +\xda\xed\x96\x5d\xae\xdc\x20\x0c\x85\xdf\x59\x45\x97\x10\xdb\x18\ +\x9b\xe5\x10\x7e\xa4\xee\xa0\xcb\xef\x81\x64\xd2\x99\xb9\x73\xa5\ +\x5b\xf5\xbe\x54\x9a\xa0\x00\xe3\x90\x83\xf1\x67\xc8\x84\xfe\xeb\ +\xe7\x08\x3f\x70\x51\xb6\x18\xa2\x9a\xa7\x9c\xd2\x86\x2b\xe6\x98\ +\xb9\xa0\xe3\xdb\x71\x95\x55\xd3\x16\x57\xbd\x2e\x39\x1f\xe1\xf7\ +\x83\x3d\x5c\x0f\x18\x26\xf9\x33\xd2\xd3\x39\xfe\x66\xa7\x4b\xe0\ +\x68\x0a\x7a\x7a\x27\xe4\xf5\x7c\xb0\x3f\x3e\xc8\xf1\xd4\xf7\x27\ +\xa1\x73\x22\x99\x1e\x31\x3a\xed\x14\xca\xa7\x90\xf0\xf1\x80\x4e\ +\x81\x72\x2c\x6b\x4b\xd9\xed\x7e\x09\x7b\x3f\xda\x76\x5b\x89\x1f\ +\x77\x98\x95\xd8\xd2\xbe\x44\x9e\x7f\x47\x43\xf4\x9a\xc2\x28\xcc\ +\x5d\x48\x36\xd4\x2c\x7c\x38\x20\xf3\x96\x20\x05\x1d\x5a\x75\xe4\ +\xd9\x4b\xab\x6f\xab\xe6\xd3\x13\x04\xe4\x55\x9c\xb6\x3b\xaf\xc2\ +\x33\x95\xab\x47\x9f\xd8\x9f\xa0\x48\x3a\xec\x01\x86\xc7\x60\xa6\ +\xab\x7d\x69\x27\x7d\x1d\xfc\xb0\x42\x7c\x9f\x27\xf5\x9a\xf9\xc1\ +\x6e\x72\x4d\xf1\x10\xe4\x79\x8f\xd1\x3c\x8c\xd1\x8f\xd5\x95\x98\ +\x10\xd2\x74\x2e\xea\xb6\x94\xd5\xc3\xc0\x1d\x21\x97\xf5\x5a\x42\ +\x31\xdc\x8a\xbe\xad\x92\x51\x3c\x20\x7b\x2b\xe8\xb4\xad\x6e\x3b\ +\x4a\xa5\x4c\x0c\x2c\x83\x22\x35\x2a\x34\xa8\xaf\xb6\x52\x85\x8b\ +\x91\x3b\x1b\x5a\xe6\xca\xb2\x6c\x2e\xc6\x99\xab\x20\xb3\x49\xe2\ +\x2c\x34\xd8\x24\x4b\x13\x07\xcc\x0a\xbc\x02\x2b\x5f\xbe\xd0\x9a\ +\x37\xaf\xe9\x2a\x39\x26\x6e\x84\x91\x4c\x10\xa3\x99\x0a\x61\x56\ +\xdf\x51\x3e\x15\x1a\x63\xa6\x3c\xd1\xe6\x57\xac\xe0\x17\xcf\xcc\ +\x82\x1b\x93\xdc\xac\x31\x0a\x40\x68\xdc\xf2\x48\x57\x80\x6f\xe5\ +\xf9\x9a\x5c\x05\x04\x75\x85\xd9\xb1\xc0\xb2\xed\x87\xc4\xae\x74\ +\xe6\xd6\xcc\x23\x59\xa0\x05\x03\x15\xed\xb1\x2d\xc8\xda\x29\x80\ +\x10\x61\x6e\x85\x33\x24\x20\xb0\x25\x12\xa5\x44\x9b\x31\x1b\x11\ +\xe2\xe8\xe0\x53\x20\xe4\x8c\xbd\xb1\x03\x01\xa9\x72\x83\x97\x1c\ +\x45\x12\xe0\x38\xcf\xb9\xf1\x8e\xd1\x1a\xcb\xca\x87\x19\x67\x16\ +\x40\x28\x36\x93\x01\x4d\x96\x02\x56\xf3\x60\x43\xfe\x58\x74\xe4\ +\x50\x51\xd1\xa8\xaa\x49\x4d\x5d\xb3\x96\x24\x29\x26\x4d\x29\x59\ +\x9a\x87\x5f\x31\xb1\x68\x6a\xc9\xcc\xdc\xb2\x15\x17\x8f\xae\x9e\ +\xdc\xdc\x83\x67\x2f\x99\xb3\xe0\x70\xd4\x9c\xb2\x65\xcf\x39\x97\ +\x82\x49\x0b\x94\x0b\xde\x2e\x18\x50\xca\xce\xbb\xec\x71\xd7\x3d\ +\xed\xb6\xfb\x9e\xf7\x52\x91\x3e\x35\x56\xad\xa9\x5a\xf5\x50\x73\ +\x2d\x8d\x9b\x34\x9c\x13\x2d\x35\x6b\xde\x72\x2b\x9d\x3a\x52\xa9\ +\xc7\xae\x3d\x75\xeb\xde\x73\x2f\x03\xa9\x36\x64\xc4\xa1\x23\x0d\ +\x1b\x3e\xf2\x28\x17\x35\x0a\x07\xd6\x0f\xe5\xeb\xd4\xe8\x46\x8d\ +\x17\xa9\x39\xd0\x2e\x6a\x78\xd5\xec\x26\x41\xf3\x38\xd1\xc9\x0c\ +\xc4\x38\x12\x88\xdb\x24\x80\x84\xe6\xc9\x6c\x73\x8a\x91\xc3\x44\ +\x37\x99\x6d\x19\xc7\x9c\x28\xc3\x4b\x9d\x70\x1a\x4d\x62\x20\x18\ +\x3b\xb1\x0e\xba\xd8\xfd\x21\xf7\xc0\x2d\xc4\xf8\x4f\xdc\xf8\x46\ +\x2e\x4c\x74\xdf\x41\x2e\x4c\x74\x9f\x90\xfb\xc8\xed\x05\xb5\x36\ +\xbf\x36\x75\x93\xb0\x08\xcd\x6d\x38\x83\xba\x09\xb6\x1f\x06\x74\ +\x2f\xec\x65\x7e\xd4\xbe\xdc\x86\xbf\x7d\xe1\x2d\xf4\x16\x7a\x0b\ +\xbd\x85\xde\x42\x6f\xa1\xb7\xd0\xff\x23\x34\xf0\xe7\x21\xe3\x4f\ +\xfa\x6f\x22\xaa\xa2\xbe\xf1\xe5\x7b\xcf\x00\x00\x01\x85\x69\x43\ +\x43\x50\x49\x43\x43\x20\x70\x72\x6f\x66\x69\x6c\x65\x00\x00\x78\ +\x9c\x7d\x91\x3d\x48\xc3\x50\x14\x85\x4f\xd3\x6a\x45\x2a\x0a\x76\ +\x10\x51\xc8\x50\x9d\x2c\x88\x8a\x38\x6a\x15\x8a\x50\x21\xd4\x0a\ +\xad\x3a\x98\xbc\xf4\x0f\x9a\x34\x24\x29\x2e\x8e\x82\x6b\xc1\xc1\ +\x9f\xc5\xaa\x83\x8b\xb3\xae\x0e\xae\x82\x20\xf8\x03\xe2\xea\xe2\ +\xa4\xe8\x22\x25\xde\x97\x16\x5a\xc4\x78\xe1\xf1\x3e\xce\xbb\xe7\ +\xf0\xde\x7d\x80\x50\x2b\x31\xcd\x0a\x8c\x03\x9a\x6e\x9b\xc9\x78\ +\x4c\x4c\x67\x56\xc5\xe0\x2b\x7c\x08\xa0\x0f\x9d\x18\x96\x99\x65\ +\xcc\x49\x52\x02\x9e\xf5\x75\x4f\xdd\x54\x77\x51\x9e\xe5\xdd\xf7\ +\x67\xf5\xa8\x59\x8b\x01\x3e\x91\x78\x96\x19\xa6\x4d\xbc\x41\x3c\ +\xbd\x69\x1b\x9c\xf7\x89\xc3\xac\x20\xab\xc4\xe7\xc4\x63\x26\x5d\ +\x90\xf8\x91\xeb\x4a\x83\xdf\x38\xe7\x5d\x16\x78\x66\xd8\x4c\x25\ +\xe7\x89\xc3\xc4\x62\xbe\x8d\x95\x36\x66\x05\x53\x23\x9e\x22\x8e\ +\xa8\x9a\x4e\xf9\x42\xba\xc1\x2a\xe7\x2d\xce\x5a\xa9\xc2\x9a\xf7\ +\xe4\x2f\x0c\x65\xf5\x95\x65\xae\xd3\x1a\x42\x1c\x8b\x58\x82\x04\ +\x11\x0a\x2a\x28\xa2\x04\x1b\x51\xda\x75\x52\x2c\x24\xe9\x3c\xe6\ +\xe1\x1f\x74\xfd\x12\xb9\x14\x72\x15\xc1\xc8\xb1\x80\x32\x34\xc8\ +\xae\x1f\xfc\x0f\x7e\xcf\xd6\xca\x4d\x4e\x34\x92\x42\x31\xa0\xe3\ +\xc5\x71\x3e\x46\x80\xe0\x2e\x50\xaf\x3a\xce\xf7\xb1\xe3\xd4\x4f\ +\x00\xff\x33\x70\xa5\xb7\xfc\xe5\x1a\x30\xf3\x49\x7a\xb5\xa5\x45\ +\x8e\x80\xde\x6d\xe0\xe2\xba\xa5\x29\x7b\xc0\xe5\x0e\x30\xf0\x64\ +\xc8\xa6\xec\x4a\x7e\x5a\x42\x2e\x07\xbc\x9f\xd1\x37\x65\x80\xfe\ +\x5b\xa0\x7b\xad\x31\xb7\xe6\x39\x4e\x1f\x80\x14\xcd\x2a\x71\x03\ +\x1c\x1c\x02\xa3\x79\xca\x5e\xf7\x78\x77\x57\xfb\xdc\xfe\xed\x69\ +\xce\xef\x07\xfd\x69\x72\x78\x74\xa8\xb2\x61\x00\x00\x0f\x8b\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\x0a\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\x58\x4d\x50\x20\ +\x43\x6f\x72\x65\x20\x34\x2e\x34\x2e\x30\x2d\x45\x78\x69\x76\x32\ +\x22\x3e\x0a\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\x0a\x20\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\x0a\x20\x20\x20\x20\x78\x6d\x6c\x6e\x73\x3a\ +\x69\x70\x74\x63\x45\x78\x74\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\ +\x69\x70\x74\x63\x2e\x6f\x72\x67\x2f\x73\x74\x64\x2f\x49\x70\x74\ +\x63\x34\x78\x6d\x70\x45\x78\x74\x2f\x32\x30\x30\x38\x2d\x30\x32\ +\x2d\x32\x39\x2f\x22\x0a\x20\x20\x20\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\x0a\x20\x20\x20\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\x0a\x20\x20\x20\x20\x78\ +\x6d\x6c\x6e\x73\x3a\x70\x6c\x75\x73\x3d\x22\x68\x74\x74\x70\x3a\ +\x2f\x2f\x6e\x73\x2e\x75\x73\x65\x70\x6c\x75\x73\x2e\x6f\x72\x67\ +\x2f\x6c\x64\x66\x2f\x78\x6d\x70\x2f\x31\x2e\x30\x2f\x22\x0a\x20\ +\x20\x20\x20\x78\x6d\x6c\x6e\x73\x3a\x47\x49\x4d\x50\x3d\x22\x68\ +\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x67\x69\x6d\x70\x2e\x6f\ +\x72\x67\x2f\x78\x6d\x70\x2f\x22\x0a\x20\x20\x20\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\x0a\x20\x20\x20\x20\x78\x6d\x6c\ +\x6e\x73\x3a\x74\x69\x66\x66\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\ +\x6e\x73\x2e\x61\x64\x6f\x62\x65\x2e\x63\x6f\x6d\x2f\x74\x69\x66\ +\x66\x2f\x31\x2e\x30\x2f\x22\x0a\x20\x20\x20\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\x0a\x20\x20\x20\x78\x6d\x70\x4d\x4d\x3a\x44\x6f\ +\x63\x75\x6d\x65\x6e\x74\x49\x44\x3d\x22\x67\x69\x6d\x70\x3a\x64\ +\x6f\x63\x69\x64\x3a\x67\x69\x6d\x70\x3a\x65\x38\x33\x32\x38\x31\ +\x31\x30\x2d\x35\x36\x63\x62\x2d\x34\x36\x30\x66\x2d\x39\x62\x35\ +\x37\x2d\x66\x63\x35\x61\x66\x34\x32\x61\x65\x64\x66\x63\x22\x0a\ +\x20\x20\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\x65\x34\ +\x39\x32\x64\x63\x31\x2d\x36\x63\x38\x61\x2d\x34\x62\x63\x61\x2d\ +\x39\x34\x35\x39\x2d\x32\x35\x64\x65\x35\x37\x33\x34\x62\x32\x31\ +\x31\x22\x0a\x20\x20\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\x63\x33\x35\x36\x61\x30\x38\x35\ +\x2d\x31\x66\x31\x30\x2d\x34\x39\x38\x38\x2d\x61\x61\x63\x35\x2d\ +\x34\x62\x35\x65\x36\x39\x34\x62\x33\x37\x37\x65\x22\x0a\x20\x20\ +\x20\x47\x49\x4d\x50\x3a\x41\x50\x49\x3d\x22\x32\x2e\x30\x22\x0a\ +\x20\x20\x20\x47\x49\x4d\x50\x3a\x50\x6c\x61\x74\x66\x6f\x72\x6d\ +\x3d\x22\x4c\x69\x6e\x75\x78\x22\x0a\x20\x20\x20\x47\x49\x4d\x50\ +\x3a\x54\x69\x6d\x65\x53\x74\x61\x6d\x70\x3d\x22\x31\x36\x37\x32\ +\x38\x34\x38\x34\x32\x34\x37\x39\x38\x35\x35\x35\x22\x0a\x20\x20\ +\x20\x47\x49\x4d\x50\x3a\x56\x65\x72\x73\x69\x6f\x6e\x3d\x22\x32\ +\x2e\x31\x30\x2e\x32\x32\x22\x0a\x20\x20\x20\x64\x63\x3a\x46\x6f\ +\x72\x6d\x61\x74\x3d\x22\x69\x6d\x61\x67\x65\x2f\x70\x6e\x67\x22\ +\x0a\x20\x20\x20\x74\x69\x66\x66\x3a\x4f\x72\x69\x65\x6e\x74\x61\ +\x74\x69\x6f\x6e\x3d\x22\x31\x22\x0a\x20\x20\x20\x78\x6d\x70\x3a\ +\x43\x72\x65\x61\x74\x6f\x72\x54\x6f\x6f\x6c\x3d\x22\x47\x49\x4d\ +\x50\x20\x32\x2e\x31\x30\x22\x3e\x0a\x20\x20\x20\x3c\x69\x70\x74\ +\x63\x45\x78\x74\x3a\x4c\x6f\x63\x61\x74\x69\x6f\x6e\x43\x72\x65\ +\x61\x74\x65\x64\x3e\x0a\x20\x20\x20\x20\x3c\x72\x64\x66\x3a\x42\ +\x61\x67\x2f\x3e\x0a\x20\x20\x20\x3c\x2f\x69\x70\x74\x63\x45\x78\ +\x74\x3a\x4c\x6f\x63\x61\x74\x69\x6f\x6e\x43\x72\x65\x61\x74\x65\ +\x64\x3e\x0a\x20\x20\x20\x3c\x69\x70\x74\x63\x45\x78\x74\x3a\x4c\ +\x6f\x63\x61\x74\x69\x6f\x6e\x53\x68\x6f\x77\x6e\x3e\x0a\x20\x20\ +\x20\x20\x3c\x72\x64\x66\x3a\x42\x61\x67\x2f\x3e\x0a\x20\x20\x20\ +\x3c\x2f\x69\x70\x74\x63\x45\x78\x74\x3a\x4c\x6f\x63\x61\x74\x69\ +\x6f\x6e\x53\x68\x6f\x77\x6e\x3e\x0a\x20\x20\x20\x3c\x69\x70\x74\ +\x63\x45\x78\x74\x3a\x41\x72\x74\x77\x6f\x72\x6b\x4f\x72\x4f\x62\ +\x6a\x65\x63\x74\x3e\x0a\x20\x20\x20\x20\x3c\x72\x64\x66\x3a\x42\ +\x61\x67\x2f\x3e\x0a\x20\x20\x20\x3c\x2f\x69\x70\x74\x63\x45\x78\ +\x74\x3a\x41\x72\x74\x77\x6f\x72\x6b\x4f\x72\x4f\x62\x6a\x65\x63\ +\x74\x3e\x0a\x20\x20\x20\x3c\x69\x70\x74\x63\x45\x78\x74\x3a\x52\ +\x65\x67\x69\x73\x74\x72\x79\x49\x64\x3e\x0a\x20\x20\x20\x20\x3c\ +\x72\x64\x66\x3a\x42\x61\x67\x2f\x3e\x0a\x20\x20\x20\x3c\x2f\x69\ +\x70\x74\x63\x45\x78\x74\x3a\x52\x65\x67\x69\x73\x74\x72\x79\x49\ +\x64\x3e\x0a\x20\x20\x20\x3c\x78\x6d\x70\x4d\x4d\x3a\x48\x69\x73\ +\x74\x6f\x72\x79\x3e\x0a\x20\x20\x20\x20\x3c\x72\x64\x66\x3a\x53\ +\x65\x71\x3e\x0a\x20\x20\x20\x20\x20\x3c\x72\x64\x66\x3a\x6c\x69\ +\x0a\x20\x20\x20\x20\x20\x20\x73\x74\x45\x76\x74\x3a\x61\x63\x74\ +\x69\x6f\x6e\x3d\x22\x73\x61\x76\x65\x64\x22\x0a\x20\x20\x20\x20\ +\x20\x20\x73\x74\x45\x76\x74\x3a\x63\x68\x61\x6e\x67\x65\x64\x3d\ +\x22\x2f\x22\x0a\x20\x20\x20\x20\x20\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\x36\x30\x65\x30\x63\x36\x32\x33\x2d\x30\x64\x32\ +\x64\x2d\x34\x37\x63\x35\x2d\x62\x31\x39\x63\x2d\x32\x38\x33\x38\ +\x33\x33\x36\x32\x61\x61\x62\x30\x22\x0a\x20\x20\x20\x20\x20\x20\ +\x73\x74\x45\x76\x74\x3a\x73\x6f\x66\x74\x77\x61\x72\x65\x41\x67\ +\x65\x6e\x74\x3d\x22\x47\x69\x6d\x70\x20\x32\x2e\x31\x30\x20\x28\ +\x4c\x69\x6e\x75\x78\x29\x22\x0a\x20\x20\x20\x20\x20\x20\x73\x74\ +\x45\x76\x74\x3a\x77\x68\x65\x6e\x3d\x22\x2b\x30\x30\x3a\x30\x30\ +\x22\x2f\x3e\x0a\x20\x20\x20\x20\x3c\x2f\x72\x64\x66\x3a\x53\x65\ +\x71\x3e\x0a\x20\x20\x20\x3c\x2f\x78\x6d\x70\x4d\x4d\x3a\x48\x69\ +\x73\x74\x6f\x72\x79\x3e\x0a\x20\x20\x20\x3c\x70\x6c\x75\x73\x3a\ +\x49\x6d\x61\x67\x65\x53\x75\x70\x70\x6c\x69\x65\x72\x3e\x0a\x20\ +\x20\x20\x20\x3c\x72\x64\x66\x3a\x53\x65\x71\x2f\x3e\x0a\x20\x20\ +\x20\x3c\x2f\x70\x6c\x75\x73\x3a\x49\x6d\x61\x67\x65\x53\x75\x70\ +\x70\x6c\x69\x65\x72\x3e\x0a\x20\x20\x20\x3c\x70\x6c\x75\x73\x3a\ +\x49\x6d\x61\x67\x65\x43\x72\x65\x61\x74\x6f\x72\x3e\x0a\x20\x20\ +\x20\x20\x3c\x72\x64\x66\x3a\x53\x65\x71\x2f\x3e\x0a\x20\x20\x20\ +\x3c\x2f\x70\x6c\x75\x73\x3a\x49\x6d\x61\x67\x65\x43\x72\x65\x61\ +\x74\x6f\x72\x3e\x0a\x20\x20\x20\x3c\x70\x6c\x75\x73\x3a\x43\x6f\ +\x70\x79\x72\x69\x67\x68\x74\x4f\x77\x6e\x65\x72\x3e\x0a\x20\x20\ +\x20\x20\x3c\x72\x64\x66\x3a\x53\x65\x71\x2f\x3e\x0a\x20\x20\x20\ +\x3c\x2f\x70\x6c\x75\x73\x3a\x43\x6f\x70\x79\x72\x69\x67\x68\x74\ +\x4f\x77\x6e\x65\x72\x3e\x0a\x20\x20\x20\x3c\x70\x6c\x75\x73\x3a\ +\x4c\x69\x63\x65\x6e\x73\x6f\x72\x3e\x0a\x20\x20\x20\x20\x3c\x72\ +\x64\x66\x3a\x53\x65\x71\x2f\x3e\x0a\x20\x20\x20\x3c\x2f\x70\x6c\ +\x75\x73\x3a\x4c\x69\x63\x65\x6e\x73\x6f\x72\x3e\x0a\x20\x20\x3c\ +\x2f\x72\x64\x66\x3a\x44\x65\x73\x63\x72\x69\x70\x74\x69\x6f\x6e\ +\x3e\x0a\x20\x3c\x2f\x72\x64\x66\x3a\x52\x44\x46\x3e\x0a\x3c\x2f\ +\x78\x3a\x78\x6d\x70\x6d\x65\x74\x61\x3e\x0a\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x3c\x3f\x78\x70\x61\ +\x63\x6b\x65\x74\x20\x65\x6e\x64\x3d\x22\x77\x22\x3f\x3e\xaa\xfc\ +\x7a\xf7\x00\x00\x00\x06\x62\x4b\x47\x44\x00\x00\x00\x00\x00\x00\ +\xf9\x43\xbb\x7f\x00\x00\x00\x09\x70\x48\x59\x73\x00\x00\x0b\x13\ +\x00\x00\x0b\x13\x01\x00\x9a\x9c\x18\x00\x00\x00\x07\x74\x49\x4d\ +\x45\x07\xe7\x01\x04\x10\x07\x04\x21\x9d\xce\xd3\x00\x00\x02\x15\ +\x49\x44\x41\x54\x68\xde\xed\x99\x3b\x2f\x04\x51\x14\xc7\x7f\x2c\ +\x0a\x51\x79\x34\x5e\x25\x1f\xc0\x23\xb4\xbe\x83\x10\x12\xe2\x53\ +\x10\x1f\xc0\x6e\x8f\x2c\x51\x29\x44\x21\xa1\xf0\x28\x48\xe8\x85\ +\x46\x14\x94\x2c\x91\x58\x3a\xc5\x6e\x58\xab\x39\x93\x4c\xc6\x8a\ +\x3b\x77\xee\xcc\xbd\x62\xfe\xc9\xa9\x26\x39\xf7\x7f\xce\xb9\x73\ +\x5e\x17\x52\xa4\xf8\xdf\xa8\x33\xa4\xa7\x1e\x18\x06\xc6\x80\x01\ +\xa0\x1f\xe8\x04\x5a\xe4\xfb\x1b\xf0\x04\xdc\x00\x97\xc0\x19\x70\ +\x0e\x54\x6c\x3b\xa0\x1b\xc8\x02\x05\xa0\x1a\x52\x1e\x80\x1c\xd0\ +\x63\x83\x78\x3b\x90\x07\xca\x1a\xc4\x83\x52\x06\xd6\x81\x8e\xa4\ +\xc8\x4f\x02\x2f\x06\x88\x07\xe5\x15\x98\x8a\x93\x78\x23\xb0\x16\ +\x03\xf1\xa0\x6c\xc8\x59\x46\xd1\x0c\x1c\x26\x40\xde\x93\x23\x39\ +\xd3\x08\x9a\x80\x93\x04\xc9\xfb\x8d\x30\x12\x89\xbc\x05\xf2\xfe\ +\xeb\x14\x09\x13\x16\xc9\x7b\x32\xad\x4b\xbe\x0d\x28\x1a\x22\x51\ +\x11\xd1\xcd\x4e\x5a\x29\x76\xd5\x20\xf9\x19\x11\x5d\x23\xd6\xc3\ +\x92\xef\x35\x54\xa4\xde\xa5\x6e\x78\x98\xd5\x34\xa2\x2c\x55\x5f\ +\x19\x59\x83\x9e\x0f\x62\x4e\x53\x5f\x4e\x95\x7c\x46\xfa\x14\x93\ +\x9e\xf7\xd0\x00\x6c\x6b\xea\x2c\x48\xd3\xf8\x2b\x86\x63\xf2\x7c\ +\x3d\xb0\x19\x51\xf7\xa8\x8a\x01\x0b\x8e\x92\xaf\x02\x8b\x2a\x06\ +\xec\x38\x74\x6d\x82\xb2\xab\x62\xc0\x95\x83\x9e\xf7\xe4\x5a\xc5\ +\x80\xa2\x83\x9e\xf7\x17\xb5\x5f\x51\x72\x94\xbc\x57\x0f\xbe\x85\ +\x38\x8e\x99\xba\x6a\x73\xce\x0d\x7b\x85\x3e\x7e\x88\x42\xc6\xd6\ +\x15\xfa\xf3\x3f\xb1\x6e\x1a\x4d\x22\x12\x4a\x69\x74\x3e\xc2\x01\ +\x71\x1b\xa1\x54\xc8\x86\x1c\x6e\x25\x46\x54\xb7\x6c\x77\x11\x0f\ +\x8a\x23\x12\xf7\xb5\xb2\x66\xad\x34\xfa\x09\x6c\x45\xcc\x64\x19\ +\xd1\x11\x8c\x44\x05\x38\xd6\xd4\xb9\x25\xdc\x94\xd0\x15\xb2\xa0\ +\xa9\x46\x22\xb1\x81\x06\x60\xd9\xa1\x91\x32\xaf\x13\xb2\x56\xe0\ +\xd9\x81\xa1\xfe\x45\x76\xb1\x5a\x18\x77\x60\xad\x32\x19\xb5\xb5\ +\x58\xb1\x48\x7e\xcd\x44\x6f\xd4\x00\x1c\x58\x20\xbf\x27\xd9\xcc\ +\xd8\x72\x77\x3f\x41\xf2\x87\x26\x97\xbb\xfe\x48\x24\x71\x9d\xf2\ +\x71\xac\xd7\x83\x3f\xf6\x73\x0c\xc4\x8b\xb2\x8b\x4d\x04\xad\x52\ +\x27\x4c\x14\xbb\x92\xac\x31\xdb\x6c\x0c\x3f\x5d\xc0\x92\xf4\x29\ +\x3a\xbd\x4d\x56\x74\x38\xf1\xcc\x3a\x20\xcf\xac\x83\x40\x9f\x94\ +\x7e\xff\x33\xeb\x23\x70\x2b\xcf\xac\xa7\xc0\x45\x98\xde\x26\x45\ +\x8a\x14\xb5\xf1\x05\x7b\xe4\x3e\x41\x4b\x05\x51\xb7\x00\x00\x00\ +\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ +\x00\x00\x11\xc1\ +\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\x00\x09\x70\x48\x59\x73\x00\x00\x0b\x13\x00\x00\x0b\x13\ +\x01\x00\x9a\x9c\x18\x00\x00\x11\x73\x49\x44\x41\x54\x78\x9c\xed\ +\x98\x07\x54\x94\xd7\xb6\xc7\xa7\xc8\x0c\x33\xe0\xcd\x0d\x7d\x60\ +\x68\x52\x2c\x08\x42\x12\x69\x22\xd8\xbb\x31\x16\x22\x22\x86\x3e\ +\xf4\x2a\x2a\x62\x07\x82\x8a\xd8\x3b\x6a\x7c\x31\x89\xc9\x53\x73\ +\x93\x18\x88\x25\xa0\x80\x22\x82\x80\x20\x75\x86\x19\x18\x8a\x46\ +\xb3\x12\xa3\xd8\xae\x88\xf3\x7f\xeb\x9c\x6f\x68\x51\x12\xd7\xba\ +\x6f\xbd\x7b\xdf\x5a\x39\x6b\x9d\x35\xe5\xfb\xbe\x73\xf6\x6f\xef\ +\xff\xde\xfb\xcc\xb0\x58\x7f\x8d\xbf\xc6\x7f\xce\xf0\x1e\xc5\xe2\ +\x7d\xe4\xaa\xf3\x51\x80\xab\xee\xf1\x00\x37\x9d\xea\x40\x77\x9d\ +\x96\x40\x37\xdd\x8e\x00\x57\xdd\x3a\x7f\x57\x9d\x5c\x7f\x17\x9d\ +\x75\xcb\xdc\xf4\x9c\x58\xff\x49\x63\x03\x8b\xc5\x09\x74\xd5\x99\ +\x12\xea\xa1\xb7\x26\x6e\x8a\x7e\x73\xd4\x24\x31\xe2\xa6\x59\x20\ +\x71\xa6\x15\x96\xcf\xb6\xc6\xf2\x59\xd6\x48\x98\x39\x0c\xb1\x53\ +\xcd\x11\x31\xc1\x04\x41\xee\xfa\x08\x70\xd1\x29\x0c\x1a\xab\xfb\ +\xde\xbf\xdb\x76\x96\x9f\xf3\x5b\x96\xfe\xae\xba\x57\xc2\x27\x18\ +\x23\x7a\xb2\x29\xe2\xa6\x59\x62\xfd\x22\x3b\x6c\xf2\x19\x83\x74\ +\x5f\x27\x7c\xbc\xf4\x1d\xa4\x2f\x7d\x07\x69\x4b\x9c\xb0\xf1\x43\ +\x07\xac\x59\x60\x87\x95\x73\x6d\x11\x33\xd5\x1c\xc1\xee\x06\x2f\ +\xfc\x5d\x74\x62\xff\x6d\xc6\x07\xb9\xeb\x0e\x0f\x76\x37\xf8\x29\ +\x6e\xba\x05\x56\xcd\xb5\x45\xf0\x38\x7d\x48\x3c\x8d\xb0\xe5\x23\ +\x67\x6c\x0b\x74\x45\x56\x90\x1b\xb6\x07\xbb\xd1\x57\xf2\x39\x33\ +\xc0\x05\x5b\x3e\x1a\x8b\x34\x5f\x27\xac\x5d\x68\x87\xa4\xd9\xd6\ +\x08\xf7\x32\x46\x80\xab\x4e\xf4\xff\xb9\xf1\x91\x5e\xfa\xda\x21\ +\x1e\x86\x4d\x44\x26\xeb\x16\x8e\xc6\x9a\xf9\x23\x11\xe2\x61\x80\ +\x70\x4f\x11\xb6\x05\xb9\x63\x4f\xb8\x27\xf6\x46\x78\x61\x6f\xc4\ +\x04\xfa\x4a\x3e\xef\x92\x78\x60\x7b\xb0\x3b\x05\xd9\xbc\xec\x3d\ +\xac\xf7\xb6\x47\xd2\x1c\x1b\x84\x79\x89\xba\x02\xdc\x74\xc7\xfe\ +\x4b\x06\xfd\x92\x6b\x11\xf7\x3c\xdf\x26\x14\x32\x6b\xfe\x9b\xdc\ +\x1f\xe0\xa6\xb7\x35\x7e\xba\x25\xf5\x64\x86\xdf\xbb\xd8\xf8\xe1\ +\x18\x48\xc6\x1b\x21\x74\xbc\x21\x52\x97\x38\xe1\x50\xdc\x64\x7c\ +\x92\x34\x13\xc7\x57\xcc\xa2\xaf\x47\x12\xa6\xe1\x40\xf4\x24\x0a\ +\xb2\x23\x64\x1c\x8d\x08\x81\x58\xbb\xd0\x0e\x64\x9d\x00\x37\xbd\ +\xeb\x6f\x6a\x2b\x2e\x7b\x0d\xe9\x2e\x1d\xee\xfd\x20\xcf\x72\x0d\ +\xfd\xa2\xf9\xb4\x89\xcb\xfd\x5c\xe3\xee\xdf\xf2\xec\xf0\xe4\x9a\ +\x43\xed\x9f\x2d\x20\x79\xf7\xed\xb7\xc2\x27\x98\x3c\x4a\x9e\x37\ +\x82\x6a\x9b\xf1\xe8\x58\xc4\x4c\x35\x43\xa0\xbb\x1e\x12\x66\x5a\ +\x62\x93\x8f\x23\xf6\x48\x3c\x71\x2c\x71\x26\x3e\x4d\x9e\x83\xff\ +\x5a\x39\x0b\x47\x13\xa6\x63\x7f\xa4\x17\x95\x54\xaa\x8f\x23\xcd\ +\x87\x8d\x3e\x0e\x34\x27\xc2\x3c\x45\xf0\x77\xd6\x71\x7d\x13\x80\ +\xee\x72\x87\x53\x0f\xf2\x1d\x70\xff\x9c\x59\x77\xc7\x19\xbd\x2d\ +\xac\x86\x63\x26\xcf\xef\x9c\x15\xe3\xde\x39\x73\x3c\x2a\x70\x7c\ +\x89\x5a\x2f\xed\x3f\x5a\x80\x94\x49\x52\x51\xd6\x2e\xb0\xa3\x5e\ +\xdc\x1a\xe8\x82\xf5\x8b\xec\x11\x39\xc9\x84\x02\xd0\x5c\xf0\x12\ +\x51\xcf\xae\xfe\x60\x04\x8d\xce\x86\xc5\x8e\x58\xef\xed\x80\x94\ +\xf9\xa3\xb0\x62\x8e\x35\xad\x48\x71\xd3\xcc\x68\x85\x22\x8e\x88\ +\x98\x68\x42\x72\x21\xfb\x4d\xbc\xdf\x59\xe0\xf8\xe2\xe7\x1f\x2c\ +\x70\xf7\xac\x09\xe4\xc7\x8d\xbb\x58\xe5\xfb\xcc\x54\x1d\x5f\x1b\ +\x83\x7c\xf9\x30\xdf\x09\x68\x98\xc1\x84\x66\x90\x41\x6a\x3c\x49\ +\x5c\xa2\x7d\x02\x90\xb6\x64\x0c\xe2\x67\x58\x22\x78\x9c\x01\x96\ +\xb9\xbc\x8d\xa8\x29\x6f\x23\x66\xaa\x05\xc2\x27\x1a\x23\xc4\xc3\ +\x70\xe0\x1c\x67\x80\x60\x77\x7d\x5a\x4a\x49\xce\x44\x4f\x14\x23\ +\x7a\x8a\x29\x48\x15\x0b\x70\xd1\xbd\xcf\x62\xb1\xd8\x7f\x08\xa0\ +\x98\xe5\xf7\x30\xff\x1d\xfc\x9c\x6b\x8e\x8e\x7f\x18\xa3\x62\xbf\ +\x39\x58\xa5\xbb\xcd\x55\x1d\xa7\x45\x78\x78\xc9\x0c\xf7\x2f\xd8\ +\xe0\x61\xe1\xd8\x97\x90\x87\x1b\x0c\xb6\x88\xbf\x8b\x4e\x19\xf1\ +\x20\x91\xc0\xa6\xc5\x8e\x58\x31\xd7\x06\xa1\x1e\x86\x08\xf3\x32\ +\x46\x5e\xa6\x18\x2f\xab\x6c\xd1\xf8\xa5\x25\x8e\xc4\x1a\x22\x66\ +\xaa\x0e\xfc\x5c\xfe\x06\x1f\x67\x1d\x84\x78\x8a\xe0\xe7\xfc\x77\ +\xf8\xbb\xbd\x85\x98\xe9\x3a\xb4\x62\x85\x8e\x37\xa4\xe0\x21\xe3\ +\x0c\x11\xe0\xaa\x0b\x7f\x37\xdd\x11\x83\x1a\x7f\x5b\x22\xec\x2c\ +\x76\xed\xfa\x35\x7f\x34\x1e\x5e\xb1\x44\xfb\x69\x23\x94\xed\x36\ +\x07\xeb\xda\x0e\x73\x55\xdb\x49\x23\xb4\x9f\x16\xe1\x6e\xae\x25\ +\x1e\x5f\x75\x05\x94\x31\x9f\x92\x87\x6e\xe7\x58\x75\x76\xd7\xcf\ +\x3b\xf7\xbb\x08\x34\x93\x86\x44\xb4\x9b\x34\xdb\x0a\x11\x5e\xc4\ +\xd3\x06\x48\x99\xaf\x03\xdc\xb2\x05\x6a\xec\x80\x5a\x07\xa0\xd6\ +\x11\xaa\x5b\x4e\x78\x7e\xc3\x1e\x9d\x45\xa3\xf0\xeb\x45\x5b\x74\ +\x5e\xb6\x45\xd7\x0d\x1b\xa8\x6e\xda\xe0\x8b\x55\xc6\xa4\x17\x20\ +\x68\x9c\x3e\x35\x9e\xcc\x40\x17\x5d\xbf\x01\x46\xcb\x16\x67\xff\ +\x94\x6b\xf5\x84\xbe\x6f\x8d\xc9\x7a\x7c\xd5\x8d\xda\xd8\x7e\x4a\ +\x84\xdb\x67\x8c\x41\x6c\x67\x55\xec\x37\x6d\x2c\xdf\x63\x8e\xbb\ +\xdf\x8a\x80\x5b\x63\x80\xa6\x85\x80\x32\x56\x85\x96\x98\x89\xca\ +\x33\x66\x80\x32\xfa\xe9\xef\x00\x1e\x06\xba\xe9\x21\x72\xa2\x29\ +\x22\x27\x32\xba\x5f\xe6\xf2\x77\x3c\xbd\x66\xa5\x36\xde\x11\xa8\ +\x7b\x17\xa8\x73\x06\xea\x5d\x98\x59\xe7\x0c\x55\xed\xbb\xa8\xf8\ +\xdc\x1e\x97\x0e\x8c\xc2\xf5\x4f\x46\xe0\x5e\x9e\x0d\xf6\x47\xe8\ +\x83\xac\xd5\x03\x10\xe0\xa2\x73\x62\x00\x80\x32\xa6\x8d\xda\xd0\ +\x1e\xeb\x00\x65\xcc\x0b\xc8\x17\x03\xd5\x4e\xb8\xfb\x9d\x31\xaa\ +\x0e\x98\xa2\x74\xb7\xd9\x03\x7a\xe3\xd5\x6d\x16\xb8\xf7\xad\x31\ +\x50\x33\x02\x90\xce\x00\x5a\x24\x04\x42\x4e\x1f\x6e\x8d\x06\x64\ +\x31\xbd\xe5\x95\x68\x95\x6c\x16\xe2\x41\xb4\xac\x07\xbf\xb1\xba\ +\xa8\xfd\xd2\x12\x97\x0e\x8c\xc4\xa7\x6b\xec\x50\xfd\xdf\x8e\x40\ +\xbd\x1b\xd0\xe0\x01\x34\x8c\x57\x4f\x0f\x3c\x2e\x77\x45\x7a\x80\ +\x1d\xf6\xc7\xd9\xe1\xc4\x9a\x51\xd8\x17\x3b\x12\x67\xb7\x0e\x47\ +\x9a\x5f\x5f\x04\x02\x5c\x75\x6f\x0e\x00\x68\x8d\xe9\x6c\x3d\x63\ +\x8a\xae\xa6\x00\x29\x94\xe1\x80\x6c\x16\x75\xd2\x6f\xb9\xc6\x28\ +\xce\x32\x87\xe2\x4b\x4b\x5b\x7a\x63\xc9\x4e\xf3\x17\x37\xf7\x9b\ +\xa2\xab\xd4\x0a\xa8\x1b\x0b\xc8\xe6\x01\x2d\x21\x78\x54\xe2\x02\ +\xb4\x44\x00\x2d\x31\xbd\x07\xb0\x00\x97\xde\xcd\xb0\xcc\x59\x17\ +\x27\x53\x86\x61\x73\xe0\x28\x64\x2f\x1f\x85\xcf\xd6\x8d\x86\xec\ +\xec\x7b\x40\x83\x27\xd0\x38\x11\x68\x9c\xac\x9e\x93\xe8\x77\xaa\ +\x3a\x37\xdc\xc9\x73\x82\xec\x5b\x3b\x3c\x29\xb1\xc5\xfd\x42\x1b\ +\xbc\x28\xb1\xa0\x91\x20\xeb\x7d\xe4\xf2\x76\x57\xaf\xf1\x1d\x89\ +\xa6\x50\xc6\xe2\x51\x89\x33\xe3\xd0\xa6\xf9\x34\x9a\xdd\x15\xd6\ +\xa8\x3d\x68\x82\xab\x59\xe6\xaa\x5e\xd2\xba\x7d\xa6\x76\x45\xdb\ +\x2c\xa0\xfc\x52\x04\x54\xdb\x00\x75\xef\x01\xd2\xa9\xcc\x43\x72\ +\x6f\x40\x3a\x3f\xac\x9f\x84\x18\xe3\x5d\x74\x90\x97\x65\x8a\x4b\ +\xfb\x46\xe0\x61\xb1\x2d\x6a\x4f\xdb\xa3\xf2\x0b\x27\x74\x96\x8d\ +\x63\x8c\x96\x4e\x07\xa4\x33\xd5\x73\x3a\xba\x6b\x27\x23\xff\xd3\ +\x08\x54\xe5\x9f\xc4\x95\x33\xfb\x51\x55\xf4\x0d\x1a\xbe\x9b\x8c\ +\x17\xa5\x96\x78\x56\x20\x46\xd9\x1e\x03\xf8\xbb\xe8\x76\xf7\xe9\ +\x7f\xde\x42\xba\x77\xd3\x02\x66\x2d\xe2\xd8\x6a\x1b\xdc\x39\x65\ +\x84\xa2\x2c\x0b\xd4\x66\x9b\x2d\x1d\x90\xe5\xa5\xbb\x4c\x3b\x4b\ +\x76\x98\xe3\x7e\xae\x31\x54\x55\x36\x4c\x42\xd6\x8e\x01\xea\xde\ +\x21\xaf\xc7\xfa\x03\x84\x7a\xe8\xa2\xe1\x33\x31\xba\xcb\x2c\xf1\ +\xf3\xe5\x51\x28\xfd\x21\x1b\x55\x17\x3f\xc3\xa5\x93\xdb\x51\x7a\ +\xe1\x33\x28\xf3\xe7\x02\xb2\x39\x4c\x24\x9b\xe6\x01\xb2\xb9\xa8\ +\xc9\x95\xe0\x4e\xfd\x15\xe4\x7f\x7d\x04\xbe\x53\xec\x70\xe2\xe3\ +\x70\x74\xde\xbf\x8b\x67\xd7\x47\xe2\x9f\x05\xa6\xb8\xff\x83\x31\ +\xfc\x5d\xf5\x7a\xbd\x8a\x5a\x87\xad\xea\xbd\xa9\x2d\xc4\xa6\x87\ +\x17\xc5\x28\xdb\x65\x86\xe2\xed\xe6\xbd\x91\x1a\x30\x0a\xb6\x5a\ +\xe2\xe6\x3e\x31\x1e\xe5\x8b\xf1\xb2\xc2\x0a\xaa\x9b\xd6\x74\xbe\ +\xac\xb4\xfa\xbe\x0f\x40\x4f\xa5\x38\x29\xa2\x5e\x23\x00\x0d\xc5\ +\xc7\x70\xa7\xae\x08\x39\x5f\xec\xc5\x2c\x77\x1b\x64\xa7\xf8\xa2\ +\xa3\xe9\x06\x54\xb2\x05\x80\x7c\x11\x13\xc1\xa6\x85\x68\xab\xcf\ +\x83\xb2\xf4\x5b\x2c\x9d\xf1\x2e\x6c\x2d\x0d\xb1\x23\x7a\x06\x1e\ +\xff\xd6\x8e\xae\xb2\xe1\xf8\x67\xa1\x29\x9e\xe6\x91\xaa\xa4\x87\ +\x9e\x5e\xf0\xb2\xc2\xea\x78\xbf\xfd\xf1\xb4\xc0\x14\x35\x07\xc5\ +\x20\x36\xb6\xb5\xb1\x04\xaf\x05\x68\x38\x2c\xb6\x2f\xc8\xb4\xa4\ +\x19\xfe\x24\x5f\x8c\xe7\xc5\xe6\xe8\xba\x66\x8e\xe7\x57\xcd\xb2\ +\x7a\xee\x21\x5e\xfa\x25\x47\x84\x67\x97\xc5\x34\xfc\x77\xe5\x85\ +\x68\xab\xc8\x45\xe8\x3c\x17\x38\x8e\x30\xc1\xee\xb8\x39\x78\xf6\ +\xf8\x3e\x5e\x48\x7d\x01\x05\x99\x4b\x01\xb9\x0f\x1e\xd6\x25\xa3\ +\xf3\x6e\x2d\xf2\x8f\x26\x23\x7b\xe5\x3c\xd4\x14\x9d\x82\x4a\x36\ +\x1f\xdd\x37\x86\x51\x67\x3c\xf8\x41\x44\xce\x44\x08\x1e\xaf\xe3\ +\x4c\xf6\xf9\x67\xb1\x79\x32\xd9\xbb\xab\xd8\x1c\x4f\x0b\xc4\xa8\ +\x39\x6c\x82\xc2\xcc\x61\xa4\x79\x2d\x60\xfd\xd1\xb8\xf7\x8d\xbe\ +\x63\xd9\x4e\x73\xd4\x1f\x31\xc1\xe3\xf3\x22\x3c\x3a\x6f\xf4\xd3\ +\x83\xf3\x62\x9d\xde\x08\xb8\xe9\xa9\xe4\x9f\x1b\xe1\x69\xbe\x09\ +\xba\x4a\x2c\xa0\xaa\x71\xc5\x93\x9f\x0a\x50\x7a\x66\x3b\xbe\xde\ +\x16\x01\x45\xc5\x19\x40\x19\x09\x28\x96\x00\xcd\xfe\x40\x73\x20\ +\xa0\x58\xc6\x44\x42\xf6\x3e\xd0\x1a\x03\x5a\x51\xea\xde\xa1\xb2\ +\xa0\x39\x70\x59\x8c\xa2\x2c\x43\x04\xba\x91\x0e\x6d\xd8\x41\x25\ +\x74\xc1\x50\xeb\xf1\x79\x43\xe9\x93\x0b\x46\x90\x1d\x37\xc6\xf5\ +\x5d\x66\xe8\xf8\x42\x77\x2e\xeb\xcf\xc6\x17\x47\xbc\x9d\x1f\x7c\ +\xa3\x8b\x9e\xa9\xf8\xd2\xec\xde\xdf\xa6\x1d\xe9\x0f\x80\xaf\x56\ +\x18\x50\x80\xe7\x57\xcd\x69\x78\x69\xbe\x90\x64\x95\x7f\x08\x48\ +\xa7\x31\xc9\x4f\x3c\x2f\x7d\x1f\xaa\xd6\x15\x50\x35\xce\x62\xae\ +\x91\xbc\x20\xd5\x89\x24\x64\xcd\x28\x2a\x0f\xe2\x84\xce\x8b\xc6\ +\x88\x9d\x6a\x82\x10\x77\x23\x7a\xcc\x20\xfb\xbc\xbd\x4a\xf1\x56\ +\xed\xc9\x11\x8a\xfe\xb6\x5c\x3e\xe4\x34\xe3\x4f\x01\x0c\x82\x7e\ +\xbc\x93\xb6\xc1\x1b\x47\xb7\x4e\xc7\x8e\xcd\x0b\xb0\x38\x3a\x01\ +\x6f\x4d\xdd\x97\xd0\x73\x9d\x34\x9e\xb0\x09\xa4\x13\x8a\xa8\x76\ +\x89\x04\x68\xd2\xd7\xd8\x03\xf5\xae\x4c\x05\x22\x9e\x56\xf8\xe2\ +\x79\xd5\x14\x74\xd7\x2f\xc0\xd3\x1b\x5e\x6a\x80\x59\x4c\x89\x25\ +\xc9\x79\xcb\x16\x2f\x2b\xad\xa9\x13\x0a\xb2\x8c\x10\xe4\x69\x81\ +\xf0\xc9\x66\xb4\xb7\x44\x4c\x19\x16\xa7\x15\x5f\xb3\x69\x5e\xe4\ +\x1a\x6c\x4f\x5f\x80\x23\xdb\x66\x22\x23\xf5\x43\x98\xcf\xdb\x29\ +\xff\x63\xeb\xb7\x28\xcc\x34\x76\x28\x55\x9a\xa9\x72\x68\x87\x16\ +\x41\x7b\xf1\x59\x68\x2d\x38\x0d\xad\x05\x5f\xe5\xf4\x07\x90\x78\ +\x99\x20\x7a\x9a\x18\xbf\xe6\x88\x18\x19\xdd\xb4\x06\x6e\x8d\x60\ +\x3a\x30\x31\x90\x46\x63\x11\x54\x72\x5f\x3c\xab\x9a\x05\x95\x6c\ +\x31\x13\x95\xc6\xa9\x4c\x93\xab\x75\x80\xaa\xda\xa6\x57\xff\x19\ +\x4b\x8d\x21\x99\x64\x85\xc4\xd9\xc3\x11\x36\x5e\x84\xd0\xf1\x46\ +\x2a\x7e\xa6\xb2\x8b\x9f\x2e\x87\x56\x58\x09\x86\xfa\x7c\x0f\x6d\ +\xef\x33\x10\x2e\xfe\xae\x9b\xc5\x3a\xc5\x1d\xd4\x7e\x5e\xaa\x72\ +\x9d\xc6\x9e\x36\xf0\x32\x95\x10\x24\xc9\xc0\x8e\xad\x87\xa6\x4f\ +\x0e\xb4\x16\x9d\xa1\x55\x28\xc9\x4b\xdf\x88\x78\x28\x72\x8a\x05\ +\x82\xbd\x2c\xf0\x69\xa2\xd1\xef\xa2\x30\x9a\x39\x42\x10\x99\x10\ +\x6f\xd3\x3e\xb2\x08\x68\xfa\x80\xe9\xf0\xa4\x2b\x13\xc8\x5b\xc3\ +\xa1\xaa\xb4\xa6\x05\x42\xfe\xb9\x08\x81\x9e\xe6\x88\x9a\x66\x8b\ +\x55\x0b\xec\x91\x38\x73\x18\x8d\x82\xe1\xa6\x02\x68\xec\x6e\x85\ +\xe6\x26\x05\xd8\x09\x32\x70\xa2\xaa\xa1\x11\x74\x05\xfc\x90\x42\ +\xcb\xc1\x01\x32\x9a\xab\x79\x3b\x5b\xc1\x4f\x55\x60\x48\x82\x0c\ +\xec\xb8\x46\x68\x2e\x3d\x07\x81\xf7\xd7\x5f\x91\xeb\xd1\x93\x4d\ +\x9a\xc8\xc9\x31\x71\x96\x0d\x22\xa7\xda\x20\xd8\xd3\x0c\xd2\x13\ +\x22\x26\x17\x2a\xac\x98\x26\x58\x6b\x4f\x21\xba\x6b\xc6\xa3\x7c\ +\xeb\x48\x14\x26\x5b\x23\x27\x58\x8c\xc6\xec\x51\x4c\x83\x24\xda\ +\x27\xc9\x5b\xc6\x24\x6f\xda\x12\x63\x48\x26\x0e\x43\xc2\xec\x91\ +\x48\x59\xe4\x40\x0f\x88\xe4\x84\xba\x70\xe9\x87\xe0\x65\x29\x21\ +\x58\x23\x07\x3b\xa1\xa9\x0f\x20\xa0\x60\xea\xe0\x00\x1f\xb7\x74\ +\xf2\x32\x5b\x20\x58\xcf\x3c\xc4\x8a\x97\x82\xbf\xec\x47\x08\x7c\ +\xbe\x3d\x4a\xae\x87\x7a\x1a\xa9\x22\x27\x98\x20\x65\x91\x3d\xdd\ +\x30\x6c\x92\x15\x92\xe6\x98\xe0\x97\xef\x45\xb4\xdc\xd1\x84\x26\ +\x10\x35\x76\xc8\x09\x32\xc4\xa9\x45\x46\xb8\xb2\x76\x34\x9d\x67\ +\x03\xc4\xa8\xd9\x25\xa6\xc6\x93\x88\x91\xc8\x7d\xb7\xc1\x10\x01\ +\x1e\x66\x08\x9f\x34\x0c\x91\x93\xc4\xf4\x37\x03\xf1\xbe\xc4\x53\ +\xa4\x12\x66\x34\x80\xb7\xa5\x05\xc2\x94\xa6\x01\x00\x43\x02\x0a\ +\x7b\x4f\x05\xaf\x0c\xfe\xc7\xcd\xdd\xfc\xcd\xe4\x21\x19\x58\x04\ +\x20\xa1\x09\x3c\xff\x4b\xd0\xf4\xcd\xd9\x45\xae\x93\x5f\x5b\xd1\ +\x93\xcd\xb0\x9a\xfc\x3d\x32\xcf\x0e\x71\x33\x6c\x11\x32\xc1\x12\ +\x1b\xbc\x45\xf8\x25\xd7\x98\x89\x44\xf9\x30\x7a\xa6\xba\x77\xd6\ +\x1e\x2f\xeb\xa7\xe0\x49\x99\x0b\x1e\x5f\xb3\x43\x57\xc5\x48\x2a\ +\x1b\x52\x36\x89\xf1\xd7\xf7\x1a\x22\x90\xfc\x47\xe4\x66\x40\xcb\ +\x67\x90\x9b\x3e\xc2\x26\x98\x3d\x89\x9a\x6c\x4c\x0f\x68\x9a\x19\ +\xcd\xe0\xa7\x37\x43\xb8\x9a\xb1\xa5\x07\x40\x63\x59\x5e\xc6\xe0\ +\x00\x69\x0a\x68\xa6\x36\x43\xb8\xb2\x1f\x40\x50\x11\xf8\x7e\xe7\ +\xd2\xa9\x84\xa6\x59\xde\x27\x1b\x11\x2f\x91\xdf\x00\xa1\x1e\x46\ +\x08\x19\x6f\x84\x80\x71\x46\x48\x9a\x6d\x08\xf9\xe7\x86\x78\x56\ +\x60\x8a\xae\x6b\x16\xd4\xcb\x0f\xf2\x8d\x71\x2f\x47\x0f\xbf\x5e\ +\x30\x42\x57\x99\x25\x6d\x8c\xcf\x2e\x89\x71\x6d\x97\x3e\x42\x3d\ +\xf5\xc8\xd1\x01\x7e\x5e\x56\x30\x8b\xfb\x0a\xec\x0d\xcd\x60\xaf\ +\x53\x74\xb2\x52\xa4\xb4\x91\x69\xa6\x12\x5b\x14\x10\xae\x1a\x08\ +\xc0\x5b\x96\x47\x7f\xab\xbc\x76\x90\x84\x11\x6c\x50\x40\x98\xd4\ +\x07\xa0\x11\x5a\x0c\x9e\xff\x8f\xc9\x82\xa8\xd2\x13\x5a\xb1\x15\ +\x2f\xd8\xeb\x9b\x21\x8a\xff\x06\xde\xef\x4f\x40\xb0\xa7\x98\xd6\ +\xed\x40\x57\x72\xa6\x27\x50\xba\x38\x93\xac\x87\x5f\xcf\x32\x8d\ +\x8e\x54\x18\x02\x44\xb4\xfe\x34\xcf\x04\x3f\xff\xc3\x10\x07\x22\ +\x4d\xe0\xe4\xb3\x16\xda\x89\x15\xe0\xa7\xd4\x81\x9b\xd6\x0c\x76\ +\x5a\x0b\xd8\x1b\x9b\x41\xd6\xe6\x27\xd5\x3d\xd3\x8a\x29\xcf\xd5\ +\xdc\x28\x87\x60\x83\x9c\x02\xf4\x97\x10\xcf\xef\xe2\x85\x41\x01\ +\x04\xeb\x15\x10\xa4\x34\x41\x98\xd8\x07\x30\x24\xac\x14\xda\xc1\ +\x97\x2e\x68\x4b\x8a\xc0\x4b\x6e\x64\x3c\xb5\xa9\x19\xec\xf4\x16\ +\xb0\x33\x94\xe0\x6c\x55\x82\x93\xa9\x04\x7f\xa3\x14\xda\x49\xd5\ +\x18\x9a\x50\x01\xc3\xe5\x57\x11\xb4\x65\x33\xce\x1c\x9d\x8d\xca\ +\x93\x63\x50\x78\xc2\x1d\x9b\x76\xc5\x62\xd8\xca\x7c\x0c\x8d\xaf\ +\x80\x76\xe2\x4d\x68\xae\xad\x07\x77\x73\x33\xd8\x9b\x95\xcc\x5a\ +\x64\xcd\x0d\xcd\xe0\xac\x55\x40\x3b\xac\x08\x82\xa4\x6a\x08\xd6\ +\xca\x21\x5c\x21\x1d\x98\xc4\x4b\xcf\x57\x0e\x0e\xb0\x46\x0e\x61\ +\xb2\x0c\x82\x04\x35\x40\x62\x13\xb8\x91\x15\xd0\x0e\xbc\x08\xed\ +\xa8\x52\x12\x62\x06\x20\xb5\x05\xec\x8f\x5b\xe8\xe6\xc4\x78\xce\ +\xf6\x56\x3a\x79\x19\x0a\x08\xd7\xd6\x41\x3b\xa9\x0a\x43\x13\x2b\ +\xa9\xb1\x3d\x53\x9b\xbc\x26\xde\x84\x30\xf9\x16\xf8\x69\x4d\xcc\ +\x33\x99\x4a\xb0\xb7\x28\x99\xb5\xc8\x9a\x8c\x8c\xa0\x1d\x7b\x03\ +\x43\x25\x85\x54\xff\x5a\x49\x03\x01\x78\xbe\xe7\x5a\x07\x05\x10\ +\xae\x6a\xa2\xf2\xd1\x4c\x90\xf6\x01\x44\x57\x31\x1e\x49\xac\x05\ +\x7b\x5d\x33\x13\xea\x1e\x80\x2d\x4a\x70\xb6\xa9\x01\x76\xb5\x81\ +\xb3\xb7\x0d\xdc\xdd\xad\x18\xb2\xbd\x05\xfc\x0c\x29\x04\x69\xf5\ +\x10\x6e\xa8\x83\x60\x63\x3d\x04\x69\x0d\xd0\xc8\x94\x83\xbb\x4b\ +\x09\xce\xce\x36\x70\x76\xb4\x82\xb3\xad\xb5\x0f\xa0\x47\x46\xeb\ +\x9a\xa1\xb9\xb2\x01\xda\xb1\xe5\x34\x17\xb5\x96\x4b\x07\xf6\x81\ +\x25\xb9\x0f\x5f\x6f\xbd\x37\x78\x5a\x49\x32\x68\x25\x4a\xc1\xef\ +\x07\xc0\x89\xbb\x05\xed\x98\x32\x68\x24\x37\x31\x00\xc4\x4b\x64\ +\xb3\x8c\x1e\x80\x56\xc6\x98\xdd\x0c\x00\xe7\x40\x3b\xb8\x87\xdb\ +\xc1\x3d\xd2\x01\xee\xb1\xdb\xcc\x3c\xda\x01\xee\xe1\x0e\x7a\x8d\ +\xb3\xaf\x8d\xb9\x57\x0d\xc0\xd9\xaa\x64\xd6\xea\x07\xc0\x59\xa3\ +\x80\x56\x52\x03\x35\x9e\xd8\xd3\x3f\x02\x9a\x4b\x72\x5e\xb2\xbc\ +\x4f\xf1\x5e\xb1\x5f\x3b\x56\x16\xa9\x95\x20\x05\x99\xfc\x7e\x12\ +\xe2\xc5\xd7\x41\x8b\x78\x3f\x45\x41\x17\xe7\xae\x95\x81\xb3\x5e\ +\xfa\x27\x00\x1d\x8c\xd1\x9f\xdc\xc6\x90\x63\x1d\x6f\x06\x90\xde\ +\x07\xc0\x26\x00\x89\x8c\xf1\xaf\x01\x80\x86\xcf\x77\x76\xaf\xca\ +\x27\x41\x7a\xb9\x07\x80\xd7\x0f\x40\x23\xa9\x11\x1a\x2b\x65\x0c\ +\x40\x8a\x02\xbc\xf8\x0a\xf0\x92\x2a\x07\x4a\x68\x47\x9f\x84\xa8\ +\x91\x24\x02\xd9\x6a\xc3\x49\x04\xc8\xfb\xc3\x1d\x18\xb2\xbf\x95\ +\xb9\x67\xd7\xef\x24\x94\xd1\x02\x6e\xaa\x1c\x43\xd6\x34\xbc\x11\ +\x00\xcf\xef\xfc\x07\xaf\x26\x70\x9c\xb4\x86\x01\x90\x81\xab\xae\ +\x40\x54\x42\x49\x72\xb0\x56\xc9\xc1\x5e\x2d\x87\x46\xc2\x4d\x68\ +\x49\x0a\xa0\x19\x57\xca\x78\xac\x7f\x12\xef\x6c\xc5\x90\xdd\x4a\ +\x70\xf6\xb7\x83\x73\xb0\xa3\x4f\x46\xc4\xf8\xec\x76\x70\x0e\xb5\ +\x33\xd7\xf6\x10\x80\xd6\x57\x92\x58\x63\x6d\x1d\x04\xf1\x65\xe0\ +\xad\xaa\xa1\x7b\x09\x12\xa5\x10\x2c\x97\x41\x33\x91\x91\xf3\x00\ +\x80\x25\xe7\xe2\x5e\xcd\x81\x58\xf9\xfc\x9e\xd2\x39\x60\xaa\x01\ +\x34\x96\xd7\x40\x10\x56\x84\xa1\xc1\x79\x10\x46\x5f\xeb\x03\x20\ +\x65\x34\x8b\x49\x5c\x62\x1c\x77\x5f\x3b\xb8\x24\x0a\x87\x3a\xc0\ +\x21\x86\x1f\x26\xb3\x03\xdc\x83\xed\xe0\xee\x57\x47\x89\x78\x3f\ +\x4b\x2d\x9f\xcd\x4c\x19\xe5\x25\x57\x43\x4b\x72\x19\x82\xa8\x62\ +\x68\xac\xa8\xa1\x7b\xd2\xbd\xd5\x76\xf4\x07\xe0\xfb\xe4\xd2\xc6\ +\x3a\x70\xc4\x4b\xa7\xbc\x16\x60\x79\x13\xb8\x09\x0d\x10\x86\x5f\ +\x81\x76\x48\x3e\xf8\x91\xd7\xda\x05\x91\xc5\x4c\xd2\xf5\xc8\x48\ +\x1d\x05\xae\x1a\x80\xca\xe8\x50\x8f\xf1\xea\xf7\x07\x99\x08\x70\ +\x09\x00\x89\xd6\xd6\xe6\x5e\xf9\x90\xb5\xf8\x49\x95\xd0\x0a\x2f\ +\xc4\xd0\xd0\x4b\x10\x46\x5c\xc1\x90\xc4\x5b\x60\x2d\x7f\x3d\x80\ +\xe6\xe2\x73\x7b\x5e\x05\x48\x6c\x32\x7d\x1d\x00\x37\xbe\x01\x42\ +\xc9\x15\x68\x85\x5e\xc6\x10\x49\x89\x8b\x46\xdc\xf5\x25\xc2\x88\ +\xab\x4c\x29\xed\x69\x66\x04\x60\x47\x2b\x2d\xa1\x34\x49\x0f\xaa\ +\x8d\xee\x99\x07\xfb\x25\x30\x81\xdc\xc1\x3c\xc3\xee\x69\x62\xa9\ +\x2d\xe0\x27\x56\x40\x10\x55\x72\x9f\x15\x5b\x36\x9a\x44\x42\x4b\ +\x52\x04\x8d\xb8\xaa\xd7\x47\xc0\x37\x77\xcb\xeb\x4b\x69\xbc\xac\ +\xbc\xbf\xf1\x9c\xb8\x06\x08\x49\x0f\x90\x14\x3d\xef\xbd\x27\xb8\ +\x56\x87\x44\x63\x40\x3f\xd8\xaa\x04\x97\x68\x9a\x02\x90\x08\xb4\ +\x81\x7b\x48\x5d\x4e\x89\x7c\x7a\x22\x40\xae\xed\x26\x00\xad\x60\ +\x67\xb6\x82\x93\xde\x77\x8c\x10\xc4\x95\x81\x1f\x55\x52\xdc\x5b\ +\x54\xc2\x8a\x3a\x09\x08\x2f\xaa\xfc\xd5\x1c\x78\x5d\x12\x33\x51\ +\x50\x78\xb0\x12\x64\x4f\xe8\x21\x2e\xba\xfc\xa5\x50\x72\x45\xc5\ +\x8f\x2c\x79\xe5\xf4\x47\x25\xa4\x3e\x52\x70\x53\x15\x14\x80\x6a\ +\x9a\x94\xc7\x7d\x6d\x34\x07\x28\x00\xad\x3e\x6a\x90\x7e\x00\x9c\ +\x1d\x6d\x60\x93\x08\xa4\x2b\x7b\x8f\x10\x9a\xb1\x65\x10\x86\x5f\ +\xdf\xde\x7f\x1f\x0d\x49\xd9\x62\xad\xd0\x42\x95\x66\xf8\x35\x55\ +\x6f\x23\xf3\xbd\xd0\xc8\x62\xe1\x0f\xfe\x86\x27\x52\x8a\xa9\x0b\ +\xd2\x94\x54\x2e\x1f\xec\x16\xcd\xa8\xeb\xaa\xde\xa6\x96\x4a\xce\ +\x33\x2d\x4c\x39\x25\xe5\xb1\x47\x42\xd9\x1d\xe0\x1c\x51\xcf\xc3\ +\x3d\x39\xd0\xc1\x00\x6c\x57\x27\x70\x9a\x7a\x0d\xd2\x7d\x63\x6f\ +\xa8\x34\x25\x97\x3d\x5e\xbb\x5f\x78\xc5\x32\x8d\xd0\x8a\x4c\x0d\ +\x49\x49\x20\x6b\x79\x95\x16\xeb\x5f\x1d\xbc\xd8\x8a\x6e\x52\xab\ +\x29\xc4\xa6\x66\x70\x32\x08\x00\x93\x9c\xb4\xca\x50\x80\x76\xa6\ +\x0f\x1c\x55\x57\x23\x22\x23\x02\x47\x20\x49\xb4\x88\xfe\x53\xfb\ +\x1a\x17\x2f\xae\x92\x74\xd8\xc1\x7f\xef\xfe\x6f\x0e\x4e\x62\xc3\ +\x23\xf6\x6a\x05\xdd\x98\xbd\x5e\x01\x4e\x7a\x4b\x6f\x22\x73\xf6\ +\xaa\xab\x10\x91\xcf\x27\x1d\xe0\x1e\xbf\x0d\xce\x91\xdb\x4c\x59\ +\x25\x12\x22\x3d\x80\xdc\x4b\xaa\xcf\x46\xf5\x1a\xab\x15\x60\x25\ +\x35\x30\x7f\x95\xff\x35\x58\xff\xbf\xc6\xff\x00\xe7\x8a\x2c\x41\ +\x48\x5d\x9f\xfa\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ +\ +\x00\x00\x02\x53\ +\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\x00\x09\x70\x48\x59\x73\x00\x00\x0b\x13\x00\x00\x0b\x13\ +\x01\x00\x9a\x9c\x18\x00\x00\x02\x05\x49\x44\x41\x54\x78\x9c\xed\ +\x99\x4b\x4a\x03\x41\x10\x86\x3f\x12\x75\x91\xa5\xc6\x95\x8f\x5b\ +\x28\xe6\x20\xa2\x28\x28\x9e\x22\x21\x07\x30\xd9\xab\x24\xc1\x95\ +\x2b\x17\xa2\x2e\x7c\x6c\x3c\x85\xa2\x07\xf0\xb1\x4a\xd4\x75\xe2\ +\x83\x96\x86\x5a\x84\x60\xb0\xa7\xa7\x66\xa6\x85\xf9\xe1\x87\x81\ +\x49\xa6\xfe\xbf\x1f\x35\xd5\x35\x90\x23\x47\x0e\x0d\x14\x81\x0a\ +\x50\x07\x4e\x81\x07\xe0\x1d\xf8\x10\xda\xeb\x7b\xb9\x67\x7f\xb3\ +\x02\x14\x08\x00\x0b\x40\x13\x78\x01\x4c\x44\x3e\x03\x0d\x60\x3e\ +\x0b\xe1\xb3\x40\x07\x18\x78\x08\x1f\xe5\x00\x68\x01\xe5\xb4\xc4\ +\x6f\x00\x6f\x0a\xc2\x47\xf9\x0a\xac\x27\x29\x7c\x12\x38\x4c\x40\ +\xb8\x19\x61\x5b\x62\xa9\xa2\x04\x5c\xa7\x20\xde\x08\xaf\x24\xa6\ +\x0a\x26\x53\x16\x6f\x84\x37\xc0\x94\x86\x81\x34\x96\x8d\x19\x43\ +\xbb\xb9\x63\x61\x33\x43\xf1\x46\xb8\x16\x27\x55\xfa\x66\x9b\x6f\ +\xa1\x86\x81\x1e\x30\xe3\x63\xa0\x13\x43\xfc\x96\x50\xcb\xc4\x41\ +\x54\xf1\xf3\x9e\x2f\x29\x2b\x78\x7b\xe8\x39\x36\xaf\x7f\x2a\x18\ +\x18\x00\x8b\x51\x0c\x34\x3d\x03\xed\xfc\xf2\x2c\xad\x99\x68\xb8\ +\x8a\x2f\x48\x9d\xe2\x13\xe4\x18\x98\xf8\xe5\x99\x1a\x33\xf1\x22\ +\x45\xe3\x9f\xa8\xc4\x0c\x74\x34\xa6\xd2\xd4\x98\x89\x65\x17\x03\ +\x75\x85\xe9\x4e\xca\x44\xcd\xc5\xc0\x99\x82\x81\xa4\x96\xd3\x89\ +\x8b\x81\x7b\x25\x03\x49\xcc\xc4\x9d\x8b\x01\xed\x52\x59\x73\x26\ +\x7a\x2e\x06\x34\x0e\x29\x49\x99\xe8\x67\x69\xa0\x38\xc6\xc0\x97\ +\xb6\x81\xb7\x40\xc5\x1b\xd7\x25\xf4\xef\x37\xf1\x59\x80\x23\x6f\ +\xa2\xa4\xd1\x7a\xa0\xe2\x0d\x50\x75\x31\xb0\x12\xd8\xb2\x31\x43\ +\x5c\x72\x31\x60\x83\x3f\x05\x36\xf2\x06\x78\x8c\xd2\xcd\x6b\x04\ +\x58\x4e\xef\x92\xd1\x81\x26\xee\xc8\x1b\xc9\xff\x73\x44\x44\x2b\ +\xa0\x23\xe5\x1e\x1e\x28\x4b\xbb\xcf\xd7\x84\x96\xf8\x2e\x30\x8d\ +\x27\xd6\x95\x44\xc4\xe1\x2a\x31\xd1\xce\x50\xfc\x3e\x0a\xb0\x69\ +\xf1\x3c\x03\xf1\x97\x63\x2a\x58\x2f\x94\xa4\xe1\x9a\x96\xf8\x0b\ +\xcd\xe6\xee\x70\x93\xb7\x95\xd2\xb2\x99\x20\x41\xac\x49\x59\xab\ +\x2d\xbc\xab\xb1\x61\x5d\x31\x23\xed\xbe\xbe\x82\xf0\xbe\xe4\x79\ +\xef\x54\x19\x07\x73\x52\x76\xf8\xd4\x4e\xf6\x3f\xbb\x3e\x6f\xd8\ +\x24\x50\x90\xa6\x53\x4d\x6a\xf6\x3b\x39\xd9\x0d\x84\xf6\xfa\x56\ +\xee\x55\xa5\xaa\x0c\xe2\x33\x6b\x8e\x1c\xfc\x73\xfc\x00\xc8\xa9\ +\x7b\x15\xee\x84\x86\x61\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\ +\x60\x82\ +" + +qt_resource_name = b"\ +\x00\x07\ +\x09\xcb\xb6\x93\ +\x00\x62\ +\x00\x75\x00\x74\x00\x74\x00\x6f\x00\x6e\x00\x73\ +\x00\x0e\ +\x0e\xe6\x65\xa7\ +\x00\x67\ +\x00\x72\x00\x65\x00\x65\x00\x6e\x00\x2d\x00\x74\x00\x69\x00\x63\x00\x6b\x00\x2e\x00\x70\x00\x6e\x00\x67\ +\x00\x0d\ +\x07\xcc\x23\x87\ +\x00\x72\ +\x00\x65\x00\x64\x00\x2d\x00\x63\x00\x72\x00\x6f\x00\x73\x00\x73\x00\x2e\x00\x70\x00\x6e\x00\x67\ +\x00\x17\ +\x0b\x5b\x7c\xc7\ +\x00\x69\ +\x00\x63\x00\x6f\x00\x6e\x00\x73\x00\x38\x00\x2d\x00\x70\x00\x72\x00\x65\x00\x76\x00\x2d\x00\x70\x00\x61\x00\x67\x00\x65\x00\x2d\ +\x00\x34\x00\x38\x00\x2e\x00\x70\x00\x6e\x00\x67\ +\x00\x13\ +\x04\x48\x18\xc7\ +\x00\x64\ +\x00\x6f\x00\x6e\x00\x74\x00\x2d\x00\x6b\x00\x6e\x00\x6f\x00\x77\x00\x2d\x00\x77\x00\x6f\x00\x6d\x00\x61\x00\x6e\x00\x2e\x00\x70\ +\x00\x6e\x00\x67\ +\x00\x17\ +\x07\x4b\xac\xa7\ +\x00\x69\ +\x00\x63\x00\x6f\x00\x6e\x00\x73\x00\x38\x00\x2d\x00\x6e\x00\x65\x00\x78\x00\x74\x00\x2d\x00\x70\x00\x61\x00\x67\x00\x65\x00\x2d\ +\x00\x34\x00\x38\x00\x2e\x00\x70\x00\x6e\x00\x67\ +" + +qt_resource_struct_v1 = b"\ +\x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x01\ +\x00\x00\x00\x00\x00\x02\x00\x00\x00\x05\x00\x00\x00\x02\ +\x00\x00\x00\x8a\x00\x00\x00\x00\x00\x01\x00\x00\x19\xc8\ +\x00\x00\x00\xb6\x00\x00\x00\x00\x00\x01\x00\x00\x2b\x8d\ +\x00\x00\x00\x36\x00\x00\x00\x00\x00\x01\x00\x00\x01\x89\ +\x00\x00\x00\x56\x00\x00\x00\x00\x00\x01\x00\x00\x03\x1a\ +\x00\x00\x00\x14\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\ +" + +qt_resource_struct_v2 = b"\ +\x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x01\ +\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x02\x00\x00\x00\x05\x00\x00\x00\x02\ +\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x8a\x00\x00\x00\x00\x00\x01\x00\x00\x19\xc8\ +\x00\x00\x01\x85\x7d\x57\x42\xaa\ +\x00\x00\x00\xb6\x00\x00\x00\x00\x00\x01\x00\x00\x2b\x8d\ +\x00\x00\x01\x85\x7d\x88\x84\x93\ +\x00\x00\x00\x36\x00\x00\x00\x00\x00\x01\x00\x00\x01\x89\ +\x00\x00\x01\x85\x7d\x56\x31\x85\ +\x00\x00\x00\x56\x00\x00\x00\x00\x00\x01\x00\x00\x03\x1a\ +\x00\x00\x01\x85\x7d\x89\x3f\x67\ +\x00\x00\x00\x14\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\ +\x00\x00\x01\x85\x7d\x55\xdd\xfd\ +" + +qt_version = [int(v) for v in QtCore.qVersion().split('.')] +if qt_version < [5, 8, 0]: + rcc_version = 1 + qt_resource_struct = qt_resource_struct_v1 +else: + rcc_version = 2 + qt_resource_struct = qt_resource_struct_v2 + +def qInitResources(): + QtCore.qRegisterResourceData(rcc_version, qt_resource_struct, qt_resource_name, qt_resource_data) + +def qCleanupResources(): + QtCore.qUnregisterResourceData(rcc_version, qt_resource_struct, qt_resource_name, qt_resource_data) + +qInitResources() diff --git a/markdown_with_colour.txt b/markdown_with_colour.txt new file mode 100644 index 0000000..a0fce6d --- /dev/null +++ b/markdown_with_colour.txt @@ -0,0 +1,2 @@ +Some Markdown text with some *blue* text. + diff --git a/poetry.lock b/poetry.lock index 225dbe1..c4141ea 100644 --- a/poetry.lock +++ b/poetry.lock @@ -379,6 +379,45 @@ python-versions = ">=3.6" [package.extras] plugins = ["importlib-metadata"] +[[package]] +name = "pyqt5" +version = "5.15.7" +description = "Python bindings for the Qt cross platform application toolkit" +category = "main" +optional = false +python-versions = ">=3.7" + +[package.dependencies] +PyQt5-Qt5 = ">=5.15.0" +PyQt5-sip = ">=12.11,<13" + +[[package]] +name = "pyqt5-qt5" +version = "5.15.2" +description = "The subset of a Qt installation needed by PyQt5." +category = "main" +optional = false +python-versions = "*" + +[[package]] +name = "pyqt5-sip" +version = "12.11.0" +description = "The sip module support for PyQt5" +category = "main" +optional = false +python-versions = ">=3.7" + +[[package]] +name = "pyqt5-stubs" +version = "5.15.6.0" +description = "PEP561 stub files for the PyQt5 framework" +category = "dev" +optional = false +python-versions = ">= 3.5" + +[package.extras] +dev = ["mypy (==0.930)", "pytest", "pytest-xvfb"] + [[package]] name = "pytest" version = "5.4.3" @@ -546,7 +585,7 @@ python-versions = "*" [metadata] lock-version = "1.1" python-versions = "^3.9" -content-hash = "56ce5fa8480bc5fc923ac1c8ae72ac995690fdfc1ba42cd62f9a8f4737919d8d" +content-hash = "d3bb7fb1fedd37ef4df5b2b2c8097a57f268e54041c9aa28fe230824db299a5a" [metadata.files] alembic = [] @@ -609,6 +648,15 @@ py = [ {file = "py-1.11.0.tar.gz", hash = "sha256:51c75c4126074b472f746a24399ad32f6053d1b34b68d2fa41e558e6f4a98719"}, ] pygments = [] +pyqt5 = [] +pyqt5-qt5 = [ + {file = "PyQt5_Qt5-5.15.2-py3-none-macosx_10_13_intel.whl", hash = "sha256:76980cd3d7ae87e3c7a33bfebfaee84448fd650bad6840471d6cae199b56e154"}, + {file = "PyQt5_Qt5-5.15.2-py3-none-manylinux2014_x86_64.whl", hash = "sha256:1988f364ec8caf87a6ee5d5a3a5210d57539988bf8e84714c7d60972692e2f4a"}, + {file = "PyQt5_Qt5-5.15.2-py3-none-win32.whl", hash = "sha256:9cc7a768b1921f4b982ebc00a318ccb38578e44e45316c7a4a850e953e1dd327"}, + {file = "PyQt5_Qt5-5.15.2-py3-none-win_amd64.whl", hash = "sha256:750b78e4dba6bdf1607febedc08738e318ea09e9b10aea9ff0d73073f11f6962"}, +] +pyqt5-sip = [] +pyqt5-stubs = [] pytest = [ {file = "pytest-5.4.3-py3-none-any.whl", hash = "sha256:5c0db86b698e8f170ba4582a492248919255fcd4c79b1ee64ace34301fb589a1"}, {file = "pytest-5.4.3.tar.gz", hash = "sha256:7979331bfcba207414f5e1263b5a0f8f521d0f457318836a7355531ed1a4c7d8"}, diff --git a/pyproject.toml b/pyproject.toml index 8a731dc..73e4e05 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -11,10 +11,13 @@ stackprinter = "^0.2.10" SQLAlchemy = "^1.4.45" mysqlclient = "^2.1.1" alembic = "^1.9.1" +PyQt5 = "^5.15.7" +PyQt5-sip = "^12.11.0" [tool.poetry.dev-dependencies] pytest = "^5.2" ipdb = "^0.13.11" +PyQt5-stubs = "^5.15.6" [build-system] requires = ["poetry-core>=1.0.0"]