This commit is contained in:
Damien Elmes 2008-10-05 23:34:59 +09:00
parent 357801e625
commit 27a3cd1c4f
17 changed files with 926 additions and 1035 deletions

7
.gitignore vendored
View file

@ -1,7 +1,8 @@
*.pyc
*~
*.mo *.mo
*.pyc
*\# *\#
*~
/icons_rc.py
ankiqt/forms
build build
dist dist
ankiqt/forms

View file

@ -8,6 +8,7 @@ from PyQt4.QtGui import *
appName="Anki" appName="Anki"
appVersion="0.9.8.1" appVersion="0.9.8.1"
appWebsite="http://ichi2.net/anki/download/" appWebsite="http://ichi2.net/anki/download/"
appWiki="http://ichi2.net/anki/wiki/"
appHelpSite="http://ichi2.net/anki/wiki/Documentation" appHelpSite="http://ichi2.net/anki/wiki/Documentation"
appIssueTracker="http://code.google.com/p/anki/issues/list" appIssueTracker="http://code.google.com/p/anki/issues/list"
appForum="http://groups.google.com/group/ankisrs/topics" appForum="http://groups.google.com/group/ankisrs/topics"

View file

@ -21,7 +21,6 @@ class AddCards(QDialog):
self.dialog.setupUi(self) self.dialog.setupUi(self)
self.setupEditor() self.setupEditor()
self.addChooser() self.addChooser()
self.addHelp()
self.addButtons() self.addButtons()
self.setupStatus() self.setupStatus()
self.modelChanged(self.parent.deck.currentModel) self.modelChanged(self.parent.deck.currentModel)
@ -43,10 +42,8 @@ class AddCards(QDialog):
self.modelChanged) self.modelChanged)
self.dialog.modelArea.setLayout(self.modelChooser) self.dialog.modelArea.setLayout(self.modelChooser)
def addHelp(self): def helpRequested(self):
self.help = ui.help.HelpArea(self.dialog.helpFrame, QDesktopServices.openUrl(QUrl(ankiqt.appWiki + "AddFacts"))
self.config)
self.help.showHideableKey("add")
def addButtons(self): def addButtons(self):
self.addButton = QPushButton(_("&Add cards")) self.addButton = QPushButton(_("&Add cards"))
@ -62,6 +59,10 @@ class AddCards(QDialog):
self.closeButton = QPushButton(_("Close")) self.closeButton = QPushButton(_("Close"))
self.dialog.buttonBox.addButton(self.closeButton, self.dialog.buttonBox.addButton(self.closeButton,
QDialogButtonBox.RejectRole) QDialogButtonBox.RejectRole)
self.helpButton = QPushButton(_("Help"))
self.dialog.buttonBox.addButton(self.helpButton,
QDialogButtonBox.HelpRole)
self.connect(self.helpButton, SIGNAL("clicked()"), self.helpRequested)
def setupStatus(self): def setupStatus(self):
"Make the status background the same colour as the frame." "Make the status background the same colour as the frame."

View file

@ -10,6 +10,12 @@ from ankiqt import ui
from anki.utils import parseTags from anki.utils import parseTags
from anki.deck import newCardOrderLabels, newCardSchedulingLabels from anki.deck import newCardOrderLabels, newCardSchedulingLabels
tabs = ("Synchronization",
"Scheduling",
"Models",
"Description",
"Advanced")
class DeckProperties(QDialog): class DeckProperties(QDialog):
def __init__(self, parent): def __init__(self, parent):
@ -19,7 +25,6 @@ class DeckProperties(QDialog):
self.origMod = self.d.modified self.origMod = self.d.modified
self.dialog = ankiqt.forms.deckproperties.Ui_DeckProperties() self.dialog = ankiqt.forms.deckproperties.Ui_DeckProperties()
self.dialog.setupUi(self) self.dialog.setupUi(self)
self.resize(100, 100)
self.dialog.newCardOrder.insertItems( self.dialog.newCardOrder.insertItems(
0, QStringList(newCardOrderLabels().values())) 0, QStringList(newCardOrderLabels().values()))
self.dialog.newCardScheduling.insertItems( self.dialog.newCardScheduling.insertItems(
@ -28,6 +33,7 @@ class DeckProperties(QDialog):
self.connect(self.dialog.modelsAdd, SIGNAL("clicked()"), self.onAdd) self.connect(self.dialog.modelsAdd, SIGNAL("clicked()"), self.onAdd)
self.connect(self.dialog.modelsEdit, SIGNAL("clicked()"), self.onEdit) self.connect(self.dialog.modelsEdit, SIGNAL("clicked()"), self.onEdit)
self.connect(self.dialog.modelsDelete, SIGNAL("clicked()"), self.onDelete) self.connect(self.dialog.modelsDelete, SIGNAL("clicked()"), self.onDelete)
self.connect(self.dialog.buttonBox, SIGNAL("helpRequested()"), self.helpRequested)
self.show() self.show()
def readData(self): def readData(self):
@ -125,6 +131,12 @@ class DeckProperties(QDialog):
setattr(obj, field, value) setattr(obj, field, value)
self.d.setModified() self.d.setModified()
def helpRequested(self):
idx = self.dialog.qtabwidget.currentIndex()
QDesktopServices.openUrl(QUrl(ankiqt.appWiki +
"DeckProperties#" +
tabs[idx]))
def reject(self): def reject(self):
# description # description
self.updateField(self.d, 'description', self.updateField(self.d, 'description',

View file

@ -12,7 +12,7 @@ import ankiqt.forms
class HelpArea(object): class HelpArea(object):
helpAreaWidth = 300 helpAreaWidth = 300
minAppWidth = 550 minAppWidth = 500
def __init__(self, helpFrame, config, mainWindow=None, focus=None): def __init__(self, helpFrame, config, mainWindow=None, focus=None):
self.helpFrame = helpFrame self.helpFrame = helpFrame
@ -26,7 +26,6 @@ class HelpArea(object):
self.widget.connect(self.widget, SIGNAL("anchorClicked(QUrl)"), self.widget.connect(self.widget, SIGNAL("anchorClicked(QUrl)"),
self.anchorClicked) self.anchorClicked)
self.hide() self.hide()
self.data = HelpData()
def getMinAppWidth(self): def getMinAppWidth(self):
if self.config['easeButtonStyle'] == 'compact': if self.config['easeButtonStyle'] == 'compact':
@ -125,53 +124,3 @@ class HelpArea(object):
QDesktopServices.openUrl(QUrl(url)) QDesktopServices.openUrl(QUrl(url))
if self.focus: if self.focus:
self.focus.setFocus() self.focus.setFocus()
# Text strings
##########################################################################
class HelpData(dict):
def __init__(self):
self['learn'] = _("""
<h1>Learning new cards</h1>Anki is currently in 'learning mode'.
<p>
As an alternative to using the mouse, spacebar and the number keys are
available.
<p>
<a href="http://ichi2.net/anki/wiki/Learning_new_cards">More information</a>
""")
self['review'] = _("""
<h1>Reviewing</h1>You are currently looking at a card you have seen before.
Unlike new cards, it's important to try and review previously seen cards as
promptly as possible, in order to ensure your previous effort spent
remembering the cards is not wasted.<p> At the bottom of the main window, the
"Remaining" figure indicates how many previously reviewed words are waiting
for you today. Once this number reaches 0, you can close Anki, or continue
studying new cards.""")
self['finalReview'] = _("""<h1>Final review</h1>You are now being
shown cards that are due soon (in the next 5 hours by default). This includes
any cards you failed recently. You can answer them now, or come back later -
it's up to you.""")
self['add'] = _("""
<h1>Adding cards</h1>
Please enter some things you want to learn.
<h2>Shortcuts</h2>
<table width=230>
<tr><td><b>Tab</b></td><td> change between fields.</td></tr>
<tr><td><b>Ctrl+Enter</b></td><td> add the current card.</td></tr>
<tr><td><b>Esc</b></td><td> close the dialog.</td></tr>
<tr><td><b>Ctrl+B</b></td><td> bold</td></tr>
<tr><td><b>Ctrl+I</b></td><td> italic</td></tr>
<tr><td><b>Ctrl+U</b></td><td> underline</td></tr>
<tr><td><b>Alt+1</b></td><td> enable/disable card model 1</td></tr>
<tr><td><b>Alt+2</b></td><td> enable/disable card model 2</td></tr>
</table>
<h2>Cards</h2>Depending on the language you selected, more than one card may
be generated. This allows you to practice both <b>Production</b> (trying to produce
the target idea/phrase yourself), and <b>Recognition</b> (quickly recognizing and
understanding the target idea/phrase). To change which cards are automatically
generated, click the rightmost button at the top.""")

View file

@ -18,6 +18,7 @@ from anki.sound import hasSound, playFromText
from anki.utils import addTags, deleteTags from anki.utils import addTags, deleteTags
from anki.media import rebuildMediaDir from anki.media import rebuildMediaDir
from anki.db import OperationalError from anki.db import OperationalError
from anki.stdmodels import BasicModel
import anki.lang import anki.lang
import ankiqt import ankiqt
ui = ankiqt.ui ui = ankiqt.ui
@ -643,21 +644,47 @@ class AnkiQt(QMainWindow):
return True return True
def onNew(self): def onNew(self):
if not self.saveAndClose(): return if not self.saveAndClose(exit=True): return
self.deck = DeckStorage.Deck() self.deck = DeckStorage.Deck()
m = ui.modelchooser.AddModel(self, online=True).getModel() self.deck.addModel(BasicModel())
if m: self.saveDeck()
if m != "online": self.moveToState("initial")
self.deck.addModel(m)
self.saveDeck() def onOpenOnline(self):
self.moveToState("initial") if not self.saveAndClose(exit=True): return
return self.deck = DeckStorage.Deck()
# ensure all changes come to us # ensure all changes come to us
self.deck.syncName = None self.deck.syncName = None
self.deck.modified = 0 self.deck.modified = 0
self.deck.lastLoaded = self.deck.modified self.deck.lastLoaded = self.deck.modified
self.deck.s.flush() if not self.config['syncUsername'] or not self.config['syncPassword']:
self.deck.s.commit() d = QDialog(self)
vbox = QVBoxLayout()
l = QLabel(_(
'<h1>Open Online Deck</h1>'
'To load a deck from your free <a href="http://anki.ichi2.net/">online account</a>,<br>'
"please enter your details below.<br>"))
l.setOpenExternalLinks(True)
vbox.addWidget(l)
g = QGridLayout()
l1 = QLabel(_("Username:"))
g.addWidget(l1, 0, 0)
user = QLineEdit()
g.addWidget(user, 0, 1)
l2 = QLabel(_("Password:"))
g.addWidget(l2, 1, 0)
passwd = QLineEdit()
passwd.setEchoMode(QLineEdit.Password)
g.addWidget(passwd, 1, 1)
vbox.addLayout(g)
bb = QDialogButtonBox(QDialogButtonBox.Ok)
self.connect(bb, SIGNAL("accepted()"), d.accept)
vbox.addWidget(bb)
d.setLayout(vbox)
d.exec_()
self.config['syncUsername'] = unicode(user.text())
self.config['syncPassword'] = unicode(passwd.text())
if self.config['syncUsername'] and self.config['syncPassword']:
if self.syncDeck(onlyMerge=True): if self.syncDeck(onlyMerge=True):
return return
self.deck = None self.deck = None
@ -1088,6 +1115,7 @@ class AnkiQt(QMainWindow):
deckRelatedMenuItems = ( deckRelatedMenuItems = (
"Save", "Save",
"SaveAs",
"Close", "Close",
"Addcards", "Addcards",
"Editdeck", "Editdeck",
@ -1111,6 +1139,7 @@ class AnkiQt(QMainWindow):
def connectMenuActions(self): def connectMenuActions(self):
self.connect(self.mainWin.actionNew, SIGNAL("triggered()"), self.onNew) self.connect(self.mainWin.actionNew, SIGNAL("triggered()"), self.onNew)
self.connect(self.mainWin.actionOpenOnline, SIGNAL("triggered()"), self.onOpenOnline)
self.connect(self.mainWin.actionOpen, SIGNAL("triggered()"), self.onOpen) self.connect(self.mainWin.actionOpen, SIGNAL("triggered()"), self.onOpen)
self.connect(self.mainWin.actionOpenSamples, SIGNAL("triggered()"), self.onOpenSamples) self.connect(self.mainWin.actionOpenSamples, SIGNAL("triggered()"), self.onOpenSamples)
self.connect(self.mainWin.actionSave, SIGNAL("triggered()"), self.onSave) self.connect(self.mainWin.actionSave, SIGNAL("triggered()"), self.onSave)

View file

@ -166,7 +166,7 @@ class ModelChooser(QHBoxLayout):
class AddModel(QDialog): class AddModel(QDialog):
def __init__(self, parent, main=None, online=False): def __init__(self, parent, main=None):
QDialog.__init__(self, parent) QDialog.__init__(self, parent)
self.parent = parent self.parent = parent
if not main: if not main:
@ -177,6 +177,7 @@ class AddModel(QDialog):
self.dialog.setupUi(self) self.dialog.setupUi(self)
self.models = {} self.models = {}
for name in ( for name in (
"Basic",
"Japanese", "Japanese",
"English", "English",
"Cantonese", "Cantonese",
@ -191,20 +192,13 @@ class AddModel(QDialog):
# the list widget will swallow the enter key # the list widget will swallow the enter key
s = QShortcut(QKeySequence("Return"), self) s = QShortcut(QKeySequence("Return"), self)
self.connect(s, SIGNAL("activated()"), self.accept) self.connect(s, SIGNAL("activated()"), self.accept)
if not online:
self.dialog.loadOnline.setShown(False)
def getModel(self): def getModel(self):
self.exec_() self.exec_()
return self.model return self.model
def accept(self): def accept(self):
if self.dialog.createTemplate.isChecked(): self.model = self.models[
self.model = self.models[ unicode(self.dialog.models.currentItem().text())]
unicode(self.dialog.models.currentItem().text())]
elif self.dialog.createBasic.isChecked():
self.model = stdmodels.byName("Basic")
else:
self.model = "online"
QDialog.accept(self) QDialog.accept(self)

View file

@ -112,21 +112,22 @@ class Sync(QThread):
self.deck.s.flush() self.deck.s.flush()
self.deck.s.commit() self.deck.s.commit()
else: else:
self.setStatus(_("Sync: nothing to do")) self.setStatus(_("No changes found."))
# check sources # check sources
if self.sourcesToCheck: if self.sourcesToCheck:
self.setStatus(_("<br><br>Checking shared decks..")) self.setStatus(_("<br><br>Checking deck subscriptions.."))
for source in self.sourcesToCheck: for source in self.sourcesToCheck:
if not proxy.hasDeck(str(source)):
self.setStatus(_("%x no longer exists.") % source)
continue
proxy.deckName = str(source) proxy.deckName = str(source)
if not client.prepareOneWaySync(): msg = "%s:" % client.syncOneWayDeckName()
self.setStatus(_("%x up to date.") % source) if not proxy.hasDeck(str(source)):
self.setStatus(_("%s no longer exists.") % msg)
continue continue
self.setStatus(_("Getting payload from %x..") % source) if not client.prepareOneWaySync():
self.setStatus(_("%s no changes found.") % msg)
continue
self.setStatus(_("%s fetching payload..") % msg)
payload = proxy.genOneWayPayload(client.lastSync) payload = proxy.genOneWayPayload(client.lastSync)
self.setStatus(_("Applying %d modified cards..") % self.setStatus(msg + _(" applied %d modified cards.") %
len(payload['cards'])) len(payload['cards']))
client.applyOneWayPayload(payload) client.applyOneWayPayload(payload)
self.setStatus(_("Check complete.")) self.setStatus(_("Check complete."))
@ -135,8 +136,8 @@ class Sync(QThread):
# close and send signal to main thread # close and send signal to main thread
self.deck.close() self.deck.close()
taken = time.time() - start taken = time.time() - start
if taken < 20.5: if taken < 2.5:
time.sleep(20.5 - taken) time.sleep(2.5 - taken)
self.emit(SIGNAL("syncFinished")) self.emit(SIGNAL("syncFinished"))
except Exception, e: except Exception, e:
traceback.print_exc() traceback.print_exc()

View file

@ -192,22 +192,14 @@ class View(object):
def drawNoDeckMessage(self): def drawNoDeckMessage(self):
self.write(_("""<h1>Welcome to Anki!</h1> self.write(_("""<h1>Welcome to Anki!</h1>
<p> <p>
<table width=90%> <table>
<tr> <tr>
<td> <td>
Anki is a tool which will help you remember things as quickly and easily as <a href="welcome:new"><img src=":/icons/document-new.png"></a>
possible. Anki works by asking you questions. After answering a question,
Anki will ask how well you remembered. If you made a mistake or had difficulty
remembering, Anki will show you the question again after a short amount of
time. If you answered the question easily, Anki will wait for a number of days
before asking you again. Each time you successfully remember something, the
time before you see it again will get bigger.
</td> </td>
<td valign=middle>
<h2><a href="welcome:new">Create a new deck</a></h2></td>
</tr> </tr>
</table>
<p>
<table>
<tr> <tr>
<td width=50> <td width=50>
@ -222,37 +214,6 @@ time before you see it again will get bigger.
</td> </td>
<td valign=middle><h2><a href="welcome:open">Open an existing deck</a></h2></td> <td valign=middle><h2><a href="welcome:open">Open an existing deck</a></h2></td>
</tr> </tr>
<tr>
<td>
<a href="welcome:new"><img src=":/icons/document-new.png"></a>
</td>
<td valign=middle>
<h2><a href="welcome:new">Create a new deck</a></h2></td>
</tr>
</table>
<p>
<table width=90%>
<tr>
<td>
<h2>Adding material</h2>
There are three ways to add material to Anki: typing it in yourself, using a
pre-made Anki deck, or importing word lists that you find on the internet.
<p>
For language learning, it's a good idea to add material yourself, from sources
like a textbook or a TV show. By adding words that you see or hear in context,
you also learn how they are used. While it may be tempting to use a big,
pre-made vocabulary list to save time, learning words and grammar in context
will ensure you can use them naturally.
<p>
So if you're learning a language, consider adding material you want to learn
into Anki by yourself. Initially the time required to type in material may
seem daunting, but it's a small amount of time compared to the time you'll
save by not forgetting.
</td>
</tr>
</table> </table>
""")) """))

View file

@ -5,7 +5,7 @@
<rect> <rect>
<x>0</x> <x>0</x>
<y>0</y> <y>0</y>
<width>921</width> <width>692</width>
<height>553</height> <height>553</height>
</rect> </rect>
</property> </property>
@ -13,20 +13,20 @@
<string>Anki - Add Cards</string> <string>Anki - Add Cards</string>
</property> </property>
<layout class="QHBoxLayout" > <layout class="QHBoxLayout" >
<property name="margin" >
<number>0</number>
</property>
<property name="spacing" > <property name="spacing" >
<number>3</number> <number>3</number>
</property> </property>
<property name="margin" >
<number>0</number>
</property>
<item> <item>
<layout class="QVBoxLayout" > <layout class="QVBoxLayout" >
<property name="margin" >
<number>6</number>
</property>
<property name="spacing" > <property name="spacing" >
<number>3</number> <number>3</number>
</property> </property>
<property name="margin" >
<number>6</number>
</property>
<item> <item>
<layout class="QGridLayout" > <layout class="QGridLayout" >
<property name="margin" > <property name="margin" >
@ -43,9 +43,7 @@
<item> <item>
<widget class="QGroupBox" name="fieldsArea" > <widget class="QGroupBox" name="fieldsArea" >
<property name="sizePolicy" > <property name="sizePolicy" >
<sizepolicy> <sizepolicy vsizetype="Expanding" hsizetype="Preferred" >
<hsizetype>5</hsizetype>
<vsizetype>7</vsizetype>
<horstretch>0</horstretch> <horstretch>0</horstretch>
<verstretch>0</verstretch> <verstretch>0</verstretch>
</sizepolicy> </sizepolicy>
@ -61,10 +59,10 @@
<string>Status</string> <string>Status</string>
</property> </property>
<layout class="QVBoxLayout" > <layout class="QVBoxLayout" >
<property name="margin" > <property name="spacing" >
<number>0</number> <number>0</number>
</property> </property>
<property name="spacing" > <property name="margin" >
<number>0</number> <number>0</number>
</property> </property>
<item> <item>
@ -73,9 +71,7 @@
<bool>false</bool> <bool>false</bool>
</property> </property>
<property name="sizePolicy" > <property name="sizePolicy" >
<sizepolicy> <sizepolicy vsizetype="Preferred" hsizetype="Expanding" >
<hsizetype>7</hsizetype>
<vsizetype>5</vsizetype>
<horstretch>0</horstretch> <horstretch>0</horstretch>
<verstretch>0</verstretch> <verstretch>0</verstretch>
</sizepolicy> </sizepolicy>
@ -112,189 +108,6 @@
</item> </item>
</layout> </layout>
</item> </item>
<item>
<widget class="QFrame" name="helpFrame" >
<property name="frameShape" >
<enum>QFrame::NoFrame</enum>
</property>
<property name="frameShadow" >
<enum>QFrame::Raised</enum>
</property>
<layout class="QHBoxLayout" >
<property name="margin" >
<number>0</number>
</property>
<property name="spacing" >
<number>0</number>
</property>
<item>
<widget class="Line" name="line" >
<property name="orientation" >
<enum>Qt::Vertical</enum>
</property>
</widget>
</item>
<item>
<widget class="QFrame" name="innerHelpFrame" >
<property name="palette" >
<palette>
<active>
<colorrole role="Base" >
<brush brushstyle="SolidPattern" >
<color alpha="255" >
<red>255</red>
<green>255</green>
<blue>255</blue>
</color>
</brush>
</colorrole>
<colorrole role="Window" >
<brush brushstyle="SolidPattern" >
<color alpha="255" >
<red>255</red>
<green>250</green>
<blue>230</blue>
</color>
</brush>
</colorrole>
</active>
<inactive>
<colorrole role="Base" >
<brush brushstyle="SolidPattern" >
<color alpha="255" >
<red>255</red>
<green>255</green>
<blue>255</blue>
</color>
</brush>
</colorrole>
<colorrole role="Window" >
<brush brushstyle="SolidPattern" >
<color alpha="255" >
<red>255</red>
<green>250</green>
<blue>230</blue>
</color>
</brush>
</colorrole>
</inactive>
<disabled>
<colorrole role="Base" >
<brush brushstyle="SolidPattern" >
<color alpha="255" >
<red>255</red>
<green>250</green>
<blue>230</blue>
</color>
</brush>
</colorrole>
<colorrole role="Window" >
<brush brushstyle="SolidPattern" >
<color alpha="255" >
<red>255</red>
<green>250</green>
<blue>230</blue>
</color>
</brush>
</colorrole>
</disabled>
</palette>
</property>
<property name="autoFillBackground" >
<bool>true</bool>
</property>
<property name="frameShape" >
<enum>QFrame::NoFrame</enum>
</property>
<property name="frameShadow" >
<enum>QFrame::Raised</enum>
</property>
<layout class="QHBoxLayout" >
<property name="margin" >
<number>9</number>
</property>
<property name="spacing" >
<number>6</number>
</property>
<item>
<widget class="QTextBrowser" name="help" >
<property name="enabled" >
<bool>true</bool>
</property>
<property name="sizePolicy" >
<sizepolicy>
<hsizetype>1</hsizetype>
<vsizetype>7</vsizetype>
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize" >
<size>
<width>200</width>
<height>0</height>
</size>
</property>
<property name="maximumSize" >
<size>
<width>300</width>
<height>16777215</height>
</size>
</property>
<property name="palette" >
<palette>
<active>
<colorrole role="Base" >
<brush brushstyle="SolidPattern" >
<color alpha="255" >
<red>255</red>
<green>250</green>
<blue>230</blue>
</color>
</brush>
</colorrole>
</active>
<inactive>
<colorrole role="Base" >
<brush brushstyle="SolidPattern" >
<color alpha="255" >
<red>255</red>
<green>250</green>
<blue>230</blue>
</color>
</brush>
</colorrole>
</inactive>
<disabled>
<colorrole role="Base" >
<brush brushstyle="SolidPattern" >
<color alpha="255" >
<red>207</red>
<green>207</green>
<blue>207</blue>
</color>
</brush>
</colorrole>
</disabled>
</palette>
</property>
<property name="frameShape" >
<enum>QFrame::NoFrame</enum>
</property>
<property name="frameShadow" >
<enum>QFrame::Sunken</enum>
</property>
<property name="horizontalScrollBarPolicy" >
<enum>Qt::ScrollBarAlwaysOff</enum>
</property>
</widget>
</item>
</layout>
</widget>
</item>
</layout>
</widget>
</item>
</layout> </layout>
</widget> </widget>
<tabstops> <tabstops>

View file

@ -6,7 +6,7 @@
<x>0</x> <x>0</x>
<y>0</y> <y>0</y>
<width>388</width> <width>388</width>
<height>363</height> <height>456</height>
</rect> </rect>
</property> </property>
<property name="windowTitle" > <property name="windowTitle" >
@ -16,7 +16,7 @@
<item> <item>
<widget class="QLabel" name="label" > <widget class="QLabel" name="label" >
<property name="text" > <property name="text" >
<string>&lt;h1>What would you like to study?&lt;/h1></string> <string>&lt;h1>Please choose a template&lt;/h1></string>
</property> </property>
<property name="alignment" > <property name="alignment" >
<set>Qt::AlignCenter</set> <set>Qt::AlignCenter</set>
@ -32,16 +32,6 @@
<string/> <string/>
</property> </property>
<layout class="QVBoxLayout" > <layout class="QVBoxLayout" >
<item>
<widget class="QRadioButton" name="createTemplate" >
<property name="text" >
<string>A pre-made quiz style.</string>
</property>
<property name="checked" >
<bool>true</bool>
</property>
</widget>
</item>
<item> <item>
<widget class="QListWidget" name="models" > <widget class="QListWidget" name="models" >
<property name="font" > <property name="font" >
@ -57,20 +47,6 @@
</property> </property>
</widget> </widget>
</item> </item>
<item>
<widget class="QRadioButton" name="createBasic" >
<property name="text" >
<string>A simple front-to-back quiz style.</string>
</property>
</widget>
</item>
<item>
<widget class="QRadioButton" name="loadOnline" >
<property name="text" >
<string>An existing online deck.</string>
</property>
</widget>
</item>
</layout> </layout>
</widget> </widget>
</item> </item>
@ -80,7 +56,7 @@
<enum>Qt::Horizontal</enum> <enum>Qt::Horizontal</enum>
</property> </property>
<property name="standardButtons" > <property name="standardButtons" >
<set>QDialogButtonBox::Cancel|QDialogButtonBox::NoButton|QDialogButtonBox::Ok</set> <set>QDialogButtonBox::Cancel|QDialogButtonBox::Help|QDialogButtonBox::Ok</set>
</property> </property>
</widget> </widget>
</item> </item>
@ -120,21 +96,5 @@
</hint> </hint>
</hints> </hints>
</connection> </connection>
<connection>
<sender>createTemplate</sender>
<signal>toggled(bool)</signal>
<receiver>models</receiver>
<slot>setEnabled(bool)</slot>
<hints>
<hint type="sourcelabel" >
<x>217</x>
<y>71</y>
</hint>
<hint type="destinationlabel" >
<x>213</x>
<y>138</y>
</hint>
</hints>
</connection>
</connections> </connections>
</ui> </ui>

File diff suppressed because it is too large Load diff

View file

@ -5,8 +5,8 @@
<rect> <rect>
<x>0</x> <x>0</x>
<y>0</y> <y>0</y>
<width>555</width> <width>543</width>
<height>292</height> <height>457</height>
</rect> </rect>
</property> </property>
<property name="sizePolicy" > <property name="sizePolicy" >
@ -26,9 +26,9 @@
<property name="geometry" > <property name="geometry" >
<rect> <rect>
<x>0</x> <x>0</x>
<y>57</y> <y>53</y>
<width>555</width> <width>543</width>
<height>212</height> <height>384</height>
</rect> </rect>
</property> </property>
<property name="sizePolicy" > <property name="sizePolicy" >
@ -193,6 +193,12 @@
</item> </item>
<item> <item>
<widget class="QFrame" name="innerHelpFrame" > <widget class="QFrame" name="innerHelpFrame" >
<property name="sizePolicy" >
<sizepolicy vsizetype="Preferred" hsizetype="Expanding" >
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="palette" > <property name="palette" >
<palette> <palette>
<active> <active>
@ -279,17 +285,11 @@
<bool>true</bool> <bool>true</bool>
</property> </property>
<property name="sizePolicy" > <property name="sizePolicy" >
<sizepolicy vsizetype="Expanding" hsizetype="Fixed" > <sizepolicy vsizetype="Expanding" hsizetype="Expanding" >
<horstretch>0</horstretch> <horstretch>0</horstretch>
<verstretch>0</verstretch> <verstretch>0</verstretch>
</sizepolicy> </sizepolicy>
</property> </property>
<property name="minimumSize" >
<size>
<width>200</width>
<height>0</height>
</size>
</property>
<property name="maximumSize" > <property name="maximumSize" >
<size> <size>
<width>300</width> <width>300</width>
@ -357,7 +357,7 @@
<rect> <rect>
<x>0</x> <x>0</x>
<y>0</y> <y>0</y>
<width>555</width> <width>543</width>
<height>23</height> <height>23</height>
</rect> </rect>
</property> </property>
@ -405,6 +405,7 @@
<addaction name="actionNew" /> <addaction name="actionNew" />
<addaction name="actionOpen" /> <addaction name="actionOpen" />
<addaction name="menuOpenRecent" /> <addaction name="menuOpenRecent" />
<addaction name="actionOpenOnline" />
<addaction name="actionImport" /> <addaction name="actionImport" />
<addaction name="separator" /> <addaction name="separator" />
<addaction name="actionSave" /> <addaction name="actionSave" />
@ -471,9 +472,9 @@
<property name="geometry" > <property name="geometry" >
<rect> <rect>
<x>0</x> <x>0</x>
<y>269</y> <y>437</y>
<width>555</width> <width>543</width>
<height>23</height> <height>20</height>
</rect> </rect>
</property> </property>
</widget> </widget>
@ -485,8 +486,8 @@
<rect> <rect>
<x>0</x> <x>0</x>
<y>23</y> <y>23</y>
<width>555</width> <width>543</width>
<height>34</height> <height>30</height>
</rect> </rect>
</property> </property>
<property name="orientation" > <property name="orientation" >
@ -914,6 +915,15 @@
<string>Check Media Database..</string> <string>Check Media Database..</string>
</property> </property>
</action> </action>
<action name="actionOpenOnline" >
<property name="icon" >
<iconset resource="../icons.qrc" >
<normaloff>:/icons/document-open-remote.png</normaloff>:/icons/document-open-remote.png</iconset>
</property>
<property name="text" >
<string>Open Online..</string>
</property>
</action>
</widget> </widget>
<resources> <resources>
<include location="../icons.qrc" /> <include location="../icons.qrc" />

View file

@ -8,8 +8,8 @@
<rect> <rect>
<x>0</x> <x>0</x>
<y>0</y> <y>0</y>
<width>544</width> <width>494</width>
<height>589</height> <height>502</height>
</rect> </rect>
</property> </property>
<property name="windowTitle" > <property name="windowTitle" >
@ -26,12 +26,12 @@
<rect> <rect>
<x>0</x> <x>0</x>
<y>0</y> <y>0</y>
<width>522</width> <width>478</width>
<height>515</height> <height>436</height>
</rect> </rect>
</property> </property>
<attribute name="title" > <attribute name="title" >
<string>Model properties</string> <string>General</string>
</attribute> </attribute>
<layout class="QVBoxLayout" > <layout class="QVBoxLayout" >
<property name="spacing" > <property name="spacing" >
@ -43,7 +43,7 @@
<item> <item>
<widget class="QLabel" name="label_7" > <widget class="QLabel" name="label_7" >
<property name="text" > <property name="text" >
<string>&lt;h1>Model properties&lt;/h1></string> <string>&lt;h1>General Model Properties&lt;/h1></string>
</property> </property>
</widget> </widget>
</item> </item>
@ -88,7 +88,7 @@
<item row="4" column="0" > <item row="4" column="0" >
<widget class="QLabel" name="label_4" > <widget class="QLabel" name="label_4" >
<property name="text" > <property name="text" >
<string>&lt;b>Features&lt;a href="http://ichi2.net/anki/wiki/Key_Terms_and_Concepts#head-f57a8f871fc97ceb2f6daa43528fd640ee63b4f4">?&lt;/a>&lt;/b></string> <string>&lt;b>Features&lt;/b></string>
</property> </property>
<property name="alignment" > <property name="alignment" >
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set> <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set>
@ -101,7 +101,7 @@
<item row="1" column="0" > <item row="1" column="0" >
<widget class="QLabel" name="label_3" > <widget class="QLabel" name="label_3" >
<property name="text" > <property name="text" >
<string>&lt;b>Tags&lt;a href="http://ichi2.net/anki/wiki/Key_Terms_and_Concepts#head-09efbe5fd6809ae0d90543adf92014b8eb9ef1bf">?&lt;/a>&lt;/b></string> <string>&lt;b>Tags&lt;/b></string>
</property> </property>
<property name="alignment" > <property name="alignment" >
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set> <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set>
@ -117,7 +117,7 @@
<item row="3" column="0" > <item row="3" column="0" >
<widget class="QLabel" name="label_5" > <widget class="QLabel" name="label_5" >
<property name="text" > <property name="text" >
<string>&lt;b>Card spacing&lt;a href="http://ichi2.net/anki/wiki/Key_Terms_and_Concepts#head-59a81e35b6afb23930005e943068945214d194b3">?&lt;/a>&lt;/b></string> <string>&lt;b>Card spacing&lt;/b></string>
</property> </property>
<property name="alignment" > <property name="alignment" >
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set> <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set>
@ -132,7 +132,7 @@
<item row="0" column="0" > <item row="0" column="0" >
<widget class="QLabel" name="label_16" > <widget class="QLabel" name="label_16" >
<property name="text" > <property name="text" >
<string>Minimum spacing&lt;a href="http://ichi2.net/anki/wiki/Key_Terms_and_Concepts#head-4ee3a58e2fdd61da8ef81984213862d3bc0ed4bd">?&lt;/a></string> <string>Minimum spacing</string>
</property> </property>
<property name="openExternalLinks" > <property name="openExternalLinks" >
<bool>true</bool> <bool>true</bool>
@ -158,7 +158,7 @@
<item row="1" column="0" > <item row="1" column="0" >
<widget class="QLabel" name="label_24" > <widget class="QLabel" name="label_24" >
<property name="text" > <property name="text" >
<string>Minimum interval multiplier&lt;a href="http://ichi2.net/anki/wiki/Key_Terms_and_Concepts#head-51074b785bb6049b44fce9f18fca198100c4d2f7">?&lt;/a></string> <string>Minimum interval multiplier</string>
</property> </property>
<property name="openExternalLinks" > <property name="openExternalLinks" >
<bool>true</bool> <bool>true</bool>
@ -182,8 +182,8 @@
<rect> <rect>
<x>0</x> <x>0</x>
<y>0</y> <y>0</y>
<width>522</width> <width>478</width>
<height>515</height> <height>436</height>
</rect> </rect>
</property> </property>
<attribute name="title" > <attribute name="title" >
@ -197,16 +197,9 @@
<number>9</number> <number>9</number>
</property> </property>
<item> <item>
<widget class="QLabel" name="label_8" > <widget class="QLabel" name="label_6" >
<property name="text" > <property name="text" >
<string>&lt;h1>Fields&lt;/h1></string> <string>&lt;h1>Field Models&lt;/h1></string>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="label_10" >
<property name="text" >
<string>A flashcard is made from a number of fields, like "meaning", "notes", etc.</string>
</property> </property>
</widget> </widget>
</item> </item>
@ -234,68 +227,62 @@
</property> </property>
</widget> </widget>
</item> </item>
</layout>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout" >
<item> <item>
<layout class="QVBoxLayout" > <widget class="QPushButton" name="fieldAdd" >
<property name="spacing" > <property name="text" >
<number>6</number> <string>&amp;Add</string>
</property> </property>
<property name="margin" > <property name="autoDefault" >
<number>0</number> <bool>false</bool>
</property> </property>
<item> </widget>
<widget class="QPushButton" name="fieldAdd" > </item>
<property name="text" > <item>
<string>&amp;Add</string> <widget class="QPushButton" name="fieldUp" >
</property> <property name="toolTip" >
<property name="autoDefault" > <string>Move selected field up</string>
<bool>false</bool> </property>
</property> <property name="text" >
</widget> <string>Move &amp;Up</string>
</item> </property>
<item> <property name="autoDefault" >
<widget class="QPushButton" name="fieldDelete" > <bool>false</bool>
<property name="text" > </property>
<string>&amp;Delete</string> </widget>
</property> </item>
<property name="autoDefault" > <item>
<bool>false</bool> <widget class="QPushButton" name="fieldDelete" >
</property> <property name="text" >
</widget> <string>&amp;Delete</string>
</item> </property>
<item> <property name="autoDefault" >
<widget class="QPushButton" name="fieldUp" > <bool>false</bool>
<property name="toolTip" > </property>
<string>Move selected field up</string> </widget>
</property> </item>
<property name="text" > <item>
<string>Move &amp;Up</string> <widget class="QPushButton" name="fieldDown" >
</property> <property name="toolTip" >
<property name="autoDefault" > <string>Move selected field down</string>
<bool>false</bool> </property>
</property> <property name="text" >
</widget> <string>Move Dow&amp;n</string>
</item> </property>
<item> <property name="autoDefault" >
<widget class="QPushButton" name="fieldDown" > <bool>false</bool>
<property name="toolTip" > </property>
<string>Move selected field down</string> </widget>
</property>
<property name="text" >
<string>Move Dow&amp;n</string>
</property>
<property name="autoDefault" >
<bool>false</bool>
</property>
</widget>
</item>
</layout>
</item> </item>
</layout> </layout>
</item> </item>
<item> <item>
<widget class="QGroupBox" name="fieldEditBox" > <widget class="QGroupBox" name="fieldEditBox" >
<property name="title" > <property name="title" >
<string>Field properties</string> <string/>
</property> </property>
<layout class="QVBoxLayout" > <layout class="QVBoxLayout" >
<property name="spacing" > <property name="spacing" >
@ -366,7 +353,7 @@
<item row="5" column="0" > <item row="5" column="0" >
<widget class="QLabel" name="label_22" > <widget class="QLabel" name="label_22" >
<property name="text" > <property name="text" >
<string>&lt;b>Features&lt;a href="http://ichi2.net/anki/wiki/Key_Terms_and_Concepts#head-f57a8f871fc97ceb2f6daa43528fd640ee63b4f4">?&lt;/a>&lt;/b></string> <string>&lt;b>Features&lt;/b></string>
</property> </property>
<property name="alignment" > <property name="alignment" >
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set> <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set>
@ -422,8 +409,8 @@
<rect> <rect>
<x>0</x> <x>0</x>
<y>0</y> <y>0</y>
<width>522</width> <width>478</width>
<height>515</height> <height>436</height>
</rect> </rect>
</property> </property>
<attribute name="title" > <attribute name="title" >
@ -437,25 +424,9 @@
<number>9</number> <number>9</number>
</property> </property>
<item> <item>
<widget class="QLabel" name="label_9" > <widget class="QLabel" name="label_8" >
<property name="sizePolicy" >
<sizepolicy vsizetype="Fixed" hsizetype="Fixed" >
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text" > <property name="text" >
<string>&lt;h1>Card models&lt;/h1></string> <string>&lt;h1>Card Models&lt;/h1></string>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="label_11" >
<property name="text" >
<string>One or more cards are generated for each piece of information you enter into Anki. Here you can control how many cards are generated, and what they look like. Spacing is the amount of time before showing a different card for the same piece of information.</string>
</property>
<property name="wordWrap" >
<bool>true</bool>
</property> </property>
</widget> </widget>
</item> </item>
@ -483,63 +454,57 @@
</property> </property>
</widget> </widget>
</item> </item>
</layout>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_2" >
<item> <item>
<layout class="QVBoxLayout" > <widget class="QPushButton" name="cardAdd" >
<property name="spacing" > <property name="text" >
<number>6</number> <string>&amp;Add</string>
</property> </property>
<property name="margin" > </widget>
<number>0</number> </item>
<item>
<widget class="QPushButton" name="cardUp" >
<property name="toolTip" >
<string>Move selected card model up</string>
</property> </property>
<item> <property name="text" >
<widget class="QPushButton" name="cardAdd" > <string>Move &amp;Up</string>
<property name="text" > </property>
<string>&amp;Add</string> </widget>
</property> </item>
</widget> <item>
</item> <widget class="QPushButton" name="cardDown" >
<item> <property name="toolTip" >
<widget class="QPushButton" name="cardToggle" > <string>Move selected card model down</string>
<property name="text" > </property>
<string/> <property name="text" >
</property> <string>Move Dow&amp;n</string>
</widget> </property>
</item> </widget>
<item> </item>
<widget class="QPushButton" name="cardDelete" > <item>
<property name="text" > <widget class="QPushButton" name="cardToggle" >
<string>&amp;Delete</string> <property name="text" >
</property> <string/>
</widget> </property>
</item> </widget>
<item> </item>
<widget class="QPushButton" name="cardUp" > <item>
<property name="toolTip" > <widget class="QPushButton" name="cardDelete" >
<string>Move selected card model up</string> <property name="text" >
</property> <string>&amp;Delete</string>
<property name="text" > </property>
<string>Move &amp;Up</string> </widget>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="cardDown" >
<property name="toolTip" >
<string>Move selected card model down</string>
</property>
<property name="text" >
<string>Move Dow&amp;n</string>
</property>
</widget>
</item>
</layout>
</item> </item>
</layout> </layout>
</item> </item>
<item> <item>
<widget class="QGroupBox" name="cardEditBox" > <widget class="QGroupBox" name="cardEditBox" >
<property name="title" > <property name="title" >
<string>Edit card</string> <string/>
</property> </property>
<layout class="QVBoxLayout" > <layout class="QVBoxLayout" >
<property name="spacing" > <property name="spacing" >
@ -630,7 +595,7 @@
<item row="3" column="0" > <item row="3" column="0" >
<widget class="QLabel" name="label_15" > <widget class="QLabel" name="label_15" >
<property name="text" > <property name="text" >
<string>&lt;b>Answer format&lt;a href="http://ichi2.net/anki/wiki/Key_Terms_and_Concepts#head-b8916ff117aa0da4a414ce9b9b9be4a232eab2f4">?&lt;/a>&lt;/b></string> <string>&lt;b>Answer format&lt;/b></string>
</property> </property>
<property name="alignment" > <property name="alignment" >
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set> <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set>
@ -668,7 +633,7 @@
<item row="0" column="0" > <item row="0" column="0" >
<widget class="QLabel" name="label_12" > <widget class="QLabel" name="label_12" >
<property name="text" > <property name="text" >
<string>&lt;b>Name/tag&lt;a href="http://ichi2.net/anki/wiki/Key_Terms_and_Concepts#head-09efbe5fd6809ae0d90543adf92014b8eb9ef1bf">?&lt;/a>&lt;/b></string> <string>&lt;b>Name/tag&lt;/b></string>
</property> </property>
<property name="alignment" > <property name="alignment" >
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set> <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set>
@ -681,7 +646,7 @@
<item row="2" column="0" > <item row="2" column="0" >
<widget class="QLabel" name="label_14" > <widget class="QLabel" name="label_14" >
<property name="text" > <property name="text" >
<string>&lt;b>Question format&lt;a href="http://ichi2.net/anki/wiki/Key_Terms_and_Concepts#head-b8916ff117aa0da4a414ce9b9b9be4a232eab2f4">?&lt;/a>&lt;/b></string> <string>&lt;b>Question format&lt;/b></string>
</property> </property>
<property name="alignment" > <property name="alignment" >
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set> <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set>
@ -706,7 +671,7 @@
<enum>Qt::Horizontal</enum> <enum>Qt::Horizontal</enum>
</property> </property>
<property name="standardButtons" > <property name="standardButtons" >
<set>QDialogButtonBox::Close</set> <set>QDialogButtonBox::Close|QDialogButtonBox::Help</set>
</property> </property>
</widget> </widget>
</item> </item>
@ -722,8 +687,8 @@
<tabstop>decorators</tabstop> <tabstop>decorators</tabstop>
<tabstop>fieldList</tabstop> <tabstop>fieldList</tabstop>
<tabstop>fieldAdd</tabstop> <tabstop>fieldAdd</tabstop>
<tabstop>fieldDelete</tabstop>
<tabstop>fieldUp</tabstop> <tabstop>fieldUp</tabstop>
<tabstop>fieldDelete</tabstop>
<tabstop>fieldDown</tabstop> <tabstop>fieldDown</tabstop>
<tabstop>fieldName</tabstop> <tabstop>fieldName</tabstop>
<tabstop>fieldDescription</tabstop> <tabstop>fieldDescription</tabstop>
@ -733,10 +698,10 @@
<tabstop>fieldFeatures</tabstop> <tabstop>fieldFeatures</tabstop>
<tabstop>cardList</tabstop> <tabstop>cardList</tabstop>
<tabstop>cardAdd</tabstop> <tabstop>cardAdd</tabstop>
<tabstop>cardToggle</tabstop>
<tabstop>cardDelete</tabstop>
<tabstop>cardUp</tabstop> <tabstop>cardUp</tabstop>
<tabstop>cardDown</tabstop> <tabstop>cardDown</tabstop>
<tabstop>cardToggle</tabstop>
<tabstop>cardDelete</tabstop>
<tabstop>cardName</tabstop> <tabstop>cardName</tabstop>
<tabstop>cardDescription</tabstop> <tabstop>cardDescription</tabstop>
<tabstop>cardQuestion</tabstop> <tabstop>cardQuestion</tabstop>

View file

@ -1,5 +1,6 @@
<RCC> <RCC>
<qresource prefix="/" > <qresource prefix="/" >
<file>icons/document-open-remote.png</file>
<file>icons/document-open-recent.png</file> <file>icons/document-open-recent.png</file>
<file>icons/khtml_kget.png</file> <file>icons/khtml_kget.png</file>
<file>icons/edit-find.png</file> <file>icons/edit-find.png</file>

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

View file

@ -2,7 +2,7 @@
# Resource object code # Resource object code
# #
# Created: Mon Sep 22 17:48:47 2008 # Created: Sun Oct 5 23:32:43 2008
# by: The Resource Compiler for PyQt (Qt v4.4.0) # by: The Resource Compiler for PyQt (Qt v4.4.0)
# #
# WARNING! All changes made in this file will be lost! # WARNING! All changes made in this file will be lost!
@ -6338,6 +6338,143 @@ qt_resource_data = "\
\x96\x14\x60\x42\xc4\x3f\x93\x80\xa4\xb6\xbe\x96\x04\x3f\xd3\x10\ \x96\x14\x60\x42\xc4\x3f\x93\x80\xa4\xb6\xbe\x96\x04\x3f\xd3\x10\
\xc9\x2f\x00\x31\x63\xd4\xa9\x4c\x9b\xd1\x58\x00\x00\x00\x00\x49\ \xc9\x2f\x00\x31\x63\xd4\xa9\x4c\x9b\xd1\x58\x00\x00\x00\x00\x49\
\x45\x4e\x44\xae\x42\x60\x82\ \x45\x4e\x44\xae\x42\x60\x82\
\x00\x00\x08\x6c\
\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\x00\x09\x70\x48\x59\x73\x00\x00\x37\x5c\x00\x00\x37\x5c\
\x01\xcb\xc7\xa4\xb9\x00\x00\x00\x06\x62\x4b\x47\x44\x00\xff\x00\
\xff\x00\xff\xa0\xbd\xa7\x93\x00\x00\x07\xde\x49\x44\x41\x54\x18\
\x19\xbd\xc1\x59\x8c\x9d\x65\x19\xc0\xf1\xff\xf3\xbe\xef\xf7\x9d\
\xef\x9c\x33\x73\x66\xeb\xcc\x74\x06\x86\x29\x5d\x42\x87\x45\xb0\
\x94\x45\xb6\x18\x97\x80\x09\xd1\xc8\x8d\x24\x10\x63\x20\x06\x2f\
\x4c\xbc\x20\x6a\xd4\x44\x4d\x48\x1a\x4c\x0c\x17\xc6\x3d\xe2\x0d\
\x41\xa3\x89\x2c\x06\x97\x44\x08\x02\x51\x96\x42\xb1\xb4\x25\x16\
\x5a\xda\xe9\x94\x99\xe9\xb4\x67\x99\xed\x9c\xf3\x2d\xef\xfb\x38\
\x05\x44\x68\x4a\xbc\x71\xfc\xfd\x84\x0f\x20\xe6\x6a\x3e\xf1\xa9\
\x2f\x90\x65\x39\xed\x76\x4a\x9a\xa6\xf2\xe9\x9b\x77\xc8\x3d\xdf\
\xb9\x29\xf0\x8e\x53\xf5\x0e\xf7\x3f\x72\x80\x56\xab\x83\xb5\x96\
\x5a\xad\xc4\xc3\xbf\x7e\xd6\x3c\xf7\xf8\x8f\x03\x24\xc0\xc5\x94\
\xaa\x31\xe9\xea\xfd\x7c\x10\xe1\xac\xae\xe2\xaf\xcf\x3e\xc5\x1b\
\x87\x0e\xa1\x1a\x78\xf2\xc9\x97\x65\x7c\x6c\x94\x9f\xfc\xec\x05\
\x6d\x2f\xbf\x3e\x78\xd3\xcd\xd7\x5d\x3f\x3e\x3e\x70\x99\xc2\x48\
\x9a\xfb\xe2\xf8\xec\xe2\xf4\xb1\xa3\x0b\xcf\x1d\xde\xf7\xbb\xdd\
\x90\xe4\x1f\xf9\xe4\x6d\xe6\xd0\xc1\xb9\xe0\x9c\x43\x55\xc9\xd3\
\x82\xfa\xec\xbd\x9c\x8d\xdc\xfe\xc3\x63\x08\x6f\xf3\x01\x01\x94\
\x35\x1a\x3c\xf1\xe8\x18\x47\x1e\x7c\xc0\x3c\xfd\xd8\xdf\xc2\x86\
\x73\x06\x07\x6f\xb8\xee\xc2\xaf\x5d\xf2\xa1\x89\x3b\x7b\xfb\xca\
\x1b\x9a\xcd\xb6\x2e\x2e\xa7\xd2\x5a\xec\x68\xa7\x53\xa0\x82\x74\
\xba\xf9\x81\xd7\x5e\x9d\xd9\x75\x78\xdf\xb7\x7f\xf5\xa5\x7b\xf6\
\xca\x03\xf7\xfd\x5c\x2b\x3d\x3d\x20\x96\xb4\xd3\x65\xe9\xe4\x7d\
\x9c\x49\x3e\xff\xa3\x19\xce\xd4\x59\xaa\xb3\x61\x7e\x96\x3c\x6f\
\x4b\xb7\x9b\xeb\xfc\xdc\xdc\x8e\x1d\x3b\xb6\xfe\x76\xfb\x85\xe3\
\x5b\x36\x6d\x19\x09\x4f\x3e\xf5\xba\xee\x3f\x78\x42\xe7\x1b\x5d\
\x26\x37\x0d\xd1\x5a\x68\x51\x8e\xad\x19\x3d\x77\x48\x16\x5b\x6d\
\x39\xb8\xef\xd8\x6f\xf6\x3c\xf5\x87\x3b\xe1\xf1\x55\xa2\xbb\x48\
\xca\x11\xde\x17\x68\xc8\x28\x3a\xbf\xe4\xbd\x5c\x56\x28\x02\x88\
\x10\xaf\x74\x43\x6f\x50\x54\xec\x00\x47\xfa\x4a\x72\xf1\x6d\xdb\
\xd3\x87\x6e\xfd\xde\x25\xb7\xdf\x72\xe9\xa3\xb5\xfe\xea\x70\x54\
\x29\x15\x51\xa5\x64\x36\x6f\x1f\xb3\x0b\x6d\xaf\x51\xad\x23\x9b\
\xb6\x8e\x6a\xba\xb1\x26\x2b\x8d\x65\xad\xd7\x57\xb4\x56\x2b\x17\
\x3b\xaf\xbd\xe0\x73\x79\x56\xf4\xef\x7b\xf6\xf0\x67\x34\xfb\x69\
\x7a\xcd\x1d\x7f\x96\xad\x57\x5c\xaa\xde\x17\x08\xdf\x15\x23\x28\
\xef\x70\xab\xdd\x80\x11\x91\xbe\xaa\x79\x74\xb8\x66\xaf\x17\xa1\
\xad\x8a\xb1\x03\x35\x66\x1f\x3b\xa4\x1f\xfb\xe8\x54\x75\x64\x63\
\x2d\x39\x3a\xb7\x12\x76\x5e\xbb\xd5\x95\x4a\x4e\x5b\x2b\x29\xcb\
\x59\x21\xc1\x59\x66\x66\x9b\x32\x33\xbb\xc8\x72\x6b\x95\xac\x93\
\x9b\xfe\xfe\x8a\xd9\xf9\xe1\xf3\xf2\x2d\xdb\xcf\xb9\x31\xeb\xdc\
\xb9\xeb\xc6\x5b\x1f\xbc\x7b\xb8\x1c\xcb\xcd\x57\x8c\xe9\xfe\x1c\
\xa6\x5f\x3e\xae\xbc\x87\x53\xd6\x08\xfd\x91\xe5\xca\xab\x2f\x28\
\x55\x93\x48\x2a\xde\xab\x44\xa5\x48\x77\x3f\xf1\x9a\xf4\x0c\x44\
\x61\xae\xde\xd1\xab\xaf\x9c\x34\x83\x03\x15\xad\x2f\x67\x52\x6f\
\x7b\x48\x4a\x4c\x9e\x57\x63\xff\xab\xc7\x59\x4e\x0b\x92\x5a\x59\
\x5a\xed\x9c\xb4\xd9\x61\xf7\xde\xe3\x6e\xee\xf0\x09\x1d\xdf\x38\
\xf0\xe5\x56\x6b\xe5\x91\x1d\xdf\xbc\xeb\xa5\x07\x7e\x7f\xb0\x6c\
\x93\x72\x30\x82\xa9\x96\xa4\x1d\x94\x8e\x02\x0e\xe5\xdf\x82\x70\
\x9a\xaa\x8b\x0c\x4b\xcd\x65\xea\xc7\x4e\x84\x78\xbc\x4f\xb6\x4e\
\x0e\xca\xd4\xd4\x98\x9e\x5a\xce\xa4\x93\x2b\x5b\xb7\x8e\x30\x3e\
\x31\xc4\x3f\x5e\x5b\xe0\x54\xaa\xa4\xd6\xb2\xda\x2d\x08\x91\x43\
\xbc\xd7\x60\x8c\x0c\x4f\x8e\xa8\xc1\x47\x03\xb5\xfe\x3f\xf9\xdd\
\xf3\x9d\x91\x0d\x15\x23\x22\x41\x21\x29\x3c\x07\x34\xe8\x0d\x28\
\x99\x33\x46\x30\x02\x0a\xa6\x9b\x07\x7c\x40\xe2\xc4\xc9\xf4\xe1\
\x05\xf6\xbe\xf2\xa6\x6c\x9c\x18\x60\xae\xd1\x66\xb9\x53\x08\x62\
\xf0\x04\x86\xfa\x13\xea\x33\x4d\xf6\x1d\x39\x49\x33\xf5\x44\x91\
\xc3\x2b\xb8\xaa\x90\xad\x74\x65\x35\x2d\x74\xf3\xf9\xc3\x92\xaf\
\xa6\x9a\x37\x16\x2b\x53\xc3\x79\x35\xa9\x96\xd0\x35\x79\x81\xbc\
\x72\x34\xdf\xb6\xd2\xd5\x9e\x10\x68\x18\x23\x20\x22\xa0\x90\x15\
\x4a\x9a\x07\x32\xaf\xcc\xbf\xd9\xc0\x45\x96\x3f\x3e\x7d\x84\xa3\
\x73\xcb\x74\xd2\x82\xe5\x4e\x46\x12\x5b\x96\xda\x19\xc7\x16\x96\
\xd8\x31\x35\xca\xf9\x93\x83\x84\x38\xc2\x96\x4b\x98\x24\xc2\x26\
\x11\xb6\x1c\xcb\xc4\x58\x9f\x8e\x8d\xd6\x64\xa5\x9d\xb1\xd8\x5c\
\x0a\xc6\x1a\x55\x0d\xaa\x28\x6b\x14\x44\x59\xe3\x8c\x08\x46\x40\
\x81\xac\x08\x04\xa3\x84\xd4\x43\xf0\x14\x41\x69\x2c\xa7\xcc\x9c\
\x5c\xa5\xbe\xdc\xe5\x99\xfd\xf3\xf4\xf6\x26\xc4\x25\x47\x70\x8e\
\xa1\xde\x98\xbe\xd5\x02\xb3\x9c\x62\x7d\x20\x18\x28\xb2\x82\x52\
\x35\xa1\x40\xa4\x53\x78\xc4\x88\x2c\x2d\x75\x65\xa0\x50\xf2\x2c\
\xe0\x83\xa0\x20\x46\x10\x8c\xe0\xc4\x80\x08\x28\x90\x15\x8a\x17\
\xa5\x90\x40\x52\x29\xd1\x5a\xea\x62\x07\x7a\x69\xe7\x9e\x27\xf6\
\xbc\xc9\xc5\xdb\x46\xe8\x86\xc0\x3f\x17\xda\xec\x9f\x5f\xa5\xb7\
\x95\xb1\xd8\xf1\xd8\x4a\x02\x79\x81\xb0\xa6\x5b\x00\x81\xd4\x07\
\x5a\x8b\x5d\x92\x08\x8a\x00\x69\x1e\x28\x72\xc5\x2b\x6f\x11\x01\
\x03\xb8\x6a\xa9\x44\x3b\xed\x0a\x0a\x69\xae\x18\x51\x9c\x04\x82\
\x8b\x48\x12\x47\x07\xe1\xd4\x52\xca\xf4\x89\x65\x8e\xae\x14\x5c\
\x3e\x35\xca\x9e\xb9\x55\x88\x23\xa6\xdb\x1e\x2b\x86\xa8\x1a\x13\
\xba\x42\xe1\x3d\x71\x39\x22\x89\x85\x3d\x7b\xa6\x09\xcd\x16\x7d\
\x0e\x6c\xa5\x4c\xa7\x5b\x10\x7c\xc0\x07\x41\x15\x51\x55\xa9\x26\
\x09\xae\xf0\x05\x91\xb3\x2a\xa2\xf8\xa0\xa8\x01\x2d\x02\xe5\xc1\
\x7e\xac\x08\xd5\xd8\x80\x11\x9c\x33\x74\x05\x1e\x7e\x65\x9e\xcf\
\x5e\x35\xc9\xa6\x91\x1e\x0e\xd5\x3b\xbc\x38\xb3\x48\x7d\xb1\x8d\
\x2a\x68\x5a\xb0\xe5\x9c\x3e\x66\xa7\x4f\xb1\x30\x5f\xa7\xd2\xe9\
\x30\x3c\x31\x42\xb9\xd6\x43\x96\x07\x04\xc1\x07\x10\x11\x8d\x9d\
\xd1\xc2\x17\xb8\xc7\x5e\xd8\x9b\x4c\x8e\x6c\x1c\x9c\x9a\x18\x90\
\x23\x0b\x5d\x40\x39\x4d\x8c\x23\x1a\x1a\xe4\x64\x7d\x89\xda\x40\
\x2f\xc7\x1b\x29\x17\x4e\xf5\xb3\xb4\xea\xd9\x34\x58\xa1\x1a\x39\
\x36\x0f\x56\x19\xaa\x26\xfc\xfd\x8d\x3a\x87\x67\x5a\x6c\x1e\xed\
\x61\x65\x61\x91\xfa\x62\x8a\xb1\x31\x2e\x0e\xf8\xa1\x21\x8e\x36\
\x32\x7c\x96\x21\x22\x80\xa0\x9a\x98\x57\xa7\x9b\x83\xfb\x5f\x7c\
\xbd\x2d\x97\x7d\xf5\xf9\xa3\xbd\x65\xdb\xe7\x8c\xa9\x15\xde\x1b\
\x05\x05\x04\x01\x13\x94\xe0\x3d\x2a\x02\x22\x44\xce\x12\x47\x06\
\x63\x84\x10\x40\x79\x9b\x08\x84\xa0\x08\x4a\xbb\x5b\x60\x44\xd0\
\x10\x30\x80\x5a\x8b\xf2\x2e\x15\x10\x6b\x4d\x40\x59\xea\xe6\x61\
\xd1\xf5\x24\xd1\xf0\x1d\x1f\x9f\x88\xfa\xab\x51\x5a\x14\x5a\x46\
\x78\x1f\x55\x45\x83\x82\x80\x02\x0a\x18\x11\x9c\x11\x10\xde\xe5\
\x83\xe2\xbd\x62\x04\x54\x59\xa3\x18\x6b\x11\xce\x2a\x58\x43\xf5\
\x2f\x7b\x17\x62\xa7\x62\x5a\xcf\x1d\x2e\x92\x9e\xb2\x09\x85\xf7\
\x65\xce\x42\x0b\x4f\x40\xc1\x18\x10\xb0\xd6\x50\x89\x2d\x46\x84\
\xa0\x8a\x0f\x4a\xe1\x03\x69\xe6\xd1\xa0\x10\x02\xd6\x59\x8c\x0d\
\x9c\x8d\x31\xa6\xe8\x66\x79\xfb\xe0\x6c\xda\x75\xce\xd8\xa5\x6e\
\x61\xaa\x91\x8f\x7c\xe1\x05\xe1\x2c\xc4\xa1\xde\xa3\x5e\x11\x6b\
\x50\x31\x64\xde\x22\x22\xf8\xa0\x04\x55\x8a\x22\x90\x15\x80\x82\
\xb1\x06\x15\x0b\x5e\x39\x93\x02\x56\x8d\xae\x66\xde\x16\x41\x96\
\x9c\x73\xb6\x99\xc4\x76\xa2\x56\x71\x59\x96\x03\xc2\x07\x70\x04\
\x1f\x08\x21\xf0\x16\x0d\x9c\x26\x80\x05\xac\x15\x4a\x95\x08\x63\
\x0c\x88\x01\x94\xb3\x52\x70\xce\x6a\xe1\x8b\x28\x76\xb6\xe9\x22\
\xeb\x9a\xb1\xc3\xf6\x56\x8c\x76\x52\x41\x44\x00\xe5\x3f\x04\x50\
\x54\x59\x63\x01\x8b\xaa\xa2\x1a\x50\xe5\x2d\x22\x82\x88\x20\x22\
\x9c\x26\xac\x11\x03\x28\xef\x27\xa8\x2a\x71\x24\xac\x76\xb0\xce\
\xba\xa6\x73\xce\x36\x62\x27\xb6\xa7\x6c\x10\x11\x8c\x08\x20\xbc\
\x9f\xf0\x5e\x0a\x08\x96\xff\x4e\x38\x53\x50\x48\x22\x43\xd3\x89\
\x75\xce\x36\x9c\xb3\xae\xe1\x9c\xd8\xde\x8a\x08\x18\x44\x84\xf5\
\xa4\xaa\x24\xb1\x88\x73\x62\x9d\x75\x0d\xb7\xe6\x94\xb3\x46\x7a\
\xca\x46\x42\x10\x8c\x08\xeb\x29\xa8\x50\x2e\x09\xce\x1a\x71\xce\
\x9d\x72\x91\xb5\x75\x63\x84\x52\x24\x52\x8a\x0c\xc6\xb0\xae\x82\
\x42\x29\x12\x63\x44\x88\xac\xab\xbb\x38\x8a\xea\xa8\xd1\x10\xd4\
\x28\xa0\xca\xfa\x52\xf0\x01\x51\x0c\x71\xe4\xea\xce\x59\xdb\x50\
\x35\x3e\xa8\x5a\x03\x08\xc2\x1a\x65\xbd\x88\xa2\x41\x8d\xaa\x68\
\xe4\x6c\xdd\x5d\x33\xd5\xd3\x8c\x22\xf1\x8d\xd5\x22\xca\x72\x8f\
\x88\xb0\x46\x58\x1f\x0a\xa8\x80\xdb\x36\x9e\xf8\x6d\x63\xd2\x74\
\x3a\xff\x4c\x63\x6c\xdb\x45\x4b\x2b\x99\xd9\x10\xe2\x90\x81\x08\
\xeb\x4b\x45\x88\x7a\x23\x6d\x1e\x3b\x74\xa0\x29\x40\x7c\xee\xe4\
\xe6\x5b\x4a\x91\xbd\x3c\x04\x2f\x20\xac\x2f\xc5\x18\xab\x69\xee\
\x5f\x3a\x3e\xfd\xc6\x43\xc2\x9a\x72\xb9\x2c\x9d\x4e\xa7\x07\x70\
\xfc\x7f\x14\x49\x92\xac\x74\xbb\x5d\x95\x8b\x2e\xdb\xc9\xdd\x5f\
\xff\x06\xcf\xbf\xf0\x12\x71\x29\x66\x74\xe3\x38\xdf\xfa\xca\x17\
\x11\x11\xfe\x97\x54\x95\x5d\x3f\xf8\x05\xf3\x73\xb3\xe4\x59\xca\
\x55\x57\xee\xe4\xfb\xf7\xee\xe2\x5f\xc0\xb2\x0d\xf5\xcc\x4d\xb3\
\xd9\x00\x00\x00\x22\x7a\x54\x58\x74\x53\x6f\x66\x74\x77\x61\x72\
\x65\x00\x00\x78\xda\x2b\x2f\x2f\xd7\xcb\xcc\xcb\x2e\x4e\x4e\x2c\
\x48\xd5\xcb\x2f\x4a\x07\x00\x36\xd8\x06\x58\x10\x53\xca\x5c\x00\
\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\
\x00\x00\x06\xe0\ \x00\x00\x06\xe0\
\x89\ \x89\
\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\
@ -6698,6 +6835,11 @@ qt_resource_name = "\
\x0b\x27\xb1\x67\ \x0b\x27\xb1\x67\
\x00\x65\ \x00\x65\
\x00\x64\x00\x69\x00\x74\x00\x2d\x00\x66\x00\x69\x00\x6e\x00\x64\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x64\x00\x69\x00\x74\x00\x2d\x00\x66\x00\x69\x00\x6e\x00\x64\x00\x2e\x00\x70\x00\x6e\x00\x67\
\x00\x18\
\x02\x7f\x27\x27\
\x00\x64\
\x00\x6f\x00\x63\x00\x75\x00\x6d\x00\x65\x00\x6e\x00\x74\x00\x2d\x00\x6f\x00\x70\x00\x65\x00\x6e\x00\x2d\x00\x72\x00\x65\x00\x6d\
\x00\x6f\x00\x74\x00\x65\x00\x2e\x00\x70\x00\x6e\x00\x67\
\x00\x14\ \x00\x14\
\x07\x40\xa2\xc7\ \x07\x40\xa2\xc7\
\x00\x61\ \x00\x61\
@ -6707,16 +6849,17 @@ qt_resource_name = "\
qt_resource_struct = "\ qt_resource_struct = "\
\x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x01\ \x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x01\
\x00\x00\x00\x00\x00\x02\x00\x00\x00\x3a\x00\x00\x00\x02\ \x00\x00\x00\x00\x00\x02\x00\x00\x00\x3b\x00\x00\x00\x02\
\x00\x00\x07\x66\x00\x00\x00\x00\x00\x01\x00\x01\x65\x2f\ \x00\x00\x07\x66\x00\x00\x00\x00\x00\x01\x00\x01\x65\x2f\
\x00\x00\x02\xfc\x00\x00\x00\x00\x00\x01\x00\x00\x8c\xea\
\x00\x00\x02\xfc\x00\x00\x00\x00\x00\x01\x00\x00\x93\x6d\ \x00\x00\x02\xfc\x00\x00\x00\x00\x00\x01\x00\x00\x93\x6d\
\x00\x00\x02\xfc\x00\x00\x00\x00\x00\x01\x00\x00\x8c\xea\
\x00\x00\x00\x4c\x00\x00\x00\x00\x00\x01\x00\x00\x10\x55\ \x00\x00\x00\x4c\x00\x00\x00\x00\x00\x01\x00\x00\x10\x55\
\x00\x00\x00\xae\x00\x00\x00\x00\x00\x01\x00\x00\x19\xb2\ \x00\x00\x00\xae\x00\x00\x00\x00\x00\x01\x00\x00\x19\xb2\
\x00\x00\x04\xfa\x00\x00\x00\x00\x00\x01\x00\x01\x06\xfc\ \x00\x00\x04\xfa\x00\x00\x00\x00\x00\x01\x00\x01\x06\xfc\
\x00\x00\x06\xea\x00\x00\x00\x00\x00\x01\x00\x01\x53\xe8\ \x00\x00\x06\xea\x00\x00\x00\x00\x00\x01\x00\x01\x53\xe8\
\x00\x00\x05\xee\x00\x00\x00\x00\x00\x01\x00\x01\x26\x17\ \x00\x00\x05\xee\x00\x00\x00\x00\x00\x01\x00\x01\x26\x17\
\x00\x00\x00\x26\x00\x00\x00\x00\x00\x01\x00\x00\x06\x37\ \x00\x00\x00\x26\x00\x00\x00\x00\x00\x01\x00\x00\x06\x37\
\x00\x00\x07\xe6\x00\x00\x00\x00\x00\x01\x00\x01\x83\xf1\
\x00\x00\x03\xb6\x00\x00\x00\x00\x00\x01\x00\x00\xbb\x53\ \x00\x00\x03\xb6\x00\x00\x00\x00\x00\x01\x00\x00\xbb\x53\
\x00\x00\x07\x80\x00\x00\x00\x00\x00\x01\x00\x01\x6b\x13\ \x00\x00\x07\x80\x00\x00\x00\x00\x00\x01\x00\x01\x6b\x13\
\x00\x00\x00\xda\x00\x00\x00\x00\x00\x01\x00\x00\x1e\xc1\ \x00\x00\x00\xda\x00\x00\x00\x00\x00\x01\x00\x00\x1e\xc1\
@ -6737,7 +6880,7 @@ qt_resource_struct = "\
\x00\x00\x01\x18\x00\x00\x00\x00\x00\x01\x00\x00\x2a\x0a\ \x00\x00\x01\x18\x00\x00\x00\x00\x00\x01\x00\x00\x2a\x0a\
\x00\x00\x00\xfc\x00\x00\x00\x00\x00\x01\x00\x00\x24\xd2\ \x00\x00\x00\xfc\x00\x00\x00\x00\x00\x01\x00\x00\x24\xd2\
\x00\x00\x06\x56\x00\x00\x00\x00\x00\x01\x00\x01\x3e\x21\ \x00\x00\x06\x56\x00\x00\x00\x00\x00\x01\x00\x01\x3e\x21\
\x00\x00\x07\xe6\x00\x00\x00\x00\x00\x01\x00\x01\x83\xf1\ \x00\x00\x08\x1c\x00\x00\x00\x00\x00\x01\x00\x01\x8c\x61\
\x00\x00\x03\x9e\x00\x00\x00\x00\x00\x01\x00\x00\xb3\xeb\ \x00\x00\x03\x9e\x00\x00\x00\x00\x00\x01\x00\x00\xb3\xeb\
\x00\x00\x02\xb4\x00\x00\x00\x00\x00\x01\x00\x00\x80\xa3\ \x00\x00\x02\xb4\x00\x00\x00\x00\x00\x01\x00\x00\x80\xa3\
\x00\x00\x02\x0c\x00\x00\x00\x00\x00\x01\x00\x00\x5f\x71\ \x00\x00\x02\x0c\x00\x00\x00\x00\x00\x01\x00\x00\x5f\x71\