summaryrefslogtreecommitdiffstats
path: root/DesktopEffects
diff options
context:
space:
mode:
authortpearson <tpearson@283d02a7-25f6-0310-bc7c-ecb5cbfe19da>2010-03-11 08:10:59 +0000
committertpearson <tpearson@283d02a7-25f6-0310-bc7c-ecb5cbfe19da>2010-03-11 08:10:59 +0000
commit19f9c3f434e0648b1952102c819ebee45de6e1e3 (patch)
treee913a90912ca3f51fa0db0c048df3595f4b6f1d7 /DesktopEffects
downloaddesktop-effects-tde-19f9c3f434e0648b1952102c819ebee45de6e1e3.tar.gz
desktop-effects-tde-19f9c3f434e0648b1952102c819ebee45de6e1e3.zip
Added KDE3 version of Desktop Effects
git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/applications/desktop-effects-kde@1101884 283d02a7-25f6-0310-bc7c-ecb5cbfe19da
Diffstat (limited to 'DesktopEffects')
-rw-r--r--DesktopEffects/DesktopEffectsCommon.py230
-rw-r--r--DesktopEffects/DesktopEffectsDialog.py2777
-rwxr-xr-xDesktopEffects/DesktopEffectsKDE.py149
-rwxr-xr-xDesktopEffects/DesktopEffectsKDE4.py146
-rw-r--r--DesktopEffects/DesktopEffectsQt4Dialog.py225
-rw-r--r--DesktopEffects/__init__.py0
6 files changed, 3527 insertions, 0 deletions
diff --git a/DesktopEffects/DesktopEffectsCommon.py b/DesktopEffects/DesktopEffectsCommon.py
new file mode 100644
index 0000000..2212b02
--- /dev/null
+++ b/DesktopEffects/DesktopEffectsCommon.py
@@ -0,0 +1,230 @@
+# -*- coding: utf-8 -*-
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License as
+# published by the Free Software Foundation; either version 2 of
+# the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+#
+# Copyright 2007-2008 Martin Böhm <martin.bohm@kubuntu.org>
+# Copyright 2007-2008 Michael Anderson <nosrednaekim@gmail.com>
+
+# a class hosting the desktop-independent methods for the Desktop
+# Effects Dialog
+
+import sys
+import os
+from optparse import OptionParser
+
+# for adept batch launching
+import subprocess
+# for compiz-kde package checking
+import apt_pkg
+from apt.progress import OpProgress
+
+import gettext
+def _(str):
+ return unicode(gettext.gettext(str), 'UTF-8')
+def __(catalog,str):
+ return unicode(gettext.dgettext(catalog, str), 'UTF-8')
+def utf8(str):
+ if isinstance(str, unicode):
+ return str
+ return unicode(str, 'UTF-8')
+
+class DesktopEffectsCommon(object):
+ def __init__(self):
+ self.action = 0
+ self.ibText = ""
+ self.check()
+ self.DATADIR = "/opt/kde3/share/apps/desktop-effects-kde/"
+
+ def checkInstalled(self):
+ progress = OpProgress()
+ cache = apt_pkg.GetCache(progress)
+ for pkg in cache.Packages:
+ if pkg.Name == "compiz-kde-kde3":
+ if pkg.CurrentVer is not None:
+ return True
+ # otherwise
+ return False
+
+ def checkEnabled(self):
+ '''checks if the compizasWM file is present, and if so, reads what mode we are in'''
+ if os.path.exists(os.path.expanduser("~/.kde3/share/config/compizasWM")):
+ compizasWM = open(os.path.expanduser("~/.kde3/share/config/compizasWM"))
+ state = compizasWM.readline()
+ return state
+ else:
+ return False
+
+ def check(self):
+ ''' checks the state and changes the UI accordingly. '''
+ self.installed = self.checkInstalled()
+ self.enabled = self.checkEnabled()
+ if(self.installed == True):
+ self.ibText = _("&Remove Desktop Effects")
+ self.showWarning()
+ self.enable()
+ self.pText = _("The Compiz engine is installed in your system.")
+ # remove, not install
+ self.rm = True
+ else:
+ self.pText = _("In order for Compiz Desktop Effects to work,"
+ " the Compiz engine must be installed on your system.")
+ self.ibText = _("&Install Desktop Effects")
+ self.hideWarning()
+ self.disable()
+ # install, not remove
+ self.rm = False
+ #self.effectsBox.setDisabled(True)
+
+ def showWarning(self):
+ ''' shows the warning information, should be implemented in the UI class '''
+ raise NotImplementedError
+
+ def hideWarning(self):
+ ''' hides the warning, should be implemented in the UI class '''
+ raise NotImplementedError
+
+ def disable(self):
+ ''' disables the options, should be implemented in the UI '''
+ raise NotImplementedError
+
+ def enable(self):
+ ''' enables the options, should be implemented in the UI '''
+ raise NotImplementedError
+
+ def done(self):
+ ''' action to be done after the user clicks the "cancel" button '''
+ print "signalled" # DEBUG
+ self.close()
+
+ def apply(self):
+ ''' action to be done after the user clicks the "apply button '''
+ print "apply clicked" #DEBUG
+ if self.action > 0:
+ if self.action == 1:
+ self.disableEffects()
+
+ elif self.action == 2:
+ self.enableStandardEffects()
+ elif self.action == 3:
+ self.enableExtraEffects()
+ elif self.action == 4:
+ self.enableCustomEffects()
+ if not self.enabled and not self.action == 1:
+ os.spawnl(os.P_NOWAIT, "/opt/kde3/bin/compiz", "--replace")
+ self.enabled = True
+
+ def btnInstallClicked(self):
+ if self.installed == True:
+ self.remove()
+ return
+ try:
+ ''' Installs the Compiz package. Not very nice as it is distribution dependent. '''
+ subprocess.call(['kdesudo', '-c' '/opt/kde3/bin/adept_batch install compiz-kde-kde3 compiz-fusion-plugins-main-kde3 compiz-fusion-plugins-extra-kde3'])
+ except:
+ subprocess.call(['kdialog', '--sorry', 'Adept Batch is not installed on this system'])
+ self.check()
+
+
+ # the functions toggled by radio boxes
+ def noEffects(self):
+ print "radio toggled" # DEBUG
+ self.action = 1
+# self.apply()
+ def standardEffects(self):
+ print "radio toggled" # DEBUG
+ self.action = 2
+# self.apply()
+ def extraEffects(self):
+ print "radio toggled" # DEBUG
+ self.action = 3
+ def customEffects(self):
+ print "radio toggled" # DEBUG
+ self.action = 4
+# self.apply()
+
+ def remove(self):
+ removeAnswer = subprocess.call(['kdialog', "--warningyesno", "Are you sure you wish to remove Compiz KDE?"])
+ if removeAnswer == 0:
+ try:
+ ''' Remove the Compiz package. Not very nice as it is distribution dependent. '''
+ subprocess.call(['kdesudo', '-c' '/opt/kde3/bin/adept_batch remove compiz-kde-kde3 compiz-fusion-plugins-main-kde3 compiz-fusion-plugins-extra-kde3'])
+ except:
+ subprocess.call(['kdialog', '--sorry', 'Adept Batch is not installed on this system'])
+
+
+ def disableEffects(self):
+ '''remove compiz as the default WM'''
+ os.remove(os.path.expanduser("~/.kde3/share/config/compizasWM"))
+ self.enabled = False
+
+
+ def enableStandardEffects(self):
+ '''copy the .ini to Default.ini and enable compiz as default WM'''
+ code = os.system('mkdir -p ~/.config/compiz/compizconfig')
+ try:
+ enable = open(os.path.expanduser("~/.kde3/share/config/compizasWM"),"w")
+ if enable.readline() == "custom":
+ customeffects = open(os.path.expanduser("~/.config/compiz/compizconfig/Default.ini"),"r")
+ backupfile = open(os.path.expanduser("~/.config/compiz/compizconfig/Custom.ini"),"w")
+ backupfile.write(customeffects)
+ backupfile.close()
+ customeffects.close()
+ except:
+ print "error"
+ enable.write("standardeffects")
+ enable.close()
+ config = open(os.path.join(self.DATADIR,"MediumEffects.ini"),"r")
+ dest = open(os.path.expanduser("~/.config/compiz/compizconfig/Default.ini"),"w")
+ dest.write(config.read())
+ dest.close()
+ config.close()
+ print "standardEffects enabled" #DEBUG
+
+ def enableExtraEffects(self):
+ ''' copy the extraeffects.ini to Default.ini and enable compiz as defaultWM'''
+ code = os.system('mkdir -p ~/.config/compiz/compizconfig')
+ if os.path.exists(os.path.expanduser("~/.kde3/share/config/compizasWM")):
+ enable = open(os.path.expanduser("~/.kde3/share/config/compizasWM"),"r")
+ if enable.readline() == "custom":
+ customeffects = open(os.path.expanduser("~/.config/compiz/compizconfig/Default.ini"),"r")
+ backupfile = open(os.path.expanduser("~/.config/compiz/compizconfig/Custom.ini"),"w")
+ backupfile.write(customeffects)
+ backupfile.close()
+ customeffects.close()
+ enable.close()
+
+ enable = open(os.path.expanduser("~/.kde3/share/config/compizasWM"),"w")
+ enable.write("extraeffects")
+ enable.close()
+ config = open(os.path.join(self.DATADIR,"HighEffects.ini"),"r")
+ dest = open(os.path.expanduser("~/.config/compiz/compizconfig/Default.ini"),"w")
+ dest.write(config.read())
+ dest.close()
+ config.close()
+ print "extraEffects enabled" #DEBUG
+
+ def enableCustomEffects(self):
+ code = os.system('mkdir -p ~/.config/compiz/compizconfig')
+ try:
+ config = open(os.path.expanduser("~/.config/compiz/compizconfig/Custom.ini"),"r")
+ except:
+ print "no custom effects file, creating blank .ini" #DEBUG
+ config = open(os.path.join(self.DATADIR,"BlankEffects.ini"),"r")
+ enable = open(os.path.expanduser("~/.kde3/share/config/compizasWM"),"w")
+ enable.write("custom")
+ enable.close()
+ dest = open(os.path.expanduser("~/.config/compiz/compizconfig/Default.ini"),"w")
+ dest.write(config.read())
+ dest.close()
+ config.close()
diff --git a/DesktopEffects/DesktopEffectsDialog.py b/DesktopEffects/DesktopEffectsDialog.py
new file mode 100644
index 0000000..69d70d1
--- /dev/null
+++ b/DesktopEffects/DesktopEffectsDialog.py
@@ -0,0 +1,2777 @@
+# -*- coding: utf-8 -*-
+
+# Form implementation generated from reading ui file 'data/DesktopEffectsDialog.ui'
+#
+# Created: Pá lis 2 18:10:24 2007
+# by: The PyQt User Interface Compiler (pyuic) 3.17.3
+#
+# WARNING! All changes made in this file will be lost!
+
+
+import sys
+from qt import *
+from kdecore import KCmdLineArgs, KApplication
+from kdeui import *
+
+
+image0_data = \
+ "\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\x07" \
+ "\x26\x49\x44\x41\x54\x58\x85\xb5\x97\x6b\x6c\x14" \
+ "\xd7\x15\x80\xbf\x99\x9d\x7d\xd9\xbb\xf6\x62\x7b" \
+ "\xf1\x62\x13\x6c\x20\x41\xd0\x3a\x81\x38\x85\xb8" \
+ "\x50\xc0\xa1\x91\x53\xd1\xa6\xaa\x28\x6a\x09\xfc" \
+ "\x71\xa5\xa4\xad\xda\x28\x49\xa5\xfe\x68\xa5\x28" \
+ "\x09\x12\xad\xaa\xa6\x0d\x28\x69\xa3\x0a\x50\xa8" \
+ "\x94\x82\x41\x49\x5d\x8a\xa1\x90\x50\x10\x2a\xa2" \
+ "\xa6\xc1\x06\x1b\xdb\xb1\x63\x03\x7e\x2d\x6b\xb3" \
+ "\xd8\xfb\x7e\x8c\x77\x67\xe7\xf6\xc7\xac\x1f\x0b" \
+ "\x86\x60\xa5\xbd\xd2\xd1\x3c\x56\x7b\xbf\xef\x9c" \
+ "\xb9\x73\x66\x06\xe6\x30\x44\x23\x2e\xd1\xc8\x1b" \
+ "\xa2\x91\xa0\x68\xe4\xc0\x9d\xbf\x6b\x47\x70\xa5" \
+ "\x0f\xf3\xc6\xc4\x5f\x70\xcd\x65\xde\x07\x85\xd7" \
+ "\x8b\x46\x82\xa2\xe5\x51\x21\x42\xdb\x85\x68\xb2" \
+ "\x8a\x83\x3f\x63\xf3\x1d\xf0\x2b\xa9\xa3\xc5\x22" \
+ "\xb4\x9f\xce\xcb\xbb\x28\xfe\x5f\x82\xfb\xc5\xbf" \
+ "\x96\x0a\x11\xfa\x89\x10\xe2\x17\x42\x88\x97\x84" \
+ "\xe8\x5d\x2b\x82\xef\xd3\x02\xe4\x69\x47\x70\xa5" \
+ "\x1b\xb8\xa2\x35\xaf\x13\x42\xbc\x2d\x52\x97\x6b" \
+ "\xc5\xed\x3f\xe0\xf5\xbd\x45\xf5\xe7\xcd\x2f\xdd" \
+ "\x07\x5c\x0b\xbc\x4e\x61\x45\x2d\x8f\x6d\x85\x92" \
+ "\x72\x20\x96\x8d\x04\xa4\x55\x38\x73\x98\x73\x97" \
+ "\x62\x3f\xfd\xda\x23\xbc\x20\x55\x6e\x58\x65\xaa" \
+ "\xd9\x01\x04\x81\x10\xa9\xee\x4b\x84\x4e\x9d\x89" \
+ "\xf6\xfb\xa9\xab\xf9\x0d\x17\x1f\x58\x40\x34\x52" \
+ "\x09\x1c\x20\xaf\xb4\x96\x15\xdb\x60\xd1\x1a\x20" \
+ "\x9a\x8d\x18\x10\x07\x61\x08\x88\xbe\xab\x64\x3a" \
+ "\x5b\xa0\xa2\x16\xa5\xa6\x3e\x0b\x0f\x02\x11\x48" \
+ "\xc7\x98\xe8\xf9\x8c\xd0\x3f\x2f\x12\x0c\xa4\x7f" \
+ "\xb4\x62\x17\x7b\xef\x2b\x90\x05\xbf\x8e\xd9\x59" \
+ "\xcf\xc3\xdf\x87\xe5\xcf\x19\x13\xe5\xc0\xb3\x02" \
+ "\x71\x3f\xe2\xd2\x19\xf4\x70\x08\x21\x29\x64\xa4" \
+ "\x22\xcc\x6b\xb7\x23\x17\x3b\x80\x10\xe8\x51\x50" \
+ "\x13\xa0\xc6\x49\xfb\x46\xb9\xd5\xf4\x1f\x46\x6f" \
+ "\x6b\xaf\xae\xde\xcd\xaf\xee\x14\x90\x67\xec\xd7" \
+ "\x53\x52\x53\xcf\x33\xa7\x61\xf9\xf3\x40\x06\xd0" \
+ "\x67\x44\x06\x12\x41\x68\x3d\x85\x38\x7d\x18\x61" \
+ "\xb1\x63\x7a\x72\x13\xca\xfc\xf9\x98\x44\x90\xf8" \
+ "\xb1\x3d\x64\xc6\xfa\x01\x15\xb4\x14\xa4\x27\x20" \
+ "\x9d\xc2\xec\xb4\xe2\xa9\xab\xc2\x53\x6a\xdf\xd5" \
+ "\xf6\x32\x0d\xf7\x13\xf8\xb3\x1e\xea\x8e\x90\x0e" \
+ "\x65\xe1\x33\x22\x1d\x87\x9e\x33\x70\x76\x3f\xc4" \
+ "\xc3\x48\x5f\x5a\x83\x5c\xf1\x08\x98\x2d\x60\xb5" \
+ "\xa1\x14\xcf\xc3\x3a\xdf\x49\xe4\xe8\x41\xd4\x8e" \
+ "\x8e\x29\xb8\xb1\x9d\x40\xb1\x48\x94\xad\x2f\xa7" \
+ "\x70\x9e\x79\xdb\x85\xe7\xf9\xe0\xea\x8f\xa7\x6f" \
+ "\xd3\x29\x01\x69\x0b\x03\x9a\x1a\x7e\x9b\xee\x3f" \
+ "\xe6\x66\x7f\xfd\x34\x7c\xb4\x13\x86\x5a\xa0\x6c" \
+ "\x09\x78\x16\x81\xcd\x6e\xc0\x15\x0b\x58\x6c\x60" \
+ "\xb5\x63\x59\xe0\xc6\xb9\xfc\x21\xc2\x1f\x9f\x27" \
+ "\x71\xb5\x77\x86\x84\x21\x22\xa3\x51\xb9\xde\x45" \
+ "\xf9\x42\x65\x6b\x34\xc9\x11\xc0\x04\xa0\x64\x1b" \
+ "\x4a\x3b\xd0\x06\xfc\x5e\x1f\x6c\x7a\x49\xae\xd8" \
+ "\x54\x40\x62\x10\xba\x0f\x42\x3a\x02\x2e\x37\xe4" \
+ "\xbb\xc0\x96\x67\x80\x27\xe1\xe6\xac\x80\xae\x83" \
+ "\x6c\x42\xc9\x73\x50\xb4\xa1\x8a\xf1\xe6\x6e\x12" \
+ "\x7d\x5e\x4a\x6a\x2a\x21\x35\x2d\x91\x1c\x53\x89" \
+ "\x8c\x66\xe8\xf2\xd3\x0c\x54\x02\xd7\xa5\xac\x40" \
+ "\x3d\x85\x55\x10\xee\x04\x08\x61\x76\xb8\xc8\x24" \
+ "\xc1\xee\x84\xfc\x02\xb0\xe6\x19\x70\x5b\x9e\x91" \
+ "\xfd\xcc\xe3\x91\x41\x63\xc1\x99\x4c\x20\x1b\xa1" \
+ "\x6b\x82\x9b\x47\x5b\x30\xe7\x9b\xf1\xac\x76\x43" \
+ "\x32\x41\x72\x34\xc2\xb5\x33\x61\x2e\x0e\x8a\x9d" \
+ "\x3f\x3c\x49\x13\x30\x00\x8c\xcb\xd2\x16\x7e\x10" \
+ "\x88\xf1\x21\xe8\xf0\xcc\x71\xd8\xf4\xae\x8b\x05" \
+ "\xd9\xfe\x61\xb1\x4d\x67\x3a\x99\x75\xce\xb1\x0d" \
+ "\xcc\x79\x60\x35\x2e\xc3\x64\xc8\x05\x4e\xca\x9f" \
+ "\xdb\x88\xb0\x39\xb9\x7e\xf4\x06\x31\x5f\x6c\x56" \
+ "\x78\xce\x6d\xd8\xb1\x87\x9f\x57\x2d\x75\xbc\xc9" \
+ "\xfa\x57\xa1\xd0\x09\xad\xfb\xd1\xbd\x5d\x48\x9e" \
+ "\x0a\x24\x67\xe1\x8c\xac\xed\xc6\xd6\x9a\x07\x4a" \
+ "\x31\x8c\x0d\x82\x16\x01\x93\x32\x55\x81\xa9\x6a" \
+ "\x98\x4c\xf4\xfd\xee\x38\xf1\xc1\x00\xe9\x34\x51" \
+ "\x6f\x88\xa6\x7c\x19\x6f\xbe\xcc\x48\x46\xa3\x4d" \
+ "\x64\x68\xcb\x69\x44\xc3\xfb\x78\x71\xa1\xc7\xfe" \
+ "\x0e\x35\x3b\xa0\xc4\x85\x7e\xbd\x85\xf4\x27\xe7" \
+ "\x31\xaf\xa8\x42\x2e\x72\xe7\xc2\x2d\x05\x20\x95" \
+ "\x43\xa4\x0f\x32\xc1\x3b\xc0\x0a\x91\xce\x61\x7c" \
+ "\x7f\xbd\x88\x62\x37\xe1\x7e\xac\x04\x99\x34\x5a" \
+ "\x38\x41\xa8\x3f\x86\xf7\x8a\x4a\x46\x23\xdc\x17" \
+ "\xe2\x9b\x77\x75\xc2\xf6\xdd\x7c\xbb\xaa\x9c\xbf" \
+ "\x53\xfd\x14\xb2\xa7\x1c\xad\xf7\x53\xd4\xf6\xab" \
+ "\xd8\x6b\x6a\x30\x95\x7a\x8c\x32\xdb\xf2\x41\x9e" \
+ "\x8f\x48\xb9\x49\x7d\x76\x02\xeb\x52\xf7\x94\x40" \
+ "\xe2\xc6\x2d\x6e\x9d\xbc\x8c\x16\x49\xb0\xa0\x6e" \
+ "\x05\x0e\x8f\x0d\x92\x71\xb4\x60\x18\xdf\xbf\x47" \
+ "\xb9\x79\x29\xc2\xc0\x98\x38\xf4\xdb\x76\xf6\xb5" \
+ "\x8d\x13\x9a\xf5\x59\x90\x3e\x2c\x89\x4c\x1a\x4c" \
+ "\x55\xd5\x28\x25\xc5\x68\x3e\x1f\xd1\xd6\x6e\xec" \
+ "\x4f\xae\xc6\xf6\xe8\x97\x11\xba\x0d\xb5\xa3\x17" \
+ "\xb5\xe3\x02\x62\x22\x81\x75\xd9\x32\x2c\x2b\xd7" \
+ "\xe0\x3b\x74\x96\x89\xb1\x18\xee\xba\x6a\xe6\xad" \
+ "\x2c\x87\x64\x0c\x92\x31\x46\xce\x5e\x67\xe8\xf4" \
+ "\x30\x37\x03\x99\xa6\xf7\x7b\xd8\x77\x74\x00\x1f" \
+ "\xe0\x07\x7c\xb3\x0a\xa4\x0e\x2b\x42\x29\xc8\x27" \
+ "\xe9\x8f\x23\xb9\x8a\xb0\x2f\x29\x43\x1b\x0b\x10" \
+ "\xb8\xe2\xc5\xbe\xaa\x8a\xcc\xc8\x20\x7a\x34\x0c" \
+ "\x80\xae\x41\x7c\x0c\x26\x54\x3b\xf3\x36\xac\xc5" \
+ "\xbd\xf9\x09\xd0\x23\x90\x8c\x31\x76\xee\x53\x86" \
+ "\x8f\x77\x93\xf0\x27\x39\xd4\xcb\xf6\x77\x3b\xe9" \
+ "\xcd\x2e\x3e\x1f\x90\xca\x59\x84\x33\x87\xda\x60" \
+ "\x15\xd6\x72\x37\x42\x17\x44\xae\xdd\x46\xcf\xc8" \
+ "\x98\x9d\x56\x24\x2d\x45\xc4\x97\x44\x08\xb0\x16" \
+ "\x80\x1a\x06\x35\xe9\xa0\x70\xed\xb7\x98\xb7\x71" \
+ "\x1d\x26\xbb\x0a\x04\x88\x76\x77\xe3\xfd\xe0\x22" \
+ "\x22\x38\xce\xc2\x95\x56\xda\xff\x16\x63\xc3\x31" \
+ "\xbe\x02\x74\x03\x89\x99\x2c\x65\x36\x01\x1d\x13" \
+ "\xd8\xf3\x91\x90\x28\x5c\xe9\x24\x15\x49\x92\x0a" \
+ "\x24\x51\xe3\x02\x2d\x9d\x42\x4b\x66\x48\x04\x21" \
+ "\xa3\x81\xb3\x7a\x03\x26\x57\x29\xc9\xa1\x9b\x68" \
+ "\x71\x3f\xb7\x3e\x3a\x8b\x3a\xe4\xa5\xac\xba\x00" \
+ "\xf7\x46\x37\x20\xc8\x68\xb1\xc9\xa9\x13\x77\xb2" \
+ "\x66\x17\x10\x26\x63\xa1\x49\x46\x81\x2c\x76\x07" \
+ "\x16\x0f\x38\x90\x28\x96\x40\x8b\xa5\x48\x4f\x94" \
+ "\xa0\x05\xae\x91\x1c\x6b\x21\xd5\xd9\xc2\xf8\x70" \
+ "\x1c\x5d\x03\xd7\x62\x07\xa5\x4f\x2f\x01\x21\x8c" \
+ "\xc0\x10\xbd\xd7\xb8\x87\x80\x0c\x76\xc7\x8c\x0b" \
+ "\x24\x65\xf7\x8d\x13\x8a\xdd\x81\xa2\x3c\x04\xc5" \
+ "\x11\x9c\x0f\x0b\x10\x50\xfa\x55\x31\x03\x6a\x9c" \
+ "\x33\xb6\x02\xa1\xcf\x51\x40\x4b\x02\x4a\x01\x98" \
+ "\x33\x53\x55\x98\x96\xc8\xee\xcb\x36\xa3\x4a\x53" \
+ "\xc0\xe9\x8c\x73\x45\xc4\xbd\xe9\xf7\x12\x98\x18" \
+ "\x0f\xb7\x85\x2e\x74\xad\x72\x6d\x5a\x0d\x56\x91" \
+ "\x93\xfd\x94\x90\xb0\x41\x26\x2f\x37\xe3\xbb\x64" \
+ "\x26\x2b\x31\x47\x01\x5d\xe3\xa9\xe1\x8e\xfe\x0f" \
+ "\x93\xb7\xc3\x5f\x2f\xdd\xfa\x0d\xe4\x12\xeb\xf4" \
+ "\x8f\x93\x02\x9a\x0d\x44\x5e\x4e\xa9\xef\xca\x3a" \
+ "\x0d\xc1\xb6\xe0\x7d\x05\xee\xf9\x52\x0a\x98\x5a" \
+ "\x5f\xe1\x48\x49\x59\xd1\x77\x17\xee\x78\x16\xd9" \
+ "\x53\x00\xb2\x94\xfd\x8b\x04\x9a\x0b\xd2\xfd\xcc" \
+ "\x5a\x7e\x35\x83\x3a\x18\xa3\xeb\xbd\x4f\xf0\xf7" \
+ "\xf8\x7d\x2d\xe3\xbc\xf5\x5a\x3b\xe7\x80\xd6\xb9" \
+ "\x08\x00\x70\xee\x05\xf6\x78\x0a\x2d\x2f\x57\x6c" \
+ "\xdb\x82\xed\xf1\x15\x46\xcb\x45\x02\x2c\x20\x6e" \
+ "\xe4\x56\x20\x99\x42\xed\x0b\x70\xa3\xb1\x1d\x6f" \
+ "\xf3\x40\x74\x38\x41\xc3\x3b\x3d\x34\xb4\x07\x19" \
+ "\x07\x86\x81\xd0\x9c\x05\x00\x4e\x6c\xe7\x95\x45" \
+ "\x45\xd6\xdd\x4b\x77\x6c\xc7\xbe\xea\x71\xe3\x81" \
+ "\x84\x8e\xf1\x54\x15\x10\x4f\xa0\x0d\xf9\x19\x3a" \
+ "\x79\x95\x1b\x27\xbb\x18\x8c\xb3\x37\x0b\x0e\x61" \
+ "\xb4\xdc\x5b\x18\xaf\x59\x77\x8d\x07\x12\x00\xf8" \
+ "\xc7\xf7\x78\xb1\xd8\xc2\xaf\x17\x6f\x7e\xd6\xe9" \
+ "\xfe\xce\x0e\xb0\xcb\x10\xed\x41\x1b\x18\x64\xe8" \
+ "\xd4\x25\x86\xce\xf7\x30\x1a\x4a\x35\x35\xf4\xb3" \
+ "\xef\x98\x17\x1f\x30\x72\x3f\xf0\x9c\x05\x00\xfe" \
+ "\xf4\x34\x1b\xab\x5c\x34\x2d\xae\xad\x73\x96\xad" \
+ "\x5f\xc7\x48\xf3\x59\x7a\x4f\x34\x13\x8c\xa6\x5a" \
+ "\x0f\x5c\x63\x67\x16\x9c\xd3\xeb\x3f\x6f\xcc\x49" \
+ "\x00\xa0\xa1\x8e\x9a\x52\x33\x1f\x2b\x66\x9b\x33" \
+ "\x10\x56\x5b\x2f\xf8\xd9\xfb\x66\x17\xad\x18\x1f" \
+ "\x0f\x03\x0f\x0a\xfe\x42\xe3\x97\x2b\x59\xb0\x7b" \
+ "\x35\xaf\x01\x4f\x00\xcb\x00\xe7\xff\x1d\x3a\xcb" \
+ "\x30\xc1\x17\xff\x02\xfe\x2f\x0f\x8e\x77\x9b\x06" \
+ "\xe9\x6c\x8c\x00\x00\x00\x00\x49\x45\x4e\x44\xae" \
+ "\x42\x60\x82"
+image1_data = \
+ "\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\x05" \
+ "\x54\x49\x44\x41\x54\x58\x85\xd5\x97\x5d\x6c\x14" \
+ "\x55\x14\xc7\x7f\x77\x66\x67\xf6\xb3\xed\x6e\xb7" \
+ "\x6c\xbb\x9b\x5d\x4a\x29\x4a\x2d\x05\x31\x7c\x2b" \
+ "\xd2\x18\x44\x04\xda\x0a\x41\x24\x2a\x51\xe1\x89" \
+ "\xa0\x84\x84\x44\xa3\x06\xa2\x44\xe3\x9b\x82\x3e" \
+ "\xf8\x42\x22\x89\x0f\x44\x23\x9a\x18\x2a\x1a\x13" \
+ "\x34\xf1\xa3\x04\x4b\x74\x21\xe1\x89\xef\x60\xc1" \
+ "\xd0\x16\x4a\xdb\xfd\x9a\xee\xce\xf5\x61\x66\xb7" \
+ "\x43\x69\xa1\x2d\x51\xe3\x4d\xfe\x99\xb3\x7b\x67" \
+ "\xce\xf9\xdf\x73\xff\xe7\xcc\x5c\x21\xa5\xe4\x7f" \
+ "\x39\x3a\x5b\xa8\xeb\x58\xc5\x74\x40\x01\xc4\x64" \
+ "\xfd\x28\x93\x79\x28\xd9\xca\x1e\xb7\xc2\xf9\x80" \
+ "\xc6\xb9\x8e\x55\xbc\x07\x78\x26\xeb\x4b\x9d\xe8" \
+ "\x03\x9d\x2d\xd4\x69\x0a\x5f\x85\x66\x83\xb7\x1a" \
+ "\xcc\x1e\x96\x96\x69\x7c\xf3\xeb\x35\x7a\x80\xc2" \
+ "\x44\xfd\x4d\x98\xb5\xae\x70\x40\xf5\x40\xf4\x71" \
+ "\x0b\xaa\x07\xd6\x26\xf8\x08\x28\x63\x12\x0b\x9a" \
+ "\x10\x81\x64\x2b\xeb\x04\x34\x17\x03\x17\x89\x04" \
+ "\x34\xe6\x7f\xf2\x08\x4f\x03\x5e\x26\xa8\x87\x09" \
+ "\x11\x10\x82\xbd\x9e\x6a\x08\x2d\x99\x03\x0b\x3b" \
+ "\x61\x61\x27\xa1\x25\x73\xf0\x54\xc3\xec\x10\xbb" \
+ "\x80\x72\x40\xfb\x47\x08\x24\x5b\xd9\x23\xa0\x36" \
+ "\xb6\x42\x81\x69\xbb\x41\x89\x58\x98\xb6\x9b\xd8" \
+ "\x0a\x05\xb7\x42\xb4\x7d\x39\x6f\x02\xbe\x89\xf8" \
+ "\x1d\xd7\x9e\x75\xb6\x50\xe7\x52\x38\x50\x39\x07" \
+ "\x4f\xd5\x9a\x8d\x50\xfd\x22\x20\x2d\xe8\x31\x74" \
+ "\xdf\x15\x86\xae\x9c\x46\xbb\x4e\x83\xcf\xc5\xf7" \
+ "\xc7\xba\xe9\x66\x9c\x82\x1c\x17\x81\x97\x67\xb2" \
+ "\x4f\xf3\xb2\x28\xf1\x4c\x19\xea\xac\x0f\x39\xf6" \
+ "\xdb\x55\xda\xdb\x3b\x39\x71\xe2\x2c\xf9\xbc\x49" \
+ "\xe2\xfe\x87\xf1\x68\x5f\x72\x33\x69\xb8\x63\x3a" \
+ "\xe1\x4f\xcf\xf1\x1d\x90\xb3\x59\xde\x1b\x81\x3f" \
+ "\x5a\x79\x4c\x15\xec\x8d\x2c\x53\x28\x5f\xfe\x2a" \
+ "\xd7\xf3\x0b\x38\x7a\x34\x89\x10\x02\x45\x51\xe8" \
+ "\xea\xea\x21\x18\x8e\x13\x99\x1a\x42\xde\xf8\x05" \
+ "\xf9\x27\x0d\x8d\x41\x4e\x7d\xdb\xc5\x59\x20\x7f" \
+ "\x37\xff\x77\xdd\x2b\x45\xb0\x57\x0f\x41\x64\xf5" \
+ "\x0c\xa8\x5c\x47\x36\x3b\x08\x80\x94\x12\xd3\x34" \
+ "\x01\xe8\xeb\xeb\x83\xca\x75\x44\x56\xd7\xa3\x87" \
+ "\x60\x61\x15\xbb\xb1\x04\xe9\xba\x27\x02\xc9\x56" \
+ "\x36\x0b\x78\x30\xda\x22\xa0\xe6\x15\x50\x75\x74" \
+ "\x5d\x22\xa5\x2c\x11\x30\x4d\x93\x70\x58\x07\x55" \
+ "\x87\xe8\x56\xa2\x2d\x02\xaf\xca\xcc\x83\xcb\x78" \
+ "\x09\xab\x2c\xef\x18\x63\xcc\xc9\x53\x6d\x04\x15" \
+ "\xc1\x07\xfe\x7a\x28\x5f\xb2\x0c\x02\xf3\x80\x2c" \
+ "\x55\x55\x1a\xaa\x2a\xc9\xe7\xf3\x25\xc4\xe3\x3e" \
+ "\x20\x0d\x81\x79\x94\x2f\x5a\x80\xbf\x1e\x1a\x2b" \
+ "\x78\xa3\x2d\x41\x82\xbb\x94\xe5\x98\x04\x4c\xc9" \
+ "\xdb\x40\x30\xfe\xbc\x0f\xa6\xbc\x00\x42\x02\x59" \
+ "\x20\x4b\x6d\x6d\x19\x86\x61\x60\x18\x06\xc1\xa0" \
+ "\x86\xdb\x3d\x04\x64\x40\x14\x20\xb2\x89\xf8\x73" \
+ "\x3a\x8a\xa0\x6c\x5b\x03\xaf\x03\x7e\xee\xa0\xb5" \
+ "\x51\x09\x74\xb6\x50\xa7\x08\x76\x54\x35\x83\x3e" \
+ "\x6d\x25\xe8\x09\x20\x65\x05\x21\x43\x2c\xa6\x91" \
+ "\xcd\x66\xc9\xe5\x72\xc4\x62\x9a\x3d\x97\x02\x06" \
+ "\xc0\x1d\x45\xaf\x7d\x94\xaa\x66\x88\x79\xd9\xb4" \
+ "\xbd\x81\x26\xc0\xcd\x18\x1d\x72\x54\x02\xba\xc2" \
+ "\x01\xd5\x0b\x91\xb6\x30\x54\x3c\xe1\x08\x90\x02" \
+ "\x06\x49\x24\x14\x32\x99\x0c\xe9\x74\x9a\x19\x33" \
+ "\x74\x2b\x30\xfd\x36\x06\x20\xd4\x4c\xa4\x35\x80" \
+ "\xea\x85\x67\xeb\x78\x1f\x08\x8c\x95\x85\xdb\x08" \
+ "\x94\xfa\xfd\x06\x50\x6b\x96\x83\xab\x6c\xd8\x31" \
+ "\x03\xc0\x20\xa1\x50\x8e\x50\x48\x92\x4a\xa5\xa8" \
+ "\xaf\x97\x8e\xf9\x7e\xe0\x06\xb8\xbc\xa8\x35\x8b" \
+ "\x88\x6e\xb8\xfb\x7b\xe2\xb6\x32\x11\x82\xbd\x9e" \
+ "\x04\x84\x9a\x6b\xc0\x3f\x1f\xb8\x3e\x0a\x57\x93" \
+ "\x78\xbc\x40\xa1\x60\x02\x7d\x58\x4d\xaf\x00\x0c" \
+ "\x01\x06\x90\x07\x7f\x23\xa1\x65\x9d\xf4\xfc\xd8" \
+ "\xcf\x6c\x93\x5d\xc0\xd7\x58\xcd\xc9\x70\xc6\xbb" \
+ "\x25\x2d\xc9\x56\xf6\x28\x82\xa7\xa6\x6e\x05\xbd" \
+ "\xee\x49\x70\x55\x62\xed\x7b\xd6\x46\x06\x48\x03" \
+ "\x59\xea\xea\x04\xb3\x66\xb9\xf0\xfb\xb3\xa5\xad" \
+ "\xb1\xae\x69\xcb\x16\x39\x50\x15\x3c\xe1\xcb\x0c" \
+ "\x74\x50\xb6\x26\x8e\xe7\xe0\x05\x7e\xb6\x09\xc8" \
+ "\xdb\x08\x9c\x6a\x23\x88\xe0\xb3\xca\xa5\x78\xaa" \
+ "\xd6\x4c\x05\xdf\x5c\xdb\x59\x8e\xa2\xf8\xac\xdf" \
+ "\x19\x20\x85\xae\x67\x46\x09\xee\xb4\x07\xc0\xe5" \
+ "\x46\x0f\xf6\x30\xd4\x9d\x45\xbb\x4a\xc3\xe5\x34" \
+ "\x87\xce\xf4\x73\x13\x47\x87\x2c\xe5\xd5\x94\xec" \
+ "\x73\xf9\xa8\x88\xac\x17\xe0\xbb\xcf\x4e\x7d\xaf" \
+ "\x0d\xa7\xdd\xcb\x91\x23\x97\x58\xb9\xf2\x24\x8b" \
+ "\x17\xff\xce\xfe\xfd\xe7\xc7\xb8\xb7\xcf\x82\xaf" \
+ "\x86\xc8\x7a\xd0\xfc\x94\xed\x6c\xe4\x1d\x46\x94" \
+ "\xa5\x0a\x8e\x7e\xdf\x06\xe5\x4b\xa2\xa0\x85\x47" \
+ "\xa4\x3e\xed\x40\x8a\x2d\x5b\xfe\xa2\xb7\x37\x8b" \
+ "\x61\x18\x74\x74\xdc\x64\xed\x5a\x93\xf2\xf2\xe1" \
+ "\xf9\xe1\x6c\xa5\x41\x31\x51\xbd\x06\xd2\x30\x90" \
+ "\x67\x68\x68\x0a\x72\xf2\x48\x17\xe7\x8a\x59\x70" \
+ "\x01\x28\x82\xb7\xf4\x29\x10\x6e\xd1\x40\x0f\x00" \
+ "\x3d\x36\xb7\xd1\xaa\x54\x92\x4e\x0f\x92\x4a\x99" \
+ "\x14\x0a\x05\x4c\xd3\x44\xca\x82\xbd\xad\x05\xc0" \
+ "\xb4\xe1\xb0\xdd\x3a\xe1\x16\x85\x1b\x3f\x99\xcc" \
+ "\x1d\x62\x27\xf0\x83\xad\x85\x21\x35\xd9\xca\x66" \
+ "\x45\xb0\x23\xbe\x1d\xbc\xd3\x03\xa0\x0a\xc7\xca" \
+ "\x8b\xc2\x73\x0a\x30\x43\x28\x64\x70\xf8\xb0\x41" \
+ "\x3e\x9f\x67\xfd\xfa\x21\x36\x6e\xcc\x95\xc4\x79" \
+ "\x3b\x72\x20\x0c\x14\x4d\xa2\x47\x4c\x32\xc7\x88" \
+ "\x35\x57\xd3\x7b\xe8\x12\x49\x60\x48\x9c\x6c\xe3" \
+ "\x62\xa0\x89\xda\xe9\xef\x02\x54\x80\x70\x61\x95" \
+ "\xab\x13\xd2\xbe\x9a\xa5\x2c\x0c\xc3\x1c\x61\x63" \
+ "\xaf\x5e\xde\x0a\x69\x65\xe4\xfc\x2e\xb8\x7e\x8a" \
+ "\xab\x0b\xda\x59\x08\x5c\x73\x09\xa8\x55\xfd\x90" \
+ "\x3a\x0d\x42\x29\xa6\x4d\x80\x28\xf6\x0c\x67\xef" \
+ "\xb0\xab\x47\xca\x92\x2d\x4b\x29\x77\xfe\x3f\x32" \
+ "\xf8\xf0\xfd\xaa\x1f\xdc\x0a\x51\xac\xaf\xe8\x3e" \
+ "\x57\xb6\xc0\xc7\x1c\x67\x5b\xff\x71\x10\x6a\x16" \
+ "\x14\xb5\x14\x5c\x38\x89\x38\x8e\x70\xd2\x49\xa4" \
+ "\x08\x21\x6e\x09\x84\xfd\xca\xbe\xe5\xa3\xc8\x36" \
+ "\x2f\x0c\xf2\x05\x96\xc0\x14\x01\x78\x5e\x6b\xe2" \
+ "\xa1\x2a\x37\x0f\x18\x26\x2e\x53\x4e\xfe\x98\x35" \
+ "\x9e\x71\xba\x8f\x2b\x9f\x5f\xe4\x12\x70\x03\xe8" \
+ "\x16\x36\x13\x37\x56\xaf\xd6\xb8\x87\x73\xde\x38" \
+ "\x87\xc4\xea\xd9\x19\x20\xe7\xdc\xe8\x22\x99\x7f" \
+ "\x63\x94\x94\x2b\xfe\xeb\xe3\xf9\xdf\xde\xac\x06" \
+ "\xdf\xae\x15\xd7\x56\x00\x00\x00\x00\x49\x45\x4e" \
+ "\x44\xae\x42\x60\x82"
+image2_data = [
+"100 100 2165 2",
+"cQ c #000000",
+"d8 c #000002",
+"da c #000004",
+"es c #000005",
+"dF c #000007",
+"d7 c #000008",
+"b7 c #000009",
+"d6 c #00000a",
+"dJ c #00000b",
+"dI c #00000c",
+"ew c #00000d",
+"cN c #00000e",
+"ev c #00000f",
+"df c #000010",
+"eu c #000011",
+"dK c #000012",
+"ec c #000013",
+"d2 c #000015",
+"cR c #000100",
+"ob c #000102",
+"bj c #000103",
+"wA c #000104",
+"bi c #000105",
+"ex c #000106",
+"eE c #000108",
+"m8 c #000110",
+"ed c #000112",
+"gG c #000115",
+"aM c #000200",
+"bk c #000201",
+"hf c #000202",
+"eZ c #000203",
+"xh c #000205",
+"eF c #000207",
+"s0 c #000209",
+"C1 c #00020b",
+"kI c #00020e",
+"dL c #000213",
+"aL c #000300",
+"eX c #000302",
+"eY c #000304",
+"s. c #000308",
+"fW c #00030a",
+"ee c #00030c",
+"gF c #000312",
+"aK c #000400",
+"mB c #000402",
+"rw c #000403",
+"D4 c #000405",
+"bl c #000500",
+"aJ c #000600",
+"vd c #000604",
+"aI c #000700",
+"aH c #000800",
+"aN c #000900",
+"p4 c #000a00",
+"lP c #000b00",
+"Et c #000c00",
+"uV c #000d00",
+"fH c #010000",
+"gj c #010002",
+"Cx c #010004",
+"b3 c #010005",
+"b2 c #010006",
+"b5 c #010008",
+"vP c #010009",
+"b6 c #01000a",
+"BQ c #01000b",
+"cL c #01000c",
+"sk c #01000d",
+"eb c #01000e",
+"cM c #01000f",
+"Af c #010010",
+"fh c #010011",
+"cK c #010100",
+"dc c #010101",
+"b4 c #010103",
+"e# c #010109",
+"ea c #01010b",
+"dH c #01010d",
+"cJ c #010200",
+"hi c #010204",
+"d9 c #010206",
+"eU c #010207",
+"bg c #010300",
+"bh c #010302",
+"C0 c #010310",
+"bf c #010400",
+"be c #010500",
+"lQ c #010504",
+"fT c #010600",
+"gE c #01060c",
+"nT c #010700",
+"lY c #010800",
+"oi c #010900",
+"uz c #010a00",
+"DT c #010d00",
+"BR c #010e00",
+"ws c #011000",
+"xD c #020001",
+"gh c #020008",
+"b8 c #02000b",
+"bY c #02000d",
+"gm c #02000e",
+"de c #020010",
+"yM c #020014",
+"vo c #020100",
+"b1 c #020106",
+"b0 c #020107",
+"bZ c #020109",
+"cI c #020200",
+"db c #020202",
+"cH c #020204",
+"pA c #02020a",
+"tL c #02020c",
+"dG c #02020e",
+"c# c #020300",
+"o2 c #020305",
+"hj c #020307",
+"eV c #020308",
+"er c #020400",
+"yp c #020403",
+"CZ c #020410",
+"xU c #020413",
+"oA c #020500",
+"rK c #020600",
+"fk c #020607",
+"CL c #020609",
+"uR c #020612",
+"fj c #020700",
+"wQ c #02070a",
+"c8 c #020800",
+"vN c #020900",
+"uG c #020a00",
+"qP c #020b00",
+"wl c #020d00",
+"kG c #020e00",
+"ie c #030000",
+"iV c #030002",
+"Dy c #030004",
+"yf c #030005",
+"xH c #030007",
+"if c #030009",
+"xI c #03000b",
+"Ce c #03000e",
+"Cd c #030010",
+"mV c #030011",
+"yo c #030013",
+"iW c #030102",
+"xE c #030106",
+"q8 c #03010c",
+"dg c #03010e",
+"v8 c #03010f",
+"fe c #030200",
+"eT c #030207",
+"fi c #030208",
+"cG c #03020a",
+"hh c #030212",
+"jC c #030300",
+"et c #030301",
+"vG c #030303",
+"bW c #030305",
+"uc c #03030b",
+"hk c #03030d",
+"f2 c #03030f",
+"c9 c #030400",
+"f0 c #030406",
+"eB c #030408",
+"yc c #030409",
+"bV c #030500",
+"wt c #030502",
+"jA c #030600",
+"fV c #03060b",
+"wk c #030708",
+"nI c #03070a",
+"vC c #030710",
+"fo c #030800",
+"Cz c #030802",
+"w4 c #030804",
+"dM c #03080e",
+"pH c #030900",
+"ig c #030a00",
+"he c #030e00",
+"w9 c #040000",
+"x. c #040005",
+"vO c #04000e",
+"ye c #040108",
+"Cy c #04010a",
+"fJ c #040116",
+"DR c #040205",
+"hW c #04020d",
+"cO c #04020f",
+"yL c #040210",
+"wE c #040301",
+"d3 c #040308",
+"hZ c #040309",
+"gk c #04030b",
+"o3 c #040311",
+"xF c #040400",
+"lu c #040402",
+"fI c #040404",
+"jm c #040406",
+"gH c #04040c",
+"ud c #040410",
+"kV c #040500",
+"eW c #040507",
+"eD c #040509",
+"f1 c #04050a",
+"Bn c #040600",
+"o5 c #040603",
+"fZ c #040605",
+"px c #040700",
+"pe c #040800",
+"Dw c #040809",
+"fl c #04080b",
+"m9 c #040811",
+"EF c #040900",
+"fL c #040a00",
+"zS c #040b00",
+"CM c #040b04",
+"Cr c #040d00",
+"EL c #041000",
+"D3 c #041100",
+"kl c #041200",
+"iU c #050004",
+"w8 c #050100",
+"hx c #050102",
+"vQ c #050209",
+"gi c #05020b",
+"gV c #05020d",
+"rg c #050217",
+"Di c #050304",
+"wd c #050308",
+"bX c #05030e",
+"hv c #050310",
+"iT c #050400",
+"fG c #050402",
+"cF c #050409",
+"cP c #05040a",
+"fF c #05040c",
+"DQ c #050500",
+"j6 c #050503",
+"kh c #050505",
+"h0 c #050507",
+"vw c #05050d",
+"AF c #050511",
+"mU c #050600",
+"d5 c #050601",
+"xs c #050608",
+"eA c #05060a",
+"e. c #05060b",
+"xC c #050700",
+"uT c #050702",
+"j4 c #050704",
+"xJ c #050800",
+"t# c #050801",
+"h2 c #050900",
+"oa c #050908",
+"fn c #05090a",
+"uw c #05090c",
+"f3 c #050a00",
+"z. c #050a06",
+"oQ c #050b00",
+"pd c #050d00",
+"hA c #050e00",
+"qg c #050f00",
+"t3 c #051000",
+"DS c #06000a",
+"Dx c #060200",
+"Dj c #060201",
+"wG c #060203",
+"CI c #060211",
+"xG c #060300",
+"jD c #06030a",
+"CK c #06030c",
+"fg c #060314",
+"Dh c #060405",
+"hy c #060409",
+"dh c #06040f",
+"gl c #060411",
+"dC c #060412",
+"C2 c #060501",
+"iD c #06050a",
+"dE c #06050b",
+"n0 c #06050d",
+"tU c #060513",
+"d4 c #060604",
+"jo c #060606",
+"ki c #060608",
+"py c #06060e",
+"By c #060701",
+"wz c #060702",
+"tx c #060709",
+"eC c #06070b",
+"o4 c #06070c",
+"pz c #060803",
+"fX c #060805",
+"v3 c #060807",
+"Eq c #060900",
+"uK c #06090e",
+"fm c #060910",
+"ca c #060a00",
+"fU c #060a09",
+"fM c #060c00",
+"gn c #060d00",
+"C3 c #060d06",
+"j3 c #060f00",
+"fO c #061000",
+"zx c #061400",
+"n. c #061500",
+"id c #070300",
+"CJ c #070311",
+"sN c #070415",
+"fK c #070417",
+"wF c #070508",
+"kU c #070510",
+"n1 c #070512",
+"dd c #070513",
+"iS c #070601",
+"fd c #070602",
+"ns c #07060b",
+"b9 c #07060c",
+"fE c #07060e",
+"d. c #070705",
+"wH c #070707",
+"d# c #070709",
+"ty c #07070f",
+"h1 c #070800",
+"jB c #070802",
+"o7 c #07080c",
+"nJ c #07081a",
+"fY c #070906",
+"o6 c #070908",
+"Cq c #070a00",
+"qu c #070c00",
+"vX c #070c08",
+"B# c #070d01",
+"fN c #070e00",
+"Es c #070f02",
+"B1 c #071000",
+"Ae c #071100",
+"u8 c #071400",
+"nt c #080516",
+"dD c #080611",
+"zf c #080613",
+"kj c #08070c",
+"di c #08070d",
+"yg c #08070f",
+"yd c #080717",
+"ni c #080806",
+"c. c #080808",
+"qe c #08080a",
+"hz c #080904",
+"z1 c #08090b",
+"dj c #08090d",
+"wP c #08090e",
+"vD c #080a05",
+"ve c #080a09",
+"nK c #080a17",
+"uy c #080b00",
+"kH c #080b12",
+"y9 c #080d09",
+"gW c #080f00",
+"rm c #081000",
+"rf c #081200",
+"lg c #081300",
+"cS c #081500",
+"hX c #090712",
+"qp c #090715",
+"qE c #09080d",
+"lt c #09080e",
+"hY c #090810",
+"ux c #090907",
+"ff c #090909",
+"ey c #090a0e",
+"uS c #090a1c",
+"Dv c #090b06",
+"Ap c #090c11",
+"qX c #090e00",
+"nL c #090e0a",
+"kW c #091000",
+"pV c #091100",
+"ic c #091300",
+"z2 c #091400",
+"vp c #091500",
+"xr c #091600",
+"aO c #091700",
+"qQ c #0a0718",
+"q7 c #0a090f",
+"j5 c #0a0a0a",
+"jn c #0a0a0c",
+"ez c #0a0b0f",
+"u9 c #0a0b10",
+"sO c #0a0c00",
+"iE c #0a0c01",
+"ta c #0a0c0b",
+"v9 c #0a0f08",
+"v2 c #0a0f0b",
+"wu c #0a1000",
+"ls c #0a1100",
+"Ed c #0a110a",
+"d1 c #0a1300",
+"Ee c #0a1400",
+"m7 c #0a1700",
+"uQ c #0a1900",
+"hw c #0b0704",
+"uU c #0b0917",
+"tz c #0b0a0f",
+"qf c #0b0b0b",
+"CY c #0b0c07",
+"pW c #0b0d0c",
+"vF c #0b0e00",
+"xV c #0b0e17",
+"dk c #0b0f12",
+"BP c #0b1000",
+"q6 c #0b1009",
+"bU c #0b1100",
+"Ep c #0b1200",
+"Cs c #0b1400",
+"EX c #0b1700",
+"aG c #0b1800",
+"vH c #0b1900",
+"sl c #0c091c",
+"yn c #0c0c0a",
+"cE c #0c1300",
+"tA c #0c1400",
+"mC c #0c1900",
+"m. c #0c1a00",
+"vg c #0c1b00",
+"iF c #0d1200",
+"y8 c #0d120c",
+"v4 c #0d1400",
+"rV c #0d1500",
+"hV c #0d1900",
+"v. c #0d1b00",
+"qD c #0d1c00",
+"rW c #0e0d13",
+"vf c #0e0e10",
+"hg c #0e101c",
+"Du c #0e1300",
+"rF c #0e1800",
+"tw c #0e1900",
+"rv c #0e1b00",
+"qd c #0e1c00",
+"o# c #0f1a00",
+"mA c #0f1b00",
+"gD c #0f1d00",
+"A2 c #101010",
+"vE c #101300",
+"sm c #101302",
+"Eb c #101600",
+"nr c #101700",
+"oz c #101900",
+"nH c #101b00",
+"fS c #101c00",
+"dN c #101f00",
+"iX c #110e15",
+"kk c #110e17",
+"lR c #111700",
+"Ct c #111a00",
+"wO c #111b00",
+"bm c #111c00",
+"uv c #111d00",
+"r9 c #111e00",
+"ef c #111f00",
+"pX c #112100",
+"jl c #121700",
+"bd c #121900",
+"cb c #121a00",
+"jp c #121b00",
+"fp c #121c00",
+"vn c #121d00",
+"rL c #121f00",
+"fP c #122000",
+"C4 c #122500",
+"xB c #131900",
+"ue c #131a00",
+"AN c #131b00",
+"pl c #131c00",
+"Cw c #131f00",
+"yy c #132300",
+"v7 c #141a00",
+"w3 c #141c00",
+"go c #141d00",
+"iC c #142100",
+"yz c #142400",
+"Bo c #151b00",
+"pw c #151d00",
+"tV c #151e00",
+"o1 c #151f00",
+"dB c #152000",
+"Cu c #152100",
+"sd c #152300",
+"fQ c #152400",
+"sj c #161e00",
+"iR c #162000",
+"tl c #162200",
+"sZ c #162300",
+"ah c #162400",
+"E7 c #162900",
+"nU c #171e00",
+"s6 c #172300",
+"fR c #172400",
+"ai c #172500",
+"ag c #172600",
+"o8 c #172700",
+"x# c #182100",
+"sM c #182200",
+"sD c #182600",
+"q9 c #192000",
+"qF c #192100",
+"s1 c #192200",
+"B2 c #192500",
+"nM c #192700",
+"sz c #1a2300",
+"Cv c #1a2600",
+"wW c #1b2200",
+"AE c #1b2203",
+"Ff c #1b2500",
+"eS c #1b2600",
+"mL c #1b2900",
+"af c #1b2b00",
+"xt c #1c2400",
+"s# c #1c2600",
+"gg c #1c2700",
+"AO c #1c2900",
+"aj c #1c2a00",
+"s5 c #1d2b00",
+"cc c #1d2d00",
+"fD c #1e2800",
+"fc c #1e2900",
+"w5 c #1f250b",
+"EG c #1f2800",
+"A3 c #202705",
+"ih c #202b00",
+"u2 c #202d00",
+"EM c #202f00",
+"DU c #203000",
+"CX c #212b00",
+"rG c #212c00",
+"gI c #212e00",
+"ms c #222d00",
+"vR c #223000",
+"vv c #223100",
+"BO c #232c00",
+"uL c #233300",
+"vc c #233800",
+"wc c #242e00",
+"pf c #243000",
+"aF c #243200",
+"oP c #243300",
+"aP c #243400",
+"tM c #252f00",
+"ak c #253300",
+"gC c #253500",
+"to c #263401",
+"lF c #263b00",
+"CH c #272f00",
+"gX c #273100",
+"f4 c #273200",
+"cT c #273700",
+"lX c #283200",
+"bT c #283300",
+"p3 c #283500",
+"EY c #283600",
+"Dz c #283a00",
+"gp c #293400",
+"e0 c #293700",
+"ae c #293a00",
+"eg c #293b00",
+"pB c #294100",
+"ze c #2a3400",
+"eq c #2a3600",
+"B. c #2a3700",
+"w7 c #2b3206",
+"Bm c #2b3209",
+"Fe c #2c3800",
+"rh c #2c3900",
+"nS c #2c3b00",
+"yW c #2c4300",
+"B0 c #2d3700",
+"Eo c #2d3800",
+"Ba c #2d3b00",
+"zy c #2d3d00",
+"hd c #2e3d06",
+"Bz c #2f3a00",
+"Dg c #2f3b00",
+"hl c #2f3d00",
+"eG c #314000",
+"kT c #323b02",
+"al c #324108",
+"tQ c #32410a",
+"t4 c #333e04",
+"cD c #343d04",
+"Bx c #343f00",
+"lh c #353d0a",
+"yq c #354100",
+"oH c #354200",
+"hU c #35430e",
+"D2 c #354800",
+"jz c #364200",
+"yG c #364502",
+"j7 c #364900",
+"Ea c #373f0c",
+"nu c #374300",
+"c7 c #374400",
+"wR c #374514",
+"mj c #374708",
+"lZ c #384205",
+"aE c #384800",
+"oo c #384900",
+"hB c #394500",
+"jk c #394507",
+"Aq c #39490b",
+"Ef c #394c00",
+"mT c #3a440f",
+"Dt c #3a4503",
+"Ag c #3a4c00",
+"h3 c #3b4506",
+"iY c #3b4508",
+"bc c #3b4510",
+"dl c #3b4d03",
+"bn c #3e4a08",
+"xg c #3e4a0c",
+"qR c #3e4c00",
+"am c #3e4e0d",
+"t9 c #3e4e10",
+"ad c #3e4f08",
+"Dk c #3e5600",
+"EE c #3f490c",
+"z0 c #3f4a08",
+"qo c #404f00",
+"Fl c #405800",
+"nj c #414b0e",
+"un c #414d0d",
+"aQ c #425500",
+"xK c #434d10",
+"hu c #435104",
+"B3 c #435200",
+"we c #435400",
+"lO c #445416",
+"EH c #454f12",
+"p9 c #455107",
+"gq c #455200",
+"z3 c #455517",
+"us c #45560f",
+"vW c #455701",
+"d0 c #46530d",
+"an c #46580c",
+"jE c #475315",
+"EZ c #475800",
+"lv c #495517",
+"yN c #495610",
+"uH c #4a580d",
+"j2 c #4b5813",
+"pc c #4c5a0f",
+"gY c #4d5a0a",
+"oR c #4d5a0b",
+"xi c #4d6011",
+"BN c #4f5c0d",
+"iB c #4f6210",
+"Cc c #506210",
+"DP c #525f1a",
+"vM c #52600b",
+"BA c #526011",
+"ac c #526514",
+"o9 c #526b05",
+"iG c #535f1d",
+"kg c #536011",
+"qq c #53620d",
+"kJ c #536211",
+"w6 c #545c2d",
+"zE c #54651e",
+"uF c #556713",
+"dO c #556817",
+"cC c #566314",
+"E# c #566415",
+"lf c #566720",
+"yV c #566e0c",
+"ib c #576613",
+"lG c #576d08",
+"yX c #576f0d",
+"AM c #586513",
+"dA c #586617",
+"ii c #58670a",
+"vB c #586e09",
+"A1 c #596132",
+"m6 c #596c1d",
+"z# c #596e0f",
+"cd c #597015",
+"mW c #5a690c",
+"tT c #5a6d1e",
+"lr c #5b6911",
+"zg c #5b6c1c",
+"Cf c #5b6d23",
+"qC c #5b6f18",
+"bS c #5c6b10",
+"x3 c #5c6e1c",
+"EK c #5c6e22",
+"yx c #5c6f1d",
+"uP c #5c720d",
+"pY c #5c750f",
+"lS c #5d6b13",
+"AP c #5d6e1e",
+"nh c #5d6f1b",
+"oc c #5d6f1d",
+"gB c #5d6f23",
+"oB c #5d711c",
+"cU c #5d7217",
+"lE c #5d730e",
+"En c #5e6c14",
+"hc c #5e7024",
+"vI c #5e7115",
+"kX c #5e7117",
+"Ec c #5e711f",
+"C5 c #5e7702",
+"yK c #5f6e13",
+"EI c #5f6e1d",
+"qO c #5f7014",
+"kF c #5f711f",
+"vx c #5f7125",
+"km c #5f7218",
+"mD c #5f7220",
+"m# c #5f7221",
+"Cb c #5f7314",
+"vh c #5f7419",
+"yb c #606d25",
+"qG c #606e1f",
+"uf c #606e21",
+"o0 c #606f1c",
+"wr c #607321",
+"Fk c #607904",
+"rx c #616d23",
+"zD c #616f1a",
+"x4 c #616f20",
+"si c #61701d",
+"tv c #617128",
+"B4 c #617216",
+"wV c #61751c",
+"uW c #617619",
+"sP c #626a3b",
+"oy c #62711e",
+"yh c #627120",
+"nG c #627229",
+"mz c #62732c",
+"w. c #62741e",
+"n# c #62761d",
+"wX c #636f27",
+"tW c #637021",
+"pv c #63702a",
+"sL c #63721f",
+"tB c #64711f",
+"fq c #64731e",
+"ub c #64752e",
+"Ad c #64771e",
+"y7 c #647725",
+"um c #647819",
+"v6 c #656d3e",
+"sn c #656e37",
+"v5 c #656e39",
+"xA c #657125",
+"tb c #657127",
+"w2 c #657222",
+"rU c #65722d",
+"gr c #65731b",
+"hT c #65772d",
+"l9 c #657827",
+"qv c #667321",
+"fb c #66771b",
+"wm c #667730",
+"nN c #667822",
+"ab c #667a21",
+"CN c #667b1c",
+"qc c #667b1e",
+"q5 c #667b20",
+"bo c #677925",
+"E6 c #677c1d",
+"wy c #68742a",
+"AD c #687432",
+"hC c #68771a",
+"E0 c #687b12",
+"uu c #687b2a",
+"aR c #687e12",
+"xT c #697728",
+"xq c #697b25",
+"gA c #697d26",
+"zT c #697e1f",
+"qh c #697e21",
+"wv c #6a7727",
+"n2 c #6a791c",
+"t. c #6a7b2b",
+"wI c #6a7d14",
+"ru c #6a7d24",
+"yA c #6a7f24",
+"wB c #6b7737",
+"EW c #6b7a29",
+"p5 c #6b7c1c",
+"pU c #6b7e22",
+"wj c #6b801b",
+"Bl c #6c7732",
+"r. c #6c782c",
+"o. c #6c7d2d",
+"ao c #6c8027",
+"xu c #6d792d",
+"wD c #6d792f",
+"rX c #6d7b24",
+"f5 c #6d7f1c",
+"uJ c #6d812c",
+"ED c #6e7b29",
+"CW c #6e7d22",
+"eH c #6e8221",
+"fC c #6e8223",
+"eR c #6f8320",
+"bb c #707e2f",
+"mr c #707e31",
+"dm c #708624",
+"oj c #71802f",
+"oh c #71832f",
+"yF c #71852c",
+"uA c #718725",
+"BZ c #728220",
+"Bb c #728430",
+"mM c #73802e",
+"aD c #73862d",
+"Ao c #748328",
+"u3 c #74832e",
+"e1 c #75882e",
+"Bp c #778933",
+"Ca c #778c25",
+"DA c #78911c",
+"gJ c #798c23",
+"Cp c #7a8831",
+"iQ c #7a8b2d",
+"Df c #7b8c26",
+"c6 c #7b8c2c",
+"D1 c #7b921e",
+"t2 c #7c912a",
+"gz c #7c9132",
+"u7 c #7c922e",
+"jq c #7c931f",
+"ep c #7d8e30",
+"mK c #7d9331",
+"Ar c #7e9334",
+"aa c #7e9430",
+"Ds c #7f9026",
+"vb c #7fa00b",
+"B5 c #809133",
+"pG c #809135",
+"hm c #80932a",
+"E8 c #809634",
+"ap c #80972f",
+"mt c #81912f",
+"re c #819330",
+"hb c #819637",
+"gU c #81972a",
+"k8 c #81a20d",
+"pm c #829132",
+"gZ c #829230",
+"gs c #839235",
+"iZ c #839330",
+"BB c #839532",
+"qY c #84923b",
+"dZ c #849932",
+"v# c #849a38",
+"EV c #859638",
+"BM c #859733",
+"pI c #85982d",
+"vm c #85982f",
+"zo c #859f22",
+"vq c #869834",
+"pC c #86a120",
+"Fg c #879935",
+"nV c #88993d",
+"eh c #89a034",
+"Eg c #89a036",
+"aC c #8a9f38",
+"zz c #8aa32b",
+"E1 c #8ba02b",
+"Bw c #8c9e2e",
+"nq c #8ca138",
+"EN c #8da33e",
+"wN c #8da432",
+"D5 c #8da43c",
+"AQ c #8ea33a",
+"C# c #8ea435",
+"gy c #8ea43f",
+"xa c #8fa42f",
+"AG c #8fa43f",
+"nR c #8fa539",
+"ij c #90a32f",
+"hS c #90a642",
+"vY c #90a644",
+"aS c #90a82e",
+"nv c #91a430",
+"Em c #92a339",
+"wS c #92a74a",
+"yH c #92a839",
+"zh c #92aa3c",
+"kY c #92ac2d",
+"mI c #92b501",
+"l0 c #93a446",
+"mi c #93a849",
+"tK c #93a93a",
+"iA c #93a947",
+"vu c #93ab39",
+"ha c #93ab3b",
+"Ah c #93ae2b",
+"zj c #93b600",
+"au c #93b602",
+"cr c #93b809",
+"li c #94a53b",
+"gt c #94a640",
+"z4 c #94a94c",
+"j8 c #94ad2d",
+"p. c #94b125",
+"jI c #94b204",
+"bN c #94b504",
+"mG c #94b50e",
+"xR c #94b607",
+"fx c #94b701",
+"sW c #94b909",
+"Ax c #94bb00",
+"B6 c #95a741",
+"le c #95ad3d",
+"cV c #95ae39",
+"zn c #95b129",
+"i. c #95b607",
+"xZ c #95bb06",
+"rn c #96a747",
+"EC c #96a83c",
+"uM c #96ae3e",
+"jj c #96ae40",
+"aq c #96af37",
+"pZ c #96b130",
+"oE c #96b907",
+"dP c #97ae42",
+"a# c #97af41",
+"zp c #97b134",
+"y6 c #97b33a",
+"nm c #97b40c",
+"uB c #97b531",
+"yj c #97b70e",
+"hp c #97b805",
+"x0 c #97b811",
+"dW c #97b903",
+"sI c #97ba06",
+"k5 c #97bc0c",
+"lb c #97bd08",
+"ss c #97bd10",
+"y1 c #97bd12",
+"bR c #98aa3a",
+"rE c #98ab40",
+"xW c #98b040",
+"yY c #98b43b",
+"Fs c #98b50b",
+"Dl c #98b620",
+"FB c #98b71c",
+"xn c #98b817",
+"a8 c #98ba03",
+"fy c #98ba0c",
+"wp c #98bb17",
+"z7 c #98bc00",
+"rB c #98bd0b",
+"bC c #98bd0e",
+"t0 c #98be06",
+"zN c #98be07",
+"tF c #98bf00",
+"zt c #98bf04",
+"sv c #98bf0c",
+"y3 c #98c007",
+"z9 c #98c105",
+"tE c #98c200",
+"jF c #99aa4c",
+"A9 c #99ab3b",
+"ht c #99ad3c",
+"j1 c #99ae47",
+"B7 c #99b03b",
+"yE c #99b23a",
+"ug c #99b431",
+"ce c #99b441",
+"nx c #99b707",
+"FC c #99b721",
+"Dp c #99b800",
+"DD c #99b805",
+"uY c #99b812",
+"ft c #99b900",
+"Fi c #99b910",
+"h7 c #99b916",
+"EJ c #99b918",
+"Bq c #99b91a",
+"ql c #99ba07",
+"f. c #99ba09",
+"f8 c #99bb02",
+"a5 c #99bb04",
+"zH c #99bb0c",
+"bJ c #99bb0d",
+".X c #99bc06",
+"#o c #99bc08",
+"l# c #99bc18",
+"sg c #99bd01",
+"rk c #99bd03",
+"kA c #99be0c",
+"zO c #99be0e",
+"ti c #99be0f",
+"bt c #99bf08",
+"jY c #99bf0a",
+"tf c #99c202",
+"zZ c #9aac40",
+"dz c #9aad42",
+"jy c #9aae3f",
+"yr c #9aaf46",
+"rM c #9ab043",
+"gu c #9ab13f",
+"gx c #9ab145",
+"E. c #9ab334",
+"vK c #9ab41d",
+"sR c #9ab510",
+"xx c #9ab60c",
+"Ft c #9ab70f",
+"C6 c #9ab91e",
+"#b c #9aba17",
+"iJ c #9aba19",
+"#v c #9aba1b",
+"cZ c #9abb14",
+"qL c #9abc05",
+"tr c #9abc0d",
+"r6 c #9abc0e",
+".W c #9abd07",
+"#p c #9abd09",
+"z6 c #9abd0b",
+"lo c #9abe02",
+"qV c #9abe04",
+"ps c #9abe06",
+"Aj c #9abf00",
+"sV c #9abf0d",
+"ch c #9abf0f",
+"k6 c #9abf10",
+"Ay c #9ac008",
+"sF c #9ac00b",
+"r1 c #9ac013",
+"k3 c #9ac102",
+"sf c #9ac104",
+"A. c #9ac106",
+"y2 c #9ac10c",
+"sw c #9ac10e",
+"sT c #9ac20a",
+"Aw c #9ac305",
+"mk c #9bad41",
+"sC c #9bb43c",
+"C. c #9bb43e",
+"#T c #9bb538",
+"nX c #9bb810",
+"qi c #9bb83a",
+"EP c #9bb909",
+"Aa c #9bba14",
+"jt c #9bba1e",
+"mc c #9bbb1a",
+"qk c #9bbb1c",
+"ts c #9bbc17",
+"u0 c #9bbd04",
+"uj c #9bbd06",
+"#z c #9bbd0e",
+"lJ c #9bbd0f",
+"jw c #9bbe02",
+"#n c #9bbe08",
+"hM c #9bbe0a",
+"m2 c #9bbf07",
+"nc c #9bbf13",
+"wi c #9bc001",
+"kB c #9bc00e",
+"sX c #9bc011",
+"AX c #9bc109",
+"k4 c #9bc10c",
+"y0 c #9bc207",
+"cB c #9cb03f",
+"se c #9cb442",
+"s4 c #9cb53d",
+"dn c #9cb53f",
+"gv c #9cb540",
+"#S c #9cb637",
+"B8 c #9cb639",
+"sc c #9cb63b",
+"xc c #9cba0c",
+"DE c #9cba0d",
+"ay c #9cbc13",
+"ur c #9cbc1b",
+"Ex c #9cbc1d",
+"dw c #9cbd0a",
+"cx c #9cbd0e",
+".6 c #9cbd14",
+"uq c #9cbd16",
+"l6 c #9cbd18",
+"AV c #9cbe05",
+"lB c #9cbe0f",
+"xm c #9cbe10",
+"cY c #9cbe12",
+"#A c #9cbf09",
+"#. c #9cbf0b",
+"k1 c #9cbf0d",
+"jf c #9cbf1a",
+"m3 c #9cc006",
+"#i c #9cc008",
+"nP c #9cc016",
+"bs c #9cc018",
+"kQ c #9cc101",
+"ci c #9cc10f",
+"wo c #9cc111",
+"u# c #9cc112",
+"bw c #9cc20a",
+"jX c #9cc20d",
+"ky c #9cc308",
+"s2 c #9db044",
+"qx c #9db715",
+"#U c #9db73c",
+"hI c #9db813",
+"oF c #9db829",
+"#R c #9db837",
+"y. c #9dba10",
+"te c #9dba12",
+"EQ c #9dbb0b",
+"Ey c #9dbb1f",
+"DL c #9dbd02",
+"vk c #9dbd10",
+"eK c #9dbd12",
+"Ew c #9dbd1c",
+"#u c #9dbd1e",
+"gP c #9dbe0f",
+"#y c #9dbe15",
+"pR c #9dbe17",
+".3 c #9dbe19",
+"hN c #9dbf10",
+".7 c #9dbf13",
+".V c #9dc00a",
+".S c #9dc00c",
+"#h c #9dc00e",
+"ne c #9dc105",
+"nz c #9dc107",
+"m0 c #9dc109",
+"lL c #9dc117",
+"cn c #9dc119",
+"jW c #9dc210",
+"bD c #9dc212",
+"lK c #9dc30b",
+"zr c #9dc314",
+"st c #9dc316",
+"yu c #9dc405",
+"Fv c #9eb145",
+"ba c #9eb146",
+"pg c #9eb23f",
+"Fw c #9eb243",
+"A4 c #9eb34e",
+"AC c #9eb448",
+"gw c #9eb646",
+"AR c #9eb738",
+"rl c #9eb839",
+"rJ c #9eb83b",
+"#Q c #9eb936",
+"C8 c #9ebb11",
+"wK c #9ebb15",
+"zX c #9ebc0c",
+"cy c #9ebd19",
+"c3 c #9ebd1a",
+"ji c #9ebd33",
+"A5 c #9ebe05",
+"Bf c #9ebe11",
+"lp c #9ebe13",
+"uk c #9ebe15",
+"t7 c #9ebe1f",
+"k9 c #9ebe2c",
+"jK c #9ebf00",
+"bM c #9ebf0e",
+"hq c #9ebf10",
+".5 c #9ebf16",
+"m4 c #9ebf18",
+"h8 c #9ebf1a",
+"eL c #9ec009",
+"ax c #9ec00a",
+"#g c #9ec011",
+"mQ c #9ec012",
+".s c #9ec014",
+"dv c #9ec105",
+"e8 c #9ec10b",
+".C c #9ec10d",
+".P c #9ec10f",
+"#8 c #9ec206",
+"xP c #9ec208",
+"fv c #9ec20a",
+"yQ c #9ec218",
+"by c #9ec21a",
+"pQ c #9ec303",
+"kw c #9ec311",
+"lc c #9ec314",
+"oX c #9ec400",
+"i9 c #9ec40d",
+"yT c #9ec506",
+"me c #9ec508",
+"nd c #9ec50a",
+"zs c #9ec60d",
+"tg c #9ec70b",
+"zd c #9fb141",
+"DO c #9fb14e",
+"vS c #9fb340",
+"s9 c #9fb546",
+"zF c #9fb551",
+"r8 c #9fb73f",
+"og c #9fb839",
+"rI c #9fb920",
+"AY c #9fb922",
+"B9 c #9fb93e",
+"jH c #9fba1f",
+"Bt c #9fbb0e",
+"qT c #9fbb19",
+"Fu c #9fbc14",
+"a9 c #9fbd10",
+"k. c #9fbd21",
+"DH c #9fbe08",
+"gS c #9fbe18",
+"k# c #9fbe1a",
+"iy c #9fbe23",
+"xj c #9fbe32",
+"x9 c #9fbf04",
+"jv c #9fbf1e",
+"dp c #9fbf20",
+"vA c #9fbf2d",
+"gR c #9fc00f",
+"hO c #9fc017",
+".4 c #9fc019",
+".2 c #9fc01b",
+"yP c #9fc029",
+"AU c #9fc10b",
+".F c #9fc112",
+".Y c #9fc113",
+".r c #9fc115",
+"jg c #9fc124",
+"eN c #9fc203",
+"rb c #9fc206",
+".T c #9fc20c",
+"nA c #9fc20e",
+".A c #9fc210",
+"uD c #9fc21d",
+"zP c #9fc21e",
+"e6 c #9fc300",
+"mw c #9fc307",
+"oN c #9fc30b",
+"yC c #9fc317",
+"bB c #9fc319",
+"tj c #9fc31b",
+"pp c #9fc402",
+"zk c #9fc404",
+"#5 c #9fc405",
+"cj c #9fc412",
+"jV c #9fc414",
+"je c #9fc415",
+"oW c #9fc500",
+"jS c #9fc50d",
+"jc c #9fc50e",
+"r4 c #9fc510",
+"ks c #9fc60b",
+"bH c #9fc611",
+"bI c #9fc615",
+"aZ c #9fc70e",
+"c0 c #9fc70f",
+"bG c #9fc808",
+"aY c #9fc80a",
+"ct c #9fc80c",
+"sA c #a0b445",
+"nF c #a0b647",
+"lN c #a0b652",
+"sK c #a0b742",
+"lw c #a0b745",
+"bp c #a0b74b",
+"q# c #a0b91d",
+"rz c #a0b927",
+"tk c #a0b943",
+"lH c #a0b944",
+"hH c #a0ba1b",
+"FO c #a0ba21",
+"yB c #a0ba3f",
+"CT c #a0bd0d",
+"qs c #a0bd13",
+"Fa c #a0bd17",
+"kM c #a0be0e",
+"n8 c #a0be20",
+"AH c #a0be2a",
+"Fo c #a0bf0a",
+"lV c #a0bf0c",
+"AA c #a0bf19",
+"p0 c #a0bf24",
+"vz c #a0bf26",
+"h6 c #a0c01d",
+"DW c #a0c01f",
+"ju c #a0c021",
+"or c #a0c100",
+"jL c #a0c102",
+"a4 c #a0c10e",
+"rq c #a0c112",
+"#q c #a0c118",
+"#a c #a0c11a",
+"#x c #a0c11c",
+"ld c #a0c128",
+"yv c #a0c12c",
+"e9 c #a0c209",
+"kR c #a0c20c",
+".z c #a0c213",
+".G c #a0c214",
+".K c #a0c216",
+".U c #a0c30d",
+".E c #a0c30f",
+".n c #a0c311",
+"bz c #a0c31e",
+"e5 c #a0c402",
+"iu c #a0c408",
+"xd c #a0c40a",
+"#m c #a0c40c",
+"a2 c #a0c418",
+"cm c #a0c41c",
+"#7 c #a0c505",
+"ke c #a0c506",
+"cu c #a0c513",
+"a1 c #a0c515",
+"el c #a0c516",
+"zV c #a0c601",
+"cs c #a0c60e",
+"av c #a0c60f",
+"a0 c #a0c611",
+"su c #a0c617",
+"r2 c #a0c619",
+"yt c #a0c708",
+"bF c #a0c70a",
+"aX c #a0c70c",
+"zK c #a0c712",
+"h4 c #a1b252",
+"hD c #a1b345",
+"Bk c #a1b34d",
+"wb c #a1b449",
+"AL c #a1b53c",
+"Fh c #a1b542",
+"tN c #a1b546",
+"w# c #a1b64d",
+"Bu c #a1bb19",
+"rZ c #a1bb1a",
+"up c #a1bb22",
+"#V c #a1bb40",
+"A7 c #a1bc17",
+"FP c #a1bc1f",
+"yU c #a1bc47",
+"D# c #a1bd11",
+"Am c #a1bd13",
+"zB c #a1bd1b",
+"Db c #a1be0a",
+"vU c #a1be18",
+"DY c #a1be26",
+"qz c #a1bf11",
+"kf c #a1bf12",
+"oO c #a1bf29",
+"sS c #a1c00a",
+"FH c #a1c00d",
+"hr c #a1c01c",
+"on c #a1c025",
+"#K c #a1c027",
+"rC c #a1c114",
+"#c c #a1c11e",
+"#w c #a1c120",
+"#t c #a1c122",
+"oL c #a1c20f",
+"qU c #a1c211",
+"rj c #a1c213",
+".t c #a1c219",
+"p7 c #a1c21b",
+"q2 c #a1c21d",
+"oe c #a1c22d",
+"pi c #a1c30a",
+"oK c #a1c30c",
+"pj c #a1c30d",
+"## c #a1c314",
+"no c #a1c315",
+".M c #a1c317",
+"nC c #a1c405",
+"rQ c #a1c406",
+".9 c #a1c40e",
+".R c #a1c410",
+".m c #a1c412",
+"#B c #a1c509",
+"#j c #a1c50b",
+"dr c #a1c50d",
+"oM c #a1c519",
+"tq c #a1c606",
+"iv c #a1c607",
+"jT c #a1c614",
+"jU c #a1c616",
+"cq c #a1c617",
+"E3 c #a1c702",
+"rA c #a1c710",
+"j. c #a1c712",
+"kt c #a1c80b",
+"tG c #a1c80d",
+"wY c #a2b63d",
+"sa c #a2b647",
+"kn c #a2b849",
+"n9 c #a2b944",
+"e2 c #a2ba40",
+"vi c #a2bb43",
+"na c #a2bb45",
+"sb c #a2bc23",
+"sy c #a2bc3f",
+"lD c #a2bc41",
+"q0 c #a2bd16",
+"mY c #a2bd22",
+"BW c #a2be11",
+"hJ c #a2be14",
+"xM c #a2be1b",
+"vs c #a2be1c",
+"AS c #a2be2d",
+"AJ c #a2bf0d",
+"ol c #a2bf17",
+"pk c #a2bf2f",
+"i8 c #a2c010",
+"jP c #a2c013",
+"AT c #a2c022",
+"#L c #a2c02e",
+"mo c #a2c10e",
+"Bd c #a2c11e",
+"D7 c #a2c125",
+"aV c #a2c126",
+"lk c #a2c207",
+"gb c #a2c215",
+"aW c #a2c21f",
+"r7 c #a2c221",
+"tn c #a2c223",
+"DI c #a2c300",
+"oV c #a2c304",
+"bK c #a2c312",
+"jR c #a2c314",
+".h c #a2c31a",
+"iL c #a2c31c",
+"iK c #a2c31e",
+"it c #a2c40b",
+".# c #a2c415",
+".a c #a2c416",
+".b c #a2c418",
+"eM c #a2c507",
+"rP c #a2c509",
+".c c #a2c50f",
+"Qt c #a2c511",
+".f c #a2c513",
+".g c #a2c60a",
+".e c #a2c60c",
+".d c #a2c60e",
+"co c #a2c61a",
+"sY c #a2c61c",
+"ov c #a2c705",
+"dV c #a2c707",
+"du c #a2c708",
+"jd c #a2c715",
+"Bh c #a2c717",
+"bx c #a2c718",
+"FW c #a2c800",
+"FX c #a2c801",
+"FY c #a2c803",
+"r5 c #a2c811",
+"jb c #a2c813",
+"Av c #a2c90c",
+"tc c #a3b547",
+"nk c #a3b64b",
+"oG c #a3b851",
+"il c #a3bb25",
+"pb c #a3bb43",
+"my c #a3bb4b",
+"zR c #a3bc44",
+"E5 c #a3bc47",
+"CC c #a3bd1c",
+"FJ c #a3bd24",
+"x6 c #a3bd28",
+"qH c #a3bd42",
+"FA c #a3be21",
+"#P c #a3be39",
+"qW c #a3be3d",
+"oC c #a3bf46",
+"xw c #a3c00e",
+"CS c #a3c010",
+"jQ c #a3c016",
+"FQ c #a3c01a",
+"yl c #a3c026",
+"g5 c #a3c028",
+"rN c #a3c02a",
+"jO c #a3c111",
+"gL c #a3c121",
+"mv c #a3c125",
+"kD c #a3c12d",
+"kN c #a3c20f",
+"eP c #a3c21e",
+"Ei c #a3c226",
+"F. c #a3c227",
+"jM c #a3c30a",
+"bO c #a3c316",
+"kr c #a3c318",
+"zb c #a3c31a",
+"rr c #a3c320",
+"l2 c #a3c322",
+"mg c #a3c324",
+"jh c #a3c331",
+"kq c #a3c411",
+"mp c #a3c413",
+"iO c #a3c415",
+".Z c #a3c41b",
+".1 c #a3c41d",
+"ds c #a3c41f",
+"DJ c #a3c500",
+"aw c #a3c50c",
+"en c #a3c50e",
+"eO c #a3c50f",
+".o c #a3c516",
+".w c #a3c517",
+".v c #a3c519",
+"em c #a3c607",
+"os c #a3c60a",
+"cv c #a3c610",
+".i c #a3c612",
+".l c #a3c614",
+"dq c #a3c70b",
+"dS c #a3c70d",
+"ek c #a3c70f",
+"iw c #a3c808",
+"ja c #a3c816",
+"Ak c #a3c900",
+"zW c #a3c902",
+"kz c #a3c912",
+"j# c #a3c914",
+"r3 c #a3c91a",
+"k2 c #a3ca0d",
+"sU c #a3ca17",
+"zL c #a3cb13",
+"Cg c #a4bb51",
+"op c #a4bc26",
+"ro c #a4bc30",
+"aB c #a4bc44",
+"tS c #a4bc4c",
+"g4 c #a4bd2e",
+"eI c #a4bd3e",
+"im c #a4be1d",
+"sB c #a4be25",
+"DZ c #a4be36",
+"pF c #a4be37",
+"q4 c #a4be41",
+"kL c #a4bf22",
+"pT c #a4bf3e",
+"CD c #a4c013",
+"i2 c #a4c014",
+"CR c #a4c016",
+"ph c #a4c01d",
+"lT c #a4c01e",
+"p1 c #a4c02d",
+"ei c #a4c038",
+"iq c #a4c10d",
+"sq c #a4c10f",
+"ip c #a4c111",
+"az c #a4c127",
+"rs c #a4c131",
+"q1 c #a4c20c",
+"ho c #a4c226",
+"oY c #a4c22c",
+"ys c #a4c230",
+"jN c #a4c30e",
+"xN c #a4c310",
+"ge c #a4c31d",
+"eo c #a4c320",
+"g6 c #a4c328",
+"Do c #a4c401",
+"n5 c #a4c407",
+"jJ c #a4c409",
+"pK c #a4c40b",
+"rc c #a4c419",
+"ka c #a4c41b",
+"D8 c #a4c421",
+"#s c #a4c423",
+"wT c #a4c432",
+"n7 c #a4c512",
+"rR c #a4c514",
+"e4 c #a4c516",
+".u c #a4c51c",
+".0 c #a4c51e",
+"#d c #a4c520",
+"cw c #a4c610",
+".y c #a4c617",
+".x c #a4c618",
+".J c #a4c61a",
+"fw c #a4c711",
+".j c #a4c713",
+"gO c #a4c715",
+"bA c #a4c722",
+"cg c #a4c725",
+"ix c #a4c80c",
+"l4 c #a4c80e",
+"#H c #a4c810",
+"ck c #a4c81c",
+"cl c #a4c820",
+"#4 c #a4c909",
+"#6 c #a4c90a",
+"sx c #a4c917",
+"s7 c #a4c91a",
+"xe c #a4ca03",
+"Az c #a4ca12",
+"mf c #a4ca13",
+"Bg c #a4ca15",
+"bu c #a4cb0c",
+"AW c #a4cb0e",
+"kx c #a4cb10",
+"w1 c #a5b747",
+"ym c #a5b84c",
+"EU c #a5b84d",
+"rY c #a5ba3b",
+"rt c #a5bc47",
+"xp c #a5be48",
+"v1 c #a5be49",
+"oT c #a5bf1e",
+"FK c #a5bf26",
+"t6 c #a5bf28",
+"pu c #a5bf44",
+"in c #a5c019",
+"u5 c #a5c023",
+"AB c #a5c033",
+"Fj c #a5c03d",
+"io c #a5c114",
+"n4 c #a5c115",
+"DM c #a5c11f",
+"ar c #a5c139",
+"Cl c #a5c20e",
+"Cm c #a5c212",
+"BU c #a5c21a",
+"mm c #a5c21c",
+"vl c #a5c228",
+"Bi c #a5c22a",
+"lI c #a5c236",
+"ir c #a5c30d",
+"r0 c #a5c313",
+"wh c #a5c316",
+"dx c #a5c323",
+"f# c #a5c325",
+"Dn c #a5c404",
+"pO c #a5c40e",
+"FG c #a5c40f",
+"DX c #a5c41e",
+"k0 c #a5c428",
+"qJ c #a5c429",
+"zJ c #a5c42b",
+"oJ c #a5c50a",
+"om c #a5c50c",
+"mZ c #a5c518",
+"kp c #a5c51c",
+"#r c #a5c522",
+"nD c #a5c613",
+"c2 c #a5c615",
+"#I c #a5c61d",
+"BH c #a5c621",
+"gc c #a5c710",
+"f9 c #a5c711",
+"#2 c #a5c718",
+"e7 c #a5c719",
+"#f c #a5c71b",
+"dT c #a5c812",
+".k c #a5c814",
+".B c #a5c816",
+"#E c #a5c90d",
+"#k c #a5c90f",
+"#l c #a5c911",
+"jZ c #a5c91f",
+"#C c #a5ca0a",
+"m1 c #a5ca0b",
+"xk c #a5ca1b",
+"yR c #a5cb13",
+"y4 c #a5cb1c",
+"mH c #a5cc0d",
+"tZ c #a5cd15",
+"CG c #a6b946",
+"rH c #a6ba47",
+"ox c #a6bb42",
+"td c #a6bd2e",
+"f6 c #a6be36",
+"D0 c #a6be42",
+"mS c #a6be44",
+"qb c #a6bf49",
+"qB c #a6bf4a",
+"Ck c #a6c01e",
+"Fb c #a6c027",
+"FN c #a6c029",
+"pn c #a6c11a",
+"h5 c #a6c136",
+"vV c #a6c13e",
+"pN c #a6c215",
+"CP c #a6c21f",
+"ER c #a6c220",
+"BG c #a6c231",
+"nZ c #a6c239",
+"A6 c #a6c30f",
+"#M c #a6c335",
+"pL c #a6c337",
+"x7 c #a6c414",
+"qm c #a6c426",
+"xX c #a6c42e",
+"j0 c #a6c432",
+"FT c #a6c50f",
+"FI c #a6c512",
+"Be c #a6c51f",
+"Ej c #a6c52a",
+"x8 c #a6c609",
+"is c #a6c60d",
+"ga c #a6c61b",
+"dU c #a6c71e",
+"#e c #a6c720",
+"tI c #a6c722",
+"h9 c #a6c80f",
+"ny c #a6c811",
+"gd c #a6c812",
+".p c #a6c819",
+".q c #a6c81a",
+".H c #a6c81c",
+"l3 c #a6c913",
+".8 c #a6c915",
+".Q c #a6c917",
+"zu c #a6c925",
+"#G c #a6ca0e",
+"kd c #a6ca10",
+"#3 c #a6ca12",
+"ui c #a6ca20",
+"ut c #a6ca22",
+"pr c #a6cb09",
+"ot c #a6cb0b",
+"#F c #a6cb0c",
+"sE c #a6cb19",
+"kv c #a6cb1b",
+"pq c #a6cc05",
+"xQ c #a6cc07",
+"bv c #a6cd10",
+"u. c #a6cd12",
+"yS c #a6ce0b",
+"zM c #a6ce15",
+"th c #a6ce16",
+"ww c #a7b755",
+"so c #a7b850",
+"p2 c #a7ba4e",
+"Co c #a7bb40",
+"t5 c #a7bb4a",
+"hE c #a7bc3d",
+"BY c #a7bd34",
+"xy c #a7bf2b",
+"tu c #a7bf4d",
+"l8 c #a7bf51",
+"Fz c #a7c02e",
+"s3 c #a7c128",
+"l1 c #a7c13a",
+"h# c #a7c144",
+"Dm c #a7c21b",
+"wg c #a7c225",
+"Cj c #a7c321",
+"rD c #a7c330",
+"Da c #a7c412",
+"qy c #a7c414",
+"pa c #a7c42a",
+"tJ c #a7c42e",
+"zQ c #a7c436",
+"qj c #a7c438",
+"FR c #a7c515",
+"DG c #a7c517",
+"lW c #a7c529",
+"nb c #a7c533",
+"FS c #a7c611",
+"mP c #a7c613",
+"qM c #a7c620",
+"vt c #a7c62a",
+"g7 c #a7c62d",
+"gM c #a7c71e",
+"dR c #a7c726",
+"BI c #a7c728",
+"zv c #a7c738",
+"kO c #a7c817",
+"a3 c #a7c819",
+"#1 c #a7c823",
+"yD c #a7c831",
+"uC c #a7c833",
+"gN c #a7c91a",
+".N c #a7c91b",
+"kb c #a7c91d",
+"tY c #a7c92a",
+"k7 c #a7c92d",
+"a6 c #a7ca0e",
+"ra c #a7ca14",
+"g. c #a7ca16",
+".D c #a7ca18",
+"kP c #a7cb11",
+"ln c #a7cb13",
+"#D c #a7cc0d",
+"ku c #a7cc1a",
+"tH c #a7cd16",
+"la c #a7cd18",
+"A# c #a7ce13",
+"oS c #a8bc3f",
+"BC c #a8bc4b",
+"sh c #a8bd44",
+"BS c #a8bf53",
+"hG c #a8c02a",
+"xf c #a8c044",
+"m5 c #a8c050",
+"iH c #a8c142",
+"tP c #a8c149",
+"FL c #a8c229",
+"tO c #a8c22b",
+"As c #a8c245",
+"#W c #a8c247",
+"pJ c #a8c326",
+"c4 c #a8c338",
+"qt c #a8c340",
+"i7 c #a8c417",
+"Dc c #a8c418",
+"t1 c #a8c433",
+"#O c #a8c43c",
+"i3 c #a8c511",
+"ow c #a8c52d",
+"xo c #a8c535",
+"qa c #a8c537",
+"za c #a8c539",
+"i4 c #a8c610",
+"Br c #a8c616",
+"rp c #a8c619",
+"q3 c #a8c630",
+"x1 c #a8c632",
+"u6 c #a8c634",
+"u1 c #a8c723",
+"pt c #a8c72b",
+"DB c #a8c72c",
+"sr c #a8c80b",
+"Al c #a8c80d",
+"xO c #a8c80f",
+"CO c #a8c825",
+"wM c #a8c829",
+"FF c #a8c916",
+"Ev c #a8c920",
+"y5 c #a8c932",
+"qI c #a8c934",
+"uZ c #a8ca14",
+"C7 c #a8ca1b",
+"nB c #a8ca1c",
+".I c #a8ca1e",
+"uO c #a8ca2e",
+"n6 c #a8cb0f",
+"lm c #a8cb15",
+"lA c #a8cb17",
+"FE c #a8cb19",
+"uh c #a8cb29",
+"zl c #a8cc10",
+"sG c #a8cc14",
+"pP c #a8cd0e",
+"ou c #a8ce09",
+"ri c #a9be47",
+"u4 c #a9bf40",
+"rT c #a9c04e",
+"ma c #a9c151",
+"ua c #a9c153",
+"uE c #a9c240",
+"vy c #a9c24a",
+"yO c #a9c24d",
+"CQ c #a9c321",
+"tm c #a9c32c",
+"gf c #a9c33b",
+"ko c #a9c33e",
+"ng c #a9c344",
+"Ez c #a9c427",
+"hs c #a9c435",
+"ul c #a9c439",
+"BT c #a9c43f",
+"Eh c #a9c441",
+"mh c #a9c443",
+"CE c #a9c51b",
+"#N c #a9c53c",
+"p8 c #a9c53d",
+"po c #a9c612",
+"i5 c #a9c614",
+"i6 c #a9c616",
+"eJ c #a9c62e",
+"lC c #a9c636",
+"zq c #a9c63a",
+"oU c #a9c711",
+"hK c #a9c719",
+"np c #a9c731",
+"nY c #a9c812",
+"r# c #a9c82d",
+"AI c #a9c90c",
+"F# c #a9c910",
+"iM c #a9ca21",
+"p# c #a9ca23",
+"#J c #a9ca25",
+"br c #a9ca33",
+"Fn c #a9cb1c",
+".L c #a9cb1f",
+"g# c #a9cc18",
+"qK c #a9cc1a",
+"fu c #a9cd07",
+"fz c #a9cd13",
+"lz c #a9cd15",
+"cp c #a9cd21",
+"xl c #a9cf1a",
+"g0 c #aabc4c",
+"pM c #aabc50",
+"De c #aabf3c",
+"c5 c #aac14c",
+"vJ c #aac24a",
+"zY c #aac329",
+"fa c #aac341",
+"BX c #aac422",
+"mO c #aac42b",
+"FM c #aac42d",
+"aT c #aac43f",
+"hR c #aac449",
+"Bc c #aac538",
+"zG c #aac544",
+"D. c #aac61c",
+"vj c #aac633",
+"oq c #aac713",
+"e3 c #aac72f",
+"mF c #aac737",
+"h. c #aac739",
+"wL c #aac818",
+"g8 c #aac832",
+"bq c #aac844",
+"Fp c #aac914",
+"FD c #aac92e",
+"jr c #aac930",
+"mR c #aaca29",
+"nf c #aaca2b",
+"rO c #aacb1a",
+"hL c #aacb1c",
+"Au c #aacb22",
+"FV c #aacc1d",
+"EO c #aacd17",
+"Fm c #aacd19",
+"c1 c #aace16",
+"bE c #aacf1d",
+"tC c #abbd4d",
+"EB c #abc03f",
+"BL c #abc04b",
+"g3 c #abc138",
+"BF c #abc23c",
+"Er c #abc256",
+"Fy c #abc33b",
+"ia c #abc34b",
+"fB c #abc442",
+"kE c #abc44e",
+"x2 c #abc44f",
+"dY c #abc540",
+"Ek c #abc637",
+"BV c #abc71d",
+"CB c #abc725",
+"fs c #abc727",
+"Bs c #abc818",
+"rS c #abc832",
+"zU c #abc838",
+"tp c #abc935",
+"g9 c #abc937",
+"nn c #abca15",
+"pE c #abca26",
+"dX c #abca27",
+"js c #abca2f",
+"cX c #abca31",
+"uN c #abcb2c",
+"bL c #abcc19",
+"dt c #abcc27",
+"md c #abcd1e",
+"a7 c #abce10",
+"kc c #abce18",
+"z8 c #abce1a",
+".O c #abce1c",
+"sH c #abcf17",
+"xv c #acbf4c",
+"oZ c #acc04d",
+"tX c #acc04f",
+"qZ c #acc13e",
+"xL c #acc244",
+"hF c #acc337",
+"lj c #acc430",
+"Ac c #acc44c",
+"wq c #acc452",
+"nO c #acc550",
+"p6 c #acc631",
+"aA c #acc63e",
+"eQ c #acc63f",
+"b. c #acc72c",
+"sJ c #acc837",
+"dQ c #acc83f",
+"Ab c #acc933",
+"mn c #acca1c",
+"fA c #acca2a",
+"#Z c #acca38",
+"ll c #accb16",
+"iI c #accb2f",
+"#0 c #accb30",
+"gQ c #accc1f",
+"ly c #accc2d",
+"at c #accd28",
+"iN c #accf10",
+"kC c #acd026",
+"xz c #adbf4f",
+"ry c #adc04d",
+"qS c #adc344",
+"CF c #adc435",
+"wZ c #adc438",
+"vL c #adc440",
+"Bj c #adc442",
+"sp c #adc533",
+"rd c #adc53b",
+"vr c #adc53d",
+"ml c #adc636",
+"Fc c #adc637",
+"yw c #adc650",
+"kS c #adc72e",
+"BJ c #adc83d",
+"vZ c #adc843",
+"nE c #adc938",
+"DF c #adca20",
+"tt c #adca3a",
+"a. c #adcb37",
+"lx c #adcb39",
+"yk c #adcc19",
+"zI c #adcc31",
+"as c #adcc33",
+"FU c #add01a",
+"l5 c #add119",
+"x5 c #aec24f",
+"i0 c #aec342",
+"CU c #aec536",
+"EA c #aec632",
+"qr c #aec63c",
+"vT c #aec735",
+"tD c #aec738",
+"BK c #aec745",
+"xb c #aec92e",
+"mq c #aec93e",
+"yI c #aecb35",
+"mx c #aecb3b",
+"va c #aecb3d",
+"E4 c #aecb3f",
+"pD c #aecd31",
+"cf c #aecd41",
+"#9 c #aece2d",
+"hP c #aece2f",
+"of c #aecf26",
+"yZ c #aecf3a",
+"DK c #aed008",
+"Ci c #aed11b",
+"uo c #afc350",
+"ya c #afc354",
+"oI c #afc44b",
+"ik c #afc53e",
+"Bv c #afc638",
+"zc c #afc836",
+"nl c #afc839",
+"mE c #afc853",
+"#X c #afc94c",
+"C9 c #afca23",
+"gT c #afca3b",
+"D6 c #afca45",
+"E9 c #afca47",
+"cz c #afcc36",
+"kZ c #afcc3c",
+"Fr c #afcd1f",
+"pS c #afcd37",
+"CA c #afcd39",
+"qA c #afcd3b",
+"D9 c #afce33",
+"Ai c #afd029",
+"mu c #b0c647",
+"mN c #b0c64a",
+"iP c #b0c741",
+"yJ c #b0c745",
+"Dd c #b0c92f",
+"dy c #b0ca42",
+"t8 c #b0ca4f",
+"i# c #b0cd37",
+"s8 c #b0cd3d",
+"Ch c #b0cd41",
+"At c #b0ce38",
+"DC c #b0cf1a",
+"zA c #b0d02f",
+"l. c #b0d138",
+"xY c #b0d42a",
+"mX c #b1c645",
+"n3 c #b1c740",
+"ok c #b1c749",
+"Dr c #b1c83c",
+"nW c #b1c842",
+"b# c #b1c844",
+"cA c #b1c941",
+"wn c #b1c959",
+"i1 c #b1ca30",
+"y# c #b1ca3b",
+"od c #b1ca55",
+"hQ c #b1ce3e",
+"oD c #b1d035",
+"El c #b2c84c",
+"BE c #b2c945",
+"wf c #b2c947",
+"AK c #b2cb32",
+"ES c #b2cb3b",
+"iz c #b2cb56",
+"j9 c #b2cd3e",
+"DV c #b2cd4a",
+"Dq c #b2ce22",
+"cW c #b2ce45",
+"f7 c #b2cf25",
+"aU c #b2cf3f",
+"mb c #b2cf43",
+"lU c #b2d11e",
+"nQ c #b2d138",
+"ej c #b2d231",
+"v0 c #b2d33a",
+"uI c #b3c84f",
+"fr c #b3c94b",
+"Fd c #b3ca44",
+"qN c #b3ca46",
+"lq c #b3ca48",
+"gK c #b3cb41",
+"wU c #b3d044",
+"Fq c #b3d21f",
+"CV c #b4c751",
+"zC c #b4c946",
+"Fx c #b4c950",
+"zw c #b4cc5a",
+"nw c #b4cd33",
+"#Y c #b4cf4e",
+"jx c #b4d02e",
+"l7 c #b4d143",
+"sQ c #b5c469",
+"g2 c #b5ca47",
+"qw c #b5ca4b",
+"wa c #b5ca51",
+"jG c #b5cb4c",
+"BD c #b5cb4d",
+"Cn c #b5ce32",
+"bP c #b5d131",
+"zi c #b5d149",
+"tR c #b5d244",
+"w0 c #b6cb48",
+"qn c #b6cb52",
+"ET c #b6cc50",
+"wJ c #b6cf3f",
+"xS c #b6d048",
+"lM c #b6d24a",
+"An c #b7cc49",
+"kK c #b7cd4f",
+"do c #b7d448",
+"zm c #b7d63d",
+"wC c #b8c575",
+"wx c #b8c76c",
+"uX c #b8d159",
+"mJ c #b8d350",
+"q. c #b9cc56",
+"g1 c #b9cd52",
+"z5 c #b9d453",
+"AZ c #bacf58",
+"DN c #bad14d",
+"Eu c #bad455",
+"hn c #bcd351",
+"yi c #bcd44c",
+"A0 c #bdca7a",
+"A8 c #bdd445",
+"bQ c #c1d750",
+"E2 c #c1d951",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.#.#.#.#.#.#.#.#.a.a.a.a.a.a.b.a.a.#.a.a.b.b.b.b.a.#.#Qt.c.d.e.d.cQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.f.f.#.#.#.#.#.#.a.a.#.f.#.#.a.a.a.a.#.#.fQt.c.d.e.d.cQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.c.e.g.e.e.e.e.d.d.c.cQtQt.f.f.#.fQtQtQtQtQtQtQtQtQtQtQt.c.d.d.d.d.cQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.c.e.g.e.e.e.e.d.d.d.d.c.c.c.cQtQtQt.cQt.cQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.f.f.f.fQtQtQtQt.c.c.d.d.d.d.d.cQtQt.fQt.f.f.f.f.#.#.a.a.b.b.h.b.fQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.f.#.a.a.a.#.#.f.fQt.c.c.d.d.e.e.dQtQtQtQtQtQtQtQt.f.f.#.#.a.b.b.a.fQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.f.#.a.#.#.#.#.f.fQt.c.c.c.c.d.d.d.c.c.d.d.e.g.g.g.g.g.e.d.d.c.cQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.#.#.#.#.#.#.f.f.f.f.f.f.f.fQtQtQtQt.c.c.d.e.e.g.g.g.e.e.e.d.d.cQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.i.j.k.l.m.n.o.p.q.a.r.s.t.u.u.v.b.w.x.x.y.#.z.A.B.A.CQt.i.A.n.DQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.i.E.C.C.n.f.m.F.F.G.a.H.I.I.H.v.J.a.K.r.K.v.H.L.M.s.M.N.N.a.G.#.fQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.O.B.A.P.l.Q.B.R.S.T.c.c.U.V.W.X.iQt.n.F.Y.M.Z.0.1.2.3.4.5.6.7.G.fQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.R.EQt.k.8.k.i.c.c.c.9.U.T.9.c#..P##.x.Z#a.3#b#c#c#d#e#f.##g#hQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.c#i#j#k#l#m#n#o#p.m.f.a.w.w.v.b.b#q.h.0#r#s#t#u#v#w#x#y#z#A#B#C#D.dQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.c#E#F#G#H.R###I#J#t#K#L#M#N#O#P#Q#R#S#T#U#V#W#X#Y#N#Z#0#1#2#3#4#5.dQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.d#6#7#8.R.L#9a.#N#Wa#aaabacadaeafagahaiajakalamanaoapaqarasat.GauQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.cav.cavQt.f.f.f.#.f.fQt.c.c.d.dawaxayazaAaBaCaDaEaFaGaHaIaHaJaKaLaMaMaLaLaKaJaNaNaOaPaQaRaSaTaUaVaW.h.#Qt.d.c.c.f.#.#.#.#.f.fQt.f.f.f.f.fQt.fQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.caXaYaXaZa0a1a2a2.Z.va3a4a5a6a7a8a9b.b#babbbcbdaKbebfbfbfbfbgbgbhbibibjbkbkaMaMaMaLaKblaJaHbmbnbobpbqbrbsbtbubvbwbxbybzbAbBbCbDbE.#.#.#.#.#.f.#.f.f.fQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtavbFbGaYaZbHbIa2a2.JbJbKbLbMbNbObPbQbRbSbTbUbVbWbXbYbYbZb0b1b1b1b1b2b3b3b4b4b3b5b6b7b8b9c.c#aMcacbcccdcecfcgchcicjckclcmcncocpcqcr.a.#.a.#.#.#.#.f.f.fQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtavcsctctaZa0cua1cu.RcvcwcxcyczcAcBcCcDcEblaMc#cFcGb8bZb0cHcIc#c#c#cJcJcJcJcKb4b5cLcMcNcNcOcPcQcRaLaHcScTcUcVcWcX#bcY.y.8.U.m.N.0cZ.a.f.#.f.f.f.fQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQta0avc0c0c0a0a0avcs#kc1c2c3c4c5c6c7c8aMaMc9d.d#b1dab1b1cHdbc#c#c#c#cJcJcJcJcJdcb3b5dddedfcNdgdhdidjdkaLaJaOdldmdndodp.Y.ddqdr.Pdsdt.#QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQta0a0bHcucua0cs.gdudvdwdxdydzdAdBaJbWdCdDdEcHcQcQcQcIcIdbcIc#c#c#c#bjbibjaMaMaMaMbjdadFdGdHdIdJdJdIdKdLdMblaIdNdOdPdQdR.i.gdSdT#IdU.f.c.c.c.c.c.c.c.c.cQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtcubIa1cuavaXdVdudWdXdYdZd0d1aJaLcNd2dfb7d3d4d5c9cIdbcHcHdbdbc#dbd6dId7bibjbkbkbkd8d9e.e#b7b7eaebececedeeaMaIefegeheiej.p.Vek.B#h.c.d.d.d.d.d.c.c.c.cQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.fa1elelcu.dduemeneodYepeqaJaLerd.dhdIb7escQetcIcQb1b0bZb8b8bZbZb8euecevewd6d7exbieyezeAdadaeBeCeDeEdFb7eeeFaMaKaHeGeHeIeJeKeLeMeN.g.e.e.e.d.d.d.d.c.cQtQtQtQt.f.fQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.felela1a0.e.eeOePeQeReSblcRd4cRcQd3cPcPcPeTdaesdFb8b8b8b8bZb0b0b0d7d7d7d7exexexexeUeVdadad9djeWcRaKeXeYesdFeseZaKaIe0e1e2e3e4e5e6du.e.d.d.d.d.d.d.c.cQtQtQtQt.f.fQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.fe7.xe8dSe9f.f#fafbfcaKcKb3b3fdfeffd8esb8fgdfdKfhcNcLfibWcJcRcRaMfjaJblaKaLaKfkflfmdFdFdFdFdFexfnbgaMcRcRdaeUd6escRfofpfqfrfsftfudqfvcvfwcv#Afxcv.c.cQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.f.Jfy.dfzdwfAfBfCfDblcQfEfFb1fGfHfIeTdFdIdKfJfKdCficJaLbefLfMfNfOfPfQaifRfSfOaJblaKaLfTfUfVdFdJfWeWfXfYfZf0f1f2ewdJfZf3f4f5f6f7f8f9.R.i.EQtg..ig#QtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.fgagbgcgdgegfepggaLd8ghgigjfHfHfHdagkglgmcNdJdacRaKgngogpgqgrgsgtgugvgwgxgygzgAgBgCgDaHblaLgEgFgGcNf2gHdad8eBgHdHdIgHaMaJgIgJgKgLgM.qgN.z.zgNgO.f.fQtQtQt.c.c.c.cQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.fgPgQgRgSgTgUeqblb4ddgVb3fHfHfHgjfFb6b5d3cQaMaKgWgXgYgZg0g1g2g3g4g5g6g7g8g9h.#Oh#hahbhchdheaKhfhgcNhhdGdFdahihjdFdJhkf0aLaNhlhmhnho.h.Z.b.b.b.Y#g.#.fQtQt.c.c.c.cQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQthphqhrhshthuaJcRb5hvb3fHhwhwhxhyb7cPhzaLaJhAhBhChDhEhFhGhHhIhJhKhL.Q.m.ShM#.hNhOhPhQhRhShThUhVaKd8hWhXhYd3d8d8b3eshZh0h1h2aIh3h4h5h6h7h8#e.0.Z.I.#.fQtQt.c.d.d.cQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.ch9i.i#iaibicaLd.b2b0gjfHhwidiehyifbWaLigihiiijikiliminioipiqirisit#jiuiuivdViwix.9.7iydQiziAiBiCaKcRcQd#iDdad8d#d8h0d8cQiEaLiFiGiHiI#uiJ#riKiLiM.a.#.f.c.c.d.d.d.cQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.diNiOiPiQiRblercRiSiTfHfHiUiVieiWiXcRf3iYiZi0i1i2i3i4i3i5i6i7ioi8e8i9j.j#jajba0jca0jdjejfjgjhjijjjkjlaLcRjmesdajndbcIcQcQjod4cRjpjqjrjsjtjujvh8.1.b.#.f.c.c.d.e.d.cQtQtQt",
+"QtQt.c.cQtQt.f.fQtQtQtQtQt.c.d.ejwjxjyjzbljAjBcRjCcKfHgjjDjDiUiSaMgnjEjFjGjHjIjJjKjLjMjNjOjPjQjR.UjSjTjUcqjVjWjXjYa0jbcichcqjZj0j1j2j3aKj4d7dFiDj5cRj6fIdahZb5aKj7j8j9k.k##qkakb.#.fQtQtQt.c.d.d.cQtQtQt",
+"Qt.c.d.d.c.f.#.#.mg.kc.T.Tkdkeh9kfbQkgaJkhb6kic#aMcRcQkjb5bXkkaMklkmknkoazkpiOcweOeneOeOkqiOkr.#ksktkukvkwjbkxkykzkAbxa2bDkwkBkCkDkEkFkGaLkHkIb7hibgbgbgcHb0b8c#aIkJkKkLkMenkNkOeOeO.cQt.a.aa0avQtQtQtQt",
+"Qt.c.d.d.c.f.a.a.f.jfwe8#HkPkQkRkSbRkTaLkUcNdaetcRkVb4esesd8cQkWkXkYkZk0.7#hk1#..fQt.c.c.cQt.a.fk2k3k4jdcjk5k6clk7k8k9l.l#cqlalblcldlelflgaLfVdFd9bhbgbgcHb0b8b1aMlhliljkMlklljNenen.c.f.b.bcuavQtQtQtQt",
+".fQt.d.d.c.f.#.a.lQte8.VlmlnlolplqlrlsaMltb7d8lucIfIcPdacRaLfolvlwlxlyhO.C.d.c.cQtQt.d.d.d.c.f.f#3.elzlAlBh6lClDlElFlGlHlI#vlJ.9lKlLlMlNlOlPaLlQd9d9hihib1b0bZb1cRlRlSi0lTi8lUlVeOkqQt.f.b.acua0QtQtQtQt",
+".fQt.d.d.c.f.#.a##.fe8.Tlmfw.ClWbalXblc9d#dacQlud3esbXjoaLlYlZl0l1l2.s.CdS#G#3l3QtQt.d.e.e.eQtQt#3l4l5.Bl6l7l8l9m.aNdNm#mambmcmdmemfmgmhmimjaIfMbheUeUeUb1b1b0b1cQaKbTmkmlmmmnmokqmp.f.#.a.acua0QtQtQtQt",
+".fQt.c.d.cQt.#.a.FgO.c.ccv.m#fmqmrbUaLhzcIlucRetbZdJcLd5aJmsmtmumvlB.V.e.gmw.T.n.fQt.d.e.g.g.c.d#Glo#odsmxmymzmAaLmBaJmCmDmEmFmGkymHmIiJmJmKmLaJbge#eaeab0b1b1b1esergnmMmNmOa9mPmpiO.a.a.#.#a1cuQtQtQtQt",
+".fQt.c.d.cQt.#.amQ.Bl3ek.C.amRmSmTbVc9c.cRmUc9dbdImVb7aMj3mWmXmYmZm0#Bm1#8m2.n.o.#.f.d.gdu.g.d.edVm3m4aUm5m6m7aKm8dKm9bln.n#nanbncndnehMnfngnhaNbed9eaeab0cHcHb1dFniaKnjnknlnmnnmpiO.b.a.f.fa1a1.fQtQtQt",
+".fQt.c.c.d.c.f.ano#2fwdrk1#enpnqnrbWnsjmcRc9c#b4cNntdaaKnunvnwnxnyne#BixnznAnBkb.b.#.d.gdudu.d.enCnDnEnFnGnHaKnInJdKnKnLaInMnNnOjhnPkd#Bk1nQnRnSnTbge#eab0cHcHcHdFkiaMnUnVnWnXnYkqiO.b.aQtQta1el.fQtQtQt",
+".f.fQt.c.d.c.f.#.J.o.9#mhNmRnZe1aKbXn0dacQcRcQesfhn1cRlsn2n3n4n5n6mwdq#E.V.m.HhO.a.f.edVdVdu.dQtn7n8n9o.o#aKoadFkIdIdJobblaImCocodoe.Yneiuofogohoibfhie#b1cHdbcHesdacQblojokolomeOmp.b.aQt.celel.fQtQtQt",
+".#.f.fQt.d.dQt.#.H.Ym0.d##on#WoobebYb8b0dbdbb1b8cNb2aLgXhDopoqoros.e.e.eQt.f.b.a.l#motouovdul3.ZowoxoyozaLhje#eUd8fZd8cRcRoAaKlPoBoCoDoEmw.BoFoGf4bljAdad3b4cQdcb4d8d#caoHoIoloJoKoLno##.c.ccqoM.fQtQtQt",
+".#.#.fQt.d.dQt.#.b.GoN.d.aoOa#oPbebYbZb1dbcHb8gmdIcQoQoRoSoToUoVos.e.e.e.c.f.#.f.UmwoWoXkQm0nooYoZo0o1aKo2o3f2o4o5bfero6o7dacRblo8o9p.p##j.cpapbpcpdpecRb4b3b4dbcQcQcPaLpfpgphoJpipj####.c.ccqoM.fQtQtQt",
+".#.#.#Qt.e.eQt.#hO.b.d.d.bpkaaaGbebZb1cHcHb0gmdebYaMplpmhFpnpojJos.g.g.g.e.d.c.d#Gpppqprps.sptpupvpwaKpxpydIdJf1cRoApzfZesdFpAc8lPpBpCpD.RdrpEpFpGdBpHaMd8b1d8etcRcQhZaMo#pIpJpKpioK.m.m.c.ccqcq.fQtQtQt",
+".#.#.#Qt.e.g.c.#m4.H.ddr.vpLabaNbfb1cHdbcHb0dedecGbfbTpMhGpNi5pOaw.g.g.g.e.e.d.epPpQot#lpRpSpTpUpVaMcRpWdFdJb7escRfYo5cRdaeAhiblpXpYpZp0.mekgbp1p2p3lYaLd8b0d8cKcRcQdhcRp4p5p6mooKoK.R.m.cQtjUjU.fQtQtQt",
+".#.#.a.f.e.g.c.#p7.I#m#m.Zp8acaIbfcHcIcIdbb0dedeb2pep9q.q#ipi6kNeO.d.e.e.e.e.e.e.gm3.WpRqaqbqcqdaLdad8d8eshZcGesdaqedadaqfc#aLqgqhqiqjqk#2.dqlqmqnqoaIaKd8b0d8cQcQdaqpcQaIqqqrqspjoK.R.mQtQtjTjTQtQtQtQt",
+".#.#.a.f.e.g.c.#.0.InzoN.ZqtadaHbfdbcIc#dbb0dededaquqvqwqxiqqyqzmpQt.c.d.d.d.d.d.c#hm4qAqBqCqDaJjAeTd8d8qEd3dab1bWdadFiDc#aKqFqGqHqIqJ#dqKoNqLqMqNqOqPaLb3b5cQcQd8b5qQdaaJqRqSqTqUoK.R.mQtQtj.j.QtQtQtQt",
+".#.#.a.f.g.g.c.#.0.HqV#jiLqWaeaIbgcHc#c#c#b1deded8qXqYqZq0q1ipkfbO.a.f.f.f.f.f.#.qq2q3q4q5qDaJq6aLaMcRc.q7esd8dbcQd8q8b1aMq9r.oZr#je.s.yra#jrbrcrdrerfaLeTdFdbcQb3dJrgbZblrhrijHrjpj.R.m.fQtj.j.QtQtQtQt",
+".f.f.#.f.c.d.c.f.Z.wrk.diLrlafblbgcHc#c#cIb1debYcRrmrnrorpomkMrq.#.#.f.fQtQtQt.arrrsrtrurvaJq6rwoAcRdcdaesesb3d8b1dah0aMgnrxryrzcYrAcirB.c#k#jrCrDrErFaLeBdFlucRbWdFcMb5aKrGrHrIrjpj##noQt.crArAQtQtQtQt",
+".d.c.f.a.a.#.c.c.z.l#H.CiLrJahaLbkb3cKcKbid6evd7rKrLrMrNrOrP.C.Eksk2l3l3#GdurQrRrSrTrUrVaLpxpxoAb4b5b6b6b5b5b5b6dIrWaMnrrXrYrZr0bxr1r2r3r4r5mfr6r7r8r9aLs.esjAaMcRcJb3cQaKs#sasbiOkqiLiL.c.ecsavQtQtQtQt",
+".e.d.f.aiL.b.c.dQtQt.c.AdsscahaMbjb3dcdcexd6ewbiaJsdseg6l3ivi9r4bFsfdreksgm3nDn8shsisjaMdad3ercRb2skskcLb5b2b5cLsldFsmsnsospsqsrcjssstsusvswsxckiKsyiCaLeFexaKaLaMcJcKcQaMszsAsBmpkqiKiK.cducsavQtQtQtQt",
+".d.cQt.#.h.b.c.e.k.m.E.zrrsCsDaMbkb4dcdcbjexdIbiaKfRgwg7.9kej.jUsEsFsGsHsI#ysJsKsLsMaKaMcHd8cJetb2b6b5b2b4dcb3b5sNdFsOsPsQg2sRsScssTbHsUsVsWsXsYl2pusZaLeFs0cRbfcJcRcQcKaMs1s2s3mpeOiLiL.c.gava0QtQtQtQt",
+".c.cQt.#.h.a.d.e.8.n.Pnol2s4s5aLbkb4dcdcbkbid6biaLs6gxg8.V#7jabxs7jTg..liKs8s9t.ozfTt#tad8d8d#bWb2b2b2b4cJcJcJb4dJfEcRlRtbtctdtejStftgthsxchtitjk0tktlaLexfWd8bVc#cJd8dbaMs#s2tmiOeO.h.h.d.gava0QtQtQtQt",
+"QtQt.f.#.b.a.d.e.8.m.P.MtntktoaLaMb4b4dcaMbkd7biaLnHgytp#ntqjaoMbDkwtrtstttutvtwaLtxtydFb2tzltesb2b2b4cKbgbgbgcJb2gkcHaLtAtBtCtDcjtEtFtGtHsx.wtItJtKfSaLextLdafZdcdbb0b4aLtMtNtOiOeO.b.a.d.ea0cuQtQtQtQt",
+"QtQt.f.#.b.a.d.e.i.o.z#qjutPtQaKaMb3b3b4aMaMexbiaKfOgzh.#AdVjdjejbk5h6tRtStTbmaKeBtUdIdJdEiDesesb5b2b3cKbgbfbfbgd8dFn0d5bltVtWtXtYtZlKt0jca0.n.1t1t2t3aLd7dGeso2d8eTcGcQaKt4t5t6iOeO.#.#.d.da0cuQtQtQtQt",
+".f.f.f.#.b.a.d.enA.p.wpRt7t8t9blaMb2b5b2aMaMbibifkaJgA#O#hiwa0jWu.u#mFuaubmCaKfUucuddHeagkdad8b1b6cLb5b4cJbgbfbgcQb2b7dEh1aKueufuguhuikAm2nzujukulumaIfXb6dgdab4dacPfFcQaJunuoupbOeOQtQt.d.ccua1.fQtQtQt",
+".f.f.f.#.b.a.d.e#hnB#fuqur#YusaJaMb5cLb6bkaMbiexflblgBh#.r#6jcjXksutpuuuuvaKuwfWf1e.pyeUeseTjod8cLskb6b3cKcJbgbguxb3bYbYdac9uyuzuAuBuCuD.m.erPkpuEuFbleycLdgd8cQdadEfEcRuGuHuIrIbOen.c.c.cQta1a1.fQtQtQt",
+".f.fQt.f.b.a.d.e.f.G.JiL#x#OuJaHaLdJcMdddad8eyeUuKaKuLuMuNfwjcsFmfuOuPuQaLuRuSdJd8uTaMcReTkidccHb7uUhvdFhZd8cQd5dbb1b8bYb8b0cIfTuVuWuXj0uYuZu0u1riu2bfn0dIq8fHfed3b0fiaMaHu3u4u5bOen.d.dQt.fa1a1.fQtQtQt",
+".fQt.cQt.b.a.c.d.m.a.v.Z.5u6u7u8aKb8cNdedFd9u9eVdFaLv.v#vahOcuj.jWvbvcaNvddKdKdIvepxoAj4d#dad8d8vfd8dakjdEesesdab1b0bZb8b8bZb1bfuzvgvhvivjePvkvlvmvnaMcOdIcGfHvocFesd#aLvpvqvrvsiOeO.e.d.f.#ela1.fQtQtQt",
+"QtQt.cQt.b.bQt.c.n#2noe7lBvtvuvvblfEdIcNtLvwe.esdFfjaHvxvyvzlcjbcqvAvBdNblvCnKdJd8bVvDfXb3dFhWkiaMvEvFcRvGfFdJcLb8bZb0b1b1cHdbbgaKaJvHvIvJc4vKvLvMvNfHvOvPvQvofHiDdauxblvRvSvTvUiOeO.e.d.#.bela1.fQtQtQt",
+"Qt.c.dQt.b.bQt.c.AgN.z.D.W#evVvWaJqehWdIdHeadFesdFvXaJhdvYvZjfjXu#v0v1m#cSblv2obcRo6v3cRb1kjb1aMv4v5v6v7aLc9fFv8b8bZcHdbdbcIc#bgexv9aIgDw.w#wawbwcaKfHgib3wdfefHd3b4jBaJwewfwgwhiOkq.d.c.a.helcuQtQtQtQt",
+".c.d.d.c.b.b.fQt.zgN.zl3wigOlxwjaIc#cFq8dIdJdFeUeswkaLwlwmwnjgsVwowppLwqwrwsaIvNwteyesdaqfc#aMwuwvwwwxwytAaKwzdFbZb0dbc#c#c#c#bhgHwAaJaHhAwBwCwDwuaMwEwFiVwGiUgjeswHeraHwIwJwKwLiOkq.d.c.hiLelcuQtQtQtQt",
+".d.e.e.c.b.h.#.f###2.n#Hpp#BwMwNwOaMcKdEdJdJucwPeseswQaKwRwSwTa1jWelqkwUmEwVsDaIpxd9dFeCc#aKwWwXwYwZw0w1w2w3aLetb1b1cIc#c#c#cIhipAdFw4pHaLw5w6w7bfcRiTfdw8w9x.b3b3uxaLx#xaxbxcllmpmp.dQtiLiKelcuQtQtQtQt",
+".e.e.e.c.b.h.#.f.o.o.mxdxepp#yxfxgcaaMqeb7dHpyeBxhdFuRhfo#xixjxksFxlxmxnxoxpxqxraKcRgHxsaLxtxuxvhHxwxxxyxzxAxBxCc#dbcIc#dbcHb1d9dauweVdFhhesaMpxxDxEfHxFxGiexHxIvQkVxJxKxLxMxNxOmpmp.dQtiLiKela0QtQtQtQt",
+".d.d.e.c.a.b.#.f.y.#.fxPxQpQxRxSxTueaLffdJebf1cRveeFxUxVaKrLxWxXxYxZe8.Ox0x1x2x3kGblc8blhAx4x5x6x7x8x9y.y#yaybaHfTbfbgbhb1d9b1hio2d8ycdIecyddbcRxHyefHcKjCfHyfgVygaMpVyhyiyjykpjkqeO.e.d.biLelcuQtQtQtQt",
+".c.c.cQt.f.f.fQt.f.fQt.c.e.d.fylymrGblyncNyob3cRcRfXdHdIypblyqyrysjejSytyuchyvywyxyyp4yzyAyBwM.obxjVavr4yCyDyEyFp4aJaMdFe#escRcRbkdcb4b3b5b2dccKd8d8cQcRcQcQgjess0aKyGyHyI.veK.wQt.eovov.c.#.b.b.fQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtePyJyKlscRyLyMescRcRhzb8v8fEcRlRyNyOyPyQyRySyTu#yvyUyVyWyXyYyZsxy0r1y1y2y3y3y4y5y6y7gDbly8oboby9aMcKdcdcdcdcdcdcdckhfIvGdbdcdcdccRz.lPz#zaiLk1kb.v.f.ddVov.eQt.a.b.fQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtzbzczdzeaKygfJcLescQd#q8gmzfd8aMhAzgzhzi#szjzkzl.zzmznzozpzqk0xmjYsuzrbHzsztjWzuzvzwqCzxaIblaKcRcRdcdcdcdcdcdcdcdccQcQdcvGfIvGvGpxblzyzzzAm3kQg..a.a.#.c.d.cQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtbOzBzCzDv4cJv8v8dJesd3b8dJdggkcQaKp4zEzFzGur.Sdu#8zH#1zIzJ#u.3.FjXsxzKzLzMtGzNzOzPzQzRkmdNaNzSbjdFb4dcdcdcdcdcdcdccQcQcQdbcQcQcQaKp4zTzU.fzVzWm0##.b.aQt.c.c.c.c.cQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtkqzXzYzZz0aKd8bYdIb8cGb0dFb7q8fEz1aLz2z3z4z5nfz6nez7l4l3.A.nz8kcjSksz9A.kxA#ks#i.RAaAbAcAdAeaKvwAfb2dcdcdcdcdcdcdcfIdcdbkhcQcQcQblAgAhAiAjAkpq#Ano.a.#.c.e.d.cQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQteOAlAmAnAow3aLcQb8bXgkb0daesdFb7dFApaLwlAqArAsAtAu.j#mxPxddSl4#H#kAvAwAxAyAzaXne.gf9AAABACADAEd8AFb3dcdcdcdcdcdcdcdccQdcc.jodcwHbdAGAH.xivzVdV.k.a.a.f.e.g.e.dQt.fQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtenAIAJAKALAMANaLvGb5hWeTcHdbdcd8das0wkaLaJAOAPAQARASATkpc2AUa8AVl4AWkxAXbtcv#mjwrPe9gbAYAZA0A1aLwHdcdcdcdcdcdcdcdccQcQcQwHc.khA2A3A4#L#x.fdrdr.Dno.#Qt.e.g.g.dQt.fQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQteOA5A6A7A8A9B.aIjAd8cGcPb4luwzwzwHeswArwB#blaHBaBbw#xfBcazBdBekaBf#pBgBhje.H.vlpkpu1BiBjBkBlBmBncQdcdcdcdcdcdcdcdcjocQcQkhdccQfIBoBppursBq.H.B.A.A.#.f.c.d.e.e.cQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtkqBrBsBtBuBvBwBxaJcResb7b5cQcRcRBybgbhhihibhbffToiBzBABBBCBDBEBFBGaW.ZBHBIe3sJBJBKBLBMBNBOBPkVifBQdakhcQcQfIdccQjodbdbdbdbdbdbdbbeBRmDBSBT#v.Fcve8.#.b.b.aQt.edu.g.cQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtmpBUBVqyBWBXBYBZB0aKc#hZfFnsd.kVcRbfbghie#dHeahibfblB1B2BaB3B4B5B6B7B8B9C.C#CaCbCcgIfpnTaLcResCdCedafIcQcQdccQcQcQdbdbdbdbdbdbdbbfaJefCfCgChl6.SCi.#.hiL.h.f.edudu.dQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtiOCjCki6ClCmCnCoCpw3CqcJdEdEdad8cKbfbghie#dHebead9pxpezSuGuzCrCsCtCus6CvB2CwlgaJblaLcRfHCxxHCyb3Cxd8vGdccQdbdccQcQdbdbdbdbdbdbdbbgCzblrvvxv1CA.b.U.f.a.h.b.f.d.g.g.cQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtbOCBCCCDA6q1CECFCGtWCHaKaMnidadacFbgbghieUeadHdHe#dacRaMaMaKaLaLaMaKaMaMaMaMaMfZdjhWhvCICJCKwdiWfecQdbvGdbkhc.wHkhdbdbdbdbdbdbdbbhCLCMaJqDCNvVCO.CQt.f.#.#Qt.c.d.dQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtiOCPCQCRCSA6CTBuCUCVCWCXlYpxCYnsb5b0b1b1b1b1b1b1b1cFbWb4b4b1eTeTeUCZC0kIC1dFdFdFdFb7b7vPb3iView8C2cQdcfIcQcQjoc.dcdbdbdbdbdbdbdbbhcRC3uGaHC4C5C6C7.c.d.c.c.c.c.f.f.fQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtmpC8C9D.D#DaA6DbDcDdDeDfDgaIaLfIcGb8bZb0cHdbcIdbcHeTeThZfFgkbZesdFdJdIdIdJdJb7dFesb1jmDhDiDjieiefHfHdcvGcQcQdckhcQdbdbdbdbdbdbdbbhaLaLpdaIuVDkDl.GQt.cQtQt.c.c.#.#.fQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtkqjOi7DmpnDci3DnDoDpDqDrDsDtDuc9dEbYbYbZcHcIc#cIdbbWb1esesd8dcwzDvveDweBd9bio2j6BycKcKcKcIDxhxDyb3gjdcvGcQcQwHA2fIdbdbdbdbdbdbdbbgaMaKaKkGDzDADBlB.f.#.b.a.f.cQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtkqDCDDDEDFDGDHDIDJDKDLDMDNDODPjpblcIb0b1cHdbcIdbdbd8d8eTbWdccQcJc9aMaMcRaMbhbgcRcRDQcIcKcKfHDRDSifdabkpxaKblbdA3BobebfbgbhbhbhbgbfaKrFDTDUv#DVDW.A.f.#.b.aQt.c.d.d.cQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQteOeOeOeOeOenososawrRDXDYDZD0D1D2aIaMcRcQdaesesesb4cQcQcQcQcQb3vGcRaMc#c9cIcQd8d8h0bWb4d8b3b1yefis0z.blp4AgAGA4BpD3aJblD4cRaKaMaKt3p4egD5D6D7.Mg#QtQtQt.c.d.e.e.e.cQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.c.d.d.e.e.e.d.cgO.qiMD8tnD9pSE.E#EaEbaKaMd.qeeTd8cQcQcQdab5dJdFc#cJcJcJdbd3dEb9dFesb1jmvGetc#oAaKlPzyzTAhAHpkpuEcgDblC3EdaLaKEep4EfEgEhEicY.PcvQtQt.c.d.d.e.e.d.cQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.c.c.c.d.d.d.c.ck1#g#fdsxn#vEjEkElEmEnEoEpaKaMcQd#cPhZdhqpqQrgcMb3cQcQd8b2cGfFn0cPd#uxBybVoAEqpVyGz#zzzUAi.x#xrsErCfaGaJuGEsaKEtegEgEuu6.4.B.R.C.f.f.fQtQt.c.c.cQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.c.c.c.cQt.f.z.vEv#dEwExEyEzEAEBECEDEEq9EFcaaLaMcRcQdabZb5cQcQcQcQd8cQcQcRBnaLblaJoiEGEHEIyHzazA.fAjiv.fEJvZCgEKuQaHaIELEMENEhu6iJ.aEOfwQt.#.#.#.f.fQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.f.f.fQtQtQtQtQtqK#2.G.K.uBHrrgeEPEQERESETEUEVEWoHpftwp4aIaJblaKaLaMaMaMaLaKblaHaHEXEYEZE0E1xLE2yIiLm3zVAkE3#j.q#vE4E5E6E7uVDzE8E9F..2.aQtoN.9.8.#.a.#.f.fQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.f.#.#.#.f.fQtQtQtk1gO.#lJcY.7.6.GF#jJkMFaFbFcFdjGoIpgvmp5qqqRFerGFfszx#s#tMt4unuHu3FgFhlqwJxbxMFirck1kQzWpqdV#j.k.ztsa.FjFkFlDAE9aV.6.yFm.Tm0Qt.P.#.#.#.fQt.c.c.cQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.f.#.#.#.#.#.f.f.foE.QqK#2FngNno#2FoFpFqFrjPFsFtFuolphpJp6qrBjrirHsasAFvFwtNBCuoFxqSFyFzFAvUqzxNnDeKkbg.m0#A.k.D.Alm.C.sD8FBFCFD#w.M#g.m.j.RQt.flB.#.#Qt.c.c.d.d.d.cQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.f.#.a.#.#.#.#.f.f.m.D.n#h.DFE.m.BFFFGlVFHFIFpnYisoJoJpKmoqsqTjHrIFJFKFLFMtmFNFJFOFPvsFQwhFRFSFTeO.w.v.a##no.ano.Ae8FU.T.CFV.wlBlBqK.l.P.f.Q.PlBgN.#.fQt.c.c.d.d.d.cQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.f.#.#.#.#.#.#.#.#.f.fQtQtQt.c.c.ceneneOkqmpmpkqeOoKpipioKpjqUrjrjiOmpmpiOiOiObObObOiOiOiOiOmpmpkqQt.f.a.b.a.a.#.#.#.#.fQt.cQt.f.#.#.#.a.a.a.a.#.#.fQtQtQtQt.c.c.cQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.f.f.#.#.#.#.#.#.f.fQtQt.c.d.d.denenkqmpiOiOiOmpoLpjoKoKoKoKpjpjkqkqeOeOeOeOeOeneOeOeOkqmpmpmpeO.e.d.#.a.#.fQt.f.b.h.a.f.d.c.#.a.#.#.a.b.b.a.#.fQtQt.f.f.f.fQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.f.f.#.#.#.#.#.fQtQt.c.d.d.d.d.cQt.f.a.b.b.bno##.m.R.R.R.R##iLiKiL.h.b.#Qt.c.d.e.e.e.d.d.d.govdV.cQt.c.e.e.c.biL.h.#.cQt.b.h.#.#.a.b.b.a.#.fQt.f.#.#.a.a.#.fQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.c.c.cQt.f.#.#.#.#.#.fQt.c.d.e.dQt.f.#.#.a.a.a.ano##.m.m.m.m.mnoiLiKiL.h.a.#Qt.c.d.d.d.c.cQtQt.ddVov.d.c.e.g.g.d.a.h.b.#.cQt.a.b.#.f.a.b.b.a.#.fQt.f.a.a.a.a.fQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.c.d.e.d.cQt.f.#.#.#.#.fQt.c.d.e.c.#.b.b.a.#.fQt.c.c.c.c.cQtQt.fQt.c.d.c.d.d.d.d.cQt.f.#.a.hiLiL.b.c.e.c.c.d.e.e.dQt.f.fQt.c.c.f.fQtQt.#.a.a.#.fQt.f.f.a.a.a.f.c.d.cQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.c.e.g.e.d.cQt.#.#.#.#.fQtQt.c.d.c.a.b.a.a.#.fQt.c.c.c.cQtQtQtQt.c.edu.g.g.e.d.cQt.f.#.b.hiLiKiKiL.#QtQt.c.c.c.d.d.d.e.d.c.c.cQt.c.cQt.#.a.a.#.fQt.f.#.a.a.f.cdudu.dQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.c.gdu.g.e.cQt.#.#.a.#.fQtQt.c.d.da0cucucua1a1a1elcqcqcqjUjTj.j.rAcscsavava0a0cua1a1elelelelelelel.b.aQt.cQtQt.f.c.gdV.g.d.f.fQt.c.cQt.#.a.a.#.fQt.f.#.a.#.cduFWFX.eQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.c.e.g.e.d.cQt.f.#.#.#.fQtQt.c.c.cavava0a0cua1eleloMoMcqjUjTj.j.rAavava0a0cucua1a1a1a1a1cucucua0cu.b.bQt.cQt.f.fQt.gdu.g.d.#.#Qt.c.cQt.#.#.#.#.fQt.f.f.#.f.dduFXFY.eQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.c.c.c.cQtQtQt.f.f.fQtQtQtQtQtQtQtQtQtQtQt.f.f.f.f.f.f.fQtQtQtQtQtQtQtQtQtQt.f.f.f.f.fQtQtQtQtQt.f.fQtQtQtQtQtQt.c.d.c.c.f.fQtQtQtQt.f.f.f.fQtQtQtQt.fQt.c.d.e.e.cQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt"
+]
+
+class DesktopEffectsDialog(QDialog):
+ def __init__(self,parent = None,name = None,modal = 0,fl = 0):
+ QDialog.__init__(self,parent,name,modal,fl)
+
+ self.image0 = QPixmap()
+ self.image0.loadFromData(image0_data,"PNG")
+ self.image1 = QPixmap()
+ self.image1.loadFromData(image1_data,"PNG")
+ self.image2 = QPixmap(image2_data)
+
+ if not name:
+ self.setName("DesktopEffectsDialog")
+
+
+ DesktopEffectsDialogLayout = QVBoxLayout(self,11,6,"DesktopEffectsDialogLayout")
+
+ layout17 = QHBoxLayout(None,0,6,"layout17")
+
+ self.packageIcon = QLabel(self,"packageIcon")
+ self.packageIcon.setMaximumSize(QSize(32,32))
+ self.packageIcon.setPixmap(self.image0)
+ self.packageIcon.setScaledContents(1)
+ layout17.addWidget(self.packageIcon)
+
+ self.packageText = QLabel(self,"packageText")
+ layout17.addWidget(self.packageText)
+
+ self.installButton = QPushButton(self,"installButton")
+ self.installButton.setSizePolicy(QSizePolicy(QSizePolicy.Fixed,QSizePolicy.Fixed,0,0,self.installButton.sizePolicy().hasHeightForWidth()))
+ layout17.addWidget(self.installButton)
+ DesktopEffectsDialogLayout.addLayout(layout17)
+
+ warningLayout = QHBoxLayout(None,0,6,"warningLayout")
+
+ self.warningIcon = QLabel(self,"warningIcon")
+ self.warningIcon.setSizePolicy(QSizePolicy(QSizePolicy.Maximum,QSizePolicy.Maximum,0,0,self.warningIcon.sizePolicy().hasHeightForWidth()))
+ self.warningIcon.setPixmap(self.image1)
+ self.warningIcon.setScaledContents(1)
+ warningLayout.addWidget(self.warningIcon)
+
+ self.warningText = QLabel(self,"warningText")
+ warningLayout.addWidget(self.warningText)
+ DesktopEffectsDialogLayout.addLayout(warningLayout)
+
+ self.effectsGroup = QButtonGroup(self,"effectsGroup")
+ self.effectsGroup.setColumnLayout(0,Qt.Vertical)
+ self.effectsGroup.layout().setSpacing(6)
+ self.effectsGroup.layout().setMargin(11)
+ effectsGroupLayout = QVBoxLayout(self.effectsGroup.layout())
+ effectsGroupLayout.setAlignment(Qt.AlignTop)
+
+ layout5 = QHBoxLayout(None,0,6,"layout5")
+
+ layout4 = QVBoxLayout(None,0,6,"layout4")
+
+ self.radioButton4 = QRadioButton(self.effectsGroup,"radioButton4")
+ layout4.addWidget(self.radioButton4)
+
+ self.noEffectsText = QLabel(self.effectsGroup,"noEffectsText")
+ layout4.addWidget(self.noEffectsText)
+ layout5.addLayout(layout4)
+
+ self.noEffectsImage = QLabel(self.effectsGroup,"noEffectsImage")
+ self.noEffectsImage.setSizePolicy(QSizePolicy(QSizePolicy.Maximum,QSizePolicy.Maximum,0,0,self.noEffectsImage.sizePolicy().hasHeightForWidth()))
+ self.noEffectsImage.setMaximumSize(QSize(150,80))
+ self.noEffectsImage.setPixmap(self.image2)
+ self.noEffectsImage.setScaledContents(1)
+ layout5.addWidget(self.noEffectsImage)
+ effectsGroupLayout.addLayout(layout5)
+
+ layout5_2 = QHBoxLayout(None,0,6,"layout5_2")
+
+ layout4_2 = QVBoxLayout(None,0,6,"layout4_2")
+
+ self.radioButton4_2 = QRadioButton(self.effectsGroup,"radioButton4_2")
+ layout4_2.addWidget(self.radioButton4_2)
+
+ self.standardEffectsText = QLabel(self.effectsGroup,"standardEffectsText")
+ layout4_2.addWidget(self.standardEffectsText)
+ layout5_2.addLayout(layout4_2)
+
+ self.standardEffectsImage = QLabel(self.effectsGroup,"standardEffectsImage")
+ self.standardEffectsImage.setSizePolicy(QSizePolicy(QSizePolicy.Fixed,QSizePolicy.Fixed,0,0,self.standardEffectsImage.sizePolicy().hasHeightForWidth()))
+ self.standardEffectsImage.setMaximumSize(QSize(150,80))
+ self.standardEffectsImage.setPixmap(self.image2)
+ self.standardEffectsImage.setScaledContents(1)
+ layout5_2.addWidget(self.standardEffectsImage)
+ effectsGroupLayout.addLayout(layout5_2)
+
+ layout5_3 = QHBoxLayout(None,0,6,"layout5_3")
+
+ layout4_3 = QVBoxLayout(None,0,6,"layout4_3")
+
+ self.radioButton4_3 = QRadioButton(self.effectsGroup,"radioButton4_3")
+ layout4_3.addWidget(self.radioButton4_3)
+
+ self.extraEffectsText = QLabel(self.effectsGroup,"extraEffectsText")
+ layout4_3.addWidget(self.extraEffectsText)
+ layout5_3.addLayout(layout4_3)
+
+ self.extraEffectsImage = QLabel(self.effectsGroup,"extraEffectsImage")
+ self.extraEffectsImage.setSizePolicy(QSizePolicy(QSizePolicy.Fixed,QSizePolicy.Fixed,0,0,self.extraEffectsImage.sizePolicy().hasHeightForWidth()))
+ self.extraEffectsImage.setMaximumSize(QSize(150,80))
+ self.extraEffectsImage.setPixmap(self.image2)
+ self.extraEffectsImage.setScaledContents(1)
+ layout5_3.addWidget(self.extraEffectsImage)
+ effectsGroupLayout.addLayout(layout5_3)
+
+ layout5_3_2 = QHBoxLayout(None,0,6,"layout5_3_2")
+
+ layout4_3_2 = QVBoxLayout(None,0,6,"layout4_3_2")
+
+ self.radioButton4_3_2 = QRadioButton(self.effectsGroup,"radioButton4_3_2")
+ layout4_3_2.addWidget(self.radioButton4_3_2)
+
+ self.customEffectsText = QLabel(self.effectsGroup,"customEffectsText")
+ layout4_3_2.addWidget(self.customEffectsText)
+ layout5_3_2.addLayout(layout4_3_2)
+
+ self.customEffectsImage = QLabel(self.effectsGroup,"customEffectsImage")
+ self.customEffectsImage.setSizePolicy(QSizePolicy(QSizePolicy.Fixed,QSizePolicy.Fixed,0,0,self.customEffectsImage.sizePolicy().hasHeightForWidth()))
+ self.customEffectsImage.setMaximumSize(QSize(150,80))
+ self.customEffectsImage.setPixmap(self.image2)
+ self.customEffectsImage.setScaledContents(1)
+ layout5_3_2.addWidget(self.customEffectsImage)
+ effectsGroupLayout.addLayout(layout5_3_2)
+ DesktopEffectsDialogLayout.addWidget(self.effectsGroup)
+
+ layout12 = QHBoxLayout(None,0,6,"layout12")
+ spacer4 = QSpacerItem(530,31,QSizePolicy.Expanding,QSizePolicy.Minimum)
+ layout12.addItem(spacer4)
+
+ self.applyButton = QPushButton(self,"applyButton")
+ layout12.addWidget(self.applyButton)
+
+ self.cancelButton = QPushButton(self,"cancelButton")
+ layout12.addWidget(self.cancelButton)
+ DesktopEffectsDialogLayout.addLayout(layout12)
+
+ self.languageChange()
+
+ self.resize(QSize(697,527).expandedTo(self.minimumSizeHint()))
+ self.clearWState(Qt.WState_Polished)
+
+ self.connect(self.installButton,SIGNAL("clicked()"),self.installButtonClicked)
+ self.connect(self.radioButton4,SIGNAL("clicked()"),self.noEffects)
+ self.connect(self.radioButton4_2,SIGNAL("clicked()"),self.standardEffects)
+ self.connect(self.radioButton4_3,SIGNAL("clicked()"),self.extraEffects)
+ self.connect(self.radioButton4_3_2,SIGNAL("clicked()"),self.customEffects)
+ self.connect(self.applyButton,SIGNAL("clicked()"),self.apply)
+ self.connect(self.cancelButton,SIGNAL("clicked()"),self.cancel)
+
+
+ def languageChange(self):
+ self.setCaption(self.__tr("Desktop Effects"))
+ self.packageText.setText(self.__tr("In order for Compiz Desktop Effects to work, the Compiz engine must be installed on your system."))
+ self.installButton.setText(self.__tr("Install"))
+ self.warningText.setText(self.__tr("Desktop Effects are a great way to enjoy a modern desktop experience without transitioning to KDE4"))
+ self.effectsGroup.setTitle(self.__tr("Effects Level"))
+ self.radioButton4.setText(self.__tr("No Effects"))
+ self.noEffectsText.setText(self.__tr("All effects are disabled and KDE Window manager is used.\n"
+"This is the default behaviour."))
+ self.radioButton4_2.setText(self.__tr("Standard Effects"))
+ self.standardEffectsText.setText(self.__tr("A compromise between usability and efficiency."))
+ self.radioButton4_3.setText(self.__tr("Extra Effects"))
+ self.extraEffectsText.setText(self.__tr("All effects are enabled. This setting may require a\n"
+"newer graphic card."))
+ self.radioButton4_3_2.setText(self.__tr("Custom Effects"))
+ self.customEffectsText.setText(self.__tr("Your custom Compiz settings."))
+ self.applyButton.setText(self.__tr("Apply"))
+ self.cancelButton.setText(self.__tr("Cancel"))
+
+
+ def closeButtonClicked(self):
+ print "DesktopEffectsDialog.closeButtonClicked(): Not implemented yet"
+
+ def installButtonClicked(self):
+ print "DesktopEffectsDialog.installButtonClicked(): Not implemented yet"
+
+ def noEffects(self):
+ print "DesktopEffectsDialog.noEffects(): Not implemented yet"
+
+ def standardEffects(self):
+ print "DesktopEffectsDialog.standardEffects(): Not implemented yet"
+
+ def extraEffects(self):
+ print "DesktopEffectsDialog.extraEffects(): Not implemented yet"
+
+ def customEffects(self):
+ print "DesktopEffectsDialog.customEffects(): Not implemented yet"
+
+ def apply(self):
+ print "DesktopEffectsDialog.apply(): Not implemented yet"
+
+ def cancel(self):
+ print "DesktopEffectsDialog.cancel(): Not implemented yet"
+
+ def __tr(self,s,c = None):
+ return qApp.translate("DesktopEffectsDialog",s,c)
+
+if __name__ == "__main__":
+ appname = ""
+ description = ""
+ version = ""
+
+ KCmdLineArgs.init (sys.argv, appname, description, version)
+ a = KApplication ()
+
+ QObject.connect(a,SIGNAL("lastWindowClosed()"),a,SLOT("quit()"))
+ w = DesktopEffectsDialog()
+ a.setMainWidget(w)
+ w.show()
+ a.exec_loop()
diff --git a/DesktopEffects/DesktopEffectsKDE.py b/DesktopEffects/DesktopEffectsKDE.py
new file mode 100755
index 0000000..4888d2b
--- /dev/null
+++ b/DesktopEffects/DesktopEffectsKDE.py
@@ -0,0 +1,149 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License as
+# published by the Free Software Foundation; either version 2 of
+# the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+#
+# Copyright 2007-2008 Martin Böhm <martin.bohm@kubuntu.org>
+# Copyright 2007-2008 Michael Anderson <nosrednaekim@gmail.com>
+
+import sys
+import os
+from optparse import OptionParser
+from qt import *
+from kdeui import *
+from kdecore import *
+# for adept batch launching
+import subprocess
+# for compiz-kde package checking
+import apt_pkg
+from apt.progress import OpProgress
+
+from DesktopEffectsDialog import DesktopEffectsDialog
+from DesktopEffectsCommon import DesktopEffectsCommon
+
+import gettext
+def _(str):
+ return unicode(gettext.gettext(str), 'UTF-8')
+def __(catalog,str):
+ return unicode(gettext.dgettext(catalog, str), 'UTF-8')
+def utf8(str):
+ if isinstance(str, unicode):
+ return str
+ return unicode(str, 'UTF-8')
+
+class DesktopEffectsKDE(DesktopEffectsDialog, DesktopEffectsCommon):
+ def __init__(self):
+ '''launches the app, draws the window '''
+
+ app = KApplication (sys.argv, "gd-test")
+ DesktopEffectsCommon.__init__(self)
+ DesktopEffectsDialog.__init__(self)
+ # bind the locale
+ localesApp="desktop-effects"
+ localesDir="/opt/kde3/share/locale"
+ gettext.bindtextdomain(localesApp, localesDir)
+ gettext.textdomain(localesApp)
+ # initialize variables
+
+ # self.action contains the action to be done after the user clicks "Apply".
+ # 0 - do not do anything
+ # 1 - disable effects
+ # 2 - set standard effects
+ # 3 - set extra effects
+ # 4 - keep the custom effects, or revert to the last known effects state
+ self.action = 0
+
+ # set the screenshot pictures
+ self.noEffectsImage.setPixmap(QPixmap("./data/noeffects.png"))
+ self.standardEffectsImage.setPixmap(QPixmap("./data/standardeffects.png"))
+ self.extraEffectsImage.setPixmap(QPixmap("./data/extraeffects.png"))
+
+ # set the translations & icons
+ # Apply
+ self.applyButton.setText(__("kdelibs","&Apply"))
+ self.applyButton.setIconSet(KGlobal.iconLoader().loadIconSet("apply",
+ KIcon.NoGroup, KIcon.SizeSmall))
+
+ # Close
+ self.cancelButton.setText(__("kdelibs","&Cancel"))
+ self.cancelButton.setIconSet(KGlobal.iconLoader().loadIconSet("cancel",
+ KIcon.NoGroup, KIcon.SizeSmall))
+
+ # check the state
+ self.check()
+
+ app.setMainWidget(self)
+ self.show()
+ app.exec_loop()
+
+
+ def check(self):
+ ''' checks the state and changes the UI accordingly. '''
+ self.installed = self.checkInstalled()
+ self.enabled = self.checkEnabled()
+ if(self.installed == True):
+ self.installButton.setText(_("&Remove Desktop Effects"))
+ self.effectsGroup.setDisabled(False)
+ self.warningText.show()
+ self.warningIcon.show()
+ self.packageText.setText(_("The Compiz engine is installed in your system."))
+ self.installButton.setIconSet(KGlobal.iconLoader().loadIconSet("remove",KIcon.NoGroup,KIcon.SizeSmall))
+ # remove, not install
+ self.rm = True
+ else:
+ self.packageText.setText(_("In order for Compiz Desktop Effects to work,"
+ " the Compiz engine must be installed on your system."))
+ self.installButton.setText(_("&Install Desktop Effects"))
+ self.warningText.show()
+ self.warningIcon.show()
+ # install, not remove
+ self.rm = False
+ #self.effectsBox.setDisabled(True)
+ self.installButton.setIconSet(KGlobal.iconLoader().loadIconSet("add",KIcon.NoGroup,KIcon.SizeSmall))
+
+ def checkInstalled(self):
+ progress = OpProgress()
+ cache = apt_pkg.GetCache(progress)
+ for pkg in cache.Packages:
+ if pkg.Name == "compiz-kde-kde3":
+ if pkg.CurrentVer is not None:
+ return True
+ # otherwise
+ return False
+ def checkEnabled(self):
+ return False
+
+ def cancel(self):
+ ''' action to be done after the user clicks the "cancel" button '''
+ self.close()
+
+ def apply(self):
+ ''' action to be done after the user click the "apply button '''
+ # if self.action > 0:
+ # if self.action == 1:
+ # elif self.action == 2:
+ # elif self.action == 3:
+ # elif self.action == 4:
+ self.close()
+
+
+ def installButtonClicked(self):
+ ''' Installs or removes the compiz packages. '''
+ if self.rm == True:
+ self.remove()
+ else:
+ self.install()
+
+ # check (again) if the package is installed
+ self.check()
diff --git a/DesktopEffects/DesktopEffectsKDE4.py b/DesktopEffects/DesktopEffectsKDE4.py
new file mode 100755
index 0000000..ca32dac
--- /dev/null
+++ b/DesktopEffects/DesktopEffectsKDE4.py
@@ -0,0 +1,146 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License as
+# published by the Free Software Foundation; either version 2 of
+# the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+#
+# Copyright 2007-2008 Martin Böhm <martin.bohm@kubuntu.org>
+# Copyright 2007-2008 Michael Anderson <nosrednaekim@gmail.com>
+
+import sys
+import os
+from optparse import OptionParser
+from PyQt4.QtGui import *
+from PyQt4.QtCore import *
+from PyQt4.QtSvg import *
+
+from DesktopEffectsQt4Dialog import Ui_Dialog
+from DesktopEffectsCommon import DesktopEffectsCommon
+import gettext
+
+def _(str):
+ ''' the traditional gettext function '''
+ return unicode(gettext.gettext(str), 'UTF-8')
+
+def __(catalog,str):
+ ''' selects a different catalog for the str translation;
+ useful when you want to use the standard KDE labels. '''
+ return unicode(gettext.dgettext(catalog, str), 'UTF-8')
+
+def utf8(str):
+ if isinstance(str, unicode):
+ return str
+ return unicode(str, 'UTF-8')
+
+class DesktopEffectsKDE4(DesktopEffectsCommon):
+ def __init__(self):
+ '''launches the app, draws the window '''
+ # needed for all Qt actions
+ app = QApplication (sys.argv)
+
+ # Qt4 explanations:
+ # self.qd is the link to the main QDialog (what you can see)
+ # self.ui is its UI (the UI defined in Qt-Designer
+ self.qd = QDialog()
+ self.ui = Ui_Dialog()
+ self.ui.setupUi(self.qd)
+
+ localesApp="desktop-effects-kde"
+ localesDir="/opt/kde3/share/locale"
+ gettext.bindtextdomain(localesApp, localesDir)
+ gettext.textdomain(localesApp)
+
+ # the Common class triggers some UI text settings, so we need to
+ # init the UI first
+ DesktopEffectsCommon.__init__(self)
+
+ self.radioGroup = QButtonGroup(self.qd)
+ self.radioGroup.setExclusive(True)
+ self.radioGroup.addButton(self.ui.noEffectsButton)
+ self.radioGroup.addButton(self.ui.stdEffectsButton)
+ self.radioGroup.addButton(self.ui.extraEffectsButton)
+ self.radioGroup.addButton(self.ui.customEffectsButton)
+
+ # connect signals and slots -- we have to do it ourselves in Qt4
+ QObject.connect(self.ui.installButton, SIGNAL("clicked()"), self.btnInstallClicked)
+ QObject.connect(self.ui.done, SIGNAL("clicked()"), self.done)
+ QObject.connect(self.ui.apply, SIGNAL("clicked()"), self.apply)
+ # connect radio buttons - methods provided by the Common class
+ QObject.connect(self.ui.noEffectsButton, SIGNAL("clicked()"), self.noEffects)
+ QObject.connect(self.ui.stdEffectsButton, SIGNAL("clicked()"), self.standardEffects)
+ QObject.connect(self.ui.extraEffectsButton, SIGNAL("clicked()"), self.extraEffects)
+ QObject.connect(self.ui.customEffectsButton, SIGNAL("clicked()"), self.customEffects)
+
+ self.ui.installButton.setText(_("Install"))
+ self.ui.warningText.setText(_("Desktop Effects are a great way to enjoy a modern desktop experience without transitioning to KDE4"))
+ self.ui.groupBox.setTitle(_("Effects Level"))
+ self.ui.noEffectsButton.setText(_("No Effects"))
+ self.ui.label_6.setText(_("All effects are disabled and KDE Window manager is used. This is the default behaviour."))
+ self.ui.stdEffectsButton.setText(_("Standard Effects"))
+ self.ui.label_12.setText(_("Some simple effects."))
+ self.ui.extraEffectsButton.setText(_("Extra Effects"))
+ self.ui.label_14.setText(_("You\'ll need sunglasses"))
+ self.ui.customEffectsButton.setText(_("Custom Effects"))
+ self.ui.label_16.setText(_("Use custom settings from another settings manager. Switching from this option to another will back up any custom settings"))
+ self.ui.apply.setText(_("Apply"))
+ self.ui.done.setText(_("Done"))
+ self.qd.show()
+ sys.exit(self.qd.exec_())
+
+ def check(self):
+ ''' overrides the DesktopEffectsCommon.check() method, does some painting '''
+ DesktopEffectsCommon.check(self)
+ self.ui.packageText.setText(self.pText)
+ self.ui.installButton.setText(self.ibText)
+ if os.path.exists(os.path.expanduser("~/.kde3/share/config/compizasWM")):
+ compizasWM = open(os.path.expanduser("~/.kde3/share/config/compizasWM"))
+ state = compizasWM.readline()
+ if state == "standardeffects":
+ self.action = 2
+ self.ui.stdEffectsButton.toggle()
+ elif state == "extraeffects":
+ self.action = 3
+ self.ui.extraEffectsButton.toggle()
+ elif state == "custom":
+ self.action = 4
+ self.ui.customEffectsButton.toggle()
+ else:
+ self.action = 1
+ self.ui.noEffectsButton.toggle()
+ def apply(self):
+ DesktopEffectsCommon.apply(self)
+ if self.action == 1:
+ print "hi"
+ os.popen("kwin --replace &")
+
+ def showWarning(self):
+ ''' shows the warning box if the package is installed '''
+ self.ui.warningText.show()
+ self.ui.warningIcon.show()
+
+ def hideWarning(self):
+ ''' hides the warning because the package is not yet there '''
+ self.ui.warningText.hide()
+ self.ui.warningIcon.hide()
+
+ def enable(self):
+ ''' enables the radio boxes, compiz is installed '''
+ self.ui.groupBox.setDisabled(False)
+
+ def disable(self):
+ ''' disables the group box, you have to install compiz first '''
+ self.ui.groupBox.setDisabled(True)
+
+ def close(self):
+ ''' triggers the QDialog to close '''
+ self.qd.close()
diff --git a/DesktopEffects/DesktopEffectsQt4Dialog.py b/DesktopEffects/DesktopEffectsQt4Dialog.py
new file mode 100644
index 0000000..e7a698e
--- /dev/null
+++ b/DesktopEffects/DesktopEffectsQt4Dialog.py
@@ -0,0 +1,225 @@
+# -*- coding: utf-8 -*-
+
+# Form implementation generated from reading ui file 'data/DesktopEffectsQt4Dialog.ui'
+#
+# Created: Wed Mar 12 21:46:04 2008
+# by: PyQt4 UI code generator 4.3.3
+#
+# WARNING! All changes made in this file will be lost!
+
+from PyQt4 import QtCore, QtGui
+
+class Ui_Dialog(object):
+ def setupUi(self, Dialog):
+ Dialog.setObjectName("Dialog")
+ Dialog.resize(QtCore.QSize(QtCore.QRect(0,0,744,512).size()).expandedTo(Dialog.minimumSizeHint()))
+
+ self.vboxlayout = QtGui.QVBoxLayout(Dialog)
+ self.vboxlayout.setObjectName("vboxlayout")
+
+ self.hboxlayout = QtGui.QHBoxLayout()
+ self.hboxlayout.setObjectName("hboxlayout")
+
+ spacerItem = QtGui.QSpacerItem(40,20,QtGui.QSizePolicy.Minimum,QtGui.QSizePolicy.Minimum)
+ self.hboxlayout.addItem(spacerItem)
+
+ self.label_2 = QtGui.QLabel(Dialog)
+ self.label_2.setObjectName("label_2")
+ self.hboxlayout.addWidget(self.label_2)
+
+ self.packageText = QtGui.QLabel(Dialog)
+
+ sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding,QtGui.QSizePolicy.Preferred)
+ sizePolicy.setHorizontalStretch(0)
+ sizePolicy.setVerticalStretch(0)
+ sizePolicy.setHeightForWidth(self.packageText.sizePolicy().hasHeightForWidth())
+ self.packageText.setSizePolicy(sizePolicy)
+ self.packageText.setWordWrap(True)
+ self.packageText.setObjectName("packageText")
+ self.hboxlayout.addWidget(self.packageText)
+
+ self.installButton = QtGui.QPushButton(Dialog)
+ self.installButton.setObjectName("installButton")
+ self.hboxlayout.addWidget(self.installButton)
+ self.vboxlayout.addLayout(self.hboxlayout)
+
+ self.hboxlayout1 = QtGui.QHBoxLayout()
+ self.hboxlayout1.setObjectName("hboxlayout1")
+
+ self.warningIcon = QtGui.QLabel(Dialog)
+
+ sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Fixed,QtGui.QSizePolicy.Fixed)
+ sizePolicy.setHorizontalStretch(0)
+ sizePolicy.setVerticalStretch(0)
+ sizePolicy.setHeightForWidth(self.warningIcon.sizePolicy().hasHeightForWidth())
+ self.warningIcon.setSizePolicy(sizePolicy)
+ self.warningIcon.setObjectName("warningIcon")
+ self.hboxlayout1.addWidget(self.warningIcon)
+
+ self.warningText = QtGui.QLabel(Dialog)
+
+ sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Preferred,QtGui.QSizePolicy.Maximum)
+ sizePolicy.setHorizontalStretch(0)
+ sizePolicy.setVerticalStretch(0)
+ sizePolicy.setHeightForWidth(self.warningText.sizePolicy().hasHeightForWidth())
+ self.warningText.setSizePolicy(sizePolicy)
+ self.warningText.setWordWrap(True)
+ self.warningText.setObjectName("warningText")
+ self.hboxlayout1.addWidget(self.warningText)
+ self.vboxlayout.addLayout(self.hboxlayout1)
+
+ self.groupBox = QtGui.QGroupBox(Dialog)
+ self.groupBox.setObjectName("groupBox")
+
+ self.gridlayout = QtGui.QGridLayout(self.groupBox)
+ self.gridlayout.setObjectName("gridlayout")
+
+ self.hboxlayout2 = QtGui.QHBoxLayout()
+ self.hboxlayout2.setObjectName("hboxlayout2")
+
+ self.vboxlayout1 = QtGui.QVBoxLayout()
+ self.vboxlayout1.setObjectName("vboxlayout1")
+
+ self.noEffectsButton = QtGui.QRadioButton(self.groupBox)
+ self.noEffectsButton.setObjectName("noEffectsButton")
+ self.vboxlayout1.addWidget(self.noEffectsButton)
+
+ self.label_6 = QtGui.QLabel(self.groupBox)
+ self.label_6.setWordWrap(True)
+ self.label_6.setObjectName("label_6")
+ self.vboxlayout1.addWidget(self.label_6)
+ self.hboxlayout2.addLayout(self.vboxlayout1)
+
+ self.label_5 = QtGui.QLabel(self.groupBox)
+
+ sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Fixed,QtGui.QSizePolicy.Fixed)
+ sizePolicy.setHorizontalStretch(0)
+ sizePolicy.setVerticalStretch(0)
+ sizePolicy.setHeightForWidth(self.label_5.sizePolicy().hasHeightForWidth())
+ self.label_5.setSizePolicy(sizePolicy)
+ self.label_5.setPixmap(QtGui.QPixmap("/usr/share/apps/desktop-effects-kde/noeffects.png"))
+ self.label_5.setObjectName("label_5")
+ self.hboxlayout2.addWidget(self.label_5)
+ self.gridlayout.addLayout(self.hboxlayout2,0,0,1,1)
+
+ self.hboxlayout3 = QtGui.QHBoxLayout()
+ self.hboxlayout3.setObjectName("hboxlayout3")
+
+ self.vboxlayout2 = QtGui.QVBoxLayout()
+ self.vboxlayout2.setObjectName("vboxlayout2")
+
+ self.stdEffectsButton = QtGui.QRadioButton(self.groupBox)
+ self.stdEffectsButton.setObjectName("stdEffectsButton")
+ self.vboxlayout2.addWidget(self.stdEffectsButton)
+
+ self.label_12 = QtGui.QLabel(self.groupBox)
+ self.label_12.setObjectName("label_12")
+ self.vboxlayout2.addWidget(self.label_12)
+ self.hboxlayout3.addLayout(self.vboxlayout2)
+
+ self.label_13 = QtGui.QLabel(self.groupBox)
+
+ sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Fixed,QtGui.QSizePolicy.Fixed)
+ sizePolicy.setHorizontalStretch(0)
+ sizePolicy.setVerticalStretch(0)
+ sizePolicy.setHeightForWidth(self.label_13.sizePolicy().hasHeightForWidth())
+ self.label_13.setSizePolicy(sizePolicy)
+ self.label_13.setPixmap(QtGui.QPixmap("/usr/share/apps/desktop-effects-kde/standardeffects.png"))
+ self.label_13.setObjectName("label_13")
+ self.hboxlayout3.addWidget(self.label_13)
+ self.gridlayout.addLayout(self.hboxlayout3,1,0,1,1)
+
+ self.hboxlayout4 = QtGui.QHBoxLayout()
+ self.hboxlayout4.setObjectName("hboxlayout4")
+
+ self.vboxlayout3 = QtGui.QVBoxLayout()
+ self.vboxlayout3.setObjectName("vboxlayout3")
+
+ self.extraEffectsButton = QtGui.QRadioButton(self.groupBox)
+ self.extraEffectsButton.setObjectName("extraEffectsButton")
+ self.vboxlayout3.addWidget(self.extraEffectsButton)
+
+ self.label_14 = QtGui.QLabel(self.groupBox)
+ self.label_14.setObjectName("label_14")
+ self.vboxlayout3.addWidget(self.label_14)
+ self.hboxlayout4.addLayout(self.vboxlayout3)
+
+ self.label_15 = QtGui.QLabel(self.groupBox)
+
+ sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Fixed,QtGui.QSizePolicy.Fixed)
+ sizePolicy.setHorizontalStretch(0)
+ sizePolicy.setVerticalStretch(0)
+ sizePolicy.setHeightForWidth(self.label_15.sizePolicy().hasHeightForWidth())
+ self.label_15.setSizePolicy(sizePolicy)
+ self.label_15.setPixmap(QtGui.QPixmap("/usr/share/apps/desktop-effects-kde/extraeffects.png"))
+ self.label_15.setObjectName("label_15")
+ self.hboxlayout4.addWidget(self.label_15)
+ self.gridlayout.addLayout(self.hboxlayout4,2,0,1,1)
+
+ self.hboxlayout5 = QtGui.QHBoxLayout()
+ self.hboxlayout5.setObjectName("hboxlayout5")
+
+ self.vboxlayout4 = QtGui.QVBoxLayout()
+ self.vboxlayout4.setObjectName("vboxlayout4")
+
+ self.customEffectsButton = QtGui.QRadioButton(self.groupBox)
+ self.customEffectsButton.setObjectName("customEffectsButton")
+ self.vboxlayout4.addWidget(self.customEffectsButton)
+
+ self.label_16 = QtGui.QLabel(self.groupBox)
+ self.label_16.setWordWrap(True)
+ self.label_16.setObjectName("label_16")
+ self.vboxlayout4.addWidget(self.label_16)
+ self.hboxlayout5.addLayout(self.vboxlayout4)
+
+ self.label_17 = QtGui.QLabel(self.groupBox)
+
+ sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Fixed,QtGui.QSizePolicy.Fixed)
+ sizePolicy.setHorizontalStretch(0)
+ sizePolicy.setVerticalStretch(0)
+ sizePolicy.setHeightForWidth(self.label_17.sizePolicy().hasHeightForWidth())
+ self.label_17.setSizePolicy(sizePolicy)
+ self.label_17.setPixmap(QtGui.QPixmap("/usr/share/apps/desktop-effects-kde/extraeffects.png"))
+ self.label_17.setObjectName("label_17")
+ self.hboxlayout5.addWidget(self.label_17)
+ self.gridlayout.addLayout(self.hboxlayout5,3,0,1,1)
+
+ spacerItem1 = QtGui.QSpacerItem(20,40,QtGui.QSizePolicy.Minimum,QtGui.QSizePolicy.Expanding)
+ self.gridlayout.addItem(spacerItem1,4,0,1,1)
+ self.vboxlayout.addWidget(self.groupBox)
+
+ self.hboxlayout6 = QtGui.QHBoxLayout()
+ self.hboxlayout6.setObjectName("hboxlayout6")
+
+ spacerItem2 = QtGui.QSpacerItem(40,20,QtGui.QSizePolicy.Expanding,QtGui.QSizePolicy.Minimum)
+ self.hboxlayout6.addItem(spacerItem2)
+
+ self.apply = QtGui.QPushButton(Dialog)
+ self.apply.setObjectName("apply")
+ self.hboxlayout6.addWidget(self.apply)
+
+ self.done = QtGui.QPushButton(Dialog)
+ self.done.setObjectName("done")
+ self.hboxlayout6.addWidget(self.done)
+ self.vboxlayout.addLayout(self.hboxlayout6)
+
+ self.retranslateUi(Dialog)
+ QtCore.QMetaObject.connectSlotsByName(Dialog)
+
+ def retranslateUi(self, Dialog):
+ Dialog.setWindowTitle(QtGui.QApplication.translate("Dialog", "Compiz Desktop Effects", None, QtGui.QApplication.UnicodeUTF8))
+ self.packageText.setText(QtGui.QApplication.translate("Dialog", "In order for Compiz Desktop Effects to work, the Compiz engine must be installed on your system.", None, QtGui.QApplication.UnicodeUTF8))
+ self.installButton.setText(QtGui.QApplication.translate("Dialog", "Install", None, QtGui.QApplication.UnicodeUTF8))
+ self.warningText.setText(QtGui.QApplication.translate("Dialog", "Desktop Effects are a great way to enjoy a modern desktop experience without transitioning to KDE4", None, QtGui.QApplication.UnicodeUTF8))
+ self.groupBox.setTitle(QtGui.QApplication.translate("Dialog", "Effects Level", None, QtGui.QApplication.UnicodeUTF8))
+ self.noEffectsButton.setText(QtGui.QApplication.translate("Dialog", "No Effects", None, QtGui.QApplication.UnicodeUTF8))
+ self.label_6.setText(QtGui.QApplication.translate("Dialog", "All effects are disabled and KDE Window manager is used. This is the default behaviour.", None, QtGui.QApplication.UnicodeUTF8))
+ self.stdEffectsButton.setText(QtGui.QApplication.translate("Dialog", "Standard Effects", None, QtGui.QApplication.UnicodeUTF8))
+ self.label_12.setText(QtGui.QApplication.translate("Dialog", "Some simple effects.", None, QtGui.QApplication.UnicodeUTF8))
+ self.extraEffectsButton.setText(QtGui.QApplication.translate("Dialog", "Extra Effects", None, QtGui.QApplication.UnicodeUTF8))
+ self.label_14.setText(QtGui.QApplication.translate("Dialog", "You\'ll need sunglasses", None, QtGui.QApplication.UnicodeUTF8))
+ self.customEffectsButton.setText(QtGui.QApplication.translate("Dialog", "Custom Effects", None, QtGui.QApplication.UnicodeUTF8))
+ self.label_16.setText(QtGui.QApplication.translate("Dialog", "Use custom settings from another settings manager. Switching from this option to another will back up any custom settings", None, QtGui.QApplication.UnicodeUTF8))
+ self.apply.setText(QtGui.QApplication.translate("Dialog", "Apply", None, QtGui.QApplication.UnicodeUTF8))
+ self.done.setText(QtGui.QApplication.translate("Dialog", "Done", None, QtGui.QApplication.UnicodeUTF8))
+
diff --git a/DesktopEffects/__init__.py b/DesktopEffects/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/DesktopEffects/__init__.py