From 987ad04d358caa5d452153596134a8feece1fb5f Mon Sep 17 00:00:00 2001 From: Samuele Carcagno Date: Fri, 6 Nov 2015 13:20:33 +0000 Subject: [PATCH] Partly closes iss #7. Color of feedback lights and font properties are now user configurable. Need to add mixed feedback options (e.g. light and text) --- prep-release/pysoundanalyser_de.ts | 12 +- prep-release/pysoundanalyser_el.ts | 12 +- prep-release/pysoundanalyser_en_GB.ts | 12 +- prep-release/pysoundanalyser_es.ts | 12 +- prep-release/pysoundanalyser_fr.ts | 12 +- prep-release/pysoundanalyser_it.ts | 12 +- prep-release/pysoundanalyser_ru.ts | 12 +- pysoundanalyser/dialog_edit_preferences.py | 9 +- pysoundanalyser/global_parameters.py | 3 + pysoundanalyser/qrc_resources.py | 576 ++++++++++----------- windows_installer/compile.bat | 2 + windows_installer/compile_win.sh | 4 + windows_installer/win_compile.py | 109 ++++ 13 files changed, 452 insertions(+), 335 deletions(-) create mode 100644 windows_installer/compile.bat create mode 100644 windows_installer/compile_win.sh create mode 100644 windows_installer/win_compile.py diff --git a/prep-release/pysoundanalyser_de.ts b/prep-release/pysoundanalyser_de.ts index 7fb9a3c..4e68b00 100644 --- a/prep-release/pysoundanalyser_de.ts +++ b/prep-release/pysoundanalyser_de.ts @@ -668,12 +668,12 @@ Bits: {3} applyChanges - + There are unsaved changes. Apply Changes? - + Apply Changes @@ -1720,22 +1720,22 @@ Bits: {3} - + Warning - + dpi value not valid - + dpi value too small - + custom diff --git a/prep-release/pysoundanalyser_el.ts b/prep-release/pysoundanalyser_el.ts index 7fb9a3c..4e68b00 100644 --- a/prep-release/pysoundanalyser_el.ts +++ b/prep-release/pysoundanalyser_el.ts @@ -668,12 +668,12 @@ Bits: {3} applyChanges - + There are unsaved changes. Apply Changes? - + Apply Changes @@ -1720,22 +1720,22 @@ Bits: {3} - + Warning - + dpi value not valid - + dpi value too small - + custom diff --git a/prep-release/pysoundanalyser_en_GB.ts b/prep-release/pysoundanalyser_en_GB.ts index d42daac..d58f9e6 100644 --- a/prep-release/pysoundanalyser_en_GB.ts +++ b/prep-release/pysoundanalyser_en_GB.ts @@ -668,12 +668,12 @@ Bits: {3} applyChanges - + There are unsaved changes. Apply Changes? - + Apply Changes @@ -1720,22 +1720,22 @@ Bits: {3} - + Warning - + dpi value not valid - + dpi value too small - + custom diff --git a/prep-release/pysoundanalyser_es.ts b/prep-release/pysoundanalyser_es.ts index 7fb9a3c..4e68b00 100644 --- a/prep-release/pysoundanalyser_es.ts +++ b/prep-release/pysoundanalyser_es.ts @@ -668,12 +668,12 @@ Bits: {3} applyChanges - + There are unsaved changes. Apply Changes? - + Apply Changes @@ -1720,22 +1720,22 @@ Bits: {3} - + Warning - + dpi value not valid - + dpi value too small - + custom diff --git a/prep-release/pysoundanalyser_fr.ts b/prep-release/pysoundanalyser_fr.ts index a7c7292..4a6bc49 100644 --- a/prep-release/pysoundanalyser_fr.ts +++ b/prep-release/pysoundanalyser_fr.ts @@ -678,12 +678,12 @@ Bits: {3} applyChanges - + There are unsaved changes. Apply Changes? - + Apply Changes @@ -1750,22 +1750,22 @@ Bits: {3} - + Warning - + dpi value not valid - + dpi value too small - + custom diff --git a/prep-release/pysoundanalyser_it.ts b/prep-release/pysoundanalyser_it.ts index 1161eb3..1d72213 100644 --- a/prep-release/pysoundanalyser_it.ts +++ b/prep-release/pysoundanalyser_it.ts @@ -777,12 +777,12 @@ Bits: {3} applyChanges - + There are unsaved changes. Apply Changes? Ci sono modifiche non salvate. Applicare le modifiche? - + Apply Changes Applica le modifiche @@ -1894,22 +1894,22 @@ Bits: {3} Comando: - + Warning Avviso - + dpi value not valid valore dpi non valido - + dpi value too small valore dpi troppo piccolo - + custom personalizzato diff --git a/prep-release/pysoundanalyser_ru.ts b/prep-release/pysoundanalyser_ru.ts index bb8c97b..10b7653 100644 --- a/prep-release/pysoundanalyser_ru.ts +++ b/prep-release/pysoundanalyser_ru.ts @@ -668,12 +668,12 @@ Bits: {3} applyChanges - + There are unsaved changes. Apply Changes? - + Apply Changes @@ -1720,22 +1720,22 @@ Bits: {3} - + Warning - + dpi value not valid - + dpi value too small - + custom diff --git a/pysoundanalyser/dialog_edit_preferences.py b/pysoundanalyser/dialog_edit_preferences.py index b2a5565..d4dc7f0 100644 --- a/pysoundanalyser/dialog_edit_preferences.py +++ b/pysoundanalyser/dialog_edit_preferences.py @@ -20,16 +20,16 @@ if pyqtversion == 4: from PyQt4 import QtGui, QtCore from PyQt4.QtCore import QLocale - from PyQt4.QtGui import QCheckBox, QComboBox, QDialog, QDialogButtonBox, QDoubleValidator, QGridLayout, QIntValidator, QLabel, QLineEdit, QPushButton, QTabWidget, QVBoxLayout, QWidget + from PyQt4.QtGui import QCheckBox, QColorDialog, QComboBox, QDialog, QDialogButtonBox, QDoubleValidator, QGridLayout, QIntValidator, QLabel, QLineEdit, QPushButton, QTabWidget, QVBoxLayout, QWidget elif pyqtversion == -4: from PySide import QtGui, QtCore from PySide.QtCore import QLocale - from PySide.QtGui import QCheckBox, QComboBox, QDialog, QDialogButtonBox, QDoubleValidator, QGridLayout, QIntValidator, QLabel, QLineEdit, QPushButton, QTabWidget, QVBoxLayout, QWidget + from PySide.QtGui import QCheckBox, QColorDialog, QComboBox, QDialog, QDialogButtonBox, QDoubleValidator, QGridLayout, QIntValidator, QLabel, QLineEdit, QPushButton, QTabWidget, QVBoxLayout, QWidget elif pyqtversion == 5: from PyQt5 import QtGui, QtCore from PyQt5.QtCore import QLocale from PyQt5.QtGui import QDoubleValidator, QIntValidator - from PyQt5.QtWidgets import QCheckBox, QComboBox, QDialog, QDialogButtonBox, QGridLayout, QLabel, QLineEdit, QPushButton, QTabWidget, QVBoxLayout, QWidget + from PyQt5.QtWidgets import QCheckBox, QColorDialog, QComboBox, QDialog, QDialogButtonBox, QGridLayout, QLabel, QLineEdit, QPushButton, QTabWidget, QVBoxLayout, QWidget import copy, pickle @@ -193,8 +193,7 @@ def __init__(self, parent): layout.addWidget(self.tabWidget) layout.addWidget(buttonBox) self.setLayout(layout) - #grid = QGridLayout() - #n = 0 + def ondpiChange(self): try: diff --git a/pysoundanalyser/global_parameters.py b/pysoundanalyser/global_parameters.py index 3282616..7e28075 100644 --- a/pysoundanalyser/global_parameters.py +++ b/pysoundanalyser/global_parameters.py @@ -82,6 +82,9 @@ def def_prefs(prm): if platform.system() == 'Windows': prm["pref"]["playCommand"] = 'winsound' prm["pref"]["playCommandType"] = 'winsound' + elif platform.system() == "Darwin": + prm["pref"]["playCommand"] = 'afplay' + prm["pref"]["playCommandType"] = QApplication.translate("Preferences Window","custom","") else: prm["pref"]["playCommand"] = 'aplay' prm["pref"]["playCommandType"] = 'aplay' diff --git a/pysoundanalyser/qrc_resources.py b/pysoundanalyser/qrc_resources.py index 8a2a145..2331b60 100644 --- a/pysoundanalyser/qrc_resources.py +++ b/pysoundanalyser/qrc_resources.py @@ -2,7 +2,7 @@ # Resource object code # -# Created: Sat Oct 24 01:56:28 2015 +# Created: Fri Nov 6 13:17:09 2015 # by: The Resource Compiler for PyQt (Qt v5.3.2) # # WARNING! All changes made in this file will be lost! @@ -10,6 +10,231 @@ from PyQt5 import QtCore qt_resource_data = b"\ +\x00\x00\x0d\xee\ +\x00\ +\x00\x40\xee\x78\x9c\xed\x5a\x59\x73\xdb\xc8\x11\x7e\xf7\xaf\x60\ +\xe8\x17\xbb\x96\x04\xe7\x3e\x68\x49\x5b\x8e\x5d\x9b\xda\x94\x92\ +\xad\x5a\xef\x56\x1e\x53\x10\x38\x92\xb0\x06\x09\x06\x00\x25\xd1\ +\xbf\x3e\xdd\x00\x88\x83\x1c\x4a\xa0\xac\xdd\xa4\x12\x93\x76\x89\ +\xe8\xe9\x39\xfa\x9b\x3e\x67\x70\xf6\xfd\xc3\x32\x19\xdd\xb9\x2c\ +\x8f\xd3\xd5\xf9\x98\x06\x64\x3c\x72\xab\x28\x5d\xc4\xab\x9b\xf3\ +\xf1\xaf\xbf\xfc\x30\x35\xe3\x51\x5e\x84\xab\x45\x98\xa4\x2b\x77\ +\x3e\x5e\xa5\xe3\xef\x2f\x5e\x9d\xfd\x69\x3a\x1d\x7d\xc8\x5c\x58\ +\xb8\xc5\xe8\x3e\x2e\x6e\x47\x3f\xae\x3e\xe7\x51\xb8\x76\xa3\x37\ +\xb7\x45\xb1\x9e\xcf\x66\xf7\xf7\xf7\x41\x5c\x13\x83\x34\xbb\x99\ +\xbd\x1d\x4d\xa7\xd0\x33\xbf\xbb\x79\x35\x1a\x8d\x60\xda\x55\x3e\ +\x5f\x44\xe7\xe3\x9a\x7f\xbd\xc9\x92\x92\x6f\x11\xcd\x5c\xe2\x96\ +\x6e\x55\xe4\x33\x1a\xd0\xd9\xb8\x65\x8f\x5a\xf6\x7b\x77\x15\x64\ +\x2e\x4f\x37\x59\x54\x0d\x1f\x45\x5d\xce\x6c\x71\xdd\xb2\xc2\x4a\ +\xee\x79\xc9\x44\xad\xb5\x33\xc2\x66\x8c\x4d\x81\x63\x9a\x6f\x57\ +\x45\xf8\x30\x5d\xe5\xaf\x3b\x5d\x61\x81\xbe\xae\x8c\x10\x32\x83\ +\xb6\x96\x73\x18\xd7\xfc\x21\x01\x18\x8e\x2e\xa6\x6c\xed\xce\x0e\ +\xd0\xaf\xe1\x7f\xd3\xa1\xc1\xb0\x92\xf5\x1a\x7a\xba\x60\xe5\x8a\ +\xd9\xc7\x5f\x3e\xce\x76\xdc\x53\x12\x2c\x8a\x45\x67\x98\x5d\xaf\ +\xde\xbc\xbd\xed\x58\x85\x4b\x97\xaf\xc3\xc8\xe5\xcd\x14\x65\xff\ +\xdd\xc3\xdc\x3d\xac\xd3\xac\x98\x6e\x17\x6b\x58\x8c\x25\x01\x29\ +\x3f\x5e\x9e\x87\x01\x3c\xd7\x71\xe2\x70\xce\xf3\xf1\xec\x36\x5d\ +\xba\xd9\x6f\xf1\x72\x19\x46\xb3\x8f\x2e\xff\x5c\xa4\xeb\xd9\x7d\ +\x0c\x1c\xc1\x7a\x55\x21\x77\x1f\x2f\x8a\xdb\xf3\xb1\x30\xeb\x87\ +\xf2\xf9\xd6\xc5\x37\xb7\x45\x87\x10\x2f\xce\xc7\x00\x33\xa5\xbc\ +\x9e\x6e\x87\xc4\xbc\xd1\x65\x12\x70\xd6\x5f\x49\xa7\x49\xf0\xef\ +\x16\xee\xce\x25\xfd\xbe\x8b\x34\xba\x0a\xf3\x66\x89\x45\x7c\xe3\ +\xb2\x62\x16\xdd\xe5\xb3\xeb\xcc\xb9\x45\xb5\xd4\x12\x3d\xb0\x88\ +\x9b\x74\x1a\x47\xe9\x6a\x5a\xdc\x82\xb2\xce\x60\x86\x24\xbc\x4a\ +\xdc\x2c\x8c\x0a\x98\x23\x3f\x18\xb8\x92\x3d\xdf\xe6\x85\x5b\x4e\ +\x93\xf4\x66\x9a\x6e\x8a\x60\xa7\x29\xcd\x12\x81\xb8\xde\x14\xff\ +\x74\x0f\x85\x5b\x55\x6b\x85\xd9\x3a\x1b\x57\x36\x63\xb7\x86\x36\ +\xbe\x80\x01\xce\x16\xee\x3a\xc7\x81\x2a\x64\xf0\x89\x97\x0d\xd0\ +\x04\x0a\xe6\xc2\xec\x2f\x59\xb8\x88\xc1\xa6\x2a\xa6\x8a\xad\xdf\ +\x62\x8d\x55\x75\x1f\xe8\x95\x83\xa4\x3b\xde\x1a\x6e\xa0\x00\x8f\ +\x19\xb7\xe4\xf4\xfa\x3a\x77\xb0\x2d\xa4\x43\xcb\x8b\x6d\xe2\x2a\ +\xee\x69\x94\x26\x69\x36\x7f\x1d\x39\xfc\xbe\x2b\x49\x29\xa8\x5c\ +\x5c\x6c\xe7\xf4\xdd\x78\x34\x7b\x6a\x36\x4b\x88\x67\x36\x5a\xab\ +\xd9\x13\xb3\x5a\x87\xdf\xbd\x59\x77\x5d\xdb\xd9\xcf\x66\x7d\x18\ +\x4e\x46\xcd\xb4\x88\x34\xdb\x08\x4b\x48\x5c\x04\x6b\x0d\x93\xfb\ +\x70\x9b\x0f\x80\xd5\x27\xe8\x13\x02\x5e\x97\x9f\x67\xc0\x6a\x2c\ +\xf3\xc1\x7a\xfa\x6c\x2f\x0a\x23\x79\x01\x18\x8d\x4f\xb0\x27\x60\ +\x94\x0c\xbf\xcf\x81\xd1\x88\xd3\x61\xf4\xcd\xf6\x92\x30\x2a\x73\ +\x0c\x25\xcf\x62\x84\xc3\xef\x51\x13\xf1\x40\xe9\x31\xbd\x16\x0f\ +\x4d\x8e\xa3\xe6\x99\x5d\x51\xfc\xee\x41\xf1\xd8\xec\x3e\xc3\xef\ +\xcc\xce\x5e\x0e\x45\x29\x9e\xd6\x35\xa9\x06\x02\x74\x3a\xf0\x03\ +\x74\x4f\xfa\xfc\xf0\x40\xcf\x18\x5e\xe1\xf7\xf7\xf7\x8c\x82\xbd\ +\x80\x49\x0b\x9f\x91\x3d\x21\xa0\x66\xda\x91\xf0\x39\x26\x2d\x7c\ +\x9b\xfa\x84\x49\xfb\x66\x7b\x49\x18\x39\x79\x1a\x25\xee\x75\x7c\ +\xc3\xd4\x41\x12\xfc\x7e\x8d\x32\x72\xaf\x23\x1c\x36\x3b\x35\xf8\ +\x7d\x61\x65\x3c\xa6\x6d\xc7\x61\x36\x4a\xb1\x13\x3c\x67\xbd\xbc\ +\x7d\x0d\x7b\x5c\x53\x77\x80\xc1\x5c\xe2\x24\x4f\xe9\x9b\xcd\xef\ +\x21\xfd\xb3\xa9\x3f\x10\x46\x79\x54\x5b\x87\xa7\x30\x43\x61\x94\ +\xec\x24\x18\x8f\xa4\x30\x43\x61\x94\xe2\x29\x18\xf1\x29\x4c\x4e\ +\x86\xb1\xac\x01\xe7\xb7\x99\x83\x9a\xf5\xb5\x07\xcf\x2e\xdc\xfd\ +\x29\xa0\xb9\x75\x58\xd1\x03\xac\xdc\x06\x9a\x50\x2a\x5a\x09\xa2\ +\xed\xf9\x98\x05\x90\xdb\x5b\x6e\x5a\xea\xb5\x97\xf7\xda\xcb\x9b\ +\x01\xab\x0e\xa8\x06\x4e\xd9\x10\x6f\xea\x15\xfc\x92\x85\xab\x1c\ +\x8a\xd2\xe5\xf9\x78\x19\x16\x59\xfc\xf0\x86\x06\x4c\x72\x21\xd8\ +\x64\xca\x02\x66\x15\xb5\xd2\x4d\xa9\x9a\xd0\x40\x0b\x2d\x14\x29\ +\x1f\x48\x60\x25\x87\xec\x7e\x32\xa5\x32\x10\xda\x12\x33\xa1\xd0\ +\x4f\x2b\xc5\xdf\x1e\x4c\xf1\xeb\x2a\x2e\xa0\xd8\xde\xe4\x2e\xfb\ +\x84\x05\xeb\x4f\xab\x5f\x73\xd7\x6e\x85\x1f\x74\x5c\xb4\x0c\x94\ +\x10\x9a\xeb\x9e\x7c\x5c\x05\x82\x51\xca\x74\x0f\x0b\x26\x02\xc3\ +\x35\x65\xaa\x87\xdb\x21\x6f\xe4\xe5\x7d\x0c\x8c\xca\x76\x27\xc4\ +\xf3\x43\x72\xa5\x19\x07\x64\x94\xe6\x52\x23\x4c\x72\x42\x55\x60\ +\x34\x27\x6a\x28\x0c\xc7\x75\xc3\x9a\xce\x0a\x1f\x55\x31\x35\x20\ +\x4e\x3f\x01\xf7\xb0\x45\x1e\xc7\x89\x01\x2a\xca\x12\x3d\x11\x81\ +\x90\x8a\x31\x53\xaa\xc9\x54\x06\x46\x4a\x4b\x69\xf9\xc4\x02\xc5\ +\x35\x53\x06\x94\x46\xf0\x40\x6a\x64\x50\x34\xb0\x40\xa5\x6f\x7b\ +\xda\xaa\xa0\xf4\xa7\x92\x8a\xde\xc6\x0b\x00\x5c\x40\xa4\x63\xbd\ +\x8d\xb7\x3c\xd0\x86\x90\x8e\x92\x44\x5e\xde\xc8\xcb\xeb\x43\x9d\ +\x0f\x42\xbd\x0c\xeb\xc3\x51\xf7\x3b\xe8\x67\xea\x9d\xe2\x12\xc0\ +\x69\x29\x60\x28\x56\x18\x2b\x4e\xd5\xb9\x2d\x03\x63\x30\x01\x18\ +\x08\x58\x79\x2b\x34\x50\x39\x18\x38\x97\x96\xb5\x4e\x64\x4b\x01\ +\x55\xc0\x4f\x82\xaa\x77\x78\xa9\x8f\xd7\x9b\x4b\x9a\x61\xa8\x0e\ +\xc9\x39\x07\xa2\x3a\x40\x78\x0d\x02\x59\x50\xdc\x9e\xf0\xd4\x04\ +\x84\x53\xb6\x27\x3c\x78\x5b\x43\x04\xa5\xba\x27\xbc\x00\x73\x17\ +\xd2\x30\xf9\xa8\xf0\x4a\x0c\x13\x5e\x8a\xff\x02\x43\x96\x9c\x08\ +\x2d\x27\x32\x20\x20\x99\x54\x60\xba\x06\x43\x01\x37\xcc\x6a\x34\ +\x6b\x01\x0e\x4f\x10\xce\x14\x44\x08\x70\xb0\xda\x4a\x0a\xbf\x6c\ +\x20\x0c\xe7\x84\xf7\x0c\x19\x02\x14\x63\x9a\x76\xaa\x7a\x34\x64\ +\x88\x45\xdc\x2a\xa2\x49\xcf\x90\x61\x2f\x8c\xe1\xf0\xaf\x67\xc8\ +\x87\xbc\x91\x97\xd7\x67\xc8\x7a\xa0\x21\xab\x01\x07\x40\xa7\x1b\ +\x72\x81\x3f\x93\xb0\x70\x6f\xa6\x14\x4c\x4c\x51\xd6\xda\xf0\xb3\ +\x0c\x55\x04\x5a\x81\xaa\x89\xbe\xa1\x0a\x18\x52\x0b\xaa\xf6\x75\ +\x95\x12\xad\xd9\x9e\xa1\x52\xf0\xc6\x0c\xb6\xeb\x51\x5d\x35\x03\ +\x51\x1b\x72\xde\xf3\x62\x86\x0a\x9e\x47\x08\x6b\x85\xee\x1b\x2a\ +\xe8\x97\x94\xb2\xe3\x5a\x4a\xe1\x79\x00\x69\x08\x80\xd2\x13\xde\ +\x00\x7a\x10\xa2\xc4\xe3\xc2\xdb\x81\x86\x3a\xe4\xcc\xf0\xc5\x84\ +\x47\x7f\xa4\xc0\xe2\xf6\x5c\x34\x38\x63\x4a\x94\xec\x7b\x29\x46\ +\x03\x49\x29\x35\x72\x7f\xe7\x89\x36\x56\x3e\xea\xa5\x2c\x61\xc3\ +\x84\xb7\x6a\xa8\xf0\x67\x33\x3c\xc9\x2e\x7f\x35\x47\xe9\x78\x8e\ +\xbe\xb8\x8b\xdd\x7d\x35\x46\x5e\x64\xe9\x67\xc8\xf3\x5f\x87\xa2\ +\x53\x6b\x5e\xc7\x49\x02\xb4\xaa\x32\xaf\x69\xb8\x64\x3c\xdd\xaf\ +\x1f\xd7\xe1\x8d\x2b\xeb\x02\xe0\xab\x0a\x83\xba\xe1\x2a\xcd\x16\ +\x2e\xdb\x35\xa9\xf2\xd3\x6b\xaa\x4b\x07\xac\xaf\x99\x14\x96\xd0\ +\x46\xa0\x46\x1c\x1c\xbc\xc3\x46\x7c\xed\xf9\x6d\xb8\x48\xef\x01\ +\xf2\xfd\xc6\x2f\x69\x0a\xf6\x0f\xc9\xab\x54\xe0\xd1\x0f\x9a\xd1\ +\x81\x71\x1d\x60\x08\x27\x07\x03\x97\xd9\x3e\xd8\xb4\x30\xd4\xd3\ +\x73\x93\x65\xb0\x03\xd3\x24\xdc\x3a\x90\xad\xfc\xb3\xdb\xfe\xfc\ +\x36\xbd\xbf\xc9\x10\xa3\xeb\x30\x69\x40\x6a\xba\x62\xd3\xf4\xea\ +\x2a\x7d\x40\xc7\xb4\x39\x68\x5e\xa4\xd1\x06\x6f\xec\xa6\x9b\x4a\ +\x1b\xeb\x5b\x9a\x0e\x07\x8e\xdf\x95\xda\x3b\xcb\x7d\xbc\x82\xc6\ +\x69\x7d\xfb\xa3\xe9\x01\xae\x35\xc3\xee\x3a\x48\x37\x01\x6f\x9f\ +\x03\x9d\xbc\xa2\x47\x1a\xb7\x68\xfa\x74\xa7\x63\x4b\x57\x84\x8b\ +\xb0\x08\x5b\x2d\xd9\x51\x76\x87\x80\x67\xd9\xe2\x7a\xfe\xf3\xc7\ +\x1f\x9a\x4a\x33\x8a\xe6\xff\x48\xb3\xcf\x6d\x91\x88\x0c\xe1\x55\ +\xba\x81\x35\x35\xd5\x2f\xde\xca\x44\x73\x74\xe6\x61\x71\x11\x2f\ +\x41\x76\xbc\x18\xfc\xee\x61\x99\x80\x5a\x37\x0d\x3d\xe6\x62\xbb\ +\x76\xed\xa0\xd5\xb0\xbb\x4b\x4e\xef\x45\xe9\x22\x5a\xc6\xd8\x69\ +\xf6\xa9\x00\x8d\xff\x11\x27\xe9\x54\xc4\xd5\xa0\x11\x5e\xd3\xa6\ +\xd9\x45\x67\x60\x14\xe0\xfd\x4d\x53\xb7\xf6\x96\x10\x17\x89\xbb\ +\xf8\x6b\xf8\x79\x73\x35\xfa\x54\x38\x30\xdd\xac\x5c\x6e\x45\xef\ +\x8e\x31\x3b\x1c\xa4\xe4\x3c\x98\x0f\x87\xad\x64\xb8\xa8\x45\xa8\ +\xee\xfe\x82\xe5\x26\x8f\xa3\xdb\x30\x49\x82\xe8\x4b\xd9\xb5\xe6\ +\x6a\x7b\xc2\x14\x49\x1c\xb9\x55\xfe\x34\x2c\xe5\xb4\xf1\x1d\xd8\ +\xf4\x72\x99\xae\xf2\x12\xa1\xba\x6f\x3e\xbb\xda\x4e\xf3\x70\x06\ +\x45\xc6\xec\x00\x9e\x4a\xb0\x4f\xe5\xbd\xdc\xe8\x32\xbd\x19\xfd\ +\xb4\x29\x7c\x12\x97\x52\x6c\xae\x7e\x03\x2f\xd5\x83\x01\x17\xf3\ +\xe7\xf0\x66\x0f\x49\xa4\x26\xf1\x45\x02\xe3\xa5\x38\x5e\xfd\x7c\ +\x8c\xe9\x49\x1e\xf7\x10\x7b\x39\x2a\x5a\x6f\xfe\x0a\xc9\xfe\x4a\ +\xcb\xcd\x42\x95\xed\xaa\xf0\xe5\x3e\xb2\x1d\x2d\x3e\x11\xd4\xfe\ +\x96\xad\x5d\x06\x6a\x99\x3f\xb9\x65\xbe\x3b\xfc\x9f\xdd\x3a\x4b\ +\x17\x9b\xf2\x12\xb5\xbf\x57\x5f\x39\xf0\xc7\x18\x42\x45\x7c\xb5\ +\xf1\x0e\x9c\xb9\x7f\x6d\x62\xe8\xf1\xac\x91\xff\x9e\x16\x00\xc9\ +\xcb\x8e\xf9\xbe\x38\xbe\xd8\xaf\x42\xc1\x65\xf1\x5d\xb9\xa5\xa8\ +\x0d\xf9\xcb\x2e\xfa\xd3\x6d\x98\xb9\xf7\x49\xfc\xb9\x0b\x46\xa9\ +\x7a\xb5\xaa\xed\x0e\xcf\x3a\xfe\xf4\x6c\xb6\xf3\xb6\xe5\xd3\x4d\ +\xeb\x85\x7b\xe1\xa9\x71\xe1\x49\x78\xe5\x20\xb4\x5f\x62\xe3\xe8\ +\xa0\xf5\x26\x4b\x37\xeb\x65\xba\x70\x75\xf7\xc6\x81\x83\x2d\x34\ +\x75\x45\x19\x92\x35\x81\xec\x47\x74\x92\xbc\xec\xc1\x4b\x2e\x4f\ +\xc4\x20\x10\xf3\x5e\x6e\x57\x65\x89\x90\x27\x91\x36\x25\x6a\xde\ +\x51\xa0\x78\x82\x46\x3a\xd5\x43\x1d\xcf\x30\x7f\xa6\xb6\xdb\xa5\ +\xac\x3a\x60\x69\xd6\xb0\x36\x21\xac\x0f\x2e\x0f\xcf\xc2\xfb\x87\ +\xc1\x98\xe2\xcc\x21\x14\xbc\x79\x7d\x78\x00\xf1\xb6\x6c\xf5\x1c\ +\xa7\x97\xe4\x6c\x93\xb8\xb9\xbb\x73\xab\x74\xb1\x78\x57\xe5\x4f\ +\x9d\x23\x66\x7c\xac\x22\x70\xa7\x5f\x4d\xc6\x4c\x0e\x70\x9e\x83\ +\x62\x16\x5d\xda\x6f\x69\xbc\x9a\x83\x4e\xba\xec\xdd\x32\xcc\x3e\ +\xbb\x6c\xbe\x4a\x57\xae\xfe\x3d\xcd\x8b\x30\x2b\x7a\x94\x65\xbc\ +\xe8\x3d\xbb\x55\xfd\x5c\x8f\x59\x0e\x95\xc4\xf0\x67\x4e\x77\x35\ +\xcf\xae\x6d\x11\x42\x0a\x91\x65\xe1\xb6\xd7\x03\xa9\xd5\xe9\x6d\ +\xe7\x0a\xb1\x6e\x3b\x84\xe1\x2e\xce\xe3\xab\x38\x41\x62\xf9\x33\ +\x71\xef\x16\x71\xbe\x06\x95\x99\xc7\x2b\x14\xe8\x5d\x7a\xe7\xb2\ +\xeb\x24\xbd\xdf\xb5\x77\xca\xe6\x8e\x2a\x6d\xcb\x4d\xd5\x5c\xc9\ +\xce\xb1\x03\x2a\x87\x08\x84\x05\xa5\x31\x07\xca\x41\xc1\x5d\x32\ +\x62\x3a\x07\xa9\x3b\xe5\x80\x64\x92\x99\x6e\x43\xab\x1c\x82\x3c\ +\x5f\x39\x0e\xcf\x51\x4e\x57\x8e\x2e\xd0\xdf\x34\xe3\xa8\x66\xac\ +\xc3\xe2\xb6\xd9\xa7\xa6\x5c\x01\x67\x84\x19\x1a\x24\xc5\x11\x7e\ +\x7a\xdb\x8b\x3d\xac\xe9\x9c\x32\x02\xed\x6f\x23\xd0\x1e\x4e\x8d\ +\xa5\x6c\xd2\x1c\x98\x8d\x2e\x91\x4a\x8d\xe2\xcc\x4e\x78\x40\xa4\ +\xc0\xb7\x08\x80\x0a\x55\x9c\x15\x94\x32\x89\x54\x6b\x34\xb5\xa2\ +\xa6\x1a\xc9\x29\xf0\x02\x99\x1a\xaa\x65\x35\xc2\xc1\xb8\x5f\x46\ +\x07\xaa\xb5\x27\xdf\xbe\xfc\x1e\x84\x8e\xa2\x39\x60\x0b\xfc\x9b\ +\xe6\xdd\xe6\x7d\x95\x38\xa2\x32\x07\x4a\xd5\x1b\x79\x4f\x29\x1f\ +\x51\x5f\xbf\xa6\x57\x83\x1d\x9a\xca\xbe\x4d\x3d\x62\x82\x4a\xbc\ +\xdd\x33\xd7\x03\xe4\xfc\xee\xa6\xd2\x0e\x19\x48\xc6\x8d\x22\xb0\ +\xe3\x96\x59\x08\x58\x72\xf4\x01\xa9\x94\x33\xca\x44\x87\x0a\xfb\ +\x6d\xa8\xd2\x52\x4e\x44\xc0\x84\x84\x88\x24\x7a\x34\xc5\x95\xa1\ +\x4c\x55\x9a\xb1\xa3\xb2\x00\xcf\xcb\x14\xc5\x31\xbb\x54\x6d\xb4\ +\xb6\xba\x33\x0f\xe8\x10\x25\x9c\x2a\xd5\x59\x51\x4b\xbb\x1c\xc1\ +\x6f\x65\x15\x97\xaa\x43\xfd\x30\x12\x50\x9b\x1a\x43\x2c\xef\x50\ +\x81\x26\x08\x17\x8a\x76\xe6\xe9\xd1\xea\x15\x5d\x76\xa9\xcd\xea\ +\x3f\xf4\xa8\x3b\x39\xdb\x79\x5a\x3c\xda\x15\xb5\xb4\x4b\x2f\x9e\ +\xdf\xac\x62\xa0\x55\xb0\x26\x7f\xa8\xef\x56\x9f\x36\x8c\x6e\x84\ +\x2a\x97\xe0\x37\x05\x12\x70\xd8\xe0\x5e\xec\x6b\x03\x22\x37\xfb\ +\xe1\x93\xd9\x00\x7c\x1f\xeb\x9c\x14\xef\x22\x2e\xb7\x81\x95\x94\ +\xf3\xfd\x00\xad\x8c\xa0\x9a\x77\xf3\x3c\x0e\x41\x5b\x49\xbc\x51\ +\x7d\xdc\xa5\xa3\x3b\x3f\x1f\x87\x59\x74\x2c\x2a\x43\x28\xb7\x56\ +\x28\xc9\xe8\xe0\x9c\x8d\x3d\x23\x67\xfb\x16\x96\x1f\x0b\xcb\xfb\ +\x71\xd6\x28\xd5\x49\xa3\x76\x7b\xe9\xbf\xcf\x6d\x9b\xbd\x97\xc0\ +\x4d\x33\xd6\x0c\x87\xb7\xcc\x6d\xf3\x16\xcf\x8d\xc1\x7b\x19\xcb\ +\x65\x3f\xc6\x0b\x12\x08\x83\xf1\x7c\xd4\x0c\x3f\x7a\x3f\x6a\xc6\ +\x1a\x35\xdd\x46\x64\x44\xe1\x3b\xb2\x01\xa8\x37\x37\x06\x02\xfd\ +\xb0\x0e\xbe\x19\xbe\x34\x8b\x28\x0e\x2e\x6e\xa0\xf6\xd1\x46\x58\ +\xff\x8d\x61\xdd\x34\xd5\x81\xd4\xd6\xe0\x35\x75\x20\xe1\x2f\xb7\ +\x6f\x8f\xd8\xca\x09\x69\xea\xeb\x28\x6a\xf5\xfc\x94\x92\xa5\x3a\ +\xf1\xed\x5b\x00\x09\x6c\xf9\x31\x6c\xdf\x04\xa0\x32\x5c\x2d\x0e\ +\x6c\xa0\xa2\xfe\xaf\xdb\x40\x95\x38\x40\xa1\x42\x71\xf7\x26\x14\ +\xb6\x11\xdf\xf0\x28\xd3\xca\x86\x0a\x15\x08\x97\x92\x2b\x4c\x20\ +\x6d\xa0\x94\x80\xf0\x2c\x8e\x51\x55\x40\xb5\xa2\x42\x03\x95\x41\ +\x59\x0b\x41\x5b\xc8\x09\x83\x08\x0a\x79\x29\xe1\x25\xaf\xb4\x94\ +\x0b\x48\x14\x28\xc5\x93\x6c\x4a\x68\x9f\x8a\x6b\xd0\x44\xe9\xde\ +\x1a\xda\x95\x75\x42\x70\x6b\xc1\x82\x1f\x1a\xd9\x7e\x82\x8d\x39\ +\xf6\x10\x9d\x24\x81\x24\x86\x30\x2a\x86\x3a\x69\x7c\xd7\xe6\x77\ +\x75\xd2\xff\xf7\x1a\x0a\x91\x9a\x81\x4d\x1b\xd0\x0e\x16\x08\x6d\ +\x88\xa8\x34\xa9\xa1\xea\x00\x37\xa1\x4c\x05\xa1\x8e\xd6\x90\xf2\ +\x49\x7a\x84\x0a\x4e\x1d\x0a\x20\x21\x08\x26\xb2\x90\x42\x72\xa8\ +\x97\x80\x8a\x27\x3c\x1c\x9d\x22\x68\xa5\x95\xc2\x5a\x36\xc1\x4b\ +\x7c\xcd\xa1\x76\x42\x4d\x66\x56\x30\x43\x4a\x4d\x16\xa8\xeb\xfd\ +\xf9\x9b\x55\xf9\xb5\x53\x0e\xd0\xce\x13\xcb\x45\x5f\xc5\x08\xd2\ +\x9a\x3e\x70\x0c\x93\x1f\x90\xd0\x4e\x28\xc6\x01\x70\x7f\xb2\x04\ +\x63\x47\x85\xec\x08\x4c\x98\xb0\xd2\xe0\x41\xf1\x4b\x64\x8e\x50\ +\xf1\x5e\xd0\x72\xab\x91\x0a\x70\x09\x22\xc0\x4e\x2b\x40\x20\x19\ +\x53\x15\xaf\x80\x40\xa4\xf5\x04\x0f\xc1\x8c\xd0\x54\xf4\xa9\x06\ +\x7a\x31\x53\x9a\xb6\x6f\x65\xdf\xb2\xeb\x53\x6b\x4e\x6f\x19\x69\ +\xc5\xdb\x97\x4c\xb7\x21\x59\x60\x86\x0b\xf2\xf5\x01\xdd\x9b\xe0\ +\x6a\x8f\xef\xfc\x96\xda\xbe\x44\x58\x3f\x76\x5a\xc4\x34\x58\xa6\ +\x39\x7e\x5a\xd4\xa5\x42\xc9\xcc\x85\x41\xdb\x87\xa2\x1a\x0a\xe7\ +\xa7\x4f\x8b\xda\xe3\x2b\xe5\xc9\x9b\x0f\x4e\xbd\x4e\xf1\x7a\x79\ +\xee\x3d\x26\xd3\xfb\x4e\x0f\xd2\x11\xc1\x09\x08\x83\x0e\x47\xe2\ +\x8b\xa6\x28\x0c\x64\xa6\x4a\x0a\xcd\xd0\xd7\x5b\x62\xac\xc6\xb8\ +\x00\x59\x0c\x25\x90\x6d\x80\xd3\x93\x81\x66\x8a\x72\x3c\x38\xf0\ +\x51\x31\xdf\xd1\x8c\x31\x8b\x71\x81\x31\xa3\xb9\xc1\x31\x29\xbe\ +\x95\x08\x6e\x50\x05\x8c\x32\xa6\x19\xf6\x86\x08\x42\x2d\xce\x0f\ +\xbd\x61\x72\x03\xce\x91\x8b\x00\x2f\x05\x0c\xcc\x8e\x6f\x2b\x42\ +\x7a\x61\x4a\x78\x39\x01\x9c\xca\xe8\x23\x05\xb3\x78\xb8\xc2\xf1\ +\x8d\x14\x98\x09\xa2\x8a\x0d\xb8\x62\x78\x44\xc7\xa1\x8f\x30\x38\ +\x37\x48\xa4\x20\x36\x61\xf2\xee\xa1\x5d\x7a\x65\xf7\xb8\xd5\x67\ +\x9f\x12\x9b\x6f\xe5\xe8\x7f\xec\x94\x18\xb4\x3f\x8f\x72\x9f\xa1\ +\xed\x9d\x13\x83\x02\x0a\xad\xeb\xc4\x88\x4b\xc8\xab\x49\xa5\x96\ +\x07\x54\xb4\x6b\x41\xb8\x14\x65\x14\x96\x9c\xc8\x4a\x2d\xc1\xd2\ +\x8d\x45\x05\x04\xfd\x82\xbc\xbb\x52\x4b\x70\x00\x4a\x13\x54\x56\ +\x48\x08\x38\x95\xa8\x6c\x42\x29\x06\xfe\x01\x92\x2a\x85\xc6\xa5\ +\xbc\xb4\x0f\x23\x66\x02\xb4\x03\x5a\x9a\x04\x33\x02\x4f\xa3\xcb\ +\x17\x44\x0d\x67\x0a\x39\x31\xcf\x87\xbc\x00\x68\xd2\x30\xae\x24\ +\xd2\x28\x2c\x52\xd4\xbd\x0f\xa8\xa0\xfe\x44\xe0\x0b\xe9\xb8\x1e\ +\x42\x35\xd5\x1c\x25\x34\x9c\x28\xae\x71\xe5\xca\x72\xc5\x69\x25\ +\xb7\x94\x9a\xc0\x3c\x28\x8f\x31\x54\x0b\x5c\x25\xe4\x7a\xd6\xaa\ +\xd2\x78\xa4\x24\xca\x78\x69\xe5\xdc\x90\xc8\x00\x32\x88\x9a\x25\ +\x5c\x03\x15\xdd\x03\xa7\x8a\x6a\x7c\x29\x9b\x0b\xab\x88\xf4\xa2\ +\xfb\x2d\x9f\xf9\xc3\xcf\xd0\xc1\xed\x0e\x3d\x43\x3f\x9b\xdd\x5c\ +\xbc\x3a\xc3\x57\x6f\x2e\x5e\xfd\x1b\x91\xc7\x79\xe1\ \x00\x00\x37\x3f\ \x3c\ \x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\ @@ -896,260 +1121,24 @@ \x30\x2e\x39\x2c\x38\x31\x2e\x31\x35\x33\x2c\x30\x2c\x38\x36\x2e\ \x32\x39\x32\x2c\x30\x2c\x37\x36\x2e\x34\x37\x22\x2f\x3e\x0d\x0a\ \x3c\x2f\x67\x3e\x0d\x0a\x3c\x2f\x73\x76\x67\x3e\x0d\x0a\ -\x00\x00\x0d\xee\ -\x00\ -\x00\x40\xee\x78\x9c\xed\x5a\x59\x73\xdb\xc8\x11\x7e\xf7\xaf\x60\ -\xe8\x17\xbb\x96\x04\xe7\x3e\x68\x49\x5b\x8e\x5d\x9b\xda\x94\x92\ -\xad\x5a\xef\x56\x1e\x53\x10\x38\x92\xb0\x06\x09\x06\x00\x25\xd1\ -\xbf\x3e\xdd\x00\x88\x83\x1c\x4a\xa0\xac\xdd\xa4\x12\x93\x76\x89\ -\xe8\xe9\x39\xfa\x9b\x3e\x67\x70\xf6\xfd\xc3\x32\x19\xdd\xb9\x2c\ -\x8f\xd3\xd5\xf9\x98\x06\x64\x3c\x72\xab\x28\x5d\xc4\xab\x9b\xf3\ -\xf1\xaf\xbf\xfc\x30\x35\xe3\x51\x5e\x84\xab\x45\x98\xa4\x2b\x77\ -\x3e\x5e\xa5\xe3\xef\x2f\x5e\x9d\xfd\x69\x3a\x1d\x7d\xc8\x5c\x58\ -\xb8\xc5\xe8\x3e\x2e\x6e\x47\x3f\xae\x3e\xe7\x51\xb8\x76\xa3\x37\ -\xb7\x45\xb1\x9e\xcf\x66\xf7\xf7\xf7\x41\x5c\x13\x83\x34\xbb\x99\ -\xbd\x1d\x4d\xa7\xd0\x33\xbf\xbb\x79\x35\x1a\x8d\x60\xda\x55\x3e\ -\x5f\x44\xe7\xe3\x9a\x7f\xbd\xc9\x92\x92\x6f\x11\xcd\x5c\xe2\x96\ -\x6e\x55\xe4\x33\x1a\xd0\xd9\xb8\x65\x8f\x5a\xf6\x7b\x77\x15\x64\ -\x2e\x4f\x37\x59\x54\x0d\x1f\x45\x5d\xce\x6c\x71\xdd\xb2\xc2\x4a\ -\xee\x79\xc9\x44\xad\xb5\x33\xc2\x66\x8c\x4d\x81\x63\x9a\x6f\x57\ -\x45\xf8\x30\x5d\xe5\xaf\x3b\x5d\x61\x81\xbe\xae\x8c\x10\x32\x83\ -\xb6\x96\x73\x18\xd7\xfc\x21\x01\x18\x8e\x2e\xa6\x6c\xed\xce\x0e\ -\xd0\xaf\xe1\x7f\xd3\xa1\xc1\xb0\x92\xf5\x1a\x7a\xba\x60\xe5\x8a\ -\xd9\xc7\x5f\x3e\xce\x76\xdc\x53\x12\x2c\x8a\x45\x67\x98\x5d\xaf\ -\xde\xbc\xbd\xed\x58\x85\x4b\x97\xaf\xc3\xc8\xe5\xcd\x14\x65\xff\ -\xdd\xc3\xdc\x3d\xac\xd3\xac\x98\x6e\x17\x6b\x58\x8c\x25\x01\x29\ -\x3f\x5e\x9e\x87\x01\x3c\xd7\x71\xe2\x70\xce\xf3\xf1\xec\x36\x5d\ -\xba\xd9\x6f\xf1\x72\x19\x46\xb3\x8f\x2e\xff\x5c\xa4\xeb\xd9\x7d\ -\x0c\x1c\xc1\x7a\x55\x21\x77\x1f\x2f\x8a\xdb\xf3\xb1\x30\xeb\x87\ -\xf2\xf9\xd6\xc5\x37\xb7\x45\x87\x10\x2f\xce\xc7\x00\x33\xa5\xbc\ -\x9e\x6e\x87\xc4\xbc\xd1\x65\x12\x70\xd6\x5f\x49\xa7\x49\xf0\xef\ -\x16\xee\xce\x25\xfd\xbe\x8b\x34\xba\x0a\xf3\x66\x89\x45\x7c\xe3\ -\xb2\x62\x16\xdd\xe5\xb3\xeb\xcc\xb9\x45\xb5\xd4\x12\x3d\xb0\x88\ -\x9b\x74\x1a\x47\xe9\x6a\x5a\xdc\x82\xb2\xce\x60\x86\x24\xbc\x4a\ -\xdc\x2c\x8c\x0a\x98\x23\x3f\x18\xb8\x92\x3d\xdf\xe6\x85\x5b\x4e\ -\x93\xf4\x66\x9a\x6e\x8a\x60\xa7\x29\xcd\x12\x81\xb8\xde\x14\xff\ -\x74\x0f\x85\x5b\x55\x6b\x85\xd9\x3a\x1b\x57\x36\x63\xb7\x86\x36\ -\xbe\x80\x01\xce\x16\xee\x3a\xc7\x81\x2a\x64\xf0\x89\x97\x0d\xd0\ -\x04\x0a\xe6\xc2\xec\x2f\x59\xb8\x88\xc1\xa6\x2a\xa6\x8a\xad\xdf\ -\x62\x8d\x55\x75\x1f\xe8\x95\x83\xa4\x3b\xde\x1a\x6e\xa0\x00\x8f\ -\x19\xb7\xe4\xf4\xfa\x3a\x77\xb0\x2d\xa4\x43\xcb\x8b\x6d\xe2\x2a\ -\xee\x69\x94\x26\x69\x36\x7f\x1d\x39\xfc\xbe\x2b\x49\x29\xa8\x5c\ -\x5c\x6c\xe7\xf4\xdd\x78\x34\x7b\x6a\x36\x4b\x88\x67\x36\x5a\xab\ -\xd9\x13\xb3\x5a\x87\xdf\xbd\x59\x77\x5d\xdb\xd9\xcf\x66\x7d\x18\ -\x4e\x46\xcd\xb4\x88\x34\xdb\x08\x4b\x48\x5c\x04\x6b\x0d\x93\xfb\ -\x70\x9b\x0f\x80\xd5\x27\xe8\x13\x02\x5e\x97\x9f\x67\xc0\x6a\x2c\ -\xf3\xc1\x7a\xfa\x6c\x2f\x0a\x23\x79\x01\x18\x8d\x4f\xb0\x27\x60\ -\x94\x0c\xbf\xcf\x81\xd1\x88\xd3\x61\xf4\xcd\xf6\x92\x30\x2a\x73\ -\x0c\x25\xcf\x62\x84\xc3\xef\x51\x13\xf1\x40\xe9\x31\xbd\x16\x0f\ -\x4d\x8e\xa3\xe6\x99\x5d\x51\xfc\xee\x41\xf1\xd8\xec\x3e\xc3\xef\ -\xcc\xce\x5e\x0e\x45\x29\x9e\xd6\x35\xa9\x06\x02\x74\x3a\xf0\x03\ -\x74\x4f\xfa\xfc\xf0\x40\xcf\x18\x5e\xe1\xf7\xf7\xf7\x8c\x82\xbd\ -\x80\x49\x0b\x9f\x91\x3d\x21\xa0\x66\xda\x91\xf0\x39\x26\x2d\x7c\ -\x9b\xfa\x84\x49\xfb\x66\x7b\x49\x18\x39\x79\x1a\x25\xee\x75\x7c\ -\xc3\xd4\x41\x12\xfc\x7e\x8d\x32\x72\xaf\x23\x1c\x36\x3b\x35\xf8\ -\x7d\x61\x65\x3c\xa6\x6d\xc7\x61\x36\x4a\xb1\x13\x3c\x67\xbd\xbc\ -\x7d\x0d\x7b\x5c\x53\x77\x80\xc1\x5c\xe2\x24\x4f\xe9\x9b\xcd\xef\ -\x21\xfd\xb3\xa9\x3f\x10\x46\x79\x54\x5b\x87\xa7\x30\x43\x61\x94\ -\xec\x24\x18\x8f\xa4\x30\x43\x61\x94\xe2\x29\x18\xf1\x29\x4c\x4e\ -\x86\xb1\xac\x01\xe7\xb7\x99\x83\x9a\xf5\xb5\x07\xcf\x2e\xdc\xfd\ -\x29\xa0\xb9\x75\x58\xd1\x03\xac\xdc\x06\x9a\x50\x2a\x5a\x09\xa2\ -\xed\xf9\x98\x05\x90\xdb\x5b\x6e\x5a\xea\xb5\x97\xf7\xda\xcb\x9b\ -\x01\xab\x0e\xa8\x06\x4e\xd9\x10\x6f\xea\x15\xfc\x92\x85\xab\x1c\ -\x8a\xd2\xe5\xf9\x78\x19\x16\x59\xfc\xf0\x86\x06\x4c\x72\x21\xd8\ -\x64\xca\x02\x66\x15\xb5\xd2\x4d\xa9\x9a\xd0\x40\x0b\x2d\x14\x29\ -\x1f\x48\x60\x25\x87\xec\x7e\x32\xa5\x32\x10\xda\x12\x33\xa1\xd0\ -\x4f\x2b\xc5\xdf\x1e\x4c\xf1\xeb\x2a\x2e\xa0\xd8\xde\xe4\x2e\xfb\ -\x84\x05\xeb\x4f\xab\x5f\x73\xd7\x6e\x85\x1f\x74\x5c\xb4\x0c\x94\ -\x10\x9a\xeb\x9e\x7c\x5c\x05\x82\x51\xca\x74\x0f\x0b\x26\x02\xc3\ -\x35\x65\xaa\x87\xdb\x21\x6f\xe4\xe5\x7d\x0c\x8c\xca\x76\x27\xc4\ -\xf3\x43\x72\xa5\x19\x07\x64\x94\xe6\x52\x23\x4c\x72\x42\x55\x60\ -\x34\x27\x6a\x28\x0c\xc7\x75\xc3\x9a\xce\x0a\x1f\x55\x31\x35\x20\ -\x4e\x3f\x01\xf7\xb0\x45\x1e\xc7\x89\x01\x2a\xca\x12\x3d\x11\x81\ -\x90\x8a\x31\x53\xaa\xc9\x54\x06\x46\x4a\x4b\x69\xf9\xc4\x02\xc5\ -\x35\x53\x06\x94\x46\xf0\x40\x6a\x64\x50\x34\xb0\x40\xa5\x6f\x7b\ -\xda\xaa\xa0\xf4\xa7\x92\x8a\xde\xc6\x0b\x00\x5c\x40\xa4\x63\xbd\ -\x8d\xb7\x3c\xd0\x86\x90\x8e\x92\x44\x5e\xde\xc8\xcb\xeb\x43\x9d\ -\x0f\x42\xbd\x0c\xeb\xc3\x51\xf7\x3b\xe8\x67\xea\x9d\xe2\x12\xc0\ -\x69\x29\x60\x28\x56\x18\x2b\x4e\xd5\xb9\x2d\x03\x63\x30\x01\x18\ -\x08\x58\x79\x2b\x34\x50\x39\x18\x38\x97\x96\xb5\x4e\x64\x4b\x01\ -\x55\xc0\x4f\x82\xaa\x77\x78\xa9\x8f\xd7\x9b\x4b\x9a\x61\xa8\x0e\ -\xc9\x39\x07\xa2\x3a\x40\x78\x0d\x02\x59\x50\xdc\x9e\xf0\xd4\x04\ -\x84\x53\xb6\x27\x3c\x78\x5b\x43\x04\xa5\xba\x27\xbc\x00\x73\x17\ -\xd2\x30\xf9\xa8\xf0\x4a\x0c\x13\x5e\x8a\xff\x02\x43\x96\x9c\x08\ -\x2d\x27\x32\x20\x20\x99\x54\x60\xba\x06\x43\x01\x37\xcc\x6a\x34\ -\x6b\x01\x0e\x4f\x10\xce\x14\x44\x08\x70\xb0\xda\x4a\x0a\xbf\x6c\ -\x20\x0c\xe7\x84\xf7\x0c\x19\x02\x14\x63\x9a\x76\xaa\x7a\x34\x64\ -\x88\x45\xdc\x2a\xa2\x49\xcf\x90\x61\x2f\x8c\xe1\xf0\xaf\x67\xc8\ -\x87\xbc\x91\x97\xd7\x67\xc8\x7a\xa0\x21\xab\x01\x07\x40\xa7\x1b\ -\x72\x81\x3f\x93\xb0\x70\x6f\xa6\x14\x4c\x4c\x51\xd6\xda\xf0\xb3\ -\x0c\x55\x04\x5a\x81\xaa\x89\xbe\xa1\x0a\x18\x52\x0b\xaa\xf6\x75\ -\x95\x12\xad\xd9\x9e\xa1\x52\xf0\xc6\x0c\xb6\xeb\x51\x5d\x35\x03\ -\x51\x1b\x72\xde\xf3\x62\x86\x0a\x9e\x47\x08\x6b\x85\xee\x1b\x2a\ -\xe8\x97\x94\xb2\xe3\x5a\x4a\xe1\x79\x00\x69\x08\x80\xd2\x13\xde\ -\x00\x7a\x10\xa2\xc4\xe3\xc2\xdb\x81\x86\x3a\xe4\xcc\xf0\xc5\x84\ -\x47\x7f\xa4\xc0\xe2\xf6\x5c\x34\x38\x63\x4a\x94\xec\x7b\x29\x46\ -\x03\x49\x29\x35\x72\x7f\xe7\x89\x36\x56\x3e\xea\xa5\x2c\x61\xc3\ -\x84\xb7\x6a\xa8\xf0\x67\x33\x3c\xc9\x2e\x7f\x35\x47\xe9\x78\x8e\ -\xbe\xb8\x8b\xdd\x7d\x35\x46\x5e\x64\xe9\x67\xc8\xf3\x5f\x87\xa2\ -\x53\x6b\x5e\xc7\x49\x02\xb4\xaa\x32\xaf\x69\xb8\x64\x3c\xdd\xaf\ -\x1f\xd7\xe1\x8d\x2b\xeb\x02\xe0\xab\x0a\x83\xba\xe1\x2a\xcd\x16\ -\x2e\xdb\x35\xa9\xf2\xd3\x6b\xaa\x4b\x07\xac\xaf\x99\x14\x96\xd0\ -\x46\xa0\x46\x1c\x1c\xbc\xc3\x46\x7c\xed\xf9\x6d\xb8\x48\xef\x01\ -\xf2\xfd\xc6\x2f\x69\x0a\xf6\x0f\xc9\xab\x54\xe0\xd1\x0f\x9a\xd1\ -\x81\x71\x1d\x60\x08\x27\x07\x03\x97\xd9\x3e\xd8\xb4\x30\xd4\xd3\ -\x73\x93\x65\xb0\x03\xd3\x24\xdc\x3a\x90\xad\xfc\xb3\xdb\xfe\xfc\ -\x36\xbd\xbf\xc9\x10\xa3\xeb\x30\x69\x40\x6a\xba\x62\xd3\xf4\xea\ -\x2a\x7d\x40\xc7\xb4\x39\x68\x5e\xa4\xd1\x06\x6f\xec\xa6\x9b\x4a\ -\x1b\xeb\x5b\x9a\x0e\x07\x8e\xdf\x95\xda\x3b\xcb\x7d\xbc\x82\xc6\ -\x69\x7d\xfb\xa3\xe9\x01\xae\x35\xc3\xee\x3a\x48\x37\x01\x6f\x9f\ -\x03\x9d\xbc\xa2\x47\x1a\xb7\x68\xfa\x74\xa7\x63\x4b\x57\x84\x8b\ -\xb0\x08\x5b\x2d\xd9\x51\x76\x87\x80\x67\xd9\xe2\x7a\xfe\xf3\xc7\ -\x1f\x9a\x4a\x33\x8a\xe6\xff\x48\xb3\xcf\x6d\x91\x88\x0c\xe1\x55\ -\xba\x81\x35\x35\xd5\x2f\xde\xca\x44\x73\x74\xe6\x61\x71\x11\x2f\ -\x41\x76\xbc\x18\xfc\xee\x61\x99\x80\x5a\x37\x0d\x3d\xe6\x62\xbb\ -\x76\xed\xa0\xd5\xb0\xbb\x4b\x4e\xef\x45\xe9\x22\x5a\xc6\xd8\x69\ -\xf6\xa9\x00\x8d\xff\x11\x27\xe9\x54\xc4\xd5\xa0\x11\x5e\xd3\xa6\ -\xd9\x45\x67\x60\x14\xe0\xfd\x4d\x53\xb7\xf6\x96\x10\x17\x89\xbb\ -\xf8\x6b\xf8\x79\x73\x35\xfa\x54\x38\x30\xdd\xac\x5c\x6e\x45\xef\ -\x8e\x31\x3b\x1c\xa4\xe4\x3c\x98\x0f\x87\xad\x64\xb8\xa8\x45\xa8\ -\xee\xfe\x82\xe5\x26\x8f\xa3\xdb\x30\x49\x82\xe8\x4b\xd9\xb5\xe6\ -\x6a\x7b\xc2\x14\x49\x1c\xb9\x55\xfe\x34\x2c\xe5\xb4\xf1\x1d\xd8\ -\xf4\x72\x99\xae\xf2\x12\xa1\xba\x6f\x3e\xbb\xda\x4e\xf3\x70\x06\ -\x45\xc6\xec\x00\x9e\x4a\xb0\x4f\xe5\xbd\xdc\xe8\x32\xbd\x19\xfd\ -\xb4\x29\x7c\x12\x97\x52\x6c\xae\x7e\x03\x2f\xd5\x83\x01\x17\xf3\ -\xe7\xf0\x66\x0f\x49\xa4\x26\xf1\x45\x02\xe3\xa5\x38\x5e\xfd\x7c\ -\x8c\xe9\x49\x1e\xf7\x10\x7b\x39\x2a\x5a\x6f\xfe\x0a\xc9\xfe\x4a\ -\xcb\xcd\x42\x95\xed\xaa\xf0\xe5\x3e\xb2\x1d\x2d\x3e\x11\xd4\xfe\ -\x96\xad\x5d\x06\x6a\x99\x3f\xb9\x65\xbe\x3b\xfc\x9f\xdd\x3a\x4b\ -\x17\x9b\xf2\x12\xb5\xbf\x57\x5f\x39\xf0\xc7\x18\x42\x45\x7c\xb5\ -\xf1\x0e\x9c\xb9\x7f\x6d\x62\xe8\xf1\xac\x91\xff\x9e\x16\x00\xc9\ -\xcb\x8e\xf9\xbe\x38\xbe\xd8\xaf\x42\xc1\x65\xf1\x5d\xb9\xa5\xa8\ -\x0d\xf9\xcb\x2e\xfa\xd3\x6d\x98\xb9\xf7\x49\xfc\xb9\x0b\x46\xa9\ -\x7a\xb5\xaa\xed\x0e\xcf\x3a\xfe\xf4\x6c\xb6\xf3\xb6\xe5\xd3\x4d\ -\xeb\x85\x7b\xe1\xa9\x71\xe1\x49\x78\xe5\x20\xb4\x5f\x62\xe3\xe8\ -\xa0\xf5\x26\x4b\x37\xeb\x65\xba\x70\x75\xf7\xc6\x81\x83\x2d\x34\ -\x75\x45\x19\x92\x35\x81\xec\x47\x74\x92\xbc\xec\xc1\x4b\x2e\x4f\ -\xc4\x20\x10\xf3\x5e\x6e\x57\x65\x89\x90\x27\x91\x36\x25\x6a\xde\ -\x51\xa0\x78\x82\x46\x3a\xd5\x43\x1d\xcf\x30\x7f\xa6\xb6\xdb\xa5\ -\xac\x3a\x60\x69\xd6\xb0\x36\x21\xac\x0f\x2e\x0f\xcf\xc2\xfb\x87\ -\xc1\x98\xe2\xcc\x21\x14\xbc\x79\x7d\x78\x00\xf1\xb6\x6c\xf5\x1c\ -\xa7\x97\xe4\x6c\x93\xb8\xb9\xbb\x73\xab\x74\xb1\x78\x57\xe5\x4f\ -\x9d\x23\x66\x7c\xac\x22\x70\xa7\x5f\x4d\xc6\x4c\x0e\x70\x9e\x83\ -\x62\x16\x5d\xda\x6f\x69\xbc\x9a\x83\x4e\xba\xec\xdd\x32\xcc\x3e\ -\xbb\x6c\xbe\x4a\x57\xae\xfe\x3d\xcd\x8b\x30\x2b\x7a\x94\x65\xbc\ -\xe8\x3d\xbb\x55\xfd\x5c\x8f\x59\x0e\x95\xc4\xf0\x67\x4e\x77\x35\ -\xcf\xae\x6d\x11\x42\x0a\x91\x65\xe1\xb6\xd7\x03\xa9\xd5\xe9\x6d\ -\xe7\x0a\xb1\x6e\x3b\x84\xe1\x2e\xce\xe3\xab\x38\x41\x62\xf9\x33\ -\x71\xef\x16\x71\xbe\x06\x95\x99\xc7\x2b\x14\xe8\x5d\x7a\xe7\xb2\ -\xeb\x24\xbd\xdf\xb5\x77\xca\xe6\x8e\x2a\x6d\xcb\x4d\xd5\x5c\xc9\ -\xce\xb1\x03\x2a\x87\x08\x84\x05\xa5\x31\x07\xca\x41\xc1\x5d\x32\ -\x62\x3a\x07\xa9\x3b\xe5\x80\x64\x92\x99\x6e\x43\xab\x1c\x82\x3c\ -\x5f\x39\x0e\xcf\x51\x4e\x57\x8e\x2e\xd0\xdf\x34\xe3\xa8\x66\xac\ -\xc3\xe2\xb6\xd9\xa7\xa6\x5c\x01\x67\x84\x19\x1a\x24\xc5\x11\x7e\ -\x7a\xdb\x8b\x3d\xac\xe9\x9c\x32\x02\xed\x6f\x23\xd0\x1e\x4e\x8d\ -\xa5\x6c\xd2\x1c\x98\x8d\x2e\x91\x4a\x8d\xe2\xcc\x4e\x78\x40\xa4\ -\xc0\xb7\x08\x80\x0a\x55\x9c\x15\x94\x32\x89\x54\x6b\x34\xb5\xa2\ -\xa6\x1a\xc9\x29\xf0\x02\x99\x1a\xaa\x65\x35\xc2\xc1\xb8\x5f\x46\ -\x07\xaa\xb5\x27\xdf\xbe\xfc\x1e\x84\x8e\xa2\x39\x60\x0b\xfc\x9b\ -\xe6\xdd\xe6\x7d\x95\x38\xa2\x32\x07\x4a\xd5\x1b\x79\x4f\x29\x1f\ -\x51\x5f\xbf\xa6\x57\x83\x1d\x9a\xca\xbe\x4d\x3d\x62\x82\x4a\xbc\ -\xdd\x33\xd7\x03\xe4\xfc\xee\xa6\xd2\x0e\x19\x48\xc6\x8d\x22\xb0\ -\xe3\x96\x59\x08\x58\x72\xf4\x01\xa9\x94\x33\xca\x44\x87\x0a\xfb\ -\x6d\xa8\xd2\x52\x4e\x44\xc0\x84\x84\x88\x24\x7a\x34\xc5\x95\xa1\ -\x4c\x55\x9a\xb1\xa3\xb2\x00\xcf\xcb\x14\xc5\x31\xbb\x54\x6d\xb4\ -\xb6\xba\x33\x0f\xe8\x10\x25\x9c\x2a\xd5\x59\x51\x4b\xbb\x1c\xc1\ -\x6f\x65\x15\x97\xaa\x43\xfd\x30\x12\x50\x9b\x1a\x43\x2c\xef\x50\ -\x81\x26\x08\x17\x8a\x76\xe6\xe9\xd1\xea\x15\x5d\x76\xa9\xcd\xea\ -\x3f\xf4\xa8\x3b\x39\xdb\x79\x5a\x3c\xda\x15\xb5\xb4\x4b\x2f\x9e\ -\xdf\xac\x62\xa0\x55\xb0\x26\x7f\xa8\xef\x56\x9f\x36\x8c\x6e\x84\ -\x2a\x97\xe0\x37\x05\x12\x70\xd8\xe0\x5e\xec\x6b\x03\x22\x37\xfb\ -\xe1\x93\xd9\x00\x7c\x1f\xeb\x9c\x14\xef\x22\x2e\xb7\x81\x95\x94\ -\xf3\xfd\x00\xad\x8c\xa0\x9a\x77\xf3\x3c\x0e\x41\x5b\x49\xbc\x51\ -\x7d\xdc\xa5\xa3\x3b\x3f\x1f\x87\x59\x74\x2c\x2a\x43\x28\xb7\x56\ -\x28\xc9\xe8\xe0\x9c\x8d\x3d\x23\x67\xfb\x16\x96\x1f\x0b\xcb\xfb\ -\x71\xd6\x28\xd5\x49\xa3\x76\x7b\xe9\xbf\xcf\x6d\x9b\xbd\x97\xc0\ -\x4d\x33\xd6\x0c\x87\xb7\xcc\x6d\xf3\x16\xcf\x8d\xc1\x7b\x19\xcb\ -\x65\x3f\xc6\x0b\x12\x08\x83\xf1\x7c\xd4\x0c\x3f\x7a\x3f\x6a\xc6\ -\x1a\x35\xdd\x46\x64\x44\xe1\x3b\xb2\x01\xa8\x37\x37\x06\x02\xfd\ -\xb0\x0e\xbe\x19\xbe\x34\x8b\x28\x0e\x2e\x6e\xa0\xf6\xd1\x46\x58\ -\xff\x8d\x61\xdd\x34\xd5\x81\xd4\xd6\xe0\x35\x75\x20\xe1\x2f\xb7\ -\x6f\x8f\xd8\xca\x09\x69\xea\xeb\x28\x6a\xf5\xfc\x94\x92\xa5\x3a\ -\xf1\xed\x5b\x00\x09\x6c\xf9\x31\x6c\xdf\x04\xa0\x32\x5c\x2d\x0e\ -\x6c\xa0\xa2\xfe\xaf\xdb\x40\x95\x38\x40\xa1\x42\x71\xf7\x26\x14\ -\xb6\x11\xdf\xf0\x28\xd3\xca\x86\x0a\x15\x08\x97\x92\x2b\x4c\x20\ -\x6d\xa0\x94\x80\xf0\x2c\x8e\x51\x55\x40\xb5\xa2\x42\x03\x95\x41\ -\x59\x0b\x41\x5b\xc8\x09\x83\x08\x0a\x79\x29\xe1\x25\xaf\xb4\x94\ -\x0b\x48\x14\x28\xc5\x93\x6c\x4a\x68\x9f\x8a\x6b\xd0\x44\xe9\xde\ -\x1a\xda\x95\x75\x42\x70\x6b\xc1\x82\x1f\x1a\xd9\x7e\x82\x8d\x39\ -\xf6\x10\x9d\x24\x81\x24\x86\x30\x2a\x86\x3a\x69\x7c\xd7\xe6\x77\ -\x75\xd2\xff\xf7\x1a\x0a\x91\x9a\x81\x4d\x1b\xd0\x0e\x16\x08\x6d\ -\x88\xa8\x34\xa9\xa1\xea\x00\x37\xa1\x4c\x05\xa1\x8e\xd6\x90\xf2\ -\x49\x7a\x84\x0a\x4e\x1d\x0a\x20\x21\x08\x26\xb2\x90\x42\x72\xa8\ -\x97\x80\x8a\x27\x3c\x1c\x9d\x22\x68\xa5\x95\xc2\x5a\x36\xc1\x4b\ -\x7c\xcd\xa1\x76\x42\x4d\x66\x56\x30\x43\x4a\x4d\x16\xa8\xeb\xfd\ -\xf9\x9b\x55\xf9\xb5\x53\x0e\xd0\xce\x13\xcb\x45\x5f\xc5\x08\xd2\ -\x9a\x3e\x70\x0c\x93\x1f\x90\xd0\x4e\x28\xc6\x01\x70\x7f\xb2\x04\ -\x63\x47\x85\xec\x08\x4c\x98\xb0\xd2\xe0\x41\xf1\x4b\x64\x8e\x50\ -\xf1\x5e\xd0\x72\xab\x91\x0a\x70\x09\x22\xc0\x4e\x2b\x40\x20\x19\ -\x53\x15\xaf\x80\x40\xa4\xf5\x04\x0f\xc1\x8c\xd0\x54\xf4\xa9\x06\ -\x7a\x31\x53\x9a\xb6\x6f\x65\xdf\xb2\xeb\x53\x6b\x4e\x6f\x19\x69\ -\xc5\xdb\x97\x4c\xb7\x21\x59\x60\x86\x0b\xf2\xf5\x01\xdd\x9b\xe0\ -\x6a\x8f\xef\xfc\x96\xda\xbe\x44\x58\x3f\x76\x5a\xc4\x34\x58\xa6\ -\x39\x7e\x5a\xd4\xa5\x42\xc9\xcc\x85\x41\xdb\x87\xa2\x1a\x0a\xe7\ -\xa7\x4f\x8b\xda\xe3\x2b\xe5\xc9\x9b\x0f\x4e\xbd\x4e\xf1\x7a\x79\ -\xee\x3d\x26\xd3\xfb\x4e\x0f\xd2\x11\xc1\x09\x08\x83\x0e\x47\xe2\ -\x8b\xa6\x28\x0c\x64\xa6\x4a\x0a\xcd\xd0\xd7\x5b\x62\xac\xc6\xb8\ -\x00\x59\x0c\x25\x90\x6d\x80\xd3\x93\x81\x66\x8a\x72\x3c\x38\xf0\ -\x51\x31\xdf\xd1\x8c\x31\x8b\x71\x81\x31\xa3\xb9\xc1\x31\x29\xbe\ -\x95\x08\x6e\x50\x05\x8c\x32\xa6\x19\xf6\x86\x08\x42\x2d\xce\x0f\ -\xbd\x61\x72\x03\xce\x91\x8b\x00\x2f\x05\x0c\xcc\x8e\x6f\x2b\x42\ -\x7a\x61\x4a\x78\x39\x01\x9c\xca\xe8\x23\x05\xb3\x78\xb8\xc2\xf1\ -\x8d\x14\x98\x09\xa2\x8a\x0d\xb8\x62\x78\x44\xc7\xa1\x8f\x30\x38\ -\x37\x48\xa4\x20\x36\x61\xf2\xee\xa1\x5d\x7a\x65\xf7\xb8\xd5\x67\ -\x9f\x12\x9b\x6f\xe5\xe8\x7f\xec\x94\x18\xb4\x3f\x8f\x72\x9f\xa1\ -\xed\x9d\x13\x83\x02\x0a\xad\xeb\xc4\x88\x4b\xc8\xab\x49\xa5\x96\ -\x07\x54\xb4\x6b\x41\xb8\x14\x65\x14\x96\x9c\xc8\x4a\x2d\xc1\xd2\ -\x8d\x45\x05\x04\xfd\x82\xbc\xbb\x52\x4b\x70\x00\x4a\x13\x54\x56\ -\x48\x08\x38\x95\xa8\x6c\x42\x29\x06\xfe\x01\x92\x2a\x85\xc6\xa5\ -\xbc\xb4\x0f\x23\x66\x02\xb4\x03\x5a\x9a\x04\x33\x02\x4f\xa3\xcb\ -\x17\x44\x0d\x67\x0a\x39\x31\xcf\x87\xbc\x00\x68\xd2\x30\xae\x24\ -\xd2\x28\x2c\x52\xd4\xbd\x0f\xa8\xa0\xfe\x44\xe0\x0b\xe9\xb8\x1e\ -\x42\x35\xd5\x1c\x25\x34\x9c\x28\xae\x71\xe5\xca\x72\xc5\x69\x25\ -\xb7\x94\x9a\xc0\x3c\x28\x8f\x31\x54\x0b\x5c\x25\xe4\x7a\xd6\xaa\ -\xd2\x78\xa4\x24\xca\x78\x69\xe5\xdc\x90\xc8\x00\x32\x88\x9a\x25\ -\x5c\x03\x15\xdd\x03\xa7\x8a\x6a\x7c\x29\x9b\x0b\xab\x88\xf4\xa2\ -\xfb\x2d\x9f\xf9\xc3\xcf\xd0\xc1\xed\x0e\x3d\x43\x3f\x9b\xdd\x5c\ -\xbc\x3a\xc3\x57\x6f\x2e\x5e\xfd\x1b\x91\xc7\x79\xe1\ -\x00\x00\x00\x22\ -\x3c\ -\xb8\x64\x18\xca\xef\x9c\x95\xcd\x21\x1c\xbf\x60\xa1\xbd\xdd\x88\ -\x00\x00\x00\x0d\x11\x01\xfd\x29\x0b\xff\x14\x02\x04\xfd\x2c\x0a\ -\x13\ -\x00\x00\x00\x10\ -\x3c\ -\xb8\x64\x18\xca\xef\x9c\x95\xcd\x21\x1c\xbf\x60\xa1\xbd\xdd\ -\x00\x00\x00\x10\ -\x3c\ -\xb8\x64\x18\xca\xef\x9c\x95\xcd\x21\x1c\xbf\x60\xa1\xbd\xdd\ -\x00\x00\x00\xe1\ -\x3c\ -\xb8\x64\x18\xca\xef\x9c\x95\xcd\x21\x1c\xbf\x60\xa1\xbd\xdd\x42\ -\x00\x00\x00\x18\x00\x04\xcf\x04\x00\x00\x00\x70\x00\x2a\xd0\x25\ -\x00\x00\x00\x00\x00\x2a\xec\x30\x00\x00\x00\x3b\x69\x00\x00\x00\ -\xa8\x03\x00\x00\x00\x10\x00\x26\x00\x46\x00\x69\x00\x63\x00\x68\ -\x00\x69\x00\x65\x00\x72\x08\x00\x00\x00\x00\x06\x00\x00\x00\x05\ -\x26\x46\x69\x6c\x65\x07\x00\x00\x00\x11\x61\x70\x70\x6c\x69\x63\ -\x61\x74\x69\x6f\x6e\x57\x69\x6e\x64\x6f\x77\x01\x03\x00\x00\x00\ -\x0a\x00\x26\x00\x41\x00\x69\x00\x64\x00\x65\x08\x00\x00\x00\x00\ -\x06\x00\x00\x00\x05\x26\x48\x65\x6c\x70\x07\x00\x00\x00\x11\x61\ -\x70\x70\x6c\x69\x63\x61\x74\x69\x6f\x6e\x57\x69\x6e\x64\x6f\x77\ -\x01\x03\x00\x00\x00\x0e\x00\x51\x00\x75\x00\x69\x00\x74\x00\x74\ -\x00\x65\x00\x72\x08\x00\x00\x00\x00\x06\x00\x00\x00\x04\x45\x78\ -\x69\x74\x07\x00\x00\x00\x11\x61\x70\x70\x6c\x69\x63\x61\x74\x69\ -\x6f\x6e\x57\x69\x6e\x64\x6f\x77\x01\x88\x00\x00\x00\x02\x03\x01\ -\ -\x00\x00\x1c\x7f\ +\x00\x00\x00\xe1\ +\x3c\ +\xb8\x64\x18\xca\xef\x9c\x95\xcd\x21\x1c\xbf\x60\xa1\xbd\xdd\x42\ +\x00\x00\x00\x18\x00\x04\xcf\x04\x00\x00\x00\x70\x00\x2a\xd0\x25\ +\x00\x00\x00\x00\x00\x2a\xec\x30\x00\x00\x00\x3b\x69\x00\x00\x00\ +\xa8\x03\x00\x00\x00\x10\x00\x26\x00\x46\x00\x69\x00\x63\x00\x68\ +\x00\x69\x00\x65\x00\x72\x08\x00\x00\x00\x00\x06\x00\x00\x00\x05\ +\x26\x46\x69\x6c\x65\x07\x00\x00\x00\x11\x61\x70\x70\x6c\x69\x63\ +\x61\x74\x69\x6f\x6e\x57\x69\x6e\x64\x6f\x77\x01\x03\x00\x00\x00\ +\x0a\x00\x26\x00\x41\x00\x69\x00\x64\x00\x65\x08\x00\x00\x00\x00\ +\x06\x00\x00\x00\x05\x26\x48\x65\x6c\x70\x07\x00\x00\x00\x11\x61\ +\x70\x70\x6c\x69\x63\x61\x74\x69\x6f\x6e\x57\x69\x6e\x64\x6f\x77\ +\x01\x03\x00\x00\x00\x0e\x00\x51\x00\x75\x00\x69\x00\x74\x00\x74\ +\x00\x65\x00\x72\x08\x00\x00\x00\x00\x06\x00\x00\x00\x04\x45\x78\ +\x69\x74\x07\x00\x00\x00\x11\x61\x70\x70\x6c\x69\x63\x61\x74\x69\ +\x6f\x6e\x57\x69\x6e\x64\x6f\x77\x01\x88\x00\x00\x00\x02\x03\x01\ +\ +\x00\x00\x1c\x7f\ \x00\ \x00\x72\x01\x78\x9c\xcd\x3d\x0b\x74\x1c\xd5\x75\x4f\x9f\x5d\xad\ \xa4\xd5\xc7\xb2\x2c\x8c\x31\x66\x6c\x6c\x21\xc9\x46\x96\x85\x01\ @@ -1607,6 +1596,14 @@ \xe8\x26\x8c\x12\xed\xa6\x90\x84\x5f\xcd\x16\x62\x1e\x8d\x5a\x0f\ \x58\xaf\x52\x39\x0a\xb5\x16\x90\x98\x9d\x5a\x0b\xc8\xcc\x5a\xad\ \x0e\x4a\x57\xc1\x27\xe5\x65\x65\xff\x07\x32\x0f\xf3\x70\ +\x00\x00\x00\x10\ +\x3c\ +\xb8\x64\x18\xca\xef\x9c\x95\xcd\x21\x1c\xbf\x60\xa1\xbd\xdd\ +\x00\x00\x00\x22\ +\x3c\ +\xb8\x64\x18\xca\xef\x9c\x95\xcd\x21\x1c\xbf\x60\xa1\xbd\xdd\x88\ +\x00\x00\x00\x0d\x11\x01\xfd\x29\x0b\xff\x14\x02\x04\xfd\x2c\x0a\ +\x13\ \x00\x00\x00\x70\ \x3c\ \xb8\x64\x18\xca\xef\x9c\x95\xcd\x21\x1c\xbf\x60\xa1\xbd\xdd\x42\ @@ -1619,15 +1616,12 @@ \x00\x00\x00\x10\ \x3c\ \xb8\x64\x18\xca\xef\x9c\x95\xcd\x21\x1c\xbf\x60\xa1\xbd\xdd\ +\x00\x00\x00\x10\ +\x3c\ +\xb8\x64\x18\xca\xef\x9c\x95\xcd\x21\x1c\xbf\x60\xa1\xbd\xdd\ " qt_resource_name = b"\ -\x00\x22\ -\x00\x30\xb0\xe7\ -\x00\x6a\ -\x00\x6f\x00\x68\x00\x6e\x00\x6e\x00\x79\x00\x5f\x00\x61\x00\x75\x00\x74\x00\x6f\x00\x6d\x00\x61\x00\x74\x00\x69\x00\x63\x00\x5f\ -\x00\x63\x00\x72\x00\x61\x00\x73\x00\x68\x00\x69\x00\x6e\x00\x67\x00\x5f\x00\x77\x00\x61\x00\x76\x00\x65\x00\x2e\x00\x73\x00\x76\ -\x00\x67\ \x00\x08\ \x0f\x07\x57\x47\ \x00\x65\ @@ -1636,21 +1630,12 @@ \x0d\xfc\x11\x13\ \x00\x74\ \x00\x72\x00\x61\x00\x6e\x00\x73\x00\x6c\x00\x61\x00\x74\x00\x69\x00\x6f\x00\x6e\x00\x73\ -\x00\x15\ -\x09\xd3\xbc\xbd\ -\x00\x70\ -\x00\x79\x00\x73\x00\x6f\x00\x75\x00\x6e\x00\x64\x00\x61\x00\x6e\x00\x61\x00\x6c\x00\x79\x00\x73\x00\x65\x00\x72\x00\x5f\x00\x72\ -\x00\x75\x00\x2e\x00\x71\x00\x6d\ -\x00\x15\ -\x09\xe6\xdc\xbd\ -\x00\x70\ -\x00\x79\x00\x73\x00\x6f\x00\x75\x00\x6e\x00\x64\x00\x61\x00\x6e\x00\x61\x00\x6c\x00\x79\x00\x73\x00\x65\x00\x72\x00\x5f\x00\x65\ -\x00\x73\x00\x2e\x00\x71\x00\x6d\ -\x00\x15\ -\x09\xe1\x0c\xbd\ -\x00\x70\ -\x00\x79\x00\x73\x00\x6f\x00\x75\x00\x6e\x00\x64\x00\x61\x00\x6e\x00\x61\x00\x6c\x00\x79\x00\x73\x00\x65\x00\x72\x00\x5f\x00\x65\ -\x00\x6c\x00\x2e\x00\x71\x00\x6d\ +\x00\x22\ +\x00\x30\xb0\xe7\ +\x00\x6a\ +\x00\x6f\x00\x68\x00\x6e\x00\x6e\x00\x79\x00\x5f\x00\x61\x00\x75\x00\x74\x00\x6f\x00\x6d\x00\x61\x00\x74\x00\x69\x00\x63\x00\x5f\ +\x00\x63\x00\x72\x00\x61\x00\x73\x00\x68\x00\x69\x00\x6e\x00\x67\x00\x5f\x00\x77\x00\x61\x00\x76\x00\x65\x00\x2e\x00\x73\x00\x76\ +\x00\x67\ \x00\x15\ \x09\xe7\xac\xbd\ \x00\x70\ @@ -1661,30 +1646,45 @@ \x00\x70\ \x00\x79\x00\x73\x00\x6f\x00\x75\x00\x6e\x00\x64\x00\x61\x00\x6e\x00\x61\x00\x6c\x00\x79\x00\x73\x00\x65\x00\x72\x00\x5f\x00\x69\ \x00\x74\x00\x2e\x00\x71\x00\x6d\ +\x00\x15\ +\x09\xe0\xbc\xbd\ +\x00\x70\ +\x00\x79\x00\x73\x00\x6f\x00\x75\x00\x6e\x00\x64\x00\x61\x00\x6e\x00\x61\x00\x6c\x00\x79\x00\x73\x00\x65\x00\x72\x00\x5f\x00\x64\ +\x00\x65\x00\x2e\x00\x71\x00\x6d\ +\x00\x15\ +\x09\xd3\xbc\xbd\ +\x00\x70\ +\x00\x79\x00\x73\x00\x6f\x00\x75\x00\x6e\x00\x64\x00\x61\x00\x6e\x00\x61\x00\x6c\x00\x79\x00\x73\x00\x65\x00\x72\x00\x5f\x00\x72\ +\x00\x75\x00\x2e\x00\x71\x00\x6d\ \x00\x18\ \x0f\xa6\x69\x3d\ \x00\x70\ \x00\x79\x00\x73\x00\x6f\x00\x75\x00\x6e\x00\x64\x00\x61\x00\x6e\x00\x61\x00\x6c\x00\x79\x00\x73\x00\x65\x00\x72\x00\x5f\x00\x65\ \x00\x6e\x00\x5f\x00\x47\x00\x42\x00\x2e\x00\x71\x00\x6d\ \x00\x15\ -\x09\xe0\xbc\xbd\ +\x09\xe6\xdc\xbd\ \x00\x70\ -\x00\x79\x00\x73\x00\x6f\x00\x75\x00\x6e\x00\x64\x00\x61\x00\x6e\x00\x61\x00\x6c\x00\x79\x00\x73\x00\x65\x00\x72\x00\x5f\x00\x64\ -\x00\x65\x00\x2e\x00\x71\x00\x6d\ +\x00\x79\x00\x73\x00\x6f\x00\x75\x00\x6e\x00\x64\x00\x61\x00\x6e\x00\x61\x00\x6c\x00\x79\x00\x73\x00\x65\x00\x72\x00\x5f\x00\x65\ +\x00\x73\x00\x2e\x00\x71\x00\x6d\ +\x00\x15\ +\x09\xe1\x0c\xbd\ +\x00\x70\ +\x00\x79\x00\x73\x00\x6f\x00\x75\x00\x6e\x00\x64\x00\x61\x00\x6e\x00\x61\x00\x6c\x00\x79\x00\x73\x00\x65\x00\x72\x00\x5f\x00\x65\ +\x00\x6c\x00\x2e\x00\x71\x00\x6d\ " qt_resource_struct = b"\ \x00\x00\x00\x00\x00\x02\x00\x00\x00\x03\x00\x00\x00\x01\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\ -\x00\x00\x00\x60\x00\x02\x00\x00\x00\x07\x00\x00\x00\x04\ -\x00\x00\x00\x4a\x00\x01\x00\x00\x00\x01\x00\x00\x37\x43\ -\x00\x00\x00\x7e\x00\x00\x00\x00\x00\x01\x00\x00\x45\x35\ +\x00\x00\x00\x34\x00\x00\x00\x00\x00\x01\x00\x00\x0d\xf2\ +\x00\x00\x00\x16\x00\x02\x00\x00\x00\x07\x00\x00\x00\x04\ +\x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\ +\x00\x00\x01\x0e\x00\x00\x00\x00\x00\x01\x00\x00\x62\xb1\ +\x00\x00\x00\xde\x00\x00\x00\x00\x00\x01\x00\x00\x62\x9d\ \x00\x00\x01\xa4\x00\x00\x00\x00\x00\x01\x00\x00\x63\x5f\ -\x00\x00\x00\xde\x00\x00\x00\x00\x00\x01\x00\x00\x45\x6f\ -\x00\x00\x00\xae\x00\x00\x00\x00\x00\x01\x00\x00\x45\x5b\ -\x00\x00\x01\x0e\x00\x00\x00\x00\x00\x01\x00\x00\x45\x83\ -\x00\x00\x01\x3e\x00\x01\x00\x00\x00\x01\x00\x00\x46\x68\ -\x00\x00\x01\x6e\x00\x00\x00\x00\x00\x01\x00\x00\x62\xeb\ +\x00\x00\x01\x74\x00\x00\x00\x00\x00\x01\x00\x00\x63\x4b\ +\x00\x00\x00\x7e\x00\x00\x00\x00\x00\x01\x00\x00\x45\x35\ +\x00\x00\x00\xae\x00\x01\x00\x00\x00\x01\x00\x00\x46\x1a\ +\x00\x00\x01\x3e\x00\x00\x00\x00\x00\x01\x00\x00\x62\xd7\ " def qInitResources(): diff --git a/windows_installer/compile.bat b/windows_installer/compile.bat new file mode 100644 index 0000000..fb5616c --- /dev/null +++ b/windows_installer/compile.bat @@ -0,0 +1,2 @@ + +"C:\Program Files\Inno Setup 5\ISCC.exe" "Z:\media\ntfsShared\lin_home\auditory\code\pysoundanalyser\windows_installer\pysoundanalyser.iss" diff --git a/windows_installer/compile_win.sh b/windows_installer/compile_win.sh new file mode 100644 index 0000000..5d8de94 --- /dev/null +++ b/windows_installer/compile_win.sh @@ -0,0 +1,4 @@ +#!/bin/sh + +wine cmd /c "Z:\media\ntfsShared\lin_home\auditory\code\pysoundanalyser\windows_installer\compile.bat" + diff --git a/windows_installer/win_compile.py b/windows_installer/win_compile.py new file mode 100644 index 0000000..d722de6 --- /dev/null +++ b/windows_installer/win_compile.py @@ -0,0 +1,109 @@ +#! /usr/bin/env python +# -*- coding: utf-8 -*- + +import os, platform, requests, time + +winpythonpath = "/home/sam/tmp/pysoundanalyser_for_win/" + +f = open('../setup.py', 'r') +ln = f.readlines() +f.close() +for i in range(len(ln)): + if ln[i].strip().split('=')[0].strip() == "version": + ver = ln[i].strip().split('=')[1].strip() + ver = ver[1:len(ver)-2] + +zippath = "../dist/pysoundanalyser-"+ver+".zip" + +#remove previous version +cmd = "rm -r " + winpythonpath + "pysoundanalyser/" +os.system(cmd) +#unzip new version +cmd = "unzip -d " + winpythonpath + " -x " + zippath +os.system(cmd) +#rename to pysoundanalyser +cmd = "mv " + winpythonpath+"pysoundanalyser-"+ver + " " + winpythonpath+"pysoundanalyser" +os.system(cmd) + +#change iss version name +fIn = open("pysoundanalyser.iss", "r") +lns = fIn.readlines() +fIn.close() + +for i in range(len(lns)): + if lns[i][0:20] == "#define MyAppVersion": + tmp = lns[4].split(" ") + tmp.pop() + tmp.append('"'+ver+'"\n') + lns[i] = " ".join(tmp) + +fIn = open("pysoundanalyser.iss", "w") +lns = fIn.writelines(lns) +fIn.close() + +cmd = "./compile_win.sh" +os.system(cmd) + + +##################### +# Publish on Bintray +##################### + +publish = 1 +package = "pysoundanalyser" +exeName = "pysoundanalyser_"+ver+"-setup.exe" +exePath = "Output/"+exeName + + +if publish == 1 or publish == "y": + print("###############################") + print("Publishing") + print("###############################") + API_KEY = os.environ["BINTRAY_API_KEY"] + + USERNAME = "sam81" + + URL = "https://api.bintray.com/content/sam81/hearinglab-win/"+ package + "/" + ver + "/pysoundanalyser_" + ver + "/" + exeName + "?publish=1" + parameters = {"publish": "1"} + headers = { + "X-Bintray-Package": "pysoundanalyser", + "X-Bintray-Version": ver + } + + with open(exePath, "rb") as package_fp: + response = requests.put( + URL, auth=(USERNAME, API_KEY), params=parameters, + headers=headers, data=package_fp) + + print("status code: " + str(response.status_code)) + if response.status_code == 201: + print("#####################\n Upload successful!") + else: + print("#####################\n Upload Unsuccessful.") + + htmlPagePath = "/media/ntfsShared/lin_home/dc/devel/websites/xoom-website/xoom/pysoundanalyser/pysoundanalyser.html" + fIn = open(htmlPagePath, "r") + lns = fIn.readlines() + fIn.close() + + for i in range(len(lns)): + if lns[i][0:73] == '
  • pysoundanalyser_'+ver+'-setup.exe Windows installer (experimental)
  • ' + + fOut = open(htmlPagePath, 'w') + fOut.writelines(lns) + fOut.close() + + passwd = input('FTP password: ') + session = ftplib.FTP('ftp.samcarcagno.altervista.org', 'samcarcagno', passwd) + session.cwd('pysoundanalyser/') + + fHandle = open(htmlPagePath, 'rb') + session.storbinary("STOR " + "pysoundanalyser.html", fHandle) + + +else: + print("###############################") + print("Not Publishing") + print("###############################") +